寒假學習——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);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/251711.html
標籤:其他
