博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
核心②undefined 和 null
阅读量:5222 次
发布时间:2019-06-14

本文共 1229 字,大约阅读时间需要 4 分钟。

JavaScript 有两个表示‘空’的值,其中比较有用的是 undefined

undefined 的值

undefined 是一个值为 undefined 的类型。

这个语言也定义了一个全局变量,它的值是 undefined,这个变量也被称为undefined。 但是这个变量不是一个常量,也不是一个关键字。这意味着它的可以轻易被覆盖。

ES5 提示: 在 ECMAScript 5 的严格模式下,undefined 不再是 可写的了。 但是它的名称仍然可以被隐藏,比如定义一个函数名为 undefined

下面的情况会返回 undefined 值:

  • 访问未修改的全局变量 undefined
  • 由于没有定义 return 表达式的函数隐式返回。
  • return 表达式没有显式的返回任何内容。
  • 访问不存在的属性。
  • 函数参数没有被显式的传递值。
  • 任何被设置为 undefined 值的变量。

处理 undefined 值的改变

由于全局变量 undefined 只是保存了 undefined 类型实际的副本, 因此对它赋新值不会改变类型 undefined 的值。

然而,为了方便其它变量和 undefined 做比较,我们需要事先获取类型undefined 的值。

为了避免可能对 undefined 值的改变,一个常用的技巧是使用一个传递到的额外参数。 在调用时,这个参数不会获取任何值。

var undefined = 123;(function(something, foo, undefined) {    // 局部作用域里的 undefined 变量重新获得了 `undefined` 值})('Hello World', 42);

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

var undefined = 123;(function(something, foo) {    var undefined;    ...})('Hello World', 42);

这里唯一的区别是,在压缩后并且函数内没有其它需要使用 var 声明变量的情况下,这个版本的代码会多出 4 个字节的代码。

这里有点绕口,其实很简单。如果此函数内没有其它需要声明的变量,那么 var总共 4 个字符(包含一个空白字符) 就是专门为 undefined变量准备的,相比上个例子多出了 4 个字节。

null 的用处

JavaScript 中的 undefined 的使用场景类似于其它语言中的 null,实际上 JavaScript 中的 null 是另外一种数据类型。

它在 JavaScript 内部有一些使用场景(比如声明原型链的终结 Foo.prototype = null),但是大多数情况下都可以使用 undefined 来代替。

转载于:https://www.cnblogs.com/luckyxb/p/6398561.html

你可能感兴趣的文章
hdu5723 多校第一题,longlong
查看>>
[转]三维数字地球发布平台探索--几款开源软件介绍
查看>>
[转]地图投影的N种姿势
查看>>
mysql小技巧
查看>>
使用FileReader()预览图片
查看>>
htop详解
查看>>
数据库隔离级 ( Isolation level )
查看>>
每日一问:谈谈 SharedPreferences 的 apply() 和 commit()
查看>>
[SQLServer大对象]——FileTable从文件系统迁移文件
查看>>
String.format
查看>>
cookie and Session
查看>>
asp.net core 使用 StaticFiles 中间件 (不完整翻译)
查看>>
SQL Server数据库操作(二)
查看>>
java数组转json
查看>>
UML之关系
查看>>
Google开源C++单元测试框架Google Test【转】
查看>>
JavaScript------去掉Array中重复值
查看>>
-垂直(水平)导航栏--转换-过度-动画-多列-瀑布流-事件
查看>>
第八次作业
查看>>
USACO 4.2 The Perfect Stall 完美的牛栏(最大匹配)
查看>>