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=3let
,或在分号后的单独语句中),将引发错误。