JS语法

156 阅读2分钟

表达式与语句

  • 表达式
      console.log(3);//打印出3,但值为undefined
      /*console.log的值为函数本身*/
      sum = add(1,2);//add(1,2)表达式的值为函数的返回值
    
  • 语句
      var a = 1;//语句
    
  • 区别:表达式一般有值,语句可能有也可能没有。语句一般会改变环境(声明,赋值)。

标识符

  • 规则
    1. 第一个字符可以是Unicode字母/$/ _ /中文
    2. 后面的字符可以是数字或上面的符号。(数字不可开通)
  • 变量名:变量的命名的规则和标识符规则相同。
   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