Javascript 零聚结
有没有一种方法可以为未声明的变量实现或应用空合并Javascript 零聚结,javascript,Javascript,有没有一种方法可以为未声明的变量实现或应用空合并 a; a??'Text'//返回“Text” //期望 b??'Text'//应返回“Text”检查未定义变量的方法是检查它们是否具有未定义的类型: a; console.log(a | |“text”)//打印“text” console.log((typeof b!='undefined'&&b)| |'text')//还打印'text' 设c=‘其他文本’ console.log((typeof c!=“undefined”&&c)|
a;
a??'Text'//返回“Text”
//期望
b??'Text'//应返回“Text”
检查未定义变量的方法是检查它们是否具有未定义的类型:
a;
console.log(a | |“text”)//打印“text”
console.log((typeof b!='undefined'&&b)| |'text')//还打印'text'
设c=‘其他文本’
console.log((typeof c!=“undefined”&&c)| |“text”)//打印“other text”
检查未定义变量的方法是检查它们是否具有未定义的类型:
a;
console.log(a | |“text”)//打印“text”
console.log((typeof b!='undefined'&&b)| |'text')//还打印'text'
设c=‘其他文本’
log((typeof c!=“undefined”&&c)| |“text”)//打印“other text”
对我来说似乎很清楚<代码>定义了一个,它只是“未定义”,是未分配值的占位符b
未定义,实际上它在当前内存环境中不存在,因此会发生查找失败,并且您会看到由于未找到内存位置而导致的错误。如果要确定变量是否存在,您最好检查是否只定义了全局变量(使用window.hasOwnProperty('varName')
(浏览器)或global.hasOwnProperty('varName')
(节点))。此外,我个人不会赞成任何依赖于检查变量存在性的软件逻辑。对我来说似乎很清楚……a
已定义,它只是“未定义”,未分配值的占位符。b
未定义,实际上它在当前内存环境中不存在,因此发生查找失败,您会看到由于未找到内存位置而导致的错误。如果要确定变量是否存在,您最好能做的是检查是否只有全局变量a重新定义(使用window.hasOwnProperty('varName')
(浏览器)或global.hasOwnProperty('varName')
(节点))。此外,我个人不会赞成任何依赖于检查变量存在性的软件逻辑。但是如果定义了b
,它的值会从表达式返回吗?我认为它不会正确!只是编辑了我的回答并添加了一个case来考虑一个positive case。但是如果定义了b
,它的值会从表达式返回吗你能从这个表达中得到什么?我不认为这是正确的!只是编辑了我的回答并添加了一个案例来考虑一个积极的案例。