- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我没有发现任何关于这种微妙但看似重要的区别的引用。我的问题是关于控制台的对象与对象的大小写。
例如:
function Person(name) {
this.name = name;
}
var bob = new Person("Bob");
console.log(bob.name); // Bob --as desired.
但是,
console.log(bob); // [object Object]
我的问题并不是关于我的代码的逻辑,而是关于控制台的消息。
“object”和“Object”这两个词的大小写有什么区别?
这个问题的答案可能使我和其他人能够牢牢掌握控制台试图指示的内容。
最佳答案
在您的例子中,您的 bob
对象通过 toString
方法转换为字符串,该方法由 ES6 规范定义如下:
<强> ES6: Object.prototype.toString ( ):
When the
toString
method is called, the following steps are taken:
- If the this value is undefined, return
"[object Undefined]"
.- If the this value is null, return
"[object Null]"
.- Let O be ToObject(this value).
- Let isArray be IsArray(O).
- ReturnIfAbrupt(isArray).
- If isArray is true, let builtinTag be
"Array"
.- Else, if O is an exotic String object, let builtinTag be
"String"
.- Else, if O has an [[ParameterMap]] internal slot, let builtinTag be
"Arguments"
.- Else, if O has a [[Call]] internal method, let builtinTag be
"Function"
.- Else, if O has an [[ErrorData]] internal slot, let builtinTag be
"Error"
.- Else, if O has a [[BooleanData]] internal slot, let builtinTag be
"Boolean"
.- Else, if O has a [[NumberData]] internal slot, let builtinTag be
"Number"
.- Else, if O has a [[DateValue]] internal slot, let builtinTag be
"Date"
.- Else, if O has a [[RegExpMatcher]] internal slot, let builtinTag be
"RegExp"
.- Else, let builtinTag be
"Object"
.- Let tag be Get (O, @@toStringTag).
- ReturnIfAbrupt(tag).
- If Type(tag) is not String, let tag be builtinTag.
- Return the String that is the result of concatenating
"[object "
, tag, and"]"
.
基本上,规范规定创建一个如下所示的字符串:"[object "+ InternalClassName + "]"
,其中 InternalClassName
是对象的 native 构造函数,Object
在你的情况下。第一个是小写,因为规范说使用该字符串,第二个是大写,因为这是 native 构造函数的名称。
关于javascript - "[object Object]"中小写字母与大写字母所暗示的控制台区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38417064/
我需要在我的网站中实现自动建议功能,并且我需要一些易于开发或编辑的 java 脚本框架或代码,并且自动建议将是多个字段 最佳答案 适配 jQuery:http://jqueryui.com/ 关于ja
在下面的示例中,SonarQube 提示 model.toString() 是 not null 并且 (model == null) 始终 false,需要一些帮助来了解可以采取哪些措施来修复它。因
我正在尝试创建自定义 iOS 键盘。我使用 UILexicon 类来提供 requestSupplementaryLexiconWithCompletion: 方法提供的基本词库。 但我也想将预测文本
如何断言如果 X 为 true 那么 Y 也为 true。问题是,如果我写以下内容: assert(X && Y && "If X is true then Y should be true too.
创建路径中包含两个反斜杠的文件时,是否会产生任何不可预见的后果。 在此代码中,文件创建正常,但我想知道在使用此文件的过程中是否有任何副作用。 HANDLE hFile = CreateFile(
在下面的示例中,SonarQube 提示 bookmark 可能为 null 或为 null,需要一些帮助来了解可以采取哪些措施来修复它。因为 bookmark 在 for 循环中被初始化为变量,并且
这个问题在这里已经有了答案: Partial ordered Comparator (6 个答案) 关闭 8 年前。 我有一组序列化到文件中的项目。有些项目可以依赖其他项目,但不允许循环引用。因此,
我想创建将始终使用 gcc/g++/clang 支持的 C/C++ 标准的“最新”版本的 shell 别名/clang++(C的一个别名,C++的一个别名)。我意识到这可能有多种解释: 最新的 GNU
我是一名优秀的程序员,十分优秀!