课程目标
1、ECMAScript6和JAVAScript关系
ES6是JAVAScript的规格,JavaScript是ES6的一种实现。
变量声明:
局部变量:let
它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。
全局变量:var
常量声明:
常量:const
const声明一个只读的常量。一旦声明,常量的值就不能改变
4、ES6定义变量的特点
描述:
变量提升:在区域内部定义的变量,在区域外部可以使用,即变量可以在声明之前使用,值为undefined
暂时性死区:只要块级作用域内存在let命令,它所在的变量就绑定了这个区域;不再受外部的影响。
5、解构的基本语法
ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构
var{变量,变量2}=对象;
例:var user={
username:"jack",
password:"1234",
age:"18"
}
jack---18
6、函数参数名默认基本语法是?
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
7、箭头函数完整语法
var 函数名=(参数1,参数2,...)=>{
}
8、箭头函数this指向?
this总是指向外层调用者对象。
9、模版字符串的基本语法?
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>`
10、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
日常学习的总结,主要是为了自己以后看,当然大家有什么好的建议,欢迎评论留言。