数据类型概述

原文地址:https://wangdoc.com/javascript/

简介

JavaScript的数据类型共有6种。(ES6又新增了第7种Symbol类型的值)

  • 数值(number):整数和小数。
  • 字符串(string):字符串 。
  • 布尔值(boolean):表示真伪的两个特殊值。
  • undefined:表示未定义或不存在。
  • null:表示空值。
  • 对象(object):各种值组成的集合。
    通常,数值、字符串、布尔值这三个类型合称为原始类型(primitive type)的值,即它们是最基本的数据类型,不能再细分了。对象则称为合成类型(complex type)的值。至于undefinednull,一般将它们看成两个特殊值。
    对象时最复杂的数据类型,又可以分为三个子类型。
  • 侠义的对象(object)
  • 数组(array)
  • 函数(function)
    函数其实是处理数据的方法,JavaScript把它当成一种数据类型,可以赋值给变量,这为编程带来了很大的灵活性。

typeof运算符

JavaScript有三种方法,可以确定一个值到底是什么类型。

  • typeof运算符
  • instanceof运算符
  • Object.prototype.toString方法
    typeof可以返回一个值得数据类型,数值、字符串、布尔值分别返回number、string、boolean
typeof 123 // number
typeof "123" // string
typeof false // boolean

函数返回function

function f() {}
typeof f; // function

undefined返回undefined
对象返回object。

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

在JavaScript内部,数组是一种特殊的对象。这里顺便提一下,instanceof运算符可以区分数组和对象。

var o = {};
var a = [];
o instanceof Array // false
a instanceof Array // true

null返回object
这个是历史原因造成的。1995年的JavaScript语言第一版,没考虑null,只把它当成object的一种特殊值。后来null独立出来称为单独的数据类型,但是为了兼容旧代码,typeof null返回object就无法改变了。

原文地址:https://www.cnblogs.com/chris-jichen/p/9923776.html