JavaScript学习(三):JavaScript对象类型
来源:互联网 发布:江苏网络安全教育平台 编辑:程序博客网 时间:2024/04/30 07:39
3.5 全局对象
全局对象(global object)的属性是全局定义的符号,JavaScript程序可以直接使用。当JavaScript解释器启动时(或者任何web浏览器加载新页面时),它将创建一个新的全局对象,并给它一组定义的初始属性:
- 全局属性,比如undefined、Infinity和NaN
- 全局函数,比如isNaN()、parseInt()和eval()
- 构造函数,比如Date()、RegExp()、String()、object()和Array()
- 全局对象,比如Math和JSON
全局对象的属性不是保留字,但应该当做保留字来对待
3.6 包装对象
包装对象---存取字符串、数字或布尔值的属性时创建的临时对象,所以字符串、数字、布尔值作为原始数据类型也同样具有对象的属性和方法。只是偶尔用来区分字符串值和字符串对象、数字和数值对象以及布尔值和布尔对象。但是字符串、数字和布尔值的属性都是只读的,不能给他们定义新属性。
var s = 'aaa';
只要引用了s的属性,JavaScript就会将字符串值通过调用new String(s)的方式转成对象,这个对象继承了字符串的方法,并被用来处理属性的引用。一旦属性引用结束,这个新创建的对象就会销毁(整个流程看起来就是这样子的)。
同上,数字和布尔值也具有同样的方法:Number()和Boolean()
可通过String()、Number()或Boolean()构造函数来显式创建包装对象:
var s = 'aaa', n = 1, b = true;
var S = new String(s);
var N = new Number(n);
var B = new Boolean(b);
console.log(s == S); // true
console.log(s === S); //false
console.log(typeof(s)); // string
console.log(typeof(S)); // object
只是在值上相同。== 判断值是否相等, === 判断值和类型是否相等。
3.7 不可变的原始值和可变的对象引用
JavaScript中的原始值(undefined、null、布尔值、数值和字符串)与对象有着根本的区别。原始值是不可更改的:任何方法都无法更改。对数字和布尔值显然如此,但字符串不那么明显,因为字符串看起来像有字符组成的数组,我们期望可以通过指定索引来修改字符串中的字符,实际上,JavaScript是禁止这样做的,字符串中所有的方法看似返回了一个修改后的字符串,实际上是返回一个新的字符串值:
var s = "aaaaa";
console.log(s.toUpperCase()); // AAAAA
console.log(s); // aaaaa
原始值的比较是值的比较:只有在它们的值相等的时候它们才相等,比如比较两个单独的字符串,当且仅当它们的长度相等且每个索引的字符都都相等时,JavaScript才认为它们相等。
对象和原始值不同,首选,对象是可变的--它们的值是可以修改的;对象的比较也并非值的比较:即使两个对象包含同样的属性及相同的值,它们也是不相等的。各个索引元素完全相等的两个数组也不相等。
通常将对象称为引用类型,以此来和JavaScript的基本类型区分开。按照术语的叫法,对象值都是引用,对象的比较均是引用的比较:当且仅当它们引用同一个基对象时,它们才相等。
var a = []; //定义一个引用空数组的变量a
var b = a; //变量b引用同一个数组
b[0] = 1; //通过变量b来修改引用的数组
console.log(a[0]); //变量a也会修改
console.log(a == b); //a和b引用同一个数组,因此它们相等
0 0
- JavaScript学习(三):JavaScript对象类型
- JavaScript学习笔记(三)---JavaScript对象
- javascript学习(三)js类型转换
- JavaScript学习(三)之引用类型
- javascript学习笔记 (三)-window对象
- JavaScript学习笔记(三)--对象
- JavaScript学习笔记(三):JavaScript 对象
- Javascript对象(三)
- JavaScript 对象(三)
- javascript学习三: 常用对象
- Javascript(ECMAScript) 对象类型
- JavaScript学习(三)
- JavaScript学习(三)
- JavaScript学习(三)
- JavaScript学习(三)
- javascript(三)之对象
- JavaScript---对象学习(三)Math对象和Global对象,自定义对象学习
- JavaScript基础学习(三)----Array数组对象
- 类似aaa?a=1&b=2&c=3&d=4,如何将问号以后的数据变为键值对
- 01 (maven+SSH)网上商城项目实战之项目简介
- 从头到尾写SQL(一)
- 自定义控件(8)---PathEffect平滑曲线--点、线、矩形、圆
- 【Android学习笔记】用于共享数据的Content Provider
- JavaScript学习(三):JavaScript对象类型
- windows版webrtc编译教程(2015.11)
- 关于安卓eclipse SDK下载不了的解决方法
- 技术疑惑解决
- zeromq push-pull 模式
- Spring mvc 搭建与总结
- 异常一般用于突发情况的处理,而不是用于正常的业务逻辑判断
- redis 3.0的集群部署
- TCP的SEQ和ACK的生成