ECMAScript 6(简称ES6)是于2015年6月正式发布的JavaScript语言的标准,正式名为ECMAScript 2015(ES2015)。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发语言 。 另外,一些情况下ES6也泛指ES2015及之后的新增特性,虽然之后的版本应当称为ES7、ES8等。
一、数组的创建1、使用Array构造函数vararr1=newArray();//创建一个空数组vararr2=newArray(20);//创建一个包含20项的数组vararr3=newArray("lily","lucy","Tom");//创建一个包含3个字符串的数组 2、使用数组
在es5之前,js对象的属性名只能是字符串。在es6提供了map数据结构,来打破这个限制,让除了字符串之外,让对象等也可以成为属性名。 创建一个map结构letmap=newMap()往map里面增加成员,通过map方法,也可以直接在创建结构的时候直接添加成员,参数为数组,每个数组里面的子项也是
前置1.ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。2.Symbol值通过Symbol函数生成。3.Symbol函数可以接受一个字符串作为参数,表示对Symbol实例的描述,主要是为了在控制台显示,或者转为字符串时,比较容易区分。4.ES2019提供了一个实例属性description,直接返回Sy
js中this指向是个复杂的问题,而且经常一不小心就犯错。在这里总结下this绑定的原则。要判断一个运行中函数的this绑定,首先需要找到这个函数的直接调用位置。然后就可以顺序的使用以下四条规则来判断this的绑定对象。由new调用?绑定到新创建的对象使用了call、apply、bind调用?
export正确用法输出变量exportvarname='Mark';输出多个变量varname='Mark';varage=18;export{name,age};//输出一个变量//export{name};输出函数exportfunctionsetName(name){name='Mark';}输出别名//export输出的变量就是在原文件中定
ES6ES6在ES5的基础上新增了一系列特性,这里仅列出常用特性变量的改变,添加了块级作用域的概念let声明变量(块级作用域),let是更完美的var,它声明的全局变量不是全局属性widow的变量,这便解决了for循环中变量覆盖的问题const声明常量(会计作用域)//varvara=[];for(va
1、let、const有块级代码作用域没有预解析,不存在变量提升不能重复定义特殊的for循环,for循环()里面定义的let变量,只在循环体内有效const和let差不多,只不过人家是常量,不能改变2、解构赋值a).数据解构赋值:let[a=‘abc’]=[]解构默认值(里面填写undefined和null的区
数组的解构赋值概念:ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构//以前,为变量赋值,只能直接指定值leta=1;letb=2;letc=3;//ES6解构赋值:let[a,b,c]=[1,2,3];上面代码表示,可以从数组中提取值,按照对应位置,对变量赋值//本质上,
回顾:函数变量作用域的问题:1.函数体内声明的变量:vara=45;functionfn(){console,log(a)vara=12;}fn()2.参数中的变量:没有赋值  functionfn(a){}赋值的值不是变量 function(a=45){}赋值且值也
目录ES6中用&&跟||来简化if{}else{}的写法1.ifelse的写法2.ES6中&&||的用法3ES6实例4开发环境ES6中用&&跟||来简化if{}else{}的写法1.ifelse的写法if(this.pointJson[0]){constd=[+this.pointJson[0].Lng,+this.pointJson[0].Lat];}else{const
1、Promise构造函数/esolve(成功),reject(失败)两个参数functionrunAsync(){varp=newPromise(function(resolve,reject){//做一些异步操作setTimeout(function(){console.log('执行完成');resolve('执行完成数据');});});returnp;}runAsync(
238数字->二进制->补码->十进制constbitwise=N=>{if(N<2){returnN==0?1:0}/*转化为二进制*/letstr=N.toString(2)/*补码*/letsb=''for(leti=0;i<str.length;i++){sb+=s
1’.使用export对外暴露模块接口; 使用import引入其他模块 import声明的变量必须放在{}内,变量名必须和暴露接口名一致;2.你暴露多少个变量你就得声明多少个变量;模块文件中,你对外暴露的是什么,你得到的就是什么;common.js得到的永远是一个对象;export和exportdafalut之间的
1.块级作用域{}       ES5中作用域有:全局作用域、函数作用域。没有块作用域的概念。        ES6中新增了块级作用域。块作用域由{}包括,if语句和for语句里面的{}也属于块作用域。1<scripttype="text/javascript">23{4vara=1;5console.lo
classA{a=1  //注意!!这里定义的不是在prototype上的属性,而是给实例初始化的constructor(){this.c=1//这是给实例初始化的}fun(){ //对于方法这里定义的是A原型上的属性}}
1 arr.push() 从后面添加元素,返回值为添加完后的数组的长度letarr=[1,2,3,4,5]console.log(arr.push(5))//6console.log(arr)//[1,2,3,4,5,5]2 arr.pop() 从后面删除元素,只能是一个,返回值是删除的元素letarr=[1,2,3,4,5]console.log(arr.pop())//5con
Promise这是ES6中增加的一个处理异步的对象。传统变成写异步函数的时候,经常会遇到回调套回调: Promise是异步编程的一种解决方案,比传统的解决方案-----回调函数和事件-----更加合理和强大。所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操
一、新增flags属性ES6为正则表达式新增了flags属性,会返回正则表达式的修饰符。//ES5的source属性//返回正则表达式的正文/abc/ig.source//"abc" //ES6的flags属性//返回正则表达式的修饰符/abc/ig.flags//'gi' 二、构造函数的变化在ES5中,RegExp构
今日内容es6的语法let特点:1.局部作用域2.不会存在变量提升3.变量不能重复声明const特点: 1.局部作用域2.不会存在变量提升3.不能重复声明,只声明常量不可变的量模板字符串tab键上面的反引号${变量名}来插值letname='未来';letstr=`我是${name}`
ES6引入的模板字符串(templatestring)是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。//普通字符串`stringtextline1`//多行字符串`stringtextline1stringtextline2`//字符串中嵌入变量let
//Array.from把类数组转成真正的数组 //Array.fo把一组数据转成数组 //copyWithin将数组内部指定的元素复制到指定的目标位置 //配合forof----->keys打印数组的下标------>values打印数组的值------>entries------->打印数组的下标和值 //find----
遇到SyntaxError:Unexpectedtokenimport如何解决???究其原因是nodees6问题这还不够,因为我们没有去配置babel,所以我们需要在.babelrc去做一下presets的配置,在此之前我们需要安装一下babel插件。npmibabel-cli-gnpmibabel-core-gnpmibabel-preset-es2015--s
1.打开终端,输入初始化代码。输入代码之后会在目录中出现package.json,可以在红色下划线上写上作者名和描述(不写也可以)npminit-y       2.安装Babel转换器npminstall-gbabel-cli    3.安装打包(es5) npminstall--save-devbabel-preset-es
ES6: ECMA第六次改版 块级作用域: 凡是被{}包裹住的代码都是块级作用域,除了对象   特点:会造成一个暂时性死区  新增声明变量的两种方式:let:   a.不能重复被定义  b.没有变量声明提升  c.有块级作用域的用法,可以在块级作用域里做个保留  con
一、CommonJS(同步加载模块)允许模块通过require方法来同步加载所要依赖的其他模块,然后通过exports或者module.exports来导出需要暴露的接口。使用方式://导入require('module');require('../app.js');//导出exports.getInfo=function(){};module.exports=someValue;CommonJS必
字符串的拓展与新增方法字符串拓展字符串的表示法论表示一个字符我们可以使用的方法有什么?'\z'==='z' ue'\172'==='z' ue'\x7A'==='z'ue'\u007A'==='z'ue'u{7A}'==='z'
letsentence =`Hello,mynameis${myname}`其中`用来定义ES6中的模板字符串,${expr}用来在模板字符串中嵌入表达式。
.ejs是express的模版引擎终端命令行express-e.express表示脚手架引擎-e表示执行express.表示在当前目录执行tasks目录下
ES的全称是ECMAScript,它是由ECMA国际标准化组织制定的一项脚本语言的标准化规范。letlet关键字就是用来声明变量的使用let关键字声明的变量具有块级作用域结构箭头函数扩展运算符 
ES6中的Set数据结构Set在ES6中提供了新的数据结构Set,该数据结构类似数组,但是成员的值都是唯一的,没有重复的值。如果遇到重复的成员,Set结构不会添加重复的值。Set本身就是一个构造函数,用来生成Set数据结构。consts=newSet();[2,3,5,4,5,2,2].forEach(x=>s.