强制类型转换String和Number
类型转换主要是指,将其他的数据类型转化为String、Number、Boolean。
强制转化为String
- 调用被转换数据类型的toString()方法。
调用xxx的yyy方法,就是xxx.yyy。
该方法不会改变原变量,而是将转换的结果返回。
var b = a.toString();
var a = a.toString();
null和undefined这两个值没有toString方法,如果调用他们的方法,会报错。
- 调用String()函数,并将转换的数据作为参数传递给函数。
转谁谁写括号里。
a = String(a);
该方法可以将null和undefined转化为string。
boolean值,true或false转化为字符串为‘true’和‘false’。
强制转化为Number
方法一:Number()
a = Number(a);
有局限,出现一点非数字就无法转换。
方法二:parseInt()和parseFloat()
parseInt()可以将字符串的前面有效整数内容取出来,可以取整,但之后有更好的方法。
parseFloat可以获取有效的小数。
对非String类型使用parseInt或parseFloat先转化为String再操作。
true为1,false为0。
强制转化为Boolean
Number转Boolean除了0和NaN(false)都是true。
String转Boolean除了空字符都是true。
null、undefined转Boolean都为false。
其他进制数字
- 16进制数字以0x开头
- 8进制数字以0开头
- 2进制数字以0b开头(不是所有的浏览器都支持)
可以给parseInt()添加第二个参数,表示转化的进制。
算数运算符
运算符也叫操作符,可以对一个或多个值进行运算,如前文的typeof
就是运算符,可以用来获取一个值的类型。
加号
算术运算符+、-、*、/、%五个。
不会对原变量影响,需要变量储存结果
任何数和null相加为它本身。
任何数和NaN相加为NaN。
两个字符串相加为拼接。
任何值和字符串做加法运算,都会先转化为字符串然后在拼接。
所以我们将类型转化为字符串就有了新思路,即用它加上一个空字符(隐式类型转换)。
var c = 123;
c = c + "";
console.log()
括号内使用+可以达到拼接输出的效果。
console.log("c = " + c);
tips:若是多个数和字符串相加,应遵循从左到右的原则,先进行数值计算,遇到字符串后才转化为字符串进行运算。
减号、乘号、除号、取余号
除了加法字符串运算,其他的都是将String转化为Number再进行计算。
result = 2 - '1';
result = 2 * '8';
//输出分别是1、16
可以通过下面的方式(隐式类型转换)来将类型转化为Number:
d = d - 0;
d = d * 1;
d = d / 1;