JS中undefined、null以及NaN之间的区别,以及对象属性赋值的面试题
来源:互联网 发布:数控车床梯形螺纹编程 编辑:程序博客网 时间:2024/04/28 00:22
(1)以下三种情况typeof 返回类型为undefined
——当变量未初始化时
——变量未定义时
——函数无明确返回值时(函数没有返回值时返回的都是undefined)
(2)Null 类型
undefined 是由null派生处理的,因此undefined == null
undefined 是声明了但是没有初始化的该变量,
null表示尚未存在的对象 。
(3)NaN 值
是一个特殊值,表示非数(Not a Number),类型转换失败就会返回NaN
——NaN 不等于自己,即 NaN == NaN 是 false
——判断NaN 使用 isNaN();
(3)其实Null、NaN和undefined都是变量的默认初始值。变量类型不同,系统给与的初始值就不同:
——int,uint - 0
——Boolean - false
——Number - NaN
——String,Array,Object - null
——未指定变量类型 - undefined
<script>document.write(typeof(a1));//undefinedvar a2;document.write(typeof(a2));//undefinedvar a3=[];document.write(typeof(a3));//objectvar a4={};document.write(typeof(a4));//objectvar a5=null;document.write(typeof(a5));//objectvar a6=document.getElementById("没有这个id");document.write(typeof(a6));//objectvar a7=new Object;document.write(typeof(a7));//object</script>
(4)一个关于JS中对象的面试题目(核心是注意对象的属性名,用JS标识符(a和b)做属性名的直接被转换成["object Object"],所以都是一样的):
详细分析见:JS中的对象创建、属性访问
<script>var a=new Object;var b=new Object;var c=new Object;c[a]=a;c[b]=b;alert(c[a]==a);//falsealert(c[a]===a);//falsealert(c[a]===b);//truealert(c[b]===b);//true</script>
<script>var a=new Object;var b=new Object;var c=new Object;c["a"]=a;c["b"]=b;alert(c["a"]==a);//truealert(c["a"]===a);//truealert(c["a"]===b);//falsealert(c["b"]===b);//true</script>
参考资料:
js判断undefined类型,undefined,null, 的区别详细解析
js中undefined,null,NaN的区别
JavaScript Undefined,Null类型和NaN值区别
0 0
- JS中undefined、null以及NaN之间的区别,以及对象属性赋值的面试题
- JS中undefined、null以及NaN之间的区别,以及对象属性赋值的面试题,undefinednan
- javascript中not defined、undefined、null以及NaN的区别
- js中undefined,null,NaN的区别
- js中undefined,null,NaN的区别
- js中undefined,null,NaN的区别
- js中undefined,null,NaN的区别
- js中undefined,null,NaN的区别
- js中undefined,null,NaN的区别
- js中undefined,null,NaN的区别
- js中undefined,null,NaN的区别
- js中undefined,null,NaN的区别
- js中undefined,null,NaN的区别
- JS中undefined,null,NaN的区别
- js中 NaN、 null 及 undefined 的区别
- js中 NaN、 null 及 undefined 的区别
- js中null和undefined和NaN的区别
- JS中null和undefined的区别以及使用情况
- Jump Game - Leetcode
- 关于ADSL的学习,第一弹
- Word Ladder
- Word Ladder II
- 9.6 print out all valid combinations of n-pairs of parentheses
- JS中undefined、null以及NaN之间的区别,以及对象属性赋值的面试题
- Tripadvisor 面经解答 -持续更新ing
- Ubuntu14.04上Fig出现Couldn’t connect to Docker daemon …问题
- java Thread 学习
- Ubuntu 14.04 上 Fig 出现 client and server don’t have same version 问题及解决办法
- 【BZOJ 2819】 Nim
- BZOJ 1778 Usaco2010 Hol Dotp 驱逐猪猡 期望DP+高斯消元
- 【BZOJ 2597】 [Wc2007]剪刀石头布
- Codeforces Round #290 (Div. 2)(A,B,C)