美文网首页
Javascript常识

Javascript常识

作者: Ericgogo | 来源:发表于2018-08-21 21:37 被阅读0次

    这里是JavaScript开发者必须掌握的常识:

    1. 所有全局变量都是window对象的属性。
    var a = 1
    等效于:
    window.a = 1
    
    1. var变量存在“变量提升”现象, let不会。
    console.log(a);    //undefine
    var a = 1;
    //let
    console.log(a);    // //抛出异常:Uncaught ReferenceError: a is not defined
    let a = 1;   
    
    1. var变量的声明会被提升,但是初始化不会提升。
    console.log(a);    //undefine
    var a = 1;
    //等效于
    var a;
    console.log(a);    //undefine
    a = 1;
    
    1. 函数声明也会提升。
    2. 函数声明会覆盖变量声明,但是不会覆盖变量初始化
    alert(typeof value);    //"function"
    function value(){
       return 1;
    }
    var value;
    alert(typeof value);    //"function"
    
    alert(typeof value);    //"function"
    function value(){
       return 1;
    }
    var value = 1;
    alert(typeof value);    //"number"
    
    1. 函数的arguments是对函数实参的引用,改变arguments会改变实参内容。
    function b(x, y, a) {
        arguments[2] = 10;
        alert(a);            //10
    }
    b(1, 2, 3);
    
    1. 函数中的this参数:对象中的方法,this就是函数所在的对象;全局函数的this是window。
    var object = {
        method: function() {
            alert(this === object);    //true
        }
    }
    object.method();
    //
    function method() {
        alert(this === window);    //true
    }
    method();
    
    1. 函数调用call()方法,实现函数成为另一个对象的函数,call()传的第一个参数变成这个函数的this,同时,后续参数作为传给函数。
    var obj = {};
    
    function method(x) {
       alert(this === obj);
       console.log(x);
    }
    method(10);         //false
    method.call(obj, 10);    //true
    

    如果call()中没有参数,或者为null或者undefined,那么默认为window。


    ....未完待续

    相关文章

      网友评论

          本文标题:Javascript常识

          本文链接:https://www.haomeiwen.com/subject/ebksiftx.html