相信大家在开发中遇到需要判断变量类型的问题,js变量按存储类型可分为值类型和引用类型,值类型包括Undefined、String、Number、Boolean,引用类型包括object、Array、Function,
直接上辨别类型的封装函数

function varType(n) {
var typeStr = Object.prototype.toString.call(n);
//var typeOfName = (typeof n);
var typeName = '';
switch (typeStr){
case '[object String]':
typeName = 'string';
break;
case '[object Number]':
typeName = 'number';
break;
case '[object Boolean]':
typeName = 'boolean';
break;
case '[object Undefined]':
typeName = 'undefined';
break;
case '[object Object]':
typeName = 'object';
break;
case '[object Array]':
typeName = 'array';
break;
case '[object Null]':
typeName = 'null';
break;
case '[object RegExp]':
typeName = 'RegExp';
break;
case '[object Symbol]':
typeName = 'symbol';
break;
case '[object JSON]':
typeName = 'json';
break;
case '[object Math]':
typeName = 'math';
break;
default:
typeName = 'object';
}
return typeName;
};
console.log(varType("1"));
console.log(varType(1));
console.log(varType({}));
console.log(varType([]));
console.log(varType(function () {}));
console.log(varType(null));
console.log(varType(undefined));
console.log(varType(true));
console.log(varType(NaN));
console.log(varType(Symbol()));
console.log(varType(JSON));
console.log(varType(Date));
console.log(varType(Math));
console.log(varType(RegExp()));

  

16. js 判断变量类型,包括ES6 新类型Symbol的更多相关文章

  1. js 判断变量是否为空

    js 判断变量是否为空 欢迎指正,补充! /** * 判断变量是否为空, * @param {[type]} param 变量 * @return {Boolean} 为空返回true,否则返回fal ...

  2. H5案例分享:使用JS判断客户端、浏览器、操作系统类型

    使用JS判断客户端.浏览器.操作系统类型 一.JS判断客户端类型 JS判断客户端是否是iOS或者Android手机移动端 通过判断浏览器的userAgent,用正则来判断手机是否是ios和Androi ...

  3. js判断变量未定义

    js判断变量未定义 控制台输出未定义变量a会报错: 我们打印出a的数据类型是: 我们可以看到未定义变量的数据类型是 "undefined" 所以判断js变量是否未定义的方法就是 t ...

  4. JS中的 ES6新类型iterable

    1.1 iterable字面意思:可迭代的,可重复的 iterable是ES6标准引入的新的类型.而Array.Map和Set都属于iterable类型 1.2 为什么加入iterable类型? 遍历 ...

  5. js判断变量类型,类型转换,

    1.typeof 操作符 主要检测基础数据类型 var a="zhangqian"; var b=true; ; var d; var e=null; var f=new Obje ...

  6. js判断变量是否为undefined

    可能很多朋友认为undefined是在js中未定义变量时才会提示的错误,其实不然undefined 是js中的一特殊的变量,我们也可以提前定义哦,下面我来介绍js undefined 用法. Java ...

  7. js判断变量是否等于undefined

    js中判断变量是否等于undefined,不是使用==,而是使用typeof. typeof(featureId)!="undefined"

  8. JS判断访问设备、客户端操作系统类型

    先给出一个实例:判断windows.linux.android 复制以下代码另存为html文件即可. <html> <head> <title>判断操作系统< ...

  9. [转]JS判断访问设备、客户端操作系统类型

    本文转自:http://www.cnblogs.com/duanguyuan/p/3534470.html 先给出一个实例:判断windows.linux.android 复制以下代码另存为html文 ...

随机推荐

  1. Android 模拟MotionEvent事件 触发输入法

    Android 模拟MotionEvent事件 触发输入法   android输入法layoutbutton文本编辑encoding 关键词:MotionEvent,模拟按键,模拟点击事件,主动弹出输 ...

  2. 08-Location总结图解

    URI解析  首先要判断有没有精准匹配,能不能精准匹配.计算机里面没有什么这种差不多这种东西.跟人聊天才说差不多,最近过得怎么样啊,还行吧,差不多吧,这个不多是多还是不多啊. 预定义库->Gen ...

  3. 字符编码(续)---Unicode与ANSI字符串转换以及分辨字符编码形式

    Unicode与ANSI字符串转换 我们使用windows函数MultiByteToWideChar将多字节字符串转换为宽字符字符串,如下: int MultiByteToWideChar( UINT ...

  4. POI 生成exel报表

    去官网下载相关jar包   http://poi.apache.org/ package poi.zr.com; import java.io.File; import java.io.FileNot ...

  5. Hyperledger Fabric1.0 整体结构

    整体结构 Hyperledger Fabric 在 1.0 中,架构已经解耦为三部分: fabric-peer:主要起到 peer 作用,包括 endorser.committer 两种角色: fab ...

  6. 用JS实现点击TreeView根节点复选框全选

    以下两种方法哪个不报错就用哪个.用法都是在TreeView标签中加入OnClick="",然后引入函数名即可 第一种方法:(摘自:http://www.cnblogs.com/fr ...

  7. 构建使用 Azure 网站的云

    Apurva JoshiSunitha Muthukrishna 在设计云解决方案时,设计始终要为故障做好准备.这一点很重要,应牢记. 然而,许多应用程序并非按照这种方式构建. 出现这种情况的主要原因 ...

  8. HDU 6047 Maximum Sequence (贪心+单调队列)

    题意:给定一个序列,让你构造出一个序列,满足条件,且最大.条件是 选取一个ai <= max{a[b[j], j]-j} 析:贪心,贪心策略就是先尽量产生大的,所以就是对于B序列尽量从头开始,由 ...

  9. Matrix和Camera配合实现3D效果

    一.Camera与Matrix简单介绍 1.Camera Android中一共有两个Camera,分别为:android.graphics.Camera android.hardware.Camera ...

  10. C# -- 泛型(2)

    通过前面的文章我们知道“泛型”是个“形容词”,并且了解了 “泛型类” 和 “泛型数组” ,下面我们来看看泛型的其它的使用方式. 上一篇:C# -- 泛型(1) <1>.泛型方法 上一篇文章 ...