爱的故事(上集)
星的光点点洒于午夜 人人开开心心说说故事

es6的一些知识点

前言:es6(ECMAscript2015)标准

let、const、var的一些区别
  • let、const 块级作用域、全局作用域、函数作用域
  • var 全局作用域、函数作用域
变量提升的问题:
var        :  true
let、const : false

例子:

console.log(a);//undefind
let a=1;					 

块级作用域:例如在一个函数,for循环。。。区块之内!
const 常量,值不可更改。
let、var 变量,值可以更改

严格模式
  • 消除Javascript语法的一些不合理、不严谨之处,减少一些怪异行为;

  • 消除代码运行的一些不安全之处,保证代码运行的安全;

  • 提高编译器效率,增加运行速度;

  • 为未来新版本的Javascript做好铺垫。

"严格模式"体现了Javascript更合理、更安全、更严谨的发展方向,包括IE 10在内的主流浏览器,都已经支持它,许多大项目已经开始全面拥抱它。

“use strict”
模板字符串(Template Strings)
  • 规定了一种新的string方法可用 `` 斜引号来创建字符串的代码块
  • 绑定变量用${}来绑定。
let name="xiaosan";
        let age=22;
        let home="china"
        let str1=`she's name ${name},
        she age ${age},
        she homes's ${home}`
        alert(str1)
  • 字符串内可直接换行
let str1=`she's name ${name},
        she age ${age},
        she homes's ${home}`
        alert(str1)
  • 标签模板字符串。
function tag(strings,...args){    //...扩展运算符
           //console.log(strings);
           //console.log(args);
           let str='';
           for(var i=0,l=strings.length-1;i<l;i++){
                str=str+strings[i]+args[i];
           }
           str+=strings[l];
           return str
       }
       let name1="xiaomi";
       let age1=23;
       let str3=tag`
        she's nam1 ${name1}
        she age ${age1}
       `
       console.log(str3)
增强的对象字面量(自变量)
  • 对象属性能够简写;
  • 对象方法可以简写function关键字
let name="张三";
        let age=22;
        let zhangshan={
            name,
            age,
            runing(){
                console.log("我会跑")
            }
        }
  • 对象属性名可以书写自动计算形式
  • 原型继承__proto__
 let people={
            eat(){
                console.log("我会吃")
            },
            speak(){
                console.log("我会说话")
            },
            feeling(){
                console.log("我有感情")
            }
        }
        let caowei={
            name:name,
            __proto__:people,//设置对象原型,用来继承
            study(){
                console.log("I have sutying ok!")
            }
        }
        console.log("my name's"+caowei.name)
        caowei.study();
        caowei.eat();
        caowei.speak();
        caowei.feeling();
         console.log(caowei)
解构赋值
  • es6允许我们按照一定结构提取数组与对象里的值,赋给变量
  • 函数的解构赋值
  • 说的明白一点解构赋值它的类型就是数组跟对象
    例子
//数组
        let [a,,c]=[1,2,3];
        console.log(a,c)
//对象
        let obj={
            x:1,
            y:2
        }
        let {x,y}=obj
        console.log(x,y)//1 2
//函数操作
//函数传对象

        function fn(person){
            let name=person.name;
            let age =person.age;
            console.log(name,age)
        }
        let aa={name:"xiaosan",age:18}
        fn(aa)*/
       /* function fn({uname:name,age,sex="女人"}){
            console.log(name,age,sex)
        }
        let bb={uname:"xiaosan",age:18}
        fn(bb)*/
        //es5 函数传数组
        /*function fn(Arr){
            let x=Arr[0];
            let y=Arr[1];
            let z=Arr[2];
            console.log(x,y,z)
        }*/
        /*function fn([x,y,z,d=22]){
           
            console.log(x,y,z,d)
        }
        let arr=[9,5,8]
        fn(arr)
//字符串解构赋值

        let str="123456";
        let [a,b,c,d,e,f,g=50]=str;
        console.log(a,b,c,d,e,f,g)

这就是es6的一些简单认知,未完待续...

posted on 2017-07-11 21:14  爱的故事(上集、)  阅读(140)  评论(0编辑  收藏  举报