文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JavaScript数据类型检测功能如何实现

2023-07-04 13:05

关注

本文小编为大家详细介绍“JavaScript数据类型检测功能如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“JavaScript数据类型检测功能如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、typeof

console.log(typeof 55);              // numberconsole.log(typeof true);            // booleanconsole.log(typeof 'aa');            // stringconsole.log(typeof undefined);       // undefinedconsole.log(typeof function(){});    // functionconsole.log(typeof Symbol("foo"));   // symbolconsole.log(typeof 553119869n);      // bigint// 不能判别console.log(typeof []);   // objectconsole.log(typeof {});   // objectconsole.log(typeof null); // object

二、instanceof

MDN:

instanceof 运算符 用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。

理解:判断在其原型链中能否找到该类型的原型。

语法:

object instanceof constructor

function D(){}var o = new D();o instanceof D;  // trueo instanceof Object; // true
console.log(55 instanceof Number);                // falseconsole.log(true instanceof Boolean);             // false console.log('aa' instanceof String);              // false  console.log([] instanceof Array);                 // trueconsole.log(function(){} instanceof Function);    // trueconsole.log({} instanceof Object);                // true

String 对象和 Date 对象都属于 Object 类型 和 一些特殊情况:

var simpleStr = "a simple string";var objStr = new String();var newStr = new String("String created with constructor");var aDate = new Date();var myNonObj = Object.create(null);simpleStr instanceof String; // false,非对象实例,因此返回 falseobjStr instanceof String;    // truenewStr instanceof String;    // trueobjStr instanceof Object;    // true       myNonObj instanceof Object; // false,一种创建非 Object 实例的对象的方法aDate instanceof Date;      // trueaDate instanceof Object;    // true

三、Object.prototype.toString.call()

var toString = Object.prototype.toString;console.log(toString.call(55));           // [object Number]console.log(toString.call(true));         // [object Boolean]console.log(toString.call('aa'));         // [object String]console.log(toString.call([]));           // [object Array]console.log(toString.call(function(){})); // [object Function]console.log(toString.call({}));           // [object Object]console.log(toString.call(undefined));    // [object Undefined]console.log(toString.call(null));         // [object Null]console.log(toString.call(Math));         // [object Math]console.log(toString.call(Set));          // [object Function] Set 构造函数console.log(toString.call(Array));        // [object Function] Array 构造函数console.log(toString.call(Map));          // [object Function]console.log(toString.call(Date));         // [object Function]console.log(toString.call(new Set()));    // [object Set]console.log(toString.call(new Array()));  // [object Array]console.log(toString.call(new Map()));    // [object Map]console.log(toString.call(new Date()));   // [object Date]function D(){}console.log(toString.call(D));            // [object Function]console.log(toString.call(new D()));      // [object Object]

面试问题

如何判断变量是否为数组?

let arr = []console.log(Array.isArray(arr));    // truearr.__proto__ === Array.prototype;  // truearr instanceof Array;               // trueObject.prototype.toString.call(arr);// [object Array]

判断是否是 Promise 对象

function isPromise(val) {  return (    typeof val.then === 'function' &&    typeof val.catch === 'function'  )}let p = new Promise((resolve, reject) => {});console.log(isPromise(p)); // true

读到这里,这篇“JavaScript数据类型检测功能如何实现”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯