Javascript 是否有必要在每个“typeof”之后调用“toLowerCase()”?
我遇到了以下一段Javascript代码:Javascript 是否有必要在每个“typeof”之后调用“toLowerCase()”?,javascript,Javascript,我遇到了以下一段Javascript代码: if ((typeof callback).toLowerCase() === 'function') 是否需要在每个typeof之后调用toLowerCase()?还是仅仅是杂乱无章?不,不,不,不 在大多数情况下,typeof解析为一组已知的所有小写值。您不必使用.toLowerCase() .toLowerCase()用于将字符串中的所有字符都设置为小写 另一方面,typeof返回操作数的值。由typeof返回的所有字符串总是小写。然而,typ
if ((typeof callback).toLowerCase() === 'function')
是否需要在每个
typeof
之后调用toLowerCase()
?还是仅仅是杂乱无章?不,不,不,不
在大多数情况下,
typeof
解析为一组已知的所有小写值。您不必使用.toLowerCase()
.toLowerCase()
用于将字符串中的所有字符都设置为小写
另一方面,
typeof
返回操作数的值。由typeof
返回的所有字符串总是小写。然而,typeof
不是很准确。相反,我建议您使用Object.prototype.toString
,原因如下:
上述
typeOf
函数是对typeOf
运算符的修复。它总是返回传递给它的值的正确类型。例如typeOf([])
返回“数组”
,而typeOf[]
返回“对象”
。你可以在typeOf
函数中使用toLowerCase
。阅读可能的类型表(全部较低)@bfavaretto:不仅是幽默感,而且他们可能不知道答案限制:-)你的答案没有任何解释。typeof
运算符以小写字符串的形式返回操作数的类型。因此,您不需要对其调用toLowerCase
。@Aadit M Shah:“操作数的类型为小写字符串”--如果有人对specification@zerkms你愿意做这些荣誉吗?为了准备考试,我整天都在阅读我的大学课本,现在我真的不想读JavaScript规范。@zerkms规范中的所有类型字符串都是小写:但是它让实现决定主机对象的类型,这可能是肯定的大写实现。然而,在我看来,大多数实现都是明智的,可以将其保持在较低的大小写。
function typeOf(value) {
if (value === null) return "Null";
if (typeof value === "undefined") return "Undefined";
return Object.prototype.toString.call(value).slice(8, -1);
}