ES6

Posted tianpeng2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ES6相关的知识,希望对你有一定的参考价值。

1、变量和常量
    let    const
        
let hello = "hello world";
    
    特点:1.1 没有声明提升了
              1.2 块级作用域; (大括号作用域) 
              1.3 TDZ 暂时性死区
        在变量声明前的所以区域;不能使用该变量的名称;一但使用就报错;
        1.4 for  和  let  的配合;
            
if(true){
    //console.log(a);
    let a = 10;
}
console.log(a);
 
for(var i = 0; i < 10 ; i++){
    (function (i){
    setTimeout (function(){
        console.log(i);
    })
})(i)
}
 
for(let i = 0; i < 10; i++){
    console.log(i);
    setTimeout(function(){
    console.log(i);
})
}
 
常量; 规范而言常量都有求纯大写变量名;
    
const HELLO = "hello world";
console.log(HEELO);
HELLO = 10;
 
常量一般用于引用类型;
模块化的时候通常使用常量去进行定义;
 
    2    解构赋值
                    批量赋值:
                           1、 数组赋值;
                            2、对象赋值;
                            3、...   (剩余运算符)
    part 1 
    
let [a,b,c,d,e,f,g] = [1,2,3,4,5,6,7];
console.log(a,b,c,d,e,f,g);
 
    剩余运算符
    
let [a,b,...g] = [1,2,3,4,5,9,7,8,];
console.log(a.b.g);
 
    part  2 
    
var a = window.alert;
a("hello world");
let {alert} = window;
let alert = window.alert;
 
var obj = {
    fn1 : function (){
        alert("i" m fn1)
    },
    fn2 : function(){
        alert("i" m fn2)
    },
    fn3 : function (){
        alert ("i" m fn2)
    }
}
 
var fn2 = obj.fn2;
var fn1 = obj.fn1;
var fn3 = obj.fn3;
 
let {fn1,fn2,fn3} = obj ;
console.log(fn1,fn2,fn3);
 
 
对象赋值中的扩展运算符;
    
let obj1 = {a : 1 ,b : 2};
let obj2 = {...obj1, c : 1}
console.log(obj2); 
 
字符串; 字符串模板
    1.支持换行;
        var hello = "hello world";
        var html = `
                                <ul>
                                        <li></li>
                                        <li>${hello}</li>
                                        <li></li>
                                        <li></li>
                                </ul>
                                `;
                        console.log(html);
 
    4.箭头函数:
        1、没有大括号的箭头函数;
            
        
let foo = a => a +1
console.log(foo(10))
 
        2、带有大括号的箭头函数
        
let foo = (a) => {
    return a + 1;
    }
console.log(foo(10))
 
    3、不同 : 没有原型,不可以new 
    4、 不同 : 自动绑定this;
let foo = () = > {
 
}
var foo = function(){
 
}.bind(this);
 
            var obj = {
                  fn : function(){
                        setTimeout( ()=>{
                              console.log(this);
                        } , 1000)
 
                        // setTimeout(function(){
                        //       console.log(this);
                        // }.bind(this),1000)
                  }
            }
            obj.fn();
 
 

以上是关于ES6的主要内容,如果未能解决你的问题,请参考以下文章

webengineview支持es6吗

20分钟上手ES6,不会ES6好意思说自己会JS ?

什么是ES6?

ES6基础5--ES6新特性

es6的循环方法

es6解构赋值