js函数的反作用

js函数的反作用 对于treeshaking有很大影响数据结构

看一例子函数

import { cube } from './maths.js';
console.log( cube( 5 ) ); // 125

maths.js:code

export function square ( x ) {
    return x.a
}

square({ a: 123 })

export function cube ( x ) {
    return x * x * x;
}

shaking操做后变成这样对象

function square ( x ) {
    return x.a
}

square({ a: 123 });

function cube ( x ) {
    return x * x * x;
}

console.log( cube( 5 ) ); // 125

显然没有shaking干净,为何呢,由于 return x.a 这句话有反作用io

还有哪些语句有反作用呢?console

反作用的函数不单单只是返回了一个值,并且还作了其余的事情:ast

一、修改了一个变量

二、直接修改数据结构

三、设置一个对象的成员

四、抛出一个异常或以一个错误终止

五、打印到终端或读取用户输入

六、读取或写入一个文件

七、在屏幕上画图

提一个问题,给出一段函数,有没有方法透过ast 去判断该函数有反作用呢?function

相关文章
相关标签/搜索