表达式和语句
在编程语言中,表达式(expression)和语句(statements)是并没有被严格的定义的两个概念,我看过很多人的说法,基本上都不一致。
假设我们有一行代码:
var a = 1
, 我们应该如何去判断它是一个表达式还是语句呢?
目前看到的比较靠谱的答案是这样说的:
区分一行代码是表达式还是语句,主要在于这行代码有没有“副作用”(side effects),如果有副作用,那么这行代码就应该被称为语句。
所谓的副作用,指的是永久的改变了程序的状态,例如修改了一个全局变量或者是改变了缓存栈(buffer stack)。
而表达式通常没有副作用,并且会产生一个值。
例如:add(1, 2) , 他会返回1和2的和作为它的返回值。
标识符
标识符最常用的场合是变量的命名,标识符同时存在一些规则:
- 第一个字符只能是Unicode字符或者$或者_(下划线)或者中文
- 后面可以跟数字 例如:
- var a = 1
- var $1 = 1
- var _hello = 1
- var 你好 = 1
if else 语句
常用法:
if ( 条件1 ) {
console.log("first") // 条件1为真,则执行此行代码
} else if ( 条件2 ){
console.log("second") // 若条件1不满足,但条件2满足,则执行此行代码
} else {
console.log("else") // 若条件1, 2都不满足,则执行此行代码
}
while for 语句
while 语法:
while ( 表达式 ) {
... // 代码
... // 代码
}
当表达式为真时,执行条件体内的代码,直到表达式求值为假。例如
var a = 0
while ( a < 5 ) {
console.log(a);
a++;
}
输出结果为:
for 语法
for (语句1; 表达式2; 语句3) {
... // 代码
}
for 语句是实现循环的另外一种写法,执行过程为
-
先执行语句1
-
然后判断表达式2
(1). 若为真,则执行循环体内的内容, 然后执行语句3
(2). 若为假,则直接退出循环
break 和 continue
直接举例子:
从图中可以看到, break 可以退出循环, 但是需要注意,break 只能退出一层循环。
由上图可以看到 continue 和 break 的不同之处在于:break 跳出了整个循环,而continue只有在满足条件的情况下中断了代码执行,然后又开始执行下一次循环
label
语法:
foo: {
console.log(1);
}
{
foo: 1;
}
其中foo就是标签, :后面的东西,就是标签的内容。和C语言中的 goto语句一样,没什么人用。