# 一.语法
前言
主要由关键字
、标识符
、操作符
组合成一条语句
,在对应的环境
中执行
这些语句
得到最终结果
# 1.关键字
# 1.1 重点关键字
var
:声明变量function
:声明函数this
:当前的调用者return
:停止并返回delete
:删除属性if
、else
:创建条件语句for
:循环语句for
+in
:遍历对象的可枚举属性for
+of
:遍历可迭代对象while
:创建循环语句do
、while
:创建循环语句break
:终止当前循环continue
:循环中中终止当前语句的执行,并在下一次迭代中继续执行循环typeof
:类型判断instanceof
:实例判断switch
、case
:条件匹配try
、catch
、finally
:异常处理debugger
:断点调试
# 1.2 其他关键字
let
:声明变量(块级作用域)const
:声明常量class
:声明类default
export
:导出模块extends
:继承import
:导入new
:实例化super
throw
:引发用户定义的异常void
with
yield
# 1.3 保留字
abstract
boolean
byte
char
double
final
float
goto
int
long
native
short
synchronized
throws
transient
volatile
# 2.标识符
- 变量、函数、属性、函数参数的名称
# 2.1 变量
JavaScript变量
是用于存储数据的容器 , 通过变量名称
, 可以 获取/修改变量
中的数据
变量
的本质是存放数据的一块内存空间
变量由相关关键字
来声明
和定义其作用域
,由赋值运算符
赋值,此处只讲设计var
声明的变量
# 2.1.1 命名
- 变量名称必须以
字母
,下划线(_
)或美元符号($
)开头 - 变量名称只能包含字母数字字符(
A-z
,0-9
)和下划线(_
) - 变量名称不能包含
空格
- 变量名称不能是
关键字
或保留字
# 2.1.2 声明
声明
变量,就是在内存中找一个存放数据的空间并标记名称
var a
// var a = 1
1
2
2
# 2.1.3 赋值
- 变量声明的同时被赋值
var a = 1
1
- 变量被声明后再赋值
var a
a = 1
1
2
2
赋值可以是多种数据类型
# 2.1.4 作用域
变量的作用域
是程序在其中定义的区域,作用域
确定变量的可访问性(可见性)
var
声明的变量只有两个作用域:
- 全局作用域
- 函数作用域
# 2.2 函数
函数由相关关键字
来声明
和定义其作用域
,由{}
包裹要执行的代码
# 2.2.1 命名
- 函数一般以小写字母开头,采用驼峰写法
- 变量名称只能包含字母数字字符(
A-z
,0-9
)和下划线(_
) - 变量名称不能包含
空格
- 变量名称不能是
关键字
或保留字
# 2.2.2 声明
声明
函数,就是在内存中找一个存放函数数据的空间并标记名称,数据空间存放函数参数和代码块中的语句
此处只讲关键字function
用于声明
函数
function fn(a) {
console.log(a)
}
1
2
3
2
3
# 2.2.3 作用域
函数的作用域
是程序在其中定义的区域,作用域
确定函数的可访问性(可见性)
function
声明的函数作用域在代码块{}
内
# 2.4 属性
# 3.运算符
# 3.1 算术运算符
运算符 | 描述 | 示例 |
---|---|---|
+ | 加法运算符 | x + y 表示计算 x 加 y 的和 |
- | 减法运算符 | x - y 表示计算 x 减 y 的差 |
* | 乘法运算符 | x * y 表示计算 x 乘 y 的积 |
/ | 除法运算符 | x / y 表示计算 x 除以 y 的商 |
% | 取模(取余)运算符 | x % y 表示计算 x 除以 y 的余数 |
# 3.2 赋值运算符
运算符 | 描述 | 示例 |
---|---|---|
= | 最简单的赋值运算符,将运算符右侧的值赋值给运算符左侧的变量 | x = 10 表示将变量 x 赋值为 10 |
+= | 先进行加法运算,再将结果赋值给运算符左侧的变量 | x += y 等同于 x = x + y |
-= | 先进行减法运算,再将结果赋值给运算符左侧的变量 | x -= y 等同于 x = x - y |
*= | 先进行乘法运算,再将结果赋值给运算符左侧的变量 | x _= y 等同于 x = x _ y |
/= | 先进行除法运算,再将结果赋值给运算符左侧的变量 | x /= y 等同于 x = x / y |
%= | 先进行取模运算,再将结果赋值给运算符左侧的变量 | x %= y 等同于 x = x % y |
# 3.3 字符串运算符
- 运算符表示将运算符左右两侧的字符串拼接到一起;
- += 运算符表示先将字符串进行拼接,然后再将结果赋值给运算符左侧的变量。
# 3.4 自增、自减运算符
运算符 | 描述 | 示例 |
---|---|---|
++x | 自增运算符 | 将 x 加 1,然后返回 x 的值 |
x++ | 自增运算符 | 返回 x 的值,然后再将 x 加 1 |
--x | 自减运算符 | 将 x 减 1,然后返回 x 的值 |
x-- | 自减运算符 | 返回 x 的值,然后将 x 减 1 |
# 3.5 比较运算符
运算符 | 描述 | 示例 |
---|---|---|
== | 等于 | x == y 表示如果 x 等于 y,则为真 |
=== | 全等 | x === y 表示如果 x 等于 y,并且 x 和 y 的类型也相同,则为真 |
!= | 不相等 | x != y 表示如果 x 不等于 y,则为真 |
!== | 不全等 | x !== y 表示如果 x 不等于 y,或者 x 和 y 的类型不同,则为真 |
< | 小于 | x < y 表示如果 x 小于 y,则为真 |
> | 大于 | x > y 表示如果 x 大于 y,则为真 |
>= | 大于或等于 | x >= y 表示如果 x 大于或等于 y,则为真 |
<= | 小于或等于 | x <= y 表示如果 x 小于或等于 y,则为真 |
# 3.6 逻辑运算符
运算符 | 描述 | 示例 |
---|---|---|
&& | 逻辑与 | x && y 表示如果 x 和 y 都为真,则为真 |
|| | 逻辑或 | x || y 表示如果 x 或 y 有一个为真,则为真 |
! | 逻辑非 | !x 表示如果 x 不为真,则为真 |
# 3.7 三元运算符
条件表达式 ? 表达式1 : 表达式2 ;
# 3.8 位运算符
运算符 | 描述 | 示例 |
---|---|---|
& | 按位与:如果对应的二进制位都为 1,则该二进制位为 1 | 5 & 1 等同于 0101 & 0001 结果为 0001,十进制结果为 1 |
| | 按位或:如果对应的二进制位有一个为 1,则该二进制位为 1 | 5 | 1 等同于 0101 | 0001 结果为 0101,十进制结果为 5 |
^ | 按位异或:如果对应的二进制位只有一个为 1,则该二进制位为 1 | 5 ^ 1 等同于 0101 ^ 0001 结果为 0100,十进制结果为 4 |
~ | 按位非:反转所有二进制位,即 1 转换为 0,0 转换为 1 | ~5 等同于 ~0101 结果为 1010,十进制结果为 -6 |
<< | 按位左移:将所有二进制位统一向左移动指定的位数,并在最右侧补 0 | 5 << 1 等同于 0101 << 1 结果为 1010,十进制结果为 10 |
>> | 按位右移(有符号右移):将所有二进制位统一向右移动指定的位数,并拷贝最左侧的位来填充左侧 | 5 >> 1 等同于 0101 >> 1 结果为 0010,十进制结果为 2 |
>>> | 按位右移零(无符号右移):将所有二进制位统一向右移动指定的位数,并在最左侧补 0 | 5 >>> 1 等同于 0101 >>> 1 结果为 0010,十进制结果为 2 |
# 3.8 优先级
# 4.操作符
- delete
- typeof 操作符用于返回一个值的数据类型,例如字符串、数字、布尔值等。
- instanceof 操作符用于检查一个对象是否是另一个对象的实例。
- in 操作符用于检查一个对象是否包含某个属性
# 5.注释
//
对整行进行注释/* .. **/
对区块注释
// var a = 123
var a = 2
1
2
2
/*
var a = 123
var a = 2
**/
var a = 111
1
2
3
4
5
2
3
4
5
# 6.严格模式
← ECMAScript 二.表达式 →