第二十天:今天主要讲作用域链(就近原则),变量提升,他只会提升用var定义的声明,不会提升值;函数提升。当声明函数时,使用f(),不加括号的调用,只使用f时会把他当成引用变量。立即执行函数:当只需要函数执行一次或者写外部js时会把函数封装,使其不会污染全局变量,当需要使用函数里面的对象或者方法时可以使用module.exports或者es6中的export defalut暴露出去,然后使用import或者require接收。回调函数,A函数被当做参数被B函数使用,A就是回调函数。递归,两大特点:有出口条件;自己调用自己。创建对象的三种方式:new Object();{};自定义对象,使用构造函数封装。这里有个细节,函数里面的键值对,键中有特殊字符时需要用引号包裹。还有对象的增删。