当前位置: 首页 > 编程笔记 >

JavaScript包装对象使用详解

周鸿云
2023-03-14
本文向大家介绍JavaScript包装对象使用详解,包括了JavaScript包装对象使用详解的使用技巧和注意事项,需要的朋友参考一下

  JavaScript对象是一种复合值:它是属性和已命名值的集合。通过"."符号来引用属性值。当属性值是一个函数时,称为方法。

①一段你常用但却未必明白其真正底层原理的代码:

var s = "hello world!";
var word = s.substring(s.indexOf(" ")+1,s.length);
 

  如前面所说,这里变量s只是一个字符串原始类型,它怎么会有属性(s.length)和方法(s.indexOf()、s.substring())呢?没错,这正跟我们正要介绍的包装对象有关。原因是:只要引用了字符串s的属性,JavaScript就会将字符串值通过调用new String(s)的方式转换成对象,这个对象继承了字符串(String)对象的方法,并被用来处理属性的引用。一旦属性引用结束,这个新创建的对象就会被销毁。

  同字符串一样,数字和布尔值也有各自的方法:通过Number()和Boolean()构造函数创建一个临时对象。存取字符串、数字或布尔值的属性时创建的临时对象就是包装对象。5种原始类型中的剩余两种null和undefined没有包装对象:访问它们的属性会造成一个类型错误(Uncaught TypeError)。明白了上面的代码,那么再看如下代码:

var s = "test";
s.len = 4;//给它设置一个属性
var t = s.len;

  不认真的同学这里就会认为最后t就是等于4了。难道最后t不等于4吗?是的,最后t的值是undefined。想知道为什么请看继续看解析:原来以这里第二行代码只是创建了一个临时字符串对象,并给len属性赋值为4,随即销毁这个对象。而第三行又是通过原始字符串s创建一个新字符串对象(这个不是第二行代码创建的对象,第二行代码创建的对象已经被销毁了)并尝试读取其len属相,这个属性自然不存在,因此表达式的结果为undefined。这段代码说明了在读取字符串、数字和布尔值的属性值或方法(实际上是它们对应包装对象的属性值或方法)表现的像对象一样。但如果你试图给属性赋值,则会忽略这个操作:修改只是发生在临时对象身上,而这个临时对象并不会继续保留下来。

  注意:可通过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);//一个布尔对象

  JavaScript会在必要时将包装对象转换成原始值,因此上段代码中的对象S、N和B常常但不总是表现的和值s、n和b一样。"=="等于运算符将原始值和其包装对象视为相等,但“===”全等运算将它们视为不等。通过typeof运算符也可以看到原始值和其包装对象的不同:

    ①typeof(s);  ->"string"
     typeof(S);  ->"object"
    ②typeof(n);  ->"string"
     typeof(N);  ->"object"
    ③typeof(b);  ->"string"
     typeof(B);  ->"object"

以上所述就是本文的全部内容了,希望大家能够喜欢。

 类似资料:
  • 本文向大家介绍javascript self对象使用详解,包括了javascript self对象使用详解的使用技巧和注意事项,需要的朋友参考一下 Javascript self对象指窗口本身,它返回的对象跟window对象是一模一样的,也正因为如此,window对象的常用方法和函数都可以用self代替window,本文章向大家介绍self对象的使用方法和实例, 我们知道,打开任何一个网页,浏览器

  • 本文向大家介绍使用ajax操作JavaScript 对象详解,包括了使用ajax操作JavaScript 对象详解的使用技巧和注意事项,需要的朋友参考一下 通过请求获取充分格式化的HTML虽然很方便,但这也意味着必须在传输文本内容的同时也 传输很多HTML标签。有时候,我们希望能够尽量少传输一些数据,然后马上处理这些数据。在 这种情况,我们希望取得能够通过JavaScript进行遍历的数据结构。

  • 本文向大家介绍JavaScript中的包装对象介绍,包括了JavaScript中的包装对象介绍的使用技巧和注意事项,需要的朋友参考一下 javascript对象是一种复合值,它是属性或已命名的值的集合,通过符号"."来引用属性值,当属性值是一个函数的时候,我们称之为方法。我们看到字符串也具有属性和方法: 字符串既然不是对象,为什么它又有属性呢,只要引用了字符串s的属性,javascript就会将字

  • 定义 对象是 JavaScript 语言最主要的数据类型,三种原始类型的值——数值、字符串、布尔值——在一定条件下,也会自动转为对象,也就是原始类型的“包装对象”(wrapper)。 所谓“包装对象”,指的是与数值、字符串、布尔值分别相对应的Number、String、Boolean三个原生对象。这三个原生对象可以把原始类型的值变成(包装成)对象。 var v1 = new Number(123)

  • 对象包装器是实现了 freemarker.template.ObjectWrapper 接口的类。它的目标是实现Java对象(应用程序中特定类等,比如 String, Map,List 实例)和FTL类型系统之间的映射。换句话说, 它指定了模板如何在数据模型(包含从模板中调用的Java方法的返回值)中发现Java对象。 对象包装器作为插件放入 Configuration 中,可以使用 object

  • 本文向大家介绍JavaScript Array对象详解,包括了JavaScript Array对象详解的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Js的Array 数组对象,具体内容如下 目录 1. 介绍:介绍 Array 数组对象的说明、定义方式以及属性。 2. 实例方法:介绍 Array 对象的实例方法:concat、every、filter、forEach、indexOf、join、