JavaScript基础语法-学习笔记

2021/7/21 1:05:52

本文主要是介绍JavaScript基础语法-学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

本文思维导图

1 语句

在JavaScript中,每个语句(statement)以分号结尾;若分号前无内容,则会被视为空语句

2 变量

  1. 声明变量使用的var关键字。

  2. 在JavaScript中,变量名是区分大小写的。

  3. 若只声明变量而没有为其赋值,则该变量的值为undefined,表示“无定义”。

  4. 若变量既没有声明也没有赋值,则会报错。

  5. 可以同时声明多个变量,例如:var a, b, c;

  6. 若使用var重新声明一个已存在的变量,则第二次声明是无效的;但若被赋了新值,则会覆盖掉前面的值。

  7. 若没有声明变量直接赋值,虽然语句也是有效的,但是却创建了一个全局变量,建议使用var关键字进行创建。

  8. JavaScript是一种动态类型语言,变量类型没有限制,变量可以随时更改类型。

    var a=1;
    a="hello";//第二次赋值不需要使用var关键字
    
  9. JavaScript引擎工作方式:先解析代码,在获取所有被声明的变量后再逐行运行。因此所有变量的声明语句,都会被提升到代码的头部,这被称为变量提升(hoisting)。举个例子

    console.log(a);
    var a=1;
    

    上面的代码并不会报错,因为运行代码实际为:

    var a;
    console.log(a);
    a=1;
    

    显然控制台输出结果为:undefined

3 标识符

常见的标识符(identifier)如变量名函数名

标识符的命名规则:

  1. 第一个字符:可以是任意Unicode字母、美元符号($)和下划线(_);
  2. 第二个字符及后面的字符,除了上述三种意外,还可以是数字(0-9);

JavaScript还有一些保留字,不能用作标识符:argumentsbreakcasecatchclassconstcontinuedebuggerdefaultdeletedoelseenumevalexportextendsfalsefinallyforfunctionifimplementsimportininstanceofinterfaceletnewnullpackageprivateprotectedpublicreturnstaticsuperswitchthisthrowtruetrytypeofvarvoidwhilewithyield

4 注释

单行注释:用//开头;多行注释:/*... */

5 区块

我们通常使用大括号将多个相关语句组合在一起,并称之为区块(block)。

对于var命令来说,JavaScript区块不构成单独的作用域(scope),我们在代码区块中定义并赋值的变量依然可以直接在区块外部依然有效,可以直接使用。

{
    var a =1;
}

a //这里a的值为1

在JavaScript中很少单独使用区块,区块往往用来构成其他更复杂的语法结构,例如for、if、while、function等。

6 条件语句

6.1 if结构

语法如下:布尔值往往由一个表达式产生的,必须放于圆括号中。

if(布尔值)
    语句;//也可以写在一行

6.2 if…else结构

if(布尔值){
    //满足条件时执行的代码
}else{
    //不满足条件时执行的代码
}

若对同一变量进行多次判断,多个if…else语句可以连写在一起:

注意:else代码块总是与离自己最近的那个if语句配对,可以利用大括号将结构写明确。

if (条件判断1) {
  // ...
} else if (条件判断2) {
  // ...
} else if (条件判断3) {
  // ...
} else {
  // ...
}

6.3 三元运算符

语法:(条件) ? 表达式1 : 表达式2,若为真则返回表达式1的值,否则返回表达式2的值。这个三元运算符可以被视为if...else...的简写形式。举例:三元运算符可以用于输出相应提示。

var msg = '数字' + n + '是' + (n % 2 === 0 ? '偶数' : '奇数');

6.4 switch结构

当多个if…else连在一起使用时,则更推荐使用switch结构,如下所示:根据变量的值执行相应的case,当所有case都不符合时,则执行最后的default部分。

注意:这里switch后的变量和case的值在比较时执行的是严格相等运算符===),并不是相等运算符(==),这就意味着不会发生类型转换,例如1和true比较,1并不会转为true。

switch(变量){
    case "值1":
        //...
        break;
    case "值2":
        //...
        break;
    ...
    default:
    	//...
}

每个case代码块内部的break语句不能少,否则会接下去执行下一个case代码块,而不是跳出switch结构。

7 循环语句

7.1 while循环

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

while (条件){
    语句;//简单句子可以省略大括号,甚至写一行也可以
}

7.2 for循环

for语句是循环命令的另一种形式,可以指定循环的起点、终点和终止条件。

注意:若将初始表达式、条件和递增/减表达式三部分都省略,则会导致无限循环。

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

7.3 do…while循环

do...while循环与while循环类似,唯一的区别就是先运行一次循环体,然后判断循环条件。

注意:while语句后面的分号注意不要省略。

do {
  语句
} while (条件);

7.4 跳出循环

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

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

注意:若存在多重循环,则不带标签break语句和continue语句都只针对最内层循环

7.5 特定跳转

语句前面的标签(label)可以当作定位符,用于标识程序的跳转的特定位置,可用于跳出循环或代码块

如下代码所示:break后加了top标签,满足条件时,直接跳出双层循环

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);
   	}
  }

当然,breakcontinue后都可以加标签进行特定跳转。



这篇关于JavaScript基础语法-学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程