• javascript概述


    javascript语言特性:动态语言,动态类型,解释执行

    1. 数据类型

    原始类型:boolean、number、string、undefined、null

    引用类型:object和(es6新增类型)symbol、bigint

    注:引用类型变量里存储的是指针

    2. 执行环境和作用域

    js函数执行环境是一个对象,此对象包含了这个函数中声明的变量或函数,函数的执行环境串联起来组成了类似c语言中的调用堆栈。

    理解执行环境,也便理解变量作用域,也就明白所谓变量或者函数提升。

    在浏览器中,最外层的执行环境就是windows对象

    3. new和this

    this是动态变化的,始终指向调用此函数的对象

    new先创建一个空对象,然后在空对象上调用构造函数

    function test() {
       console.log(this);
    }
    var t2 = new test();
    t2.aa = 3;
    test();

    调用test(),在全局对象上,所以this指向windows对象

    而使用new test(),在新创建的t2对象,所以this指向t2对象

    4. 构造函数,原型对象,实例的关系

    通过new 调用的函数就是构造函数,如果没有通过new操作符来调用的,就是普通函数

    原型对象和实例的关系如图,此图来自于JavaScript高级编程

    Person是定义的函数对象,默认有一个原型对象,所有通过new Person构造的对象实例内部也有原型对象,共享Person函数的原型对象。

    5. 两个操作符

    typeof操作符,区别原生类型或者Object类型,但如果想具体分辨是Array还是Number等引用类型,则需要instanceof操作符。

    instanceof原理:

    function _instanceof(L, R) { //L为instanceof左表达式,R为右表达式
      let Ro = R.prototype //原型
      L = L.__proto__ //隐式原型
      while (true) {
        if (L === null) { //当到达L原型链顶端还未匹配,返回false
          return false
        }
        if (L === Ro) { //全等时,返回true
          return true
        }
        L = L.__proto__
      }
    }
  • 相关阅读:
    项目架构开发:数据访问层之Cache
    微信公众号平台接口开发:菜单管理
    【软件工程】第0次个人作业
    OO第四次博客作业
    OO第三次博客作业
    OO第二次博客作业
    Java学习笔记
    SQLInjection 靶场配置
    OO第一次博客作业
    面向对象先修:Java入门
  • 原文地址:https://www.cnblogs.com/zhaiyunyun/p/12050417.html
Copyright © 2020-2023  润新知