在有关字符串方法(https://developer.mozilla.org/en-US/docs/Learn/JavaScript/First_steps/Useful_string_methods)的MDN页面上,它说:“我们之前已经说过,然后再说一遍-一切是JavaScript中的对象。 ” 但是另一个MDN页面指出,JavaScript中有7种数据类型,6种原语和对象(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#Data_types)。这只是一个错误,对吗?还是我想念的东西?
答案 0 :(得分:0)
我的术语可能不正确,我不是一个要注意这些细节的人,但这也许可以帮助我们澄清一下。
例如,数字变量具有toExponential
方法。
例如,这是无效的3.toExponential(2)
,但这是完全有效的let a = 3; a.toExponential(2);
。另一方面,typeof 3
和typeof a
都返回字符串'number'
。
因此,什么是“对象”(大致上可以有方法)和变量或文字可以引用的数据类型之间是有区别的。
答案 1 :(得分:0)
我认为这是措辞不佳的选择。通过引用传递的东西是对象(数组或普通对象,函数等)。原始数据类型通过值传递,我认为null为关键字(它也是一个对象)。正确的短语是:
“一切都可以表示为对象”
这将消除误解,正如其他人指出的那样,从Number.prototype或String.prototype调用函数的唯一方法是使引擎 implicity 将原语包装为对象。同样,您可以{
"errorMessage": "Syntax error in module 'lambda_function'"
}
Request ID:
"82aa7f11-ad9d-4e80-aadb-838a22b361f7"
Function Logs:
START RequestId: 82aa7f11-ad9d-4e80-aadb-838a22b361f7 Version: $LATEST
Syntax error in module 'lambda_function': expected an indented block (lambda_function.py, line 5)
答案 2 :(得分:-1)
每个数据类型都是它自己的类的实例。 例如字符串。 任何字符串都是Class String的实例 所有实例都从String类继承方法。 方法仅对对象可用,因此您可以认为该字符串是对象。 但是为了节制,所有数据类型都存在。.
我试图解释这个概念,但是它很复杂