第 1 章 JavaScript 简介

  • JavaScript 诞生于1995

  • 一个完整的 JavaScript 由这三部分组成:

    • ECMAScript (核心)
    • DOM (文档对象模型)
    • BOM (浏览器对象模型)
  • ECMAScript 的 宿主环境 包含 :

    • 浏览器
    • Node
    • flash
  • ECMAScript 大致规定了下列组成部分:

    • 语法
    • 类型
    • 语句
    • 关键字
    • 保留字
    • 操作符
    • 对象

第 2 章 在 HTML 中使用 JavaScript

  • <script> 标签有下列常见属性:
    • async 表示立即下载脚本,不妨碍页面的其他操作(异步下载)
      • 无法保证每个 js 的顺序
      • 用于互不依赖的 js
      • 主要目的是不让页面等 js
    • defer 延迟到文档完全解析和显示之后在执行
      • </html>标签之后执行
    • src 外部文件链接
    • type 表示编写代码使用的脚本语言的内容类型
      • text/javascript

第 3 章 基本概念

  • 语法,借鉴了 C 语言

    • 区分大小写
    • 标识符,指的是变量、函数、属性的名字
      • 第一个字符必须是 字母、下划线、或美元符号
      • 其他字符可以是字母、下划线、美元符号或数字
  • 严格模式

    1
    "use strict";
  • 数据类型

    • 基本数据类型
      • Undefined、Null、Boolean、Number、String
      • typeof操作符,一般用于基本类型的检测,返回相应类型的字符串
        • “undefined”,”boolean”,”string”,”number”,”object”,”function”
    • 复杂数据类型
      • Object
  • Null类型

    • 表示空对象指针
    • 只要意在保存对象的变量还没有真正保证对象,则保存null
    • undefined派生自null,因此用==比较返回true
  • 浮点数,指的是数值中包含一个小数点,并且小数点后面至少有一位数字

  • NaN

    • 任何涉及 NaN 的操作都返回NaN
    • NaN与任何值都不相等,包括NaN本身
  • 数值转换

    • 有 3 个函数可以把非数值转换为数值
      • Number() 可以用于任何数据类型
      • parseInt() 专门用于字符串转数值,用于解析整数
      • parseFloat() 专门用于字符串转数值,用于解析浮点数
  • 字符串

    • 数值、布尔值、对象、字符串值本身 都有 toString()方法,用于转为字符串
    • undefined 和 null 没有 toString()方法,但可以使用 String()方法
  • Object 类型

    • 对象其实就是一组数据与功能的集合

    • 使用 Object()构造函数创建对象

      1
      var obj = new Object(); // 同 obj = {}
    • 每个对象实例都有下列属性和方法

      • constructor 指向用于创建当前对象的构造函数 。(对于上面例子而言,就是Object()
      • hasOwnProperty(propertyName) 用于检查给定属性是否在当前对象实例中
      • isPrototypeOf(Object) 用于检查传入的对象是否是当前对象的原型
      • propertyIsEnumerable(propertyName) 用于检查给定的属性是否能够使用for-in来枚举
      • toLocaleString() 返回对象的字符串表示,该字符串与执行环境的地区对应
      • toString() 返回对象的字符串表示
      • valueOf() 返回对象的字符串、数值、布尔值表示。通常与toString()返回值相同

      所有对象都有以上属性和方法

  • 操作符

    • 一元操作符
      • ++

      • 前置与后置的区别是与其他数运算时,前置会先执行递增(减)再与其他数运算,后置会先与其他数运算再对自身执行递增(减)
    • 布尔操作符
      • 与 (&&)
        • 短路操作,即如果第一个操作数能决定结果,就不会对第二个操作数求值
      • 或 (||)
        • 短路操作,即如果第一个操作数能决定结果,就不会对第二个操作数求值
      • 非 (!)
        • 先使用 Boolean()转成布尔值再取反
  • 语句(也称流控制语句)

    • if-else

    • do-while

      • 后测试循环语句,在对表达式求值之前,循环体内的代码至少会被执行一次

        1
        2
        3
        4
        var i = 0;
        do {
        i += 2;
        } while (i < 10); // 只要i小于10就会一直循环
    • while

      • 前测试语句

        1
        2
        3
        4
        var i = 0;
        while (i < 10) {
        i += 2;
        } // 只要i小于10就会一直循环
    • for

      • 使用 while 循环做不到的,使用 for 循环同样做不到。就是说,for 循环只是把与循环有关的代码集合在一个位置

        1
        2
        3
        for (初始化; 条件; 循环后执行) {
        // ...
        }
      • break 立即退出循环

      • continue 退出当前单次循环

    -

    • for- in 用来枚举对象的属性
  • 函数

    • 任何函数都可以在任何时候返回任何值
    • 未指定返回值的函数会返回一个 undefined
    • 通过 arguments 访问参数,它是一个类数组