簡體   English   中英

為什么“typeof”與“typeof()”相同?

[英]Why is “typeof” the same as “typeof()”?

我正在學習JavaScript,我在代碼中看到使用typeoftypeof()是相同的,例如:

結果是兩種情況下的數字:

console.log(typeof 1); 
console.log(typeof(1));

根據ES5規范typeof是一元運算符 - 例如,與voiddelete相同。 用grouping ()包裝它的表達式只是為了方便(並且 - 理論上 - 覆蓋默認優先級),但從不將它視為函數調用。

因為“typeof”是一個運算符(不是函數,不是對象),並且運算符可以在帶括號的表達式中使用:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/typeof

http://www.ecma-international.org/ecma-262/5.1/#sec-11.4.3

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM