资讯专栏INFORMATION COLUMN

let声明变量

wall2flower / 668人阅读

摘要:声明变量在同一个作用域中可以声明同名的变量,但会污染变量会把声明的变量字自动提升至身上,作为的属性会提升变量,声明的变量会提升,只是未定义值,所以是找不到变量名是引用错误声明的变量不会提升,在之前使用,就会报错

let声明变量:

1、同一个作用域下不能声明同名的变量名

    let count = 11;
    let count = 12;//报错:Uncaught SyntaxError: Identifier "count" has already been declared    
    

2、不会把声明的变量放到window上:

    let temp = 10;
    console.log(temp);//10
    console.log(window.temp);//undefind
    

3、在所在的块中会形成块级作用域

    
    if for switch while .......
       
    for(let i=0; i<4; i++){
            console.log(i);//0       1      2       3
    }
    // 第一次做循环的时候会声明一个变量为i值为0
    // 第二次会重新声明变量为i,i的值为上一次结果作为初始值,i为1
    //依次类推...

4、不会提升变量

    //只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。 称呼叫做暂存死区(TDZ)。
    

var声明变量:

1、在同一个作用域中可以声明同名的变量,但会污染变量

    var index = 1;
    console.log(index);//1
    var index = 3;
    console.log(index);//3

2、会把声明的变量字自动提升至window身上,作为window的属性

    
    var num = 2;
    console.log(num);//2
    console.log(window.num);//2

3、var会提升变量

    
    console.log(a);//undefined,var声明的变量会提升,只是未定义值,所以是undefined
    console.log(b);//找不到变量名是引用错误ReferenceError
    
    var a = 1;
    let b = 2;  //let声明的变量不会提升,在之前使用,就会报错                                    
    
    
   

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/92029.html

相关文章

  • let,const与var的比较

    摘要:声明一个只读的常量。的作用域与命令相同只在声明所在的块级作用域内有效。这在语法上,称为暂时性死区,简称。暂时性死区也意味着不再是一个百分之百安全的操作。重复声明是允许在相同作用域内重复声明同一个变量的,而与不允许这一现象。 转载自阮一峰老师的ES6入门,稍有修改 1.基本概念MDN var声明了一个变量,并且可以同时初始化该变量。let语句声明一个块级作用域的本地变量,并且可选的赋予...

    lemon 评论0 收藏0
  • javascript基础var、 let、const

    摘要:全局作用域在最顶层声明的变量成为全局变量,全局变量拥有全局作用域,它们在程序的任何地方都是能够被访问到。作用域的主要作用是能够控制变量是使用范围。程序将会被中断,这个特性被称为暂存死区。 1. 变量声明、初始化 Javascript中使用一个变量之前需要先声明,我们可以使用var、let、const来声明一个变量。如果在给声明的变量指定初始值,就是初始化。如: var a = 1; ...

    lindroid 评论0 收藏0
  • ES6学习 第一章 let 和 const 命令

    摘要:外层作用域不报错正常输出块级作用域与函数声明规定,函数只能在顶层作用域和函数作用域之中声明,不能在块级作用域声明。规定,块级作用域之中,函数声明语句的行为类似于,在块级作用域之外不可引用。同时,函数声明还会提升到所在的块级作用域的头部。 前言:最近开始看阮一峰老师的《ECMAScript 6 入门》(以下简称原...

    番茄西红柿 评论0 收藏2637
  • 初探ECMAScript 6

    摘要:变量用命令声明,不会发生变量提升。报错不报错块级作用域实际上为新增了块级作用域。这表示外层代码块不受内层代码块的影响。以下两行都会报错声明变量的六种方法只有两种声明变量的方法命令和命令。之中,顶层对象的属性与全局变量是等价的。 let 与 cost 1.使用 let 关键字声明变量,与使用 var 关键字声明变量书写方式一致; { let a = 10; var b = 1; ...

    xiaotianyi 评论0 收藏0
  • 深入理解ES6 - var-let-const

    摘要:声明变量不存在变量提升。临时死区,而且不能在声明之前访问它。禁止重复声明相同的变量,否则报错。不存在变量提升,一旦执行快外就会立即销毁。声明不允许修改绑定,但允许修改值,也就是说用创建对象后,可以修改该对象的属性值。 知识点 var 声明变量: 1、存在变量提升,实际上var无论在哪里声明,都会被当做当前的作用域顶部声明变量。 2、可以重复声明,后声明的变量会覆盖前声明的变量。 let...

    alexnevsky 评论0 收藏0
  • ES6学习第一节 块级作用域的声明以及绑定 (一) let声明

    摘要:块级作用域绑定变量声明的变量声明与其他的一些计算机语言不同,在类的语言中,变量总是在被声明的地方创建而在中变量创建的位置取决于你如何声明它,为我们提供了新的声明方式用来让开发者能够更好的控制变量的作用域我们通过声明的变量,无论其声明位置在哪 块级作用域绑定 1.变量声明 JS的变量声明与其他的一些计算机语言不同,在类C的语言中,变量总是在被声明的地方创建;而在JS中变量创建的位置取决于...

    chanthuang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<