Language Basics

JavaScript基本概念

语法

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

关键字和保留字

变量

  • 变量是松散类型: 可以用于保存任何类型的数据
  • var; 变量名; 初始化; 局部变量; 全局变量; 一条语句定义多个变量;

数据类型

  • Undefined, Null, Boolean, Number, String; Object
  • [Symbol](https://developer.mozilla.org/en-US/docs/Glossary/Symbol: ES6
  • typeof操作符: undefined, boolean, number, string, object(null,object), function
  • Undefined: var声明变量但未初始化, 变量的值为undefined; undefined值派生自null值, 相等性测试返回true
  • Null: 逻辑角度来看, null值表示一个空对象指针; 初始化用于保存对象的变量
  • Boolean: true, false; 不一定等于1, 0; 小写形式;
    • 所有类型的值都有与两个Boolean值等价的值, 转型函数Boolean()
数据类型 转换为true的值 转换为false的值
Boolean ture false
String 任何非空字符串 空字符串
Number 任何非零数字值 0和NaN
Object 任何对象 null
Undefined n/a undefined
  • Number: double-precision 64-bit floating point format (IEEE 754)

    • 最基本的数值字面量格式: 十进制整数
    • 浮点数值
    • 数值范围: (Number.MIN_VALUE,Number.MAX.VALUE); -Infinity, Infinity
    • NaN: 表示一个本来要返回数值的操作数未返回数值的情况; 与任何值都不相等
    • 数值转换:
      • Number(): 转换规则
        • Boolean: ture(1), flase(0)
        • Number: 简单的传入和返回
        • Null: 0
        • Undefined: NaN
        • String:
          • 只包含数字, 转换为十进制数值, 忽略前导 0
          • 包含有效浮点格式
          • 包含有效的十六进制格式
          • 空字符串, 转换为 0
          • 包含除上述格式之外字符, 转化为NaN
      • parseInt():
        • 忽略前面空格, 判断第一个非空格字符是否为数字符号或负号
        • 空字符串, 转换为NaN
        • 解析至遇到非数字字符
        • 可识别各种整数格式
      • parseFloat():
        • 第二个小数点无效
        • 只解析十进制值
  • String: 由零或多个16位Unicode字符组成的字符序列; 由双引号或单引号表示

    • 特殊的字符字面量: 转义序列
    • 字符串的特点: 不可变
    • 转换为字符串:
      • toString(): 可传递的参数为输出字符的基数
      • String(): 要转换的值由toString()方法; null返回”null”; undefined返回”undefined”
  • Object: 一组数据和功能的集合

    • Object类型的实例, new操作符, 要创建的对象类型的名称
    • Object类型所具有的任何属性和方法也同样存在于更具体的对象中
    • Object的每个实例都具有的属性和方法:
      • constructor
      • hasOwnProperty(propertyName): 字符串形式指定作为参数的属性名
      • isPropertyOf(object)
      • propertyIsEnumerable(propertyName)
      • toLocaleString()
      • toString()
      • valueOf()

操作符

  • 一元操作符:

    • 递增和递减操作符:
      • ++

      • 前置型: 递增递减操作时, 变量的值在语句被求值以前改变
      • 后置型: 递增递减操作在包含他们的语句被求值之后才执行
      • 递增和递减操作符遵循的规则:
    • 一元加和减操作符
      • 一元加操作符应用于非数值时, 会先像Number()一样对值执行转换
  • 位操作符:

    • 符号位; 二进制补码
    • 按位非(NOT): ~
    • 按位与(AND): &
    • 按位或(OR): |
    • 按位异或(XOR): ^
    • 左移: <<
    • 有符号的右移: >>
    • 无符号的右移: >>>
  • 布尔操作符:

    • 逻辑非: ! ; 遵循的规则
    • 逻辑与: &&
    • 逻辑或: ||
  • 乘性操作符:

    • 乘法: *
    • 除法: /
    • 求模: %
  • 加性操作符:

    • 加法: +
    • 减法: -
  • 关系操作符: 返回一个布尔值

    • 小于: <
    • 大于: >
    • 小于等于: <=
    • 大于等于: >=
  • 相等操作符:

    • ==
    • !=
    • ===
    • !==
  • 条件操作符:

    • variable = boolean_expression ? ture_value : false_value
  • 赋值操作符:

    • =
    • *= ; /= ; %=; += ; -= ; <<= ; >>=
  • 逗号操作符:

    • 在一条语句中执行多个操作; 用于声明变量; 用于赋值

语句

  • if
  • do-while
  • while
  • for
  • for-ino
  • lable
  • break, continue
  • with
  • switch

函数

  • 参数
  • 没有重载