zoukankan      html  css  js  c++  java
  • js学习笔记

    1、基本类型和引用类型

    a = 1;
    b= a;
    b = 13;
    
    结果
    a = 1;
    b = 13;

      a 和 b 没有关系

    a = [1,2]; a 开辟一块引用空间存放[1,2]
    b= a; 把a的空间存放[1,2] 给力b 引用同一个引用空间
    
    b.push(3); b改变同时a改变
    
    结果
    
    a = [1,2,3]
    b = [1,2,3]
    
    a 和 b共用同一个引用空间,所以b 改变。

     2、var、function 声明的 都会提前默认的赋值underfind 变量提升。 
     3、变量提升解读

    var a = 11, b = 12;
    
    function aa() {
        console.log(a,b)	
        var a = b = 13;
        console.log(a,b)
    }
    aa()
    
    结果
    undefined 12
    13 13
    
    因为 b没有var 所以没有提升。还是会12,私有作用域a和外部没有关系。
    
    f= funciotn() {return true}
    g= funciotn() {return false}
    
    ~funciotn() {
      if (g()) {
         f= funciotn() {return true}
         funciotn g() {return false}
      }  
    }
    
    console.log(f())
    console.log(g())
    
    结果
    报错
    g 在匿名function私有变量,g只是声明不能执行 

     4、事件循环机制
          任务队列、消息队列、事件队列同属回调队列。
      事件管理模块,settime 和 dom 事件。
      主线和分线执行。
     5、works
      (1)创建一个worker对象
      (2)向分线程发送消息
      (3)在主线程中绑定一个回调函数
      (4)分线程接受消息
      (5)执行函数回传主线程
      分线程不可更新界面,分线程不能执行window机制。不能跨域访问,适用长时间操作。

    6、数据、内存、变量
      数据:存储在内存中的特定数据。
      内存:通电后产生的可存储的数据的空间。
        包含栈和堆,栈对应的变量,堆对应的对象。
      变量:变量名和变量值组成。每一个变量都对应一小块内存,变量名对应内存,变量值是内存中的数据。

    var a = {'name': 1};
    var b = a;
    
    a = 0x1; 对应内存的地址值
    b = 0x1; 把a的引入内容拷贝一份给a.

     7、隐式原型和显示原型
      每一个函数对象都有一个prototype,即显式原型。
      每一个实例对象都有一个__proto__,即隐式原型。

    function Fn () {}
    Fn.prototype  显式
    var fn =new Fn(); this.__proto__ = Fn.prototype;
    fn.__proto__ 隐式
    Fn.prototype === fn.__proto__  // true

     8、隐式转化

    + 字符串的拼接
    
    "37" - 7 = 30
    "37" + 7 = 337;
    
    num - 0 = 数字
    num + "" = 字符串
    
    == 和 ===
    类型相同
    NaN 不等于 NaN
    new Object() 不等于 new Object() 

     9、this

    var number = 2;
    
    var obj = {
          number: 4,
          fn1: (function() {
              this.number *= 2;
              number = number*2;
              var number = 3;
              return function() {
                this.number *= 2;
                number *=3;
                alert(number);
              }
          })(),
           db2: function() {
             this.number *= 2;
          },
        } 
    
    var fn1 = obj.fn1;
    alert(number); // 4 全局window.number 4
    fn1(); // 9  私有number 9 没有释放  全局window.number 8
    obj.fn1(); // 27 obj.number 8
    alert(window.number); // 8
    alert(obj.number); //  8
    
    var fn1 = obj.fn1;
    alert(number);
    fn1();
    obj.fn1();
    alert(window.number);
    alert(obj.number);



  • 相关阅读:
    论文阅读 | FIESTA: Fast IdEntification of State-of-The-Art models using adaptive bandit algorithms
    论文阅读 | Reinforced Training Data Selection for Domain Adaptation
    可以生成柱状图,曲线图,饼状图的自定义控件
    CSS 颜色代码大全
    Js操作Excel常用方法
    Javascript document对象常用的方法和属性
    event.keyCode用法及列表
    JS+正则表达式对表单的一些简单验证
    属性设置@property之retain,assign,weak,strong,copy
    iOS屏幕适配教程(手动布局和自动布局)
  • 原文地址:https://www.cnblogs.com/y896926473/p/10941085.html
Copyright © 2011-2022 走看看