ronghaoZHI/ronghaoZHI.github.io

javascript_note0

Opened this issue · 0 comments

一个完整的javascript实现包括:

  • 核心(ECMAScript)
  • 文档对象模型(DOM)
  • 浏览器对象模型(BOM)

ECMAScript定义的内容:语法、数据类型、原型和继承、内置对象和函数的标准库。

语法

  • 区分大小写
  • 标识符
    • 第一个自负必须是字母/下划线/美元符号
    • 其他字符可以是字母/下划线/美元符号/数字
    • 不包含关键字 保留字 true false null等

数据类型

  • 5中基本数据类型:Undefined/Null/Boolen/Number/string
  • 1中复杂等数据类型 :Object

typeof操作符

  • “undefined” --未定义
  • “boolen”--布尔值
  • “strng”--字符串
  • “number”--数值 / NaN ( isNaN() )
  • “object”--对象/null
  • “function”--函数

Object

  • constructor:构造函数
  • hasOwnProperty(propertyname):当前实例中的属性

作用域

垃圾回收

  • 标记清除
  • 引用计数

基本数据类型保存在 栈内存中
基本数据类型的变量 复制,会创建一个副本
引用数据类型保存在 堆内存中
引用类型的变量 实际上包含的不是对象本身 而是指向一个指针
引用类型的复制 复制的其实是指针 两个变量最终都指向同一个对象

引用类型

Object

Array

Date

RegExp

Function

基本包装类型

Boolen
String
Number

内置对象

Global (window)
Math

面向对象

  • ####属性

数据属性
访问器属性 ( defineProperty() )

  • 创建对象

工厂模式
构造函数模式
原型模式

  • 继承

原型继承
寄生式继承
寄生组合式继承

函数表达式

函数声明 / 匿名函数
闭包
模拟块级作用域