当前位置:首页 > JavaScript

js实现类型

2026-01-31 16:47:55JavaScript

JavaScript 类型判断方法

JavaScript 提供了多种方式来判断变量的类型,以下是常见的几种方法:

typeof 操作符

typeof 'hello' // 'string'
typeof 42 // 'number'
typeof true // 'boolean'
typeof undefined // 'undefined'
typeof null // 'object' (历史遗留问题)
typeof function() {} // 'function'
typeof [] // 'object'
typeof {} // 'object'

instanceof 操作符 用于检测构造函数的 prototype 属性是否出现在对象的原型链中:

[] instanceof Array // true
new Date() instanceof Date // true
{} instanceof Object // true

Object.prototype.toString.call() 更精确的类型判断方法:

Object.prototype.toString.call('hello') // '[object String]'
Object.prototype.toString.call(42) // '[object Number]'
Object.prototype.toString.call(true) // '[object Boolean]'
Object.prototype.toString.call(null) // '[object Null]'
Object.prototype.toString.call(undefined) // '[object Undefined]'
Object.prototype.toString.call([]) // '[object Array]'
Object.prototype.toString.call({}) // '[object Object]'
Object.prototype.toString.call(function() {}) // '[object Function]'

Array.isArray() 专门用于判断数组类型:

Array.isArray([]) // true
Array.isArray({}) // false

自定义类型判断函数 可以封装一个通用的类型判断函数:

function getType(obj) {
  return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase()
}

getType('hello') // 'string'
getType([]) // 'array'
getType(null) // 'null'

类型转换方法

显式类型转换

Number('123') // 123
String(123) // '123'
Boolean(1) // true

隐式类型转换

'5' + 1 // '51' (字符串拼接)
'5' - 1 // 4 (数字运算)
'5' * '2' // 10
!0 // true

特殊类型检查

检查 NaN

isNaN(NaN) // true
isNaN('hello') // true
Number.isNaN(NaN) // true (ES6更精确的方法)
Number.isNaN('hello') // false

检查有限数字

isFinite(Infinity) // false
isFinite(42) // true
Number.isFinite(42) // true (ES6方法)

检查整数

js实现类型

Number.isInteger(42) // true
Number.isInteger(42.0) // true
Number.isInteger(42.1) // false

这些方法组合使用可以覆盖JavaScript中大部分类型判断和转换的需求。根据具体场景选择合适的方法,特别是要注意typeof null返回'object'这种特殊情况。

标签: 类型js
分享给朋友:

相关文章

js实现图片轮播

js实现图片轮播

实现基础图片轮播 使用HTML、CSS和JavaScript创建一个简单的图片轮播。HTML部分定义轮播容器和图片,CSS设置样式和动画效果,JavaScript处理轮播逻辑。 <div cl…

jquery.js

jquery.js

jQuery 是一个快速、简洁的 JavaScript 库,简化了 HTML 文档遍历、事件处理、动画设计和 Ajax 交互等操作。以下是关于 jQuery.js 的核心信息和使用方法: 获…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js 实现链表

js 实现链表

链表的基本概念 链表是一种线性数据结构,由一系列节点组成,每个节点包含数据和指向下一个节点的指针。与数组不同,链表在内存中是非连续存储的,插入和删除操作效率较高。 链表的实现 在 JavaScrip…

js实现游标

js实现游标

使用JavaScript实现游标 在JavaScript中,可以通过操作DOM元素的cursor样式属性来实现自定义游标效果。以下是几种常见的实现方法: 修改默认鼠标指针样式 通过CSS的curso…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…