gpt4 book ai didi

javascript - 在javascript中使用条件运算符定义变量

转载 作者:行者123 更新时间:2023-11-29 10:14:18 25 4
gpt4 key购买 nike

名称 = 名称 || {} 抛出引用错误,而 var name = name || {} 有效。 javascript 变量初始化是如何工作的?

最佳答案

线

var name = name || {};

真的是这样解释的:

// Upon entry to the scope
var name;

// Later, in step-by-step code
name = name || {}

由于声明了name,您可以安全地获取它的值(在= 的右侧有name)。那时它的值将是 undefined,所以 name = name || {} 将为它分配 {}

最大的不同在于:

name = name || {}

...是您没有name 的任何声明,因此在评估该赋值的右侧时它不存在。 The Horror of Implicit Globals允许您通过分配给它们隐式地创建全局变量,但不允许您读取(还)不存在的变量的值。

这就是为什么带有 var 的版本有效而​​没有抛出 ReferenceError 的原因。


旁注:我建议不要依赖隐式全局变量的恐怖。相反,始终声明您的变量(并尽可能避免使用全局变量)。您可以使用 JavaScript 的“严格模式”将隐式全局变量的恐怖转变为 ReferenceError(例如,写入未知符号会变成错误,而不是像读取符号那样创建全局变量)。

关于javascript - 在javascript中使用条件运算符定义变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25931689/

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