美文网首页
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的思考

    var和let的区别 prototype 闭包 匿名函数 自执行函数 变量和函数的声明

  • JavaScript的一些思考,原生继承的问题

    在使用java语言的同时,也思考过怎么用js来进行面向对象的编程,JS在es6之后,引入了class和extend...

  • 前端优化带来的思考,浅谈前端工程化

    重复优化的思考 当然,由于js加载是顺序是不可控的,我们需要为seed.js实现一个最简单的顺序加载模块,映射什么...

  • js实现链式加法的思考

    由一道面试题引出的思考:实现一个add函数,支持对多个参数求和以及多次调用求各,如下效果: 对于不定参的实现,很容...

  • 如何用JS实现求m~n之间连续个整数之和?

    今天面试碰到一个机试题目,用JS实现1+2+3+……+100=?,实现方法有很多,那么我们深度思考一下,如何用JS...

  • js知识版图-数据类型

    一、js中内存分为栈内存、堆内存此处引申知识点:js中堆栈内存及函数处理机制 栈内存 从数据类型角度思考 栈内存 ...

  • 文本转成对象

    任务 例如,我们有个js文件,里面定义了一个对象 现在我们需要读取这个文件,并生成一个对象。 思考 如果不了解JS...

  • 以 Join 的方式来思考D3.js

    以 Join 的方式来思考D3.js 声明 原文链接: 来自 D3作者 Mike Bostock https://...

  • JavaScript DOM 编程艺术(3)

    勤于思考是每位具有创新精神的网页设计人员都应具备的特质。思考是否还有更好的办法。 如果想用JS给网页添加行为,就不...

  • 关于js循环添加事件的几种方法总结

    js解决循环添加事件的几种方法小总结 平日里有点问题也会思考思考,比如循环添加事件的这个梗,初入前端的朋友可能就会...

网友评论

      本文标题:js的思考

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