以下为读完阮一峰的《JavaScript 的基本语法》总结的易被忽略的知识点:
语句:JavaScript 程序的执行单位为行,一行就是一个语句。
var a=1+2;
表达式:指一个为了得到返回值的计算式。表达式的值为函数的返回值。
1+2 //值为3
console.log //值为console.log
console.log(3) //值为undefined
语句和表达式的区别在于,前者主要为了进行某种操作,一般情况下不需要返回值;后者则是为了得到返回值,一定会返回一个值。 ——并不绝对
空格和回车语句在语句中一般无意义,除return后跟回车再跟值js会自动补齐成return undefined造成错误
如果只是声明变量而没有赋值,则该变量的值是undefined。undefined是一个特殊的值,表示“无定义”。
如果变量赋值的时候,忘了写var命令,这条语句也是有效的。但容易生成全局变量,不建议。
a=1; //等同于 var a=1;
如果使用var重新声明一个已经存在的变量,但没有赋值,是无效的。
但是,如果第二次声明的时候还进行了赋值,则会覆盖掉前面的值。
第一个字符,可以是*任意 Unicode 字母(包括英文字母和其他语言的字母) * ,以及美元符号($)和下划线(_)
所以中文也是可以的
JavaScript 使用大括号,将多个相关的语句组合在一起,称为“区块”(block)。但var生成变量不受区块的作用域限制
(条件) ? 表达式1 : 表达式2
如果表达式1不写,会造成死循环。
JavaScript 语言允许,语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式:
label:
语句
标签通常与break语句和continue语句配合使用,跳出特定的循环。
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跳出整个双层循环,如是continue是跳出内层循环再外层继续。
如果没有top标签,break只能跳出内层循环,继续执行外层循环;而continue只能跳出内层循环那一次,继续执行内层后面的。。
continue与标签配合,同理。
参考:https://wangdoc.com/javascript/basic/grammar.html#%E8%AF%AD%E5%8F%A5