ES6總結(jié)(1)

這篇文章主要是記錄ES6的基礎(chǔ)知識倦炒,將長期更新丈挟。

ES6的開發(fā)環(huán)境搭建

初始化項目

在安轉(zhuǎn)Babel之前刁卜,需要用npm init先初始化項目

npm init -y

注意,-y是默認(rèn)的意思曙咽,當(dāng)然也可以自己輸入蛔趴。命令執(zhí)行結(jié)束后,會在項目根目錄下生產(chǎn)package.json文件

{
  "name": "es6",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

全局安轉(zhuǎn)Babel-cli

npm install  -g babel-cli

本地安裝babel-preset-es2015和babel-cli

npm install --save-dev babel-preset-es2015 babel-cli

package.json文件例朱,已經(jīng)多了devDependencies選項

 "devDependencies": {
    "babel-cli": "^6.24.1",
    "babel-preset-es2015": "^6.24.1"
  }

新建.babelrc

在根目錄下孝情,新建.babelrc

{
    "presets":[
        "es2015"
    ],
    "plugins":[]
}

新建好之后,可以在終端輸入命令

babel src/index.js -o dist/index.js

簡化轉(zhuǎn)化命令

打開package.json文件茉继,把文件修改成下面的樣子咧叭。注意下面scriptsz中的代碼。

{
  "name": "es6",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "babel src/index.js -o dist/index.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-cli": "^6.24.1",
    "babel-preset-es2015": "^6.24.1"
  }
}

新的聲明

var
const
let

變量的解構(gòu)賦值

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

之前的代碼:

let a=0;
let b=1;
let c=2;

現(xiàn)在:

let[a,b,c] = [1,2,3]

對象的解構(gòu)賦值

let {firstName,lastName} = {firstName:'Gping',lastName:'Feng'}

字符串解構(gòu)

字符串也可以解構(gòu)烁竭,這個時候字符串被轉(zhuǎn)換成為了類似數(shù)組的的對象

const [a,b,c,d] = "Gpin";
console.log(a);
console.log(b);
console.log(c);
console.log(d);

擴(kuò)展運(yùn)算符和reset運(yùn)算符

對象擴(kuò)展運(yùn)算符

function simpleFun(...arg){
    console.log(arg[0]);
    console.log(arg[1]);
    console.log(arg[2]);
    console.log(arg[3]);
}
jspang(1,2,3);//1,2,3undefined

可以傳入多個值菲茬,并且就算方法中引用多了也不會報錯。
之前存在的問題:

let arr1=['www','jspang','com'];
let arr2=arr1;
console.log(arr2);
arr2.push('shengHongYu');
console.log(arr1);
//輸出如下
["www", "jspang", "com"]
["www", "jspang", "com", "shengHongYu"]

修改:

let arr1=['www','jspang','com'];
//let arr2=arr1;
let arr2=[...arr1];
console.log(arr2);
arr2.push('shengHongYu');
console.log(arr2);
console.log(arr1);

這個時候arr 1并沒有變化派撕,sixsixsix

reset運(yùn)算符

字符串模板

之前的ES5寫法:

let jspang='技術(shù)胖';
let blog = '非常高興你能看到這篇文章婉弹,我是你的老朋友'+jspang+'。這節(jié)課我們學(xué)習(xí)字符串模版终吼。';
document.write(blog);

現(xiàn)在的寫法:

let jspang='技術(shù)胖';
let blog = `非常高興你能看到這篇文章镀赌,我是你的老朋友${jspang}。這節(jié)課我們學(xué)習(xí)字符串模版际跪。`;
document.write(blog);

字符串查找

Es5

let jspang='技術(shù)胖';
let blog = '非常高興你能看到這篇文章商佛,我是你的老朋友技術(shù)胖。這節(jié)課我們學(xué)習(xí)字符串模版姆打。';
document.write(blog.indexOf(jspang));

Es6

let jspang='技術(shù)胖';
let blog = '非常高興你能看到這篇文章良姆,我是你的老朋友技術(shù)胖。這節(jié)課我們學(xué)習(xí)字符串模版幔戏。';
document.write(blog.includes(jspang));

判斷是否開頭存在:

blog.startsWith(jspang);

判斷結(jié)尾是否存在

blog.endsWith(jspang);

Es6的數(shù)字操作

二進(jìn)制和八進(jìn)制

let 0B010101;//開始是0玛追,第二是B
let 0o5656;//開始也是0(零),第二是o

數(shù)字判斷和轉(zhuǎn)換

數(shù)字驗證Number.isFinite(XX)

let a= 11/4;
console.log(Number.isFinite(a));//true
console.log(Number.isFinite('jspang'));//false
console.log(Number.isFinite(NaN));//false
console.log(Number.isFinite(undefined));//false

NaN驗證

console.log(Number.isNaN(NaN));//true

判斷是否是整數(shù)

let a = 234.4;
console.log(Number.isInteger(a));//false

parseInt()和parseFloat()

let a = 3.423;
console.log(Number.parseInt(a));
console.log(Number.parseFloat(a));

Es6中新增的數(shù)組知識

JSON格式的轉(zhuǎn)換

將JSON轉(zhuǎn)換成了Array

let  json = {
    '0': 'jspang',
    '1': '技術(shù)胖',
    '2': '大胖逼逼叨',
    length:3
}
 
let arr=Array.from(json);
console.log(arr)

Array.of()方法

let arr =Array.of(3,4,5,6);
console.log(arr);
let arr =Array.of('技術(shù)胖','jspang','大胖逼逼叨');
console.log(arr);

find()實例方法

let arr=[1,2,3,4,5,6,7,8,9];
console.log(arr.find(function(value,index,arr){
    return value > 5;
}))

fill()方法實例

它接收三個參數(shù),第一個參數(shù)是填充的變量痊剖,第二個是開始填充的位置韩玩,第三個是填充到的位置。

let arr=[0,1,2,3,4,5,6,7,8,9];
arr.fill('jspang',2,5);
console.log(arr);

數(shù)組的遍歷

for...of

let arr=['jspang','技術(shù)胖','大胖逼逼叨']
 
for (let item of arr){
    console.log(item);
}

數(shù)組索引:

let arr=['jspang','技術(shù)胖','大胖逼逼叨']
for (let index of arr.keys()){
    console.log(index);
}

數(shù)組索引以及內(nèi)容:

let arr=['jspang','技術(shù)胖','大胖逼逼叨']
for (let [index,val] of arr.entries()){
    console.log(index+':'+val);
}

ES6箭頭函數(shù)

ES5

function add(a,b){
    return a+b;
}
console.log(add(1,2));

ES6
默認(rèn)值

function add(a,b=1){
    return a+b;
}
console.log(add(1));

箭頭函數(shù)

var add =(a,b=1) => a+b;
console.log(add(1));
var add =(a,b=1) => {
    console.log('jspang')
    return a+b;
}
console.log(add(1));

ES6中的函數(shù)和數(shù)組補(bǔ)漏

數(shù)組轉(zhuǎn)換成字符串

join()方法

let arr=['jspang','技術(shù)胖','前端教程'];
console.log(arr.join('|'));

toString()

let arr=['jspang','技術(shù)胖','前端教程'];
console.log(arr.toString());

數(shù)組中的遍歷方法

1.forEach

let arr=['jspang','技術(shù)胖','前端教程']; 
arr.forEach((val,index)=>console.log(index,val));

2.filter

let arr=['jspang','技術(shù)胖','前端教程'];
arr.filter(x=>console.log(x));

3.some

let arr=['jspang','技術(shù)胖','前端教程'];
arr.some(x=>console.log(x));

4.map

let arr=['jspang','技術(shù)胖','前端教程'];
console.log(arr.map(x=>'web'));
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末陆馁,一起剝皮案震驚了整個濱河市找颓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌氮惯,老刑警劉巖叮雳,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異妇汗,居然都是意外死亡帘不,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進(jìn)店門杨箭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寞焙,“玉大人,你說我怎么就攤上這事互婿〉方迹” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵慈参,是天一觀的道長呛牲。 經(jīng)常有香客問我,道長驮配,這世上最難降的妖魔是什么娘扩? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮壮锻,結(jié)果婚禮上琐旁,老公的妹妹穿的比我還像新娘。我一直安慰自己猜绣,他們只是感情好灰殴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著掰邢,像睡著了一般牺陶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上辣之,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天掰伸,我揣著相機(jī)與錄音,去河邊找鬼召烂。 笑死,一個胖子當(dāng)著我的面吹牛娃承,可吹牛的內(nèi)容都是我干的奏夫。 我是一名探鬼主播怕篷,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼酗昼!你這毒婦竟也來了廊谓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤麻削,失蹤者是張志新(化名)和其女友劉穎蒸痹,沒想到半個月后腻异,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蛔糯,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年敦捧,在試婚紗的時候發(fā)現(xiàn)自己被綠了扫责。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片榛鼎。...
    茶點(diǎn)故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鳖孤,靈堂內(nèi)的尸體忽然破棺而出者娱,到底是詐尸還是另有隱情,我是刑警寧澤苏揣,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布黄鳍,位于F島的核電站,受9級特大地震影響平匈,放射性物質(zhì)發(fā)生泄漏框沟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一吐葱、第九天 我趴在偏房一處隱蔽的房頂上張望街望。 院中可真熱鬧,春花似錦弟跑、人聲如沸灾前。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哎甲。三九已至,卻和暖如春饲嗽,著一層夾襖步出監(jiān)牢的瞬間炭玫,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工貌虾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吞加,地道東北人。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像衔憨,于是被迫代替她去往敵國和親叶圃。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,955評論 2 355

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