数据类型转换
typeof 判断数据类型
typeof 数据 返回数据的类型
例如 type "aaa" 返回string,得到string
var a;
console.log(typeof a); 因为没有赋值,所以它是undefined
var b=null
console.log(typeof b); b的类型是object
强制转换
主动将数据的类型强制转换为某种类型
强转字符串
String(数据) 强制转换为字符串
数据.toString(进制) 强制转换为字符串 null和undefined是不能转换的
toString可以将任何数字转换为任意进制,进制必须大于等于2并且小于等于36
也就是最小是2进制,最大是36进制,因为数字字母就36个
toFixed(小数点后几位) 将数值转换为字符串,并且按照小数点四舍五入保留位数
强转数值
Number(数据)
NaN 非数值 类型是number
纯字符---》 NaN
纯数字---》数字
部分数字,部分字符---》NaN
布尔值---》数字 true--->1 false--->0
undefined--->NaN
null--->0
强转为整数
parseInt(字符,进制) 可以将指定进制方式字符串转换为10进制数值,是toString()逆转换
纯字符---》 NaN
纯数字---》数字
部分数字,部分字符---》 通过parseInt转换数值可以从开始转换到字符前为止变成数值,如果第一位是字符,返回NaN
布尔值强转数值整型,会变成NaN
undefined--->NaN
null--->NaN
强转为小数
parseFloat(); 强转小数和parseInt类似,只不过可以保留小数位
转换为布尔值
Boolean(数据) 转换为布尔值
"" 0 false,undefined,null,NaN 转换为布尔值都会变成false,除此之外转换都是true
隐式转换
当数据类型不相同时,做数据的运算,就会自动将两端的数据转换为相同类型然后运算,这是隐式转换
隐式转换遵从与 String() Number() Boolean()
算术运算符
+ - * / %
+ 加法
- 减法
* 乘法
/ 除法
% 取余 取模运算
### + 分为字符相加 和 数值相加
字符相加 就是将字符首尾相连,字符合并
字符和字符串有什么区别 字符 单个字母 字符串 多个字母组成字串
如果字符和非字符相加,会自动将非字符隐式转换为字符 String()
+ 非字符相加,按照隐式转换为数值,进行数值算术运算相加
### - * / %
- * / % 都是隐式转换为数值运算 不管有没有字符
赋值运算符
+= -= *= /= %=
赋值运算符就是在原数据的基础上进行累加 累减等操作
得到计算后的新值,原数据也会发生改变
console.log(e-10);//e的值没有发生改变 结果10 e:20
console.log(e-=10);//e的值发生改变 结果10 e:10
一元运算符
一元运算符 全部隐式转换为数值运算
a++和++a有什么区别
运算后a的值没有区别,但是++a返回的结果是累加之后的,a++返回的结果是累加之前的
打印a++的结果,这个结果就是返回a自增1之前的值。。。。a是1,所以返回的结果是1,
打印++a的结果,这个结果是先计算a+1赋值给a,然后打印这个a+1的结果 2
关系运算
> >= < <= == ===