自定义方法typeofIt()是用来判断传入的变量或属性是什么类型的;
1.如果是基础类型变量则返回代表基础变量类型小写格式的字符串及一些简易说明;
2.如果是对象类型变量则返回结尾带有"Object"的引用类型的字符串;其中越基础的引用类型越放后面,用空格分隔相邻的引用类型名称;

以下为代码:

function typeofIt(variable){
if(typeof variable == "undefined"){
try{
if(variable === undefined){
return "undefined--->基础数据类型中的未定义属性undefined";
}
}catch(err){
var theErrer = "noFined undefined" + "报错代码:" + err;
console.log("%c开始一行的打印:","color:rgb(0,0,255);"," \n函数typeofIt中报错语句变量theErrer--->",theErrer);
return "noFined undefined--->基础数据类型中的未定义变量undefined";
}
}
if(typeof variable == "number"){
return "number--->基础数据类型中的数字number";
}
if(typeof variable == "string"){
return "string--->基础数据类型中的字符串string";
}
if(typeof variable == "boolean"){
return "boolean--->基础数据类型中的布尔值boolean";
}
if(typeof variable == "object"){
if(variable == undefined){
return "null--->基础数据类型中的空值null";
}
}
if(variable instanceof Object){
if(variable instanceof Boolean){
return "Boolean Object--->复杂数据类型中的对象Object中的布尔引用类型Boolean";
}
if(variable instanceof Number){
return "Number Object--->复杂数据类型中的对象Object中的数字引用类型Number";
}
if(variable instanceof String){
return "String Object--->复杂数据类型中的对象Object中的字符串引用类型String";
}
if(variable instanceof Array){
return "Array Object--->复杂数据类型中的对象Object中的数组引用类型Array";
}
if(variable instanceof Function){
return "Function Object--->复杂数据类型中的对象Object中的函数引用类型Function";
}
if(variable instanceof Date){
return "Date Object--->复杂数据类型中的对象Object中的日期时间引用类型Date";
}
if(variable instanceof RegExp){
return "RegExp Object--->复杂数据类型中的对象Object中的正则表达式引用类型RegExp";
}
if(variable instanceof Error){
if(variable instanceof EvalError){ //为[eval错误错误引用类型EvalError]时执行;
return "EvalError Error Object--->复杂数据类型中的对象Object中的错误引用类型Error中的[eval错误错误引用类型EvalError]";
}
if(variable instanceof RangeError){
return "RangeError Error Object--->复杂数据类型中的对象Object中的错误引用类型Error中的[范围错误错误引用类型RangeError]";
}
if(variable instanceof ReferenceError){
return "ReferenceError Error Object--->复杂数据类型中的对象Object中的错误引用类型Error中的[参考错误错误引用类型ReferenceError]";
}
if(variable instanceof SyntaxError){
return "SyntaxError Error Object--->复杂数据类型中的对象Object中的错误引用类型Error中的[语法错误错误引用类型SyntaxError]";
}
if(variable instanceof TypeError){
return "TypeError Error Object--->复杂数据类型中的对象Object中的错误引用类型Error中的[类型错误错误引用类型TypeError]";
}
if(variable instanceof URIError){
return "URIError Error Object--->复杂数据类型中的对象Object中的错误引用类型Error中的[URL错误错误引用类型URIError]";
}
return "Error Object--->复杂数据类型中的对象Object中的基础可自定义错误引用类型Error"; //为基础可自定义错误引用类型Error时执行; //因为上方中其它的判断不是了,故而一般就只能是基础可自定义错误引用类型Error;
}
return "Object--->复杂数据类型中的基础可自定义对象Object"; //为基础可自定义对象Object时执行; //因为上方中其它的判断不是了,故而一般就只能是自定义对象类型Object;
}
}

一个自定义可扩展的检测变量的函数typeofIt();的更多相关文章

  1. Spring中自定义Schema扩展机制

    一.前言 Spring 为基于 XML 构建的应用提供了一种扩展机制,用于定义和配置 Bean. 它允许使用者编写自定义的 XML bean 解析器,并将解析器本身以及最终定义的 Bean 集成到 S ...

  2. 手写面试编程题- 数组去重 深拷贝 获取文本节点 设置奇数偶数背景色 JS中检测变量为string类型的方法 第6题闭包 将两个数组合并为一个数组 怎样添加、移除、移动、复制、创建和查找节点? 继承 对一个数组实现随机排序 让元素水平 垂直居中的三种方式 通过jQuery的extend方法实现深拷贝

    第1题==>实现数组去重 通过 new Set(数组名) // var arr = [12, 12, 3, 4, 5, 4, 5, 6, 6]; // var newarr1 = new Set ...

  3. CKEditor在线编辑器增加一个自定义插件

    CKEditor是一个非常优秀的在线编辑器,它的前身就是FCKEditor,CKEditor据官方说是重写了内核的,但功能和性能比FCKEditor更为强大和优越.记得07年的时候第一次接触FCKEd ...

  4. 如何创建一个自定义jQuery插件

    简介 jQuery 库是专为加快 JavaScript 开发速度而设计的.通过简化编写 JavaScript 的方式,减少代码量.使用 jQuery 库时,您可能会发现您经常为一些常用函数重写相同的代 ...

  5. 如何开始一个模块化可扩展的Web App(转)

    原文链接:http://avnpc.com/pages/start-a-modular-extensible-webapp 日志未经声明,均为AlloVince原创.版权采用『 知识共享署名-非商业性 ...

  6. LESS是一个CSS预处理器,跨浏览器友好,提供诸如变量,函数, mixins 和操作等功能,可以构建动态CSS

    什么是LESS? LESS是一个CSS预处理器,可以为网站启用可自定义,可管理和可重用的样式表. LESS是一种动态样式表语言,扩展了CSS的功能. LESS也是跨浏览器友好. CSS预处理器是一种脚 ...

  7. Scheme语言实例入门--怎样写一个“新型冠状病毒感染风险检测程序”

    小学生都能用的编程语言 2020的春季中小学受疫情影响,一直还没有开学,孩子宅在家说想做一个学校要求的研究项目,我就说你做一个怎么样通过编程来学习数学的小项目吧,用最简单的计算机语言来解决小学数学问题 ...

  8. 【SpringBoot 基础系列】实现一个自定义配置加载器(应用篇)

    [SpringBoot 基础系列]实现一个自定义配置加载器(应用篇) Spring 中提供了@Value注解,用来绑定配置,可以实现从配置文件中,读取对应的配置并赋值给成员变量:某些时候,我们的配置可 ...

  9. 如果你想深刻理解ASP.NET Core请求处理管道,可以试着写一个自定义的Server

    我们在上面对ASP.NET Core默认提供的具有跨平台能力的KestrelServer进行了详细介绍(<聊聊ASP.NET Core默认提供的这个跨平台的服务器——KestrelServer& ...

  10. Javascript学习笔记:3种检测变量类型的方法

    ①typeof检测变量类型 console.log(typeof 1);//number console.log(typeof "a");//string console.log( ...

随机推荐

  1. [转帖]没 K8s 用不了 Chaos Mesh?试试 Chaosd

    https://cn.pingcap.com/blog/cannot-use-chaosmesh-without-k8s-then-try-chaosd Chaosd 是什么? 相信大家对 Chaos ...

  2. [转帖]缓存与存储的一致性策略:从 CPU 到分布式系统

    https://zhuanlan.zhihu.com/p/151745863 在计算机系统设计实践中,我们常常会遇到下图所示架构: 为了解决单个存储器读吞吐无法满足要求的问题,常常需要在存储器上面增加 ...

  3. 【转帖】Linux性能优化(十四)——CPU Cache

    一.CPU Cache 1.CPU Cache简介 CPU Cache是位于CPU与内存之间的临时存储器,容量比内存小但交换速度却比内存要快得多.Cache的出现主要是为了解决CPU运算速度与内存读写 ...

  4. [转帖]nginx 启动、重启、关闭命令详解

    https://www.jianshu.com/p/d70006f18a6d 作者:Gakki nginx 命令详解 输入命令:nginx -h   nginx -h -?,-h:查看帮助 -v:显示 ...

  5. prometheus告警规则分发服务

    Prometheus告警规则分发服务,根据一致性哈希将规则分发到多个节点,使用多个goroutine处理应用告警,在服务增加时可以增加goroutine,服务减少时降低goroutine数目. 规则下 ...

  6. DES加密和base64加密

    DES简介:参考知乎 https://www.zhihu.com/question/36767829 和博客https://www.cnblogs.com/idreamo/p/9333753.html ...

  7. django向数据库更新时间

    1 今天的日期可以用下面的代码: 2 3 import datetime 4 5 today = datetime.date.today() 6 7 8 9 得到昨天的日期可以用: 10 11 yes ...

  8. Swift中发布-订阅框架Combine的使用

    Combine简介 Combine是一个苹果用来处理事件的新的响应式框架,支持iOS 13及以上版本. 你可以使用Combine去统一和简化在处理类似于target-action,delegate,k ...

  9. static_cast, dynamic_cast与reinterpret_cast的区别

    在C++中,static_cast, dynamic_cast和reinterpret_cast都可用于类型转换,它们在具体使用时有什么区别?此外,更为重要的是,为什么不推荐使用强制类型转换? 1. ...

  10. 探索C语言的数据类型:解密编程世界的核心秘密

    欢迎大家来到贝蒂大讲堂 养成好习惯,先赞后看哦~ 所属专栏:C语言学习 贝蒂的主页:Betty's blog 1. 常量与变量 1.1 常量 (1) 常量的概念 常量顾名思义就是无法改变的量,比如一周 ...