es5

ES6十大常用特性

让人想犯罪 __ 提交于 2019-12-08 09:02:10
以下是ES6排名前十的最佳特性列表(排名不分先后): Default Parameters(默认参数) in ES6 Template Literals (模板文本)in ES6 Multi-line Strings (多行字符串)in ES6 Destructuring Assignment (解构赋值)in ES6 Enhanced Object Literals (增强的对象文本)in ES6 Arrow Functions (箭头函数)in ES6 Promises in ES6 Block-Scoped Constructs Let and Const(块作用域构造Let and Const) Classes(类) in ES6 Modules(模块) in ES6 【备注 】这里只列出了10条比较常用的特性。并不是所有的浏览器都支持ES6模块,所以你需要使用一些像jspm去支持ES6模块。 1.Default Parameters(默认参数) ES5: var link = function (height, color, url) { var height = height || 50 ; var color = color || 'red' ; var url = url || 'http://azat.co' ; ... } ES6:直接写在参数里 var

使用babel将ES6转化成ES5

雨燕双飞 提交于 2019-12-08 09:01:57
使用babel将ES6转化成ES5 有些浏览器还不支持ES6语法,这是我们需要将ES6语法转换成ES5,除了可以利用webpack的自动编译转换功能之外,也可使用babel进行转换。 转换步骤如下: 1.创建文件及目录如下,dist文件夹下为Babel转化后的ES5文件;src文件夹下为自己编写的ES6文件 2,打开终端,输入以下命令。在安装babel之前,需要初始化我们的项目 D: \code \es 6Test>npm init -y 3.这时会产生一个package.json文件,name可以进行修改 { " name ": "es6" , " version ": "1.0.0" , " description ": "" , " main ": "index.js" , " scripts ": { " test ": "echo \"Error: no test specified\" && exit 1" } , " keywords ": [] , " author ": "" , " license ": "ISC" , } 4.全局安装Babel-cli npm install -g babel -cli 5.本地安装babel-preset-es2015 和 babel-cli npm install -- save -dev babel -preset

es5、es6构造函数

穿精又带淫゛_ 提交于 2019-12-08 09:01:47
es5、es6构造函数区别 1 、生成对象的constructor函数区别。 相同:es5和es6如果不定义constructor时,在新建new对象时都会默认生成。对象的constructor都指向构造函数也指向构造函数的prototype下的constructor函数(如下) 不同:如果我们自己定义constructor,es5不会在新建对象时立即执行,但是es6时在new时自动执行constructor es5构造函数 function M () { var a= 1 ; this .constructor= function () { console.log( 1 )} } var m= new M(); //undefined m.constructor===M.prototype.constructor; //true m.constructor===M; //true es6构造函数 class F { constructor() {console.log( 2 ) return this ; } } var f= new F(); //2 f.constructor===F; //true f.constructor===F.prototype.constructor; //true; 2、调用方式 es5可以用new生成,对象,也可以直接调用构造函数

es6基础语法

偶尔善良 提交于 2019-12-08 09:00:49
一,es6简介 ECMAScript 是一个标准 ECMAScript 5.1 2011年发布 es6就是es5的下一个版本,2015.6发布es6的第一版 es2015, 2016.6发布es6第二个版本 es2016 ,2017年发布es6第三个版本 es2017 es6 是涵盖了es2015,es2016,es2017等版本 es6 是严格版的es5 html5 和 Xhtml1.0 "use strict"; 二。es6基础语法 1,let es6新增的声明变量的关键字 类似于var 但有所不同 不同: 1)作用域不同 var 声明的变量可以在大括号外调用, let声明的变量只能在代码块内部调用 代码块:我们认为一个大括号可以封闭一个代码块 2)没有变量提升 3)暂时性死区 使用let声明之前的变量都是不可用的 4)不允许重复声明 let不允许在相同作用域内部重复声明同一个变量,所以也是不允许在函数中重新声明参数 2,块级作用域 1)es5只有两个作用域 全局作用域 函数作用域 2)let 为js 增加了块级作用域 3)es6 允许块级作用域嵌套 4)外层作用域无法读取内层作用域的变量 5)内层作用域可以定义与外层作用域的同名变量 6)IIFE被抛弃 7)块级作用域与声明函数 es5 只允许在顶层作用域或函数作用域中声明函数,不能在块级作用域中声明函数 es6 兼容浏览器

JS ES5

你。 提交于 2019-12-06 22:50:26
严格模式 use strict 必须使用var声明变量 自定义函数this指向window 'use strict' funcion Person(name){ this.name = name; } Person("Tom"); //error new Person("Tom"); //right 来源: https://www.cnblogs.com/KevinTseng/p/11999972.html

ES6 编译 ES5 环境搭建

旧时模样 提交于 2019-12-06 07:08:53
目录结构 scripts main.es6 products.es6 temp gulpfile.js package.json index.html 文件内容 package.json { "devDependencies": { "browserify": "^11.2.0", "gulp": "^3.9.0", "gulp-babel": "^5.2.1", "gulp-buffer": "0.0.2", "gulp-clean": "^0.3.1", "gulp-uglify": "^1.4.1", "vinyl-source-stream": "^1.1.0" } } gulpfile.js var gulp = require('gulp'), babel = require('gulp-babel'), browserify = require('browserify'), source = require('vinyl-source-stream'), buffer = require('gulp-buffer'), uglify = require('gulp-uglify'), clean = require('gulp-clean') ; gulp.task('help', function () { console.log( `使用帮助: gulp

es5继承组合理解

谁都会走 提交于 2019-12-06 02:45:09
  es6之前没有类,只有通过构造函数+原型 = 组合继承,es6新增了Class(类),extends(继承)。此处只对es5的继承理解。 属性的继承 :   通过构造一个Father构造函数和Son子构造函数,然后利用call()这个方法将Father构造函数中的this指向,更改成子构造函数中的this指向,从而达成继承了父构造函数中的属性,而子构造函数还可以新增一些属性。   既然属性可以继承,那么方法自然也可以继承,方法的继承就用到了原型,原型链   很显然,Father.prototype中的方法新增了子构造函数新增的exam方法,这说明,如果用此方法添加新方法就会牵连到父构造函数,是不行的。   为什么要手动修改constructor呢? 因为,Son.prototype = Father.prototype 意味着子构造函数的prototype被覆盖了。子构造函数就是父构造函数了,父构造函数的constructor的指向就是Father构造函数,所以要手动修改 正确的继承方法 :   为了更详细的描述这里用图形来描述:   访问到父构造函数的方法通过原型链来访问,新添加的子构造函数方法会在父构造函数的实例化上修改不会影响,父构造函数的prototype。   最后添加一个原型链的执行过程帮助理解记忆: 来源: https://www.cnblogs.com

ECMAScript5 用法总结

爷,独闯天下 提交于 2019-12-06 02:30:00
浏览器支持 现在虽然已经出了ES6的规范,但是各大浏览器兼容性还有待提高。所以现在我们平时写的js代码还是多以ES5为规范。时至今日,除了一些较低版本的浏览器,各大主流浏览器基本都实现了对ES5的支持。 兼容性查看 Chrome 13+ Firefox 4+ Safari 5.1* (Safari5.1 不支持 Function.prototype.bind) IE 9* (IE9不支持严格模式,IE10开始支持) ES5新特性简介 以下对ES5新增的特性或者API作一些简要介绍。 1、严格模式(Strict Mode) Strict Mode, 即所谓的严格模式。严格模式的意义是为了提供一种更佳良好错误检查机制,让你规避掉一些语言本身的bad point。将"use strict"放在函数体或脚本文件的第一行(严格地说,只要前面不是产生实际运行结果的语句,"use strict"可以不在第一行,比如直接跟在一个空的分号后面。),则整个函数体或脚本文件以"严格模式"运行。 使用未声明的变量赋值抛出一个错误, 而不是创建一个全局变量 不止一对对象字面量分配相同的属性会抛出错误 使用with抛出错误 详细介绍,见阮一峰老师的博客 《Javascript 严格模式详解》 2、JSON对象 ES5提供一个内置的(全局)JSON对象,可用来序列化(JSON.stringify)和反序列化

关于 ES5 & ES6 数组遍历的方法

人走茶凉 提交于 2019-12-05 20:46:13
ES5 数组遍历方法 1、for 循环 const arr = [1, 2, 3, 4, 5] for (let i = 0; i < arr.length; i++) { console.log(arr[i]) } 2、forEach const arr = [1, 2, 3, 4, 5] arr.forEach(function (item) { console.log(item) }) 与 for 循环的区别:不能用 break 和 continue 3、every const arr = [1, 2, 3, 4, 5] arr.every(function (item) { console.log(item) return true }) 与 for 循环的区别:可以用 break 和 continue,但要用 return false 和 return true 分别替代 4、for in const arr = [1, 2, 3, 4, 5] for (let index in arr) { console.log(arr[index]) } ① for in 是为对象设计的,可遍历得到字符串类型的键,所以严格来讲并不适用于数组遍历 ② for in 支持 break 和 continue,但在判断时要用“==”而不能用“===”,因为 index 在这里是字符串

用es5实现模板字符串

拟墨画扇 提交于 2019-12-05 14:35:11
废话不多说,主要是利用正则表达式replace+eval动态取值(纯属娱乐) String.prototype.myReplace = function(){ return this.replace(/\$\{([^}]*)\}/g,function(metched,key){ return eval(key) }) } var name = '张三',age = '20'; var userTxt = '${name}今年${age}岁了' ) 来源: https://www.cnblogs.com/angfl/p/11928292.html