ES6标准入门 第一章:简介

  • ECMAScript 6 是JavaScript 语言的下一代标准;发布于2015年,又称为ECMAScript 2015。

  • ECMAScript 方言还有 JScript 和 ActionScript。

  • ECMAScript 与 JavaScript 的关系:前者是后者的规范,后者是前者的一种实现。

  • 一个完整的JavaScript实现 包含 ECMAScript 、DOM、 BOM 三部分。

  • babel 转码器:
    • Babel 是一个广为使用的ES6转码器,可以将ES6代码转为ES5代码,从而在浏览器或其他环境执行;

      //转码前
      input.map(item => item +1);
      
      //转码后
      input.map(function (item) {
          return item + 1;
      })
    1. 命令行环境
      Babel 的命令行版本通过下面的命令安装:

      $ npm install --global babel-cli
      $ npm install --save babel-preset-es2015
      // 然后在当前目录下新建配置文件 .babelrc  并写入以下代码
      {
          "presets": [‘es2015‘]
      }

      Babel 自带一个babel-node 命令, 提供支持ES6 的 REPL 环境。它支持Node.js 的REPL环境的所有功能,而且可以直接运行ES6代码:

      $ babel-node
      console.log([1,2,3].map(x => x * x))   //[1 , 4, 9]

      babel-node 命令也可以直接运行 ES6脚本:(假设将上述代码写入es6.js中)

      $ babel-node es6.js     // [1, 4, 9]

      babel 命令可以将 ES6代码 转换为 ES5 代码:

      $ babel es6.js
      
      "use strict";
      console.log( [1,2,3].map( function (x) {
          return x * x;
      }) )

      -o参数(或--out-file)可将转换后的代码从标准输出 重定向至文件

      $ babel es6.js -o es5.js
      #或者
      $ babel es6.js --out-file es5.js

      -d参数 用于转换整个目录 (-d后面跟的是输出目录)

      $ babel -d build-dir source-dir

      -s参数 用于生成source map 文件

      $ babel -d build-dir source-dir -s
    2. 浏览器环境
      babel 也可以用于浏览器。 但是Babel6.0开始不再直接提供浏览器版本,而是要用构建工具构建出来;或者通过安装5.x 版本的babel-core模块获取。

      $ npm install [email protected]

      运行以上命令可在当前目录的 node_modules/babel-core/ 子目录下找到babel的浏览器版本browser.js(未精简) 和 browser.min.js(已精简)
       然后插入以下代码到网页中:

      <script src="node-modules/babel-core/browser.js"></script>
      <script type="text/babel">
              // 书写es6 代码
      </script>

      注意: 这种写法实时的将es6 转换为 es5,对网页性能有影响。 生产环境下需要加载已转码的脚本。

    3. Node.js 环境
      (1)先安装babel-core 和 babel-preset-2015 
      $ npm install --save-dev babel-core babel-preset-2015

      (2)然后在项目根目录下新建 .babelrc 文件

      {
           "presets":["es2015"]
      }

      (3)最后在脚本中调用babel-core的 transform 方法

      var es5Code = ‘let x = n => n + 1‘;
      var es6Code = require(‘babel-core‘)
                             .transform(es5Code, {presets: [‘es2015‘]})
                             .code;
      //‘ "use strict"; \n\n var x = function x(n) {\n return n+1; \n}; ‘

      方法二:
      Node 脚本还有一种特殊的babel用法,即把babel加载为require 命令的一个钩子
      执行完(1)(2)之后,在应用的入口脚本( entry script )头部加入下面语句:

      require("babel-core/register");

      有了上面这个语句,后面所有通过require命令加载的后缀名为 .es6  .es  .jsx  .js  的脚本都会先通过babel转码再加载;

    4. 在线转换
      Babel提供了一个REPL在线编译器, 将ES6代码转换为es5代码后 插入到网页中运行。

原文地址:https://www.cnblogs.com/james23dong/p/8462707.html

时间: 2024-10-31 23:24:49

ES6标准入门 第一章:简介的相关文章

ES6标准入门 第二章:块级作用域 以及 let和const命令

一.块级作用域 1.为什么需要块级作用域? ES5中只有全局作用域和函数作用域,带来很多不合理的场景. (1)内层变量可能会覆盖外层变量: var tem = new Date(); function f(){ console.log(tmp); if(false) { var tmp = "hello world"; } } f(); //undefined 变量提升导致了外层的内层的tmp变量覆盖了外层的tmp变量. (2)用来计数的循环变量泄露为全局变量: var s = &qu

《ECMAScript 6 入门- 第一章 lef和const命令》 —— 摘抄

1 . lef命令 ES6新增了let命令,用来声明变量.它的用法类似于var,let声明的变量,只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b //1 2.const命令 const也用来声明变量,但是声明的是常量.一旦声明,常量的值就不能改变. const PI = 3.1415; PI // 3.1415 PI = 3; PI // 3.1415 const PI =

读书笔记 - javascript 高级程序设计 - 第一章 简介

第一章 简介   诞生时间 1995 最初用途 客服端验证 第一版标准 注意是标准 1997年 Ecma-262  一个完整的js实现由三部分组成 ECMAScript DOM 文档对象模型 BOM 浏览器对象模型 ECMAScript的宿主环境 web浏览器 Node(服务器js平台) adobe flash js和as的关系 他们都实现了 ECMAScript 五大主流浏览器 IE Firefox Safari Chrome Opera dom介绍 它是针对xml但经过扩展用于html的应用

《Java并发变成实践》读书笔记---第一章 简介

<Java并发编程实战>深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册.书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险.构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁.原子变量.非阻塞算法以及

ES6标准入门 论文随笔(二)

一.基本信息 标题:ES6标准入门 时间:2015 来源:电子工业出版社 关键词:ES6标准入门 二.研究内容 问题定义: ES6是什么?它是用来干嘛的?为什么要用ES6? 特点:(1)JavaScript新特性 (2)let.const (3)promise (4)iterator (5)proxy 三.结论 <ES6标准入门(第2版)>为中级难度,适合对 JavaScript 语言或 ES5 已经有所了解的读者,用来提高水平,了解这门语言的最新发展:也可当作参考手册,查寻 ES6/ES7

ES6 常用总结——第一章(简介、let、const)

ES6整理 1. ECMAScript 6简介 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准.它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言. 2. let 和 const 命令 2.1. Let 命令 ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. for (let i = 0; i < 3; i++) { let i = 'abc'

ES6标准入门(阮一峰)-阅读记录与心得

目标:学习ES6标准,并能灵活使用ES6标准的JavaScript 内容:(未完成,待继续) 第一阶段:准备阶段 1.第一章,入门准备.主要讲了ES6简介与ECMAScript历史(这部分快速阅读),重点掌握ES6环境具体部署,建议使用Babel转码器.在配置Babel转码器之前,需要下载安装node环境,可以适当理解包管理的概念. 第二阶段:基础:新特性 1.第二章, 原文地址:https://www.cnblogs.com/xinkuiwu/p/11551679.html

花无涯带你走进黑客之 小白入门 第一章

最近开始有一个想法, 想谈谈小白如何慢慢学习网络安全相关知识, 有正确得价值观,做正确的事情. 初心也是为了帮助更多人学习到黑客攻防,学会保护自己和身边的人. 写一些自己的分享和经验,每一期可能都有时间就进行更新,感谢大家的支持! 相信每一个对计算机感兴趣的童鞋都有着一颗黑客的心, 我也不例外, 我希望通过一系列的文章让大家了解黑客和网络安全. 不是很会写一些感人故事心得, 更想是通过自己得分享也顺便提升自己 -.- 不是很喜欢在文章里头加特别花哨 过多的图片,也不会怎么配图... 可能阅读起来

ES6标准入门 第四章:字符串的扩展

1.字符串的Unicode 表示法 JavaScript 允许采用 \uxxxx 表示一个字符,其中 xxxx 表示字符的码点. "\u0061" // "a" ES5中的缺陷: 以上表示法只限于 \u0000--\uFFFF 之间的字符.超出这个范围的=字符,必须用两个双字节表示. "\uD842\uDFB7" //"??" 如果直接在\u 后面直接加上超过\uFFFF 的数值: "\u20BB7" //