对比let、const、var的异同
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的异同相关推荐
- R语言应用substr函数和substring函数抽取(extract)、删除(Remove)、替换、匹配(Match)特定的字符串、并对比两个函数的异同、grepl检查子字符串是否存在于字符串中
R语言应用substr函数和substring函数抽取(extract).删除(Remove).替换(Replace).匹配(Match)特定的字符串.并对比substr函数和substring函数在 ...
- 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 ...
- js中const,var,let区别
1.const定义的变量不可以修改,而且必须初始化. 1 const b = 2;//正确 2 // const b;//错误,必须初始化 3 console.log('函数外const定义b:' + ...
- js中const,var,let区别与用法
原文链接:https://blog.csdn.net/qq_36784628/article/details/80966826 js中三种定义变量的方式const, var, let的区别. 1. c ...
- javaScript中const,var,let区别与用法详解
业务场景:今天想从正则表达式数组对象取出几个参数的值,发现好多人都用的const声明的变量,这里一起总结一下吧. 上一篇-->前端使用正则表达式获取地址栏URL参数的值并将需要的参数值展示在页面 ...
- 【js】js中const,var,let区别
在node.js使用例子中,第一次看到const的声明,查询了一下,可以看得出来: http://www.cnblogs.com/ksl666/p/5944718.html 参考 主要内容是:js中三 ...
- let , const , var , 的区别
1.let : 变量不能重复声明 比如说 : let name = 'hygg'; let name = 'xiaohai'; 这样声明变量是会报错的 但是var 可以重复声明变量 var name ...
- let const var 区别详解
let和var区别 一.let不存在变量提升 首先先要了解什么叫变量提升?就是变量声明提前(!注意 不是赋值),var具有这个属性,下面有个小例子: console.log(a) var a='a' ...
- let const var 总结
文章目录 写在前面 1.var关键字 1.1 没有块级作用域的概念,有全局作用域.函数作用域的概念 1.2 存在变量提升 1.3 全局作用域用var声明的变量会挂载到window对象上 1.4 同一作 ...
最新文章
- 数据库MYSQL学习系列一
- 二叉搜索树(BFS)总结
- 嵌入式linux, CAN 驱动有关问题
- PHP: 深入了解一致性哈希
- 【渝粤题库】陕西师范大学210019 学前教育科研方法 作业(专升本)
- 干货时间:聊聊DevOps下的技术系列之契约测试
- 原始图像扩展_Resize Sense for Mac(图像处理软件)
- 2020年吉林省玉米种植分布数据/作物分布数据
- SPSS新手教程——通过探索性分析,检验数据的正态性分布
- 双路cpu比单路强多少_关于CPU单核单路/双路和双核双路的区别
- java queue toarray_Java PriorityBlockingQueue toArray()用法及代码示例
- python发送soap报文_使用Python将带附件的XML发送到SOAP ws
- 转换TIFF图像为JPEG2000格式
- npm安装报错(npm ERR! code EPERM npm ERR! syscall mkdir npm ERR! path C:\Program Files\nodejs\node_ca...)
- react 组件渲染控制
- append和extend的差别
- Windows 清理磁盘
- 多维随机变量:相互独立的随机变量
- 会话(gorilla/sessions)
- 创业穷途,我要加入丐帮
热门文章
- android 解决getColor()方法过时
- 控制反转-依赖倒置-依赖注入
- Java并发—基础操作
- kotlin学习笔记——类型、变量、属性
- json-server-----》基本使用
- 【Hibernate】could not instantiate class.. from tuple] with root cause
- eclipse 保存html 提示 save could not be completed
- centOS安装java
- 根据map键值对,生成update与select语句,单条执行语句
- Kafka 入门之集群部署遇到问题