JavaScript对象与数组
对象是JavaScript最基本的数据类型之一,是一种符合的数据类型,将多种数据类型集中在一个数据单元中,,并允许通过对象来存取这些数据的值.
学习本章我们能认识:
- JavaScript内部对象
- 对象访问语句
- JavaScrupt中的数组
JavaScript内部对象:
Object对象:
Object对象提供了对象的最基本功能,这些功能构成了其他对象的基础,同时还提供了其他对象的基础,同时还提供了一个创建自定义对象的简单方式,不需要再定义构造函数. 使用Object对象,可以在程序运行时为JavaScript对象随意添加属性,因此可以很快地创建自定义对象
1、创建Object对象
语法:
obj = new Object([value])
参数说明:
obj: 必选项 要赋值为Object对象的变量名
value: 可选项. 任意一种JScript基本数据类型(Number、Boolean、或String). 如果value为一个对象,返回不做改动的该对象. 如果value为null、undefined,或者没有给出,则产生没有内容的对象
2、Object对象属性
(1)prototype属性
protype属性返回对象类型原型的引用
objectName.prototype
参数说明:
objectName:是对象的名称
用protype属性可以提供对象的类的一组基本功能. 对象的新实例“继承”赋予该对象原型的操作
例如:要为Array对象添加返回数组的最大元素值的方法是,声明该函数,将它加入Array.prototype并使用它
<script type="text/javascript"> functon array_max(){ var i, max = this[0]; for(i = 1;i < this.length;i++){ if (max < this[i]) { max = this[i]; } return max; } } Array.prototype.max = array_max; var x = new Array(1,2,3,4,5,6); var = x.max(); </script>
执行该代码后,y保存数组x中的最大值,即6
所有JScript固有对象都有只读属性. 可以像实例那样为原型添加功能,但该对象不能被赋予不同的原型.然而,用户定义的对象可以被赋给新的原型
本语言参考每个内部对象的方法和属性列表,指出哪些是对象的部分,哪些不是
(2)constructor 属性表示创建对象的函数.
object.constructor
参数说明:
object:不选项. 是对象或函数的名称
constructor属性是具有prototype的对象成员,包括Global和Math对象以外的所有JScript固有对象. constructor属性保存了对构造特定实例的函数的引用 例如:
x = new String('Hi');
if(x.constructor == String)
//进行处理(条件为真)
或:
function MyFunc(){
//函数体
}
y = new MyFunc;
if(y.constructor == MyFunc)
//进行处理(条件为真)
3、Object对象方法
(1)toLocaleString()方法
toLocaleString()方法返回一个日期,该日期使用当前区域设置并已转换为字符串
dateObj.toLocaleString()
参数说明:
dateObj:必选项. 为任意的Date对象
toLocaleString()方法返回一个String对象,该该对象中包含了当前区域设置的默认格式表示的日期
✅对于公元1601-1999年之间的时间、日期格式要按照用户的“控制面板”中的“区域设置”来确定
✅对于此外的其他时间,使用toString()方法的默认格式
例如:
同样是1月5日,在美国🇺🇸,toLocaleString()可能会返回“01/05/96 00:00:00”,而在欧洲返回的可能是“05/01/96 00:00:00”,因为欧洲的惯例是将日期放在月份前面
注意:
toLocaleString()只是来显示结果给用户;不要在脚本中来做基本计算,因为返回的结果是随机器不同而不同的
(2)toString()方法
toString()方法返回的字符串表示
objectName.toString([radix])
参数说明:
objectName:必选项. 要得到字符串表示的对象
radix: 可选项. 指定将数字值转换为字符串时的进制
toString()方法是JavaScript所有内部对象的一个成员方法,其操作以来对象的类型
| 对象 | 操作 |
| Array |
将Array的元素转换为字符串. 结果字符串由逗号分隔,且链接起来 |
| Boolean | Boolean值是true,则返回true;否则,返回false |
| Date | 返回日期的文字表示法 |
| Error | 返回一个包含错误消息的字符串 |
| Function | 返回如下格式的字符串,其中function是被调用toString()方法函数的名称. function functionName(){[native code]} |
| Number | 返回String对象的值 |
| String | 返回String对象的值 |
| 默认 | 返回[object objectName],其中objectName是对象类型的名称 |
(3)、valueOf()方法
valueOf()方法返回指定对象的原始值
object.valueOf()
参数说明:
object: 必选项. 是任意固有JavaScript对象. 每个JavaScript固有对象的valueOf()方法定义不同
| 对象 | 返回值 |
| Array | 数组的元素被转换为字符串,这些字符串由逗号分隔,并连接在一起. 其操作与Array.toString和Array.join方法相同 |
| Boolean | Boolean值 |
| Date | 存储的时间从1970年1月1日午夜开始记的毫秒数 |
| Function | 函数本身 |
| Number | 数字值 |
| Object | 对象本身,这是默认情况 |
| String | 字符串值 |
String对象
String对象是是动态对象,需要创建对象实例后才能引用该对象的属性和方法,该对象主要用于处理或格式化文本字符串以及确定和定位字符串中的子字符串
1、创建String对象
String对象用于操纵和处理文本串,可以通过该对象在程序中获取字符串长度、提取子字符串,以及将字符串转换为大小写或小写字符
语法:
var newst = new String(String Text)
参数说明:
newst:创建的String对象名
StringText:可选项. 字符串文本
例如: 创建一个String对象
var newst = new String("欢迎使用JavaScript脚本")
事实上任何一个字符串常量(单引号或双引号括起来的字符串)都是一盒String对象,可以将字符串常量作为对象来使用,只要在字符串的后面加“.”,便可直接调用String对象的属性和方法. 字符串与String对象的不同在于返回值的typeof值,前者返回的是String类型,后者返回的是Object类型
2、String对象的属性
在String对象中由3个属性,分别是length、constructor和prototype. 下面对这几个属性进行详细介绍
(1)length属性
length属性用于获取当前字符串的长度
语法:
stringObject.length
参数说明:
stringObject:当前获取长度的String对象名,也可以是字符变量名
例如,获取已创建的字符串对象“abcdefg”的长度
var p = 0;
var newString = new String("abcdefg");
var p = newString.length;
alert(p.String(16));
运行结果:
7
(2)constructor属性
constructor属性用于对当前对象的函数的引用
语法:
Object.constructor
参数说明:
Object:String对象或字符变量名
程序清单:
使用constructor属性判断当前对象或自定义变量的类型
var newName = new String('sdf'); // 实例化一个字符串对象
if(newName.constructor == String){ //判断当前对象是否为字符型
alert('this is String'); //如果是.显示提示框
}
运行结果:
This is String
上述例子中的newName对象,可以用字符串变量代替. 该属性是一个公共属性,在Array、Date、Boolean和Number对象中可以调用该属性,用法与String对象相同
程序清单:
可以利用constuctor属性获取当前对象fred所引起的函数代码
function chronicle(name.year){ //自定义函数
this.name =name; //给当前函数的name属性传值
this.year = year; //给当前函数的year 属性传值
}
var fred = new chronicle('year',2007); //实例化chronicle()函数对象
alert(fred.constructor); //显示对象中的函数代码
运行结果:
function chronicle(name,year){thism,name = name;this.year = year;}
(3)prototype属性
prototype属性可以为对象添加属性和方法
语法:
object.prototype.name = value
参数说明:
object:对象名或字符变量名
name:要添加的属性名
value:添加属性的值
程序清单:给information对象添加一个自定义属性salary,并结合该属性赋值(1700)
<script type="text/javascript"> function personnel(name,age){ //自定义函数 this.name = name; //给当前函数的name属性传值 this.age = age; //给当前函数的age属性传值 } var information = new personnel("牧民战天兔",20); // 实例化personnel()函数对象 personnel.prototype.salary = null; //向对象中添加属性 information.salary = 1700; //向添加的属性中赋值 alert(information.salary); //在提示框中显示添加的属性 </script>
运行结果:
1700
salary属性也是一个公共属性,在Array、Date、Boolean和Number对象中都可以调用该属性,用法与String对象相同
String对象的方法如下表:
| 方法 | 说明 |
| anchor() | 创建HTML锚 |
| big() | 使用大号字体显示字符串 |
| small() | 使用小号字体来显示字符串 |
| fontsize() | 使用指定的尺寸来显示字符串 |
| blod() | 使用粗体来显示字符串 |
| italics() | 使用斜体显示字符串 |
| link() | 将字符串显示为超链接 |
| strike() | 使用删除线来显示字符串 |
| blink() | 显示闪动字符串,该方法不支持IE浏览器 |
| fixed() | 以打字机文本显示字符串 |
| charAt() | 返回指定位置的字符 |
| charCodeAt() | 返回指定位置的字符编码 |
| conact() | 连接字符串 |
| fontcolor() | 使用指定的颜色来显示字符串 |
| fromCharCode() | 从字符编码创建一个字符串 |
| indexOf() | 检索字符串 |
| lastIndexOf() | 从后向前搜索字符串 |
| localeCompare() | 用本地特定的顺序来比较两个字符串 |
| match() | 在字符串内检索指定值,或找到一个或者多个与正则表达式相匹配的文本 |
| replace() | 替换与正则表达式匹配的子串 |
| search() | 检索与正则表达式匹配的值 |
| split() | 把字符串分割为字符串数组 |
| substr() | 从起始索引提取字符串中指定数目的字符 |
| substring() | 提取字符串中两个指定的索引号之间的字符 |
| slice() | 提取字符串的片段,并在新的字符串中返回被提取的部分 |
| sub() | 把字符串显示下标 |
| sup() | 把字符串显示为上标 |
| toLoacleLowerCase() | 按照本地方式把字符串转换为小写 |
| toLocaleUpperCase() | 按照本地方式把字符串转换为大写 |
| toLowerCase() | 把字符串转换为小写 |
| toUpperCase() | 把字符串转换为大写 |
| toSource() | 代表对象的源代码 |
| valueOf() | 返回某个字符串对象的原始值 |
------------------------------------------------------------------------
今天就更新到这里了. 昨天吧,接到通知,计算机等级考试在9月末进行,2019新冠原因,本应该早就考的office一级和Java二级,推迟了
所以最近的学习的路线要修改了,我要在学习JavaScript的基础之上,加上Java的基础跟新,我准备脚踏实地,一步一个脚印,给我冲
-------
今天家里的海信电视坏了,只有声音没有影像了,在微信公众号问了在线客服,海信电视整机保修一年,部分零件保修3年,我吐了
夏天坏的电器真多,一个月前,我房间的空调F3,叫了人海尔那边维修人员过来修好了
---------------
下一篇文章,跟新内容如下:
- Date对象
- event对象
- FileSystemObject对象
- Drive对象
- File对象
- Folder对象
内容有点多,都是以实例进行说明
晚安!

浙公网安备 33010602011771号