gpt4 book ai didi

javascript - JavaScript typeof 运算符是否会返回大写字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:36:09 24 4
gpt4 key购买 nike

我最近遇到了下面这行代码:

var type = (typeof x).toLowerCase();

请注意,在上面的代码中,x 只会是字符串、数字或未定义。我对此提出质疑,指出 specification (11.4.3)声明 typeof 运算符返回的值,并且它们都已经是小写了。

值得注意的是,规范允许宿主对象自由地返回几乎任何他们喜欢的东西,所以在这种情况下,可能得到一个带有一些大写字母的字符串(我不知道是否实际上曾经发生过,但这是允许的)。然而,如前所述,在这种情况下,x 永远只是一个字符串、一个数字或未定义。

我的问题是,typeof 运算符的任何实现是否会返回小写字符串以外的任何内容?

最佳答案

Spidermonkey 似乎只返回这些:

"undefined"
"object"
"function"
"string"
"number"
"boolean"
NULL

https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JS_GetTypeName

与V8相同:

default:
// For any kind of object not handled above, the spec rule for
// host objects gives that it is okay to return "object"
return isolate->heap()->object_symbol();

http://code.google.com/p/v8/source/browse/branches/bleeding_edge/src/runtime.cc#5245

不知道 MS,我猜他们也不使用自定义 typeof,但你永远不知道他们。

There are six possible values that typeof returns: "number," "string," "boolean," "object," "function," and "undefined."

http://msdn.microsoft.com/en-us/library/windows/apps/259s7zc1%28v=vs.94%29.aspx

关于javascript - JavaScript typeof 运算符是否会返回大写字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8940772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com