一、ECMAScript6和JAVAScript关系html
ES6是JAVAScript的规格,JavaScript是ES6的一种实现。es6
局部变量:letajax
它的用法相似于var,可是所声明的变量,只在let命令所在的代码块内有效。编程
全局变量:var数组
常量:const异步
const声明一个只读的常量。一旦声明,常量的值就不能改变异步编程
四、ES6定义变量的特色函数
描述:学习
变量提高:在区域内部定义的变量,在区域外部可使用,即变量能够在声明以前使用,值为undefinedthis
暂时性死区:只要块级做用域内存在let命令,它所在的变量就绑定了这个区域;再也不受外部的影响。
五、解构的基本语法
ES6容许按照必定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构
var{变量,变量2}=对象;
例:var user={ username:"jack", password:"1234", age:"18" } jack---18
六、函数参数名默认基本语法是?
function xx(a=默认值){ } //y参数设置默认值 function log(x, y = 'World') { console.log(x, y); } log('Hello') // Hello World log('Hello', 'China') // Hello China log('Hello', '') // Hello
七、箭头函数完整语法
var 函数名=(参数1,参数2,...)=>{ }
八、箭头函数this指向?
this老是指向外层调用者对象。
九、模版字符串的基本语法?
var str=`html任意内容`;
第一个用途,基本的字符串格式化。将表达式嵌入字符串中进行拼接。用${}来界定
const name'lux' console.log(`hello ${name}`)//hello lux
第二个用途,在ES5时咱们经过反斜杠()来作多行字符串或者字符串一行行拼接。ES6反引号(``)直接搞定。
//es5 var msg="Hi \ man!" //es6 const template =`<div><span>hello world</span></div>`
十、Promise异步调用基本语法结构?
Promise是异步编程的一种解决方案,有了Promise对象,就能够将异步操做以同步操做的流程表达出来,避免了层层嵌套的回调函数。
Promise完成ajax操做
... .then(res)=>{ }) .then(res)=>{ }) .catch(res)=>{ })
Promise问题场景
1)回调函数(把函数做为参数传递,就叫作回调函数)
简单说回调方法就是将一个方法func2做为参数传入另外一个方法func1中,当func1执行到某一步或者知足某种条件的时候才执行传入的参数func2,例以下面的代码段:
//当参数a大于10且参数func2是一个方法时 执行func2 function func1(a,func2){ if(a>10 && typeof func2 == 'function'){ func2() } } func1(11,function(){ console.log('this is a callback') }) 运行结果: this is a callback 注意:func2回到了func1函数中function参数函数。
2)异步操做
JavaScript也充斥着异步操做——例如ajax。
var username; setTimeout(function(){ username='linkFly'; ),1000};//1s后执行 console.log(username);//输入undefined
一段代码异步执行,后续的代码却须要等待异步代码的结果,若是打印结果在异步代码以前执行,就会如上面的console.log(name)同样,输出undefined,这并非咱们想要的效果
Promise优雅的修正了异步代码,如今使用Promise重写setTimeout的示例:
var username2; new Promise(function(resolve){ setTimeout(resolve,1000); }).then(function(){ username2="jack"; console.info(username2);//1秒后展现 })
这段代码完成了和以前一样的工做。代码console.log(name)正确的输出了jack
平常学习的总结,主要是为了本身之后看,固然你们有什么好的建议,欢迎评论留言。