3.定义函数的方法
·1.function****声明
//ES5
function getSum(){}
function (){}//匿名函数
//ES6
()=>{}
·2.****函数表达式
//ES5
var getSum=function(){}
//ES6
let getSum=()=>{}
**
**·3.****构造函数
const getSum = new Function('a', 'b' , 'return a + b')
4.JS作用域的理解
JS中的作用域分为两种:
全局作用域和函数作用域。
函数作用域中定义的变量,只能在函数中调用,外界无法访问。
没有块级作用域导致了if或for这样的逻辑语句中定义的变量可以被外界访问,
因此ES6中新增了let和const命令来进行块级作用域的声明。
//循环绑定的问题
for (var i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1);
}
for (let i = 0; i < 3; i++) {
setTimeout(() => console.log(i), 1);
}
//作用域链 变量的查找机制
// 上级作用域 函数在哪里定义的,那么该函数执行形成的作用的上级作用域就是谁
// 了解了上级作用域, 就比较容易查找变量对应的值