一、基本语法
1.表达式&语句
表达式
表达式是一组代码的集合,通过表达式得到一个值。
- 1 + 2 表达式的值为 3
- add(1, 2) 表达式的值为函数的返回值
console.log表达式的值为函数本身console.log(3)表达式的值 为undefined ;打印的3 ,不代表返回值。
语句
语句(statement)是为了完成某种任务而进行的操作,比如var a = 1 + 2 ; 就是一行赋值语句。
2.区分大小写
var a;
var A;//这两个是不同的变量
3.标识符
- 首字母必须是Unicode字母$或 _ 开头
- 后面的字母是上面三种,还可以有数字
- 采用驼峰大小写形式
var myCar;
var firstName;//在这种驼峰命名法是为了跟ECMAScript内置函数和对象的命名方式保持一致。
4.注释
//单行注释
/*这是多行注释*/
5.语句&区块
- 语句没有分号也是可以的,但是为了避免bug推荐加上分号,格式保持一致。
- 多条语句可以合并到带块中的
{
let a;
let b;
}
二、语句
1. if else 语句
//推荐写法
if(表达式) {
语句;
} else if(表达式) {
语句;
} else {
语句;
}
//次推荐写法
function fn() {
if (表达式) {
return 表达式
}
if (表达式) {
return 表达式
}
return 表达式
}
2. switch & while & do...while
- switch:记住break!
- while: while(表达式){语句}
- do...while:用得少
3. for循环
for(语句1;表达式2;语句3){
循环体
}
- 语句1:变量初始化,只初始化一次
- 表达式2:条件判断
- 语句3:对变量进行操作(如i++自增等)
4. break & continue 语句
break
- 立即退出当前循环,强制执行循环后的下一条语句。(循环嵌套下,跳出的是离break最近的那个)循环)
let num = 0;
for (let i = 1; i < 10; i++) {
if (i % 5 == 0) {
break;
num++;
}
console.log(num); // 4
continue
- 用于本次循环,直接进入下次循环。
let num = 0;
for (let i = 1; i < 10; i++) {
if (i % 5 == 0) {
continue;
}
num++;
}
console.log(num); // 8
5. label语句(配合break和continue)
- label 语句用于给语句加标签(起名字),label 语句的典型应用场景是嵌套循环。
配合break
let num = 0;
//给最外层的循环加标签outermost
outermost: for (let i = 0; i < 10; i++) {
for (let j = 0; j < 10; j++) {
if (i == 5 && j == 5) {
break outermost;
}
num++;
}
}
console.log(num); // 55
假如没有break outermost;,那么最终输出的结果是100,但是加了break outermost;,就会在i和j都等于5的情况下提前结束外层的outermost循环。
配合continue
let num = 0;
//给最外层的循环加标签outermost
outermost: for (let i = 0; i < 10; i++) {
for (let j = 0; j < 10; j++) {
if (i == 5 && j == 5) {
continue outermost;
}
num++;
}
}
console.log(num); // 95
当 i 和 j 都等于 5 时,continue 语句会强制循环继续执行外部循环,也就是说在i等于5的情况下j=5/6/7/8/9都不执行了,所以输出结果为95.
5.其他语句
- for-in 语句
- for-of 语句
- 标签语句
- with 语句