19、原始类型与引用类型

简介: 19、原始类型与引用类型

1、六种数据类型


六种数据类型
数值 Number
字符串 String
布尔 Boolean
null
未定义 Undefined
对象(引用) Object


2、引用类型


Object类型
数组 Array
日期 Date
数学 Math
函数 Fnction
正则 RegExp


3、原始类型与引用类型的区别


原始类型与引用类型 区别
赋值 原始类型赋值,引用类型引用
比较 原始类型比较数值,引用类型比较引用是否指向同一个对象
传参 原始类型传参(函数里面的值不会影响外面的值),引用类型传参(函数里面的值影响外面的值)


  // 1、原始类型(栈内存)
    var str1 = 'hello';
    var str2 = 'world';
    str1 = 'jasmine';
    console.log(str1);    // 输出结果:jasmine
    console.log(str2);    // 输出结果:world
    // 2、引用类型(堆内存)
    var obj1 = { name: 'jasmine' };
    var obj2 = obj1;
    obj2.name = 'jasmine_qiqi';
    console.log(obj1.name);   // 输出结果:jasmine_qiqi
    console.log(obj2.name);   // 输出结果:jasmine_qiqi
    // 3、比较区别
    var str1 = 'hello';
    var str2 = 'hello';
    console.log(str1 === str2);   // 输出结果:true
    var obj1 = { name: 'jasmine' };
    var obj2 = { name: 'jasmine' };
    console.log(obj1 === obj2);   // 输出结果:false
    // 4、原始类型传参区别(函数里面的值不会影响外面的值)
    function fn(name) {
      name = 'qiqi';
      console.log(name);
    }
    var name = 'jasmine';
    fn(name);       // 输出结果:qiqi
    console.log(name);    // 输出结果:jasmine
    // 5、引用类型传参区别(函数里面的值影响外面的值)
    function fun(obj) {
      obj.name = 'qiqi';
      console.log(obj.name);
    }
    var obj = { name: 'jasmine' };
    fun(obj);         // 输出结果:qiqi
    console.log(obj.name);    // 输出结果:qiqi

4、类型检测(typeof、instanceof

    // 1、类型检测(typeof)
    var num = 100;        // 输出结果:number
    var name = 'jasmine';   // 输出结果:string
    var un;           // 输出结果:undefined
    var bool = true;      // 输出结果:boolean
    var aaa = null;       // 输出结果:object(bug)
    var arr = [1, 2, 3];    // 输出结果:object
    var reg = /123/;      // 输出结果:object
    let data = new Date();    // 输出结果:object
    // 2、类型检测(instanceof)
    console.log(arr instanceof Array);    // 输出结果:true
    console.log(reg instanceof RegExp);   // 输出结果:true
    console.log(data instanceof Date);    // 输出结果:true
    console.log(data instanceof Object);  // 输出结果:true    

5、类型检测(typeof、instanceof)

    // 1、类型检测(typeof)
    var num = 100;        // 输出结果:number
    var name = 'jasmine';   // 输出结果:string
    var un;           // 输出结果:undefined
    var bool = true;      // 输出结果:boolean
    var aaa = null;       // 输出结果:object(bug)
    var arr = [1, 2, 3];    // 输出结果:object
    var reg = /123/;      // 输出结果:object
    let data = new Date();    // 输出结果:object
    // 2、类型检测(instanceof)
    console.log(arr instanceof Array);    // 输出结果:true
    console.log(reg instanceof RegExp);   // 输出结果:true
    console.log(data instanceof Date);    // 输出结果:true
    console.log(data instanceof Object);  // 输出结果:true    


相关文章
|
监控 安全 NoSQL
2024年了,还有必要搭建企业网站吗?
在2024年,企业是否仍需建立网站?答案取决于行业。对于快消品/低价行业,网站非必需,但其他行业,网站作为线上流量入口,能展现企业形象和差异化,增强用户粘性,同时也是安全可靠的24小时服务渠道和国际拓展平台。企业网站是对外名片,提升客户信任,且能有效减少宣传成本。然而,网站安全至关重要,包括防止非法插件、服务器端口暴露、弱密码攻击等。为此,企业应利用VSS等服务进行安全检测,并关注设备、数据、内容和行为安全,确保整体安全可控。德迅卫士等主机安全工具可提供实时监控和响应,提升防护能力。安全是持续工作,需定期更新措施。
|
存储 JSON 人工智能
Spring 5 中文解析测试篇-WebTestClient
本章节主要描述:Spring 5 中文解析测试篇-WebTestClient。
862 0
|
运维 监控 Kubernetes
揭秘运维开发:如何让你的系统更高效、更可靠?
揭秘运维开发:如何让你的系统更高效、更可靠?
|
缓存 负载均衡 测试技术
掌握wrk压力测试工具的优化技巧与实践
掌握wrk压力测试工具的优化技巧与实践
318 1
|
存储 NoSQL 关系型数据库
MongoDB非关系型数据库实战
【5月更文挑战第6天】MongoDB,流行的NoSQL数据库,以其灵活的数据模型和高性能备受青睐。本文介绍了MongoDB的基础,包括文档型数据库特性、安装配置、数据操作。通过电商订单管理的实战案例,展示了MongoDB在处理复杂数据结构和大规模数据时的优势,适用于电商、游戏、视频直播等场景。MongoDB的索引、全文搜索和地理空间功能进一步增强了其实用性。注意性能优化和扩展性以确保系统稳定性和可靠性。
|
人工智能 自动驾驶 安全
破壁人AI百度:科技公司反内卷的典型样本
互联网整个行业都在陷入被动且尴尬的局面。去年开始流行的“内卷”一词,恰如其分的描述了互联网的现状,比如抖音开始做外卖,微信强推视频号,一直硝烟弥漫的电商市场,更是激战在社区团购上。
|
Java C++ Python
【C++】手撕红黑树
【C++】手撕红黑树
125 1
|
存储 监控 网络协议
【计算机网络】第三章 数据链路层(虚拟机与局域网)
【计算机网络】第三章 数据链路层(虚拟机与局域网)
170 2
|
存储 监控 NoSQL
【微服务】分布式如何利用Skywalking实现链路追踪与监控?
微服务下的分布式如何实现链路追踪和监控。
1486 1
【微服务】分布式如何利用Skywalking实现链路追踪与监控?
|
uml 开发者 Windows
推荐5款冷门小工具,看一看有没有你喜欢的?
每个人的电脑中都会安装很多软件,可能还保留着很多不为人知的冷门软件。不过虽然冷门,但绝不意味着低能,相反很多冷门软件的功能十分出色。闲话少说,接下来我就给大家推荐5款冷门小工具,看一看有没有你喜欢的。
302 0
推荐5款冷门小工具,看一看有没有你喜欢的?