• [学习笔记]Javascript的包装对象


    例子1:

    var s="test";
    s.len = 4;
    var t = s.len // t is undefined
    

    原因是s是字符串,第二行代码,实际上是创建一个临时字符串变量,并给其len属性赋值为4,第三行代码通过原始的字符串值创建一个新的字符串对象,然后再去读len属性,当然就没有了啦。

    例子2:

    var s ="hello,world";
    var word = s.substring(6,s.length);//"word"
    

    字符串不是对象,怎么会有属性呢?只要引用了字符串s的属性,Javascript就会将字符串值通过调用new Sring(s)的方式转化成对象,这个对象继承了字符创的方法。

    例子3:

    var s =  new String("javascript");
    var len = s.length; //len = 10
    

    这个属性显式地new了一个对象实例。

     ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    存取字符串,数字或者布尔值的属性时创建的临时对象称作包装对象,可以通过String(),Number()或Boolean()构造函数来显式创建包装对象。var s = "test"; n = 1; b = true;

    var S =  new String(s);
    var N = new Number(n);
    var B = new Boolean(b);
    
    s == S; //true
    n == N; //true
    b == B; //true
    
    s === S; //false
    n === N; //false
    b === B; //false
    typeof(s) //"string" typeof(S) //"object" typeof(n) //"number" typeof(N) //"object" typeof(b) //"boolean" typeof(B) //"object"

    Javascript会在必要时将包装对象转化成原始值。“==”等于运算符就将原始值和其包装对象看成相等,但“===”就得比较是否相同类型,相同值才行。 

      

  • 相关阅读:
    Swift_数据存储
    Swift_零碎知识
    Flutter安装与使用
    供热
    iOS_2022_动画
    依赖管理
    Swift_协议
    Swift_网络请求
    数据转换的使用
    Map相关、MapUtils、MultiMap、LazyMap、BidiMap
  • 原文地址:https://www.cnblogs.com/fanbi/p/7202671.html
Copyright © 2020-2023  润新知