《JavaScript高级程序设计》阅读笔记(三):ECMAScript中的引用类型
2.8 引用类型
1、Object类
ECMAScript中的所有类都是由Object类继承而来。
Object类具有下列属性:
Constructor:对创建对象的函数的引用(指针),对于Object类,该指针指向原始的Object()函数
Prototype:对该对象的对象原型的引用。
Object类还有几个方法:
HasOwnProperty(property):判断对象是否有某个特定的属性。必须用字符串指定该属性值
IsPrototypeOf(object):判断该对象是否为另一个对象的原型。
PropertyIsEnumerable(property):判断给定的属性是否可以用for...in语句进行枚举
ToString():返回对象的原始字符串表示。
ValueOf():返回最适合该对象的原始值。对于许多类,该方法返回的值都与toString()的返回值相同。
上面列出的每种属性和方法都会被其他类覆盖。
2、Boolean类
在ECMAScript中很少使用Boolean对象,因为不易理解,如:
1 var oFalseObject = new Boolean(false);2 var bResult= oFalseObject && true; //outpus true
在这段代码中,用false值创建Boolean对象,然后用这个值与原始值true进行 AND 操作。在Boolean运算中,false和true进行AND 操作的结果是 false。不过,在这行代码中,计算的是oFalseObject,而不是它的值false。在Boolean表达式中,所有对象都会被自动转换为true,所以结果为true。参考下面的代码:
1 var oFalseObject = new Boolean(false);2 var bResult= oFalseObject && true; //outpus true3 var bResult2= oFalseObject.valueOf() && true; //outpus false
3、Number类
Number的toString()方法在上篇文章中有详细的介绍。
Number有几个处理数值的专用方法:
toFixed(参数):返回的是具有指定位数小数的数字的字符串表示。参数范围为0—20
toExponential(参数):返回的是用科学计数法表示的数字的字符串形式。与toFixed()方法相似,toExponential()也有一个参数要输出的小数的位数。参数范围为0—20
toPrecision(参数):根据最有意义的形式来返回数字的预定形式或指数形式。它有一个参数,即用于表示数字总数(不包括指数)。参数最小为1
以上三个方法都会进行舍入操作。示例代码:
1 var oNumber=new Number(99); 2 console.log(oNumber.toFixed(0)); //outpus 99 3 console.log(oNumber.toFixed(2)); //outpus 99.00 4 5 var oNumber1=new Number(99); 6 console.log(oNumber1.toExponential(0)); //outpus 1e+2 进行了舍入操作 7 console.log(oNumber1.toExponential(1)); //outpus 9.9e+1 8 console.log(oNumber1.toExponential(2)); //outpus 9.90e+1 9 10 var oNumber3=new Number(99);11 console.log(oNumber3.toPrecision(0)); //outpus error precision 0 out of range 12 console.log(oNumber3.toPrecision(1)); //outpus 1e+2 进行了舍入操作 13 console.log(oNumber3.toPrecision(2)); //outpus 9914 console.log(oNumber3.toPrecision(3)); //outpus 99.0
4、String类
String对象的valueOf()方法和toString()方法都会返回String型的原始值:
1 var oStringObject=new String("Hello world");2 console.log(oStringObject.valueOf() == oStringObject.toString());//outpus true
String类具有length属性,它是字符串中的字符个数,双字节字符也算一个字符。
String类有大量的方法,主要介绍如下:
charAt(整型参数):返回字符串中单个字符。示例:
1 var oStringObject=new String("Hello world");2 console.log(oStringObject.charAt(0));//outpus "H"3 console.log(oStringObject.charAt(1));//outpus "e"4 console.log(oStringObject.charAt(11));//outpus (an empty string)
charCodeAt(整型参数):返回字符串中单个字符代码。示例:
1 var oStringObject=new String("Hello world");2 console.log(oStringObject.charCodeAt(0));//outpus "72"3 console.log(oStringObject.charCodeAt(1));//outpus "101"4 console.log(oStringObject.charCodeAt(11));//outpus NaN
concat(字符串):把一个或多个字符串连接到String对象的原始值上。示例:
1 var oStringObject=new String("Hello world");2 var sResult=oStringObject.concat(" Concat");3 console.log(oStringObject);//outpus "String { 0="H", 1="e", 2="l", ...}"4 console.log(sResult);//outpus "Hello world Concat"5 alert(oStringObject);//outpus "Hello world"
indexOf(字符串):返回指定的字符串在另一个字符串中的位置(从字符串的开头进行检索)。
lastIndexOf(字符串):返回指定的字符串在另一个字符串中的位置(从字符串的结尾进行检索)。示例:
1 var oStringObject=new String("Hello Hello");2 console.log(oStringObject.indexOf("lo"));//outpus 33 console.log(oStringObject.lastIndexOf("lo"));//outpus 9
localeCompare(字符串):对字符串进行排序,返回值是下列三个之一:
A、如果String对象按照字母顺序排在参数中的字符串之前,返回负数(通常是-1,但真正返回值由具体实现决定)
B、如果String对象等于参数中的字符串,返回0
C、如果String对象按照字母顺序排在参数中的字符串之后,返回正数(通常是1,但真正返回值由具体实现决定)
示例:
1 var oStringObject=new String("Hello");2 console.log(oStringObject.localeCompare("aello")); //outpus 13 console.log(oStringObject.localeCompare("Hello")); //outpus 04 console.log(oStringObject.localeCompare("zello")); //outpus -1
slice(整型参数[,整型参数])、substring(整型参数[,整型参数]):从子串创建字符串值。第一个参数是要获取的子串的起始位置,第二个参数是要获取的子串终止前的位置,如果省略第二参数,终止位就默认为字符串长度。这两个方法都不改变String对象自身值。当参数为正时两个方法用法及返回值均相同,只有参数有负值时才不同。对于负参数,slice()方法会用字符串的长度加上参数,substring()将其做为0处理。另外如果有两个参数,第二个比第一个小时,slice()返回的值为空,substring()会把较小的作为第一个参数。为示例:
1 var oStringObject=new String("Hello World"); 2 console.log(oStringObject.slice(3)); //outpus "lo World" 3 console.log(oStringObject.substring(3)); //outpus "lo World" 4 console.log(oStringObject.slice(3,7)); //outpus "lo W" 5 console.log(oStringObject.substring(3,7)); //outpus "lo W" 6 console.log(oStringObject.slice(3,0)); //outpus (an empty string) 7 console.log(oStringObject.substring(3,0)); //outpus "Hel" 8 9 console.log(oStringObject.slice(-3)); //outpus "rld"10 console.log(oStringObject.substring(-3)); //outpus "Hello World"11 console.log(oStringObject.slice(3,-4)); //outpus "lo W"12 console.log(oStringObject.substring(3,-4)); //outpus "Hel"
toLowerCase()、toLocaleLowerCase()、toUpperCase()、toLocaleUpperCase():前两个用于把字符串转换为全小写,后两个用于把字符串转换为全大写。toLowerCase()跟toUpperCase()是原始方法,toLocaleLowerCase()跟toLocaleUpperCase()是基于特定区域实现的。示例:
1 var oStringObject=new String("Hello World");2 console.log(oStringObject.toLowerCase()); //outpus "hello world"3 console.log(oStringObject.toLocaleLowerCase()); //outpus "hello world"4 console.log(oStringObject.toUpperCase()); //outpus "HELLO WORLD"5 console.log(oStringObject.toLocaleUpperCase()); //outpus "HELLO WORLD"
5、instanceof运算符
1 var oStringObject=new String("hello world");2 alert(oStringObject instanceof String); //outpus "true"
本文转自Artwl博客园博客,原文链接:http://www.cnblogs.com/artwl/,如需转载请自行联系原作者
《JavaScript高级程序设计》阅读笔记(三):ECMAScript中的引用类型相关推荐
- 重学JS(《JavaScript高级程序设计》笔记) - HTML中的JS
HTML中的JavaScript script元素 由网景公司创造,有如下八个属性: async:可选,表示应该立即下载脚本,但不能阻止其他页面动作,只对外部文件有效.. defer:可选,表示脚本可 ...
- JavaScript高级程序设计阅读笔记
2020-11-15 通过初始化指定变量类型 数字-1 对象null 和null的比较(不理解) 使用局部变量将属性查找替换为值查找(算法复杂度) 循环的减值迭代,降低了计算终止条件的复杂度 swit ...
- 《javascript高级程序设计》笔记:内存与执行环境
上一篇:<javascript高级程序设计>笔记:继承 近几篇博客都会围绕着图中的知识点展开 由于javascript是一门具有自动垃圾收集机制的编程语言,开发者不必担心内存的分配和回收的 ...
- JavaScript高级程序设计学习笔记(三)
分享一下第五章(引用类型)的笔记,内容比较多,我拆成了两部分,今天这部分是关于Object.Array.Date和RegExp类型的. 以下的笔记是书上一些我以前学习的时候,没有太重视的js基础知识, ...
- JS高级程序设计——阅读笔记四
JS高级程序设计--阅读笔记四 第六章 集合引用类型 6.1 Object 6.2 Array 6.2.1 创建数组 from()函数 6.2.2 数组空位 6.2.3 数组索引 6.2.4 检测数组 ...
- 《javascript高级程序设计》笔记:变量对象与预解析
上一篇:<javascript高级程序设计>笔记:内存与执行环境 上篇文章中说到: (1)当执行流进入函数时,对应的执行环境就会生成 (2)执行环境创建时会生成变量对象,确定作用域链,确定 ...
- 《javascript高级程序设计》笔记:原型图解
文章直接从原型图解开始的,如果对一些概念不太清除,可以结合后面几节查看 1. 图解原型链 1.1 "铁三角关系"(重点) function Person() {}; var p = ...
- javascript高级程序设计学习笔记
javascript高级程序设计,当枕头书已经好久了~zz 现在觉得自己在js的开发上遇到了一些瓶颈,归根究底还是基础太薄弱,所以重新刷一遍js高程希望有更新的认识. 一.javascript简介 ...
- 《JavaScript高级程序设计》笔记总结
在北京上班的我每天在上下班路上的时间总共是两个半小时,为了充实这两个多小时的时间,我便花了银子换得了下面这个宝贝 本书内容(引用书中前言) 本书提供了JavaScript开发人员必须掌握的内容,全面涵 ...
- javascript高级程序设计 学习笔记 第五章 上
第五章 引用类型的值(对象)是引用类型的一个实例.在 ECMAScript 中,引用类型是一种数据结构, 用于将数据和功能组织在一起.它也常被称为类,但这种称呼并不妥当.尽管 ECMAScri ...
最新文章
- python与excel的差别-python3与Excel的完美结合
- 031_vue编程式导航
- Android中的相对布局
- Git与Github操作指南(入门)
- PyCharm出现module ‘matplotlib’ has no attribute ‘verbose问题
- 【写作技巧】如何写开题报告?
- 分享12个Python项目教程,看完随便拿!
- 【OR】YALMIP 几何规划
- AD13 plugins 安装
- powerdesign生成SQL
- 视频监控直播项目经验总结
- edge浏览器受信任_微软Edge浏览器利用虚拟化技术做安全防护
- C# 获取Excel工作薄中Sheet页(工作表)名集合
- 最强Verilog例化说明
- 炒币经验分享给大家,希望对你们有帮助。
- 互联网手机卡资费对比
- epic games 无法 下载 unreal engine5
- 港珠澳大桥介绍网站设计【期末大作业】源码
- C#集合中的Add与AddRange
- JAVA使用OUTLOOK发送邮件[451 5.7.3 STARTTLS is required to send mail]
热门文章
- python命名空间特性_Python命名空间与作用域
- ubuntu安装搜狗输入法-全面版
- 计算机视觉学习--计算机视觉的古老秘密系列视频
- YOLO学习-3:ubuntu16.04+ yolov3(darknet)+GPU(nvidia 1080ti)+opencv2.4.11 摄像头测试实践
- AXI3和AXI4协议详细说明
- HFSS15.0安装步骤
- 北斗导航 | 多模多频实时GNSS软件接收机
- C++练习 | C++从入门到放弃(基础+进阶C++ github)
- Linux下系统函数open,read,write,lseek函数
- C、C++不定参数的使用