简单了解ES6的语法

ES6的部分语法

const
const 用来定义一个不改变的常量,一旦用const定义,就不能更改,若强制更改会报错。
const Pi = 3.14;
let
用let来定义一个块级作用域,只有在这个作用域内let声明的变量才存在,在这个作用域外部访问声明的变量会报错
for(let i= 0 ; i<5 ;i++){
    console.log(i)
}
console.log(i)
for循环会输出0 1 2 3 4   ;在for循环外的会报错  i is not defined
箭头函数
定义形式 :var test =  ()=> {  //处理程序 }
传参数: var test = (a,b) => { // 处理程序 }

var name="jack";
var obj = {
    name:'rousi',
    test:function(){
        var test1 = ()=>{
            console.log(this.name)  //obj
        }
        test1()
    },
    test:function(){
        var test2 = function(){    
            console.log(this.name)  //window
        }
        test2();
    },
    test3:function(){
       console.log(this.name)  //obj
    },
}
obj.test3();

与ES5函数的区别: 箭头函数中的this都是指向obj的,而ES5中的this得看调用者是谁才能指向谁。
函数的默认值
在ES6的语法中,我们可以给函数的形参设置默认值;
function ab(a=1,b=2){
    return a+b;
}
ab()  //3
ab(5,6) //11
解构
var data = {name: 'jack',age:18,sex:'男'}
var {name,sex,age} = data
alert( name ) // jack
反引号 `
在ES5中,一个变量是不能赋值为多行字符串的,因为js的换行符不仅有分号还有回车,如果要写多行字符串就要拼接。例如:
var html = '<ul>'
html += '<li>内容</li>'
html += '</ul>'

在ES6中,反引号可以处理多行字符串  

var str = `aa
                bb
`;
在``中间我们也可以使用变量,变量名要用${}包裹:例如
var name="jack";
var str = `aa
    bb${name}cc
`
console.log(str)
   可以输出 :
    aa
    bbjackcc
Promise
在ES6语法中,提供了Promise对象来实现JS中异步的处理,它可以把异步变为同步:看下面的实例
new Promise(function(res){
    setTimeout(function(){
        console.log(1111);
        res()
    },2000)
}).then(function(){
        console.log(222)
})
上面是Promise将异步变为同步的基础语法,参数 res是必须要执行的,不然会起不到作用。
如果想将上一次的的返回值作为下一次的参数的话,就需要返回一个值,示例如下:
new Promise(function(res){
    setTimeout(function(){
        console.log(1111);
        res()
    },2000)
}).then(function(){
        console.log(222)
        return new Promise(function(res){
                res('要传递的参数')
        })
}).then(function(val){
    //这里的val就是接收的 return返回的 '要传递的参数'
})
posted @ 2017-07-26 16:44  rainbow8590  阅读(276)  评论(0编辑  收藏  举报