我已經看到了很多的做與的typeof關鍵字字符串比較的地方,返回結果是什麼都顯得常量字符串,如串,對象,不確定等。我希望看到那些定義爲常量的地方,但似乎並非如此(它們在MDN here上列出)。我不喜歡看到代碼中使用的字符串重複,因爲它們看起來很神奇。目前的解決方案是將它們定義爲const我自己的代碼中的其他地方,但似乎JS知道這些,所以爲什麼我無法得到它們? (或者可以嗎?)在JavaScript中,typeof返回的常量字符串從哪裏來?
魔術字符串:
if(typeof myObject === 'object') {}
這似乎更好一點,因爲沒有重複神奇的字符串,但我不明白爲什麼我應該定義常量:
const TYPE_OBJECT = 'object';
if(typeof myObject === TYPE_OBJECT) {}
if(typeof myOtherObject === TYPE_OBJECT) {}
或者,這似乎太笨拙:
if(typeof myObject === Object.name.toLowerCase()) {}
if(typeof "hello" === String.name.toLowerCase()) {}
有沒有更好的方法或建在什麼地方,這些常量?
[ECMAScript 2015 - 12.5.6'typeof' Operator](http://www.ecma-international.org/ecma-262/6.0/#sec-typeof-operator) – Andreas
你在做什麼似乎是如果你問我,這是最合法的方法。 – sweaver2112
@Andreas感謝您發佈一個鏈接到規範,因爲它顯示了MDN文檔中返回的常量字符串,但我問的是這些常量是否可訪問。 – deejbee