Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与基本值相反,数字/布尔/字符串对象的用途是什么?_Javascript - Fatal编程技术网

Javascript 与基本值相反,数字/布尔/字符串对象的用途是什么?

Javascript 与基本值相反,数字/布尔/字符串对象的用途是什么?,javascript,Javascript,在javascript中,可以将函数作为函数或构造函数调用。例如,您可以执行以下操作: myObject = new Number(13); myPrimitiveValue = Number(13); 或者干脆 myPrimitiveValue = 13; 我理解结果之间的差异。你能告诉我在什么合理的情况下创建一个数字、布尔值或字符串作为对象是可取的吗?例如,对于包含number/boolean/string的对象,设置新属性(这是可以对对象执行的操作,但不能对基本值执行的操作)几乎总是一

在javascript中,可以将函数作为函数或构造函数调用。例如,您可以执行以下操作:

myObject = new Number(13);
myPrimitiveValue = Number(13);
或者干脆

myPrimitiveValue = 13;

我理解结果之间的差异。你能告诉我在什么合理的情况下创建一个数字、布尔值或字符串作为对象是可取的吗?例如,对于包含number/boolean/string的对象,设置新属性(这是可以对对象执行的操作,但不能对基本值执行的操作)几乎总是一个坏主意。为什么我需要一个数字/布尔/字符串对象?

您很少需要为基本数据类型创建对象

从的Microsoft文档中:

“Number对象是的包装器 数字数据。主要用于 Number对象用于收集其 将属性转换为一个对象并 允许将数字转换为 通过toString方法生成的字符串 Number对象类似于 数字数据类型。但是,它们具有 不同的性质和方法

你很少需要构造一个数字 对象。数据的编号 在大多数情况下应使用类型 情况。因为数字对象 与数字数据进行互操作 类型、所有编号对象方法和 属性可用于变量 “类型编号。”


谢谢你,这是有道理的。不过这有点奇怪,你不觉得吗?考虑其他脚本语言,例如Lua,在那里没有任何类似的东西,表(JScript对象的类似物)是一个表,数字/字符串/布尔是数字/字符串布尔。当然,比较非常不同的语言是不公平的,但是javascript采用这种方式是很奇怪的。阅读ECMAScript规范时,我有一种明显的感觉,那就是它是在factum之后编写的,描述了一些已经存在的实现。@zespri:也许包装器的灵感来自Java中类似的包装器,但它们在脚本语言中没有那么大的用处。您是对的,该规范基于现有的实现,Javascript于1995年12月发布,该规范于1997年6月采用。