新聞中心
只有真正的javascript程序員才知道javascript太難了。其他程序員都覺得javascript是門玩具語言。

難點(diǎn)
-
隱式轉(zhuǎn)換
javascript的真值表,可以體驗(yàn)一下。
-
this指向問題
javascript中的this不是靜態(tài)綁定的,而是動(dòng)態(tài)綁定的。而且可以人為改變指向。
看看下面這個(gè)例子
控制臺(tái)將輸出什么?
-
閉包
javascript中的作用域是可以通過向上查找的,通過閉包可以讓函數(shù)引用底層的作用域變量,可以在高層訪問底層的作用域。好象沒什么難得。
看看例子
這個(gè)例子輸出什么?
-
作用域鏈
作用域鏈沒什么好說的,直接上代碼
為什么輸出的undefined,不懂的自己去找原因。
-
原型鏈
javascript使用一種非主流的對(duì)象機(jī)制,基于原型鏈的對(duì)象繼承機(jī)制。這需要我們拋棄很多語言的Class的思想。認(rèn)真研究下這個(gè)原型鏈。
理解在對(duì)象構(gòu)造器中this.getName,A.prototype.getName,和A.getName的區(qū)別。
-
EventLoop
javascript中代碼不像很多其他語言一樣,代碼是順序執(zhí)行的。不管是瀏覽器中還是Nodejs中都存在一個(gè)EventLoop。讓代碼編碼變得不可控。Nodejs中難度更是成倍增加。
例子:
思考一下,運(yùn)行結(jié)果是什么?
總結(jié)
javascript的難點(diǎn)還沒有全部一一列出。javascript是一門支持多范式的編程語言,說白了就是大多javascript都沒有統(tǒng)一規(guī)范,加上javascript高度靈活性,各種奇淫巧技,導(dǎo)致很多代碼難以閱讀。很多難點(diǎn)都是javascript本身自身缺陷造成的。很多優(yōu)秀實(shí)踐其實(shí)就是ES6,ES8,ES9...。
網(wǎng)頁題目:JavaScript為什么這么難?
文章URL:http://m.fisionsoft.com.cn/article/dhjhdes.html


咨詢
建站咨詢
