ES6es6新特性
一、变量
1.1let
var:只有全局作用域和函数作用域,全局作用域就是在任何位置都能访问var声明的全局变量
函数作用域,变量声明在函数内容,而函数外部无法访问函数内容的变量
let特点:
1.变量不能重复声明
2.块级作用域,只在代码块中执行
3.不存在变量提升
4.let声明变量具有暂时性死区,不影响作用域链
es6规定,在区块中使用let一旦声明就形成封闭作用域,凡是在声明之前使用这些变量就会报错,这就是死区
块级作用域:点击修改颜色的时候,进行实现的是for循环,使用var的时候是全局的也不是代码块的内容,而使用let则是定义了一部分代码块的内容items[i],可以使用
<script>
//使用var的时候,通常是保存i的值或者是保存this的值
var items = document.querySelectorAll(".item");
for(var i=0;i<items.length;i ){
items[i].index =i;
items[i].onclick=function (){
console.log(this.index)
}
}
//块级作用域let=0时是一块,let=1时是一块,以此类推并不会造成一些相互的影响
let items = document.querySelectorAll(".item")
//循环添加点击事件
for(let i =0;i<items.length;i ){
items[i].onclick = function (){
//若使用var
//this.style.background ="pink"
items[i].style.background ="pink"
}
}
</script>
var | let | const |
---|---|---|
只有全局作用域和函数作用域 | 有块级作用域 | 有块级作用域 |
存在变量提升 | 不存在变量提升 | 不存在变量提升 |
可以重复声明 | 不能重复声明 | 不能重复声明 |
没有死区 | 存在暂时性死区 | 存在暂时性死区 |
可以先声明后赋值 | 可以先声明 后赋值 | 声明即赋值声明常量 |
1.一定要赋初值
2.一般常量使用大写
3.常量值不能修改
4.块级作用域
5.对于数组和对象元素修改,不算对常量的修改,不会报错
二、变量的解构赋值
ES6中,允许按照一定模式从数组和对象中提取值,对变量进行赋值,这被称为解构赋值
<script>
//数组的解构赋值
let [a,b,c] = [1,2,[1,2]];
//定义变量abc,分别对其进行解构赋值,如果想忽略数组的某个元素对变量进行赋值,可以使用逗号处理
let [a,,c] = [1,2,[1,2]];
//rest参数
//使用rest参数来接受赋值数组的剩余元素,要确保这个rest参数放在赋值变量的最后一个位置,变量前面必须要有三个点,变量名随意
let [name1,name2,...rest] = ["Julius", "Caesar", "Consul", "of the Roman Republic"];
//字符串的解构
let user = {
name: "york",
age: 18
}
let {age, name} = user;
//字符串的解构赋值
let str = "byesame";
for(var i=0;i<str.length;i ){
console.log(str[i])
}
let [a, b, c, d, e, f, g] = str;
console.log(a, b, c, d, e, f, g)
//对象的解构赋值
let {name1:a,age:b}={name:100,age:200}
//对name,age进行重命名操作
console.log(name1,age);//报错,原因就是name和age被重新命名了,新的名字为a,b
console.log(a,b);//100,200
let user ={
name:"zhangsan",
age:22,
child:{
group1:{
one:111,
two:222
},group2:{
one:333
two:444
}
},
arr:[10,20,30]
}
//完全解构
let { name, age, child: { group1: { one, two }, group2: { one: one1, two: two2 } }, arr: [a, b, c] } = user;
console.log(name, age, one, two, one1, two2, a, b, c);
</script>
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhieghah
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22 -
excel打印预览压线压字怎么办
PHP中文网 06-22