自定义方法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. [转帖]修改jmeter内存配置(win&mac&linux)

    目录 一.背景: 二.win环境下修改jmeter内存 三.mac&linux环境下修改jmeter内存 四.验证内存是否修改成功 一.背景: 在进行大数据.高并发压测的过程性,有时会遇上JM ...

  2. [转帖]ldconfig命令

    https://linux265.com/course/linux-command-ldconfig.html ldconfig命令的作用主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文 ...

  3. [转帖]磁盘负载指标 %iowait, await, %util 的正确理解

    说明 %iowait, await, %util 是用来衡量硬盘负载的三个指标, 但是这几个指标通常容易被误解, 实际上, 这三个指标单纯的高, 并不一定能说明相应的磁盘有问题或者有瓶颈, 而是需要结 ...

  4. java 调优需要关闭的组建

  5. HTTPD 搭建正向代理 使无网络访问权限的服务器能够访问互联网服务的快捷办法

    背景 公司有保密要求比较高,数据安全要求比较高的企业客户,要求核心业务服务器部允许直接访问互联网,但是因为我们有一些OCR识别以及发票查验等的场景需要连接云端的服务才可以正常使用, 所以这里面就存在安 ...

  6. echarts 设置legend样式

    设置legend样式 legend: { x: 'center', data: ['班车', '包车'], icon: "circle", // 这个字段控制形状 类型包括 cir ...

  7. 升级到win11 22h2的体验

    win11 22h2更稳定了 在win11 22h2发布后没多久,我就升级到了这个版本,截止目前已经使用半个月了,谈谈我的使用感受. 总体要比之前的版本更稳定,表现为笔记本风扇不会突然响,突然卡顿,不 ...

  8. [vue] 脚手架笔记

    笔记 脚手架文件结构 ├── node_modules ├── public │ ├── favicon.ico: 页签图标 │ └── index.html: 主页面 ├── src │ ├── a ...

  9. C/C++中的可变参数和可变参数模板

    目录 1.说明 2.C语言中的可变参数 3.C++中的可变参数模板 2.1.使用递归的方式遍历 2.2.使用非递归的方式遍历 1.说明 不谈官方定义,就从个人理解上说,可变参数 就是函数传参的时候,不 ...

  10. Advanced Installer设置安装最后一步启动软件

    左侧用户界面中选择对话框-ExitDialog 在完成操作项中勾选"安装结束时启动应用程序",在弹出的对话框中选择需要启动的exe文件