2019独角兽企业重金招聘Python工程师标准>>>

let ES6 新增命令, 用于声明变量, 作用域只限于其代码块内, 而 var 则能用于整个代码块( function)内.

  • 作用域 let 仅在其代码块内有效 var 全局或整个代码块 ( function )
function letTest() {let x = 1;if (true) {let x = 2;  // 不同的变量console.log(x);  // 2}console.log(x);  // 1
}function varTest() {var x = 1;if (true) {var x = 2;  // 同样的变量!console.log(x);  // 2}console.log(x);  // 2
}
var a = 5;
var b = 10;if (a === 5) {let a = 4; // 作用于 if 代码块var b = 1; // 作用于 function console.log(a);  // 4console.log(b);  // 1
} console.log(a); // 5
console.log(b); // 1
  • let 定义的 i 只有效于 for 循环体
for (let i = 0; i < 10; i++) {console.log(i); // 0, 1, 2, 3, 4 ... 9
}console.log(i); // i 没有定义
  • let 定义的变量 i 只作用于块级的代码块
var a = [];
for (let i = 0; i < 10; i++) {a[i] = function () {console.log(i);};
}
a[6](); // 6
  • var 定义变量 i 能作用于全局范围, 所以 console.log(i) 中的 i 指向的是每次循环自增的变量 i
var a = [];
for (var i = 0; i < 10; i++) {a[i] = function () {console.log(i);};
}
a[6](); // 10
  • let 不允许在相同作用域内,重复声明同一个变量
// 报错
function func() {let a = 10;var a = 1;
}// 报错
function func() {let a = 10;let a = 1;
}// 报错
function func(arg) {let arg;
}// 不报错
function func(arg) {{let arg; }
}

转载于:https://my.oschina.net/u/4054189/blog/3004072

let 和 var 的区别相关推荐

  1. Javascript全局变量var与不var的区别深入解析

    2019独角兽企业重金招聘Python工程师标准>>> 这篇文章主要介绍了Javascript全局变量var与不var的区别.需要的朋友可以过来参考下,希望对大家有所帮助 相信你对全 ...

  2. JS中 let 和var的区别

    JS中let和var 的区别 简单介绍let var的常见变量提升 ES6可以用let定义块级作用域变量 let配合for循环的独特应用 let没有变量提升与暂时性死区 let变量不能重复声明 简单介 ...

  3. 在Javascript中 声明时用var与不用var的区别,== 和 ===的区别

    今天,被问到两个JS问题,当时没回答到重点,问题虽然看起来简单,但是细节却马虎不得,在此做下记录: 1. 在Javascript中 声明时用"var"与不用"var&qu ...

  4. uniapp 获取到js文件var一个变量怎么获取到这个变量值_浅析Js中const,let,var的区别及作用域...

    理解:let变量的作用域只能在当前函数中 js中const,let,var的区别及作用域_lianzhang861的博客-CSDN博客​blog.csdn.net 全局作用域中,用 const 和 l ...

  5. JavaScript面试题,let和var的区别,let和const是什么意思?

    一.let和var的区别 1.let声明的变量是块级作用域(所在花括号里),var是函数作用域和全局作用域      注意:let是可以定义全局变量,局部变量,块级作用域的变量. 2.let声明的变量 ...

  6. javascript中let和var的区别

    let是es6中新增命令,也是用来声明变量的,可能很多小伙伴都像我一样,定义变量的时候都会用var而很少用到let,那么,let和var到底有什么区别呢? let和var的区别体现在作用域上.var的 ...

  7. var 和 let的区别_let 和 var的区别

    js定义变量前言 1.js 定义变量 使用 var 或者let 2.js定义常量 使用 const 3.var 定义变量是用js语言诞生就有的: let定义变量是从ES6新语法开始的. 4.let定义 ...

  8. let、const和var的区别(涉及块级作用域)

    let .const和var的区别 let.const.var在js中都是用于声明变量的,在没有进行ES6的学习前,我基本只会使用到var关键字进行变量的声明,但在了解了ES6之后就涉及到了块级作用域 ...

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

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

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

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

最新文章

  1. 科学家首次在野外直接观察到雀类新物种的快速形成
  2. 园内ORM讨论的经典文章及评论[转]
  3. UA SIE545 优化理论基础1 凸分析1 线性流形与超平面
  4. 帝国cms php替换,帝国CMS内容关键字替换图片标签解决方法
  5. 信息学奥赛C++语言:输出判断
  6. 【BZOJ1060】[ZJOI2007] 时态同步(树形DP)
  7. swift中变量的几种类型
  8. 华为今年不发布Mate系列新机;一加宣布与OPPO合并:将成为OPPO旗下独立品牌;Gradle 7.1 发布|极客头条...
  9. 内联元素转化为内联块元素的一些小细节
  10. 洛谷P2147[SDOI2008]洞穴勘测
  11. 第一个冷门与真正的死亡之组
  12. autocad2007二维图画法_AutoCAD2007教程(二)二维基本绘图命令
  13. 以太坊:用 Solidity 写测试用例
  14. Windows勒索病毒“永恒之蓝”漏洞补丁包
  15. EnlightenGAN: Deep Light Enhancement without Paired Supervision
  16. 工业触屏没有反应的原因?
  17. 运维人最重要的工具软件 -- VI
  18. 网页版第三方登录操作——微信登录
  19. Python编程快速上手让繁琐工作自动化中文高清完整版PDF带书签
  20. Teamview连接Windows server问题

热门文章

  1. 在Ubuntu下利用Eclipse调试FFmpeg
  2. 实验6 在应用程序中播放音频和视频
  3. 【SSH三个框架】Hibernate第八部分基础:经营-many关系
  4. [原创]Android Monkey测试工具使用介绍
  5. uos安装方法_UOS(最美操作系统)安装与使用体验
  6. 【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 )
  7. 【Android 逆向】类加载器 ClassLoader ( 类加载时机 | 隐式加载 | 显示加载 | 类加载步骤 | 装载 | 链接 | 初始化 )
  8. 【Java 虚拟机原理】Java 引用类型 ( 强引用 | 软引用 | 弱引用 | 虚引用 | 静态变量 )
  9. 【MATLAB】三维图形绘制 ( 绘制网格 + 等高线 | meshc 函数 | 绘制平面 + 等高线 | surfc 函数 )
  10. 【Android 安全】DEX 加密 ( Java 工具开发 | 生成 dex 文件 | Java 命令行执行 )