/** * 算术运算符:+, -, *, /, % * 当对非number类型的值进行运算(-, *, /, %)时,会将这些值先转换成number再运算,加法‘+‘运算除外, * 当对非number类型(string, object)的值做加法(+)运算时会将这些值先转换成string再做拼接而不是相加 * number类型的值与NaN做运算都是NaN */ // number console.log(`1 + 1 = ${1 + 1}`); // 1 + 1 = 2 console.log(`1 + NaN = ${1 + NaN}`); // 1 + NaN = NaN // string console.log(`1 + ‘foo‘ = ${1 + ‘foo‘}`); // 1 + ‘foo‘ = 1foo // boolean console.log(`1 + true = ${1 + true}`); // 1 + true = 2 console.log(`1 + false = ${1 + false}`); // 1 + false = 1 // null console.log(`1 + null = ${1 + null}`); // 1 + null = 1 // undefined console.log(`1 + undefined = ${1 + undefined}`); // 1 + undefined = NaN // object console.log(`1 + (new Object()) = ${1 + (new Object())}, typeof (new Object()) = ${typeof (new Object())}`); // 1 + (new Object()) = 1[object Object], typeof (new Object()) = object /** * 一元运算符:-, + * 对于number类型数字,+不会对数字产生影响,-将数字转换成负数 * 对于非number类型的值,会先将值转换成number再做运算 */ // number console.log(`+1 = ${+1}`); // +1 = 1 console.log(`-1 = ${-1}`); // -1 = -1 console.log(`+NaN = ${+NaN}`); // +NaN = NaN // string console.log(`+‘a‘ = ${+‘a‘}`); // +‘a‘ = NaN console.log(`+‘‘ = ${+‘‘}`); // +‘‘ = 0 console.log(`+‘1‘ = ${+‘1‘}`); // +‘1‘ = 1 // boolean console.log(`-true = ${-true}`); // -true = -1 console.log(`-false = ${-false}`); // -false = 0 // null console.log(`-null = ${-null}`); // -null = 0 // undefined console.log(`-undefined = ${-undefined}`); // -undefined = NaN // object console.log(`+(new Object()) = ${+(new Object())}`); // +(new Object()) = NaN // 注意:以上显示结果仅是在谷歌浏览器下(正式版本71.0.3578.98 (64位))
原文地址:https://www.cnblogs.com/goujian/p/11712846.html
时间: 2024-11-06 21:14:55