ES6-ES11

ES6新语法:
let
let a,b,c;声明变量
let a = 10; 不允许变量名重复,但var可以重复声明
let a = 12;
let声明的变量就是块级作用域。
块级作用域种的变量,在块级之外不能访问,但var可以。
if else for while等后面跟着大括号都属于块级作用域。
let 不存在变量的提升,但var存在。
不影响作用域链。在块级作用域没找到参数,就会往上继续找。

for(var i =0;i < 3;i++){
	arr[i].onclick = function() {
		this.style.backgroundColor = 'red';//这里this要换成arr[i]就会报错
		因为var声明的变量是全局变量,而此时i变成了3,造成角标越界。
	}
}

const
他是用来定义常量的。
注意:
1. 定义常量要赋值,并且常量名大写
2. 常量的值不允许更改。
3. 它是块级作用域。
4. 对于数组和对象的元素的修改,不算对常量值的修改,不会报错。因为这里所指的常量是指他们的地址值不变,所以不会报错。但要这样写就会报错:const ARR = [1,2,3,4]写成ARR =12;这样就报错,因为地址值改变了。

ES6允许按照一定模式从数组和对象种提取值,对变量进行赋值,也称解构赋值。
数组解构:

	const ARR = [1,2,3,4];
    let [a,b,c,d] = ARR;
    console.log('a' + a);	//1
    console.log('b' + b);	2
    console.log('c' + c);	// 3
    console.log('d' + d);	//4

对象的解构:

	const A = {
        name: '海王星',
        age: 234,
        run: function() {
            console.log('运动');
        }
    }
    let {na,age,run} = A; //变量名要与对象中属性名相同,不然会找不到
    console.log(na); //undefined,
    let {run} = A; //方法的调用
    run();

模板字符串:
它也是字符串,类型string。

	let c = '屡屡';
    let s = `${c}是个率`;//反引号可以拼接字符串。

简化对象属性书写:

	 let a = 'pp';
    let fun = function() {
        console.log('kk');
    }
    const s = {
        a,
        fun,
        // fn: function(){}简写如下
        fn(){
            console.log('hh');
        }
    }

ES6允许使用箭头定义函数:=>

	let a = function() {};//简写如下
    let c = (a,b) => {
        return a + b;
    };

原因分析:this是静态的,它始终指向函数声明时所在作用域下的this值。无论调用什么方法。this指向的值不变。如call(),调用此方法this的值也不变。因为此方法会改变this的指向。

不能作为构造函数实例化对象。

不能使用arguments变量

函数简写:

	//函数简写
    //1.参数只有一个参数时小括号省略
    let a = n => {
        console.log(n);
    }
   a(6);//6
   //2.当方法体中只有一条语句,可以省略大括号和retuen关键字
   let s = n => n * n;
   console.log(s(4));//16

箭头函数适合与this无关的回调,定时器,数组的方法回调。不适合与this有关的回调,如事件回调、对象的方法。对象里的this指向调用对象但写成箭头函数this指向window。

允许给函数参数赋初始值。一般把形参赋值的形参放在最后。

ES6引入rest参数,用于获取函数的实参,并且替代arguments.
rest参数用法: function(…args){},参数前面要跟三个点,要是有多个参数,rest参数写在最后,rest参数返回的时数组,而arguments返回的是对象。

【…】扩展运算符能将数组转换为逗号分开的参数序列

	const arr = [1,2,3];
function a() {
    console.log(arguments);
}
// a(arr);//(3) [1, 2, 3]
a(...arr);//0: 1,1: 2,2: 3,把数组中的元素当作参数传递
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值