博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript基础:数据类型的中的那些少见多怪
阅读量:7078 次
发布时间:2019-06-28

本文共 2397 字,大约阅读时间需要 7 分钟。

原文:

Javascript共有6种数据类型,其中包括3个基本数据类型(string,number,boolean)、2个特殊数据类型(undefined,null) 和 1个引用类型 (object) 。本篇文章将对这6种数据类型一一进行讲解,以加深对这些基础概念的理解和应用。

 

string


string类型的数据是由16位Unicode字符组成的字符串,用typeof检测其数据类型如下:

var str = "Hi, Javascript";console.log(typeof str); // string

在Javascript中,除过undefined和null之外的其他的数据类型都有toString()方法,因此这些数据类型都可以通过toString方法转化为对应的string类型。

123..toString(); // "123"true.toString(); // "true"new Object().toString(); // [object Object]"Hello".toString(); //  "Hello"undefined.toString(); // Errornull.toString(); // Error

一般情况下,toString 不需要传递参数,而将数值转化为字符串时,通过传递一个radix参数,可以将数值转化为对应的二进制、八进制和十六进制的字符串表示。

10..toString(2);  // 1010 二进制表示10..toString(8);  // 12  八进制表示10..toString(16); // a 十六进制表示

 

number


在Javascript中,没有int和float数据类型,而是用number来表示整数和浮点数值,除此之外,number还有一个特殊的数值,即NaN (Not a Number),NaN表示一个承诺返回数值类型数据但实际没有返回的情况。NaN有两个特点:一是任何涉及NaN的操作都会返回NaN,二是NaN不与任何数值相等,包括自己,但可以通过isNaN()方法来判断一个数值是否为NaN

typeof 123; // "number"typeof 123.45 // "number"typeof NaN; // "number"NaN+1; // NaNNaN == false; // falseNaN == NaN; //falseisNaN(NaN+1); //true

 

boolean


boolean类型只有两个字面值:true和false 。 但在Javascript中,所有类型的值都可以转化为与boolean等价的值,转化规则如下:

(1)所有对象都被当作 true,

(2)当字符串为空时,该字符串被当作false

(3)null 和 undefined 被当作 false

(4)当数字为0时,该数字被当作 false

typeof true; // "boolean"typeof false; // "boolean"Boolean(new Object()); //trueBoolean(undefined); //falseBoolean(null); //falseBoolean(''); //falseBoolean(0); //falseBoolean(100); // true

需要注意的是,平时我们看到的if(1) {...} ,实际上JS引擎在内部也对这些值做了boolean转化然后再进行运算的。

 

undefined


该类型只有一个值,即 undefined。 undefined意为`未定义`,即当使用var声明了变量但未进行复制时,这个变量的值就是undefined。undefined产生的原因有两种:

(1)访问对象不存在的属性或方法

(2)声明了变量但从未赋值

var v1,obj = {};console.log(v1); //undefinedconsole.log(obj.get); //undefinedtypeof v1; // "undefined"typeof v2; // "undefined"typeof obj.get; // "undefined"

 

null


null类型也只有一个值:null , 表示一个变量中没有包含有效数据。null在这里意为`空值`、`空对象`的意思,更确切的说,一个被赋值为null的变量没有保存有效的数值、字符串、布尔、数组或对象等,可以通过给一个变量赋值为null来清空变量中的内容。产生null的原因只有一个:即对一个变量显式的赋值为null 。

var p = null;console.log(p); //nulltypeof p ; // "object"typeof null; // "object"

另外,需要注意的是,typeof null 应该返回`null`,但实际上返回的是`object`,这是一个历史遗留问题,并没有其他原因,不要想太多。

 

object


对象实际上是一组数据和功能的集合,在一切皆为对象的JS中,object处于原型链的最顶端,表示着原型链的终结,因此,可以说object是JS中所有对象的`祖宗`。

var o1 = {};var o2 = new Object();var date = new Date();var arr = [1,2,3];typeof o1 ; // "object"typeof o2 ; // "object"typeof date ; // "object"typeof arr ; // "object"

 

 

by @一像素 2016.01

欢迎转载和分享,但请注明出处和连接。

 

你可能感兴趣的文章
ASP开发中数据库文件调用的捷径
查看>>
debian启动项与服务设置
查看>>
WinPcap编程环境设置
查看>>
基于openssl的https服务配置
查看>>
从 CentOS 5.5 中精简出属于自己的专属Linux (三)
查看>>
C和指针---第十五章:输入/输出函数
查看>>
Linux打开txt文件乱码的解决方法
查看>>
jquery中的ajax
查看>>
HTML5 Geolocation 地理位置API的使用
查看>>
强大的时间库moment.js常用方法
查看>>
log file sync事件
查看>>
MXNet动手学深度学习笔记:多类别分类
查看>>
License介绍
查看>>
2015年12月国内浏览器市场份额:IE卫冕失败
查看>>
centos mysql5.6 内存过大
查看>>
前端程序猿需要知道的一些网站,工具和学习途径
查看>>
Rayeager PX2开发板的八大特性
查看>>
首帧秒开+智能鉴黄+直播答题,阿里云直播系统背后技术大起底
查看>>
oracle主外键关联
查看>>
【shell】CentOS6.5利用pptpd搭建***服务
查看>>