美文网首页
javascript学习笔记--包装类和String方法

javascript学习笔记--包装类和String方法

作者: 持续5年输出bug | 来源:发表于2018-10-21 22:33 被阅读0次

    主要点:
    1.浏览器提供的三个包装类String()Number()Boolen()
    2.包装类是浏览器底层自己使用的,将基本数据类型临时转换成对象
    3.字符串的存储原理:var a ="hollo world" => ["h","o","o","l“...]

    基本数据类型:
    String,Boolen,Number,Null,Undefined,
    引用数据类型:
    Object

    js中为我们提供了三个包装类,可以通过这三个包装类将数据类型转换为对象,
    String():可以将字符串转换为String对象;
    Number():可以将数字转换为Number对象;
    Boolen():可以将布尔值转换为Boolen对象;

        var a=123;
        var num =new Number(3);
        console.log(typeof num);
        console.log(num);
        console.log(typeof a);
        console.log(a);
    

    打印结果:


    image.png

    但是写代码时不会使用以上方法,包装类仅仅是浏览器底层自己使用的

    虽然方法和属性只能添加给对象,不能添加给基本数据类型,但是:

        var a =123;
        console.log(a);
        console.log(typeof a) ;
        a=a.toString();
        console.log(a);
        console.log(typeof a) 
    
    image.png

    以上里不报错,是因为当对基本数据类型的值调用属性和方法时,浏览器会临时使用包装类将其转换为对象,再去调用对象的属性和方法即以上代码块实际为:

    将a 转换为Number对象
    var a =new Number();
    然后去调用toString()方法,在这里调用完以后将其转换为基本数据类型(临时性)
    a=a.toString();

    临时性的意思
    以下代码不报错,但是打印undefined:

        var a= 123;
        a.hollo="你好";
        console.log(a.hollo)
    

    原因在于,,首先将a转换为对象 var a= new String();然后将holl 属性添加到a 对象中,然后销毁;当 console.log(a.hollo)时将原本的 基本数据类型a转换为对象,这两次转换的对象是截然不同的两个对象(对象内存地址不同,堆内存原理)

    字符串存储的原理

    var a ="holl"
    console.log(a.lenght);
    console,log(a[1]);
    
    image.png

    1.charAt方法可返回指定位置的字符。
    var a="hollo";
    var b=a.charAt(1)
    console.log(b)

    相关文章

      网友评论

          本文标题:javascript学习笔记--包装类和String方法

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