首页 > 代码库 > 数据类型转换
数据类型转换
1.字符串转换为数字:
字符串与1相乘即可。
2.其它类型转换为字符串也有一种偷懒的方法:
只需要将其与空字符串连接即可。
3.如果在一个非布尔值上执行逻辑运算,该值会在计算期间被转换为布尔值:
var b = "one";
!b;
false
4.空字符串
null
undefined
NaN
数字0
布尔值false
以上都为false;
5.操作符的优先级:
乘法运算的优先级高于加法。
逻辑运算符!的优先级最高。先&&后||
最佳方法:尽量使用括号,而不是依靠操作符优先级来设定代码的执行顺序,这样我们的代码才能有更好的可读性。
6.惰性求值:
var b = 5;
true || (b=6)
此时输出:true;
此时b的值 还是 5;
解析:其中任何一个操作数为true,该表达式的结果就为true.因而当第一个操作数被求值之后,无论后面的值是什么,结果都已经被确定了。于是我们可以允许JavaScript引擎偷个懒。在不影响最终结果的情况下省略一些不必要的求值操作。
var b =5 ;
(b=6) || true
此时输出:6
此时b的值是 6;
解析:如果JavaScript引擎在一个逻辑表达式中遇到一个非布尔类型的操作数,那么该操作数的值 就会成为该表达式的所返回的结果。
7.比较运算符
== 相等运算符
exp: 1 == ‘1‘ true
1 == ‘2‘ false
1 == 1 true
当两个操作数相等时返回true.在该操作符执行之前,两边的操作数会自动转换为相同类型
=== 等价运算符
exp: 1 === ‘1‘ false
1 === 1 true
1 === ‘2‘ false
当且仅当两个操作符的值和类型都相同时返回true.这种比较往往更可靠,因为其幕后不存在任何开式的类 型转换
!= 不等运算符
exp: 1 != ‘1‘ false
1 != ‘2‘ true
当两个操作数不相等时返回true(存在类型转换)
!== 不等价运算符
此操作内不允许类型转换,且当两个操作数值或类型不相同时返回true
exp: 1 !== 1 false
1 !== ‘1‘ true
NaN 不等于任何东西包括它自己。 NaN == NaN false
8.undefined 与 null
当我们试图访问某个未定义或未被赋值的变量时,会得到一个undefined值。JavaScript会自动将声明但未初始化的变量设为undefined;
而null就不一样了,它不能通过JavaScript自动给变量赋值,只能通过我们的代码来完成。
例:var somevar = null;
somevar //null
typeof somevar //object
数据类型转换