ES5&&ES6

ES5&&ES6
1、let
  1.塊級做用域, let定義的變量只在代碼塊中有效
  2.let聲明的變量不會提早(前置)(意味着必須先定義後使用)
  3.不能重複定義 ,在同一個做用域中不能聲明同名的變量
  4.暫時性死區(當內部變量與外部變量同名時,內部變量會屏蔽外部變量)
  注:let和var的區別
  1)let聲明的變量是塊級做用域(所在花括號裏),var是函數做用域和全局做用域
     注意:let是能夠定義全局變量,局部變量,塊級做用域的變量。(和寫代碼的位置有關)
  2)let聲明的變量不會聲明提高,var會聲明提高
  3)從代碼的寫法上,let不能聲明同名的變量,var能夠。
2、this和bind
1.this
  1).以函數的形式調用時,this永遠都是window
  2).在事件處理函數時,this是事件源.
2.bind(this從新指代的對象)(只能爲匿名函數服務)
3.call和apply
   call和apply本質上能改變函數所屬的對象(函數內部的this)
   參數是誰,this就是誰
  Object.call(this,obj1,obj2,obj3)
  Object.apply(this,arguments)
3、JSON.parse/JSON.stringfy
   JSON字符串和對象的直接的轉換
    字符串轉換成JSON對象:JSON.parse
    JSON對象轉換成字符串:JSON. stringify
  var str = '{"id":"123","name":"456"}';
   let obj = JSON.parse(str);
   console.log(obj.id);
   console.log(obj.name);
   let str1 = JSON.stringfy(obj);
   console.log(str1.id);
   console.log(str1.name);
 
4、const只讀變量
    用const來修飾一個變量,就意味着該變量裏的數據只能被訪問,而不能被修改,也就是意味着const「只讀」(readonly)
    const所修飾的變量必須賦初始值
    const修飾的是直接指向(修飾)的內存
    引用類型有兩塊內存區域
    引用類型表明的是保存地址的內存區域,數組元素表示的是數據
5、for in與for of
    let strArr = [];
    for(let index in strArr){
       console.log(strArr[index]);
    }
   for(let t of strArr){
       console.log(t);
    }
6、字符串的擴展
   判斷字符串是否包含在另外一個字符串中
   ES5    indexOf(參數)
   ES6    includes(參數)    返回布爾值,表示是否找到參數的字符串
             startsWith(參數)   返回布爾值,參數是否在源字符串的頭部
             endsWith(參數)   返回布爾值,參數是否在源字符串的尾部
7、箭頭函數(針對於匿名函數)  
      eg:   x=>x*5至關於function(x){ return x*5 }
      var f=(id,name)=>({id:id,name:name});
      //等價於:
   
   var f=(id,name)=>{
         return {id:id,name:name}
     };
 
8、解構賦值(針對於數組、對象)
    優勢:1. 可讓一個函數返回一個的值
              2. 能夠實現兩個數的交換
              3.能夠將多個變量進行初始化
    eg:  let a=1;b=22;t;
         a=a+b;
         b=a-b;
         a= a-b;
         console.log(a,b);
 
eg:  let [v1,[v2,v3],[v4,v5]] = [12,[23,34],[56,67],[5,6]];
    console.log(v1);
    console.log(v2);
    console.log(v3);
    console.log(v4);
    console.log(v5);
    let {name,age} = {name:"dahuang",age:18};
    console.log(name,age);
    
9、Set和Map
set特色:自動去重,無下標
let set = Set([2,3,5,6,2,3,2,1]);
console.log(set.size);     //5
for(let t of set){
    console.log(t);
}
set集合的方法:
add(參數)   向集合中添加一個元素
delete(參數)    刪除集合中某個數
has(參數)        判斷集合中是否含有某個值
clear(參數)     清空集合中的元素
from(參數)   將集合轉爲數組
 
Map : 鍵值對
set()   向集合中添加一個元素
get(鍵)    根據鍵去取值
delete( 鍵)    刪除集合中的某個數
has(鍵)     clear(參數)     清空集合中的元素
from(參數)   將集合轉爲數組
Map的遍歷
for(let t of map){
    console.log(t[0] + t[1]);   //0表明key,1表明value
}
 
10、Symbol
 1.表示獨一無二的值,它是基本類型中的一種。
 2.它是內置基本對象,不能使用new關鍵字來使用。let symbol = Symbol();
let symbol1 = symbol("heihei");
let symbol2 = symbol("heihei");
console.log(symbol1 === symbol2);    //false
 
let age =Symbol();
var a = {
    name:"老王";
    [age]: 18 ;
    hobby: "寫代碼";
};
for(let i in a){
    console.log(a[t]);    //老王
                          //寫代碼
}
console.log(a[age]);      //18
本站公眾號
   歡迎關注本站公眾號,獲取更多信息