表达式与语句
- 表达式
console.log(3);//打印出3,但值为undefined /*console.log的值为函数本身*/ sum = add(1,2);//add(1,2)表达式的值为函数的返回值 - 语句
var a = 1;//语句 - 区别:表达式一般有值,语句可能有也可能没有。语句一般会改变环境(声明,赋值)。
标识符
- 规则
- 第一个字符可以是Unicode字母/$/ _ /中文
- 后面的字符可以是数字或上面的符号。(数字不可开通)
- 变量名:变量的命名的规则和标识符规则相同。
var __ = 1;
var $ = 2;
var 你好 = 'hello';
条件语句
if...else语句
- 语法例子
var a = 0;
if(x){
a = 1;
}else if(y){
a = 2;
}else{
a = 3;
}
/*
x为true,a=1
y为true且x为false,a=2
x,y均为false,a=3
*/
{}只有在区块中只有一个语句的时候可以省略。
switch...case语句
- 语法例子
switch (fruit) {
case "banana":
a = 1;
break;
case "apple":
a = 2;
break;
default:
a = 3;
}
/*
fruit是什么a就对应什么结果
⭐必须加break,不然会继续走case语句。
*/
while循环
- 语法例子: while (condition) statement ⭐注意:使用break语句在condition计算结果为真之前停止循环。
var n = 0;
var x = 0;
while (n < 3) {
n++;
x += n;
}
console.log(n);//3
for循环
- 语法 for ([initialization]; [condition]; [final-expression]) {statement}
for (let i = 0; i < 5; i++) {
console.log(i);
// more statements
}
// 0 1 2 3 4
三元运算符
- 语法例子(condition ? exprIfTrue : exprIfFalse)
var age = 26;
var beverage = (age >= 21) ? "Beer" : "Juice";
console.log(beverage); // "Beer"
&&逻辑与
- 语法例子:expr1 && expr2
a1 = true && true // t && t returns true
a2 = true && false // t && f returns false
a3 = false && true // f && t returns false
a4 = false && (3 == 4) // f && f returns false
a5 = 'Cat' && 'Dog' // t && t returns "Dog"
a6 = false && 'Cat' // f && t returns false
a7 = 'Cat' && false // t && f returns false
a8 = '' && false // f && f returns ""
a9 = false && '' // f && f returns false
||逻辑或
- 语法例子:expr1 || expr2
o1 = true || true // t || t returns true
o2 = false || true // f || t returns true
o3 = true || false // t || f returns true
o4 = false || (3 == 4) // f || f returns false
o5 = 'Cat' || 'Dog' // t || t returns "Cat"
o6 = false || 'Cat' // f || t returns "Cat"
o7 = 'Cat' || false // t || f returns "Cat"
o8 = '' || false // f || f returns false
o9 = false || '' // f || f returns ""
o10 = false || varObject // f || object returns varObject
label标识
- label:标记语句,可以和break/continue语句一起使用。
foo: {
console.log('face');
break foo;
console.log('this will not be executed');
}
console.log('swap');
// this will log:
// "face"
// "swap
⭐在firefox中,{foo:1}只是一个标签,但是在Chorme中是一个对象。
break和continue
- continue:退出当前一次循环。(必须在循环内部,如果有两层循环)
- break:“破坏”掉离break最近的循环,直接退出,如果外层还有循环,则不影响
/* break */
var i = 0;
while (i < 6) {
if (i == 3) {
break;
}
i += 1;
}
console.log(i);//3
/* continue*/
var j = 0;
while (j < 6) {
if (j == 3) {
continue;
}
j += 1;
}
console.log(j);//5