gpt4 book ai didi

javascript - 在 javascript 中以存在方式定义变量的快捷方式

转载 作者:行者123 更新时间:2023-11-30 05:55:03 25 4
gpt4 key购买 nike

为了避免破坏现有变量,我有这样的代码

window.x = typeof x != "undefined" ? x : {}

这似乎是一种非常冗长的定义方式,但对于避免控制台错误是必要的。

我尝试了这个,它似乎工作正常。这样定义一个变量可以吗?

window.x=window.x||{}

甚至在全局范围内......

x=this.x||{}

最佳答案

这些是非常不同的。

首先,如果不检查 typeof ... === 'undefined',您实际上将重写任何“虚假”值。但这很微不足道,还有更细微的差别。

window.x = typeof x != "undefined" ? x : {} 

这将分配一些 x 的值(不一定是全局的,它可能是局部 x 或局部于某些外部函数的 x )到全局 x (window.x)。当“本地”x 超出范围时,它的值在赋值时仍将存储在 window.x 变量中。

window.x = window.x || {}

这仅适用于 window.x;即使我们现在忘记了虚假值,它仍然无法像第一个一样工作(它甚至不检查 'local' x 是否存在)。

x = this.x || {}

this 是易变的(事件处理程序、超时函数,仅举几例)时,这个可能会完全失控,并且在“使用严格”模式下不允许出现在外部函数的主体中.

关于javascript - 在 javascript 中以存在方式定义变量的快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12416385/

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