JS 基本语法
目录
表达式和语句
标识符
控制语句
循环语句
break、continue
label
一、表达式和语句
- 1+2 的表达式的
值
为 3
- add(1,2)表达式的值为函数的
返回值
- console.log 表达式的值为函数本身
- console.log(3)的表达式的值为多少?
坑1:console.log()函数的返回值为undefined,所以,console.log(3)表达式的值为undefined。只不过它打印的内容为3。
1.大部分空格都没有什么意义,加回车换行也不影响。
2.
坑2:只有一个地方不能加回车换行,那就是return 后面
。原因:JS 设计的(缺陷)自动插入行尾分号“;”。会造成非常奇葩的 BUG!(
return ; 等价于 return undefined
)。举例如下:
/* 正常来说返回一个对象 */
let obj = function () {
return
{
name:'jack',
age:18;
}
};
----------------
/* 实际的运行 */
let obj = function () {
return;
{
name:'jack',
age:18;
}
};
console.log(obj); //undefined
二、标识符
- 使用规则:
第一个字符可以是 Unicode 字符或\$或\_或中文(不建议)
三、控制语句
1、if else 语句
-
语法
if (表达式1) { 语句1; } else { 语句2; } // 若语句只有一句时,可以省略{}
-
变态情况
- ( ) 里面可以使用赋值语句
let a = 0; if (a = 1) { console.log("执行if里面的{}"); } else { console.log("执行else里面的{}"); } // 控制台输出:执行if里面的{}。 /* 原理如下: 在 if(a=1) 这句代码中的运行顺序如下: 1、a=1 2、a=1的表达式的值为1(JS中返回的值是赋给a的值) 3、if(1){console.log("执行if里面的{}")} */
- 其他变态的情况是嵌套的 if else 结构,一般能看得懂。
2、switch case语句
– if else 的升级版
-
语法
switch(fruit) { case "banana": 语句1;break; case "apple": 语句2;break; . . . . . . default: 语句n;break; }
注意:记住break,大部分时候忘记break估计就完了
3、三元表达式(问号冒号表达式)
-
语法
表达式1 ? 表达式2 : 表达式3 如果表达式1的值为真,返回表达式2,否则返回表达式3。
4、&& 短路逻辑
-
语法
A && B && C && D 取值:第一个出现的假值。若都是真值,返回最后一个值也就是D。并不会取true/false
5、|| 短路逻辑
-
语法
A || B || C || D 取值:第一个出现的真值。若都是假值,返回最后一个值也就是D。并不会取true/false
四、循环语句
1、while 语句
-
语法
while(表达式) { 语句; } --------- do { 语句; }while(表达式); --------- 1、判断表达式真假 2、表达式为真,执行{}的语句。 3、再次判断表达式真假 4、表达式为假,执行{}后面的语句。
2、for 循环–while 的语法糖
-
语法
for(语句1; 表达式3 ; 语句3) { 循环体; } ----------- 1、先执行语句1 2、判断表达式2 3、表达式为真,执行一次循环体。 4、执行一次语句3 5、判断表达式2 6、表达式为假,直接退出循环。跳出循环体。
五、break VS continue
break:退出所有循环
continue:退出当前一次循环
六、label
-
语法
foo:{ console.log(1); break foo; } console.log(2); { foo:1 } 上面这个东西就是label