• ECMAscript6——1


    1.概述

    ECMAScript 6(以下简称ES6)是JavaScript语言的下一代标准,ECMAScript 6的目标,是使得JavaScript可以用来编写复杂的应用程序、函数库和代码的自动生成器(code generator)。

    2.使用ECMAscript6的方法

    目前,V8引擎已经部署了ECMAscript6的部分特性。使用node.js   0.11版,就可以体验这些特性。node.js   0.11版的一种比较方便的使用方法,是使用版本管理工具nvm。下载nvm后,进入项目目录,运行下面的命令,激活nvm.

    source   nvm.sh

    然后,指定node运行版本

    nvm use  0.11

    最后,用--harmony参数进入node运行环境,就可以在命令行下体验ECMAscript6了。

    node--harmony

    另外,可以使用Google的Traceur(在线转换工具),将ES6代码编译为ES5.

    安装

    npm   install   -g   traceur

    运行ES6文件

    traceur   /path/to/ES6

    将ES6文件转为ES5文件

    traceur    --script   /path/to/ES6     --out    /path/to/ES5

    3.数据类型

    (1)let命令

    概述:ECMAscript6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。

    {

       let  a = 10;

      var  b = 1;

    }

    a  // ReferenceError:a is not defined

    b // 1

    var a = [];

    for (var i = 0; i < 10; i++) {

    var c = i;

    a[i] = function () {

    console.log(c);

    };

    }

    a[6]();

    如果使用var结果就输出9,使用let结果就输出6.

    注意:let不允许在相同作用域内重复声明同一个变量!

    (2)块级作用域

    let为Javascript新增了块级作用域。

    function f1() {

     let n = 5;

     if (true) {

     let n = 10;

    }

    console.log(n); // 5

    }

    声明了变量n,运行后输出5。这表示外层代码块不受内层代码块的影响。如果使用var定义变量n,最后输出的值就是10。块级作用域的出现,实际上使得获得广泛应用的立即执行函数(IIFE)不再必要了。

    IIFE写法

    (function(){

          var   tmp = ...'

          ...

    }())

    块级作用域写法

    {

       let tmp = ...'

       ...

    }

    (3)不存在变量提升

    let声明的变量不存在“变量提升”现象。

    console.log(x);

    let x = 10;

    这是会报错的,表示没有声明,如果用var声明x,就不会报错,会输出undefined。

    (4)const命令

    const也用来声明变量,但是声明的是常量。一旦声明,常量的值就不能改变。

    const PI = 3.1415;

    PI  //  3.1415

    PI = 3;

    PI  // 3.1415

    const PI = 3.1;

    PI // 3.1415

    上面改变常量的值是不起作用的!

    注意:对常量重新赋值不会报错,只会失败。

     
  • 相关阅读:
    vue-router 路由拦截 beforeEach 添加静态路由 与 动态添加路由
    elementUI el-upload 根据上传的图片高度,进行自适应宽度
    vue 中 字符串分两行显示
    MySQL中的<=>
    Spring mvc再启动时候会打印项里面的所有路径
    一次解决前后台交互问题
    数据库表分区,分表
    支付宝接口
    打印js中一个对象的所有属性的值
    var
  • 原文地址:https://www.cnblogs.com/watchmen/p/5084175.html
Copyright © 2020-2023  润新知