javascript中name,value等屬於保留字


前幾天在練習js代碼的時候,碰到了一個坑,這是讓人醉了。
html代碼如下:

 <div>
        <div>
            <!--輸入 123456-->
            <lable>請輸入員工編號</lable>
            <input id="keyWord" type="text">
        </div>

        <div>
            <!--輸入 moran-->
            <lable>請輸入員工姓名</lable>
            <input id="staffName" type="text">
        </div>
        <div>
            <!--點擊保存,輸出監聽函數中的log信息   @author www.yaoxiaowen.com-->
            <button id="save">保存</button>
        </div>

    </div>

js代碼如下:

 var keyword=document.getElementById("keyWord");
    var name=document.getElementById("staffName");
    var save=document.getElementById("save");

    //輸出:  keyword=[object HTMLInputElement]	 keyword.value =
    console.log("keyword=" + keyword + "\t keyword.value = " +keyword.value);


    var keyValue = keyword.value;
    //輸出: ===
    if (keyValue === ""){
        console.log("===");
    }else {
        console.log("!==");
    }

    //輸出:name=[object HTMLInputElement]	 name.value = undefined
    console.log("\t name=" + name + "\t name.value = " +name.value);

    //@author   www.yaoxiaowen.com
    save.onclick=function(){
        //輸出:  keyword=[object HTMLInputElement]	 keyword.value = 123456
        console.log("keyword=" + keyword + "\t keyword.value = " +keyword.value);

        //輸出:name=[object HTMLInputElement]	  name.value = undefined
        console.log("\t name=" + name + "\t  name.value = " +name.value);

        //輸出: document.getElementById('staffName').value = moran
        console.log("document.getElementById('staffName').value = " + document.getElementById("staffName").value);
    }

代碼注釋中已經寫了相應的注釋輸出,完全一樣的 <input>標簽,js中獲得Element也是一樣的操作,可是 namekeyword它們的行為表現就是不一樣。

盯着這些代碼看了半天,各種調試測試,可是還是想不明白。最后意外的發現,把 name這個變量名修改成其他值就好了,比如name1之類的。

這就讓我懷疑人生了。c,java,js等語言中那些關鍵字,保留字,比如for,while,break,private,class,,throw等這些不能用於變量名是常識,可是一個name是個普通的字符串啊。

然后去google搜索,竟然發現了某篇博客的這句話:

有些東西是保留字,避免使用就行了,沒有為什么... js中的保留字會導致奇怪的結果,各個瀏覽器保留字不同,導致結果也不同,盡量不要使用name,value,if,in,for之類的東西做變量名

然后在菜鳥教程,發現了一個(在我看來)很龐大的保留字,關鍵字表點擊查看

好吧,js中的坑真多,菜鳥教程的那些保留字表格,還是多讀幾遍吧,免得最后因為這個細節問題而出現難以調試的bug。


作者: www.yaoxiaowen.com

github: https://github.com/yaowen369

歡迎對於本人的博客內容批評指點,如果問題,可評論或郵件(yaowen369@gmail.com)聯系

<p >
		 歡迎轉載,轉載請注明出處.謝謝
</p>


<script type="text/javascript">
 function    Curgo()   
 {   
     window.open(window.location.href);
 }   
</script>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM