JavaScript中void 0和undefined

众所周知,Undefined是JS语言中的7大基本类型之一,表示未定义,它的值只有一个,就是undefined。任何变量在赋值前都是undefined。

1 typeof Undefined  //"undefined"

而在一些框架源码中,会出现一些这样的表达式:

  if (context === void 0) return func;
  function foo() {     var a = arguments[0] !== (void 0 ) ? arguments[0] : 2; return a;   }
  if (array == null) return void 0;

1. undefined是可变的?

在ES5的全局环境中,undefined是只读的。而在局部作用域中,undefined是可变的。这个是JS语言公认的设计失误之一。

2. 什么是void?

  • void是一元运算符,出现在操作数的左边,操作数可以是任意类型的值,void右边的表达式可以是带括号形式(例如:void(0)),也可以是不带括号的形式(例如:void 0)。
  • 我们经常会使用到 javascript:void(0) 这样的代码, void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值。

3. 使用void 0代替undefined的原因是?

  • 使用void 0比使用undefined能够减少3个字节
>"undefined".length
9
>"void 0".length
6
  • undefined并不是javascript中的保留字,我们可以使用undefined作为变量名字,然后给它赋值。void 0输出唯一的结果undefined,保证了不变性。

4. undefined、not defined、null的区别?

  • undefined:定义了但是没有赋值,就访问了。
  • not defined:没有定义就访问了。
  • null:定义了赋值为null,访问时就为null。

原文地址:https://www.cnblogs.com/zhihaospace/p/12233180.html

时间: 2024-08-06 22:15:59

JavaScript中void 0和undefined的相关文章

JavaScript中 void(0) 的含义

JavaScript中 void (0)的含义 概述 void运算符执行传递给它的语句,然后返回undefined. 语法 void expression void 运算符通常仅仅被用来获取undefined的原始值,通常用void (0) (等同于void 0). 我们为什么不直接用undefined呢? undefined不是一个保留字(在JavaScript的某些环境中是个全局变量).这也就是说undefined是个可用的变量名,你可以给它任意赋值.例如: alert(undefined)

javascript 中 void 0的含义及undefine于void 0区别

undefined是一个全局属性,表示未定义或定义了没有赋值. void是一个一元运算符,不管传入什么参数都会返回undefined.  void操作符是在ECMAScript v1中定义的,而undefined是在ECMAScript v5中定义的. 我们知道undefined不是javascript的保留字,所以我们可以用undefined作为变量名.这时,我们定义的 undefined就会影响到使用undefined作为判断的地方.看下面例子: 测试了主流浏览器IE7-IE11.opera

看看JavaScript中void(0)的含义

JavaScript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值. void 操作符用法格式如下:1. javascript:void (expression)2. javascript:void expression expression是一个要计算的 JavaScript 标准的表达式.表达式外侧的圆括号是可选的,但是写上去是一个好习惯.我们可以使用 void 操作符指定超级链接.表达式会被计算但是不会在当前文档处装入任何内容.面的代码创建了一个超级链接,当用户点击以后不

void 0 或者 undefined

Problem 在检查一个值是否为undefined的时候,你们是如果去测试的? 要是之前的我会这样子测试 function isUndefined(obj){ return obj === undefined; } 但是最近在看<javascript框架设计>这本书的时候,他用了另外一种方法,我就有点纳闷了. function isUndefined(obj){ return obj === void 0; } 两者谁比较好点呢?如何比较呢?应该从它的适用性.浏览器兼容性来比较!然后我就在M

[void 0]与[undefined]

今天刚开始学ts,看到TypeScript在处理函数的默认参数时,是先判断该参数是否存在(即是否是undefined),不存在的话则给它赋值.不过ts判断undefined并不是直接利用 target === undefined, 而是用void 0来替代undefined,这是为什么呢? 先来说结论: 是因为undefiend可能会被重写 我们得先来简单谈下undefined,它是标识符而非保留字,作为全局对象的一个属性,该属性的初始值表示基本数据类型值undefined,在ES5之前是可以给

javascript:void(0)与#整理

window.location.href="/signup/devicelogin.shtml"; 指跳转到引号的url地址 #包含了一个位置信息,默认的锚点#是top,网页的顶端 JavaScript:void(0)    表示一个死链接,点它并不会有什么反应 作用:调到脚本的时候最好用void(0) 在希望求表达式的值,但又不希望脚本的剩余部分看见这个结果时,该运算符最有用. 缺点:可能会引起gif图不动 一般点击链接不做任何事件的有以下3种写法: <a href="

区别Javascript中的Null与Undefined

在JavaScript中存在这样两种原始类型:Null与Undefined.这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined? Undefined类型只有一个值,即undefined.当声明的变量还未被初始化时,变量的默认值为undefined. Null类型也只有一个值,即null.null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象. js 代码 var oValue; alert(oValue == undef

JavaScript中对null和undefined的理解

前沿: 今天工作中遇到了监视一个变量是undefined,结果判断写的是==null 返回值是true,这个结果引起了我对这两个东西的兴趣. 查询了相关的文章理解并测试了.发现有以下特点: 1.广义上来讲JavaScript中null和undefined是相等的,即null==undefined 返回值是true 2.狭义上来讲JavaScript中null和undefined是不相等的,即null===undefined 返回值是false 3.值得说的是null和undefined在if判断

JavaScript中的null和undefined

null :表示无值;undefined : 表示一个未声明的变量,                或已声明但没有赋值的变量,                或一个并不存在的对象属性. ==运算符将两者看作相等.如果要区分两者,要使用===或typeof运算符. 使用if (!object){}两者就都包含了 补充:2006.12.6var obj = "aaa";var nullobj; if (obj == null || obj == undefined || (!obj) ){