JS 基本语法

232 阅读4分钟

JS笔记

JS基本语法

表达式与语句的区别:

表达式是javascript中的一个短句,解释器通常会将其计算出一个结果,一般情况下,语句中包含表达式; javascript程序的执行单位为行,一般情况下,每一行就是一个语句,语句是为了完成某个任务而进行的操作,它通常会改变当前的环境,比如赋值语句。

var a = 3+5

其中3+5就是一个表达式,主要是得到一个返回值8;而加上前面的var a =整个就变成了一个语句,主要是为了完成赋值。

语句一般以;结尾,一个;代表一个语句的结束。

标识符

标识符指的是用来识别各种值的合法名称,最常见的标识符就是变量名和函数名,就如现实生活中的取名一样,会取名必须符合国家规定一样,国家只认在这个规定之内的名称,规定之外的一律不认。 比如在javascript语法中,就对标识符的大小写敏感,大写A和小写a是两个不同的标识符。

具体规则如下:

  • 第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号($)和下划线(_)。
  • 第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字0-9

所以像如下符号都是可以使用的。

arg0
_tmp
$elem
π
var 临时变量 = 1;

if语句

if结构先判断一个表达式的布尔值(true和false),再执行不同的语句。

if (m === 3) {
  m += 1;
}
//或
if (m === 3)
  m = m + 1;

if的结构可以有两种形式,如上代码第一种包含在大括号代码块中可以执行多个语句,而第二种只能执行行语句。

当满足条件时执行语句,当不满足条件时,后面可以接else代码块,表示不满足条件时,所要执行的代码。

if (m === 3) {
  // 满足条件时,执行的语句
} else {
  // 不满足条件时,执行的语句
}

switch语句

多个if...else连在一起使用的时候,可以转为使用更方便的switch结构。

switch (fruit) {
  case "banana":
    // ...
    break;
  case "apple":
    // ...
    break;
  default:
    // ...
}

如上代码根据变量fruit的值,选择执行相应的case。如果所有case都不符合,则执行最后的default部分。需要注意的是,每个case代码块内部的break语句不能少,否则会接下去执行下一个case代码块,而不是跳出switch结构。

while循环

While语句包括一个循环条件和一段代码块,只要条件为真,就不断循环执行代码块。

while (条件) {
  语句;
}
//或
while (条件)
  语句;
//或
while (条件) 语句;

while语句的循环条件是一个表达式,必须放在圆括号中。代码块部分,如果只有一条语句,也可以省略大括号,否则就必须加上大括号。

for循环

for (初始化表达式; 条件; 递增表达式)
  语句

// 或者

for (初始化表达式; 条件; 递增表达式) {
  语句
}

for语句后面的括号里面,有三个表达式。

初始化表达式(initialize):确定循环变量的初始值,只在循环开始时执行一次。
条件表达式(test):每轮循环开始时,都要执行这个条件表达式,只有值为真,才继续进行循环。
递增表达式(increment):每轮循环的最后一个操作,通常用来递增循环变量。

它也一样,如果只有一个语句,可以省略大括号。

break 语句和 continue 语句

break语句和continue语句都具有跳转作用,可以让代码不按既有的顺序执行。

var i = 0;

while(i < 100) {
  console.log('i 当前为:' + i);
  i++;
  if (i === 10) break;
}

break语句用于跳出代码块或循环。

var i = 0;

while (i < 100){
  i++;
  if (i % 2 === 0) continue;
  console.log('i 当前为:' + i);
}

continue语句用于立即终止本轮循环,返回循环结构的头部,开始下一轮循环。

标签(label)

JavaScript 语言允许,语句的前面有标签(label),相当于定位符,用于跳转到程序的任意位置,标签的格式如下。

标签通常与break语句和continue语句配合使用,跳出特定的循环。

top:
  for (var i = 0; i < 3; i++){
    for (var j = 0; j < 3; j++){
      if (i === 1 && j === 1) break top;
      console.log('i=' + i + ', j=' + j);
    }
  }