JavaScript中的值类型详细介绍


Posted in Javascript onDecember 29, 2014

计算机程序的实质很大程度上可以说是机器对各种信息(值)的操作与读写。在JavaScript中,存在多种类型的值,这些值分成两大类:Primitive(基本类型)和Object(对象)。

Primitive

JavaScript中Primitive有5种类型:

1.Number。所有的数字,无论是整数还是小数,均为Number类型。
2.String。字符串类型。
3.Boolean。布尔类型,true或者false。
4.null。此类型只有null一个值。
5.undefined。此类型只有undefined一个值。

Object

除了Primitive,JavaScript中其它任何值均为Object(对象)。Object有以下几种:

1.JSON键值对对象。如{“name”:”Bob”, “age”:42}。
2.数组(array)。如[1,4,5,7,9]。
3.函数(function)。如function(){return true;}。在JavaScript中函数有两种存在形式:1. 可执行代码块;2. 类(Class)的构造器(constructor)。无论是以哪种形式存在,函数(function)始终都是对象。

JS自带全局对象

为了方便程序编写,JavaScript自带一个全局对象,该全局对象拥有以下7个成员变量,其类型均为Object:

1.Math。可以通过调用Math对象的方法来完成一系列复杂的数学运算。
2.Number。可以通过访问Number对象的成员变量来获取一些特殊值。
3.Array。数组对象的构造函数。
4.Function。函数对象的构造函数。
5.Date。日期对象的构造函数。
6.RegExp。正则表达式对象的构造函数。
7.Error。错误对象的构造函数。

在进行程序编写时,由于可以直接访问上述7个变量,因此也可以将它们当作全局对象来使用。

Immutable与Mutable

Primitive与Object有一个泾渭分明的特性:所有的Primitive都是Immutable的,所有的Object都是Mutable的。以String类型为例,调用String的方法对其进行编辑后,JavaScript会将编辑后的结果保存在一个新的String对象中,原String对象不会有任何改变:

var s = "test";

s.toUpperCase();//return a new String object "TEST"

console.log(s);//"test" -- original String s does not change

实验

在JavaScript中,可以通过使用typeof关键词来获取某个值的类型。

获取数字的类型:

var n = 42;

console.log(typeof n);

程序输出结果为number。

获取字符串的类型:

var s = "test";

console.log(typeof s);

程序输出结果为string。

获取布尔值的类型:

var b = true;

console.log(typeof b);

程序输出结果为boolean。

获取null的类型:

var x = null;

console.log(typeof x);

程序本应输出null,但实际上却输出object。原因在于,当对null值使用typeof操作时,程序将返回object:这是自JavaScript第一个版本以来就存在的一个bug。在ECMAScript标准的制定过程中,就是否修复这个bug存在过一些有趣的争论:http://wiki.ecmascript.org/doku.php?id=harmony:typeof_null;最终结论为:修复该bug会给太多的网站带来问题,因此暂不修复。

获取undefined的类型:

var y = undefined;

console.log(typeof y);

程序输出结果为undefined。

获取JSON对象的类型:

var j = {"name":"Bob", "age":42};

console.log(typeof j);

程序输出结果为object。

获取数组对象的类型:

var a = [2,3,5,7,11];

console.log(typeof a);

程序输出结果为object。

获取函数对象的类型:

var f = function(){return true;};

console.log(typeof f);

函数对象比较特殊,typeof操作符返回结果为function。
Javascript 相关文章推荐
JavaScript关于select的相关操作说明
Jan 13 Javascript
jquery 延迟执行实例介绍
Aug 20 Javascript
jQuery中on()方法用法实例
Jan 19 Javascript
js中hash和ico的关联分析
Feb 05 Javascript
JavaScript实现MIPS乘法模拟的方法
Apr 17 Javascript
一篇文章掌握RequireJS常用知识
Jan 26 Javascript
关于webuploader插件使用过程遇到的小问题
Nov 07 Javascript
纯JS实现表单验证实例
Dec 24 Javascript
搭建element-ui的Vue前端工程操作实例
Feb 23 Javascript
基于bootstrap页面渲染的问题解决方法
Aug 09 Javascript
解决vue使用vant下拉框van-dropdown-item 绑定title值不变问题
Aug 05 Javascript
JavaScript实现图片放大预览效果
Nov 02 Javascript
JavaScript不使用prototype和new实现继承机制
Dec 29 #Javascript
JavaScript中的console.assert()函数介绍
Dec 29 #Javascript
jQuery中:eq()选择器用法实例
Dec 29 #Javascript
根据配置文件加载js依赖模块
Dec 29 #Javascript
JavaScript中的console.dir()函数介绍
Dec 29 #Javascript
JavaScript中的console.group()函数详细介绍
Dec 29 #Javascript
小米公司JavaScript面试题
Dec 29 #Javascript
You might like
PHP5中实现多态的两种方法实例分享
2014/04/21 PHP
PHP通过API获取手机号码归属地
2015/05/28 PHP
php生成动态验证码gif图片
2015/10/19 PHP
nodejs实用示例 缩址还原
2010/12/28 NodeJs
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
JQuery操作表格(隔行着色,高亮显示,筛选数据)
2012/02/23 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
JS中完美兼容各大浏览器的scrolltop方法
2015/04/17 Javascript
Uploadify上传文件方法
2016/03/16 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
Vue之Vue.set动态新增对象属性方法
2018/02/23 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
JS+css3实现幻灯片轮播图
2020/08/14 Javascript
VSCode插件安装完成后的配置(常用配置)
2020/08/24 Javascript
python小技巧之批量抓取美女图片
2014/06/06 Python
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
python实现的守护进程(Daemon)用法实例
2015/06/02 Python
Python3使用Matplotlib 绘制精美的数学函数图形
2019/04/11 Python
Python图像处理PIL各模块详细介绍(推荐)
2019/07/17 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
2020/06/11 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
办公文员的工作岗位职责
2013/11/12 职场文书
人力资源部副职的竞聘演讲稿
2014/01/07 职场文书
乐观大学生的自我评价
2014/01/10 职场文书
活动志愿者自荐信
2014/01/27 职场文书
大学生毕业鉴定
2014/01/31 职场文书
师范学院毕业生求职信
2014/06/24 职场文书
优秀应届毕业生自荐书
2014/06/29 职场文书
公司委托书怎么写
2014/08/02 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
军训新闻稿范文
2015/07/17 职场文书
ant design charts 获取后端接口数据展示
2022/05/25 Javascript