自定义方法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. rclone 的下载地址-官方网站

    Downloads Rclone is single executable (rclone, or rclone.exe on Windows) that you can simply downloa ...

  2. [转帖]解读内核 sysctl 配置中 panic、oops 相关项目

    写在前面 本篇文章的内容主要来自内核源码树 Documentation/admin-guide/sysctl/kernel.rst文件. softlockup vs hardlockup softlo ...

  3. ARM 平台Docker运行RabbitMQ 以及迁移的简单办法

    公司网络很垃圾. 可以使用vps 进行下载和打包  放到 公司的机器上面进行使用. 1. 搜索有没有可用的镜像. [root@JNXLH ~]# docker search rabbitmq |gre ...

  4. MySQL批量执行SQL修改视图属主的办法

    前人挖坑 后人填坑 Study From https://blog.csdn.net/carefree2005/article/details/109812943 第一步: 形成SQL select ...

  5. 京东ES支持ZSTD压缩算法上线了:高性能,低成本 | 京东云技术团队

    ​ 1 前言 在<ElasticSearch降本增效常见的方法>一文中曾提到过zstd压缩算法[1],一步一个脚印我们终于在京东ES上线支持了zstd:我觉得促使目标完成主要以下几点原因: ...

  6. css hover频繁闪烁

    今天遇见一个问题. 在鼠标放上 图片上的时候. 删除图标一直不停的闪烁. 我当时觉得很奇怪,父子关系的结构 不应该闪烁呀. 看了下html和css,发现子元素(要hover)的元素是绝对定位了的 于是 ...

  7. 【代码片段】makefile 中通过 shell 函数执行 sed

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 先上代码:(在 macos 上调试通过) # define ...

  8. 【JS 逆向百例】拉勾网爬虫,traceparent、__lg_stoken__、X-S-HEADER 等参数分析

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后 ...

  9. 【JS 逆向百例】吾爱破解2022春节解题领红包之番外篇 Web 中级题解

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 逆向目标 本次逆向的目标来源于吾爱破解 2022 春节解题领红包之番外篇 Web 中级题,吾爱破解每年都会有派送红包活动(送吾爱 ...

  10. 【JS 逆向百例】W店UA,OB反混淆,抓包替换CORS跨域错误分析

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后 ...