成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

做一個(gè)好前端必須要知道的事——JS語言

Near_Li / 881人閱讀

摘要:準(zhǔn)確的理解,是編譯型語言,源代碼整個(gè)編譯成字節(jié)碼,字節(jié)碼,是解釋型語言。是一個(gè)非常靈活的語言,支持命令式和函數(shù)式編程。編譯型語言通常會(huì)用做配置文件,因?yàn)槲覀兺ǔ2粫?huì)改編譯后的字節(jié)碼。

編程語言按各種方法可以分為各種類型,現(xiàn)在讓我們來看看JS屬于什么類型語言
解釋型語言

按編譯執(zhí)行過程,可以分為編譯型語言和解釋型語言。比如

c 語言,必須先經(jīng)過編譯生成目標(biāo)文件,然后鏈接各個(gè)目標(biāo)文件和庫文件,生成可執(zhí)行文件。

Java、scala 則是先編譯成字節(jié)碼,然后解釋執(zhí)行字節(jié)碼(可以理解為編譯型語言也可以理解為解釋型語言)。準(zhǔn)確的理解,java 是編譯型語言,源代碼整個(gè)編譯成字節(jié)碼,java 字節(jié)碼,是解釋型語言。

Python 是解釋型語言,不過也可以先進(jìn)行編譯,編譯成 python 的字節(jié)碼。

Javascript 是解釋型語言。目前貌似還沒有直接將 js 整個(gè)編譯然后才執(zhí)行(有說法是 js 動(dòng)態(tài)性太強(qiáng),先整體編譯難度太大,執(zhí)行性能不如解釋執(zhí)行高)。

??注意:解釋型語言也是需要編譯的。區(qū)分編譯型語言和解釋型語言,是看源代碼是否整個(gè)編譯成目標(biāo)代碼然后執(zhí)行還是編譯一段執(zhí)行一段。
對(duì)于傳統(tǒng)編譯型語言來說,編譯步驟分為:詞法分析、語法分析、語義檢查、代碼優(yōu)化和字節(jié)生成。
但對(duì)于解釋型語言來說,通過詞法分析和語法分析得到語法樹后,就可以開始解釋執(zhí)行了(根據(jù)語法樹和符號(hào)表生成機(jī)器碼)。
這也就解釋了為什么都說 js 是解釋執(zhí)行的,讀一句執(zhí)行一句,但是實(shí)際上 js 中還沒執(zhí)行到的代碼語法錯(cuò)誤導(dǎo)致整個(gè) js 不會(huì)執(zhí)行的問題。例如:

console.log("不會(huì)被console出來");
= // 這里的語法錯(cuò)誤導(dǎo)致了上面的代碼也不會(huì)執(zhí)行

其實(shí)js變量提升的現(xiàn)象也很明顯的證明了js是先編譯而后執(zhí)行的
在瀏覽器中,多個(gè)

閱讀需要支付1元查看
<