let 和 var 的区别
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 的区别相关推荐
- Javascript全局变量var与不var的区别深入解析
2019独角兽企业重金招聘Python工程师标准>>> 这篇文章主要介绍了Javascript全局变量var与不var的区别.需要的朋友可以过来参考下,希望对大家有所帮助 相信你对全 ...
- JS中 let 和var的区别
JS中let和var 的区别 简单介绍let var的常见变量提升 ES6可以用let定义块级作用域变量 let配合for循环的独特应用 let没有变量提升与暂时性死区 let变量不能重复声明 简单介 ...
- 在Javascript中 声明时用var与不用var的区别,== 和 ===的区别
今天,被问到两个JS问题,当时没回答到重点,问题虽然看起来简单,但是细节却马虎不得,在此做下记录: 1. 在Javascript中 声明时用"var"与不用"var&qu ...
- uniapp 获取到js文件var一个变量怎么获取到这个变量值_浅析Js中const,let,var的区别及作用域...
理解:let变量的作用域只能在当前函数中 js中const,let,var的区别及作用域_lianzhang861的博客-CSDN博客blog.csdn.net 全局作用域中,用 const 和 l ...
- JavaScript面试题,let和var的区别,let和const是什么意思?
一.let和var的区别 1.let声明的变量是块级作用域(所在花括号里),var是函数作用域和全局作用域 注意:let是可以定义全局变量,局部变量,块级作用域的变量. 2.let声明的变量 ...
- javascript中let和var的区别
let是es6中新增命令,也是用来声明变量的,可能很多小伙伴都像我一样,定义变量的时候都会用var而很少用到let,那么,let和var到底有什么区别呢? let和var的区别体现在作用域上.var的 ...
- var 和 let的区别_let 和 var的区别
js定义变量前言 1.js 定义变量 使用 var 或者let 2.js定义常量 使用 const 3.var 定义变量是用js语言诞生就有的: let定义变量是从ES6新语法开始的. 4.let定义 ...
- let、const和var的区别(涉及块级作用域)
let .const和var的区别 let.const.var在js中都是用于声明变量的,在没有进行ES6的学习前,我基本只会使用到var关键字进行变量的声明,但在了解了ES6之后就涉及到了块级作用域 ...
- 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参数的值并将需要的参数值展示在页面 ...
最新文章
- 科学家首次在野外直接观察到雀类新物种的快速形成
- 园内ORM讨论的经典文章及评论[转]
- UA SIE545 优化理论基础1 凸分析1 线性流形与超平面
- 帝国cms php替换,帝国CMS内容关键字替换图片标签解决方法
- 信息学奥赛C++语言:输出判断
- 【BZOJ1060】[ZJOI2007] 时态同步(树形DP)
- swift中变量的几种类型
- 华为今年不发布Mate系列新机;一加宣布与OPPO合并:将成为OPPO旗下独立品牌;Gradle 7.1 发布|极客头条...
- 内联元素转化为内联块元素的一些小细节
- 洛谷P2147[SDOI2008]洞穴勘测
- 第一个冷门与真正的死亡之组
- autocad2007二维图画法_AutoCAD2007教程(二)二维基本绘图命令
- 以太坊:用 Solidity 写测试用例
- Windows勒索病毒“永恒之蓝”漏洞补丁包
- EnlightenGAN: Deep Light Enhancement without Paired Supervision
- 工业触屏没有反应的原因?
- 运维人最重要的工具软件 -- VI
- 网页版第三方登录操作——微信登录
- Python编程快速上手让繁琐工作自动化中文高清完整版PDF带书签
- Teamview连接Windows server问题
热门文章
- 在Ubuntu下利用Eclipse调试FFmpeg
- 实验6 在应用程序中播放音频和视频
- 【SSH三个框架】Hibernate第八部分基础:经营-many关系
- [原创]Android Monkey测试工具使用介绍
- uos安装方法_UOS(最美操作系统)安装与使用体验
- 【Groovy】编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 )
- 【Android 逆向】类加载器 ClassLoader ( 类加载时机 | 隐式加载 | 显示加载 | 类加载步骤 | 装载 | 链接 | 初始化 )
- 【Java 虚拟机原理】Java 引用类型 ( 强引用 | 软引用 | 弱引用 | 虚引用 | 静态变量 )
- 【MATLAB】三维图形绘制 ( 绘制网格 + 等高线 | meshc 函数 | 绘制平面 + 等高线 | surfc 函数 )
- 【Android 安全】DEX 加密 ( Java 工具开发 | 生成 dex 文件 | Java 命令行执行 )