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 ...
随机推荐
- java面试准备基础篇
1.Java中常用关键字和用途 synchronized: 加锁 transient 不参与序列化和反序列化 volatile 保证其他线程可见性,不保证原子性,禁止指令重排 2.hashCode() ...
- Perl 简单脚本处理log信息
执行了一段命令之后爆出了很多错误怎么收集 比如我们在编译一个大型项目时,编译出了很多报错,我们想收集出编译出错的每一行,肉眼看效率很低,在windows下没有grep怎么办呢? 在学习语法方面,使用p ...
- 对VC中有关数据类型转换的整理
原文地址:http://spaces.msn.com/wsycqyz/blog/cns!F27CB74CE9ADA6E7!152.trak 对VC中有关数据类型转换的整理 说明:本文纯粹是总结一下 ...
- C++ 11 std::mem_fn
mem_fn 想到member function 成员函数 这还真就是用来调用成员函数的 普通的函数我们通过函数指针可以调用,但对于成员函数的调用稍微复杂一点,需要对象,也即this指针 因为成员函数 ...
- [ARC140D] One to One
个人思路: 一棵树也只有一个 \(a=-1\) 的点,所以可以把它看做一个点,但是要记录点的大小 \(sz_i\),即为这棵树的大小.如果本来就是一个点,那么大小为 \(1\). 状态:\(dp_{i ...
- SAP 布局编辑器无法使用问题处理
因一些事情,公司将正式系统的数据拷贝到了开发机,后来在开发中用到了布局编辑器,发现打不开且会报错RFC callback call rejected by whitelist 这个是因为正式机和开发机 ...
- “Can't open file for writing”或“operation not permitted”的解决办法
linux使用vi命令修改一个文件内容的时候,发现无法保存,每次写完使用":q!"命令可以正常退出但是使用":wq!"命令保存文件并退出时出现一下信息提示: ...
- shell_Day02
虽然差了不少天,但的确是第......一天 history 查看历史命令记录 !命令序号 查看命令并执行 -c 清空 关于命令历史的文件 关于命令历史的变量(环境变量) 命令补全 tab:制表符 \t ...
- Java基础学习:2、Java数据类型及逻辑运算符
1.数据类型: 数据类型范围: byte:-2^7 ~ 2^7-1,即-128 ~ 127.1字节.Byte.末尾加B short:-2^15 ~ 2^15-1,即-32768 ~ 32767.2字节 ...
- anaconda怎么将用户名路径切换为工作路径