1 回答

TA貢獻1946條經(jīng)驗 獲得超3個贊
按一般思維這個結(jié)果是false。不過結(jié)果并非如此,返回的是true。
補充回復:?
這里執(zhí)行的是字符串比較。因為DOM元素的屬性都是字符串類型的,所以這里他只會做字符串比較。要做數(shù)字的大小對比必須使用parseInt進行轉(zhuǎn)換成整型數(shù)然后做對比。
所以這里的重點是javascript字符串比較的問題了。
javascript在進行字符串比較的時候執(zhí)行的是按位進行比較的,所以這里按位進行比較時就是字符4和字符1進行對比,這個對比就很明確了,ASCII碼值4是比1大的(這里還待商榷,我還需要證實下)。
另外為了說明這里執(zhí)行的是字符串比較,我把代碼稍稍加了句話,你可以看下
alert(typeof (document.getElementById("txtOne").value));
alert(typeof (document.getElementById("txtTwo").value));
?
補充二:
比較運算符
Footer Start要求
用于比較表達式。
result = expression1 comparisonoperator expression2
參數(shù)
- result
- 任意數(shù)值。
- expression
- 任何表達式。
- comparisonoperator
- 任何比較運算符。
- object
- 任何對象名稱。
說明
下表包含一個比較運算符的列表,以及確定 result 為 True, False, 或 Null 的條件。
運算符 | 描述 | True 如果 | false 如果 | Null 如果 |
---|---|---|---|---|
< | 小于 | expression1 < expression2 | expression1 >= expression2 | expression1 or expression2 = Null |
<= | 小于或等于 | expression1 <= expression2 | expression1 > expression2 | expression1 or expression2 = Null |
> | 大于 | expression1 > expression2 | expression1 <= expression2 | expression1 or expression2 = Null |
>= | 大于或等于 | expression1 >= expression2 | expression1 < expression2 | expression1 or expression2 = Null |
= | 等于 | expression1 = expression2 | expression1 <> expression2 | expression1 or expression2 = Null |
<> | 不等于 | expression1 <> expression2 | expression1 = expression2 | expression1 or expression2 = Null |
當比較兩個表達式時,您或許不容易確定比較的表達式是作為數(shù)值或作為字符串。
下表描述了如何對表達式進行比較、以及比較的結(jié)果,它取決于比較的子類型。
如果 | 則 |
---|---|
兩個表達式都是數(shù)值 | 執(zhí)行數(shù)值比較。 |
兩個表達式都是字符串 | 執(zhí)行字符串比較。 |
一個表達式是數(shù)值,加一個表達式是字符串 | 數(shù)值表達式小于字符串表達式。 |
一個表達式為 Empty 而另一個為數(shù)值 | 執(zhí)行數(shù)值比較,0 作為 Empty 表達式的值。 |
一個表達式為Empty 而另一個表達式為字符串 | 執(zhí)行字符串比較,零長度的字符串 ("") 作為 Empty 表達式的值。 |
兩個表達式都為 Empty | 則兩個表達式相等。 |
?
你看下上面的說法!這里很明確,兩個表達式都是字符串,執(zhí)行字符串比較。?而我們在操作DOM對象的屬性時取出的是字符串類型值。所以這里他進行的是字符串比較。
?
補充回復二:
為保證我在說明事實之前請先打開http://www.w3school.com.cn/js/pro_js_operators_relational.asp?這個鏈接,然后瀏覽一遍相關(guān)描述。
另外你也可以下載一個ECMAScript 262的手冊找到關(guān)系運算符一章,看看官方的描述。
看看你給的鏈接的文章http://jiake.javaeye.com/blog/231186說的是否正確,我不敢說他翻譯或者轉(zhuǎn)抄的是完全正確的,但至少他這里的說法不夠準確的。
針對JScript8中微軟官方文檔中描述這個是沒錯的,但我想這個是理解的問題。且看
嘗試將 expression1 和 expression2 都轉(zhuǎn)換為數(shù)字。
如果兩個表達式均為字符串,則按字典序比較字符串。?????????????????????????????????????????????????????????? 針對這里的描述我想是會產(chǎn)生理解的偏差的,但是這里我覺得寫的還是很明確的,嘗試將exp1和exp2轉(zhuǎn)換為數(shù)字,如果exp1和exp2均為字符串,則按字典順序比較字符串。備注:操作DOM對象的屬性時取出的是字符串類型值。
不好意思,我這里扣字眼了!
添加回答
舉報