1. Vue - ES6

一、ES6部分知识点

1. 变量声明
<!-- var声明变量,导致变量提升 -->
var name = 'ruanyifeng'
function func(){
    console.log(name)
    if (false){
        var name = 'Bob'
    }
}
func()
----------
undifined

1227507-20190916170310135-1235583828.png

let:特点
(1)let声明不存在变量提升的问题
(2)let声明的变量只能在当前代码块生效
(3)let不能重复什么变量

var name = 'ruanyifeng'
function func(){
    console.log(name)
    if (false){
        let name = 'Bob'
    }
}
func()
----------
ruanyifeng
2. 常量
const
(1)声明的同时必须赋值
(2)不能修改
(3)同let一样只能在当前声明的代码块里生效
3. 模板字符串
python3.6:  
name = 'ruanyifeng'
str = f'my name is {name}'

js:
let name = 'ruanyifeng'
let str = `my name is ${name}`
4. 对象单体模式
let obj = {
    say:function(){
        console.log('Hello');
    }
}
obj.say()
----------
Hello
let objNew = {
    say(){
        console.log('Hello');
    }
}
objNew.say()
-----------
Hello
5. 箭头函数
(1) 箭头函数基本特点

​ 箭头函数this为父作用域的this,不是调用时的this。箭头函数的this永远指向其父作用域,任何方法都改变不了,包括call,apply,bind。普通函数的this指向调用它的那个对象。

let person = {
    name:'jike',
    init:function(){
        // 为body添加一个点击事件,看看这个点击后的this属性有什么不同
        document.body.onclick = ()=>{
            // this在浏览器默认是调用时的对象,可变的?   
            alert(this.name);               
        }
    }
}
person.init();

备注:init是function,以person.init调用,其内部this就是person本身,而onclick回调是箭头函数,
其内部的this,就是父作用域的this,就是person,能得到name。
let person = {
    name:'jike',
    init:()=>{
        // 为body添加一个点击事件,看看这个点击后的this属性有什么不同
        document.body.onclick = ()=>{
            // this在浏览器默认是调用时的对象,可变的?  
            alert(this.name);                
        }
    }
}
person.init();

备注:init为箭头函数,其内部的this为全局window,onclick的this也就是init函数的this,也是window,
得到的this.name就为undefined。

二、ES6推荐链接

http://es6.ruanyifeng.com/
https://www.cnblogs.com/mengff/p/9656486.html

转载于:https://www.cnblogs.com/hq82/p/11487393.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值