HTML中的文字框的null和“”的區別
阿新 • • 發佈:2018-12-15
之前我也一直被這個問題所疑惑,後來我懂了,來看看我理解的對不對:
假設定義一個字串:String str;
str == null,指空物件,即空指標,沒有分配記憶體;
而str ==“”,指空字串,是個字串但是裡面什麼度沒有,這是有分配記憶體的。
光說不練假把式!先上程式碼:js
<script type="text/javascript"> var text = document.getElementById("text").value; //驗證方法1: console.log("text==\"\"是真的嗎?"+(text=="")); console.log("text==null是真的嗎?"+(text==null)); /* //驗證方法2:下面這段程式碼是用alert()驗證,文字框不為空時返回true if (text!="") { alert(text!=""); }else{ alert(text!=""); } */ </script>
下面這個是HTML:
<body>
<p id="title">null和“”的區別:</p>
<form action="http://www.w3school.com.cn/" method="post">
<input type="text" id="text" name="text" />
<input type="button" id="button" value="驗證是否非空" onclick="check()"/>
</form>
</body>
在js裡面我是用console.log()f方法方法測試的,該方法輸出的資料可在按F12後的控制檯那裡看到,方便分析。(當然你也可以用alert()方法驗證。)
測試瀏覽器:谷歌瀏覽器。
測試:1.不填任何東西直接驗證:
測試:2.填“666”驗證:(下面的為新的內容)
由此我們可知:當HTML的文字框沒有填寫東西時,它是個空串,驗證非空時要用 if( str=="") 驗證,而不是用if( str == null) 驗證。