zoukankan      html  css  js  c++  java
  • 包装类——javascript

    首先了解一下js中的数据类型,js中的数据类型分为两大门派,原始数据类型和引用数据类型

     原始数据类型:boolean String number null undefined

     引用数据类型:object(其实就是对象)

    引用数据类型有自己的方法和属性,原始数据类型是没有的,但是在原始数据类型中有三个特殊的存在:String boolean number(也被称做基本包装类型),有自己对应的包装对象,并且有相应的属性和方法。

     创建一个字符串类型或者数字类型,然后使用字符串或者数字类型的方法时,后台就会悄咪咪的创建一个对应的基本包装类型的对象,这个基本包装类型的对象相对于new一个对象,在对象调用完后,就会被销毁,再去访问就是undefined,只是存在一瞬间,所以无法给基本包装类型添加方法(运用原型可以g给基本包装类型添加方法),举个例子:

    var str = 'hello';
    str.number = 10;  //假设给字符串添加number属性,后台的操作如下
    {
      var str = new String('hello'); //找到对应的包装类型对象,然后通过包装对象,创建一个和基本类型值相同的对象
      str.number = 10; //通过这个对象,调用包装对象的方法,没有被任何东西保存
      str =null; //这个对象被销毁
    }
    alert(str.number); //undefined 运行到这一句话的时候,因为基本类型没有属性,重复上面的步骤,如下
    {
      var str = new String('hello');
      str.number = undefined;
      str =null;
    }

    再来看一个例子:

    var str = "abc";  //str = abc
    str += 1;  //str = abc1
    var test = typeof(str); // test = string
    if(test.length == 6){ //test为原始数据类型,添加上去会马上销毁
      test.sign = "typeof的返回结果是string";
    }
    console.log(test.sign); //所以最后输出结果为undefined

    记住一句话:

      不可改变的原始数据类型和可以改变的引用数据类型

    解释这句话的含义之前必须知道,对象运行作比较是比较地址的,我们现在来看看这句话的含义:不可改变的原始数据类型指的是不能改变它的地址,如果原始值发生改变,那么地址肯定会发生改变。引用数据类型发生改变后,地址并不会发生变化,所以引用数据类型是可以发生改变的。


  • 相关阅读:
    自动控制基础MATLAB 2
    钽电容和瓷片电容的对比
    自动控制原理基础 matlab 1
    Altium使用总结1
    Altium 各个层的作用
    C语言联合体的灵活运用
    windows清除日志
    Lingo 优化实例 出版社问题
    Lingo 0-1规划
    用CMD分类
  • 原文地址:https://www.cnblogs.com/jrrrrr/p/9297690.html
Copyright © 2011-2022 走看看