寒假学习——ES6(2)

coding

寒假学习——ES6(2)

箭头函数的适合场景:与this无关的回调、定时器、数组的方法回调,不太适合用在对象的方法中

函数参数默认值

  • 1、允许给形参赋初始值(注意一般具有默认值的参数位置要靠后)
  • 2、可以与 解构赋值一起用
function add(a, b, c = 10) {

return a + b + c;

}

let result = add(1, 2);//没传参数就用默认值传了就用传的参数

console.log(result);

function connect({host="127.0.0.1",username,password,port}){

console.log(host);

console.log(username);

console.log(password);

console.log(port);

}

connect({

// host:'localhost',

username:'admin',

password:'root',

port:'3306'

})

rest参数

  • ES6引入rest参数,来获取函数的实参,用来代替arguments

function fun(a,b,...args){

console.log(a);

console.log(b);

console.log(args);

}//rest参数必须放在最后...是格式

fun(1,2,3,4,5,6);

扩展运算符

  • …和rest参数一样(不过rest是放在形参位置),但是可以将数组转换成逗号分隔的参数序列
 const fruit=['banana','apple','pear'];

function print(){

console.log(arguments);

}

print(...fruit);

  • 用于数组合并

 const paopao=['banana','peach'];

const guoguo=['apple','grape'];

const hong=[...paopao,...guoguo];

console.log(hong);

  • 将伪数组转换成真正数组
const divs=document.querySelectorAll('div');

const divarray=[...divs];

console.log(divarray);

Symbol

  • Symbol是es6引入的新的原始数据类型,是一种类似于字符串的数据类型
  • Symbol值是唯一的用于解决命名冲突问题
  • 不能与其他数据类型进行运算
  • 不能用for in进行遍历但是可以用Reflect.ownKeys获取对象的所有键名
//创建Symbol类型的2种方式

let s=Symbol();

let s2=Symbol("红");

let s3=Symbol("红");

console.log(s2==s3);//false

let s4=Symbol.for("红");

let s5=Symbol.for("红");

console.log(s4==s5);//true

  • 数据类型记忆:

  • 对象添加属性和方法(独一无二)

 let game={

name:"狼人杀";

[Symbol('say')]:function(){

cosole.console.log("我可以发言");

},

[Symbol('duyao')]:function(){

cosole.console.log("我可以使用毒药");

}

}

console.log(game);

Symbol属性(11个)

  • 解释:例如第一个hasInstance,hasInstance作为Symbol的属性,Symbol.hasInstance整体作为对象的一个属性

//比如hasInstance属性

//可以将instanceof前面的值传入作为参数传递进去

class Person{

static [Symbol.hasInstance](param){

cosole.log(param);

return false;//由内部决定是返回true 或者false

}

}

let obj={};

console.log(o instanceof Person);

以上是 寒假学习——ES6(2) 的全部内容, 来源链接: utcz.com/z/508905.html

回到顶部