前端零散笔记

  1. js中,调用Object.prototype.toString.call(a)和调用a.toString()结果不同,除非a是一个对象。

  2. 解构赋值

    let {a,b,...c}={a:1,b:2,u:3,v:4};
    console.log(c);//{u:3,v:4}
    
  3. ...

    var a=(function(x){
        delete x;
        return x;
    })(2);
    console.log(a);//2
    
  4. ...

    var a=1;
    console.log(global.a);//undefined
    console.log(delete a);//false
    console.log(typeof a);//number
    console.log(a);//1
    /*原因:使用var声明的变量有一个名为[[Configurable]]的特性,
    且被设置为false,因此不能通过delete操作符删除,会返回false*/
    
    a=1;
    console.log(global.a);//1
    console.log(delete a);//true
    console.log(typeof a);//undefined
    console.log(a);//ReferenceError: a is not defined
    
  5. ...

    var a={},
        b={key:'b'},
        c={key:'c'};
    a[b]=123;
    a[c]=456;
    console.log(a[b]);//456
    console.log(a);//Object {[object Object]: 456}
    

    原因:a[variable]相当于给对象a添加了一个属性,而属性的key就是variable.toString()的结果,Object类型的b和c的b.toString()c.toString()的结果均为"[object Object]",所以a[c]就会把a[b]覆盖

  6. 在任何值上调用Object原生的toString()方法,都会返回一个"[object NativeConstructorName]"格式的字符串。每个类在内部都有一个[[Class]]属性,这个属性中就指定流量上述字符串中的构造函数名。(与第一点中的照应)。

  7. 在对非数值应用一元加操作符时,该操作符会像Number()转型函数一样对这个值执行转换。

  8. Number()转型函数规则

  9. 添加动态脚本
    document.write(),接收一个字符串,且要写成

你可能感兴趣的:(前端零散笔记)