js中undefined(undefined中文是)

【js中undefined(undefined中文是)】


js中undefined(undefined中文是)

文章插图

JavaScript 有两个表示‘空’的值分别是undefined和null , 其中比较有用的是undefined 。
undefined的值undefined 是一个值为 undefined 的类型 。
这个语言也定义了一个全局变量 , 它的值是 undefined , 这个变量也被称为 undefined 。但是这个变量不是一个常量 , 也不是一个关键字 。这意味着它的值可以轻易被覆盖 。
ES5 提示: 在 ECMAScript 5 的严格模式下 , undefined 不再是可写的了 。但是它的名称仍然可以被隐藏 , 比如定义一个函数名为undefined 。
下面的情况会返回 undefined 值:
访问未修改的全局变量 undefined 。
由于没有定义 return 表达式的函数隐式返回 。
return 表达式没有显式的返回任何内容 。
访问不存在的属性 。
函数参数没有被显式的传递值 。
任何被设置为 undefined 值的变量 。
处理 undefined 值的改变由于全局变量 undefined 只是保存了 undefined 类型实际值的副本 ,  因此对它赋新值不会改变类型 undefined 的值 。
然而 , 为了方便其它变量和 undefined 做比较 , 我们需要事先获取类型 undefined 的值 。
为了避免可能对 undefined 值的改变 , 一个常用的技巧是使用一个传递到匿名包装器的额外参数 。在调用时 , 这个参数不会获取任何值 。


js中undefined(undefined中文是)

文章插图

另外一种达到相同目的方法是在函数内使用变量声明 。


js中undefined(undefined中文是)

文章插图

这里唯一的区别是 , 在压缩后并且函数内没有其它需要使用 var 声明变量的情况下 , 这个版本的代码会多出 4 个字节的代码 。
注意:这里有点绕口 , 其实很简单 。如果此函数内没有其它需要声明的变量 , 那么 var总共 4 个字符(包含一个空白字符) 就是专门为 undefined变量准备的 , 相比上个例子多出了 4 个字节 。
null 的用处JavaScript 中的 undefined 的使用场景类似于其它语言中的 null , 实际上 JavaScript 中的 null 是另外一种数据类型 。
它在 JavaScript 内部有一些使用场景(比如声明原型链的终结 Foo.prototype = null) , 但是大多数情况下都可以使用 undefined 来代替 。