ES6 Class vs ES5 constructor function All In One ES6 类 vs ES5 构造函数 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Details_of_the_Object_Model ES6 Class inherit vs ES5 constructor function inherit ES6 类继承 vs ES5 构造函数继承 js constructor fu…
使用babel编译ES6 babel是一个工具,可以通过多个平台,让js文件从ES6转化成ES5,从而支持一些浏览器并未支持的语法. Insall babel $ sudo npm install babel -g #全局安装 $ babel demo.js -o demo-compile.js #编译并产出 当然它还支持grunt/gulp和node和meteor....这里就不列举,如何在这些地方使用了,可以自行查阅其官网:babel 完成这些操作后,我们就可以开始我们的ES6的学习之旅.…
Arrow Function.md Arrow Functions The basic syntax of an arrow function is as follows var fn = data => data; The code means : var fn = function( data ) { return data; } let getNumber = () => 42; console.log(typeof getNumber); console.log(getNumber()…
工欲善其事,必先利其器.所以我们第1节就是搭建一个基本的ES6开发环境.现在的Chrome浏览器已经支持ES6了,但是有些低版本的浏览器还是不支持ES6的语法,这就需要我们把ES6的语法自动的转变成ES5的语法.如果你听过我Vue课程的话,应该知道Webpack是有自动编译转换能力的,除了Webpack自动编译,我们还可以用Babel来完成.这节课我们就使用Babel把ES6编译成ES5. ** 建立工程目录: ** 先建立一个项目的工程目录,并在目录下边建立两个文件夹:src和dist src…
现在ES6已经非常成熟了,我的需求很明确,就是只需要将ES6编译成ES5. 项目目录为 借鉴的博客链接为https://blog.csdn.net/suwu150/article/details/77198968…
如果你从其他语言转到javascript语言的开发,你会发现有很多让你晕掉的术语,其中工厂函数(factory function)和构造函数(constructor function)就是其中的一个.本文试图理顺这两者之间的区别. Factory functions 工厂函数是将返回一个新的object的任何不是类或者构造函数的函数.在js中,任何函数都能够返回一个object.如果我们不是通过new function()的方式来获得这个对象的,那么她就是一个factory工厂函数. funct…
ES6 Set vs ES5 Array Set https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Set const set = new Set() // undefined set.add(1) // Set(1) {1} set.add('some text') // Set(2) {1, "some text"} set.has(3) // false set.add…
ES6 Map vs ES5 Object Map vs Object https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map#Objects_vs._Maps Maps 和 Objects 的区别 键类型不同,一个 Object 的键只能是字符串或者 Symbols,但一个 Map 的键可以是任意值; 键顺序不同,Map 中的键值是有序的(FIFO 原则),而添加到对象中的键则不是…
前言 Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行. 这意味着,你可以现在就用ES6编写程序,而不用担心现有环境是否支持. 文件目录结构 生成包管理配置文件package.json npm init -y **安装转换工具 ** npm i -g babel-cli npm i --save-dev babel-preset-es2015 babel-cli 在.babelrc文件中写入如下内容 { "presets": [ "es20…
一.es6的箭头函数es6箭头函数内部没有this,使用时会上朔寻找最近的this不可以做构造函数,不能使用new命令,因为没有this函数体内没有arguments,可以使用rest参数代替不能用yield,不能使用generator函数二.疑问下面代码中的箭头函数arrows的this指向window let obj = { aaa: '123', arrows : () => { console.log('arrows',this); }, func : function () { con…
首先,ES6 的 class 属于一种“语法糖”,所以只是写法更加优雅,更加像面对对象的编程,其思想和 ES5 是一致的. function Point(x, y) { this.x = x; this.y = y; } Point.prototype.toString = function() { return '(' + this.x + ',' + this.y + ')'; } 等同于 class Point { constructor(x, y) { this.x = x; this.…
继承方式 ES5 prototype 继承 通过原型链(构造函数 + [[prototype]])指向实现继承. (备注:后续__proto__我都会写成[[prototype]]这种形式) 子类的 prototype 为父类对象的一个实例.因此子类的原型对象包含指向父类的原型对象的指针,父类的实例属性为子类原型的属性. // 父类:function SuperType:子类:function SubType:SubType.prototype = new SuperType(); // Sub…
Default Function Parameters.md Default Function Parameters function getSum(a,b){ a = (a !== undefined) ? a : 1 ; b = (b !== undefined) ? b : 41; console.log(a+b); } getSum(); getSum(1,2); getSum (10); getSum(null, 6); In ES5,if the argument is not sp…
1.es5做法var array=[1,3,4,5,2,3,4,5,5,5];var ob={};var result=[];array.forEach(function (a) { var key=(typeof a)+a; console.log(key) if(!ob[key]){ ob[key]=true; result.push(a) } console.log(result)})2.es6做法let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3]; le…
今天接触了webpack,第一次使用webpack进行转码,竟然稀里糊涂就成功了,哈哈. 下面附上流程 创建个文件夹,初始化一下,首先全局安装webpack npm install webpack --save-dev 然后安装babel npm install --save-dev babel-core babel-preset-es2015 npm install --save-dev babel-loader 在当前文件夹内执行安装,然后创建两个文件夹一个src作为源文件夹,一个bin,保…
1.首先创建一个新的文件夹(名为do);2.然后再根目录下面新建一个package.json,只需要写明两个属性即name和version,这个没有必须要和下面我写的一致,可以自行定义. { "name":"test-project", "version":"1.0.0" } 3.此时打开webstorm的终端(Terminal),快捷键为Alt+F12,安装babel-cli. npm install --save-dev…
(x) => x + 相当于 function(x){ ; }; var ids = this.sels.map(item => item.id).join() var ids = this.sels.map(function(item,index){ return item.id }); //无参数的箭头函数 ; 等价于 }; //一个参数的箭头函数 var f = v => v; 等价于 var f = function(v) { return v; }; //2个参数的箭头函数 v…
今天学习vuejs,里面用到了es6的写法,遇到了一个很怪的问题,不知道有人遇到么. 安装的模块引用:import Vue from 'vue';(注意,Vue处没有{},如果加上这个就报错Uncaught TypeError: _vue.Vue is not a function) 自己写的模块,route-config.js: export function routeConfig() { console.log(3);} 引用自己写的模块:import { routeConfig } fr…
webpack webpack.config.js配置文件 module.exports = { entry: './es6.js', // 入口文件路径 output: { filename: "./main.js", }, module: { loaders: [ { test: /\.js$/, // babel 转换为兼容性的 js exclude: /node_modules/, loader: 'babel-loader', query: {presets: ['lates…
例行声明:接下来的文字内容全部来自 Understanding ECMAScript 6,作者是Nicholas C.Zakas,也就是大名鼎鼎的Professional JavaScript for Web Developers(<JavaScript高级程序设计>)的作者.我很喜欢他的写作风格,所以在看了Understanding ECMAScript 6后试着自己写篇博客梳理一下,相当于简单地翻译和巩固一下吧.在此特别感谢Nicholas的原创,我只是一个小矮人,站在巨人的肩膀上,所以看…
1.字符串模板:用法:`${变量名}` (好像是C#6.0中也引入了类似的方法.C#中的用法:$"我是{变量名}" ---> $"我叫{name}" ,相当于string.Format() ) //ES6中字符串新的连接的方式 --->字符串模板 let name = "小样儿", age = 18; let str = `我叫${name},今年${age}岁!` console.log(str); //我叫小样儿,今年18岁! 字…
Normally, we can set default value for function param: //Here use "Hello" as default param var receive =function(message="Hello", handle){ handler(message); } receive("Come", function(message){ console.log(message + ", &…
JSON对象方法 1.将JSON字符串转换成js对象(IE7及以下不支持)(IE7及以下兼容需其他手段) JSON.parse() 2.将js对象转成JSON字符串 JSON.stringify() 3.js对象深度克隆 JSON.parse(JSON.stringify(arrTwo)) Object对象方法 1.Object.create(prototype,[descriptors]) 作用:以指定对象为原型创建新的对象 为新的对象指定新的属性,并对属性进行描述 -value:指定值 -w…
es6 babel 安装以及使用   1,安装好node(需要使用npm包管理工具) 2,在本地项目路径下npm init,格式化成功后会在项目下生成一个配置文件package.json 3,本地安装bable npm install --save-dev babel-cli (如需卸载之前的babel使用命令  npm uninstall --global babel-cli), 安装成功后,devDependencies(依赖)会出现一个"babel-cli": "^6.…
1.首先需要安装工具 babel-cli =========  npm i babel-cli -g   install 可以使用i 代替 2.安装插件   npm i --save-dev babel-preset-es2015 3.在文件夹中增加一个文件名称为.babelrc的文件  win下可能需要用户名.最好在编辑器中简历,会主动识别文件: 4.将写好的es6文件  例如 testes6.js通过命令编译 babel testes6.js -o results.js 5.这样就可以将re…
antd 3 以前的版本需要在 tsconfig.json 的 compilerOptions 中配置 "allowSyntheticDefaultImports": true…
Installation npm install babel-plugin-transform-remove-strict-mode && yarn add babel-plugin-transform-remove-strict-mode .babelrc { "plugins": ["transform-remove-strict-mode"] }…
更新时间: 2018-7-31 首次更新. 先生成package.json npm init -y 再安装以下npm插件 npm i babel-core babel-loader babel-preset-es2015 webpack -D && npm i -g webpack-cli 看起来应该是这样的(除版本号外),详细的配置文件不细说 webpack.config.js const path = require('path'); module.exports = { // 入口…
Module not found: Error: Can't resolve '@babel/runtime/helpers/asyncToGenerator' in 'e:\Node.js\Node.js-myself\lagou-project\lagou-admin-fe\src\scripts\controllers' Module not found: Error: Can't resolve '@babel/runtime/regenerator' in 'e:\Node.js\No…
在webpack或gulp打包的配置文件中package.json 引入"@babel/plugin-transform-object-assign": "^7.2.0", 然后执行npm install 然后就开始下载这个工具包了,下好后就该改一下配置文件了 webpack中的.babelrc文件里这样写 gulp里的gulpfile.js文件中这样写 这样就可以把Object.assign()方法成功转译,下面对比看一下转译前后的js样例…