JS基础学习(2)

70 阅读1分钟

隐式类型转换

var a = "123";// Number
a++;
console.log(a)// 124

var a = "a" + 1; // String
var a = "3" * 2; // * / - % str->Number
var a = 1 > "2";// number
var a = "a" > "b"; // ascii
// > < >= <=

var a = 1 == "2"; // false
var a = 1 === "1" // false 这个不进行隐式转换
var a = NaN == NaN; // false

var a = 2 > 1 > 3;// false
var a = 2 > 1 == 1; // true

var a = undefined == 0;//false
           // > < false
           
var a = null == 0; // false
var a = undefined === null ;//false

var a = undefined == null ;//true

var num = "123";
console.log(typeof(+num) + ":" + + num);// number : 123

var num = "abc";
console.log(typeof(+num) + ":" + + num);// number : NAN
  • isNaN 返回布尔值判断是否是数字
console.log(isNaN('a'));// true
console.log(isNaN(null));// false
console.log(isNaN(undefined));// true
// Number(值) ->NaN ->bool

  • typeof() 判断类型
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 转换成数字类型
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 转换浮点型
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
Number("16")
16
Number("1" - 1)
0
Number("1" + "1")
11
Number(null)
0
Number(undefined)
NaN
Number(NaN)
NaN
Number(true)
1
  • String
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
Boolean(a)
true
Boolean(c)
true
Boolean()
false
Boolean("")
false
Boolean(" ")
true
Boolean("16")
true
Boolean("16" + 11)
true
Boolean(1 + 1)
true