ES6基礎(chǔ)

塊級作用域、字符串、函數(shù)

  1. 作用域
    在之前的js中,只有函數(shù)作用域和全局作用域,指的是變量只能在函數(shù)中或者全局中,塊級作用域是不存在的。
    例:在for循環(huán)或while等其他循環(huán)中,var 定義一個變量,在外部獲取是沒問題的,在ES6的的語法中 ,let 一個變量,在大括號外是獲取不到的。
    const 是定義一個常量,定義之后是無法更改的
  2. 字符串
  • 模板字符串
var name = "han";
var course = "你好";
//普通寫法
console.log("hello," + name + "course is" + course);
//ES6寫法 (字符串內(nèi)回車表示換行)
console.log(`hello,${name},course is ${course}`);
  1. 函數(shù)
  • 箭頭函數(shù)
//傳統(tǒng)寫法
function hello(name) {
    console.log(`Hello,${name}!`);
}
//ES6寫法
const Hello = (name) => {
    console.log(`Hello,${name}!`);
}
setTimeout(() => {
    console.log('1秒后執(zhí)行');
}, 1000);
hello("韓貴和");
  • 如果函數(shù)體只有一句return 函數(shù)大括號可以省略
const double = x => x * 2;
console.log(double(5));
  • 帶默認(rèn)參數(shù)箭頭函數(shù)
const hello = (name = "Han") => {
    console.log(`Hello,${name}`);
};
hello();
hello("韓貴和");
  • 傳入數(shù)組參數(shù)
function hello(name1, name2) {
    console.log(name1, name2);
}

let arr = ['Han', "韓貴和"];
//傳統(tǒng)傳入數(shù)組參數(shù)方法
hello.apply(null, arr);
//ES6寫法 使用...展開符
hello(...arr);

對象基礎(chǔ)、解構(gòu)

  1. Object擴展
  • Object.keys、values、entries
obj = {name: 'Han', course: "WhatTheHan"};
console.log(Object.keys(obj));
console.log(Object.values(obj));
console.log(Object.entries(obj));
  • 對象方法簡寫,計算屬性
const obj = {
    name:"Han",
    hello:function () {},
    //函數(shù)簡寫
    Hello(){}
};
  • 展開運算符(不是ES6標(biāo)準(zhǔn))
const obj = {name:'Han',course:"Hello"};
const obj2={type:'name',name:'Han'};
console.log({...obj,...obj2});
console.log({...obj,...obj2,date:"2017"});
  1. 解構(gòu)賦值
  • 數(shù)組解構(gòu)
const arr = ["Hello","Han"];
//傳統(tǒng)寫法
let arg1 = arr[0];
let arg2 = arr[1];
//ES6語法,批量解構(gòu)賦值
let [arg1,arg2] = arr;
console.log(arg1,'|',arg2);
  • 對象解構(gòu)
const obj = {name:'whatthehan',course:'React'};
const {name,course} = obj;
console.log(name,'|',course);

類、模塊化

  1. 提供class的語法糖
  • prototype的語法糖
  • Extends繼承
  • Constructor構(gòu)造函數(shù)
class Han{
    constructor(){
        //構(gòu)造函數(shù)
        this.name='HanGH';
    }
    sayHello(){
        console.log(`Hello,${this.name} !`);
    }
}
const app = new Han();
app.sayHello();
  1. 新的數(shù)據(jù)結(jié)構(gòu)
  • Set ,元素不可重和
  • Map,對象擴展
  • Symbol,生成不重復(fù)變量
  1. 模塊化
  • ES6中自帶了模塊化機制,告別sea.js和require.js
    • Import , import {}
    • Export , Export default
    • Node 現(xiàn)在不支持,還需要require來加載文件

其他

  1. 對象擴展符、函數(shù)綁定
  2. 裝飾器
  3. Async await
  4. Promise
  5. 迭代器和生成器
  6. 代理Proxy
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 以下內(nèi)容是我在學(xué)習(xí)和研究ES6時,對ES6的特性、重點和注意事項的提取、精練和總結(jié),可以做為ES6特性的字典;在本...
    科研者閱讀 3,274評論 2 9
  • 最近在學(xué)習(xí)React,示例代碼都由ES6所書寫,所以對于ES6,不得不好好研究一下新的語法。這篇文章就對自己現(xiàn)在經(jīng)...
    2Youngg閱讀 413評論 0 1
  • 一、ES6簡介 ? 歷時將近6年的時間來制定的新 ECMAScript 標(biāo)準(zhǔn) ECMAScript 6(亦稱 ...
    一歲一枯榮_閱讀 6,208評論 8 25
  • 下面帶大家繼續(xù)介紹ES6的新特性 開啟ES6的入門學(xué)習(xí) 簡寫模式 現(xiàn)在很多的框架多使用了ES6的簡寫特性(小程序,...
    kiaizi閱讀 242評論 0 2
  • 那些人突然出現(xiàn)在我們生命里或像劃亮大半天際的獅子座流星雨又突然悄然無聲地消失或像留下一封信的陌生女人這些因吞噬太多...
    昭蘇閱讀 296評論 0 0

友情鏈接更多精彩內(nèi)容