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():
- 第二个小数点无效
- 只解析十进制值
- Number(): 转换规则
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
函数
- 参数
- 没有重载