摘要:別色瞇瞇的不想走啦行行行,再看一眼瞧得咋地半夜看的同學(xué),對(duì)不起不很酥胡。解決了以前那些無處安放的對(duì)象和作用域問題。要是您忘不了,之后還有的。。。
越來越多的框架推薦使用ES6進(jìn)行高效開發(fā),node也早已支持ES6,那不如就偷偷瞄一眼兒這性感的“編程語言”?
獻(xiàn)給初學(xué)者
檢測(cè)本地是否支持ES6環(huán)境
簡(jiǎn)便方法:直接在瀏覽器調(diào)試工具下嘗試輸入Promise(ES6的新API,用于異步事件的處理),如果能打印出其構(gòu)造函數(shù),則支持(如果真有瀏覽器光是支持了Promise而不支持ES6,那我服?。?/p>
在開發(fā)環(huán)境里面使用ES6
webpack+babel 作為轉(zhuǎn)譯工具進(jìn)行ES6到ES5的編譯
wp的配置詳見
《webpack的安裝及配置》
安裝插件:
babel-loader
npm install babel-loader
babel-core
npm install babel-core
babel-es2015-transform
npm install babel-babel-transform
在webpack.config.js的module屬性中的loaders字段加入
{ test: /.js$/, loader: "babel" }
在項(xiàng)目根目錄下創(chuàng)建配置文件.babelrc
{ "presets": ["es2015"] }一些新東西
class
類!
我們通過一個(gè)demo來初見一下js的class
class Student { getName() { console.log( " This is es6 style " ); } //注意:這里不用逗號(hào) getClass() { console.log( "gp02" ); } }
let
塊級(jí)作用域變量聲明
以前通過var聲明的變量因?yàn)樽兞刻嵘木壒?,若非在函?shù)作用域內(nèi)聲明,則為全局變量,而let則是解決了這個(gè)問題
一個(gè)實(shí)用場(chǎng)景:
//<=ES5 for ( var i = 0; i < 10; i ++ ) { } console.log( i );//9 變量提升到了全局 //ES6 for ( let ii = 0; ii < 10; i ++ ) { } console.log( ii );//undefined 變量只在for循環(huán)塊級(jí)作用域中生效
Q:如何形成塊級(jí)作用域?
大括號(hào)包圍則形成一個(gè)塊級(jí)作用域,如函數(shù)、循環(huán)、判斷、選擇等結(jié)構(gòu)
{ let a = 0; } console.log( a );//undefined let k = 0; console.log( k );//0;
const
靜態(tài)變量
const NAME = "Samuel"; NAME = "Lucifer"; console.log( NAME ); //報(bào)錯(cuò),靜態(tài)變量不能被重新復(fù)制,它相當(dāng)于一個(gè)常量
箭頭函數(shù)
用=>來表示匿名函數(shù)function() {}
如果沒有=>后沒有{},則表示返回=>后的內(nèi)容
const A=(a, b)=>a+b;
等價(jià)于
const A = function(a, b) { return a+b; }
方便回調(diào)函數(shù)的定義
fetch(url).then((data)=>{ console.log( data ); //從寫法上來說也體現(xiàn)了回調(diào)函數(shù)的意義,“拿到data了,接著做點(diǎn)什么” });
模塊化
ES5的模塊化
關(guān)鍵字:require module exports
遵循CommonJS規(guī)范
詳見:前端模塊化的那些事兒
ES6的模塊化
關(guān)鍵字:import(導(dǎo)入) export(導(dǎo)出)
module.js
var number = 20; //通過export導(dǎo)出 export default number
import.js
//通過import引入module模塊 import num from "./module.js" //這里是module.js的相對(duì)路徑 //num對(duì)應(yīng)module的出口number console.log( num );//20
第一眼差不多看到這兒吧。別色瞇瞇的不想走啦!
行行行,再看一眼:
瞧得咋地?
A bright new future is coming?。ò胍箍吹耐瑢W(xué),對(duì)不起?。?br>4不4很酥胡~。:)
解決了以前那些無處安放的對(duì)象和作用域問題。
要是您忘不了,之后還有ES6的API。。。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/80851.html
摘要:每次被執(zhí)行時(shí),和被傳入,這個(gè)根據(jù)進(jìn)行累加或者是自身消減,英文原意,進(jìn)而返回最新的。 之前的一篇文章:從一道面試題,到我可能看了假源碼討論了bind方法的各種進(jìn)階Pollyfill,今天再分享一個(gè)有意思的題目。 從解這道題目出發(fā),我會(huì)談到數(shù)組的Reduce方法,ES6特性和Redux數(shù)據(jù)流框架中Reducer的命名等等。一道典型的題目,卻如唐代詩人章碣《對(duì)月》詩中所云:別有洞天三十六,水...
摘要:本文記錄如下起因在準(zhǔn)備提測(cè)的那天,順便打開看一眼注意,這里是原生不是用模擬的,排查后發(fā)現(xiàn),原來是因?yàn)闃?gòu)造函數(shù)中使用了。簡(jiǎn)寫如下老司機(jī)們肯定能一眼發(fā)現(xiàn)問題構(gòu)造函數(shù)中不應(yīng)該使用而是傳入的應(yīng)該改為改正之后,問題確實(shí)解決了。 雖然過了兼容IE6的噩夢(mèng)時(shí)代,IE依舊陰魂不散,因?yàn)槟憧赡苓€要兼容IE9。在ES6已經(jīng)普及的今天,用ES6寫react已經(jīng)成了標(biāo)配。但是babel編譯的js語法,由于某些...
摘要:本文記錄如下起因在準(zhǔn)備提測(cè)的那天,順便打開看一眼注意,這里是原生不是用模擬的,排查后發(fā)現(xiàn),原來是因?yàn)闃?gòu)造函數(shù)中使用了。簡(jiǎn)寫如下老司機(jī)們肯定能一眼發(fā)現(xiàn)問題構(gòu)造函數(shù)中不應(yīng)該使用而是傳入的應(yīng)該改為改正之后,問題確實(shí)解決了。 雖然過了兼容IE6的噩夢(mèng)時(shí)代,IE依舊陰魂不散,因?yàn)槟憧赡苓€要兼容IE9。在ES6已經(jīng)普及的今天,用ES6寫react已經(jīng)成了標(biāo)配。但是babel編譯的js語法,由于某些...
閱讀 3366·2021-10-21 17:50
閱讀 3328·2021-10-08 10:05
閱讀 3478·2021-09-22 15:04
閱讀 642·2019-08-30 14:00
閱讀 2037·2019-08-29 17:01
閱讀 1564·2019-08-29 15:16
閱讀 3282·2019-08-26 13:25
閱讀 911·2019-08-26 11:44