一个自定义可扩展的检测变量的函数typeofIt();
自定义方法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();的更多相关文章
- Spring中自定义Schema扩展机制
一.前言 Spring 为基于 XML 构建的应用提供了一种扩展机制,用于定义和配置 Bean. 它允许使用者编写自定义的 XML bean 解析器,并将解析器本身以及最终定义的 Bean 集成到 S ...
- 手写面试编程题- 数组去重 深拷贝 获取文本节点 设置奇数偶数背景色 JS中检测变量为string类型的方法 第6题闭包 将两个数组合并为一个数组 怎样添加、移除、移动、复制、创建和查找节点? 继承 对一个数组实现随机排序 让元素水平 垂直居中的三种方式 通过jQuery的extend方法实现深拷贝
第1题==>实现数组去重 通过 new Set(数组名) // var arr = [12, 12, 3, 4, 5, 4, 5, 6, 6]; // var newarr1 = new Set ...
- CKEditor在线编辑器增加一个自定义插件
CKEditor是一个非常优秀的在线编辑器,它的前身就是FCKEditor,CKEditor据官方说是重写了内核的,但功能和性能比FCKEditor更为强大和优越.记得07年的时候第一次接触FCKEd ...
- 如何创建一个自定义jQuery插件
简介 jQuery 库是专为加快 JavaScript 开发速度而设计的.通过简化编写 JavaScript 的方式,减少代码量.使用 jQuery 库时,您可能会发现您经常为一些常用函数重写相同的代 ...
- 如何开始一个模块化可扩展的Web App(转)
原文链接:http://avnpc.com/pages/start-a-modular-extensible-webapp 日志未经声明,均为AlloVince原创.版权采用『 知识共享署名-非商业性 ...
- LESS是一个CSS预处理器,跨浏览器友好,提供诸如变量,函数, mixins 和操作等功能,可以构建动态CSS
什么是LESS? LESS是一个CSS预处理器,可以为网站启用可自定义,可管理和可重用的样式表. LESS是一种动态样式表语言,扩展了CSS的功能. LESS也是跨浏览器友好. CSS预处理器是一种脚 ...
- Scheme语言实例入门--怎样写一个“新型冠状病毒感染风险检测程序”
小学生都能用的编程语言 2020的春季中小学受疫情影响,一直还没有开学,孩子宅在家说想做一个学校要求的研究项目,我就说你做一个怎么样通过编程来学习数学的小项目吧,用最简单的计算机语言来解决小学数学问题 ...
- 【SpringBoot 基础系列】实现一个自定义配置加载器(应用篇)
[SpringBoot 基础系列]实现一个自定义配置加载器(应用篇) Spring 中提供了@Value注解,用来绑定配置,可以实现从配置文件中,读取对应的配置并赋值给成员变量:某些时候,我们的配置可 ...
- 如果你想深刻理解ASP.NET Core请求处理管道,可以试着写一个自定义的Server
我们在上面对ASP.NET Core默认提供的具有跨平台能力的KestrelServer进行了详细介绍(<聊聊ASP.NET Core默认提供的这个跨平台的服务器——KestrelServer& ...
- Javascript学习笔记:3种检测变量类型的方法
①typeof检测变量类型 console.log(typeof 1);//number console.log(typeof "a");//string console.log( ...
随机推荐
- [转帖]Kafka之ack机制
前言 之前的博客里说了,Kafka的消息同步是一种ISR机制,本质上是"完全同步"的一种优化. 都在说,消息被ISR中所有副本都写入才算写入成功.但是这样未免定的太死板了,所以,K ...
- [转帖]RFC1180
[译] RFC 1180:朴素 TCP/IP 教程(1991) 译者序 本文翻译自 1991 年的一份 RFC(1180): A TCP/IP Tutorial. 本文虽距今将近 20 年,但内容并未 ...
- MYsql备份恢复简单过程
1. 备份数据库 建完数据库更新完补丁之后进行数据库的备份操作. mysqldump -uroot --databases yourdatabase -p > /home/yourdatabas ...
- Git的使用(二):远程仓库
在github上创建远程仓库 本地创建Git仓库适合自己一个人完成工程,但是实际情况中我们需要其他人来协作开发,此时就可以把本地仓库同步到远程仓库,同时还增加了本地仓库的一个备份.常用的远程仓库就是g ...
- Python库【数据处理、机器学习、大数据、文件处理等14个类的所有python库整理】
吐血整理一个月--终于把所有Python库整理齐了....._小熊猫爱恰饭的博客-CSDN博客 参考链接: 一.数据处理 #python学习资料群:660193417 ##3 Chardet # 字符 ...
- [转发]MySQL安装配置教程(超级详细、保姆级)
MySQL安装配置教程(超级详细.保姆级)_SoloVersion的博客-CSDN博客_mysql安装配置教程一. 下载MySQLMysql官网下载地址https://downloads.mysql. ...
- 【树】N叉树的遍历【力扣589、力扣590】超详细的解释和注释
说在前面 欢迎朋友们来到我的博客. 今天我们的重点是,N叉树的遍历. 今天,博主就带来两道经典的题目,领着大家理解N叉树的前序遍历和后序遍历! 当然,还想学习其它算法的朋友们,可以通过订阅博主的算法专 ...
- opcache导致的RCE复现
前言 RCE得搭配着文件上传的点来进行利用 环境搭建 用docker搭个php7的环境,作者用的php7.0 docker run -itd --name php7 -p 8083:80 php:7. ...
- (Python)每日代码||2024.1.17||函数中给列表形参默认值时,该默认列表在函数中的改变会保留下来
def f(x,li=[1]): print(id(li)) li.append(x) print(li) f('a')#第一次调用函数 print() f('b')#第二次调用函数 print() ...
- vue 导出多页pdf, window.print()实现
如果你对分页打印没思路,而网上的现成方案又不适合,不妨进来看看,也许会对你有帮助. 由于工作环境是局域网,对于插件的安装有限制,所以排除了jspdf + html2canvas的实现方式:采用wind ...