2017-12-25es6解構(gòu)賦值

2015年 ECMAscript 規(guī)范標(biāo)準(zhǔn) js是實現(xiàn)
es6 IE10以下 不支持欺缘,需要裝babel 編寫復(fù)雜大型的
js是瀏覽器邊解析邊執(zhí)行杨刨,解析器會優(yōu)化代碼
chrome V8引擎

一涣旨、 let

let var區(qū)別:
1.var存在變量提升 let不會
2.let 必須先定義再使用
3.暫時性的死區(qū)
4.作用域不同

var 函數(shù)作用域
function a(){
    if(true){
    var str = "1111"氏仗;  
    var  str = "2222"
  }
  console.log(str);
}
a();  //==>str "2222"
let 塊級作用域

不能重復(fù)聲明

function a(){
    if(true){
    let  str = "1111"围辙;  
    let  str = "2222";
  console.log(str);
  }
  console.log(str);
}
a();  //==>str 不能被打印我碟,并且會報錯 
箭頭函數(shù)

變量名(函數(shù)名) = 參數(shù) => 函數(shù)體
var fa =v => v //箭頭函數(shù)默認(rèn)有一個返回return

//例
var fa = function(v) { 
  return v;
}
//如果不傳參數(shù)
var fa =()=>'1234';
//如果傳多個
var fa=(a1,a2,a3)=> a1 + a2 + a3;
fa(1,2,3)
//如果返回的是對象,如果不擴起來,會認(rèn)為是函數(shù)體
let f = (n1,n2) => ({name:n1,age:n2})
暫時性的死區(qū)
var x = y, y = 2;
function a(){
    console.log(x,y);
};
a();  //==> undefind  2  

let x = y, y = 2;
function a(){
    console.log(x,y);
};
a();  //==> Uncaught ReferenceError: y is not defined

//函數(shù)內(nèi)部重新聲明

  let  i;  //此處錯誤
    if(true) {
        let  i ="aaa";  // 此處可行
    }
}

JS是瀏覽器邊解析邊執(zhí)行姚建,解析器會優(yōu)化代碼矫俺,谷歌 V8引擎; VAR是函數(shù)作用域 ,引擎掃描函數(shù)體會對VAR優(yōu)化執(zhí)行厘托,會變量提升

二友雳、const

const 聲明一個只讀的常量,常量的值不能改變
例: token
不能只申明不賦值铅匹,一旦聲明變量押赊,必須初始化值,不能改變

//錯誤示例
const str = '111';
str = '222'  //error
const str ;     //error
console.log(str) 

簡單類型(字符串/布爾/數(shù)值)包斑;
復(fù)合類型(數(shù)組流礁,對象,指針不能變罗丰,里面值不受控制)

//在同一個作用域下
const obj = {};
    obj.name ='333';
    obj.action = function(){
        return this.name;  
    }
obj = {};
obj.action();   // =>error
三神帅、變量的解構(gòu)賦值

從數(shù)組和對象中提取值,對變量進(jìn)行賦值萌抵,稱為解構(gòu)

數(shù)組的解構(gòu)

按照次序來解構(gòu)

var a=1,b=1,c=3;
//分開
var x = 1;
var y= 2;
var z = 3;
// 等同  模式匹配
let [x,y,z] = [1,2,3];
//取值
console.log(y)  //=> 2 ;
//按照位置匹配
let [a,b,c] = [1,,3];
console.log(c);   //=>3
//模式匹配 數(shù)組
let[x1,y2,z3] =[1,{'x':123},3];
//默認(rèn)值
let [x1,y1 = '4',z1] =[1];
console.log(x1);   //1
console.log(z1);  //undefind
console.log(y1);  //'4'
//默認(rèn)值替換undefined  null不會被替換
let [x,y,z] = [1,,null];
console.log(z)  //null

解構(gòu)賦值允許指定默認(rèn)值

  function f() {
       return 'aaa'
  };
let [x = f()] = [ ];
console.log(x);  //aaa;
對象的解構(gòu)賦值

不是按次序找御,是按照屬性名稱匹配

let {x,y} ={y:'111',x:'222'}; 
console.log(y);  // 111;
let {x:aa,y} ={y:'111',x:'222'};
//x相當(dāng)于匹配模式,aa才是變量名
console.log(x)  //=> x is not defined
console.log(aa) //=>222
let obj1 = {"x":"aaa","y":"bbb"};
let {x:c,y:a}  = obj1;
console.log(c)   //=>aaa
let {x = 1} = {x:'a'};
let {x = 1,y} = {x:'a'};
let {x :y = 3} = {x:'a'};
let {x :y = 3} = {x:undefined};  //y  3
let {x :y = 3} = {x:null};      //y null
三谜嫉、字符串解構(gòu)賦值

類似于數(shù)組對象

let[a,b,c,d] = 'hello'
console.log(a)  //=>"a"
console.log(d)  // =>"l"
四萎坷、函數(shù)參數(shù)的解構(gòu)賦值
function fun([x,y]) {
  return x + y
}
fun([2,6]);    // 8
//沒有傳入?yún)?shù)
function fun([x,y]) {
  return x + y
}
fun([]);
//傳參有默認(rèn)值
function fun([x=4,y=0]) {
  return x + y
}
fun([2,6]);  //8
//常用
function num() {
  return [1,2,3]
}
let [a,b,c] = num()
console.log(a) //=1;
//轉(zhuǎn)對象
function num(){
      let obj = {
        "x1" :"aa",
        "y1" : "bb"
      }
      return obj;
}
let {x1,y1} = num();
// let{x1:x1, y1:y1} =num();
console.log(x1);
//json
let obj = {
      "name":"aaa",
      "age":12,
      "friends":["a1","b1"],
      "members":{x:1,y:2}
 };
let {name,age,friends:ff,members} = obj;
//console.log(ff[1]);   //b1
console.log(members.y); //2
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市沐兰,隨后出現(xiàn)的幾起案子哆档,更是在濱河造成了極大的恐慌,老刑警劉巖住闯,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瓜浸,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進(jìn)店門两疚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人雇寇,你說我怎么就攤上這事“鐾” “怎么了锨侯?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長冬殃。 經(jīng)常有香客問我囚痴,道長,這世上最難降的妖魔是什么审葬? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任深滚,我火速辦了婚禮奕谭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘痴荐。我一直安慰自己血柳,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布蹬昌。 她就那樣靜靜地躺著混驰,像睡著了一般攀隔。 火紅的嫁衣襯著肌膚如雪皂贩。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天昆汹,我揣著相機與錄音明刷,去河邊找鬼。 笑死满粗,一個胖子當(dāng)著我的面吹牛辈末,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播映皆,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼挤聘,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了捅彻?” 一聲冷哼從身側(cè)響起组去,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎步淹,沒想到半個月后从隆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡缭裆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年键闺,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片澈驼。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡辛燥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缝其,到底是詐尸還是另有隱情挎塌,我是刑警寧澤,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布氏淑,位于F島的核電站勃蜘,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏假残。R本人自食惡果不足惜缭贡,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一炉擅、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧阳惹,春花似錦谍失、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纲岭,卻和暖如春抹竹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背止潮。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工窃判, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人喇闸。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓袄琳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親燃乍。 傳聞我的和親對象是個殘疾皇子唆樊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容