Baseline Widely available
typeof
æ¼ç®åã¯ããªãã©ã³ãã®å¤ã®åã示ãæååãè¿ãã¾ãã
console.log(typeof 42);
// Expected output: "number"
console.log(typeof "blubber");
// Expected output: "string"
console.log(typeof true);
// Expected output: "boolean"
console.log(typeof undeclaredVariable);
// Expected output: "undefined"
æ§æ 弿°
operand
åãè¿ããªãã¸ã§ã¯ãã¾ãã¯ããªããã£ãåã表ãå¼ã§ãã
以ä¸ã¯ typeof
ãè¿ãå¯è½æ§ãããå¤ã®ä¸è¦§ã§ããåã¨ããªããã£ãã®è©³ç´°ã«ã¤ãã¦ã¯ãJavaScript ã®ãã¼ã¿æ§é ã®ãã¼ã¸ãåç
§ãã¦ãã ããã
ãã®å¤ã®ãªã¹ãã¯ç¶²ç¾ çãªãã®ã§ãã仿§ãéµå®ããã¨ã³ã¸ã³ã¯ãæ²è¼ããã¦ããå¤ä»¥å¤ãçæããï¼ã¾ãã¯éå»ã«ã¯çæãã¦ããï¼ãã¨ã¯å ±åããã¦ãã¾ããã
ä¾ åºæ¬çãªä½¿ãæ¹// æ°å¤
typeof 37 === "number";
typeof 3.14 === "number";
typeof 42 === "number";
typeof Math.LN2 === "number";
typeof Infinity === "number";
typeof NaN === "number"; // "Not-A-Number" ã§ããã«ããããããã
typeof Number("1") === "number"; // Number ã¯æ°å¤ã«åå¼·å¶ã§ããªãå¤ãå«ãã¦ã
typeof Number("shoe") === "number"; // ãããããã®ãæ°åã«è§£éãã¾ãã
typeof 42n === "bigint";
// æåå
typeof "" === "string";
typeof "bla" === "string";
typeof `template literal` === "string";
typeof "1" === "string"; // æååå
ã®æ°å¤ã¯æåååã®ã¾ã¾ã§ãã
typeof typeof 1 === "string"; // typeof ã¯å¸¸ã«æååãè¿ãã¾ãã
typeof String(1) === "string"; // String ã¯ä½ã§ãæååã«å¤æããã®ã§ãtoString ãããå®å
¨ã§ãã
// è«çå
typeof true === "boolean";
typeof false === "boolean";
typeof Boolean(1) === "boolean"; // Boolean ã¯ãå¤ãçå¤ãå½å¤ãã«åºã¥ãã¦å¤æãã¾ãã
typeof !!1 === "boolean"; // ! (è«ç NOT) ã 2 åå¼ã³åºã㨠Boolean() ã¨åçã«ãªãã¾ãã
// ã·ã³ãã«
typeof Symbol() === "symbol";
typeof Symbol("foo") === "symbol";
typeof Symbol.iterator === "symbol";
// Undefined
typeof undefined === "undefined";
typeof declaredButUndefinedVariable === "undefined";
typeof undeclaredVariable === "undefined";
// ãªãã¸ã§ã¯ã
typeof { a: 1 } === "object";
// Array.isArray ã¾ã㯠Object.prototype.toString.call ã使ç¨ãã¦ã
// é常ã®ãªãã¸ã§ã¯ãã¨é
åãåºå¥ãã¾ãã
typeof [1, 2, 4] === "object";
typeof new Date() === "object";
typeof /regex/ === "object"; // éå»ã®å®è£
ã¯æ£è¦è¡¨ç¾ã®ç« ãåç
§ãã¦ãã ããã
// 以ä¸ã®ãããªãã®ã¯ãç´ãããããå±éºã§ãç¡é§ãªãã®ã§ãããããã¯ä½¿ç¨ããªãããã«ãã¦ãã ããã
typeof new Boolean(true) === "object";
typeof new Number(1) === "object";
typeof new String("abc") === "object";
// 颿°
typeof function () {} === "function";
typeof class C {} === "function";
typeof Math.sin === "function";
typeof null
// JavaScript ã®åæããã®å®è£
ã«åºã¥ã
typeof null === "object";
JavaScript ã®æåã®å®è£
ã§ã¯ãJavaScript ã®å¤ã¯åã¿ã°ã¨å¤ã§è¡¨ç¾ããã¦ãã¾ããããªãã¸ã§ã¯ãã®åã¿ã°ã¯ 0
ã§ãnull
㯠NULL ãã¤ã³ã¿ã¼ (ã»ã¨ãã©ã®ãã©ãããã©ã¼ã ã§ 0x00
) ã¨ãã¦è¡¨ããã¦ãã¾ããããã®çµæãnull
ã¯ã¿ã°ã®åã¨ã㦠0
ãæã£ã¦ãããããtypeof
ã®è¿å¤ã¯ "object"
ã§ãã(ãªãã¡ã¬ã³ã¹)
ECMAScript ã®ä¿®æ£æ¡ã (ãªããã¤ã³ã使ç¨ãã¦) ææ¡ããã¾ããããå´ä¸ããã¾ããããã㯠typeof null === "null"
ã¨ããçµæã«ãªããã®ã§ããã
new
ã§å¼ã³åºãããã³ã³ã¹ãã©ã¯ã¿ã¼é¢æ°ã¯ãã¹ã¦ãããªããã£ãå以å¤ã®å¤ãè¿ãã¾ãï¼"object" ã¾ã㯠"function"ï¼ã ã»ã¨ãã©ã¯ãªãã¸ã§ã¯ããè¿ãã¾ãããç¹è¨ãã¹ãä¾å¤ã¨ãã¦ãFunction
ã¯é¢æ°ãè¿ãã¾ãã
const str = new String("String");
const num = new Number(100);
typeof str; // "object" ãè¿ã
typeof num; // "object" ãè¿ã
const func = new Function();
typeof func; // "function" ãè¿ã
æ§æã§æ¬å¼§ãå¿
è¦ãªå ´å
typeof
æ¼ç®åã¯ãåªå
é ä½ãå ç® (+
) ãªã©ã®äºé
æ¼ç®åãããé«ããªãã¾ãããã®ãããå ç®çµæã®åãè©ä¾¡ããã«ã¯æ¬å¼§ãå¿
è¦ã§ãã
// æ¬å¼§ã使ãã¨ãå¼ã®ãã¼ã¿åãç¹å®ãããã¨ãã§ãã¾ãã
const someData = 99;
typeof someData + " Wisen"; // "number Wisen"
typeof (someData + " Wisen"); // "string"
ã¨ã©ã¼
typeof
ã¯ä¸è¬ã«ããããä¾çµ¦ããããªãã©ã³ãã®æååãè¿ããã¨ãä¿è¨¼ããã¦ãã¾ãã宣è¨ããã¦ããªãèå¥åããã£ã¦ããtypeof
㯠"undefined"
ãè¿ããã¨ã©ã¼ã¯çºçãã¾ããã
typeof undeclaredVariable; // "undefined"
ããããtypeof
ãåããããã¯å
ã®åå¥å®£è¨ï¼let
ãconst
ãclass
ï¼ã®åã«ä½¿ç¨ããã¨ãReferenceError
ãçºçãã¾ãã ãããã¯ã¹ã³ã¼ãã®å¤æ°ã¯ããããã¯ã®éå§ããåæåãå¦çãããã¾ã§ã®éã䏿çãªãããã¾ã¼ã³ã«ããããã®éã«ã¢ã¯ã»ã¹ããã¨ã¨ã©ã¼ãçºçãã¾ãããããã¯ã¹ã³ã¼ãå
ã®å¤æ°ã¯ããããã¯ã®éå§ããåæåãå¦çãããã¾ã§ã䏿çãªãããã¾ã¼ã³ãã«ããããã®éã«ã¢ã¯ã»ã¹ãããã¨ã¨ã©ã¼ãçºçãã¾ãã
typeof newLetVariable; // ReferenceError
typeof newConstVariable; // ReferenceError
typeof newClass; // ReferenceError
let newLetVariable;
const newConstVariable = "hello";
class newClass {}
document.all ã®ä¾å¤çãªåä½
ç¾å¨ã®ãã©ã¦ã¶ã¼ã§ã¯ãã¹ã¦ãæ¨æºå¤ã®ãã¹ããªãã¸ã§ã¯ã document.all
㯠undefined
åã«ãªãã¾ãã
typeof document.all === "undefined";
document.all
ã¯å½å¤ã§ããããundefined
ã¨ç·©ãç価æ§ãããã¾ãããundefined
ã§ã¯ããã¾ãããdocument.all
ã "undefined"
ã¨ããåãæã¤ã±ã¼ã¹ã¯ãã¦ã§ãæ¨æºã§ã¯ãã¦ã§ãäºææ§ãç®çã¨ãã ECMAScript æ¨æºã®ãæå³çãªéåãã¨ãã¦åé¡ããã¦ãã¾ãã
typeof
ã¯é常ã«ä¾¿å©ã§ãããæ±ç¨æ§ã¯ããã»ã©é«ãããã¾ããããã¨ãã°ãtypeof []
㯠"object"
ã«ãªãã¾ããtypeof new Date()
ã typeof /abc/
ãªã©ã¨åæ§ã§ãã
åãã§ãã¯ã®ç²¾åº¦ãä¸ããããã«ãããã§ã¯ã«ã¹ã¿ã 颿° type(value)
ãç´¹ä»ãã¾ããããã¯ä¸»ã« typeof
ã®åä½ã模å£ãã¾ãããããªããã£ãå以å¤ã®ãã®ï¼ã¤ã¾ããªãã¸ã§ã¯ãã颿°ï¼ã«ã¤ãã¦ã¯ãå¯è½ãªéã詳細ãªååãè¿ãã¾ãã
function type(value) {
if (value === null) {
return "null";
}
const baseType = typeof value;
// ããªããã£ãå
if (!["object", "function"].includes(baseType)) {
return baseType;
}
// Symbol.toStringTag ã¯ãå¤ãã®å ´åããªãã¸ã§ã¯ãã®ã¯ã©ã¹ã®
// ã表示åããæå®ããããã㯠Object.prototype.toString() ã§ä½¿ç¨ããã
const tag = value[Symbol.toStringTag];
if (typeof tag === "string") {
return tag;
}
// ã½ã¼ã¹ã³ã¼ãã "class" ãã¼ã¯ã¼ãã§å§ã¾ã颿°ã§ããå ´å
if (
baseType === "function" &&
Function.prototype.toString.call(value).startsWith("class")
) {
return "class";
}
// ã³ã³ã¹ãã©ã¯ã¿ã¼ã®ååãä¾ãã°ã`Array`ã`GeneratorFunction`ã
// `Number`ã`String`ã`Boolean`ã`MyCustomClass`ã
const className = value.constructor.name;
if (typeof className === "string" && className !== "") {
return className;
}
// ããã¾ã§ããã¨ãå¤ã®åãåå¾ãã確å®ãªæ¹æ³ã¯ãªãããã
// åºæ¬å®è£
ã使ç¨ãã¾ãã
return baseType;
}
åå¨ããªãå¯è½æ§ããã夿°ã調ã¹ãã«ã¯ãReferenceError
ãçºçããå¯è½æ§ããããããtypeof nonExistentVar === "undefined"
ã使ç¨ãã¦ãã ããããã®åä½ã¯ãã«ã¹ã¿ã ã³ã¼ãã§ã¯æ¨¡å£ã§ããªãããã§ãã
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4