javascript中的null和undefined
来源:互联网 发布:protel手机版软件 编辑:程序博客网 时间:2024/05/20 05:23
本文参考阮神的博客,外加自己的一些实验,记录一下null和undefined的注意点
null和undefined在JavaScript中的含义
null的含义
null
是JavaScript的关键字,常用来描述“空值”。- 在浏览器的控制台对
null
用typeof
函数
typeof(null)
返回的是object
,可以认为null
是一个特殊的对象值,含义是“无对象”。
* 对null
使用Number
函数
Number(null);10+null;
返回0,说明在装换为数字的时候识别为0
* 在转为布尔型的时候
if(!null) console.log("null is false");
语句执行,说明null
在转换为布尔值的时候是’false’
undefined的含义
undefined
不是JavaScript的关键字,用未定义的值表示更深层次的“空值”。undefined
是预定义的全局变量,它的值就是“未定义”.- 对
undefined
使用typeof
函数
typeof(undefined);
返回的还是undefined
,表明这个值是这个类型的唯一成员。
* 使用Number
函数
Number(undefined);
返回值是NaN
,说明转化为数字的时候是NaN
* 转化为布尔值的时候
if(!undefined) console.log("undefined is false");
转为布尔值的时候表示为false
null和undefined的差别
if(null==undefined)console.log("相等");elseconsole.log("不相等");
if(null===undefined)console.log("相等");elseconsole.log("不相等");
通过==
和===
的判断,null
和undefined
本质上是不相等的,==
判断的情况下是因为==
在判断之前先进行类型的转换,转为布尔型之后都是false相等。而===
没有进行类型转换的比较。
当前null和undefined的用法
上面这样的区分,在实践中会被证明不可行。目前,null和undefined基本是同义的,只有一些细微的差别。
null表示”没有对象”,即该处不应该有值。典型用法是:
- 作为函数的参数,表示该函数的参数不是对象。
- 作为对象原型链的终点。
Object.getPrototypeOf(Object.prototype)// null
undefined表示”缺少值”,就是此处应该有一个值,但是还没有定义。典型用法是:
- 变量被声明了,但没有赋值时,就等于undefined。
- 调用函数时,应该提供的参数没有提供,该参数等于undefined。
- 对象没有赋值的属性,该属性的值为undefined。
- 数组元素没有被赋值
- 函数没有返回值时,默认返回undefined。
var i;i // undefinedfunction f(x){console.log(x)}f() // undefinedvar o = new Object();o.p // undefinedvar x = f();x // undefined
0 0
- JavaScript中的null和undefined
- JavaScript中的null和undefined
- JavaScript中的null和undefined
- javascript中的null和undefined
- JavaScript中的null和undefined
- javascript 中的null 和undefined
- Javascript中的undefined和null
- javascript中的undefined和null
- javascript中的null和undefined
- 解剖JavaScript中的null和undefined
- 解剖JavaScript中的null和undefined收藏
- 解剖JavaScript中的null和undefined收藏
- 解剖JavaScript中的null和undefined
- 解剖JavaScript中的null和undefined
- 解剖JavaScript中的null和undefined
- 解剖JavaScript中的null和undefined
- 解剖JavaScript中的null和undefined
- 解剖 JavaScript 中的 null 和 undefined
- Source tree 回滚到以前版本
- EditText和TextView其他属性总结
- Jquery,JavaScript性能优化
- linux c之使用#define定义多行函数总结
- 解决谷歌浏览器记住密码输入框颜色改变
- javascript中的null和undefined
- Win7/8/10进行VPN连接
- 基于网络音频的Android播放程序和音频池使用
- shell cat命令
- Unity项目架构设计与开发管理观看总结
- 97. SpringBoot-启动流程分析第一篇
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- APMServ5.2.6默认的mysql安装后root帐号
- CSS学习之Flex弹性布局语法介绍