圖解javascript犀牛書(shū)-chapter1
javascirpt是什么?
一種用于Web的高級(jí)編程語(yǔ)言
一種非類(lèi)型定義的動(dòng)態(tài)的語(yǔ)言
一種解釋型腳本語(yǔ)言
一種面相對(duì)象的函數(shù)式編程語(yǔ)言

是的,js就是一門(mén)編程語(yǔ)言,是一門(mén)用在web中的腳本語(yǔ)言。有了他,網(wǎng)頁(yè)得以從靜態(tài)變?yōu)閯?dòng)態(tài),具有更多的功能。舉個(gè)栗子:你可以點(diǎn)擊網(wǎng)頁(yè)上一個(gè)按鈕,通常情況下,它會(huì)給你一個(gè)反饋(“Oh,you clicked me,有啥事啊~”)。js可以構(gòu)建大型的Web應(yīng)用,使得網(wǎng)站像早期的桌面應(yīng)用一樣,具有強(qiáng)大豐富的功能。
我們都需要小伙伴,沒(méi)有人是孤立的存在。當(dāng)然js也是,它的兩個(gè)好朋友當(dāng)然是HTML 和 CSS 啦。他們?nèi)齻€(gè)通力合作,構(gòu)建出了網(wǎng)絡(luò)世界中一個(gè)又一個(gè)精彩的城市。

我們用建造城市來(lái)比喻,城市由一棟棟的建筑組成,HTML負(fù)責(zé)搭建房子的結(jié)構(gòu),建筑師一枚;CSS負(fù)責(zé)給房子貼磚粉刷裝飾,設(shè)計(jì)師一枚;JS負(fù)責(zé)給房子增加功能(比如,拍下手,燈亮了),這么厲害,神一樣的存在啊,叫你程序猿好了??。
這里,我們主要介紹js。
一、History
這里簡(jiǎn)單深度拓展一下,扒一扒js的成長(zhǎng)軌跡:
創(chuàng)建:
JavaScript是在Web的早期在Netscape中創(chuàng)建的,而且技術(shù)上,“Java Script”是Sun Microsystems(現(xiàn)在的Oracle)授權(quán)的商標(biāo),用于描述Netscape的(現(xiàn)在的Mozilla的)語(yǔ)言實(shí)現(xiàn)。
名字:
Netscape將JavaScript作為一個(gè)草案提交給歐洲計(jì)算機(jī)制造商協(xié)會(huì)(ECMA)。由于商標(biāo)問(wèn)題,語(yǔ)言的標(biāo)準(zhǔn)化版本有了一個(gè)尷尬的名字“ECMAScript”。
版本:
ES3
過(guò)去的十幾年間,所有的瀏覽器幾乎都實(shí)現(xiàn)了ECMAScript3的標(biāo)準(zhǔn),所以提到j(luò)s,很多時(shí)候可以忽略版本號(hào),就是指ES3。
ES5
ECMAScript第五個(gè)版本(第四版因?yàn)檫^(guò)于復(fù)雜廢棄了)。力求澄清第3版中的歧義,并添加了新的功能。新功能包括:原生JSON對(duì)象、繼承的方法、高級(jí)屬性的定義以及引入嚴(yán)格模式。
ES6
ECMAScript6在保證向下兼容的前提下,提供大量新特性。是繼ES5之后的一次主要改進(jìn),增添了許多必要的特性,例如:模塊和類(lèi)以及一些實(shí)用特性,Maps、Sets、Promises、生成器(Generators)等。
瀏覽器支持:
瀏覽器支持算是個(gè)老梗了,尤其是IE系列,早期需要各種hack才可以,打補(bǔ)丁打到要吐有沒(méi)有。好在現(xiàn)在瀏覽器飛速發(fā)展,js標(biāo)準(zhǔn)的支持也在不斷增加,so,ES6 最好先不要直接用,ES5 哪些地方不支持,學(xué)習(xí)的時(shí)候注意一下即可,寫(xiě)好程序后測(cè)試,發(fā)現(xiàn)不支持再找解決方案即可。
二、組成
core js + client js

core js
每種語(yǔ)言必須具有用于執(zhí)行諸如基本輸入和輸出的功能的平臺(tái)或標(biāo)準(zhǔn)庫(kù)或API。核心JavaScript語(yǔ)言定義了用于處理文本,數(shù)組,日期和正則表達(dá)式的最小API,但不包括任何輸入或輸出功能。
client js
輸入和輸出(以及更復(fù)雜的功能,如網(wǎng)絡(luò),存儲(chǔ)和圖形)是嵌入JavaScript的“宿主環(huán)境”的責(zé)任。 通常,宿主環(huán)境是Web瀏覽器。