找工作找到崩溃的我。昨天一位找了一个月的同事建议我系统的学习下原生js,于是就买了本《JavaScript高级程序设计》书,昨天买的,今天就到了。想了想,自己私下写demo也好。但是貌似现在好多的公司面试都是会问你的博客的,想了想就在这一边学习一边记录吧。希望看到这篇博客的你,给我提出我理解的错误和不足。来一起共同进步吧!
概念:所谓一元操作符,书本的解释--只能操作一个一个值的操作符就叫做一元操作符。
其实从字面意思也就很好了解啦,操作一个值的操作符。被操作的这个值的类型可以是任意的。接下来咱们上demo。
1、递增和递减操作符
console.log("---前置递减---") var num1 = 2; var num2 = 20; var num3 = ++num1 + num2; //此时num1 = 3; var num4 = num1 + num2 //此时num1 = 3 console.log(num3); //输出 23 console.log(num4); //输出 23 console.log("---后置递减---") var num5 = 2; var num6 = 20; var num7 = num5++ + num6; //此时num5 = 2 var num8 = num5 + num6 //此时num5 = 3 console.log(num7); //输出22 console.log(num8); //输出23
总结:前置递增或者递减操作符的执行顺序是在该值在被求值之前就执行+1或者-1的操作,而后置递增或者递减操作符是在该值被求值之后才执行+1或者-1的操作。
不通数据类型在遇到递增或者递减时候的转换
console.log("---不同类型的值在递增递减中的变化---") var s1 = "2"; //string var s2 = "z"; //string var s3 = false; //boolean var s4 = 1.1; //float var s5 = { valueOf:function(){ return -1; } }; console.log(++s1); // 2 console.log(++s2); // NaN console.log(--s3); // -1 console.log(--s4); // 0.10000000000000009 console.log(--s5); // -2 上面这个例子的转换结果包含了前置递增递减,后置递增递减以及一元加或者减在遇到不通数据类型的数据是对与数据的先操作再执行相应该操作符要执行的动作。
关于一元加减操作符,我个人觉得可以把他理解为数学中的正负号。
var x1 = 20; x1 = -x1; var x2 = 20; x2 = +20; console.log(x1); //输出为-20 console.log(x2); //输出为20
