js中一次性定义多个变量的时候,可以用:var a=1,b=1这种中间用逗号隔开的方式,但有些时候为了省事,直接定义var a=b=1。那这两种写法方式最后效果是一样的吗?有没有什么区别呢?请大家看下面的范例:
1、用var a=b=1的方式
可以看出:变量b的作用域是全局的,变量a是局部的
2、用var a=1,b=1的方式
可以看出:变量a和变量b的作用域都是局部
结论:var a=b=1中的变量b会成为全局变量,而var a=1,b=1中的a、b变量都为局部变量。
在严格模式下, 变量必须先声明,直接给变量赋值,不会隐式创建全局变量比如webpack打包js后会在严格模式下
<script>
"use strict";
var a=b=1;
console.log(a,b)
</script>
报错:Uncaught ReferenceError: b is not defined
因此以后写代码定义变量的时候,要严格按照语法规范,不能用偷懒的写法哦。否则可能出现意想不到的情况,造成难以排查的程序bug。