true(2)用布爾型的構造函數(shù):new Boolean(5) == > true值轉換為布爾類型為false:0,+0,-0,NaN,(空字符串),undefined,null除上面的值其他值在轉換" />
二、隱式類型轉換:
(1)二元加法運算(+):如果兩個操作數(shù)中有一個是String類型,將把兩個操作數(shù)轉換為String類型再相加。
如果兩個操作數(shù)中沒有字符串類型,那么將把兩個操作數(shù)轉換為數(shù)值類型再做運算。
舉例:
"123"+123 = "123123";
123+123 = 246
true + true = 2
true + undefined = NaN (因為undefined轉換為數(shù)值為NaN,所有結果為NaN)
true + null = 1 (null轉換為數(shù)字是0)
"123" + null = "123null" (包含字符串將轉化為字符串相加)
"123" + undefined = "123undefined" (undefined同樣適用)
1 + 2 + "123" = "3123" (1+2是首先按照數(shù)值型計算的)
(2)二元減乘除運算(-*/):因為只有數(shù)值類型才有 - * / 運算,所以會先將兩個操作數(shù)轉換為數(shù)值型再做運算。
"123"-123 = 0
(3)一元取正(+),取負運算符(-):取正或者取負都是針對數(shù)值型的運算,所以會將操作數(shù)轉換為數(shù)值型再做運算。
+"123" = 123
-"123" = -123
+"123e" = NaN
+"123f" = NaN
+"123e-2" = 1.23
(4)一元非(!)運算符:非運算符需要將操作數(shù)轉化為布爾類型。
!"123" = false
!!"123" = true
!123 = false
!!123 = true
(5)邏輯運算符(&&)和(||):
在&&或者||的兩側被判斷的時候會被轉為布爾類型進行判斷,
但是我在測試的時候卻發(fā)現(xiàn)一個有趣的事情。
&&運算符:如果有一個項為false,那么表達式返回false,如果所有的項都不為false,那么表達式返回最右邊一個項的原始值。
舉例:
123 && 23 && 45 返回 45,而不是我們想象中的true.
所以如果有 123 && 23 == true 那么應該是false。
至于if(123 && 23) 認為是true那應該是把23轉換為布爾類型了。
||運算符:
對 || 測試的結果也和我想象的不一樣,|| 返回第一個轉換以后不為false的值,如果都為false,它將返回最后一個為false的值(未進行類型轉化之前的值)。
舉例:
123 || 23 返回 123,而不是想象中的true.
false || null 返回null, 而不是想象中的false。
三、類型轉換函數(shù)
1.parseFloat轉換為浮點數(shù):
字符解析函數(shù)獲取每一個字符直到遇到不屬于數(shù)值的字符,然后返回它已獲取的數(shù)值.
幾個需要特別注意的:
""(空字符串) ==> NaN
"123e-2" == > 1.23 (科學計算法是可以識別的)
"010" ==> 10 (8進制不能識別)
"0x10"==> 0 (16進制不識別)
"-010" ==> -10
null,undefined,true,false,new Object(),function(){} ==> NaN
2.parseInt轉換為有符號整數(shù):
跟parseFloat相似,但是他會把小數(shù)位舍掉(注意不是四舍五入,是完全舍棄,跟Math.floor處理方式一樣),而且他可以識別八進制和16進制表示方式:
123e-2 == > 1
"123e-2" ==> 123
"010" == > 8
"0x10" ==> 16
"-010" == > -8
"-0x10" ==> -16
null,undefined,true,false,new Object(),function(){},-Infinity +Infinity NaN ==> NaN
3.三個取整函數(shù)的區(qū)別:
(1)Math.ceil():“天花板”,很形象吧?就是取大于等于參數(shù)的最小整數(shù)。
8.7 == > 9
-8.7==> -8
(2)Math.floor():"地板",取小于等于參數(shù)的最小整數(shù)。
8.7 ==> 8
-8.7 ==> -9
(3)Math.round():"四舍五入"取整數(shù)。
聲明:本網(wǎng)頁內容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com