gpt4 book ai didi

javascript:是否可以为 'undefined' 赋值? (来自你不知道的JS的问题)

转载 作者:行者123 更新时间:2023-12-01 00:32:25 25 4
gpt4 key购买 nike

阅读本章中的“你不知道”:https://github.com/getify/You-Dont-Know-JS/blob/2nd-ed/scope-closures/ch3.md

有一个代码片段:

undefined = true; // setting a land-mine for other code! avoid!

(function IIFE( undefined ){

var a;
if (a === undefined) {
console.log( "Undefined is safe here!" );
}

})();

对于立即执行的函数,我知道参数是未定义的,a也是未定义的,因此a===未定义。

我的问题是,如何为 undefined 赋值? 据我了解,undefined是js中的原始类型,那么undefined = true;是什么意思?

此外,为了测试我的理解,我稍微更改了这段代码:

undefined = 5; // set undefined to an integer? how can it be?

(function IIFE( undefined ){

var a;
if (a === undefined) {
console.log( "Undefined is safe here!" );
}

})(undefined); //still execute console.log function

结果保持不变

最佳答案

how is it possible to assign a value to undefined? As I understand, undefined is a primitive type in js, then what is the meaning of undefined = true;?

你是对的,undefined 是一个原始类型,但它不是 literal

当您访问undefined时,您正在访问全局对象中的属性。

在 ES5 之前,该属性是可写的,并且可以被覆盖。

但是从 ES5 开始,它 was defined as not writable ,现在无法更改。

不是像 null 这样的字面意思, true or false ,可以使用 undefined 作为变量的绑定(bind)名称、函数的参数或函数的名称,但不能在全局范围内使用。它将与内置的 undefined 发生冲突。

(function () {
'use strict';
const undefined = 'some value';
console.log(undefined); // "some value"
})();

关于javascript:是否可以为 'undefined' 赋值? (来自你不知道的JS的问题),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58417711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com