运算数据自动转换
其他数据类型转换为字符串:
var result = “你” + “好”; //结果 你好 类型是string
var result = “1” + 1; //结果 11 类型是string
var result = “1” + true; //结果 1true 类型是string
var result = “1” + undefined ; //结果 1undefined 类型是string
var result = “1” + null; //结果 1null 类型是string
总结:任何类型的数据和字符串类型的数据做相加(+)操作时,其他数据类型会自动的转换为字符串类型。此时的相加(+)不再是数学意义上的加法,而是表示“拼接”的意思。
其他数据类型转换为数字:
var result = 1 - “2”; //结果 1 类型是 number
var result = 1 - “我”; //结果 NaN 类型是 number
【注】NaN是一个值,这个值的类型是(number)。表现的意思是“不是一个数字”;
规则:任何数据除了和字符串做相加运算外,与NaN做算术运算的结果始终都是NaN。包括NaN本身和NaN做运算的结果也是NaN。
字符串是数值会自动的转换为数字,否则会转换为NaN
乘除运算
var result = 1 * “1”; //结果 1 类型是 number
var result = 1 / “1”; //结果 1 类型是 number
var result = 1 + true; //结果 2 类型是number
var result = 1 * false; //结果 0 类型是 number
true会自动的转换为1 false会自动的转换为0
var result = 1 + null ; //结果是1 类型是number
var result = 1 + undefined //结果是NaN 类型是number
null会自动的转换为0, undefined会自动的转为NaN
总结:任何其他数据除了和字符串做相加操作外,与数字类型做算术运算时,其他数据会自动的转换为数字。
其他数据转换布尔:
数字转Boolean:
非0数字->true;0 --> false;
字符串转Boolean
非空字符串(包含空格)-> true;
空字符串 -->false
null和undefined转换Boolean
都是false