博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据类型一
阅读量:5757 次
发布时间:2019-06-18

本文共 2099 字,大约阅读时间需要 6 分钟。

简介

JavaScript 语言的每一个值,都属于某一种数据类型

原始类型

  • boolean
  • number
  • string

特殊值

  • undefined
  • null

复杂类型

  • object
  • array
  • function

判断值的类型

1.typeof 运算符

typeof 运算符可以返回一个值的数据类型。
typeof true             // "boolean"typeof 100              // "number"typeof 'Hello World'    // "string"var fn = function() {    console.log(str);}typeof fn    // "function"var u;typeof u     // "undefined"// 由于历史原因,null 的类型是 objecttypeof null    // "object"typeof window // "object"typeof {}     // "object"typeof []     // "object"

2.instanceof 运算符

instanceof 运算符返回一个布尔值,表示对象是否为某个构造函数的实例。

instanceof 运算符的左边是实例对象,右边是构造函数。它会检查右边构建函数的原型对象(prototype),是否在左边对象的原型链上。

// instanceof 运算符只能用于对象,不适用原始类型的值以及undefined,nullvar s = 'hello's instanceof String    // false

instanceof 的用处

var x = [1, 2, 3];var y = {};var date = new Date();x instanceof Array     // truey instanceof Object    // truedate instanceof Date      // true

3.Object.prototype.toString 方法

Object.prototype.toString.call(value)
  • 数值:返回[object Number]。
  • 字符串:返回[object String]。
  • 布尔值:返回[object Boolean]。
  • undefined:返回[object Undefined]。
  • null:返回[object Null]。
  • 数组:返回[object Array]。
  • arguments 对象:返回[object Arguments]。
  • 函数:返回[object Function]。
  • Error 对象:返回[object Error]。
  • Date 对象:返回[object Date]。
  • RegExp 对象:返回[object RegExp]。
  • 其他对象:返回[object Object]。
Object.prototype.toString.call(1)         // "[object Number]"Object.prototype.toString.call('')        // "[object String]"Object.prototype.toString.call(true)      // "[object Boolean]"Object.prototype.toString.call(undefined) // "[object Undefined]"Object.prototype.toString.call(null)      // "[object Null]"Object.prototype.toString.call(Math)      // "[object Math]"Object.prototype.toString.call({})        // "[object Object]"Object.prototype.toString.call([])        // "[object Array]"

利用这个特性,可以写出typeof运算符更准确的类型判断函数

var type = function (o){  var s = Object.prototype.toString.call(o);  return s.match(/\[object (.*?)\]/)[1].toLowerCase();};type({});         // "object"type([]);         // "array"type(5);          // "number"type(null);       // "null"type();           // "undefined"type(/abcd/);     // "regex"type(new Date()); // "date"

转载地址:http://qqvkx.baihongyu.com/

你可能感兴趣的文章
android 资源种类及使用
查看>>
Explorer程序出错
查看>>
Centos7同时运行多个Tomcat
查看>>
使用CocoaPods过程中的几个问题
查看>>
我的友情链接
查看>>
为eclipse安装maven插件
查看>>
公司新年第一次全员大会小记
查看>>
最懒的程序员
查看>>
JAVA8 Stream 浅析
查看>>
inner join on, left join on, right join on要详细点的介绍
查看>>
SAS vs SSD对比测试MySQL tpch性能
查看>>
Spring boot 整合CXF webservice 全部被拦截的问题
查看>>
Pinpoint跨节点统计失败
查看>>
【Canal源码分析】Canal Server的启动和停止过程
查看>>
机房带宽暴涨问题分析及解决方法
查看>>
iOS 绕过相册权限漏洞
查看>>
我的友情链接
查看>>
XP 安装ORACLE
查看>>
八、 vSphere 6.7 U1(八):分布式交换机配置(vMotion迁移网段)
查看>>
[转载] 中华典故故事(孙刚)——19 万岁
查看>>