国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Js中相等運算符如何轉換操作數

dabai / 699人閱讀

摘要:可以理解為,它們其實都是表示沒有值沒有值的變量和沒有值的對象,因此認為它們相等。使用運算符時,也不必考慮各種復雜的規則拼接在使用號進行拼接時,會先將數字轉換為字符串,再進行拼接操作。

在將兩個類型不同的值進行比較時,Js會自動將其中一個值轉換為另一個值的類型,再進行比較

比較數字與字符串

這種情況下,都會將字符串轉換為數字,再對兩個數字進行比較

99 == "98"
99 == 98
false

但實際并非所有的字符串都能轉換為數字:

99 == "xiaoming"
99 == NaN//因為NaN不與任何東西相等
false
比較布爾值與其他類型

這種情況下,都會將布爾值轉換為數字,再進行比較,true會轉換為1,false會轉換為0。有些情況下,為了判斷需要做出多次轉換:

"1" == true
"1" == 1
1 == 1
true
比較null與undefined
undefined == null
true

這兩個值的比較結果為true,看似有點奇怪,但是規則就是這樣。可以理解為,它們其實都是表示“沒有值”(沒有值的變量和沒有值的對象),因此認為它們相等。

所以在Js中,在經常做檢驗的場合中,其實沒有必要同時判斷null和undefined
例外

上述三種情形已經可以確定所有的請況,只是對于一些邊界情況需要額外注意。一個主要注意的是對象的比較,另一個需要注意的是某些特殊的情形

1 == ""
1 == 0//空字符串轉為數字的結果是0,可以自己測試一下
false
附錄 ===運算符

對于===運算符,當且僅當兩個值的類型和值都相同時,結果才為true。
使用===運算符時,也不必考慮各種復雜的規則

拼接

在使用+號進行拼接時,Js會先將數字轉換為字符串,再進行拼接操作。

1 + “str”
“1str”

但必須注意的是,+號的結合性是從左到右的,所以1 + 2 + “str”的結果為3str,而1 + (2 + "str")的結果是12str

對于boolean類型,將它與字符串相加時,結果為字符串。true + " love"結果為true love。不過在編寫代碼時,應當避免這種代碼,以免給人帶來誤解
其它算術運算

對于其它算術運算符,如乘法、除法和減法,Js將認為你要執行的是算術運算,而不是字符串運算3 * "4"會自動轉換為3 * 4

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/107023.html

相關文章

  • js面試題(下)

    摘要:短路運算返回值是什么又稱為短路或,短路如果左側為真,則不再進行右側運算,同時返回左側表達式運算結果。上面是不存在的,所有結果為,轉成就是,那么就會運算,把賦值給的同時,返回值也是,所以打印返回結果是函數內部變量有哪些 DOM元素e的e.getAttribute(propName)和e.propName有什么區別和聯系 e.getAttribute(),是標準DOM操作文檔元素屬性的方...

    zhoutao 評論0 收藏0
  • JS基礎學習03「表達式和算符

    摘要:函數定義表達式。對象創建表達式。需要注意的是,大多數運算符都是由標點符號表示的,比如和。也就是說,空字符串將被當作,布爾值將被當作。對于和,則分別調用函數并取得字符串和。 表達式 表達式是由數字、運算符、數字分組符號(如括號)、自由變量和約束變量等以能求得數值的有意義排列方法所得的組合。JavaScript 表達式主要有以下幾種形式: 原始表達式:常量、變量、保留字。 對象、數組初始...

    dcr309duan 評論0 收藏0
  • JS鮮為人知的問題: [] == ![]結果為true,而 {} == !{}卻為false

    摘要:在比較字符串數值和布爾值的相等性時,問題還比較簡單。但在涉及到對象的比較時,問題就變得復雜了。和是相等的要比較相等性之前,不能將和轉換成其他任何值如果有一個操作數是,則相等操作符返回,而不相等操作符返回。 console.log( [] == ![] ) // true console.log( {} == !{} ) // false 在比較字符串、數值和布爾值的相等性時,問題還...

    csRyan 評論0 收藏0
  • JavaScript 的隱式類型轉換

    摘要:雖然你可能很驚訝甚至可能懷疑是的但是這都是有語言自己的一個隱式類型轉換的套路。基本的隱式類型轉換基本類型的隱式轉換這個其實我們使用的最多例如結果返回的是而不是這就是類型的隱式轉換。 基本上所有的語言都有 隱式類型轉換 ,但是對于 弱類型語言(JS) 來說 ,隱式類型轉換會比 強類型語言(Java) 帶來更大的副作用,有些行為甚至是不可思議的。雖然你可能很驚訝 ,甚至可能懷疑是 JS 的...

    txgcwm 評論0 收藏0
  • js抽象相等==

    摘要:中抽象相等比較算法大致介紹一下的數據類型的數據類型分為種如果再加上數據類型,一共種與的區別描述一個空值空的對象引用即空指針,被當做一個對象,輸出為算是一個吧,輸出為。運算符把其值參數轉換為非類型對象。 Javascript中抽象相等比較算法 undefined==null //true []==[] //false []==![] //true {}==!{} //false ![]=...

    hzx 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<