从面试题中夯实基础

问题1: js的基本类型有哪些?引用类型有哪些?引用类型和基本类型有什么区别?

答:js基本类型:String、Number、Boolean、Null、Undefined。

  js引用类型:Array、Object、Function。

  举个例子来解释引用类型和基本类型的区别

var a = 10;   
var b = a;
b = 20; // b = 20 a = 10

  上面,b获取值是a值的一份拷贝,虽然,两个变量的值是相等,但是两个变量保存两不同的基本数据类型值。b只是保存了a复制的一个副本。所以,当b的值改变时,a的值依然是10; 

  过程如下图所示:

 

再举个引用类型的例子:

var obj1 = new Object();
var obj2 = obj1;
obj2.name = "Nick";
console.log(obj1.name); // Nick

声明了一个引用类型obj1,并且赋值给了obj2;此时他们俩指向的是同一个堆内存,也就是说,一旦内存里的值改变了,那么相应引用它的对象也会发生改变,

所以obj1的name字段也变成了‘Nick’。

如下图所示:

 

  

  

问题2: null和undefined的区别?

答:说到这俩的区别,也没啥好说的,因为他们的表现都是一样的,!null和!undefined都是true,甚至null == undefiend 也是true。如非要给他们做个区别,

那就要扯到90年代,JavaScript的最初版本没有包括错误处理机制,发生数据类型不匹配时,往往是自动转换类型或者默默地失败。Brendan Eich觉得,如果null自动转为0,很不容易发现错误。因此,Brendan Eich又设计了一个undefined。

说的再细致一些就是,null是一个表示"无"的对象,转为数值时为0;undefined是一个表示"无"的原始值,转为数值时为NaN。

转载于:https://www.cnblogs.com/Nick-chen/p/7940860.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值