运算符的副作用

来源:互联网 发布:淘宝退款速度评价 编辑:程序博客网 时间:2024/05/16 16:07

点上面关注免费学习前端知识!



计算一个简单的表达式(比如2*3)不会对程序的运行状态造成任何影响,程序后续执行的计算也不会受到该计算的影响。而有一些表达式则具有很多副作用,前后的表达式运算会相互影响。赋值运算符是最明显的一个例子:如果给一个变量或属性赋值,那么那些使用这个变量或属性的表达式的值都会发生改变。“++”和“--”递增和递减运算符与此类似,因为它们包含隐式的赋值。delete运算符同样有副作用:删除一个属性就像(但不完全一样)给这个属性赋值undefined。


var a = 1;

var b = a++;

console.log(a);//2

console.log(b);//1


var obj = {a: 1};

delete obj.a;

console.log(obj.a)//undefined


其他的JavaScript运算符都没有副作用,但函数调用表达式和对象创建表达式有些特别,在函数体或者构造函数内部运用了这些运算符并产生了副作用的时候,我们说函数调用表达式和对象创建表达式是有副作用的。


看前端技术文章,就在Web前端精髓

原创粉丝点击