`

undefined 和 void 0 的区别

 
阅读更多

在读backbone源码时看见这么一段代码:

 

if (options.unset) for (attr in attrs) attrs[attr] = void 0;

 调试后发现attrs中的属性都为undefined,既然如此为何不直接用undefined呢?

基于此,搜索了相关文章,按照我的理解这一篇解释的比较合理:http://stackoverflow.com/questions/5716976/javascript-void-vs-undefined

 

在IE(7)中,window.undefined是可写的。chrome中window.undefined不可写。

在函数的环境内,undefined也可以被申明为局部变量。

具体看代码:

 

 

(function(){
    var undefined = 1;
    alert(undefined);//ie和chrome中都 alert 1
})();

(function(){
    undefined = 1;
    alert(undefined);//ie中alert 1 ,chrome中alert undefined
})();

var undefined = 1;
alert(undefined);//ie中alert 1 ,chrome中alert undefined

 然而,void 0 任何时候都返回undefined。

分享到:
评论

相关推荐

    Javascript中判断一个值是否为undefined的方法详解

    相信大家都知道当声明一个变量,并且没有给赋值的情况下,它的初始值是undefined。但是在javascript中,怎么检查一个值是否为undefined呢? 简单来说,在现代浏览器中,你可以安全的比较变量是否为undefined if ...

    比较详细的关于javascript中void(0)的具体含义解释.docx

    ### JavaScript中的`void(0)`具体含义解释 #### 一、`void`操作符简介 在JavaScript中,`void`操作符是一个特殊的操作符,它主要用于计算一个表达式但不返回任何值。换句话说,`void`操作符可以用来执行一些副作用...

    javascript-void(0)的含义.docx

    最后,文章提到了`javascript:void(0)`与普通链接的区别。在HTML中,使用`javascript:void(0)`作为`href`属性值,可以使链接成为所谓的“死链接”。这意味着点击链接时,浏览器不会执行任何导航行为。 例如: ```...

    js中javascript-void(0) 真正含义.docx

    #### `#`与`javascript:void(0)`的区别 在HTML中,使用`#`作为`href`属性值意味着链接指向当前页面的一个特定位置(例如`#section1`指向页面的“section1”部分)。然而,当链接的目标是`javascript:void(0)`时,...

    a href=javascript void(0) 是什么意思呢?加不加上有什么区别?.docx

    在这里,`void`后面跟着一对圆括号,并且括号内是一个数字0,这意味着该表达式的结果为空(`undefined`)。 3. **整体意义**:当用户点击带有`javascript:void(0)`属性的`a`标签时,不会触发任何页面跳转行为,而是...

    javascript类型系统--undefined和null全面了解_.docx

    JavaScript 类型系统中的 `undefined` 和 `null` 是两种特殊的原始值,它们分别代表不同的概念。在 JavaScript 中,每个变量都有一个类型,当变量未初始化或引用的对象不存在时,就会出现 `undefined` 或 `null`。 ...

    C生成静态库给C++调用出现undefined reference to ...解决方案_cpp

    void c_function(void); #ifdef __cplusplus } #endif ``` 总结来说,为了解决“undefined reference to ...”错误,我们需要确保C++程序正确地使用`extern "C"`声明C函数,静态库被正确创建并链接到C++程序中,且...

    商城代码javascript:void(0);

    `void(0)`的结果就是`undefined`,而`0`是一个可以被忽略的参数。 - **用途**: - 防止链接跳转:在HTML中,可以将`javascript:void(0);`作为`<a>`标签的`href`属性值,这样点击链接时不会发生页面跳转。 - 触发...

    【JavaScript源代码】JavaScript之不可靠的undefined.docx

    `void`运算符用于计算表达式并返回`undefined`,最常见的方式是`void 0`,这被认为是最高效且无副作用的获取`undefined`的方法: ```javascript let myVar; if (myVar === void 0) { // 这里可以确保myVar是未定义...

    空链接 href="#"与href="javascript-void(0)"的区别.docx

    ### 空链接 `href="#"` 与 `href="javascript:void(0)"` 的区别 在Web开发中,我们经常会遇到两种类型的空链接:一种是使用 `href="#"`,另一种则是使用 `href="javascript:void(0)"`。这两种写法在实际应用中看...

    详解javascript void(0)

    ## `void(0)`与链接跳转的区别 - **`void(0)`**:`javascript:void(0)`在链接中使用时,阻止了默认的链接行为。点击这样的链接,浏览器不会尝试导航到任何URL,而是执行`void(0)`表达式,保持当前页面状态不变。 - *...

    javascript类型系统——undefined和null全面了解

    尽管它们在概念上有区别,但在相等比较时,`null` 和 `undefined` 被认为是相等的(`null == undefined` 返回 `true`)。这是因为它们都表示“值的空缺”。 类型转换时,`null` 转换成布尔值也为 `false`,转换成...

    JavaScript中猎取纯正的undefined的方法_.docx

    在JavaScript编程中,正确理解和获取`undefined`值是至关重要的,因为这直接影响到代码的健壮性和可维护性。在某些情况下,我们可能需要确保一个变量确实为`undefined`,而不是其他任何值,以进行有效的条件检查。...

    javascript;与javascriptvoid(0)使用介绍

    在前端开发领域,`javascript:` 和 `javascript:void(0)` 这两种语法经常被用到,尤其是在处理页面内的超链接时。本文将详细解析这两种用法的特点、应用场景以及它们之间的区别,并通过具体的示例来帮助读者更好地...

    JavaScript和TypeScript中的void的具体使用

    如果你来自传统的强类型语言,可能会很熟悉 void 的概念:一种类型,告诉你函数和方法在调用时不返回任何内容。 void 作为运算符存在于 JavaScript 中,而作为基本类型存在于 TypeScript 中。在这两个世界中,void ...

    javascript 关于# 和 void的区别分析

    例如,`void(0)`、`void(3)`或者`void(function() { return "hello"; })`。当在浏览器地址栏使用`javascript:void()`形式的语句时,由于`void`操作符会返回`undefined`,浏览器不会尝试加载或执行任何新的页面内容。...

    [removed]void(0)的问题使用探讨

    在这个上下文中,`void(0)`与`void(1)`或任何其他非`undefined`值的效果是一样的,因为它们都会计算表达式,但不返回任何值。重要的是理解`void`的用途是为了执行一个表达式而不产生副作用。 总的来说,`javascript...

    js中 [removed]void(0) 用法详解

    表达式`void 0`的结果就是`undefined`,但重要的是它的副作用——阻止浏览器执行默认的链接行为,比如页面跳转。 例如,在一个`<a>`标签中,如果`href`属性被设置为`javascript:void(0)`,那么点击这个链接时,...

Global site tag (gtag.js) - Google Analytics