一个块级范围是在许多语言中,但不是在JS,它使用var声明的变量,按功能划分的范围,但不限制变种斜体变量用var声明的变量具有改善作用(申报提升)。

6加一让,如果,for语句。同样使用VAR,但范围局限于块级,在让声明的变量不存在。

示例1:块级范围


功能getval(BOO){
如果(嘘){
VaR值='
…
返回值
{人}
在这里您可以访问
返回null
}
在这里,您还可以访问这个文件。
}



变量if在if块中声明,但瓦迩可以从其他块和if访问。

而不是改变var为让,原来是这样的


功能getval(BOO){
如果(嘘){
让val ='
…
返回值
{人}
无法访问到
返回null
}
这里还访问了瓦尔。
}




示例2:块级范围


函数功能(ARR){
对于(var i = 0;i < arr.length;i++){
…
}
在这里您还可以访问我的 /
}



变量i在for块中声明,但也可以在。

改变VaR让,和不能访问我


函数功能(ARR){
为了(让我= 0;i < arr.length;i++){
…
}
无法访问 / i
}




示例3:变量提升(声明后首次使用)


函数(){
在第一个语句之后,没有错误
警报(未定义)
Var Val;
}



变量K首先使用后声明,输出未定义,并且不报告错误。

把VaR放在一边是不对的。


函数(){
在第一个语句、报表语法错误之后
警报(瓦尔)
让瓦迩;
}




示例4:变量提升(先判断后语句)


函数(){
如果(typeof val = = 'undefined){
…
}
var =
}



你也可以使用typeof来判断var语句的前面

但是改变VaR让,如果是错误的语法


函数(){
如果(typeof val = = 'undefined){
…
}
让=;
}



6指定如果让存在于代码块,块从一开始就形成一个封闭的范围,如果你使用它的声明之前,你会犯错误,在代码块中,它是不可让报关前使用变量。有语法术语叫时间死了区,简称TDZ TDZ。当然,不会出现在ES规范,它只是一个形象的描述。

注意事项

1。不能重复声明


变量,并允许重复语句
变量名=杰克;
让约翰的名字=;

双重复语句
让年龄= 24岁;
让年龄= 30岁;



执行时间语法错误

2。在让之后,可以从执行中删除匿名函数。


匿名函数
(函数(){())
Var(jQuery =函数){ };
…
窗口。
});

/块级别的写作范围
{
让(jQuery =函数){ };
…
窗口;
}



以上是本文的全部内容,希望大家能喜欢。