Javascript 在多变量定义中,let和var之间有什么区别?
语法错误:Javascript 在多变量定义中,let和var之间有什么区别?,javascript,variables,environment-variables,global-variables,Javascript,Variables,Environment Variables,Global Variables,语法错误: 让管理员, name=“Bob”, 管理员=姓名; 警报(管理)当在单个语句中使用逗号声明变量时,就是为每个逗号(加上第一个逗号)声明一个变量。例如: let admin, names = "Bob", admin = names; 相当于,分为3条语句: let admin; let names = "Bob"; let admin = names; 但是用let和const声明的变量不能多次初始化;在给定的范围内,必须只有一行使用le
让管理员,
name=“Bob”,
管理员=姓名;
警报(管理)代码>当在单个语句中使用逗号声明变量时,就是为每个逗号(加上第一个逗号)声明一个变量。例如:
let admin,
names = "Bob",
admin = names;
相当于,分为3条语句:
let admin;
let names = "Bob";
let admin = names;
但是用let
和const
声明的变量不能多次初始化;在给定的范围内,必须只有一行使用let
或const
初始化它们
相反,用var
声明的变量没有这样的限制var
s基本上被提升到函数的顶部。所以
var foo = 5;
foo = 10;
就像
var foo;
foo = 5;
foo = 10;
let admin;
let names;
在同一范围内重复的var
声明不是问题,因为它们都在顶部引用相同的提升标识符。这就是为什么您的第二个代码段不会抛出错误
您的第三个代码段不会抛出,因为管理员
和名称
都只初始化了一次:
let admin, names;
就像
var foo;
foo = 5;
foo = 10;
let admin;
let names;
这很好。多次分配给变量不是问题(只要变量不是用const
声明的);这只是一个let
变量的初始化必须只发生一次。不同之处在于,可以使用多次声明变量,但不能使用:
var v=42;
var v;
控制台日志(v)代码>很简单!var和let都用于typescript中的变量声明,但它们之间的区别在于var是函数作用域,let是块作用域。
让我们看看下面的示例。
//定义后调用x
var x=5;
文件。写入(x,“\n”);
//定义后调用y
设y=10;
文件。写入(y,“\n”);
//在定义之前调用var z将返回undefined
文件。写入(z,“\n”);
var z=2;
//在定义之前调用let a将产生错误
文件。编写(a);
设a=3因为它们是独立的变量名。如果多次尝试声明同一变量(使用逗号和相同的let
,或在分号后的单独语句中),将引发错误。