• JS 实践杂记


    1. Function.prototype的类型是函数

    typeof Function.prototype === 'function'; // true

    2. Array.prototype的类型是数组

    Array.isArray(Array.prototype); // true

    3. 构造函数的返回值为基本数据类型时,其被实例化时将不生效

    function People() { return 'a'; }  // People {}
    function People() { return 3; }  // People {}
    function People() { return false; }  // People {} 
    function People() { return null; }  // People {}
    function People() { return undefined; }  // People {}

    4. 函数表达式中的函数名不可变更

    5. 严格模式下,全局作用域内的直接函数的this指向undefined(非Window)

    6. 可以使用按位或操作进行向下取整

    var x = 1.9;
    x | 0; // 1

    7. 常用的继承模式

    function Super() {
        this.wealth = 1000;
    }
    
    function Child(name) {
        Super.call(this);
        this.name = name;   
    }
    
    const extend = function(SuperClass, ChildClass) {
        var F = function() {};
        F.prototype = SuperClass.prototype;
        ChildClass.prototype = new F();
        ChildClass.prototype.constructor = ChildClass;
    };
    
    extend(Super, Child);
    
    const c = new Child('Lilei');
    
    c.wealth; // 1000
    c.name; // 'Lilei';

    8. Number()

    Number(null); // 0
    Number(undefined); // NaN

    9. switch语句中的case子句使用的是严格相等来做判断

    10. 类型转换

    (1) 当尝试将[0]转换为布尔类型时,[0]将被转换为true;

    (2) 当[0] == true做比较时,布尔类型会被转为数字(true -> 1),对象类型(如数组)会首先点用toString()方法,尝试将其转为字符串,而后将字符串转为数字(过程:[0] -> '0' -> 0。

    [0] == true; 
    // 如下:
    0 == 1; // false

    11. 关于拷贝

      11.1 拷贝一个对象,如果其某个属性是基本类型,拷贝的是属性的数据值;反之,如果其某个属性为引用类型,则拷贝的是属性的引用地址。

      11.2 “浅拷贝”与“深拷贝”的基础区别,“浅拷贝”只解决了对象第一层的拷贝问题。

      11.3 常见的浅拷贝方式

    // 1. Object.assign方法
    const copy = Object.assign({}, sources);
    
    // 2. spread扩展运算法
    const copy = { ... sources };
    
    // 3. 数组slice方法
    const sliced = sources.slice();

    // 4. 数组concat方法
    const c = a.concat(b);

      11.4 关于深拷贝概念的理解

      神拷贝会拷贝所有的属性,并动态分配拷贝属性指向的内存,当对象和它所引用的对象一起拷贝时即深拷贝。

    // 持续补充中

  • 相关阅读:
    lxml webdriver 抓取街拍
    python 正则抓取古诗词
    2021 最新版 Spring Boot 速记教程
    hbase 命令查看表大小
    Spring AOP,应该不会有比这更详细的介绍了!
    SpringBoot实战:整合Redis、mybatis,封装RedisUtils工具类等
    API接口的安全设计验证:ticket,签名,时间戳
    5.控制台输出空心菱形
    4.灯泡开关问题
    EXCEL函数
  • 原文地址:https://www.cnblogs.com/fanqshun/p/15624652.html
Copyright © 2020-2023  润新知