• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
渴爱网のWebMaster 's Blog【Welcome to my website : KIIK.TOP 】
Go ahead man ! I just wanna achieve what i wanted man.
Tips:1.Do a excellent programmer who can hacking and build awesome program
     2.Became a designer who can make everything which nearby me looks like so charming.
博客园    首页    新随笔    联系   管理    订阅  订阅

读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);

 

posted @ 2021-01-01 17:34  kiik  阅读(75)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3