JavaScript之typeof用法

本文详细介绍了JavaScript中的typeof运算符,包括其基本用法、返回值示例以及可能的困惑点,如null和数组的typeof结果。同时提到了检测数字类型的技巧。

JavaScript之typeof用法


typeof运算符用于获取一个变量的类型。这是一个简单的操作符,它返回一个字符串,表示其操作数的数据类型。以下是typeof的一些使用例子:

var num = 123;  
console.log(typeof num); // 输出:number  
  
var str = "hello";  
console.log(typeof str); // 输出:string  
  
var obj = {key: "value"};  
console.log(typeof obj); // 输出:object  
  
var bool = true;  
console.log(typeof bool); // 输出:boolean  

var date = new Date();  
console.log(typeof date); // 输出:object  

var undef;  
console.log(typeof undef); // 输出:undefined  
  
var nullVar = null;  
console.log(typeof nullVar); // 输出:object  
  
var func = function() {};  
console.log(typeof func); // 输出:function

需要注意的是,typeof返回的结果有时可能会让人感到困惑。例如,typeof null返回的是object,这可能并不是你期望的结果。此外,对于数组,typeof也会返回object。如果你想要更准确地确定一个变量是否为数组类型,可以使用Array.isArray()函数。

此外,typeof运算符还可以与非运算符(如 + 或 -)结合使用,以确定一个变量是否为数字类型。例如:

var num = 123;  
console.log(typeof +num); // 输出:number  
console.log(typeof -num); // 输出:number
JavaScript 中,`typeof` 是一个操作符,用于返回一个表示数据类型的字符串。以下是其使用方法及示例: ### 基本语法 ```javascript typeof operand typeof(operand) ``` 其中,`operand` 是要检测的变量、值或表达式。这两种语法形式是等价的,但通常推荐使用第一种,因为它更简洁。 ### 返回值 `typeof` 可能返回以下几种不同的字符串: - `"number"`:当操作数是数字(包括整数、浮点数、NaN、Infinity 等)时返回。 ```javascript console.log(typeof 42); // "number" console.log(typeof 3.14); // "number" console.log(typeof NaN); // "number" console.log(typeof Infinity); // "number" ``` - `"string"`:当操作数是字符串时返回。 ```javascript console.log(typeof "Hello, World!"); // "string" ``` - `"boolean"`:当操作数是布尔值(`true` 或 `false`)时返回。 ```javascript console.log(typeof true); // "boolean" ``` - `"object"`:当操作数是对象(包括数组、日期、正则表达式等)、`null` 时返回。需要注意的是,`typeof null` 返回 `"object"` 是 JavaScript 语言的一个历史遗留问题。 ```javascript console.log(typeof { key: "value" }); // "object" console.log(typeof [1, 2, 3]); // "object" console.log(typeof null); // "object" ``` - `"function"`:当操作数是函数时返回。 ```javascript function greet() { console.log("Hello!"); } console.log(typeof greet); // "function" ``` - `"undefined"`:当操作数是未定义的变量、函数没有返回值时返回。 ```javascript let variable; console.log(typeof variable); // "undefined" function noReturn() {} console.log(typeof noReturn()); // "undefined" ``` - `"symbol"`:当操作数是 ES6 中引入的 Symbol 类型时返回。 ```javascript const sym = Symbol('description'); console.log(typeof sym); // "symbol" ``` ### 注意事项 - `typeof` 对于区分不同类型的对象(如数组、日期等)能力有限,因为它们都返回 `"object"`。如果需要更精确的类型检查,可以使用 `Object.prototype.toString.call()` 方法。 ```javascript console.log(Object.prototype.toString.call([1, 2, 3])); // "[object Array]" ``` - `typeof` 操作符不会抛出错误,即使操作数是未声明的变量,也会返回 `"undefined"`。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

付宇利

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值