相信大家在开发中遇到需要判断变量类型的问题,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. shelve和hashlib模块

    一.shelve模块 shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据格式. 注意: shelve模块封装了pickle模块,,允许 ...

  2. T-SQL 理解SQL SERVER中的分区表(转)

    转载来源一定要明显:  http://www.cnblogs.com/CareySon/archive/2011/12/30/2307766.html 而且这个大神对于数据库方面的文章非常棒 强烈推荐 ...

  3. Eclipse导入tomcat服务器

    创建server

  4. Python程序调试-TabError: inconsistent use of tabs and spaces in indentation

    报错信息:TabError: inconsistent use of tabs and spaces in indentation 说明:代码缩进统一使用Tab键或空格键,不能混用. 解决办法: 1. ...

  5. 37.ROUND() 函数

    ROUND() 函数 ROUND 函数用于把数值字段舍入为指定的小数位数. SQL ROUND() 语法 SELECT ROUND(column_name,decimals) FROM table_n ...

  6. CF570D Tree Requests

    离线 + 树状数组 如果子树中的一个深度的所有点中有两个以上的字母出现了奇数次,那么这个询问的答案就是$No$,其他的情况吧都是$Yes$. 由于只有$26$个字母,我们可以考虑暴力检验,把树映射到$ ...

  7. Vue.js 安装及其环境搭建

    For me or other first studying vue.js. For Windows PC: 1.先安装node.js 安装官网最新的即可 版本应该要大于6.0版本 nodejs的官网 ...

  8. (转)15个非常棒的jQuery无限滚动插件【瀑布流效果】

    原文地址:http://www.cnblogs.com/lyw0301/archive/2013/06/19/3145084.html 现在,最热门的网站分页趋势之一是jQuery的无限滚动(也即瀑布 ...

  9. DELPHI XE5 UP2 无真机输出 APP并转换为IPA(实践整理)

    1.在Mac上配置开发环境(具体步骤请百度)   XCODE5.1+IOS7.1SDK+COMMAND LINE TOOLS   安装PlatformAssistant   买一个真机调试账号(实际测 ...

  10. .net Stream篇(四)

    FileStream 目录: 如何去理解FileStream? FileStream的重要性 FileStream常用构造函数(重要) 非托管参数SafeFileHandle简单介绍 FileStre ...