JavaScript es6语法

使用let声明的变量具有块级作用域(在花括号内才能访问,在外面访问不到该变量)
例如:防止循环变量在循环外部被访问到

const声明常量:具有块级作用域并且声明常量时必须赋初始值,常量赋值后,值不能修改(地址不能更改)

解构赋值:
例:
let ary=[1,2,3];
let [a,b,c,d]=ary;
abc将被赋值为123,d为undefined;
例:
let person={
    
    name:'lisi',age:30,sex:'男'};
let {
    
    name,age,sex}=person;

箭头函数:箭头函数是用来简化函数定义语法的
const fn =(形式参数)=>{
    
    
	console.log(123);
}
fn();

在箭头函数中 如果函数体中只有一句代码,并且代码的执行结果就是函数的返回值 函数体大括号可以省略,如果形势参数只有一个,形式参数的小括号也可以省略
const sum = (n1+n2) => n1 + n2;
const result = sum(10,20);
console.log(result);

箭头函数不绑定this关键字,箭头函数中得到this,指向的是他父级的this
function fn (){
    
    
	console.log(this);
	return () =>{
    
    
		console.log(this);
	}
}
const obj ={
    
    name:'zhangsan'};
const resFn=fn.call(obj);//resFn接受fn当中返回的箭头函数
resFn();

例题:
var age=100;
var obj={
    
    
	age:20,
	say:()=>{
    
    
		alert(this.age);
	}
}
obj.say();
//此时弹出的是100,因为obj对象没有产生作用域,箭头函数的this指向window

剩余参数(不确定传入的实际参数个数,只要在形式参数前加...(扩展运算符)):
const sum = (...args)=>{
    
    
	let total=0;
	args.forEach((item)=>{
    
    
		total+=item;
	})
	/*
	args.forEach(item=>total+=item);
	一个参数可以省略小括号,一行代码省略花括号
	*/
	return item;
}

扩展运算符可以将数组拆分成以逗号分隔的参数序列
let ary=["a","b","c"];
console.log(...ary);
console.log("a","b","c");

扩展运算符可以应用于合并数组
方法一:
let ary1=[1,2,3];
let ary2=[3,4,5];
let ary3=[...ary1,...ary2];
方法二:
ary1.push(...ary2);

扩展运算符可以把伪数组转化为真正的数组,这样就能使用数组的各类方法:
let oDivs = document.getElementsByTagName('div');
oDivs = [...oDivs];

构造函数方法:Array.from():将伪数组或者可遍历对象转化为真正的数组
let arrayLike = {
    
    
	'0':'a',
	'1':'b',
	'2':'c',
	length:3,
}
let arr2 = Array.from(arrayLike);
console.log(arr2);
var ary=Array.from(arrayLike,(item) => {
    
    
	return item * 2
})
//var ary = Array.from(arrayLike,item => item*2);

实例方法:includes():表示某个数组是否包含给定的值,返回布尔值
[1,2,3].includes(2)//true
[1,2,3].includes(4)//false

模板字符串解析变量 例:
//用${}可以拼接字符串和变量
let name = `zhangsan`(1左边)
let sayHello = `hello,my name is ${
      
      name}`//hello,my name is zhangsan
模板字符串可以换行:
let result = {
    
    
	name:'zhangsan',
	age:20,
	sex:'男'
}

let html = `<div>
	<span>${
      
      result.name}</span>
	<span>${
      
      result.age}</span>
	<span>${
      
      result.sex}</span>
</div>;`

String的扩展方法:
实例方法:startsWith()和endsWith()
startsWith():表示参数字符串是否在原字符串的方法,返回布尔值
endsWith():表示参数字符串是否在原字符串的尾部,返回布尔值
let str = 'Hello world!';
str.startWith('Hello')//true
str.endsWith('!')//true

String的扩展方法:
实例方法:repeat():repeat方法表示将原字符串串重复n次,返回一个新的字符串
'x'.repeat(3)//"xxx"

Set数据结构:
创建set数据结构:const s = new Set();set创建数据结构时可以往set当中传入参数,如果传入的参数是一个数组,set会自动去重

set数据结构实例方法:
add(value):添加某个值,返回set结构本身
delete(value):删除某个值,返回一个布尔值,表示删除是否成功
has(value):返回一个布尔值,表示该值是否为set成员
clear(): 清除所有成员,没有返回值
例:
const s=new Set();
s.add(1).add(2).add(3);//向set结构中添加值
s.delete(2);//删除set结构中的2值
s.has(1);//表示set结构中是否有1这个值,返回布尔值
s.clear();//清除set结构中的所有值

猜你喜欢

转载自blog.csdn.net/ziyue13/article/details/114716364