ES标准下中的let,var和const

  1. let会报重复声明,var则比较随意,重不重复无所谓

    // 使用 var 的时候重复声明变量是没问题的,只不过就是后面会把前面覆盖掉
    var num = 100
    var num = 200
    // 使用 let 重复声明变量的时候就会报错了
    let num = 100
    let num = 200 // 这里就会报错了
    // 使用 const 重复声明变量的时候就会报错
    const num = 100
    const num = 200 // 这里就会报错了
  2. var对变量预解析可以“先使用再定义”,而let和const则不行,也就是没有变量提升

    // 因为预解析(变量提升)的原因,在前面是有这个变量的,只不过没有赋值
    console.log(num) // undefined
    var num = 100
    // 因为 let 不会进行预解析(变量提升),所以直接报错了
    console.log(num)
    let num = 100
    // 因为 const 不会进行预解析(变量提升),所以直接报错了
    console.log(num)
    const num = 100
  3. “let先使用再定义”(补充上一条)



  4. var与window挂钩,会自动成为window的属性,let不会

    var name = 'dasha'
    let age = 12
    console.log(window.name) // dasha
    console.log(window.age) // undefined
  5. const定义常量,以上的都是叫变量,let和var都可以更改变量的值,const则不行

    let num = 100
    num = 200
    console.log(num) // 200
    const num = 100
    num = 200 // 这里就会报错了,因为 const 声明的变量值不可以改变(我们也叫做常量)
  6. const声明时必须赋值,否则就会报错

    let num
    num = 100
    console.log(num) // 100 const num // 这里就会报错了,因为 const 声明的时候必须赋值
  7. let和const都会被代码块限制作用范围,而var只有函数才能限制范围,其他的不能限制

    // var 声明的变量只有函数能限制其作用域,其他的不能限制
    if (true) {
    var num = 100
    }
    console.log(num) // 100
    // let 声明的变量,除了函数可以限制,所有的代码块都可以限制其作用域(if/while/for/...)
    if (true) {
    let num = 100
    console.log(num) // 100
    }
    console.log(num) // 报错 // const 声明的变量,除了函数可以限制,所有的代码块都可以限制其作用域(if/while/for/...)
    if (true) {
    const num = 100
    console.log(num) // 100
    }
    console.log(num) // 报错

ES(ECMAScript)标准下中的let、var和const的更多相关文章

  1. JS中let、var、const的区别

    先看let和var: 1. console.log(a); // undefined var a = 3; console.log(a); // Uncaught ReferenceError: Ca ...

  2. linux中/etc与/var目录,各是什么意思?这两个目录下的文件有什么特点?

    http://zhidao.baidu.com/link?url=DkxU9CyhJb_dIUAPCmPmxRtQsENgCzqy5qnLPEj_V9DqNzdt6Qya0U5iCVRCYFkgoRo ...

  3. 标准C++中的string类的用法总结

    标准C++中的string类的用法总结 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的确,MFC中的CString类使用起来真的非常的方便好用.但是如果离开了MFC框架,还有 ...

  4. [C++][语言语法]标准C++中的string类的用法总结

    转自:http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html 要想使用标准C++中string类,必须要包含 #include ...

  5. STL笔记(6)标准库:标准库中的排序算法

    STL笔记(6)标准库:标准库中的排序算法 标准库:标准库中的排序算法The Standard Librarian: Sorting in the Standard Library Matthew A ...

  6. 标准C++中string类的用法

    转自博客园:http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html 相信使用过MFC编程的朋友对CString这个类的印象应该非 ...

  7. 标准C++中的string类的用法总结(转)

    http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻吧?的 ...

  8. 彻底弄清c标准库中string.h里的常用函数用法

    在我们平常写的c/c++程序,一些算法题中,我们常常会用到c标准库中string.h文件中的函数,这些函数主要用于处理内存,字符串相关操作,是很有用的工具函数.而且有些时候,在笔试或面试中也会出现让你 ...

  9. 第28篇 js中let和var

      let与var 在js中声明一个变量除了一个var 还有一个let的声明.对于var 在前面的作用域中已经讲过,这次主要说下二者的区别: 在MDN上有这样的一个demo: var list = d ...

  10. string标准C++中的的用法总结(转)

    转自:http://www.cnblogs.com/xFreedom/archive/2011/05/16/2048037.html 相信使用过MFC编程的朋友对CString这个类的印象应该非常深刻 ...

随机推荐

  1. 数论之GCD+LCM+扩展欧几里得

    最大公约数GCD 整数a和b的最大公约数记为gcd(a,b) <1 经典的欧几里得算法,辗转相除法 int gcd(int a, int b){ return b == 0 ? a : gcd( ...

  2. Date 对象 定时器

    日期对象 Date 概述:date是表示日期时间的对象,主要的方法是获取时间和设置日期时间. date声明 使用new Date声明 有4种方式 1.不设参数 是获取当前的本地时间 var date ...

  3. python:包含’e’和‘-’的 str 转 float

    from functools import reduce def str2float(s): s = s.split('.') a = s[0] b = s[1] if a[0] == '-': a ...

  4. openlayers-1 下载及安装使用

    javascript - Import from in Openlayers - Geographic Information Systems Stack Exchange 在浏览器中运行开放层示例 ...

  5. [postman的使用]postman捕获https请求

    解决方法: 1.settings 2.SSL certificate verifivation设置为关闭

  6. C#下解析、生成JAVA的RSA密钥、公钥

    1.从 https://www.nuget.org/packages/BouncyCastle/下载对应的nupkg包,放到本地一个文件夹中 2.打开VS2010,工具->NuGet程序包管理器 ...

  7. pytorch杂谈

    inputs=tt.randn([10,3])可以随机生成高维度的数组 2. 定义一个模型为modle modle.cpu()将其调用到cpu modle.cuda()将其调用到gpu 3. 关于Cr ...

  8. PVE设置屏幕休眠和笔记本合盖不休眠

    注意源文件中的命令前的#号要删除. 二.屏幕休眠

  9. vue-设置页面滚动高度不生效问题处理

    首先,我遇到的问题是 无法保留(B)页面滚动的位置(scrollTop ) 无法赋值?! 黄色框是滚动部分(非最外层) 参考:https://www.csdn.net/tags/OtDakg2sOTA ...

  10. 照亮体育馆 Barisal Stadium

    UVA10641 题目为逆时针顺序编号,这里直接将数组开两倍来处理环.(然而不知为啥开到1000也能过) 定义: Corners[i]Corners[i]Corners[i]为体育馆点的坐标. Lig ...