Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带let的JavaScript块范围_Javascript_Var_Let - Fatal编程技术网

带let的JavaScript块范围

带let的JavaScript块范围,javascript,var,let,Javascript,Var,Let,我修改了下面给出的原始脚本 风险值的类型是什么?仅在为变量赋值后才赋值的类型 var b=1是否覆盖前面的语句var b=10?或者只是变量b let是非标准语言功能吗?我读到ECMAScript 6支持它 var a=5; var b=10; 如果(a==5){ 设a=4;//作用域在if块内 var b=1;//作用域在函数内部 警惕(a);//4 警告(b);//1 } 警告(a);//5. 警惕(b);//1 是,var x没有类型var x=1的类型为number var b不会覆

我修改了下面给出的原始脚本

  • 风险值的类型是什么?仅在为变量赋值后才赋值的类型

  • var b=1
    是否覆盖前面的语句
    var b=10
    ?或者只是变量b

  • let是非标准语言功能吗?我读到ECMAScript 6支持它

  • var a=5;
    var b=10;
    如果(a==5){
    设a=4;//作用域在if块内
    var b=1;//作用域在函数内部
    警惕(a);//4
    警告(b);//1
    } 
    警告(a);//5.
    警惕(b);//1
  • 是,
    var x
    没有类型
    var x=1
    的类型为
    number
  • var b
    不会覆盖其他语句,它只是为给定范围设置一个新变量。这意味着在该范围内,您将获得新分配的b值
  • let
    是es6。因此,是和否取决于代码运行的位置
  • 风险值的类型是什么

    var
    没有类型。它是一个用于声明变量的函数

    是否仅在将值指定给变量后才指定类型

    当您声明一个变量但未为其赋值时,其值将为,其类型为

    var b=1是否覆盖先前的语句var b=10?或者只是变量b

    变量语句被提升到顶部。这意味着这些是等效的:

    /。。。
    var b=10;
    如果(cond)var b=1;
    
    var-b;
    // ...
    b=10;
    如果(cond)b=1;
    
    因此,由于已经声明了
    b
    var b=1
    将等同于
    b=1

    let是非标准语言功能吗?我在这里读到ECMAScript 6支持它

    let
    于年引入,当时不是任何ECMA-262标准的一部分


    现在ECMAScript 6已经对其进行了标准化(与JS1.7有点不同)。但是,请注意,ECMAScript 6仍然是一个草案。

    ECMAScript 6是一个即将推出的标准,它还没有得到广泛的支持,而且还不完整,因此它仍然需要更改。变量没有类型。根据MDN,let正在被弃用并在将来被删除。我建议不要用它。只有(和)将被删除。