JavaScript的数据类型

  ✍ 原始数据类型值:

  JavaScript有5中原始数据类型,通过调用typeof运算符返回值查看变量类型:

    ➣ Undefined ➔ 'undefined';

      Undefined(未定义)类型只有一个值,即undefined。当声明的变量未初始化时,该变量的默认值是undefined。

    ➣ Boolean ➔ 'boolean';

      Boolean(布尔)类型是JavaScript中最常用的类型之一。它有两个值true和false;

    ➣ Number ➔ 'number';

      JavaScript中定义最特殊的类型是Number型,这种类型既可以表示32位整型,也可以表示64位浮点数。直接输入的(而不是从另一个变量访问的)任何数字都被看做Number字面量。

    ➣ String ➔ 'string';

      String类型的独特之处在于它是唯一没有固定大小的原始类型。可以用字符串存储0或更多的Unicode字符,由16位整数表示(Unicode是一种国际字符集)。

    ➣Null ➔ 'object'(引用类型返回的也是object);

      只有一个专用值unll,即它的字面量。值undefined实际上是从值null派生来的,因此JavaScript把它们定义为相等的;

null == undefined    //返回true

❋ JavaScript中实现数据类型转换

  转化为字符串值:JavaScript定义所有对象都有toString()方法,无论它是伪对象,还是真的对象。使用toString()方法对数据进行类型转换的结果由变量的值决定。

例如:

 var test = false;    //test的字面量是Boolean类型,值为false

test.toString();     //返回的值为'false'

var numInt = 10;     //numInt是Number类型,值为10

var numfloat = 10.0; //numfloat是Number类型,值为10.0

numInt.toString();   //返回的值为'10'

numfloat.toString(); //返回的值为'10';如果numfloat的字面量是10.1,那么返回的值为'10.1'

  对于非数字的原始值,JavaScript提供了两种转换成数字的方法,即parseInt()和parseFloat(),前者把值转换成整型,后者把值转换成浮点数。只有对String类型调用这些方法,它们才能正确运行。对其他类型返回的都是NaN。

var iNum1 = parseInt('1234blasd');   //返回1234

var iNum2 = parseInt('22.5');        //返回22

var iNum3 = parseInt('0xA');         //返回10

var fNum1 = parseFloat('1234absa');  //返回1234.0

var fNum2 = vaparseFloat('22.3214'); //返回22.3214

var fNum3 = paeseFloat('0xA');       //返回NaN

  也可以强制转换:

    ➣ Boolean(value)——把给定的值转化为Boolean型;

    ➣ Number(value)——把给定的值转换成字符串;

    ➣ String(value)——把给定的值转换成字符串;

    用这三个函数之一转换值,将创建一个新值,存放由原始值直接转换成的值。

❋ Boolean型转换:

方法

结果

备注

Boolean("")

false

空字符串

Boolean('hi')

true

非空字符串

Boolean(100)

true

非0数字

Boolean(null)

false

null

Boolean(0)

false

0

Boolean(new Object())

true

对象

❋ Boolean型转换:

方法

结果

Number(false)

0

Number(true)

1

Number(undefined)

NaN

Number(null)

0

Number('2.2.5')

NaN

Number('1.5')

1.5

Number(new Object())

NaN

❋ String型转换:

  可以把任何值转换成字符串;

✍  引用数据类型值

  JavaScript库中提供了大量封装好的对象给我们使用,同时我们还可以创建自定义对象。可以分为三种类型:

  ➣ 原生对象:

    是由JavaScript所提供的、独立于宿主环境(即浏览器)的对象。简单点说,就是在ECMA-262标准中定义的对象;

  ➣ 内置对象:

    内置对象JavaScript中提供的、独立于宿主环境的对象,这些对象在JavaScript程序执行时就已经存在。内置对象实际上也是原生对象的一种,但是与原生对象不同的是,内置对象不需要显式地初始化,因为它已经初始化了,ECMA-262标准中只定义了两个内置对象:Global和Math;

  ➣ 宿主对象:

    宿主对象指与宿主环境(即浏览器)有关的对象。所有的BOM和DOM对象都是宿主对象。

我们可以用下面的表来记忆JS的基本数据类型和Java中数据类型的关系

Java类型

对应JS类型

说明

byte

number

Java包装器:Byte,父类:Number

short

Java包装器:Short,父类:Number

int

Java包装器:Integer,父类:Number

long

Java包装器:Long,父类:Number

float

Java包装器:Float,父类:Number

double

Java包装器:Double,父类:Number

char

string

Java包装器:Charset,父类:Object

string

Java中string不是基本类型,父类:Object

boolean

boolean

Java包装器:Boolean,父类:Object

✍ Object类:

  JavaScript中的所有类都是由Object类来继承的,Object类中的属性和方法都会出现在其他对象中。

  ➣ Object类具有的属性:

    Constructor——对创建对象的函数的引用(指针)。对于Object类,该指针指向原始的object()函数。

  ➣ Object类具有的方法:

    hasOwnProperty(property)——判断对象是否具有某个特定的属性。必须用字符串指定该属性。

    isPrototypeOf(object)——判断该对象是否为另一个对象的原型。

    propertyIsEnumerable(property)——判断给定的属性是否可以为for..in语句进行枚举。

    toString()——返回对象的原始字符串表示,对于Object类,ECMA-262标准没有定义这个值,所以不同的JavaScript实现具有不同的值。

    valueOf()——返回最适合该对象的原始值。对于许多类,该方法返回的值都与toString()的返回值形同。

✍ 原始数据类型包装器类:

  JavaScript中的Boolean、Number和String类分别是JavaScript原始数据类型Boolean、Number和String的包装类。这些对象在JavaScript实际编程中很少使用,所以我们最好还是使用原始值。Boolean、Number和String的所有属性和方法都可以应用在原始值上,因为他们是伪对象。

✍ Array类

  可以创建数组!创建的几种方式如下

var iArray1 = new Array();

iArray1[0] = 'a';           //给数组的下标0的内存空间赋值为'a'

iArray1[1] = 'b';          //给数组的下标1的内存空间赋值为'b'

iArray1[2] = 'c';          //给数组的下标2的内存空间赋值为'c'

var iArray2 = new Array(20);  //该数组长度为20

var iArray3 = new Array('a','b','c')   //数组共三个值,按顺序分别是'a','b','c';

✍ Date类

  Date 对象用于处理日期和时间。

  创建Date对象语法:

 var myDate = new Date();//Date对象会自动把当前日期和时间保存为其初始值

属性

描述

constructor

返回对创建此对象的 Date 函数的引用

prototype

使您有能力向对象添加属性和方法

✍ Global类:

  Global类是JavaScript中最特别的对象,它不需要声明和初始化。

✍ instanceof运算符:

  在使用typeof运算符时采用引用类型存储值会出现一个问题,无论引用的是什么类型的对象,他都会返回”object”;instanceof是由ECMAscript引入java运算符;instanceof运算符与typeof运算符相识,用于识别正在处理的对象的类型。与typeof方法不同的是,instanceof方法要求开发者明确地确认对象为某特定类型。

JavaScript总结(二)的更多相关文章

  1. 学习javascript数据结构(二)——链表

    前言 人生总是直向前行走,从不留下什么. 原文地址:学习javascript数据结构(二)--链表 博主博客地址:Damonare的个人博客 正文 链表简介 上一篇博客-学习javascript数据结 ...

  2. 初探JavaScript(二)——JS如何动态操控HTML

    除去五一三天,我已经和<JavaScript Dom编程艺术>磨合了六天,第一印象很好.慢慢的,我发现这是一块排骨,除了肉还有骨头.遇到不解的地方就会多看几遍,实在不懂的先跳过,毕竟,初次 ...

  3. 从头开始学JavaScript (十二)——Array类型

    原文:从头开始学JavaScript (十二)--Array类型 一.数组的创建 注:ECMAscript数组的每一项都可以保存任何类型的数据 1.1Array构造函数 var colors = ne ...

  4. 使用JavaScript生成二维码教程-附qrcodejs中文文档

    使用javascript生成二维码 依赖jquery 需要使用到的库 https://github.com/davidshimjs/qrcodejs DIV <div id="qrco ...

  5. 同事问如何判断同花顺,我用javascript的二维数组写了个简易demo

    有个前同事在群里问如何判断是否为同花顺我用javascript的二维数组写了个简易demo. <!DOCTYPE html> <html> <body> <s ...

  6. 2、JavaScript 基础二 (从零学习JavaScript)

     11.强制转换 强制转换主要指使用Number.String和Boolean三个构造函数,手动将各种类型的值,转换成数字.字符串或者布尔值. 1>Number强制转换 参数为原始类型值的转换规 ...

  7. Javascript面向对象二

    Javascript面向对象二 可以通过指定原型属性来对所有的对象指定属性, Object.prototype.name="zhangsan"; Object.prototype. ...

  8. QrCode C#生成二维码 及JavaScript生成二维码

    一 C#的二维码    示例: class Program { static void Main(string[] args) { QrEncoder qrEncoder = new QrEncode ...

  9. 一篇文章图文并茂地带你轻松学完 JavaScript 设计模式(二)

    JavaScript 设计模式(二) 本篇文章是 JavaScript 设计模式的第二篇文章,如果没有看过我上篇文章的读者,可以先看完 上篇文章 后再看这篇文章,当然两篇文章并没有过多的依赖性. 5. ...

  10. Javascript生成二维码(QR)

    网络上已经有非常多的二维码编码和解码工具和代码,很多都是服务器端的,也就是说需要一台服务器才能提供二维码的生成.本着对服务器性能的考虑,这种小事情都让服务器去做,感觉对不住服务器,尤其是对于大流量的网 ...

随机推荐

  1. Oracle EBS AR 更新客户配置文件

    DECLARE l_rec_profile_t hz_customer_profile_v2pub.customer_profile_rec_type; l_rec_profile hz_custom ...

  2. 初始docker

    什么是docker? 很多人都是使用docker但是对docker的理解其实并没有这么透彻,只知道怎么用但是不知道为什么用 什么时候去用. 一.环境配置的难题 软件开发最大的麻烦事之一,就是环境配置. ...

  3. 解决NSTextContainer分页时文本截断问题

    解决NSTextContainer分页时文本截断问题 NSTextContainer与NSLayoutManager配合使用可以将大文本文件分页,但是,分页过程中会遇到问题,显示字符被截断的问题:) ...

  4. 关于WSL(Windows上的Linux子系统)的简单介绍及安装

    WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微软改名部KPI++),在wsl环境下我们可以运行一些Linux程 ...

  5. Linux fsck命令详解

    fsck(file system check)用来检查和维护不一致的文件系统.若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查. fsck常见命令参数 -a:自动修复文件系统,不询问任何 ...

  6. 17 汽车服务工程 李腾飞 Excel 课程表

  7. Win10下安装sulley

    sulley是一款针对网络协议的fuzz框架,记录下安装过程备忘 1.安装MinGW 下载:https://github.com/develersrl/gccwinbinaries/releases/ ...

  8. #001 GIT创建分支

    GitHub创建分支 如何在github 创建 一个分支出来,进行开发,最后在 merge 到主干上. Git 操作命令 git branch branchName //创建一个分支 git chec ...

  9. Oracle中修改sysman和dbsnmp密码正确流程

    1.停止dbconsole $ emctl stop dbconsole 查看状态,确认dbconsole已经停止 $ emctl status dbconsole   2.修改sysman用户和db ...

  10. python第十四课--排序及自定义函数

    1.排序 特点: 1).升序:从小到大 2).降序:从大到小 课堂实现选择排序:参看老郭选择排序.py文件 2.函数:(方法/method) 自定义函数: 概念:它表示一段作用范围(作用域),当中封装 ...