let、const和var的区别

var : 作用域是函数体的全部,声明变量提升

  console.log(num);//undefinedvar num = 2 //循环内变量过度共享for (var i = 0; i < 4; i++) {alert(i);//0,1,2,3}for (var i = 0; i < 4; i++) {setTimeout(function () {alert(i)//4,4,4,4}, i * 100);}

循环本身及三次timeout回调均共享唯一的变量i。当循环结束执行时,i的值为4,此时回调尚未被触发.
所以当第一个timeout执行时,调用alert(i),此时i的值为4,所以最终弹出来的是4.

let声明的变量拥有块级作用域,声明的全局变量不是全局对象的属性,声明的变量直到控制流到达该变量被定义的代码行时才会被装载,用let重定义变量会抛出一个语法错误

  var j = 100;for (let i = 0; i < 4; i++) {console.log(j)//not defined,暂时性死去,即使在该作用域外已经存在这个变量,如果作用域内需要使用 let、 const 再次声明,则必须提前,否则无法使用,直到声明后才可以使用setTimeout(function () {alert(i)//0、1、2、3,块级作用域}, i * 100);let j = 0;//let j = 2;//SyntaxError,重定义变量会抛出一个语法错误console.log(j)//0,0,0,0}window.i//undefined,不是全局对象的属性

const声明的变量与let声明的变量类似,它们的不同之处在于,const声明的变量只可以在声明时赋值,不可随意修改,否则会导致SyntaxError(语法错误).

    const num = 1;num = 2;// Assignment to constant variable

对比let、const、var的异同相关推荐

  1. R语言应用substr函数和substring函数抽取(extract)、删除(Remove)、替换、匹配(Match)特定的字符串、并对比两个函数的异同、grepl检查子字符串是否存在于字符串中

    R语言应用substr函数和substring函数抽取(extract).删除(Remove).替换(Replace).匹配(Match)特定的字符串.并对比substr函数和substring函数在 ...

  2. let const var 比较说明

    现在先来做两道练习题 for(var i=0;i<10;i++){var a='a'let b = 'b' } console.log(a) console.log(b) for(var i=0 ...

  3. js中const,var,let区别

    1.const定义的变量不可以修改,而且必须初始化. 1 const b = 2;//正确 2 // const b;//错误,必须初始化 3 console.log('函数外const定义b:' + ...

  4. js中const,var,let区别与用法

    原文链接:https://blog.csdn.net/qq_36784628/article/details/80966826 js中三种定义变量的方式const, var, let的区别. 1. c ...

  5. javaScript中const,var,let区别与用法详解

    业务场景:今天想从正则表达式数组对象取出几个参数的值,发现好多人都用的const声明的变量,这里一起总结一下吧. 上一篇-->前端使用正则表达式获取地址栏URL参数的值并将需要的参数值展示在页面 ...

  6. 【js】js中const,var,let区别

    在node.js使用例子中,第一次看到const的声明,查询了一下,可以看得出来: http://www.cnblogs.com/ksl666/p/5944718.html 参考 主要内容是:js中三 ...

  7. let , const , var , 的区别

    1.let : 变量不能重复声明 比如说 : let name = 'hygg'; let name = 'xiaohai'; 这样声明变量是会报错的 但是var 可以重复声明变量 var name  ...

  8. let const var 区别详解

    let和var区别 一.let不存在变量提升 首先先要了解什么叫变量提升?就是变量声明提前(!注意 不是赋值),var具有这个属性,下面有个小例子: console.log(a) var a='a' ...

  9. let const var 总结

    文章目录 写在前面 1.var关键字 1.1 没有块级作用域的概念,有全局作用域.函数作用域的概念 1.2 存在变量提升 1.3 全局作用域用var声明的变量会挂载到window对象上 1.4 同一作 ...

最新文章

  1. 数据库MYSQL学习系列一
  2. 二叉搜索树(BFS)总结
  3. 嵌入式linux, CAN 驱动有关问题
  4. PHP: 深入了解一致性哈希
  5. 【渝粤题库】陕西师范大学210019 学前教育科研方法 作业(专升本)
  6. 干货时间:聊聊DevOps下的技术系列之契约测试
  7. 原始图像扩展_Resize Sense for Mac(图像处理软件)
  8. 2020年吉林省玉米种植分布数据/作物分布数据
  9. SPSS新手教程——通过探索性分析,检验数据的正态性分布
  10. 双路cpu比单路强多少_关于CPU单核单路/双路和双核双路的区别
  11. java queue toarray_Java PriorityBlockingQueue toArray()用法及代码示例
  12. python发送soap报文_使用Python将带附件的XML发送到SOAP ws
  13. 转换TIFF图像为JPEG2000格式
  14. npm安装报错(npm ERR! code EPERM npm ERR! syscall mkdir npm ERR! path C:\Program Files\nodejs\node_ca...)
  15. react 组件渲染控制
  16. append和extend的差别
  17. Windows 清理磁盘
  18. 多维随机变量:相互独立的随机变量
  19. 会话(gorilla/sessions)
  20. 创业穷途,我要加入丐帮

热门文章

  1. android 解决getColor()方法过时
  2. 控制反转-依赖倒置-依赖注入
  3. Java并发—基础操作
  4. kotlin学习笔记——类型、变量、属性
  5. json-server-----》基本使用
  6. 【Hibernate】could not instantiate class.. from tuple] with root cause
  7. eclipse 保存html 提示 save could not be completed
  8. centOS安装java
  9. 根据map键值对,生成update与select语句,单条执行语句
  10. Kafka 入门之集群部署遇到问题