📌 语法规范
- JS引擎以英文分号;分隔语句
- 单一var声明模式以英文逗号,分隔
- 符号两边必须要有空格
📌 错误
- 语法错误 Uncaught SyntaxError :所有语句都不会执行
- 通用错误 Uncaught ReferenceError :中断执行,错误之前语句会执行,之后不会执行
- 不同的代码块之间的错误是互相不影响的,也不相关,程序之间也不相关
📌 运算符
- + 加号运算符 ——> 字符串拼接 ——> 任何数据类型的值 + 字符串 == 字符串
- / 除法运算符
- 0 / 0 无意义——>结果:NaN ——> 数字类型
- 1 / 0 任何数除以0都趋于正无限大 ——>结果:infinity——> 数字类型
- -1 / 0 任何数除以0都趋于负无限大 ——>结果:-infinity——> 数字类型
- 0 / 1 0除以任何数都为0 ——>结果:0——> 数字类型
- % 取余运算符
- 1 % 0 任何数和0取余无意义——>结果:NaN ——> 数字类型
- 1 % 2 任何数和比自己大的数取余结果还是自己 ——>结果:2 ——> 数字类型
交换值的问题
var a = 1,
b = 2,
//将a与b的值进行交换
var c = a;
a = b;
b = c;
//如果不声明c变量
a = a + b; // a = 1 + 2 ——>3
b = a - b; // b = 3 - 2 ——>1
a = a - b; // a = 3 - 1 ——>2
自增与自减
递增和递减运算符必须和变量配合使用
- ++num 前置递增运算符 :先自增,后参与运算
- num++ 后置递增运算符 :先参与运算,后自增
- --num 前置递减运算符 :先自减,后参与运算
- num-- 后置递减运算符 :先参与运算,后自减
比较运算符
不能连着使用,一次只比较两个数据
- 字符串相比较:比较相对应的ASCII码(字符对应的十进制代码),多字符由左至右一次比较
- !== 和 === :必须要看数据类型是否一致
- != 和 == :不看数据类型
- NaN :与包括自己在内的任何数都不相等
逻辑运算符
用来进行布尔值运算的运算符
undefined 、 null 、 NaN 、 " " 、 0 、 false :布尔值为false,除此之外全部为true
- || 逻辑或 :只要有true,返回的值即为true对应的值;表达式有ture则为真,全false才假
- && 逻辑与 :只要有false,返回的值即为false对应的值,没有则返回最后一个值;表达式全ture才真
运算符的优先级
一元运算符里面的 ! 优先级很高
&& 逻辑与 优先级高于 || 逻辑或
📌 判断分支
if条件语句——常用于区间判断
表达式的结果是boolean类型
- 使用 if 来规定要执行的代码块,如果指定条件为 true
- 使用 else if 来规定要测试的新条件,如果第一个条件为 false
- 使用 else 来规定要执行的代码块,如果相同的条件为 false
if (条件 1) {
条件 1 为 true 时执行的代码块
} else if (条件 2) {
条件 1 为 false 而条件 2 为 true 时执行的代码块
} else {
条件 1 和条件 2 同时为 false 时执行的代码块
}
switch语句——常用于等值判断
表达式类型不能是boolean类型,可以是byte,int,char,String,枚举
Switch case 使用严格比较(===),值必须与要匹配的类型相同
switch(表达式) {
case n:
代码块
break;
case n:
代码块
break;
default:
默认代码块
}
- 选择语句的选择
- 能用switch语句实现的就一定可以使用if实现,但是反之不一定
- 如果是区间范围就采用if
- 如果是等值判断使用switch
📌 注释
//规范写法
/\*
\*
*
\*/