函数参数的初始化形成新的作用域

var a=1;

function f(x=a){ console.log(x) }  //1   去全局中找a

function f(x=b){ var b=2;console.log(x) }  //undefinde   去全局中找b

function f({x=c}={x:3}){ var c=4; console.log(x) }  //3    (解构赋值)去初始化参数时形成的作用域中找c

作用域链:全局--参数作用域--函数作用域


你可能感兴趣的:(js作用域)