ES6基本语法之let和const
1.var可以重复声明
var a = 12;
var a = 5;
alert(a) //5
2.var无法限制修改
如:PI = 3.1415;
3.var没有块级作用域
{
}
像:
if(){
}
for(){
}
这都是块级作用域,在这里面定义的变量则在块级域外面是没法使用的。
4.let和const不能重复声明
let a =12;
let a=5;
alert(a)//报错
const a =12;
const a=5;
alert(a)//报错
5.let是可以重复修改的,但是const是常量,是不能重复修改的。
let a = 12;
a = 5;
alert(a); //5
const a = 12;
a = 5;
alert(a);//报错
6.块级作用域
if(true){
let a = 12;
}
alert(a);//报错,a is not defined
if(true){
const a = 12;
}
alert(a);//报错,a is not defined
语法快不仅仅是if,for等这些,如下面的也是块级作用域:
{
let a = 5;
console.log(a) //5
}
console.log(a); //报错,a is not defined
7.块级作用域的用法:
现在有三个button,分别点击,传统的写法是:
window.onload = function(){
var aBtn = document.getElementByTagName("input");
for(var i=0;i<aBtn.length;i++){
aBtn[i].onclick = function(){
alert(i)
}
}
}
结果每次弹出的都是3,然后我们采用函数作为块级作用域的方式在外边增加一层,如下:
window.onload = function(){
var aBtn = document.getElementByTagName("input");
for(var i=0;i<aBtn.length;i++){
(function(i){
aBtn[i].onclick = function(){
alert(i)
}
})(i)
}
}
虽然问题解决了,但是如果用现在ES6的let,本身就是在块级作用域中有效,更加方便;
window.onload = function(){
var aBtn = document.getElementByTagName("input");
for(let i=0;i<aBtn.length;i++){
aBtn[i].onclick = function(){
alert(i)
}
}
}
最后总结如下:
|:-
ES6基本语法之let和const的更多相关文章
- ES6新增语法(一)——let、const、var的区别
ES6简介 ES6是ECMAScript 6.0的简称,是javascript语言的下一代标准,已经在2015年6月正式发布上线.目的就是为了统一javascript的语法标准,可以用来开发大型应用程 ...
- es6新语法:let、const
关于浏览器的兼容情况,可以访问can i use进行查询. 目前的主要方式还是通过使用Babel编译来解决兼容性问题. 我们目前使用Babel将ES6的代码兼容到了IE8,但这是在放弃某些新特性的条件 ...
- ES6常用语法
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...
- ECMAScript简介以及es6新增语法
ECMAScript简介 ECMAScript与JavaScript的关系 ECMAScript是JavaScript语言的国际化标准,JavaScript是ECMAScript的实现.(前者是后者的 ...
- ES6新语法
ES6新语法概览 简介 ES6是JavaScript语言的新一代标准,加入了一些新的功能和语法,正式发布于2015年6月,亦称ES2015:该标准由ECMA(欧洲计算机制造联合会)的第39号技术专家委 ...
- ES6最新语法
ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准.因为当前版本的ES6是在2015年发布的,所以又称ECMAScript 2015. 也就是说,ES6就是ES2015. ...
- Vue(1)- es6的语法、vue的基本语法、vue应用示例,vue基础语法
一.es6的语法 1.let与var的区别 ES6 新增了let命令,用来声明变量.它的用法类似于var(ES5),但是所声明的变量,只在let命令所在的代码块内有效.如下代码: { let a = ...
- JavaScript ES6部分语法
ES6是JavaScript语言的新版本,它也可以叫做ES2015,之前学习的JavaScript属于ES5,ES6在它的基础上增加了一些语法,ES6是未来JavaScript的趋势,而且vue组件开 ...
- ES6常用语法简介import export
ES6常用语法简介import export let与var用法区别 //var var a = []; for (var i = 0; i < 10; i++) { a[i] = functi ...
随机推荐
- alpha七天冲刺计划
alpha七天冲刺计划(更新ing) 第一天:https://www.cnblogs.com/renluqian/p/9895895.html 第二天: 第三天: 第四天: 第五天: 第六天: 第七天 ...
- [LeetCode 题解]: Maximum Depth of Binary Tree
Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...
- jQuery,Table表头固定插件chromatable存在的问题及解决办法
在最近的项目中需要将表格的表头固定,搜寻了大量的资料,发现chromatable插件还是比较方便的.但是当我在一个页面中多次使用 chromatable固定对个表格的表头时问题就出现了,首先说明系统的 ...
- jquery-tmpl 插件
做项目时页面上有处功能是:在页面有处列表.有添加,我添加修改或删除后要刷新这个列表,首先想到的是局部刷新,但我们一般说的局部刷新就是利于ajax去后台调用数据并显示,而这里是一整个列表就比较麻烦了,刷 ...
- PostgreSQL按年月日分组
Select EXTRACT(year from cast(joindate as timestamp)) as Year, EXTRACT(month from cast(joindate as t ...
- Windows10使用
1.常见问题 Win10 的操作中心如果不见了 Windows10电脑系统时间校准 实现windows与ubuntu的之间的复制与粘贴 安卓手机传递文件到Windows系统电脑 安卓手机高速传递文件到 ...
- linux 磁盘保留空间设置
1.查看保留空间大小 tune2fs -l /dev/sda8 reserved blocks 2.调整保留空间大小(系统默认5%) tune2fs -m 0.5 /dev/sda8 参考链接:ht ...
- D. Magic Box(几何)
One day Vasya was going home when he saw a box lying on the road. The box can be represented as a re ...
- php生成N个不重复的随机数实例
思路: 将随机数存入数组,再在数组中去除重复的值,即可生成一定数量的不重复随机数. /* * array unique_rand( int $min, int $max, int $num ) * 生 ...
- 新建MAVEN项目--pom.xml报错
使用集成了maven的Eclipse版本新建maven项目后,配置文件pom.xml会在project以及引用的xsd文件处出现错误(第一.二行报错) 其中一个报错例子: Multiple annot ...