# 3.类型转换
# 显示类型转换
Number() 把括号里的值转换为number 只要括号内有非数(除了null和布尔),都会显示NaN
parseInt() ----有基底 把括号里的值转换成数字类型,只能转换string的数字和number parse:转化 Int:整型
- parseInt( ,radix) radix:基底,取值是2~36,但radix=16时,表示将16进制里的某个数转化成十进制
- 以目标进制转化成十进制的过程
砍断原则:阅读字符串时,会从数字位开始阅读,直到非数字位截止,如果字符串开头不是数字,则输出NaN(如果字符串时123.4,则输出123)
- parseFloat 和parseInt两点不同:
- parseFloat看到小数点时,仍会往后面阅读数字
- parseFloat没有基底
String 将括号里的值转换成字符串
toString ----有基底 书写方式:变量名.toString() 表示把此变量名里的值的显示类型转换为字符串 两个不能用toString的值:undefined、null
toString(radix),当radix=8时,表示将变量名里的值转换成字符串八进制 以十进制转化成目标进制的过程
- Boolean 将括号里的值转换成布尔值
# 隐式类型转换
- isNaN() 判断一个数是否是NaN
执行过程:先将()里的值放到Number()里转换,如果结果是NaN,则输出true,反之输出false
- ++/-- +/-(一元正负)
- ++/-- var a = 123; a ++; 执行过程:当出现 ++ 时,会先把a的值放进Number()里,然后再加1
- +/- var a = +"123"; 此时a从字符串类型转换成数字类型
- +(加号) var a = "abc" + 1; 当 + 号两侧有一侧是字符串时,程序就会调用 String ,将整个变量的类型转换为字符串
- -*/% 这四个运算符号,都是调用Nmuber()
var a = "abc" * 9; 执行过程:Number("abc") * Nmuber(9)
&& || ! Boolean()
<> <= >= 分两种情况:
- 字符串和数字比较时,会把字符串转换成数字类型,然后进行比较输出布尔值
- 字符串和字符串比较时,比较的是ASC码
- == !=
# 不发生隐式类型转换
- === 绝对等于号
- !== 绝对不等于号