1

如果我想简洁地取消一些变量:

var a = 'testa';
var b = 'testb';
var c = 'testc';

和:

a = b = c = null;

安全吗?

EDIT删除了多余的var关键字

4

2 回答 2

5

var a = b = c = null;被评估为var a = (b = (c = null));因为 JavaScript进行从右到左的评估。由于cb没有定义,c并且b将成为全局变量,a而是局部的,因为a是用 定义的var

所以这样做更安全

var a, b, c;
a = b = c = null;
于 2013-08-22T02:23:35.090 回答
-1

这不安全,它……非常危险,小心点。

我从命令行尝试了这个:

var f = function() { var a = b = c = null; }
f()
console.log(c)
console.log(b)
console.log(a)

得到了这个

null
null
ReferenceError: a 未定义

全局变量b也是如此!被忽略了!哎呀!cvar

于 2013-08-22T02:11:48.493 回答