[英]Why is typeof === 'number' not the same as !isNaN(number)
[英]Why is “typeof” the same as “typeof()”?
我正在學習JavaScript,我在代碼中看到使用typeof
和typeof()
是相同的,例如:
結果是兩種情況下的數字:
console.log(typeof 1);
console.log(typeof(1));
根據ES5規范 , typeof
是一元運算符 - 例如,與void
和delete
相同。 用grouping ()
包裝它的表達式只是為了方便(並且 - 理論上 - 覆蓋默認優先級),但從不將它視為函數調用。
因為“typeof”是一個運算符(不是函數,不是對象),並且運算符可以在帶括號的表達式中使用:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof
typeof是一個運算符,就像+, - ,%,&&等。它不是一個方法,“1”不是傳遞的參數,不需要括號。 但是它會接受括號,因為它們只是指定操作的順序,就像(1)+(2)是可接受的,即使括號不是必需的。 所以你給出的例子在兩種情況下都是可以接受的。
typeof運算符不是函數。 您可以用括號括起操作數,以便表達式看起來像一個函數調用,但括號將只是作為一個分組操作符(僅次於默認啄食順序中的逗號操作符!)。 實際上,您可以使用各種標點符號來裝飾操作數,而不會使運算符脫軌。
typeof (2) //"number"
typeof(2) //"number"
typeof ("a", 3) //"number"
typeof (1 + 1) //"number"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.