资讯专栏INFORMATION COLUMN

数据类型一

Yangyang / 2390人阅读

摘要:简介语言的每一个值,都属于某一种数据类型原始类型特殊值复杂类型判断值的类型运算符运算符可以返回一个值的数据类型。由于历史原因,的类型是运算符运算符返回一个布尔值,表示对象是否为某个构造函数的实例。

简介
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 的类型是 object
typeof null    // "object"

typeof window // "object"
typeof {}     // "object"
typeof []     // "object"

2.instanceof 运算符

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

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

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

instanceof 的用处

var x = [1, 2, 3];
var y = {};
var date = new Date();
x instanceof Array     // true
y instanceof Object    // true
date 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"

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/97724.html

相关文章

  • CSS通用数据类型

    摘要:相反的,通用数据类型并不和任何特定的属性相关联。本文,我将整体讲述一下所有的通用数据类型。这样以来就能够避免和字符串数据类型混淆。距离距离数据类型表示距离的单位,有两种长度单位。渐变函数使用数据类型来定义。 CSS中属性的值有着许多种格式。为了让用户代理(即浏览器)能够识别一个值是否有效,则需要确认该值是否符合该类值支持的格式的其中一种。这些属性值所支持的格式叫做数据类型,在规范中用的...

    Elle 评论0 收藏0
  • CSS通用数据类型

    摘要:相反的,通用数据类型并不和任何特定的属性相关联。本文,我将整体讲述一下所有的通用数据类型。这样以来就能够避免和字符串数据类型混淆。距离距离数据类型表示距离的单位,有两种长度单位。渐变函数使用数据类型来定义。 CSS中属性的值有着许多种格式。为了让用户代理(即浏览器)能够识别一个值是否有效,则需要确认该值是否符合该类值支持的格式的其中一种。这些属性值所支持的格式叫做数据类型,在规范中用的...

    Markxu 评论0 收藏0
  • 数据结构与算法的Python实现()——抽象数据类型和Python类

    摘要:一抽象数据类型,缩写为是计算机领域一种很基础的方法,基本的思想就是数据抽象。二抽象数据类型的概念和描述抽象数据类型把数据定义为抽象的对象集合,只为他们定义可用的操作,而不用暴露具体的实现细节。 文章首发于公众号一件风衣(ID:yijianfengyi) 名人名言强调基础的重要性的句子不胜枚举,数据结构与算法作为计算机专业的必学科目,其重要性不言而喻。 在以往的教学体系中,数据结构与算法...

    Batkid 评论0 收藏0
  • JavaScript基本语法(

    摘要:目录语句变量小结基本语法一是核心知识点的基本语法的第一部分,主要介绍了语句表达式变量和数据类型不包括函数类型的基本知识点,函数类型将在下一章函数二中详细探讨语句程序的执行是由一条条语句组成的每一条语句是为完成特定任务而执行的操作语句当中可以 目录 1. 语句 2. 变量 3. 小结 JavaScript基本语法(一)是JavaScript核心知识点(ECMAScript)的基本语法的...

    shiina 评论0 收藏0
  • PostgreSQL的实践数据类型

    摘要:数据类型类型转换数值类型数值类型序列类型不同于的自增长,和都是序列的方式创建使用创建序列关联列表架构模式名称类型拥有者数据表数据表序列数行记录数据 数据类型 showImg(https://segmentfault.com/img/bVbi9mw?w=750&h=379);showImg(https://segmentfault.com/img/bVbi9mz?w=729&h=626)...

    高璐 评论0 收藏0

发表评论

0条评论

Yangyang

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<