1、函数的环境与作用域原理

    1. let title = '工作' //在整个js作用 现在作为全局变量 如果在函数里面 作用域只在函数里
    2. function show() {
    3. let url = '工作中';
    4. function hd() {
    5. let site = '加班中';
    6. console.log(url) //hd函数里调用父级的url 可以调用
    7. }
    8. }
    9. show() //调用函数执行局部作用let 如果调用子函数的 site值的话访问不到

    2、模拟块级作用域

    1. function outputNumbers(count){
    2. (function(){
    3. for(var i = 0; i < count; ++i){
    4. console.log(i);
    5. }
    6. })();
    7. console.log(i); // Uncaught ReferenceError: i is not defined
    8. }
    9. outputNumbers(5);

    3、什么是闭包 闭包就是一个函数可以访问另一个函数的的值

    1. function hd(){
    2. let n = 1;
    3. return function sum() {
    4. //sum函数可以使用其他函数的参数
    5. console.log(++n,'++n')
    6. }
    7. }
    8. let a = hd();
    9. a();
    10. a();