JavaScript 的基本语法汇总

  • A+

JavaScript 是一种轻量级的脚本语言。适合嵌入其他大型应用程序中,例如:浏览器环境和服务器环境(node)中。其本身只提供简单的核心语法,不提供任何与 I/O(输入/输出)或者类似的API,实现这些功能主要是去调用宿主环境提供的底层 API。

一.基本介绍

  • JavaScript提供的核心语法:基本的语法构造(比如操作符、控制结构、语句)和标准库(就是一系列具有各种功能的对象比如Array、Date、Math等)。
  • JavaScript提供的外部能力:调用各种宿主环境提供额外的 API
  • JavaScript在浏览器环境中的API分类:
    1. 浏览器控制类:操作浏览器
    2. DOM 类:操作网页的各种元素
    3. Web 类:实现互联网的各种功能
  • JavaScript在服务器环境中(Node),提供操作系统变量,网络通信,文件写入写出等能力

二.语句

  1. JavaScript是一个解释型语言,每一行就是一个语句,以;结尾,如下:
    var a = 1 + 3;
    
  2. 分号前没有任何内容,为空语句,如下表示三个空语句:
    ;;;
    

三.变量

  1. 变量是对值的引用,如下:
    var a = 1;
    
  2. 变量对大小写敏感 aA是不一样变量
  3. 只声明变量,没有赋值则值为undefined,如下:
    var a;
    a // undefined
    
  4. 使用 var a, b; 方式声明多个变量
  5. JavaScript 是一种动态类型语言,变量可以随时修改类型,如下:
    var a = 1;
    a = 'Hi!';
    
  6. 变量提升,JavaScript 引擎的工作方式是,先解析代码,获取所有被声明的变量,然后再一行一行地运行。这造成的结果,就是所有的变量的声明语句,都会被提升到代码的头部,这就叫做变量提升(hoisting),如下
    console.log(a);
    var a = 1;
    

    上述代码输出undefined,因为存在变量提升,执行代码过程类似如下方式:

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

四.标识符(变量名)

  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。

五.注释

  1. //单行注释,/* */多行注释

六.区块

  1. 使用大括号,将多个相关的语句组合在一起为区块,主要配合forifwhilefunction等形成作用域,单独使用情况较少。
  2. 对于var命令来说,JavaScript 的区块不构成单独的作用域(scope),如下:
    {
      var a = 1;
    }
    a // 1
    

七.条件语句

1.if结构

  • 如下2种写法都可以
    if (m === 3)
      m = m + 1;
    //或者
    if (m === 3) {
      m += 1;
    }
    

2.if...else 结构

  • if/else/else if
    if (m === 0) {
      // ...
    } else if (m === 2) {
      // ...
    } else {
      // ...
    }
    //或者
    if (m === 3) {
    // ...
    } else {
      // ...
    }
    
  • switch 结构,如下执行相应的case。如果所有case都不符合,则执行最后的default部分
    switch (fruit) {
      case "banana":
        // ...
        break;
      case "apple":
        // ...
        break;
      default:
        // ...
    }
    

3.if...else 结构

  • 三元运算符,范例如下:条件成立执行:前代码,不成立执行后面代码
    var even = (n % 2 === 0) ? true : false;
    //与如下逻辑等同
    var even;
    if (n % 2 === 0) {
      even = true;
    } else {
      even = false;
    }
    

八.循环语句

1.while 循环

  • While语句包括一个循环条件和一段代码块,只要条件为真,就不断循环执行代码块。
    var i = 0;
    
    while (i < 100) {
      console.log('i 当前为:' + i);
      i = i + 1;
    }
    //如下是一个无限循环
    while (true) {
      console.log('Hello, world');
    }
    

2.for 循环

  • for循环语句,可以指定初始化表达式,条件表达式,递增表达式
    var x = 3;
    for (var i = 0; i < x; i++) {
      console.log(i);
    }
    //如下是一个无限循环
    for ( ; ; ){
      console.log('Hello World');
    }
    

3.do...while 循环

  • 与while 循环相似,特点是最少执行一次
    var x = 3;
    var i = 0;
    
    do {
      console.log(i);
      i++;
    } while(i < x);
    

九.执行跳转

1.break 语句

  • break 语句,跳出循环语句,不再执行
    //当i等于3的时候就会跳出循环,不再执行
    for (var i = 0; i < 5; i++) {
      console.log(i);
      if (i === 3)
        break;
    }
    

2.continue 语句

  • continue 语句,跳出本次循环,余下代码不再执行,执行下次循环
    var i = 0;
    
    while (i < 100){
      i++;
      if (i % 2 === 0) continue;
      console.log('i 当前为:' + i);
    }
    
  • 不带参数的break语句和continue语句只跳转一层循环

3.标签(label)

  • label,相当于定位符,用于跳转到程序的任意位置,标签的格式如下
    label:
      语句
    
  • label标签可用于跳出循环或者跳出代码块
    //跳出循环
    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);
        }
      }
    //跳出代码块
    foo: {
      console.log(1);
      break foo;
      console.log('本行不会输出');
    }
    console.log(2);
    
zhangfeng

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: