一、typeofspa
typeof兩種寫法:typeof num;typeof(num)字符串
typeof(111) // "number"string
typeof(undefined) // "undefined"io
typeof('aaaa') // "string"console
typeof(true) // "boolean"function
typeof(null) // "object"object
typeof([1,2,3]) // "array"方法
typeof({age:18}) // "object"類型轉換
typeof(function fun(){}) // "function"di
二、類型轉換
顯式類型轉換
(1)Number(mix)
Number('111') // 111
Number(true) // 1
Number(false) // 0
Number(null) // 0
Number('') // 0
Number(' ') // 0
Number( ) // 0
Number(undefined) // NaN
Number('abc') // NaN
Number('-111') // -111
(2)parseInt(string, radix)、parseFloat(string)
parseInt(string, radix):將字符串轉成數字,若是不是字符串,會先將其轉成字符串;第二個參數表示將對應進制的數轉成十進制
parseInt(111) // 1
parseInt(true) // NaN
parseInt(false) // NaN
parseInt(null) // NaN
parseInt('123') // 123
parseInt('123.9') // 123
parseInt('abc') // NaN
parseInt('') // NaN
parseInt('+123.9') // 123
parseInt('-123.9') // -123
parseInt('10', 2) // 2
parseInt('12abc') // 12
parseFloat(123.45) // 123.45
parseFloat(123) // 123
parseFloat('123.4sdf') // 123.4
(3)String(mix)
String(111) // '111'
String(true) // 'true'
String(NaN) // 'NaN'
String(undefined) // 'undefined'
String(null) // 'null'
(4)Boolean(mix)
Boolean('') // false
Boolean(' ') // true
Boolean('123') // true
(5)toString(radix)
undefined和null不能用toString方法,不然會報錯
(111).toString() // '111'
(2).toString(2) // '10'
隱式類型轉換
(1)isNaN()
內部經過Number()方法進行轉換,而後和NaN比較
isNaN(NaN) // true
isNaN(123) // false
isNaN(undefined) // false
isNaN('abc') // true
(2)++、--、+(正號)、-(負號)
在運算前內部調用Number( )方法
var a = '123';
a ++;
console.log(a) // 124
+ '456' // 456
- '456' // -456
(3)+(加號)
當加號兩邊只要有一側是字符串,就會調用String( )方法
var a = 'b' + 2; // b2
(4)-、*、/、%
運算符兩邊調用Number( )方法
var a = '2' * 3; // 6
var b = 'a' - 4; // NaN
(5)==、!=
1 == '1' // true
1 != '1' // false
undefined == 0 // false
undefined > 0 // false
undefined < 0 // false
null > 0 // false
null < 0 // false
null == 0 // false
undefined == null // true
NaN == NaN // false
NaN != NaN // true