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 ...
随机推荐
- kubectl的vistor模式
package main import ( "encoding/json" "encoding/xml" "log" ) type Visi ...
- python setup.py install 安装、删除。
# python install 安装.卸载 python setup.py install --record files.txt cat files.txt | xargs rm -rf
- 睿爸信奥-【临阵磨枪】练习赛(第二场)- T2
目录 题面 code 题面 徐老师在[睿爸信奥]里面颇受学生欢迎,有一天校长石老师想要搞个最受欢迎老师投票,徐老师就很想拿到这个奖.假设有 名候选者,有 人参加了投票,与以往不同的是,这次所有得票数超 ...
- HttpClient psot和get请求
private String backAllUserInfo(String uid) throws IOException { //this.setInterfaceurl("/idm/js ...
- vue基础 · 过滤器(3)
过滤器:filter Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化.过滤器可以使用在2个地方:{{ }} 插值 和 v-bind 表达式(后者从 2.1.0+ 开始支持) 过滤器分为 ...
- [BOM]打包代码前,快速去除前端日志
一般开发时使用console.log() 方法.于是可以在js文件的最开头加上: console.log = function(){}
- 2022-3-28内部群每日三题-清辉PMP
1.由于一直重复执行相同的任务,一个敏捷团队的士气低落.敏捷管理专业人士(主题专家 SME)应采取哪一项行动? A.增加团队的资源数量,协助主题专家完成任务. B.让团队成员执行其活动的价值流分析. ...
- Jmeter 5.0 遇见connection reset问题
问题:大并发时遇见java.net.SocketException: Connection reset 测试过程中经常遇见connection reset ,原因是大数据量发送时,服务器不能接纳那么多 ...
- OSS管理文件(Node.js)
let OSS = require('ali-oss'); let config = { region: 'oss-cn-hangzhou', //你的Region 注意 这个只要 空间名 不要 ht ...
- vim 基础
光标移动(命令模式的上下左右):k,j,h,l 保存/退出 仅保存::w 退出::q(如果有修改要先保存) 保存并退出::wq(x效果一致) 强制退出::q! 模式 命令模式:esc(当前需要处于插入 ...