JS 的基本语法

224 阅读5分钟

什么是表达式和语句

表达式是可以被求值的代码,而语句是一段可执行代码。
因为表达式可被求值,所以它可写在赋值语句等号的右侧。而语句不一定有值,所以像import、for和break等语句就不能被用于赋值。

标识符的规则

  • 标识符(identifier)是用来识别具体对象的一个名称。最常见的标识符就是变量名,以及后面要提到的函数名。JavaScript语言的标识符对大小写敏感,所以a和A是两个不同的标识符。
标识符有一套命名规则,不符合规则的就是非法标识符。JavaScript引擎遇到非法标识符,就会报错。简单说,标识符命名规则如下:
第一个字符,可以是任意Unicode字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。
第二个字符及后面的字符,除了Unicode字母、美元符号和下划线,还可以用数字0-9。
下面这些都是合法的标识符。
arg0
_tmp
$elem
π
下面这些则是不合法的标识符。
1a // 第一个字符不能是数字
23 // 同上
*** // 标识符不能包含星号
a+b // 标识符不能包含加号
-d // 标识符不能包含减号或连词线
中文是合法的标识符,可以用作变量名。
var 临时变量 = 1;
JavaScript有一些保留字,不能用作标识符:arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、finally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。
另外,还有三个词虽然不是保留字,但是因为具有特别含义,也不应该用作标识符:Infinity、NaN、undefined。

if else 语句

条件语句 通常在写代码时,总是需要为不同的决定来执行不同的动作。可以在代码中使用条件语句来完成该任务。

在 JavaScript 中,我们可使用以下条件语句:

if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码

if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码

if...else if....else 语句 - 使用该语句来选择多个代码块之一来执行

switch 语句 - 使用该语句来选择多个代码块之一来执行

If 语句 只有当指定条件为 true 时,该语句才会执行代码。 语法

if (条件)
  {
  只有当条件为 true 时执行的代码
  }

注意:请使用小写的 if。使用大写字母(IF)会生成 JavaScript 错误!

实例 当时间小于 20:00 时,生成一个“Good day”问候:

if (time<20)
  {
  x="Good day";
  }
x 的结果是:

Good day

请注意,在这个语法中,没有 ..else..。您已经告诉浏览器只有在指定条件为 true 时才执行代码。 If...else 语句

请使用 if....else 语句在条件为 true 时执行代码,在条件为 false 时执行其他代码。 语法

if (条件)
  {
  当条件为 true 时执行的代码
  }
else
  {
  当条件不为 true 时执行的代码
  }

实例 当时间小于 20:00 时,将得到问候 "Good day",否则将得到问候 "Good evening"。

if (time<20)
  {
  x="Good day";
  }
else
  {
  x="Good evening";
  }

while for 语句

while 循环会一直循环代码块,只要指定的条件为 true。 语法

while (条件) {
    要执行的代码块
}

实例 在下面的例子中,循环中的代码将运行,一遍又一遍,只要变量(i)小于 10:

while (i < 10) {
    text += "数字是 " + i;
    i++;
}

如果忘了对条件中使用的变量进行递增,那么循环永不会结束。这会导致浏览器崩溃。

Do/While 循环 do/while 循环是 while 循环的变体。在检查条件是否为真之前,这种循环会执行一次代码块,然后只要条件为真就会重复循环。

语法
do {
    要执行的代码块
}

while (条件); 实例 下面的例子使用了 do/while 循环。该循环会执行至少一次,即使条件为 false,因为代码块会在条件测试之前执行:

do {
    text += "The number is " + i;
    i++;
 }
while (i < 10);

不要忘记对条件中所用变量进行递增,否则循环永不会结束! 比较 For 与 While

如果您已经阅读了之前关于循环的章节,您会发现 while 循环与 for 循环相当类似,其中的语句 1 和 语句 2 都可以省略。 本例中的循环使用 for 循环来提取 cars 数组中的汽车品牌: 实例

var cars = ["BMW", "Volvo", "Saab", "Ford"];
var i = 0;
var text = "";

for (;cars[i];) {
    text += cars[i] + "<br>";
    i++;
} 

本例中的循环使用 while 循环来提取 cars 数组中的汽车品牌:

实例
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var i = 0;
var text = "";
 
while (cars[i]) {
    text += cars[i] + "<br>";
    i++;
} 

break continue

break 语句“跳出”循环。 continue 语句“跳过”循环中的一个迭代。

Break 语句 在本教程稍早的章节中,您已见到了 break 语句。它被用于“跳出” switch 语句。

break 语句也可用于跳出循环。

break 语句会中断循环,并继续执行循环之后的代码(如果有): 实例

for (i = 0; i < 10; i++) {
    if (i === 3) { break; }
    text += "数字是 " + i + "<br>";
}

Continue 语句 continue 语句中断(循环中)的一个迭代,如果发生指定的条件。然后继续循环中的下一个迭代。

本例跳过值 3 :实例

for (i = 0; i < 10; i++) {
    if (i === 3) { continue; }
    text += "数字是 " + i + "<br>";
} 

label

标记语句可以和 break 或 continue 语句一起使用。标记就是在一条语句前面加个可以引用的标识符(identifier) 语法

foo:{
   console.log(1);
   break foo;
   console.log('本行不会输出');
   }console.log(2);

会输出1和2

 {
     foo:1
 }
 ```
 上面代码为标签foo,值为1