Object中null和undefined的区别?(常见前端面试题)
(1)数据类型层面:undefined是一个undefined数据类型,null是object数据类型
(2)内存分配层面:①如果一个变量没有赋值操作就是undefined (var str;),所有变量在内存 分配的时候其默认值 都是undefined,而不是null. ②null:代表的是对象的默认值,可以清空对象,以后想要清空对象,则就是给它赋值为null .(注意:清空对象直接赋值为null,而不是用delete)
(3)运算层面:① var n = 1 + undefined;
alert(n); //NaN
②var nn = 1+ nll ;
alert(nn); //1 -->此时null相当于0
注意:js数据类型有如下几种:
①string字符串类型,
②number数字类型
③object对象(array数组、 null空[不具有任何对象的特性]、 data日期 、Regex正则)
④undefined 空对象
⑥布尔类型(true/false)
⑦funtion---->function、undefined都是一个数据类型,不是对象
2.
infinity和NaN的区别?
NaN是代表是一个非正常四则运算而得出来的结果数字的代替
infinity它是正常计算过程中,一个数字除不尽的时候就得到无穷数,或者是计算结果超出数字的最大值也得到infinity。
注意:NaN不等于任何值,NaN === NaN //false
false == 'false' //false
false == undefined //false
false == null //false
null == undefined //true
0 == ' ' //true
0 === ' ' ; //false
3.
“==”和“===”的区别?
var str = “0” //string
var num = 0; //number
console.log(str==num); //true
console.log(str===num); //false 比较了字面值,同时比较了数据类型