js中表达式的的副作用是什么?能举个例子吗?
没有副作用是说,除了变量定义的时候给出的初始值之外,其他表达式不会改变任何变量的值/程序运行的状态。一个函数/表达式的结果仅仅体现在其输入参数和返回值上,输入的参数相同,则返回值相同。除了用函数得到这个返回值之外,函数不会再有其他任何的作用。
像 js
(除了haskell
之外几乎所有的语言) 这种,满满的都是副作用呀,比如赋值语句呀,dom
操作呀,都是。
表达式是一个运算过程 ,可能会导致内存泄露
全局变量的污染
var a = 'a';
function(){
a = 'b';
console.log(a) //==> b
}(); //污染了变量a
console.log(a) //==> b