详解ES6中的let命令
let是ES6里面新的复制命令,let赋值命令只可以在{}代码块中被调用。下面通过实例给大家讲解es6中的let命令,具体内容如下所示:
1.let命令的用法和var命令类似,但let命令声明的变量只在let所在的代码块内有效
{ let a=10; var b=1; } console.log(a);//Uncaught ReferenceError: a is not defined console.log(b);
2.let命令不存“声明提前”现象,因此变量一定要先声明,后使用
console.log(foo); console.log(bar); var foo=2;//undefined let bar=3;//Uncaught ReferenceError: bar is not defined
3.只要当前块级作用域内存在let命令,它所声明的变量就绑定了这个块级作用域,不再受外部的影响
var tmp=123; if(true){ tmp='abc';//Uncaught ReferenceError: tmp is not defined,因为块级作用域内存在let命令声明的相同变量,违反了let命令先声明后使用原则 let tmp; }
4.let命令不允许在同一个作用域内,重复声明同一个变量
function foo(){ let a=10; let a=1;//Uncaught SyntaxError: Identifier 'a' has already been declared }
以上所述是小编给大家介绍的ES6中的let命令,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
相关推荐
-
ES6新特性一: let和const命令详解
本文实例讲述了ES6新特性中的let和const命令.分享给大家供大家参考,具体如下: 1. let 命令 ① 在js中是没有块级作用域的,var 声明的变量作用域是整个函数体,而let可以起到这一作用 { let a = 1; var b = 2; } console.log(b); // 2 console.log(a); // a is not defind ② 而let可以起到这一作用啊在js中变量和函数的声明会提升到当前作用域最顶部执行.这样就会出现问题. var a = []; //
-
ES6的新特性概览
Nick Justice是GitHub开发者计划的一员.早在ES6语言标准发布之前,他就借助像Babel这样的转译器以及最新版本的浏览器在自己的项目中使用ES6特性.他认为,ES6的新特性将极大地改变JavaScript的编写方式. ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,我们已经进入中国梦版本了).上一次标准的制订还是2009年出台的ES5.目前ES6的标准化工作正在进行中,预计会在14年12月份
-
ES6中非常实用的新特性介绍
ECMAScript 6离我们越来越近了,作为它最重要的方言,Javascript也即将迎来语法上的重大变革,InfoQ特开设"深入浅出ES6"专栏,来看一下ES6将给我们带来哪些新内容. 写在前面 ES6 已经提交给 Ecma 大会审查了,也就是说,我们将迎来一大波 javascript 的最新标准,还有一些语法糖.ES6 中有很多值得我们关注的东西,下面是我发现的一些我们最常用的一些新特性,进行记录一下. 1. for-of循环 这个东西用来循环数组很爽,原因呢,是因为它弥补了目前
-
ES6新特性之函数的扩展实例详解
本文实例讲述了ES6新特性之函数的扩展.分享给大家供大家参考,具体如下: 一.函数参数默认值 1. ES6允许为函数的参数设置默认值,即直接写在参数定义的后面. function log(x, y = 'World') { console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China log('Hello', '') // Hello 这种写法有两个好处:首先,阅读代码的人,可以立刻意识
-
ES6新特性之模块Module用法详解
本文实例讲述了ES6新特性之模块Module用法.分享给大家供大家参考,具体如下: 一.Module简介 ES6的Class只是面向对象编程的语法糖,升级了ES5的构造函数的原型链继承的写法,并没有解决模块化问题.Module功能就是为了解决这个问题而提出的. 历史上,JavaScript一直没有模块(module)体系,无法将一个大程序拆分成互相依赖的小文件,再用简单的方法拼装起来.其他语言都有这项功能. 在ES6之前,社区制定了一些模块加载方案,最主要的有CommonJS和AMD两种.前者用
-
ES6新特性之字符串的扩展实例分析
本文实例讲述了ES6新特性之字符串的扩展.分享给大家供大家参考,具体如下: 一.ES5字符串函数 concat: 将两个或多个字符的文本组合起来,返回一个新的字符串. indexOf: 返回字符串中一个子串第一处出现的索引(从左到右搜索).如果没有匹配项,返回 -1 . charAt: 返回指定位置的字符. lastIndexOf: 返回字符串中一个子串最后一处出现的索引(从右到左搜索),如果没有匹配项,返回 -1 . match: 检查一个字符串匹配一个正则表达式内容,如果么有匹配返回 nul
-
简单谈谈ES6的六个小特性
前言 本文主要针对ES6做一个简要介绍,也许你还不知道ES6是什么, 实际上, 它是一种新的JavaScript规范.在这个大家都很忙碌的时代,如果你想对ES6有一个快速的了解,那么请继续往下读,去了解当今最流行的编程语言JavaScript最新一代的六大特性. 过去一年ES6带来了十足的进步,下面是6个我最喜欢的JS新增特性. 一.Object[key] 有时候不能在对象变量声明时设置所有的key/value,所以得再声明之后添加key/value. let myKey = 'key3'; l
-
ES6新特性之Symbol类型用法分析
本文实例讲述了ES6新特性之Symbol类型用法.分享给大家供大家参考,具体如下: Symbol类型 1. 为了避免属性名的冲突,ES6新增了Symbol类型.Symbol可以产生一个独一无二的值. let s1 = Symbol('a'); let s2 = Symbol('a'); console.log(s1); //Symbol(a) console.log(typeof s1); //symbol console.log(s1 == s2); //false 2.Symbol用于属性名
-
JavaScript ES6的新特性使用新方法定义Class
ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代号harmony(和谐之意,显然没有跟上我国的步伐,我们已经进入中国梦版本了).上一次标准的制订还是2009年出台的ES5.目前ES6的标准化工作正在进行中,预计会在14年12月份放出正式敲定的版本.但大部分标准已经就绪,且各浏览器对ES6的支持也正在实现中. ES6中定义类的方式, 就是ES3和ES5中定义类的语法糖,虽然也有些区别,但是整体定义类的方式更加简洁,类的继承更加方便, 如果想对ES6中的继承更加
-
JS变量中有var定义和无var定义的区别以及es6中let命令和const命令
之前我们在写js代码的时候都知道可以用var定义全局变量和局部变量,也可以省略var,而且在非严格模式下不会报错,但是并不知道两者的区别... var x = 1; y = 4; console.log(x);//1 console.log(y);//4 console.log(window.x);//1 console.log(window.y);//4 简单测试下可以知道定义的x和y都被挂载在window对象上,变为window下的属性,这并不能说明什么... delete x; delet
-
深入浅出ES6之let和const命令
let和const声明的变量只在代码块内有效 { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1 不存在变量提升 变量一定要在声明后使用,否则报错 var tmp = 123; if (true) { tmp = 'abc'; // ReferenceError let tmp; } 不允许重复声明 // 报错 function () { let a = 10; var a = 1; } 块级作用域 f
-
ES6使用let命令更简单的实现块级作用域实例分析
本文实例讲述了ES6使用let命令更简单的实现块级作用域.分享给大家供大家参考,具体如下: let 带来了更简单的块级作用域 1. ES6新增了let命令,用于声明变量.其与var的不同在于,用let声明的变量只在 { } 内有效.这使得我们可以很方便的实现块级作用域,不再使用立即实行函数. { let a=1; var b=2; } console.log(a); //undefined console.log(b); //2 在for循环中使用let可以有效避免全局变量污染. 2. let不
随机推荐
- asp.net ASPxTextBox等控件实现"回车模拟Tab"的 常用代码整理
- 如何使用jquery修改css中带有!important的样式属性
- 关于SQL中CTE(公用表表达式)(Common Table Expression)的总结
- spring cloud学习教程之config修改配置详解
- 几个实用的PHP内置函数使用指南
- js实现模糊匹配功能
- 使用Python判断IP地址合法性的方法实例
- 用缓冲技术提高JSP应用的性能和稳定性
- C++ 中实现把EXCEL的数据导入数据库(ACCESS、MSSQL等)实例代码
- Android教程之开机流程全面解析
- Powershell小技巧之通过EventLog查看近期电脑开机和关机时间
- Android实现滑动选择控件实例代码
- Android Camera实现毫秒级拍照实例
- Jquery插件之Fancybox丰富的弹出层效果附源码下载
- Jar打包用法详解
- 原生js实现可爱糖果数字时间特效
- php相当简单的分页类
- JS写谷歌浏览器chrome的外挂实例
- 浅谈使用Maven插件构建Docker镜像的方法
- 使用python PIL库实现简单验证码的去噪方法步骤