1、强制转换
强制转换 | 作用 |
Number() |
转为数值,必须为数字,否则返回NaN |
String() |
转为字符串 |
Boolean() |
转为布尔值 |
toString() |
转为字符串(null和undefined不可以) |
parseInt() |
转为整数,截取数字 |
parseFloat() |
转为浮点数,截取浮点数 |
// 1、强制转换 // console.log(null.toString()); // 输出结果:报错(没有包装对象) // console.log(undefined.toString()); // 输出结果:报错(没有包装对象) console.log(Number("12345")); // 输出结果:12345 console.log(Number("123abc45")); // 输出结果:NaN console.log(parseInt("12345")); // 输出结果:12345 console.log(parseInt("123abc45")); // 输出结果:123 console.log(parseInt("12.3abc45")); // 输出结果:12 console.log(parseInt("A12.3abc45")); // 输出结果:NaN console.log(parseFloat("12.3ab5")); // 输出结果:12.3 console.log(parseFloat("12.34.32ab5")); // 输出结果:12.34 console.log(parseFloat("b12.3ab5")); // 输出结果:NaN
2、自动转换
// 2、逻辑与:左侧的值转换成布尔值,如果为true,返回第二个值。如果为false,返回第一个值 // 诀窍:看是否为true,第一个为true,看第二个是否为true;如果第一个就false,就直接返回第一个 console.log("Hello" && "World"); // 输出结果:World console.log(0 && 20); // 输出结果:0 // 3、逻辑或:左侧的值转换成布尔值,如果为true,返回第一个值。如果为false,返回第二个值 // 诀窍:如果第一个为true,就那返回第一个;如果第一个为false,那就看第二个是否为ture console.log("Hello" || "World"); // 输出结果:Hello console.log(0 || 20); // 输出结果:20 // 4、逻辑非 console.log(!0); // 输出结果:true // 5、==:类型自动转换,然后比较数值 console.log(1 == "1"); // 输出结果:true // 6、===:不转换类型,直接比较数值与类型,两个都相同才为true console.log(1 === "1"); // 输出结果:false
3、if、while
语句转换
类型 | if 语句转换 |
数值类型 | 只有0和NaN会转换为fasle |
null | 转为false |
undefined | 转为false |
字符串 | 空字符串转为false,其他为true |
对象 | 所有对象都转为true |