# 3.类型转换

# 显示类型转换

  • Number() 把括号里的值转换为number 只要括号内有非数(除了null和布尔),都会显示NaN

  • parseInt() ----有基底 把括号里的值转换成数字类型,只能转换string的数字和number parse:转化 Int:整型

  1. parseInt( ,radix) radix:基底,取值是2~36,但radix=16时,表示将16进制里的某个数转化成十进制
  2. 以目标进制转化成十进制的过程

砍断原则:阅读字符串时,会从数字位开始阅读,直到非数字位截止,如果字符串开头不是数字,则输出NaN(如果字符串时123.4,则输出123)

  • parseFloat 和parseInt两点不同:
  1. parseFloat看到小数点时,仍会往后面阅读数字
  2. parseFloat没有基底
  • String 将括号里的值转换成字符串

  • toString ----有基底 书写方式:变量名.toString() 表示把此变量名里的值的显示类型转换为字符串 两个不能用toString的值:undefined、null

toString(radix),当radix=8时,表示将变量名里的值转换成字符串八进制 以十进制转化成目标进制的过程

  • Boolean 将括号里的值转换成布尔值

# 隐式类型转换

  1. isNaN() 判断一个数是否是NaN

执行过程:先将()里的值放到Number()里转换,如果结果是NaN,则输出true,反之输出false

  1. ++/-- +/-(一元正负)
  • ++/-- var a = 123; a ++; 执行过程:当出现 ++ 时,会先把a的值放进Number()里,然后再加1
  • +/- var a = +"123"; 此时a从字符串类型转换成数字类型
  • +(加号) var a = "abc" + 1; 当 + 号两侧有一侧是字符串时,程序就会调用 String ,将整个变量的类型转换为字符串
  1. -*/% 这四个运算符号,都是调用Nmuber()

var a = "abc" * 9; 执行过程:Number("abc") * Nmuber(9)

  1. && || ! Boolean()

  2. <> <= >= 分两种情况:

  • 字符串和数字比较时,会把字符串转换成数字类型,然后进行比较输出布尔值
  • 字符串和字符串比较时,比较的是ASC码
  1. == !=

# 不发生隐式类型转换

  1. === 绝对等于号
  2. !== 绝对不等于号