js第三部分高级进阶
邵预鸿 Lv5

数据类型

  • 判断undefined和null可以直接全等判断 ,如 a === null ? a ===unfined
  • 数据类型分类
    • js把数据类型分为:string,number,boolean,symbol,unfined,null 6类
    • 使用typeof检测数据类型为这:string,number,boolean,symbol,object,function
  • 使用instanceof可以检测对象的数据类型
    • [] instanceof Array //true
    • [] instanceof Object //true
    • 正则 instanceof RegExp //true
    • 函数 instanceof Function //true
    • 函数 instanceof Object //true
  • undefined与null区别与出现
    • undefined出现与区别?
      • 定义了变量,却没有赋值
      • 函数没有返回值 或者 return为空
      • 函数形参需要接收参数,调用函数时未传递参数
      • var变量提升时,//console.log(shao); var shao = 123;
    • null出现与区别
      • 定义变量为null时,表明后续需要对变量赋值为对象类型
      • 没有获取到相应dom元素时,返回值 为null
      • 使用正则match匹配时,未匹配到返回为null
      • 后端语言是空指针时,返回的数据是null
      • 释放变量赋值的对象时

对象

  • 当对象有以下情况时,必须使用obj[属性名]语法

    • 属性名存在特殊字符:空格 - / 等

    • 属性名是变量

      1
      2
      3
      let obj = {};
      obj['content-type'] = 'text/json';
      obj['content/type'] = 'text/html';

原型

  • 每个对象都有一个prototype属性,每个函数都有一个prototype和__ proto __ 属性
    • 对象的prototype默认是空对象,指向他的原型对象。原型对象上的属性constructor指向对应的实例对象。在创建对象时,会拥有原型对象的属性和方式
    • 在创建实例对象new xxx时,原型对象prototype会赋值给this. __ proto __

http://server.yuhongshao.cn/static/yuhongshao/20220630110403.png

  • 通过在原型对象上添加属性或方法,可以在创建 实例对象时,拥有添加的属性和方法。创建实例对象时,只会拥有原型对象上prototype上的属性和方式,如

    1
    2
    3
    4
    5
    6
    7
    8
    Date.test1 = ()=>{} ;
    Date.prototype.test2 = ()=>{}

    /*
    const now1 = new Date();
    test1方法未能拥有
    test2方法在now1属性中
    */
  • 本文标题:js第三部分高级进阶
  • 本文作者:邵预鸿
  • 创建时间:2022-06-29 07:58:47
  • 本文链接:/images/logo.jpg2022/06/29/js第三部分高级进阶/
  • 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!