JavaScript中的数据类型

  JavaScript中包含五种基本数据类型(原始数据类型),分别是:undefined, null, number, boolean, string; 和一种引用类型 Object,引用类型中包含特殊的一类:Function类型。number, boolean, string三种基本类型对于有包装类型 Number,Boolean,String,这三种包装类型是对象类型。

  针对这些类型,下面分别解释:

  1. typeof 操作符

  可以通过此操作符获取变量的类型,操作返回值为字符串,如下7种:"number", "string", "boolean", "null", "undefined", "function", "object".

  2. 基本类型

  undefined 类型:只有一个值 undefined,在使用 var 声明变量但未对其进行初始化时,此变量的值即为 undefined

var sum;    // 声明后未初始化默认值为undefined
alert(sum)  // "undefined"
alert(age)  // 未声明变量,报错

alert(sum == undefined)       // true
alert(typeof sum)            // "undefined"
alert(typeof age)            // "undefined"
     此处对未声明的变量进行typeof也会返回 "undefined",有其逻辑上的合理性,表示无法操作此变量

  null 类型:也是只有一个值的数据类型,值为 null,从逻辑角度来看,null表示一个空对象指针。

var title = null;

alert(typeof title);    // "object"

// 由于对赋值null的变量执行 typeof 操作会返回 object,
// 所以如果变量未来准备存放对象,最好将其赋值为 null,
// 这样只需要检测其是否为 null,即可知道其是否已保存了一个对象的引用
if (title == null) {
     // do something
}

  number, boolean, string类型及其包装类型:

var num = 5;
var NUM = new Number(5);    // 此处创建一个Number对象
alert(typeof num);    // "number"
alert(typeof NUM);    // "object"

var numf = Number(5);
alert(typeof Number);   // "function" 此处Number是一个包装函数
alert(typeof numf);    // "number"

// boolean 和 string类型与 number相似
var bool = false;
var BOOL = new Boolean(false);
alert(typeof bool);
alert(typeof BOOL);

var str = ‘hello‘;
var STR = new String(‘hello‘);
alert(typeof str);
alert(typeof Str);

  3. NaN : 是一个特殊的数值,用于表示应该返回数值而未返回数值的情况,例如: 除0, Number("a")等

// 1.任何涉及 NaN 的操作都会返回 NaN
alert(1+NaN)    // NaN
alert(NaN/10)    // NaN

// 2.NaN与任何值都不等
alert(NaN == NaN)    // false
alert(2 == NaN)        // false
alert("abc" == NaN)    // false

// 3. isNaN()函数:不能被转换为数值的值都会返回true
alert(isNaN(5))    // false
alert(isNaN(true))    // false
alert(isNaN("a"))    // true

  4. 引用类型:一组数据和功能的集合。对象是引用类型的一个实例。

  [[Class]]是一个内部属性,可以用来给对象分类,它的值有:

  "Arguments", "Array", "Boolean", "Date", "Error", "Function", "JSON", "Math", "Number", "Object", RegExp", “String"

  Javascript只能通过toString()方法(Object.prototype.toString())获取这个内部属性

Object.prototype.toString.call(undefined)       //"[object Undefined]"
Object.prototype.toString.call(null)            //"[object Null]"
Object.prototype.toString.call(function(){})    //"[object Function]"
Object.prototype.toString.call(Math)            //"[object Math]"
Object.prototype.toString.call(Array)         //"[object Function]"
Object.prototype.toString.call([])            //"[object Array]"
Object.prototype.toString.call({})            //"[object Object]"
//基础类型转化为包装类型按照对应的规则处理
Object.prototype.toString.call("abc")        //"[object String]"
Object.prototype.toString.call(200)          //"[object Number]"
Object.prototype.toString.call(true)         // "[object Boolean]"    

可以通过如下的函数获取对象类型:

function getClass(x) {
    var str = Object.prototype.toString.call(x);
    return /^\[object (.*)\]$/.exec(str)[1];
 
}

getClass(null);      // "Null"
getClass({})      //"Object"
getClass([])      //"Array"
getClass(JSON)    //"JSON"
getClass(function(){})//"Function"

function Foo() {}
getClass(new Foo())   //"Object"
时间: 2024-10-09 21:42:33

JavaScript中的数据类型的相关文章

Javascript中的数据类型之旅

虽然Javascript是弱类型语言,但是,它也有自己的几种数据类型,分别是:Number.String.Boolean.Object.Udefined.Null.其中,Object属于复杂数据类型,Object   由无序的键值对组成.其余几种都属于简单数据类型.注意:变量类型首字母大写,而变量值首字母是小写的. JavaScript不支持自定义类型,所以JavaScript中的所有值都属于这六种类型之一.根据ECMAScript 5.1的规范,javascript中共有六种数据类型,分别为:

【译】Javascript中的数据类型

这篇文章通过四种方式获取Javascript中的数据类型:通过隐藏的内置[[Class]]属性:通过typeof运算符:通过instanceof运算符:通过函数Array.isArray().我们也会看看原型对象的构造函数,可能会有意想不到的数据类型结果. [这篇文章是我在adobe发布的文章,我发布在这里只是为了存档.] 知识储备 在开始我们的话题之前,我们不得不复习一些所需的知识点 1.1 原始值和对象 Javascript中的数据,要么是原始值,要么是对象. 原始值.下面是原始值: und

JavaScript中的数据类型和数据类型转换

JavaScript中的数据类型主要有两种,一种是基本数据类型,包括Number,String,Null,Undefined,Boolean,还有一种是引用类型Object typeof是操作符,返回值为String ,返回值包括 undefined,number,string,boolean,object,function. 未经初始化的变量会被保存为undefined 原文地址:https://www.cnblogs.com/sz-toosimple/p/11061794.html

在javaScript中检测数据类型的几种方式

在用javaScript编程的过程中,我们经常会遇到这样一个问题,就是需要检测一个数据或变量的类型,那么在javaScript中给我们提供了哪些方法呢?网上流传的代码比比皆是,但是发现其中有些是有误的,索性我自己动手把每种方法用了一遍,今天我专门整理了下,以便以后查阅. 一.typeof  检测 typeof 是一个一元运算符,语法:typeof(运算数),运算数可以是任意类型.它的返回值是一个字符串,该字符串说明运算数的类型. 1 // var arr = { name:"john"

Javascript中的数据类型知多少

JavaScript 是一种弱类型或者说动态语言.这意味着你不用提前声明变量的类型,在程序运行过程中,类型会被自动确定.这也意味着你可以使用同一个变量保存不同类型的数据 根据ECMAScript 5.1的规范,javascript中共有六种数据类型,分别为:Undefined, Null, Boolean,Number, String.Object.前五种属于基本类型,最后一种属于Object类型. 最新的ECMAScript 6 又加了一种类型:Symbol (ECMAScript 6 新定义

javaScript中的数据类型和命名规则

有7种数据类型: undefined(未定义) null(空), boolean(布尔型) string(字符串) symbol(符号), number(数字) object(对象) 命名规则 Variable (变量)的名字可以由数字.字母.$ 或者 _组成,但是不能包含空格或者以数字为首. 注意: 当 JavaScript 中的变量被声明的时候,程序内部会给它一个初始值 undefined.当你对一个值为 undefined 的变量进行运算操作的时候,算出来的结果将会是 NaN,NaN 的意

JavaScript中基本数据类型和引用数据类型的区别

1.基本数据类型和引用数据类型 ECMAScript包括两个不同类型的值:基本数据类型和引用数据类型. 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值. 2.常见的基本数据类型: Number.String .Boolean.Null和Undefined.基本数据类型是按值访问的,因为可以直接操作保存在变量中的实际值.示例: var a = 10; var b = a; b = 20;

简单回忆一下JavaScript中的数据类型

说到JavaScript,大家都应该知道,它是一门脚本语言,也是一门弱类型语言,也是一门解析型的语言,同时也是一门动态类型的语言. 很好,至于JavaScript中数据类型.其分为基本数据类型和复杂数据类型,或者可以理解为值类型和引用类型. 基本数据类型中有这些:String,Number,Boolean,undefined,null. 复杂数据类型就是我们经常与其周旋不停的:Array, Date,Object,RegExp等等. 而其中的undefined和null也是空类型:String,

javascript 中的数据类型

javascript 中有5中数据类型:undefined.null.Boolean.Number.String,用typeof 检测数据类型. 1 Undefined :Undefined  只有一个值,即 undefined ,在用 var 声明变量但未对其加以初始化时,这个变量就是undefined. 注意:对未声明的变量执行typeof 返回的也是 undefined. 2  Null:NUll也只有一个值,null.从逻辑角度看,null 表示一个空对象指针.所以  typeof  n