• 读js语言精粹收获


    1.js可以根据选择跳出多层循环【在循环前加个标签】

    label:for(var i=0;i<2;i++){
                for(var j=0;j<10;j++){
                    console.log(i,j);
                    if(j==3){
                        break label;
                    }
                }
            }

    2.typeof运算符产生的值只有'number','undefined','string','boolean'【es5的基础数据类型少了一个null】+'function','object'

    注:array和null结果都为'object'

    需要依靠Object.prototype.toString.apply()

    3.如果添加一个属性到一个原型对象中,以该原型创建的对象均可见

    4.Number String的原型对象都是Function,因为它们都是单个函数实例,而Function是所有函数的原型对象。

    5.如果新建新的方法去修改闭包内的数据,是行不通的,但是可以使用闭包内的方法去修改

    var maker=function(){
        var id=12312;
        
        return {
            setId:function(newid){
                id=newid;
            }
            show:function(){
               console.log(id);
           }
        }
    }    
    
    var unit=maker(); 
    unit.setId(1111);
    unit.show(); //1111
    unit.setId2=function(newid){//新建函数去修改id
                id=newid;
            }
    unit.setId2(2222);
    unit.show();//1111

     6.arguments压根不是数组  只是数据集合外加一个length属性,不可以使用数组所用的方法

    所以要使用数组的方法需要使用apply和call方法,slice.apply(arguments);

  • 相关阅读:
    A
    B
    C
    I
    公共最大字串长度
    docker run 的背后的故事(zz)
    python之多并发socket(zz)
    Python垃圾回收机制:gc模块(zz)
    我要做的git的分享(zz)
    SpringMVC框架入门配置 IDEA下搭建Maven项目(zz)
  • 原文地址:https://www.cnblogs.com/kiik/p/14220438.html
Copyright © 2020-2023  润新知