JavaScript
数据类型转换 : 显示转换和隐式转换
显示转换 : 程序员手动去做转换
其他数据类型转换成字符串(string类型):
1):String(变量名或者数据) 可以转换undefined 和null
2):变量名.toString() 这个方法不能转换undefined和null
3):数据 + "" 在数据后面直接加一个空字符串 就可以实现转换
(1) String(变量名或者数据) 可以转换undefined 和null 开发中的多
var num = 66666;
var str = String(num);
console.log(num, str); //66666 "66666"
console.log(typeof str); //string
var bool = true;
var bool1 = String(bool);
var bool2 = String(true);
console.log(typeof bool1); //string
console.log(typeof bool2); //string
console.log(String(null)); //null
console.log(typeof String(null)); //string
(2) 变量名.toString() 这个方法不能转换undefined和null
console.log(num.toString()); //“66666”
console.log(typeof num.toString()); //string
// var a = null;
// console.log(a.toString()); // 报错
(3) 数据 + “” 在数据后面直接加一个空字符串 就可以实现转换
var num = 11;
console.log(typeof num); //number
num = 11 + "";
console.log(typeof num); //string
var boo = true + "";
console.log(typeof boo); //string
其他数据类型转化为number类型:
1):parseInt() 把其他数据类型转换成整数类型,偏向于转换字符串
① 从左到右解析,遇到非数字字符, 就停止解析, 输出已经解析出的数字
② 如果第一字符就是非数字字符, 就无法转换, 得到NaN
2): parseFloat() 把其他数据类型转换成小数
① 从左到右解析,遇到非数字字符, 就停止解析, 输出已经解析出的数字
② 如果第一字符就是非数字字符, 就无法转换, 得到NaN
③ 如果第一个字符为小数点,后面字符为数字,则在小数点前面追加0,再把0和小数点后面的数字组合转化为小数
3):Number() 把其他数据类型转换成数字
① 可以把其他数据类型转换成数字类型, 偏向于转布尔类型的数据
② 如果转换的数据里面有任意一个是非数字字符(小数点除外), 那么得到的结果就是NaN
③ 注意undefined转换成数字返回值为NaN,null转化为数字返回值为0
④ 转布尔类型时true 返回1,false返回0
4):在数字前面+
① 跟Number()转换的原理一样, 特点也一样
② 把+ 当做数学里面的正负号来用
其他数据类型转化为boolean类型:
转化为fasle的8种情况:
① 0
② -0
③ undefined
④ false
⑥ “”
⑦ NaN
⑧ document.all
隐式转换:
1): 转换成字符串 : + 字符串连接符的时候,运算符两边, 只要有一遍是字符串, 那么就会把另外一遍一转成字符串进行拼接
2): 转换成数字 : 自增自减,算术运算符(除+作为字符串连接符以外),+ 除外,两边必须是数字才能进行计算
3): 转成布尔类型 : ! 逻辑非的操作数必须是布尔类型, 计算机自动转换
逻辑运算符:
1):&& 逻辑与(并且)一假则假,表达式只要有一个假,则整个表达式全为假
2):| | 逻辑或(或者) 一真则真,表达式只要有一个真,则整个表达式全为真
3):! 逻辑非 (取反) true变false,false变true
注意:逻辑表达式的结果不只是true或者false
逻辑表达式的短路运算:
定义: 在逻辑表达式中, 如果第一个式子就可以决定整个逻辑表达式的结果, 那么第二个式子就不用再计算了, 这个就是逻辑运算符的短路运算
1):逻辑与的短路运算:找假,逻辑与一假则假,因此,如果第一个式子的结果为false, 那么该逻辑表达式的结果就是第一个式子的值, 否则就是第二个式子的值
2):逻辑或的短路运算:找真,逻辑或一真则真,因此。如果第一个式子的结果为true, 那么该逻辑表达式的结果就是第一个式子的值, 否则就是第二个式子的值
3):逻辑非没有短路运算