型別可以用 typeof() 獲取。
object型別,可以理解為引用型別,但是不完整。
vara=
function()
console.
log(
typeof
)// 輸出 object
console.
log(
typeof
)// 輸出 object
console.
log(
typeof
null
)// 輸出 object
console.
log(
typeof undefined)
// 輸出 undefined
console.
log(
typeof a)
// 輸出 function
為什麼typeof null 是 object 型別?
因為最早null出來的時候是為了指定空物件,是空物件的指標,空物件的佔位符。在es6制定的時候,有提出null的這個問題,但是被es6標準的時候拒絕了,因為修改這個的話,可能會導致之前寫的所有**都需要重新去修改,所以是個歷史遺留問題,可能以後會解決吧。
number()
console.
log(
number
(null))
// 輸出:0
console.
log(
number
(undefined)
)// 輸出:nan
console.
log(
number
('a'))
// 輸出:nan
console.
log(
number
('123'))
// 輸出:123
console.
log(
number
('1a'))
// 輸出:nan
console.
log(
number
(true))
// 輸出:1
console.
log(
number
(false))
// 輸出:0
parseint()
console.
log(
parseint
(true))
// 輸出:nan (parseint只會把number型別轉成整型,而不會先把其他型別轉為number型別)
console.
log(
parseint
(3.66))
// 輸出:3
console.
log(
parseint
('abc123'))
// 輸出:nan
console.
log(
parseint
('123abc12'))
// 輸出:123 (parseint只會從頭開始識別數字,識別到不是數字的情況下就停止,不會繼續向後識別)
console.
log(
parseint
(undefined)
)// 輸出:nan
console.
log(
parseint
(null))
// 輸出:nan
boolean()
null,undefined,nan,false,空字串都是 false,其他的都是true
console.
log(
boolean
(undefined)
)// 輸出:false
console.
log(
boolean
(null))
// 輸出:false
console.
log(
boolean
(nan))
// 輸出:false
console.
log(
boolean
(false))
// 輸出:false
console.
log(
boolean
('abc'))
// 輸出:false
字串裡是純數字,會隱式轉換為number
var a =
'123'
a++console.
log(a)
// 輸出124
字元換和數字相加,會會隱式轉換為字串
var a =
'a'+
1console.
log(a)
// 輸出 a1
字串中是純數字的情況下,乘法(*),除法(/),減法(-),求餘(%) 和 比較兩個數字都會轉成number
console.
log(
'3'*
'2')
// 輸出 6
console.
log(
'3'/
'2')
// 輸出 1.5
console.
log(
'3'-
'2')
// 輸出 1
console.
log(
'3'%
'2')
// 輸出 1
console.
log(
'3'>
'2')
// 輸出 true
=== 不進行隱式轉換
console.
log(
'3'===3)
// 輸出 false
在比較的時候下面情況比較特殊
// null,undefined既不大於零,也不小於零,也不等於零
// undefined === null 是 false
console.
log(
null
>0)
// 輸出 false
console.
log(
null
<0)
// 輸出 false
console.
log(
null==0
)// 輸出 false
console.
log(undefined >0)
// 輸出 false
console.
log(undefined >0)
// 輸出 false
console.
log(undefined ==0)
// 輸出 false
console.
log(
null
== undefined)
// 輸出 true
console.
log(
null
=== undefined)
// 輸出 false
字串前面增加 加號/減號,是要把字串成number的,如果字串不是純數字的則輸出輸出nan
var a =
'123'
console.
log(
+a)// 輸出number型別的 123
console.
log(
-a)// 輸出number型別的 -123
var a =
'123abc'
console.
log(
+a)// 輸出nan
console.
log(
-a)// 輸出nan
isnan()
isnan() 會先把裡面的值用number轉換後在進行判斷。
console.
log(
isnan
(nan))
// 輸出 true
console.
log(
isnan
(123))
// 輸出 false
console.
log(
isnan
('123'))
// 輸出 false
console.
log(
isnan
(a))
// 未定義的a 輸出 true
console.
log(
isnan
(null))
// 輸出 false
顯式型別轉換和隱式型別轉換
typeof六種資料型別 number string boolean undefined object function var num 123 console.log typeof num number var num1 true console.log typeof num1 string va...
C 的隱式型別轉換和顯式型別轉換
c 的隱式型別轉換和顯式型別轉換 c 的隱式型別轉換 在 c 語言中,一些預定義的資料型別之間存在著預定義的轉換。比如,從 int型別轉換到 long 型別。c 語言中資料型別的轉換可以用分為兩 類 隱式轉換 implicit conversions 和顯式轉換 explicit conversio...
js隱式型別轉換
筆試題 var x 1 if function console.log x 1undefined解析 if function f function f 作為表示式,function f消失,所以在if裡面,f為未宣告 任何乙個變數,未經宣告使用都會報錯。但是,typeof其時,不會報錯,而是unde...