如這段代碼,注意最后一個逗號,按語言學角度來說應該是不錯的(python的類似數據類型辭典dictionary就允許如此)。IE會報語法錯誤,但語焉不詳,你只能用人眼從幾千行代碼中掃描。

<script> var theObj " /> 国产亚洲精品高潮,狠狠噜噜久久,最新欧美日韩亚洲

色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

JavaScript的9個陷阱及評點分析

1. 最后一個逗號

如這段代碼,注意最后一個逗號,按語言學角度來說應該是不錯的(Python的類似數據類型辭典dictionary就允許如此)。IE會報語法錯誤,但語焉不詳,你只能用人眼從幾千行代碼中掃描。

<script>
  var theObj = {
        city : "Boston",
        state : "MA",
  }
</script> 
2. this的引用會改變

如這段代碼:

<input type="button" value="Gotcha!" id="MyButton" >
<script>
var MyObject = function () {
    this.alertMessage = "Javascript rules";
    this.ClickHandler = function() {
        alert(this.alertMessage );
  }
}();
document.getElementById(”theText”).onclick =  MyObject.ClickHandler
</script>
并不如你所愿,答案并不是”JavaScript rules”。在執行MyObject.ClickHandler時,代碼中紅色這行,this的引用實際上指向的是document.getElementById("theText")的引用。可以這么解決:

<input type="button" value="Gotcha!" id="theText" >
<script>
var MyObject = function () {
    var self = this;
    this.alertMessage = “Javascript rules”;
    this.OnClick = function() {
        alert(self.value);
    }
}();
document.getElementById(”theText”).onclick =  MyObject.OnClick
</script>
實質上,這就是JavaScript作用域的問題。如果你看過,你會發現解決方案不止一種。

3. 標識盜賊

JavaScript中不要使用跟HTML的id一樣的變量名。如下代碼:

<input type="button" id="TheButton">
<script>
    TheButton = get("TheButton");
</script>
IE會報對象未定義的錯誤。我只能說:IE sucks.

4. 字符串只替換第一個匹配

如下代碼:

<script>
    var fileName = "This is a title".replace(" ","_");
</script>
而實際上,結果是”This_is a title“. 在JavaScript中,String.replace的第一個參數應該是正則表達式。所以,正確的做法是這樣:

var fileName = "This is a title".replace(/ /g,"_");

JavaScript技術JavaScript的9個陷阱及評點分析,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 柳林县| 托里县| 巨鹿县| 新竹县| 北票市| 贺州市| 鄢陵县| 太仓市| 油尖旺区| 镇康县| 乐至县| 安平县| 姚安县| 阳原县| 白玉县| 民和| 宾阳县| 固阳县| 邢台市| 绍兴市| 克什克腾旗| 黄骅市| 桐柏县| 奉化市| 玉山县| 济阳县| 安溪县| 乐都县| 东方市| 莒南县| 海兴县| 邹城市| SHOW| 万荣县| 富平县| 涪陵区| 水富县| 徐汇区| 莱阳市| 江城| 镇宁|