飞行的猪哼哼

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1:变量声明:
var 声明的变量不存在的时候返回notdefind,let声明的变量如果不存在则报错,也就是let没有预编译的功能。const声明的变量,不但不允许提前访问,而且也不允许修改。

 // 1:var let connst 的区别
        console.log(iNum1);
        var iNum1  = 10
        结果是notdefind
        console.log(iNum2);
        let iNum2 = 10;
        结果报错
        console.log(iNum3);
        const iNum3 = 10;
        结果也会报错
        const iNum4 = 10;
        iNum4 = 30;
        结果也会报错

2:ES6的对象的写法:
支持使用之前的变量。

var name = '小明';
        var age = 20;

        var oObj = {
            name,
            age,
            fnGetName:function(){
                alert(this.name);
            }
        }
        oObj.fnGetName();

3:ES6的箭头函数:

//3:ES6的箭头函数:
        var fnTest= ()=>{
            alert("哈哈哈");
        }
        //一个参数的写法:
        var fnTest2 = a =>{
            alert(a);
        }
        //多参数的写法
        var fnTest3 = (a,b)=>{
            return a + b;
        }

4:改变this的指向
如果层级比较深的时候, this的指向就变成了window, 这时候就可以通过箭头函数解决这个指向的问题。

 window.onload = function(){
            name = "小芳"
        }
var oObj2 = {
            name:'小明',
            fnAlert:function(){
                setTimeout(function(){
                    alert(this.name);
                },3000);
            }
        }
        oObj2.fnAlert();

此时oObj2的结果是name= 小芳,因为this.name指向变了。

 var oObj = {
            name:'小明',
            fnAlert:function(){
                setTimeout(()=>{
                    alert(this.name);
                },1000);
            }
        }

这样写就会正常输出。

posted on 2020-08-30 19:01  飞行的猪哼哼  阅读(51)  评论(0)    收藏  举报