javascript typeof的用法

本文探讨了JavaScript中检测变量是否为数组的方法,纠正了常见的错误写法,并介绍了正确的使用typeof和isNaN进行数组判断的技术细节。
经常会在js里用到数组,比如 多个名字相同的input, 若是动态生成的, 提交时就需要判断其是否是数组.

if(document.mylist.length != "undefined" ) {} 这个用法有误.

正确的是 if( typeof(document.mylist.length) != "undefined" ) {}

或 if( !isNaN(document.mylist.length) ) {}

typeof的运算数未定义,返回的就是 "undefined".

运算数为数字 typeof(x) = "number"

字符串 typeof(x) = "string"

布尔值 typeof(x) = "boolean"

对象,数组和null typeof(x) = "object"

函数 typeof(x) = "function"

typeof 运算符返回一个用来表示表达式的数据类型的字符串。
可能的字符串有:"number"、"string"、"boolean"、"object"、"function" 和 "undefined"。
如:
alert(typeof (123));//typeof(123)返回"number"
alert(typeof ("123"));//typeof("123")返回"string"


typeof 运算符
返回一个用来表示表达式的数据类型的字符串。

typeof[()expression[]] ;

expression 参数是需要查找类型信息的任意表达式。

说明
typeof 运算符把类型信息当作字符串返回。typeof 返回值有六种可能: "number," "string," "boolean," "object," "function," 和 "undefined."

typeof 语法中的圆括号是可选项。
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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值