美文网首页
js的思考

js的思考

作者: 园Flora | 来源:发表于2021-02-24 09:57 被阅读0次

    var和let的区别

    prototype

    闭包

    匿名函数

    自执行函数

    变量和函数的声明

    //var 和let 的区别
    // var a = 99
    // var b = 199
    // console.log("out1 a=",a)
    // console.log("out1 b=",b)
    // varlet()
    // function varlet(){
    //  console.log("in1 a=",a) // 编译的时候就在自己的作用域里找到了声明,所以不会去读取上层的值 故而运行的时候会打印undefined
    //  // console.log("in1 b=",b)  报错 未声明 不会去找上层的b 不论上层是var 还是let
    //  var a = 10;
    //  let b = 11;
    //  console.log("in2 a=",a)
    //  console.log("in2 b=",b)
    // }
    // console.log("out1 a=",a)
    // console.log("out1 b=",b)
    // for (var i = 0; i <10; i++) {  //var 会做变量提升
    //   setTimeout(function() {  // 同步注册回调函数到 异步的 宏任务队列。
    //     console.log(i);        // 执行此代码时,同步代码for循环已经执行完成
    //   }, 0);
    // }
    // for (let i = 0; i <10; i++) {  //let 不会提升,i虽然在全局作用域声明,但是在for循环体局部作用域中使用的时候,变量会被固定,不受外界干扰。
    //  setTimeout(function(){
    //      console.log(i)
    //  },0)
    // }
    //变量的作用域
    // let num2 = 3;
    // class Numbers{
    //  test(){
    //      console.log("any")
    //  }
    //  storeNum():void { 
    //       var local_num = 14;    // 局部变量
    //     }
    //  num1=1;
    //  static num2 = 2
    // }
    // var obj = new Numbers();
    var global_num = 12; // 全局变量
    var Numbers = /** @class */ (function () {
        function Numbers() {
            this.num_val = 13; // 实例变量
            this.pval = 1;
        }
        Numbers.prototype.storeNum = function () {
            var nums = [];
            for (var _i = 0; _i < arguments.length; _i++) {
                nums[_i] = arguments[_i];
            }
            var local_num = 14; // 局部变量
            var i;
            var sum = 0;
            for (i = 0; i < nums.length; i++) {
                sum = sum + nums[i];
            }
            console.log("和为:", sum);
        };
        Numbers.sval = 10; // 静态变量
        return Numbers;
    }());
    console.log("全局变量为: " + global_num);
    console.log(Numbers.sval); // 静态变量
    var obj = new Numbers();
    console.log(Numbers.pval);
    (function asynsc(i) {
        if (i >= 5)
            return;
        else
            setTimeout(function () {
                console.log(i);
                i++;
                asynsc(i);
            }, 1000);
    })(0);
    obj.storeNum(1, 2, 3);
    (function (d) {
        d();
        console.log(111);
    })(function () { console.log(222); });
    // console.log(Numbers.num1)
    // console.log(obj.num2)
    // // 闭包
    // function baseFunc( n ){
    //  var i = 0
    //  i = i+1;
    //  console.log("i=",i)
    //  return function (){
    //      n=n+1
    //      console.log(n)
    //  }
    // }
    // var f1 = baseFunc(100)
    // f1()
    // f1()
    // f1()
    // f1()
    // f1()
    

    相关文章

      网友评论

          本文标题:js的思考

          本文链接:https://www.haomeiwen.com/subject/wfwjfltx.html