JS语法

JS语法

表达式&语句

用英语来类比,我认为表达式就像短语、词组,而语句则是一个完整的句子

1 + 2 | go to bed
add(1,2) | have dinner

var a = 1 | I am eating.

语句和表达式的区别在于,前者主要为了进行某种操作,一般情况下不需要返回值;后者则是为了得到返回值,一定会返回一个值。凡是 JavaScript 语言中预期为值的地方,都可以使用表达式。比如,赋值语句的等号右边,预期是一个值,因此可以放置各种表达式。

return 后面不能加回车,否则会在return后面偷偷补一个undefined

标识符

规则:

第一个字符,可以是任意Unicode字母,$,_和中文。

第二个字符及后面的字符,还可以用数字0-9。

实在不行就用中文,别整一些大🔥儿看不懂的标识符

注释

注释应该提纲挈领、简明扼要,在关键的、易错的、特殊的、奇怪的地方做注释

条件语句

if…else…

if (表达式) {语句1} else {语句2}

表达式可以是语句,例如if (a=1) {},此处将1赋予了a,而不是判断a是否等于1,a===1才是a等于1。

switch…case…

不常用

1
2
3
4
5
6
7
8
9
10
switch (fruit) {
case "banana":
// ...
break;
case "apple":
// ...
break;
default:
// ...
}

注意break什么时候可以省略什么时候不可以省略

?:表达式

A ? B : C A成立则B,否则C

&&短路逻辑

A && B && C && D 取第一个假值或D

||短路逻辑

A || B || C || D 取第一个真值或D

循环语句

while循环

1
while (表达式) {语句}

判断表达式为真,执行语句,并再次判断表达式的真假

判断表达式为假,执行后面的语句

for循环

1
2
3
for (语句1;表达式2;语句3) {
循环体
}

先执行1,再判断2:如果2为真,则执行循环体,再执行3;如果2为假,则退出循环。

1、2、3部分都可以省略,但是会造成死循环。

break

退出所有循环

continue

退出这一次循环

再嵌套循环中,break和continue只影响最近的这一级循环

Label标签

相当于定位符,可以用于跳转到程序的某一个位置

跳出循环:

1
2
3
4
5
6
7
8
9
10
11
top:
for (var i = 0; i < 3; i++){
for (var j = 0; j < 3; j++){
if (i === 1 && j === 1) break top;
console.log('i=' + i + ', j=' + j);
}
}
// i=0, j=0
// i=0, j=1
// i=0, j=2
// i=1, j=0

此处break直接跳出了top,而不是跳出了j循环

跳出代码块:

1
2
3
4
5
6
7
8
foo: {
console.log(1);
break foo;
console.log('本行不会输出');
}
console.log(2);
// 1
// 2

此处break直接跳出了foo代码块

continue同理。


一个代码块,其中有一个标签foo,foo的内容为1,而不是一个对象。

1
2
3
{
foo: 1
}

JS语法
https://bald3r.wang/2022/06/10/JS语法/
作者
Allen
发布于
2022年6月10日
许可协议