表达式和语句
语句:
JavaScript 程序的执行单位为行(line),也就是一行一行地执行。一般情况下,每一行就是一个语句。
var a = 1 便是一个语句,语句是为了完成某种任务而进行的操作。
表达式:
var a = 1+2 这行语句中的 1+2 是表达式,它的运算赋值为 3 结果会给变量 a
1+2 是指一个为了得到返回值的计算式,为函数的返回值。
console.log 表达式的值为函数本身。
两者区别:
-
语句主要为了进行某种操作,一般情况下不需要返回值。
-
表达式则是为了得到返回值,一般都会返回一个值。
-
语句一般会改变环境(声明.赋值) 当然以上也并不是绝对的
标识符的规则
标识符(identifier)指的是用来识别各种值的合法名称。最常见的标识符就是变量名,以及后面要提到的函数名。JavaScript 语言的标识符对大小写敏感。所以
var a 和 var A 是不同的
object 和Object 是不同的
function 和 Function 是不同的
标识符有一套命名规则,不符合规则的就是非法标识符。JavaScript 引擎遇到非法标识符,就会报错。标识命名规则如下:
-
第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。
-
后面的字符除了以上表达方式还可以是数字。
-
var _=1
-
var &=2
-
var _______ =6 虽然可以使用但是最好千万别用这一种
-
var 你好='hi' 以上都是合法标识符
注释
注释可有两种写法: // 和 /**/
// 是单行注释
/*
是多行注释
*/
区块 block
把代码包起来,常与if/for/while和用
{
let a = 1
let b = 2
}
if else 语句
if结构先判断一个表达式的布尔值,然后根据布尔值的真伪,执行不同的语句。所谓布尔值,指的是 JavaScript 的两个特殊值,true表示真,false表示伪。
注意:if后面的表达式之中,不要混淆赋值表达式(=)、严格相等运算符(===)和相等运算符(==)
- (=) 赋值表达式不具有比较等效作用,要使用严格相等运算符(===)!!!
if代码块后面,还可以跟一个else代码块,表示不满足条件时,所要执行的代码。
if(表达式) {
// 语句1 满足条件是,执行的语句
}else{
// 语句2 不满足条件时,执行语句
}
对一个变量多次判断时,多个if else语句可以连在一起写,比较推荐的写法。
if (表达式) {
// 语句...
} else if (表达式) {
// 语句...
} else {
// 语句...
}
一些变态情况
-
表达式里a =1
-
语句1嵌套的if else
-
语句2也是嵌套的if else
-
缩进里也可以出现下套 次推荐的写法:
function fn(){
if(表达式){ return表达式 }if(表达式){ return(表达式) }return(表达式)}
while 循环
While语句包括一个循环条件和一段代码块,只要条件为真,就不断循环执行代码块。
语法
while (表达式) {
语句;
}
-
判断表达式的真假
-
当表达式为真,执行语句,执行完再次判断表达式的真假。
-
当表达式为假,执行后面的语句
示例
var i = 0;
while (i < 10) {
console.log('i 当前为:' + i);
i = i + 1;
}
上面代码会循环10次,直到等于10为止。
无限循环示例
while (true) {
console.log('Hello, world');
}
上面的例子是一个无限循环,因为循环条件总是为真。
for 循环
for语句是循环命令的另一种形式,可以指定循环的起点、终点和终止条件。
语法
for(语句1;表达式2;语句3){
循环体
}
- for语句后面的括号里面,先执行语句1.
- 然后在判断表达式2.
- 如果为真,执行循环体然后执行语句3.
- 如果为假,则直接退出循环执行后面的语句。
break 语句和 continue 语句
break语句和continue语句都具有跳转作用,可以让代码不按既有的顺序执行。
break语句用于跳出代码块或循环。
var i = 0;
while(i < 20) {
console.log('i 当前为:' + i);
i++;
if (i === 5) break;
}
上面代码只会执行5次循环,一旦i等于5,就会跳出循环。
continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环。
var i = 0;
while (i < 100){
i++;
if (i % 2 === 0) continue;
console.log('i 当前为:' + i);
}
上面代码只有在i为奇数时,才会输出i的值。如果i为偶数,则直接进入下一轮循环。
label
语法
foo: {
console.log(1);
break foo;
console.log('本行不会输出');
}
console.log(2);
上面代码执行到break foo,就会跳出区块
标签可以是任意的标识符,但不能是保留字,语句部分可以是任意语句。
标签通常与break语句和continue语句配合使用,跳出特定的循环。
提示
下面代码块,不应该是一个对象,而是一个label标签里面有个1,结果是1.
{
foo : 1
}