成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

在編寫javascript時(shí)要注意的一些細(xì)節(jié)

Eric / 2328人閱讀

摘要:不單單是因?yàn)橐鸬?。用與要注意的地方這里要注意的是這二個(gè)函數(shù)的第一個(gè)參數(shù)都會(huì)把指向還有第一個(gè)參數(shù)可以為但不要這樣用因?yàn)檫@樣等于自己隱式使用了。

自動(dòng)分號(hào)插入

Js不像其他語言強(qiáng)制要求;號(hào)結(jié)尾不然編譯不過,原因是JS有自動(dòng);號(hào)的插入。

var text=function(){}
text()

這樣你不加;號(hào)也能運(yùn)行其實(shí)在內(nèi)部js是需要;號(hào)去幫助解析的

var text=function(){};  //沒有;號(hào)解析報(bào)錯(cuò),JS則自動(dòng)加入;號(hào)

然后JS插入;號(hào)有一個(gè)固定的規(guī)則,但這規(guī)則并不能適用于任何場景就會(huì)把;號(hào)插亂。
結(jié)論
建議絕對(duì)不要省略分號(hào),同時(shí)也提倡將花括號(hào)和相應(yīng)的表達(dá)式放在一行,對(duì)于只有一行代碼的 if 或者 else 表達(dá)式,也不應(yīng)該省略花括號(hào)。這些良好的編程習(xí)慣不僅可以提到代碼的一致性,而且可以防止解析器改變代碼行為的錯(cuò)誤處理。

不要用eval

這并不是eval 不好而是因?yàn)槿菀妆挥缅e(cuò)。
eval只是一個(gè)普通的函數(shù),只不過他有一個(gè)快速通道通向編譯器,可以將string變成可執(zhí)行的代碼。有類似功能的還有Function , setInterval 和 setTimeout。
1、 eval不容易調(diào)試。用chromeDev等調(diào)試工具無法打斷點(diǎn)調(diào)試,所以麻煩的東西也是不推薦使用的…
2、說到性能問題,在舊的瀏覽器中如果你使用了eval,性能會(huì)下降10倍。在現(xiàn)代瀏覽器中有兩種編譯模式:fast path和slow path。fast path是編譯那些穩(wěn)定和可預(yù)測(cè)(stable and predictable)的代碼。而明顯的,eval不可預(yù)測(cè),所以將會(huì)使用slow path ,所以會(huì)慢。
還有一個(gè)是,在使用類似于Closure Compiler等壓縮(混淆)代碼時(shí),使用eval會(huì)報(bào)錯(cuò)。
(又慢又報(bào)錯(cuò),我還推薦嗎?)
3、關(guān)于安全性,我們經(jīng)常聽到eval是魔鬼,他會(huì)引起XSS攻擊,實(shí)際上,如果我們對(duì)信息源有足夠的把握時(shí),eval并不會(huì)引起很大的安全問題。而且不光是eval,其他方式也可能引起安全問題。比如:
莫名其妙給你注入一個(gè)

閱讀需要支付1元查看
<