深度封装typeof判断

function myTypeof(val){
    var type = typeof(val);
    var myString = Object.prototype.toString;
    var res = {
        ‘[object Object]‘ : ‘object‘,
        ‘[object Array]‘ : ‘array‘,
        ‘[object Number]‘ : ‘object number‘,
        ‘[object String]‘ : ‘object string‘,
        ‘[object Boolean]‘ : ‘object boolean‘,
    };
    if(val === null){
        return ‘null‘
    }else if(type == ‘object‘){
        var tt = myString.call(val);
        return res[tt]
    }else{
        return type
    }

}
console.log(myTypeof(new Number))

原文地址:https://www.cnblogs.com/xm16/p/10357743.html

时间: 2024-10-09 11:56:33

深度封装typeof判断的相关文章

软件设计的哲学:第四章 深度封装模块

目录 4.1 模块化设计 4.2什么是接口? 4.3 抽象 4.4 深度模块 4.5浅模块 4.6 类拆分 4.7示例:Java和Unix I/O 4.8 结论 管理软件复杂性最重要的技术之一是系统设计,这样开发人员在任何时候都只需要面对总体复杂性的一小部分.这种方法称为模块化设计,本章介绍其基本原理. 4.1 模块化设计 在模块化设计中,软件系统被分解成一系列相对独立的模块.模块可以采用多种形式,例如类.子系统或服务.在理想的情况下,每个模块都完全独立于其他模块:开发人员可以在任何模块中工作,

typeof判断类型(数组类型得用instanceof)

var a= 1; console.log(typeof a); var b= '1'; console.log(typeof b); var c; console.log(typeof c); var d= true; console.log(typeof d); var e= [1,2,3]; console.log(typeof e); var f= function(){}; console.log(typeof f); console.log(e instanceof Array) 观

剑指Offer37 二叉树深度与平衡二叉树判断

1 /************************************************************************* 2 > File Name: 37_TreeDepth.cpp 3 > Author: Juntaran 4 > Mail: [email protected] 5 > Created Time: 2016年09月03日 星期六 09时49分38秒 6 ***************************************

javascript中常见的函数封装 :判断是否是手机,判断是否是微信,获取url地址?后面的具体参数值,毫秒格式化时间,手机端px、rem尺寸转换等

// 判断是否是手机function plat_is_mobile(){ var sUserAgent = navigator.userAgent.toLowerCase(); var bIsIpad = sUserAgent.match(/ipad/i) == "ipad"; var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os"; var bIsMidp = sUserAgent.match

求一个二叉树的深度以及如何判断一个二叉树是一个平衡二叉树

/** * Created by Administrator on 2015/10/10. */public class TreeNode { //树节点的值 private char data; //节点的左子树 private TreeNode leftTree; //节点的右子树 private TreeNode rightTree; public TreeNode(char data,TreeNode leftTree,TreeNode rightTree){ this.data=dat

log4cpp深度封装

简介 关于log4cpp的介绍与好处就不再赘言了,百度一搜一大把.主要是对于log4cpp的使用如果不封装一下,感觉还是挺麻烦的,例如不少函数名挺长的.所以自己动手把它的日常使用进行了封装,可以让使用log4cpp就像调用一句printf()函数一样简单快捷. 封装目标 不需要用一次就调用一次getInstance,只需要在main文件中引入一次即可 封装成需要使用时只需简短的一举logError("somelog") 就搞定 输出的日志内容包含:文件名,函数名,行号(通过以上函数调用

【javascript】——封装typeof

function typeOf(value) { var ret = typeof(value); var template = { "[object Array]": "array", "[object Object]": "object",    "[object Number]": "number - object", "[object Boolean]": &

js判断复合数据类型的两种方式(typeof不奏效了)

js判断复合数据类型的两种方式(typeof不奏效了) 博客分类: Web前端-JS语言核心 JavaScript 作者:zccst typeof认为所有的复合数据类型都是"object",没法进一步细分,所以还得用其他方法 先上结论: 1,(arr && typeof(arr) === "object" && arr.constructor === Array) 2,Object.prototype.toString.call(ar

python+selenium自动化软件测试(第4章):场景判断与封装

4.1 显示等待WebDriverWait 前言:在脚本中加入太多的sleep后会影响脚本的执行速度,虽然implicitly_wait()这种隐式等待在一定程度上节省了很多时间.但是一旦页面上某些js无法加载出来(其实界面元素已经出来了),左上角那个图标一直转圈,这时候会一直等待的.一.参数解释1.这里主要有三个参数:class WebDriverWait(object):driver, timeout, poll_frequency2.driver:返回浏览器的一个实例,这个不用多说3.ti