nodejs -ES6

目錄

  • 聲明變量let和const
  • 變量的解構賦值:數(shù)組畦幢,對象,字符串
  • 字符串相關擴展:includes,startWiths,endWith,模板字符串
  • 函數(shù)擴展:參數(shù)默認值确沸,參數(shù)解構賦值,rest參數(shù),...擴展運算符蔬浙,合并數(shù)組
  • 箭頭函數(shù):不可以new
  • 類與繼承:靜態(tài)方法铝耻,super

聲明變量let和const

  • let
    聲明的變量不存在預解析(在塊級作用域內(nèi)部誊爹,變量只能先聲明再使用)
    聲明的變量不允許重復(在同一個作用域內(nèi))

  • const 用來聲明常量
    聲明的常量不允許重新賦值
    聲明的常量必須初始化

  • ES6引入了塊級作用域
    塊內(nèi)部定義的變量,在外部是不可以訪問的

{
    // 這里是塊級作用域
    let flag = 111;
    console.log(flag);
}
for (let i = 0; i < 3; i++) {
    // for循環(huán)括號中聲明的變量只能在循環(huán)體中使用
    console.log(i);
}
console.log(i);

變量的解構賦值

  • 數(shù)組的解構賦值
let [a,b,c] = [1,2,3];
let [a,b,c] = [,123,];
let [a=111,b,c] = [,123,];
console.log(a,b,c);
  • 對象的解構賦值
let {foo,bar} = {foo : 'hello',bar : 'hi'};
let {foo,bar} = {bar : 'hi',foo : 'hello'};

- 對象屬性別名(如果有了別名瓢捉,那么原來的名字就無效了)
let {foo:abc,bar} = {bar : 'hi',foo : 'nihao'};
console.log(foo,bar);
- 對象的解構賦值指定默認值
let {foo:abc='hello',bar} = {bar : 'hi'};
console.log(abc,bar);

let {cos,sin,random} = Math;
  • 字符串的解構賦值
let [a,b,c,d,e,length] = "hello";
console.log(a,b,c,d,e);
console.log(length);

console.log("hello".length);

let {length} = "hi";
console.log(length);

字符串相關擴展

  • includes() 判斷字符串中是否包含指定的字串(有的話返回true频丘,否則返回false)
    參數(shù)一:匹配的字串;參數(shù)二:從第幾個開始匹配
  • startsWith() 判斷字符串是否以特定的字串開始
  • endsWith() 判斷字符串是否以特定的字串結束
  • 模板字符串
console.log('hello world'.includes('world',7));
let url = 'admin/index.php';
console.log(url.startsWith('aadmin'));
console.log(url.endsWith('phph'));

let obj = {
    username : 'lisi',
    age : '12',
    gender : 'male'
}
let tag = '<div><span>'+obj.username+'</span><span>'+obj.age+'</span><span>'+obj.gender+'</span></div>';
console.log(tag);
- 反引號表示模板泡态,模板中的內(nèi)容可以有格式椎镣,通過${}方式填充數(shù)據(jù)
let fn = function(info){
    return info;
}
- 模板字符串
let tpl = `
    <div>
        <span>${obj.username}</span>
        <span>${obj.age}</span>
        <span>${obj.gender}</span>
        <span>${1+1}</span>
        <span>${fn('nihao')}</span>
    </div>
`;
console.log(tpl);

函數(shù)擴展

  • 參數(shù)默認值
  • 參數(shù)解構賦值
  • rest參數(shù)
  • ...擴展運算符
  • 合并數(shù)組
- 參數(shù)默認值
function foo(param){
     let p = param || 'hello';
     console.log(p);
}
foo('hi');
function foo(param = 'nihao'){
    console.log(param);
}
foo('hello kitty');
----------------------------------
- 參數(shù)解構賦值
 function foo({uname='lisi',age=13}={}){
     console.log(uname,age);
}
foo({uname:'zhangsan',age:15});
--------------------------------------
- rest參數(shù)(剩余參數(shù))
function foo(a,b,...param){
     console.log(a);
     console.log(b);
     console.log(param);
}
foo(1,2,3,4,5);
--------------------------------------
- 擴展運算符 ...
function foo(a,b,c,d,e,f,g){
    console.log(a + b + c + d + e + f + g);
}
- foo(1,2,3,4,5);
let arr = [1,2,3,4,5,6,7];
- foo.apply(null,arr);
foo(...arr);
--------------------------------------
- 合并數(shù)組
let arr1 = [1,2,3];
let arr2 = [4,5,6];
let arr3 = [...arr1,...arr2];
console.log(arr3);

箭頭函數(shù)

  • 箭頭函數(shù)的注意事項
    1、箭頭函數(shù)中this取決于函數(shù)的定義兽赁,而不是調(diào)用
    2状答、箭頭函數(shù)不可以new
    3、箭頭函數(shù)不可以使用arguments獲取參數(shù)列表刀崖,可以使用rest參數(shù)代替
function foo(){
     console.log('hello');
}
 foo();

let foo = () => console.log('hello');
foo();
--------------------------------------
- 多個參數(shù)必須用小括號包住
let foo = (a,b) => {let c = 1; console.log(a + b + c);}
foo(1,2);
--------------------------------------
let arr = [123,456,789];
arr.forEach(function(element,index){
     console.log(element,index);
 });
arr.forEach((element,index)=>{
     console.log(element,index);
});
--------------------------------------
- 箭頭函數(shù)的注意事項:
- 1惊科、箭頭函數(shù)中this取決于函數(shù)的定義,而不是調(diào)用
function foo(){
     // 使用call調(diào)用foo時亮钦,這里的this其實就是call的第一個參數(shù)
     // console.log(this);
     setTimeout(()=>{
         console.log(this.num);
     },100);
}
- foo.call({num:1});
----------------------------------
2馆截、箭頭函數(shù)不可以new
let foo = () => { this.num = 123;};
new foo();
------------------------------------
3、箭頭函數(shù)不可以使用arguments獲取參數(shù)列表,可以使用rest參數(shù)代替
let foo = (a,b) => {
     // console.log(a,b);
     console.log(arguments);//這種方式獲取不到實參列表
}
foo(123,456);
let foo = (...param) => {
    console.log(param);
}
foo(123,456 );

類與繼承

  • 靜態(tài)方法(靜態(tài)方法只能通過類名調(diào)用蜡娶,不可以使用實例對象調(diào)用)
  • super用來調(diào)用父類
function Animal(name){
    this.name = name;
}
Animal.prototype.showName = function(){
    console.log(this.name);
}
var a = new Animal('Tom');
a.showName();
-------------------------
class Animal{
    // 靜態(tài)方法(靜態(tài)方法只能通過類名調(diào)用混卵,不可以使用實例對象調(diào)用)
    static showInfo(){
        console.log('hi');
    }
    // 構造函數(shù)
    constructor(name){
        this.name = name;
    }

    showName(){
        console.log(this.name);
    }
}
let a = new Animal('spike');
a.showName();
// a.showInfo();
Animal.showInfo();
------------------------------
// 類的繼承extends
class Dog extends Animal{
    constructor(name,color){
        super(name);//super用來調(diào)用父類
        this.color = color;
    }

    showColor(){
        console.log(this.color);
    }
}

let d = new Dog('jump','white');
d.showName();
d.showColor();
// d.showInfo();
Dog.showInfo();
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市窖张,隨后出現(xiàn)的幾起案子幕随,更是在濱河造成了極大的恐慌,老刑警劉巖宿接,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赘淮,死亡現(xiàn)場離奇詭異,居然都是意外死亡睦霎,警方通過查閱死者的電腦和手機梢卸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來副女,“玉大人蛤高,你說我怎么就攤上這事”” “怎么了戴陡?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長枕赵。 經(jīng)常有香客問我猜欺,道長,這世上最難降的妖魔是什么拷窜? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任开皿,我火速辦了婚禮,結果婚禮上篮昧,老公的妹妹穿的比我還像新娘赋荆。我一直安慰自己,他們只是感情好懊昨,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布窄潭。 她就那樣靜靜地躺著,像睡著了一般酵颁。 火紅的嫁衣襯著肌膚如雪嫉你。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天躏惋,我揣著相機與錄音幽污,去河邊找鬼。 笑死簿姨,一個胖子當著我的面吹牛距误,可吹牛的內(nèi)容都是我干的簸搞。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼准潭,長吁一口氣:“原來是場噩夢啊……” “哼趁俊!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起刑然,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤寺擂,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后闰集,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體沽讹,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡般卑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年武鲁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蝠检。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡沐鼠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出叹谁,到底是詐尸還是另有隱情饲梭,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布焰檩,位于F島的核電站憔涉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏析苫。R本人自食惡果不足惜兜叨,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望衩侥。 院中可真熱鬧国旷,春花似錦、人聲如沸茫死。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽峦萎。三九已至屡久,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間爱榔,已是汗流浹背被环。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留搓蚪,地道東北人蛤售。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親悴能。 傳聞我的和親對象是個殘疾皇子揣钦,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

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

  • 這是16年5月份編輯的一份比較雜亂適合自己觀看的學習記錄文檔,今天18年5月份再次想寫文章漠酿,發(fā)現(xiàn)簡書還為我保存起的...
    Jenaral閱讀 2,739評論 2 9
  • 第一章:塊級作用域綁定 塊級聲明 1.var聲明及變量提升機制:在函數(shù)作用域或者全局作用域中通過關鍵字var聲明的...
    BeADre_wang閱讀 825評論 0 0
  • [TOC] 參考阮一峰的ECMAScript 6 入門參考深入淺出ES6 let和const let和const都...
    郭子web閱讀 1,773評論 0 1
  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,378評論 0 5
  • 6炒嘲、 車師王烏貴逃到烏孫宇姚,烏孫留下他不遣回。漢朝派使者責問烏孫夫凸,烏孫將烏貴送到長安浑劳。 7、 當初夭拌,漢武帝開辟河西四...
    華杉2009閱讀 1,003評論 2 8