# 一.语法

前言

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

# 1.关键字

break case catch class const continue debugger default delete do else export extends finally for function if import in instanceof new return super switch this throw try typeof var void while with yield

  • 保留字

abstract boolean byte char double final float goto int long native short synchronized throws transient volatile

# 1.2 var

  • 声明变量

# 2.标识符

  • 变量、函数、属性、函数参数的名称

# 2.1 命名规则

  • 变量名称必须以字母,下划线(_)或美元符号($)开头
  • 变量名称不能以数字开头
  • 变量名称只能包含字母数字字符(A-z,0-9)和下划线
  • 变量名称不能包含空格
  • 变量名称不能是 JavaScript 关键字或 JavaScript 保留字

# 2.2 变量

# 2.2.1 声明

在 JavaScript 中创建变量称为声明变量

关键字var 用于声明变量

# 2.2.2 命名规则

变量名称要避免关键字保留字

# 2.2.3 值

变量可以是多种数据类型

var a = 1 // 数组类型
1

# 2.2.3 声明的区域

变量的作用域是程序在其中定义的区域,作用域确定变量的可访问性(可见性)

JavaScript 变量只有两个作用域:

  • 局部作用域
  • 全局作用域

# 2.3 函数

# 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

# 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.严格模式

# 7.代码块

代码块的目的是定义要一起执行的语句