美文网首页JavaScript
javascript包装类

javascript包装类

作者: 啦啦啦_e26f | 来源:发表于2019-02-23 20:55 被阅读5次

    包装类

    基本数据类型:String,Number,Undefined,Boolean,Null
    引用类型:Object,Array,Date,RegExp
    只有对象才有属性和方法,原始值不能有属性和方法
    为什么平时开发中给原始值添加属性不会报错呢?
    代码分析:

         1.
         var num = 4;
         num.length= 3;
         console.log(num.length);//undefined
         //原始类型为啥添加属性不会报错呢,当我们num.length的时候,
         //内部隐式的发生一个过程,new Number(4).len = 3; 就是内部
         //会新建一个数字对象然后把4赋值进去,之后就会把这个对象delete
         //当我们访问num.length的时候,系统会再创建一个数字对象把
         //4赋值进去,这次的数字对象和上次的数字对像是两个对象(上次的已经销毁)
         //所以此时的数字对象并没有length属性,所以就返回undefined
         //这个隐式的中间环节就叫做包装类
         2.
         var str = "abcd";
         str.length = 2;
         console.log(str.length);//4
         //当我们str.length的时候,str并没有length属性,此时系统就会
         //new ("abcd").length = 2;然后销毁,当我们再去str.length的
         //时候,系统会new ("abcd").length,此时对象字符串有length属性
         //所有就返回4
    

    练习题:

         var str = "abc";
         str += 1;
         var test = typeof (str);
         if(test.length == 6){
            test.sign = "typeof的返回结果可能为String";
         }
         console.log(test.sign);//undefined
    

    相关文章

      网友评论

        本文标题:javascript包装类

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