• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

ES6es6新特性

武飞扬头像
简单Janeee
帮助1

一、变量
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
系列文章
更多 icon
同类精品
更多 icon
继续加载