JS实现一个函数getType获取所有的数据类型
1 function getType(obj) {
2 if (obj === null) {
3 return String(obj)
4 }
5 const toType = (obj) => {
6 // '[object RealType]' => realtype
7 return Object.prototype.toString.call(obj).replace('[object ', '').replace(']', '').toLowerCase()
8 }
9 return typeof obj === 'object' ?
10 toType(obj) :
11 typeof obj;
12 }
13
14 // 调用
15 console.log(getType(null)) // -> null
16 console.log(getType(undefined)) // -> undefined
17 console.log(getType({})) // -> object
18 console.log(getType([])) // -> array
19 console.log(getType(123)) // -> number
20 console.log(getType(true)) // -> boolean
21 console.log(getType('123')) // -> string
22 console.log(getType(/123/)) // -> regexp
23 console.log(getType(new Date())) // -> date
24 console.log(getType(new Set([])))// ->set
博客原文https://blog.csdn.net/weixin_44013946/article/details/120209958?ops_request_misc=&request_id=&biz_id=102&utm_term=gettypejs&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-120209958.first_rank_v2_pc_rank_v29&spm=1018.2226.3001.4187
JavaScript判断数组的方法有:
①Array.isArray(arr)
②arr instanceof Array
③Object.prototype.toString.call(arr)
④arr.constructor === Array 或
arr. __ proto __.constructor===Array
利用Object.prototype.toString.call()方法,可以获取到[object ?],其中的?就是我们想要获取的数据类型。之后思路就是截取到这个?这里用的是replace方法将前面’[object ‘替换成’’,之后把右边的’]‘替换成’’,再将首字母转换成小写。最后判断输入的内容是否属于object类型(typeof判断) 如果是 通过该方法转换,否则直接输出typeof判断的类型即可。
JS实现一个函数getType获取所有的数据类型的更多相关文章
- 用JS编写一个函数,返回数组中重复出现过的元素
用JS编写一个函数,返回数组中重复出现过的元素,见下面的代码: , , , , , , , ]; var getRepeat = function (arr) { var obj = {}; , le ...
- js new一个函数和直接调用函数的区别
用new和调用一个函数的区别:如果函数返回值是一个值类型(Number.String.Boolen)时,new函数将会返回这个函数的实例对象,而如果这个函数的返回值是一个引用类型(Object.Arr ...
- js new一个函数和直接调用函数的差别
用new和调用一个函数的差别:假设函数返回值是一个值类型(Number.String.Boolen)时,new函数将会返回这个函数的实例对象.而假设这个函数的返回值是一个引用类型(Object.Arr ...
- js 从一个函数中传递值到另一个函数
一个函数的调用大家都会用 我今天在调接口的时候突然发现需要引用个另一个函数中拿到的值 举个栗子 刚开始 我是这样调用的 alert弹出的是 hello world . 但是我a函数内部还有一个函数 画 ...
- JS基础语法---函数也是一种数据类型
1. 如何获取某个变量的类型? typeof 2. 函数是有数据类型 ,数据类型:是function function f1() { console.log("我是函数"); } ...
- 请用js写一个函数,实现获取浏览器url中查询字符串中的参数并返回一个数组
<script> console.log(getUrlArr()); function getUrlArr() { var arr = []; var url = "http:/ ...
- js从一个函数中结束另一个函数的问题
等待通过事件监听结束另一函数的方法出炉…… 1.事件监听? 2.从a里把b函数全局定义一下,不推荐. function a(){ alert("a"); b=function(){ ...
- js New一个函数和直接调用的区别
使用New是构造函数,不使用New是函数调用,同时this指向不同. 示例: function Test(name, age, job) { console.log(this); this.name ...
- vue.js 作一个用户表添加页面----初级
使用vue.js 制作一个用户表添加页面,实际上是把原来需要使用js写的部分,改写成vue.js的格式 首先,想象一下,先做思考,我们要添加用户表,设涉及到哪些数据,一个是用户id,一个是用户名,一个 ...
- JS中给函数参数添加默认值
最近在Codewars上面看到一道很好的题目,要求用JS写一个函数defaultArguments,用来给指定的函数的某些参数添加默认值.举例来说就是: // foo函数有一个参数,名为x var f ...
随机推荐
- wpf TreeView 数据绑定
<Window x:Class="TsyCreateProjectContent.Window1" xmlns="http://schemas.microsoft. ...
- 论文笔记:To BLOB or Not To BLOB: Large Object Storage in a Database or a Filesystem?
论文笔记:To BLOB or Not To BLOB: Large Object Storage in a Database or a Filesystem? Conclusion 如果对象平均大小 ...
- ReactJS单页面应用之项目搭建
初衷 因接手的项目前端采用reactjs+antd,为把控项目中的各个细节,所以想做一些整理,以免后期遗忘. 创建及启动项目 # 全局安装create-react-app # 如果曾经安装过,可先移除 ...
- R7-7 调查电视节目受欢迎程度
R7-7 调查电视节目受欢迎程度 分数 15 全屏浏览题目 切换布局 作者 颜晖 单位 浙大城市学院 某电视台要调查观众对该台8个栏目(设相应栏目编号为1~8)的受欢迎情况,共调查了n位观众(1≤n≤ ...
- FastReport 单元行自动换行 Table Object AutoSize
FastReport 官方实例138.fr3 有关于单元行自动换行的描述.The table object can grow depends on cells content. Notes:- set ...
- 单个表空间文件个数达到上限 ORA-01686
# 问题概述因在oracle数据库表空间管理中的时候 报 ORA-01686: max # files (1023) reached for the tablespace GPRS SQL> a ...
- shell脚本操作mysql通用脚本
作用:可以在写监控脚本时,将结果值保存到mysql数据库 使用方法:sh 脚本 库名称.表名称 字段=值 字段=值 字段=值 1.脚本 [root@localhost tmp]# cat writ_ ...
- 解决 使用 params 传递参数 必须 加上 name
{path:'/blog',name:'blog',params:{is:true}}
- RGB以及文档流
继承 继承 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- 3Com-OfficeConnect-Wireless-11宽带路由器默认口令
网络空间资产搜索: app="3Com-OfficeConnect-Wireless-11g-Cable/DSL-Router" 找到环境 账户密码 admin/a***n End ...