人們常說,“時間就像海綿里的水一樣,擠擠總能出來”。對于每一個程序員來說,時間就像一粒沙,效率高低直接影響工作成果。在當(dāng)前技術(shù)棧中,javascript毫無疑問是最為重要的基礎(chǔ)語言之一。因此,本文將從javascript語言視角出發(fā),探討未來一個月內(nèi)該語言的一些重點(diǎn)、難點(diǎn)。
首先我們來重點(diǎn)闡述ES6的Promise異步編程。使用Promise能夠讓異步程序變得更為簡潔明了。通過一個Promise對象的返回,可以用.then()處理請求得到的數(shù)據(jù),而Promise.all()則可以實(shí)現(xiàn)并發(fā)請求。下面是一個使用Promise并實(shí)現(xiàn)“首頁輪播圖”功能的案例:
var getIPromise = new Promise(function(resolve, reject){ $.get('/api/getI', function(data){ if(data){ resolve(data); }else{ reject('Error'); } }); }); var getBPromise = new Promise(function(resolve, reject){ $.get('/api/getB', function(data){ if(data){ resolve(data); }else{ reject('Error'); } }); }); Promise.all([getIPromise, getBPromise]) .then(function(results){ var imgs = results[0]; var buttons = results[1]; render(imgs, buttons); }).catch(function(error){ console.log(error); });
其次,ES6的let和const關(guān)鍵字也是一個熱點(diǎn)。let關(guān)鍵字的作用域是塊級作用域,不存在變量提升,可以避免變量重復(fù)定義。const則定義一個只讀的常量,變量名必須是大寫,常量值不可修改。
let a = 'yujia'; console.log(a); //yujia if(true){ let a = 'hello yujia'; console.log(a); //hello yujia } console.log(a); //yujia const PI = 3.14; PI = 3; //Uncaught TypeError: Assignment to constant variable.
ES6的箭頭函數(shù)以及相關(guān)的this問題也是一個需要關(guān)注的問題。箭頭函數(shù)自動綁定外部函數(shù)的this,因此解決了傳統(tǒng)函數(shù)中this關(guān)鍵字指向問題,更加簡潔方便。
var a = 'window'; var obj = { a : 'yujia', getA: function(){ return ()=>{ console.log(this.a); //yujia } } } obj.getA()();
ES6的字符串模板也是一個美麗亮點(diǎn)。字符串模板是一種新型的字符串表達(dá)形式,它有更好的易讀性和易編寫性,也方便實(shí)現(xiàn)字符串拼接。字符串模板使用反引號(`)包含,通過${}嵌入變量或表達(dá)式。
var name = 'yujia'; var age = 23; console.log(`His name is ${name} and age is ${age}.`); //His name is yujia and age is 23.
最后,相比于前端而言,后端主要集中于Node.js項(xiàng)目的開發(fā),并使用一些基于javascript的模塊化框架進(jìn)行數(shù)據(jù)庫讀寫、socket通信、服務(wù)器壓縮等操作。Node.js有許多優(yōu)秀的框架,如Express、Koa、Sails等,通過這些框架可以輕易的開發(fā)出高性能的Node.js項(xiàng)目。前端開發(fā)人員在這方面也有許多提高技巧。
總結(jié)來說,javascript語言的應(yīng)用推陳出新,首先是異步編程、let和const關(guān)鍵字、箭頭函數(shù)、字符串模板等重點(diǎn)應(yīng)用,對于已經(jīng)有了javascript基礎(chǔ)的人來說,掌握這些技術(shù)點(diǎn)并不難。其次,后端Node.js項(xiàng)目的快速開發(fā)以及各種優(yōu)秀的模塊化框架也是應(yīng)用重點(diǎn)。總之,javascript語言在未來一個月內(nèi)仍將保持活躍,對于具有javascript基礎(chǔ)的開發(fā)人員來說,熟練掌握javascript語言是在職場立足的基石。