JS es6学习笔记

let 关键字 具有块级作用域特性,且不存在变量提升,for()中声明 是等于再其后的{}域中声明

特例 var a = 1;{ console.log(a) let a = 2;}这个报错,原因再{}中有let定义的变量a,但又后声明。

const 也具有块级作用域特性,且不存在变量提升(要先声明才能使用的意思)。

结构赋值

let arr = [1,2,3]; let [a,b,c] =arr ;

剩余参数 let arr = ['a1','a2','a3']; let[p1,...p2,] = arr;//p1='a1'; p2=['a2','kuia3']

let person = {name:'tod',age:99}; let {name,age }= person ; let {name: myname} //myname='tod'

箭头函数 不绑定this关键字,指向定义位置上下文(作用域)的this

只有一个变量可以省略 (),只有一行可以省

对象不具有作用域,所以以下this指向window

var age2 = 33;
var o ={
    age2:2,
    say:() => console.log(this.age2)
}
 o.say(); //33
扩展运算符可以将数组拆分成以逗号分隔的参数系列

var arr = [1,2,33]; console.log(...arr); //1 2 33

var a1 = [1,2,33]; var a2= [13,23,33]; a1.push(...a2);console.log(a3);//[1, 2, 33, 13, 23, 33]

var a1 = [1,2,33]; var a2= [13,23,33]; var a3 = [...a1,...a2];console.log(a3);//[1, 2, 33, 13, 23, 33]

将伪数组转换成真数组,var divs = document.getElementsByTagName('div'); var arr = [...divs];

Array构造函数将伪数组转换成真数组

var arlike ={'0':2,'1':3,length:2}; var arr=Array.from(arlike,item => item*2);console.log(arr);

原型 是构造函数的的一个prototype属性,是一个对象,这个对象中所以的属性和方法都被构造函数所拥有。

Object的常用方法

()的keys() 获取key数组,ObjectdefineProperty(obj,key,{})

js的严格模式

‘use strict’ //开启严格模式

1.不能随意删除已经声明的变量

2.变量必须先申明才能使用

关于this

3.严格模式下的this·指向的不是window而是undefined 

4.严格模式 构造函数不加new调用,this指向的是undefined,如果赋值会报错

5.定时器中的this还是指向window

函数变化:

1.函数不可以有重名参数

2、不允许再非函数的代码块中声明函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值