# 一.语法

前言

主要由关键字标识符操作符组合成一条语句,在对应的环境执行这些语句得到最终结果

# 1.关键字

# 1.1 重点关键字

  • var:声明变量
  • function:声明函数
  • this:当前的调用者
  • return:停止并返回
  • delete:删除属性
  • ifelse:创建条件语句
  • for:循环语句
  • for+in:遍历对象的可枚举属性
  • for+of:遍历可迭代对象
  • while:创建循环语句
  • dowhile:创建循环语句
  • break:终止当前循环
  • continue:循环中中终止当前语句的执行,并在下一次迭代中继续执行循环
  • typeof:类型判断
  • instanceof:实例判断
  • switchcase:条件匹配
  • trycatchfinally:异常处理
  • 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.1.3 赋值

  • 变量声明的同时被赋值
var a = 1
1
  • 变量被声明后再赋值
var a
a = 1
1
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.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
/*
  var a = 123
  var a = 2
**/
var a = 111
1
2
3
4
5

# 6.严格模式