js基本语法
文章总结搬运自:https://wangdoc.com/javascript/basic/grammar.html

目录
1、语句(statement)与表达式(expression)
- 语句:无返回值,以分号结尾
- 表达式:必有返回值
- 空格:没有实际意义但不建议
- 回车:return不能加回车
1.2、布尔标识符
- 取反运算符:!:将布尔值变为相反值
- 且运算符:&& 串联
- 或运算符:|| 并联
- 三元运算符:?:
2、标识符(identifier)
标识符(identifier)指的是用来识别各种值的合法名称。命名规则如下:
- 第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。
- 第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字0-9。
- 不合法的标识符:* + -
- 不能用作标识符的保留字:arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。
3、注释
- //:单行注释
- /* */ 多行注释
4、区块(block)
{ }
- 用来构成其他更复杂的语法结构,比如for、if、while、function
- 区块对var命令不构成单独的作用域,即区块外,var声明变量仍有效
5、条件语句
5.1、if
if(条件){
满足条件时,执行语句;不满足,跳出循环
}
eg:
if (m === 3) {
m += 1;
}
5.2、-if...else
if(条件){
满足条件时,执行的语句
}else{
不满足条件时,执行的语句
}
eg:
if (m === 0) {
// ...
} else if (m === 1) {
// ...
} else if (m === 2) {
// ...
} else {
// ...
}
5.3、swich
注意:break不能少
switch (fruit) {
case "banana":
// ...
break;
case "apple":
// ...
break;
default:
// ...
}
eg:
switch (x) {
case 1:
console.log('x 等于1');
break;
case 2:
console.log('x 等于2');
break;
default:
console.log('x 等于其他值');
}
5.4、三元运算符?:
(条件) ? 表达式1(条件为真执行) : 表达式2
eg:如果n可以被2整除,则a等于true,否则等于false
var a = (n % 2 === 0) ? true : false;
6、循环语句
6.1、while循环
while (条件) {
语句;
}
单语句可以省略{}
6.2、for循环
for (初始化表达式; 条件; 递增表达式) {
语句
}
- 初始化表达式(initialize):确定循环变量的初始值,只在循环开始时执行一次。
- 条件表达式(test):每轮循环开始时,都要执行这个条件表达式,只有值为真,才 继续进行循环。
- 递增表达式(increment):每轮循环的最后一个操作,通常用来递增循环变量
eg:
for(i=0;i<3;i++){
consonle.log(i)
}
打印内容: 0 1 2
for语句的三个部分(initialize、test、increment),可以省略任何一个,也可以全部省略,不过贸然省略会导致无线循环
6.3、do...while循环
do {
语句
} while (条件);
/*while后必须带分号*/
先运行一次循环体,然后判断循环条件。不管条件是否为真,do...while循环至少运行一次
6.4、break 语句和 continue 语句
- break: 跳出代码块或循环
- continue:立即终止本轮循环,返回循环结构的头部
eg:
var i = 0;
while (i < 100){
i++;
if (i % 2 === 0) continue;
/*如果i为偶数,则直接进入下一轮循环。*/
console.log('i 当前为:' + i);
}
- 注意:不带参数的break语句和continue语句都影响最近的循环
当
6.5、label(标签)
标签(label),相当于定位符,用于跳转到程序的任意位置.通常与break语句和continue语句配合使用,跳出特定的循环
label:
语句
eg:
//label与break配合使用
top:
for (var i = 0; i < 3; i++){
for (var j = 0; j < 3; j++){
//如果break语句后面不使用标签,则只能跳出内层循环,进入 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
// 1
// 2
//label与continue配合使用
top:
for (var i = 0; i < 3; i++){
for (var j = 0; j < 3; j++){
//如果continue语句后面不使用标签,则只能进入下一轮的内层循环,即for (var j = 0; j < 3; j++){}
if (i === 1 && j === 1) continue top;
console.log('i=' + i + ', j=' + j);
}
}
// i=0, j=0
// i=0, j=1
// i=0, j=2
// i=1, j=0
// i=2, j=0
// i=2, j=1
// i=2, j=2
//label跳出区块
foo: {
console.log(1);
break foo;
console.log('本行不会输出');
}
console.log(2);
//1
//2
其他


浙公网安备 33010602011771号