隐式类型转换
var a = "123";
a++;
console.log(a)
var a = "a" + 1;
var a = "3" * 2;
var a = 1 > "2";
var a = "a" > "b";
var a = 1 == "2";
var a = 1 === "1"
var a = NaN == NaN;
var a = 2 > 1 > 3;
var a = 2 > 1 == 1;
var a = undefined == 0;
var a = null == 0;
var a = undefined === null ;
var a = undefined == null ;
var num = "123";
console.log(typeof(+num) + ":" + + num);
var num = "abc";
console.log(typeof(+num) + ":" + + num);
console.log(isNaN('a'));
console.log(isNaN(null));
console.log(isNaN(undefined));
typeof(1)
'number'
typeof("1")
'string'
typeof(1 - 1)
'number'
typeof("1" - "1")
'number'
typeof("1" + "1")
'string'
typeof(typeof(10))
'string'
typeof(typeof("a"))
'string'
typeof(Number("2"))
'number'
typeof(String(100))
'string'
typeof(NaN)
'number'
typeof(undefined)
'undefined'
var a = 0;
typeof(a = 10 + 10)
'number'
typeof(Boolean(1))
'boolean'
typeof(Boolean("11"))
'boolean'
parseInt("11")
11
typeof(parseInt("123"))
'number'
parseInt(NaN)
NaN
parseInt(undefined)
NaN
parseInt(null)
NaN
parseInt("aw123")
NaN
parseInt("123aaa")
123
parseInt("1" + "1")
11
parseInt("1" - "1")
0
parseFloat(16.33333)
16.33333
parseFloat("1.33")
1.33
parseFloat(NaN)
NaN
parseFloat(undefined)
NaN
parseFloat(null)
NaN
parseFloat(1.22 + 2.22)
3.4400000000000004
parseFloat(1.22 + 2.22).toFixed(2)
'3.44'
Number("16")
16
Number("1" - 1)
0
Number("1" + "1")
11
Number(null)
0
Number(undefined)
NaN
Number(NaN)
NaN
Number(true)
1
String(1)
'1'
String(1 + 11)
'12'
String(null)
'null'
String(undefined)
'undefined'
String(NaN)
'NaN'
String(a)
'20'
String(c)
'7.89'
String(d)
'78.9'
Boolean(a)
true
Boolean(c)
true
Boolean()
false
Boolean("")
false
Boolean(" ")
true
Boolean("16")
true
Boolean("16" + 11)
true
Boolean(1 + 1)
true