如果我想简洁地取消一些变量:
var a = 'testa';
var b = 'testb';
var c = 'testc';
和:
a = b = c = null;
安全吗?
EDIT删除了多余的var
关键字
如果我想简洁地取消一些变量:
var a = 'testa';
var b = 'testb';
var c = 'testc';
和:
a = b = c = null;
安全吗?
EDIT删除了多余的var
关键字
var a = b = c = null;
被评估为var a = (b = (c = null));
因为 JavaScript进行从右到左的评估。由于c
和b
没有定义,c
并且b
将成为全局变量,a
而是局部的,因为a
是用 定义的var
。
所以这样做更安全
var a, b, c;
a = b = c = null;
我从命令行尝试了这个:
var f = function() { var a = b = c = null; }
f()
console.log(c)
console.log(b)
console.log(a)
得到了这个
null
null
ReferenceError: a 未定义
全局变量b
也是如此!被忽略了!哎呀!c
var