新字符串的类型(“aaa”)==;对象“;?一切事物都是一个对象,但也有原始类型
typeof new String("aaa") === "object"? Everything is an object, but there are primitive types?
会有很多问题需要澄清,所以我会尝试用数字标记它们,以便更容易回答。
最近我一直在学习javascript。有一个主题是关于";一切都是物体";。
-
在我的";javascript的解释";这意味着一切都有";对象";在其原型链的开端。这是正确的吗?
-
但是基元类型(
string
、number
、boolean
、null
、undefined
)呢?它们是物体吗?例如,我可以调用"aaa".length
。这是怎么回事? -
函数是根据此实现[[Call]]的对象。这是什么意思?(我觉得这很有趣。调用(this,arg1),但请帮助我理解这一点。
还有
typeof
运算符。我以前从MDN链接过它,但有些事情令人困惑。 -
8和CCD_ 9。这似乎是意料之中的事,但String("aaa")返回的是什么?我猜它会以某种方式解析输入,并从中返回一个字符串原语。这是正确的吗?
-
typeof new String("aaa") === "object"
什么?请向我解释一下它的原型链;aaa";基元字符串值?它与typeof String("aaa")
有何不同?
我读了很多关于这个主题的东西,我想我需要澄清这些。
同样在你的回答中,如果你链接了一个外部资源,请总结它的重要部分,并说明它的含义,因为我一直在阅读ecmascript规范,它们很长:)。
此外,如果javascript的版本存在差异,请说明这一点。
1''在我的"javascript解释"中,这意味着一切都在原型链的开头有"对象"。这是正确的吗?
是和否。默认情况下,所有对象都继承自Object
。使用ES5的Object.create
,可以有一个不继承自Object
的对象,但它仍然是对象。
2''但是基元类型(字符串、数字、布尔值、null、未定义)呢?它们是物体吗?例如,我可以称之为"aaa"长度。这是怎么回事?
在JavaScript中,一切都是一个对象,这是一种误解。基本体不是对象,但它们可以转换为对象。使用.
运算符时,左操作数将转换为对象(如果可能)。
3''函数是根据此实现[[Call]]的对象。这是什么意思?(我觉得这很有趣。打电话给(这个,arg1),但帮我理解一下。
[[Call]]
是ECMAScript实现用来将对象标记为函数的内部方法。它与Function.prototype.call
没有直接关系,CCD_17本身也是一个用[[Call]]
标记的函数。参见13.2.1[[呼叫]]。
4'' typeof"aaa"==="string"和typeof string("aaa")==="字符串"。这似乎是意料之中的事,但String("aaa")返回的是什么?我猜它会以某种方式解析输入,并从中返回一个字符串原语。这是正确的吗?
String()
在不用作构造函数时,会将其参数转换为字符串基元。因此CCD_ 20与CCD_。在这种情况下,这是多余和不必要的。
5''typeof new String("aaa")==="object"什么?请向我解释一下它的原型链。我在哪里以及在哪个原型上有"aaa"原始字符串值?它与字符串类型("aaa")有何不同?
用作构造函数的String()
返回一个继承自String()
的对象,正如您所期望的那样。字符串基元和字符串对象是有区别的。
当你对某件事感到困惑时,几乎所有的问题都可以通过阅读说明书来回答。为了方便起见,有一个注释版本的规范可在线获取。
1''在我的"javascript解释"中,这意味着一切都有"对象"在其原型链的开头。这是正确的吗?
答:不,正如你在问题2中所说,也有原始类型。
2''但是基元类型(字符串、数字、布尔值、null、,未定义)?它们是物体吗?例如,我可以称之为"aaa"长度。怎样这样行吗?
答:不,它们是基本类型,而不是对象。当您调用"aaa".length
时,JavaScript将自动将字符串基元包装到string对象并调用该方法或执行属性查找。
3''函数是根据此实现[[Call]]的对象。什么这意味着什么?(我觉得这很有趣,arg1),但请帮助我理解这一点。
答:JavaScript中的每个函数实际上都是一个function对象。
4'' typeof"aaa"==="string"和typeof string("aaa")==="字符串"。这似乎是意料之中的事,但String("aaa")返回的是什么?我猜测它以某种方式解析输入,并从是的。这个对吗?
Ans:String("aaa")
返回一个基元字符串。
5''typeof new String("aaa")==="object"什么?请解释一下原型链。我在哪里以及在哪个原型上有"aaa"基元字符串值?它与typeof有何不同字符串("aaa")?
Ans:new String("aaa")
返回一个String对象。
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- AngularJS&JSON-从Previous&下一个对象
- jQuery$.inArray()总是返回-1和一个对象数组
- Javascript - 基元值的类型是一个对象
- 给定一个对象数组,创建一个函数,该函数返回一个 Object,该 Object 具有按类型分组的路径数组
- 新字符串的类型(“aaa”)==;对象“;?一切事物都是一个对象,但也有原始类型
- (javascript)是否可以将一个不同对象类型的数组拆分为一个对象类型的多个数组
- 类型错误:Node的参数1.appendChild不是一个对象
- 我正在通过一个端口从Elm应用程序传递一个元组.JavaScript将接收什么类型的对象
- 如何确定一个对象是否属于某种类型
- 如何在Typescript中声明一个对象数组的数据类型?
- 有可能有一个wijgrid细胞类型的对象
- 在Javascript中,当一个对象的原型被赋值为另一个对象的实例时,获取该对象的类型
- 在JQuery中,将一个对象数组复制到另一个数组是它的引用类型
- 类型错误:对象不是一个函数- github护照设置
- 你能在运行时检查一个对象是否符合Flow类型吗
- JsDoc:我如何记录一个对象可以具有arbitrary(未知)属性,但具有特定类型
- 选择一个对象,但隐藏其他相同类型的对象