• 数据类型


    基本的数据类型

     原始类型(简单数据类型、基本数据类型)

    Undefined类型: 表示声明了变量但未对其初始化时赋予该变量的值。undefined为Undefined类型下的唯一的一个值。

    Null类型:用于表示尚未存在的对象。Null类型下也只有一个专用值null。

    Boolean类型:有两个值true和false,主要用于条件判断,控制执行流程。

    Number类型:代表数字(即包括32的整数,也包括64位的浮点数)

    String类型:用于代表字符串。

    注:关于undefined与null的关系,可以参见《理解Javascript_02_理解undefined和null》一文。

     

    对象:一个无序属性的集合,这些属性的值为简单数据类型、对象或者函数。注:这里对象并不特指全局对象Object.

     

    函数:函数是对象的一种,实现上内部属性[[Class]]值为"Function",表明它是函数类型,除了对象的内部属性方法外,还有 [[Construct]]、[[Call]]、[[Scope]]等内部属性。函数作为函数调用与构造器(使用new关键字创建实例对象)的处理机制不一样(Function对象除外),内部方法[[Construct]]用于实现作为构造器的逻辑,方法[[Call]]实现作为函数调用的逻辑。同上,这里的函数并不特指全局对象Function。

    注:关于函数与对象的关系可以引申出很多问题,现在可以不去深究函数实现内部的细节,这将在以后的文章中探讨。

    注:"基本的数据类型"与"基本数据类型"的概念不一样,"基本的数据类型"指的是最常用的数据类型,"基本数据类型"指的是原始类型(关于原始类型与引用类型的问题,具体可以参见《理解Javascript_01_理解内存分配》一文)。

     

    内置数据类型(内置对象)

    Function: 函数类型的用户接口。
    Object: 对象类型的用户接口。
    Boolean, Number, String: 分别为这三种简单数值类型的对象包装器,对象包装在概念上有点类似C#/Java中的Box/Unbox。
    Date, Array, RegExp: 可以把它们看作是几种内置的扩展数据类型。

     

    首先,Function, Object, Boolean, Number, String, Date, Array, RegExp等都是JavaScript语言的内置对象,它们都可以看作是函数的派生类型,例如Number instanceof Function为true,Number instanceof Object为true。在这个意义上,可以将它们跟用户定义的函数等同看待。
    其次,它们各自可以代表一种数据类型,由JS引擎用native code或内置的JS代码实现,是暴露给开发者对这些内置数据类型进行操作的接口。在这个意义上,它们都是一种抽象的概念,后面隐藏了具体的实现机制。
    在每一个提到Number, Function等单词的地方,应该迅速的在思维中将它们实例化为上面的两种情况之一。

     

    数据类型实现模型描述

    注:图片来源于http://www.cnblogs.com/riccc

    Build-in *** data structure: 指JS内部用于实现***类型的数据结构,由宿主环境(浏览器)提供,这些结构我们基本上无法直接操作。
    Build-in *** object: 指JS内置的Number, String, Boolean等这些对象,这是JS将内部实现的数据类型暴露给开发者使用的接口。
    Build-in *** constructor: 指JS内置的一些构造器,用来构造相应类型的对象实例。它们被包装成函数对象暴露出来,例如我们可以使用下面的方法访问到这些函数对象:

    01 //Passed in FF2.0, IE7, Opera9.25, Safari3.0.4
    02 //access the build-in number constructor
    03 var number = new Number(123);
    04 var numConstructor1 = number.constructor; //or
    05 var numConstructor2 = new Object(123).constructor;
    06 //both numConstructor1 and numConstructor2 are the build-in Number constructor
    07 numConstructor1 == numConstructor2 //result: true
    08 //access the build-in object constructor
    <div class="line alt1" style="font: normal normal normal 12px/normal 'black verdana'; line-height: 1.8; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; border-style: initial !important; border-color: initial !important; outline- 0px !important; outline-style: initial !important; outline-color: initial !important; background-image: none !important; background-attachment: initial !important; background-origin: i
  • 相关阅读:
    hdu 1176 免费馅饼
    算法竞赛入门经典训练指南-做题详细记录(更新中)
    poj-3250 Bad Hair Day
    poj-2823 Sliding Window
    2019.7.15-7.20暑假集训总结
    hdu 1754 I hate it
    poj 1611 The Suspects
    hdu 3038 How Many Answers Are Wrong
    hdu 1213 How Many Tables
    POJ 1182 食物链
  • 原文地址:https://www.cnblogs.com/aaronjs/p/2167590.html
Copyright © 2020-2023  润新知