es5

ts An async function or method in ES5/ES3 requires the 'Promise' constructor

匿名 (未验证) 提交于 2019-12-03 01:47:02
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: Hello I'm Using async/await in my TypeScript Project, But I Get this log: [ts] An async function or method in ES5/ES3 requires the 'Promise' constructor. Make sure you have a declaration for the 'Promise' constructor or include 'ES2015' in your --lib option. How Can I Solve That? 回答1: As the error message says, add lib: es2015 to your tsconfig.json // tsconfig.json { "compilerOptions": { "lib": [ "es2015" ] } } 回答2: Try this package which contains type definitions for es6-promise npm install --save @types/es6-promise 回答3: If you are on VS,

SyntaxError: Unexpected token 'const' for testing.es5.js

匿名 (未验证) 提交于 2019-12-03 01:27:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: I've switched to Angular4.0.0-rc.1 and it looks like ES5 testing bundles contain ES2015 code. I'm getting this error: PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR SyntaxError: Unexpected token 'const' at webpack:///~/@angular/core/@angular/core/testing.es5.js:10:0 Also found related issue on Angular repo. 回答1: I just created a basic Angular project and had the same (or similar) issue with PhantomJS integration. PhantomJS 2.1.1 (Mac OS X 0.0.0) ERROR SyntaxError: Unexpected token 'const' at webpack:///src/app/app.component.ts:1:0 Our team got it to

es5与es6常用语法教程(1)

匿名 (未验证) 提交于 2019-12-03 00:38:01
https://www.jianshu.com/p/dcf2e97439ef 函数写法区别 计算a, b两个数字之和,有返回值 es5 写法 function add ( a, b ) { return a + b; } es6 写法(箭头函数) let add = ( a, b ) => { return a + b } 注意: 箭头函数作用于执行代码,这时使用{} let add = ( a, b ) => {a + b} 当执行的代码语句只有一个逻辑表达式,这时可以省略{} let add = ( a, b ) => a + b 箭头函数用于返回对象时,这时使用() let add = ( a, b ) => (c) 箭头函数的参数当只有一个参数时,这时可以省略参数的() let add = a => alert(a) 打印计算结果,没有返回值 es5 function printSum ( a, b ) { console .log(a + b); } es6 let printSum = ( a, b ) => { console .log(a + b) } 省略{} let printSum = ( a, b ) => console .log(a + b) 函数执行多条逻辑语句 es5 function printAB ( a, b ) { console .log

ECMAScript5――JSON拓展

匿名 (未验证) 提交于 2019-12-03 00:22:01
ES5 javascript最早是由网景公司推出的,极其简单,被很多开发者接受,逐渐流行起来,后来IE为了抢占市场微软,将IE浏览器内置在windows系统中,所以IE的市场占有率相当的高。IE脚本语言是Jscript(vbscript) 好消息是移动端基本都是webkit内核,因此我们可以放心的使用html5,css3,ES5规范等等 在pc端,由于高级浏览器都实现了html5,css3,ES5规范等等,所以我们可以直接用高级浏览器测试它们 ES规范版本 ES1, ES2, ES3, ES4, ES3.1, ES5, ES6, ES2016, ES2017, ES2018 ES5跟ES3区别不是很大。 只是在ES3基础上新增了一些数组的方法和对象的拓展。 JSON拓展 ES5为了json字符串和JS对象互相转换, 新增了JSON内置对象。 该对象有两种方法: parse 、 stringify 该方法用于将JSON字符串转为 JSON 对象 使用方式: JSON.parse( jsonStr , reviver( key , value ){ 参数: 必需, 一个有效的 JSON 字符串 reviver : 可选,一个转换结果的函数, 将为对象的每个成员调用此函数 返回值:json字符串转换为的JS对象 注意: JSON 不能存储 Date 对象。 需要存储 Date 对象

多角度对比 ES5与ES6的区别

匿名 (未验证) 提交于 2019-12-03 00:22:01
本文关键词: ES6 , javascript , es6之前,定义默认参数的方法是在一个方法内部定义 var link = function (height, color, url) { var height = height || 50 ; var color = color || ‘red‘; var url = url || ‘https: //blog.csdn.net/u011215669‘; } es6写法,简单粗暴了很多了 var link = function (height = 50, color = ‘red‘, url = ‘http: //azat.co‘) { ... } es6之前定义模版字符串要这样写(其中first和last 是变量) var name = 'Your name is ' + first + ' ' + last + '.' ; var url = 'http://localhost:3000/api/messages/' + id; es6中使用新的语法${ },就简单多啦,注意es6中的模版字符串用得是 反引号“ (位置如图) var name = `Your name is ${first} ${last}. `; var url = `http: //localhost:3000/api/messages/${id}`;

ES5和ES6面向对象的写法

匿名 (未验证) 提交于 2019-12-03 00:21:02
面向对象: ES5: function User(name,age){ this.name = name; this.age = age; } User.prototype.showName=function(){ console.log(this.name); } User.prototype.showAge=function(){ console.log(this.age); } function Vipuser(name,age,level){ User.call(this,name,age); this.level = level; } Vipuser.prototype = new User(); Vipuser.prototype.constructor = Vipuser; Vipuser.prototype.showLevel=function(){ console.log(this.level); } var v1 = new Vipuser('hum',12,3); v1.showName(); v1.showAge(); v1.showLevel(); ES6: 面向对象:注意User后面没有括号 。 class User{ constructor(name,age){ this.name = name; this.age = age; } showName(

ES5和ES6面向对象的写法

匿名 (未验证) 提交于 2019-12-03 00:21:02
面向对象: ES5: function User(name,age){ this.name = name; this.age = age; } User.prototype.showName=function(){ console.log(this.name); } User.prototype.showAge=function(){ console.log(this.age); } function Vipuser(name,age,level){ User.call(this,name,age); this.level = level; } Vipuser.prototype = new User(); Vipuser.prototype.constructor = Vipuser; Vipuser.prototype.showLevel=function(){ console.log(this.level); } var v1 = new Vipuser('hum',12,3); v1.showName(); v1.showAge(); v1.showLevel(); ES6: 面向对象:注意User后面没有括号 。 class User{ constructor(name,age){ this.name = name; this.age = age; } showName(

ES5新增数组的方法

我们两清 提交于 2019-12-03 00:11:54
ES5新增数组的方法 ES5新增数组常见方法(indexOf/forEach/map/filter/some/every) .indexOf( data , start)   检测数组中是否存在指定数据,存在返回索引,不存在返回-1,start表示从第几位开始查询。 demo: var arr = ["a","45",67,true,"hello",67,45,25,13,89]; console.log(arr.indexOf(67)); // 2 console.log(arr.indexOf("world")); // -1 console.log(arr.indexOf("a")); // 0 console.log(arr.indexOf(67,3)); // 5 console.log(arr.indexOf(67,6)); // -1 .forEach( function(val,idx,self){ } ); 循环,遍历数组   数组的专属遍历方法,1个参数:回调函数,在回调函数身上又有三个参数 var f = arr.forEach(function(val,idx,self){ // console.log(val); // console.log(idx); }) console.log(f); // undefined .map( function(val

使用babel es6 转 es5

匿名 (未验证) 提交于 2019-12-03 00:11:01
安装 //Webpack 接入 Babel 必须依赖的模块 npm i - D babel - core babel - loader //preset,告诉babel编译的文件中用到了哪些语法env包含当前所有 ECMAScript 标准里的最新特性 npm i - D babel - preset - env //编译时报错说如果用的是loader6X让安装7 npm i babel - loader @7 - D //默认不转化Promise等,需要这个插件(安装后在入口文件最开始引用:require("@babel/polyfill");) npm install--save @babel / polyfill webpack.config.js的module.rules中添加 { test: /\.js$/, exclude: /node_modules/, use: ['babel-loader'] } .babelrc文件中写入 { "presets": [ ["env"] ] } 来源:博客园 作者: suprjsman 链接:https://www.cnblogs.com/superjsman/p/11599155.html

uglify 压缩报错问题及 es5-imcompatible-versions

匿名 (未验证) 提交于 2019-12-03 00:11:01
缘起 由于维护 roadhog 和 umi,收到构建方面的问题反馈比较多,其中一个常见的是打包时 uglify 压缩的问题。类似下面的报错都是这个引起的, Failed to minify the bundle . Error : 0.0f3f4c41.async . js from UglifyJs xx . async . js from UglifyJs Unexpected token : keyword ( const ) 0.570d21b1.async . js from UglifyJs Unexpected token : punc ()) [ 0.570d21b1.async . js : 13245 , 19 ] xx . async . js from UglifyJs Unexpected token : operator (>) 为啥会有这个问题? 通常 webpack 在构建时,是不会让 node_modules 下的文件走 babel tranpile 的,一是会慢很多,二是 babel@6 时编译编译过的代码会不安全(据说 babel@7 下没问题了),所以业界有个潜在的约定,npm 包发布前需要先用 babel 转出一份 es5 的代码。 但是有些 npm 包不遵守这个约定,没有转成 es5 就发上去,比如 query-string@6