javascript中var同时声明多个变量时的原理是什么?

1.只声明一个的情况



因为赋值是从右向左结合:
var a=b=c=d=5;
 等价于 
var a=(b=(c=(d=5)));
其中只有a被声明了,b,c和d都是自动解析为全局变量了。

2.接连声明几个的情况


由此可见var声明了3个局部的变量

let也是一样的
let webName="蚂蚁部落",address="青岛市南区";
console.log(webName);
console.log(address);

代码的运行结果如下:
蚂蚁部落
青岛市南区

3…要声明函数对象的情况

var a=1,b=2,c=3,d=4;
也就是用,分隔多个变量。

这样不换行的情况,只适合变量值比较单一的情况,如果你的变量是函数或对象,则要换行了:
var a=function (){
 var b,c,d;
},
b = {
 b:1,
 a:2
};
这样可以一直写下去,且能保持良好的可读性。当然,最后记得要用;收尾。

4.关于变量的删除的问题

var webName="蚂蚁部落";
address="青岛南区";
delete webName;
delete address;
console.log(webName);
console.log(address);
结果如下:

在这里插入图片描述
可以看到使用var声明的变量没有被删除,不使用var的被删除,所以代码会报错。

由此可见,两者是不同的,var声明的是一个真正的变量,address只是window的一个自定义属性。

不使用var的address其实是全局对象的一个属性,也就是说为全局对象添加了一个自定义属性adress并赋值,

你可能感兴趣的:(JS)