当前位置: 首页 > wzjs >正文

组建网站 多少钱上海公关公司

组建网站 多少钱,上海公关公司,用jsp源码做网站,wordpress如何导入数据库在 JavaScript 中,数据类型检测是开发中的常见需求。以下是主要检测方法及其优缺点: 1. typeof 操作符 最基础的检测方式,返回类型字符串: typeof 42; // "number" typeof "hello"; // &qu…

在 JavaScript 中,数据类型检测是开发中的常见需求。以下是主要检测方法及其优缺点:

1. typeof 操作符

最基础的检测方式,返回类型字符串:

typeof 42;           // "number"
typeof "hello";      // "string"
typeof true;         // "boolean"
typeof undefined;    // "undefined"
typeof function() {}; // "function"
typeof Symbol();     // "symbol"
typeof {};           // "object"
typeof [];           // "object" (注意!)
typeof null;         // "object" (历史遗留问题)

缺点:

  • 无法区分数组、对象、null(都返回 “object”)

2. instanceof 操作符

检测对象是否属于某个构造函数的实例:

[] instanceof Array;      // true
{} instanceof Object;     // true
new Date() instanceof Date; // truefunction Person() {}
const p = new Person();
p instanceof Person;      // true

缺点:

  • 不适用于原始值类型(数字、字符串等)
  • 多窗口/iframe 环境下失效(不同全局环境)

3. Object.prototype.toString.call()

最可靠的检测方法,返回 [object Type] 格式:

Object.prototype.toString.call(42);        // "[object Number]"
Object.prototype.toString.call("hello");   // "[object String]"
Object.prototype.toString.call([]);        // "[object Array]"
Object.prototype.toString.call(null);      // "[object Null]"
Object.prototype.toString.call(undefined); // "[object Undefined]"
Object.prototype.toString.call(/regex/);   // "[object RegExp]"

封装工具函数:

function getType(obj) {return Object.prototype.toString.call(obj).slice(8, -1).toLowerCase();
}getType([]); // "array"
getType(null); // "null"

4. 特殊类型检测

  • 数组检测:
Array.isArray([]); // true (ES5+ 最佳方案)
// 旧浏览器兼容方案:
Object.prototype.toString.call([]) === "[object Array]";
  • NaN 检测:
isNaN(NaN); // true (注意: isNaN("abc") 也返回 true)
Number.isNaN(NaN); // true (ES6 推荐,严格检测)
  • null/undefined 检测:
let foo = null;
foo === null; // true (精确检测 null)
typeof bar === "undefined"; // 检测未定义

终极解决方案

结合多种方式实现全类型检测:

function detectType(value) {// 处理 null 和 undefinedif (value === null) return "null";if (value === undefined) return "undefined";// 处理其他类型const type = typeof value;if (type !== "object") return type; // 原始类型直接返回// 对象类型细化return Object.prototype.toString.call(value).slice(8, -1).toLowerCase();
}// 测试
detectType([]); // "array"
detectType(new Map()); // "map"
detectType(Symbol()); // "symbol"
detectType(42); // "number"

总结对比

方法优点缺点
typeof简单快速,适合原始类型无法区分数组/对象/null
instanceof检测自定义对象不适用原始类型,多窗口环境失效
Object.prototype.toString精准识别所有类型(推荐)语法稍复杂
Array.isArray()数组检测最优解仅适用于数组

最佳实践:

  • 基础类型检测 → typeof
  • 数组检测 → Array.isArray()
  • 完整类型检测 → Object.prototype.toString.call()
  • null 检测 → value === null
http://www.dtcms.com/wzjs/267349.html

相关文章:

  • 临沂网站制作培训百度指数分析大数据
  • 莆田网站建设开发志鸿优化网
  • 网站开发功能合同范本南京百度推广优化
  • 游戏钓鱼网站开发湖口网站建设
  • 怎么做没有后台程序的网站百度网盘电脑版
  • 台州做微网站seo优化关键词是什么意思
  • 个人网站如何做淘客网站推广普通话的文字内容
  • 做网站是什么意思类似58的推广平台有哪些平台
  • 用css div做网站的首页天津百度关键词推广公司
  • 家电设计网站互联网seo是什么
  • html 网站模板下载产品宣传推广方案
  • 音乐网站开发环境描述百度信息流推广教程
  • 一起做网站下载数据包推广合作
  • 网站弹窗客服代码西点培训前十名学校
  • 宁夏住房和城乡建设局网站小程序自助搭建平台
  • 上海微信网站公司哪家好代理推广
  • 网站源码在线查询网站seo优化课程
  • 宝鸡市住房和城乡建设部网站搜索推广公司
  • html5手机网站实例2023年最新新闻简短摘抄
  • 上海微信网站建设企业策划咨询公司
  • 哪个网站推荐做挖机事的百度网页收录
  • 网站建设有什么意见百度推广四川成都地区服务中心
  • 网页浏览器主要通过ftp协议同网页服务器杭州百度优化
  • 山东潍坊网站制作公司宁波优化网站哪家好
  • 网站的公司视频优化是什么意思
  • 做网站还用注册商标吗网络测试
  • 北京品牌网站建设公司推广软件免费
  • 做旅游网站目的和意义市场调研的基本流程
  • 360网站图标怎么做网络推广的工作内容是什么
  • 一个上线的网站需要怎么做java培训班