ch09 -- JavaScript 内置对象

JavaScript 内置对象


JavaScript 中的所有事物都是对象。如:字符串、数值、数组、函数等。

JavaScript 中的每个对象带有属性和方法。

  1. 对象的属性:反映该对象某些特定的性质的。如:字符串的长度、图像的长宽等。
  2. 对象的方法:能够在对象上执行的动作。如:表单的 “提交”(Submit) ,时间的 “获取”(getYear) 等。

JavaScript 提供多个内建对象,比如 String 、Date 、Array 等,使用对象前要先定义。如下使用数组对象:

var objectArray = new Array(); // 使用 new 关键字定义数组对象
// 或者
var objectArray = [];

访问对象属性的语法:

objectName.propertyName

如使用 Array 对象的 length 属性来获得数组的长度:

var objectArray = new Array(len); // 定义数组对象
var arrayLength = objectArray.length; // 访问数组长度 length 属性

访问对象方法的语法:

objectName.methodName()

如使用 String 对象的 toUpperCase() 方法来将文本转换为大写:

var str = "JavaScript"; // 创建一个字符串
var newStr = str.toUpperCase(); // 使用字符串对象方法

Date 日期对象


日期对象可以储存任意一个日期,并且可以精确到毫秒数(1/1000 秒)。

定义一个时间对象 :

var date=new Date(); 

注意:使用关键字new,Date()的首字母必须大写。

日期对象 date 默认已有初始值,即当前时间 (当前电脑系统时间) 。

如果要自定义初始值,可以用以下方法:

var date1 = new Date(2019, 1, 1);  // 2019年1月1日
var date2 = new Date('Jan 1, 2012'); // 2019年1月1日

输出日期:

var date = new Date();
document.write(date);

注意:不同浏览器,时间格式有差异。如火狐浏览器结果格式依次为:星期、月、日、年、时、分、秒、时区。

最好使用下面介绍的 “方法” 来严格定义时间。
访问方法语法:<日期对象>.<方法>

Date 对象中处理时间和日期的常用方法:

方法名称功能描述
get/setDate()返回/设置日期
get/setFullYear()返回设置年份,用四位数表示
get/setYear()返回设置年份
get/setMonth()返回设置月份,0:一月,… ,11:十二月
get/setDay()返回设置星期,1:星期一,… ,6:星期六,0:星期日
get/setHours()返回/设置时钟,24 小时制
get/setMinutes()返回/设置分钟
get/setSeconds()返回/设置秒钟
get/setTime()返回设置事件(单位:毫秒)

返回/设置年份方法

get/setFullYear() 返回/设置年份,用四位数表示。

var date = new Date();
date.setFullYear(12);

注意:不同浏览器, date.setFullYear(12) 结果不同,年份被设定为 001212 两种情况。

返回月份/星期方法

getMonth() 返回月份,返回的是 0-11 的数字,0表示一月。

getDay() 返回星期,返回的是 0-6 的数字,0 表示星期天。

返回设置时间方法

get/setTime() 返回/设置时间,单位毫秒数,计算从 1970 年 1 月 1 日零时到日期对象所指的日期的毫秒数。

String 字符串对象


定义字符串对象的方法就是直接赋值。

var stringObject = "JavaScript!"

定义字符串对象后,就可以访问它的属性和方法。

访问字符串对象的属性 length :

stringObject.length; // 返回该字符串对象的长度。

访问字符串对象的方法:

stringObject.toUpperCase(); 
// 使用 String 对象的 toUpperCase() 方法来将字符串小写字母转换为大写:

返回指定位置的字符

charAt() 方法可返回指定位置的字符。返回的字符是长度为 1 的字符串。

语法:

stringObject.charAt(index);

说明:参数 index 表示字符串中某个位置的数字,即字符在字符串中的下标。

注意:

  1. 字符串中第一个字符的下标是 0 。最后一个字符的下标为字符串长度减一(stringObject.length-1)。
  2. 如果参数 index 不在 0 与 string.length-1 之间,该方法将返回一个空字符串。
  3. 一个空格也算一个字符。

返回指定的字符串首次出现的位置

indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

语法:

stringObject.indexOf(substring, startpos);

说明:

  1. 参数 substring 规定需检索的字符串值
  2. 参数 startpos 可选的整数,规定在字符串开始检索的位置。合法取值范围在 0~stringObject.length-1 之间。如省略该参数,默认从字符串的首字符开始检索。

注意:

  1. 该方法将从头到尾地检索字符串 stringObject ,看它是否含有子串 substring 。
  2. 可选参数,从 stringObject 的 startpos 位置开始查找 substring 。如果没有此参数将从 stringObject 的开始位置查找,stringObject 中的字符位置是从 0 开始的。
  3. 如果找到一个 substring ,则返回 substring 的第一次出现的位置。如果要检索的字符串值没有出现,则该方法返回 -1 。

字符串分割

split() 方法将字符串分割为字符串数组,并返回此数组。

语法:

语法:
stringObject.split(separator,limit)

说明:

  1. 参数 separator 表示从指定的地方分割 stringObject
  2. 参数 limit 可选整数,表示分割的次数。设置该参数,返回的子串不会多于这个参数指定的数组长度。如果省略则不限制分割次数。

注意:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

提取字符串

substring() 方法用于提取字符串中介于两个指定下标之间的字符。

语法:

stringObject.substring(startPos,stopPos) 

说明:

  1. 参数 startPos ,非负整数,表示开始位置。
  2. 参数 stopPos ,可选的非负整数,表示结束位置。如果省略则返回的子串会一直到字符串对象的结尾。

注意:

  1. 返回的内容是从 startPos 开始 (包含 startPos 位置的字符) 到 stopPos-1 处的所有字符,其长度为 stopPos-startPos 。
  2. 如果参数 startPos 与 stopPos 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
  3. 如果 startPos 比 stopPos 大,那么该方法在提取子串之前会先交换这两个参数。

提取指定数目的字符

substr() 方法从字符串中提取从 startPos 位置开始的指定数目的字符串。

语法:

stringObject.substr(startPos,length)

说明:

  1. 参数 startPos ,整数,表示要提取的子串的起始位置。
  2. 参数 length ,可选的非负整数,表示要提取的字符串的长度。如果省略则返回从 stringObject 开始位置 startPos 到 stringObject 结尾的字符串。

注意:

  1. 如果参数 startPos 是负数,从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。
  2. 如果 startPos 为负数且绝对值大于字符串长度,startPos 为 0 。

Math 对象


Math 对象,提供对数据的数学计算。

注意:Math 对象是一个固有的对象,无需创建它,直接把 Math 作为对象使用就可以调用其所有属性和方法。这是它与 Date ,String 对象的区别。

Math 对象属性:

属性说明
PI返回圆周率(约等于 3.14159)
E返回算术常量 e ,即自然对数的底数(约等于 2.718)
LN2返回 2 的自然对数(约等于 0.693)
LN10返回 10 的自然对数(约等于 2.302)
LOG2E返回以 2 为底的 e 的对数(约等于 1.442)
LOG10E返回以 10 为底的 e 的对数(约等于 0.434)
SQRT1_2返回 2 的平方根的倒数(约等于 0.707)
SQRT2返回 2 的平方根(约等于 1.414)

Math 对象方法:

方法描述
abs(x)返回数 x 的绝对值
sqrt(x)返回数 x 的平方根
exp(x)返回数 x 的以 e 为底的指数值
log(x)返回数 x 的自然对数值(底为 e)
ceil(x)返回对数 x 进行上舍入的整数
floor(x)返回对数 x 进行下舍入的整数
round(x)返回对数 x 进行四舍五入的整数
sin(x)返回数 x 的正弦值
cos(x)返回数 x 的余弦值
tan(x)返回数 x 的正切值
acos(x)返回数 x 的反余弦值
asin(x)返回数 x 的反正弦值
atan(x)返回数 x 的反正切值
atan2(y, x)返回由 x 轴到点 (x, y) 的角度(以弧度为单位)
pow(x, y)返回数 x 的 y 次幂
max(x, y)返回数 x 和数 y 中的较大值
min(x, y)返回数 x 和数 y 中的较小值
random()返回 0~1 之间的随机数
toSource()返回对象的源代码
valueOf()返回 Math 对象的原始值

向上取整

ceil() 方法可对一个数进行向上取整。

语法:

Math.ceil(x)

说明:参数 x 必须是一个数值。

注意:它返回的是大于或等于数 x ,并且与 x 最接近的整数。

向上取整

floor() 方法可对一个数进行向上取整。

语法:

Math.floor(x)

说明:参数 x 必须是一个数值。

注意:它返回的是小于或等于数 x ,并且与 x 最接近的整数。

四舍五入

round() 方法可把一个数字四舍五入为最接近的整数。

语法:

Math.round(x)

说明:参数 x 必须是一个数值。

注意:

  1. 返回与数 x 最接近的整数。
  2. 如果 x 与两侧整数同等接近,则结果接近 +∞方向的数字值 。

随机数

random() 方法可返回介于 0 ~ 1(大于或等于 0 但小于 1 )之间的一个随机数。

语法:

Math.random();

注意:返回一个大于或等于 0 但小于 1 的符号为正的数字值。

取得介于 0 到 1 之间的一个随机数,代码如下:

<script type="text/javascript">
  document.write(Math.random());
</script>

注意:因为是随机数,所以每次运行结果不一样,但都是 0 ~ 1 的数值。

获得 n~m 之间的随机数,代码如下:

<script type="text/javascript">
  document.write((n + Math.random() * (m - n)));
</script>

Array 数组对象


数组对象是一个对象的集合,里边的对象可以是不同类型的。数组的每一个成员对象都有一个 “下标” ,用来表示它在数组中的位置,是从下标 ‘0’ 开始的

数组定义的方法:

  1. 定义了一个空数组:
    var  arrayObject = new Array();
    
  2. 定义时指定有 n 个空元素的数组:
    var arrayObject = new Array(n);
    
  3. 定义数组的时候,直接初始化数据:
    var  arrayObject = [<元素1>, <元素2>, <元素3>...];
    

定义 array 数组,并赋值,代码如下:

var array = [1, 2, 3]; 

说明:定义了一个数组 array,里边的元素是:array[0] = 1; array[1] = 2; array[2] = 3。

数组元素使用:

数组名[下标] =;

注意: 数组的下标用方括号括起来,从 ‘0’ 开始。

数组属性:
length 用法:arrayObject.length ,返回数组的长度,即数组里有多少个元素。它等于数组里最后一个元素的下标加一。

数组方法:

sort()对数组的元素进行排序
reverse()颠倒数组中元素的顺序
slice()从某个已有的数组返回选定的元素
splice()删除元素,并向数组添加新元素
shift()删除并返回数组的第一个元素
pop()删除并返回数组的最后一个元素
unshift()向数组的开头添加一个或多个元素,并返回新的长度
push()向数组的末尾添加一个或多个元素,并返回新的长度
concat()连接两个或更多的数组,并返回结果
join()把数组中的元素连接为一个字符串。元素之间插入指定分隔符
toString()把数组转换为字符串,并返回结果
toLocaleString()把数组转换为本地数组,并返回结果
toSource()返回该对象的源代码
valueOf()返回数组对象的原始值

数组连接

concat() 方法用于连接两个或多个数组。此方法返回一个新数组,不改变原来的数组。

语法

arrayObject.concat(array1, array2, ... , arrayN)

说明:参数 array1 表示要连接的第一个数组,参数 arrayN 表示要连接的第 N 个数组。

注意: 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

指定分隔符连接数组元素

join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。

语法:

arrayObject.join(separator)

说明:参数 separator 指定要使用的分隔符。如果省略则默认使用逗号 ‘,’ 作为分隔符。

注意:返回的字符串是把数组中的各个元素串起来,用指定的分隔符置于元素与元素之间。这个方法不影响数组原本的内容。

颠倒数组元素顺序

reverse() 方法用于颠倒数组中元素的顺序。

语法:

arrayObject.reverse()

注意:该方法会改变原来的数组,而不会创建新的数组。

选定元素

slice() 方法可从已有的数组中返回选定的元素。

语法

arrayObject.slice(start, end)

说明:

  1. 参数 start ,整数,表示从何处开始选取。如果是负数,规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
  2. 参数 end ,可选整数,表示从何处结束选取。该参数是数组片段结束处的元素下标。如果省略,那么切分的数组包含从 start 到数组结束的所有元素。如果 end 为负数,规定从数组尾部开始算起的元素。

注意:

  1. 返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。
  2. 该方法并不会修改数组,而是返回一个子数组。
  3. 可使用负值从数组的尾部选取元素。
  4. 如果 end 未被规定,那么 slice() 方法会选取从 start 到数组结尾的所有元素。
  5. String.slice() 与 Array.slice() 相似。

数组排序

sort() 方法使数组中的元素按照一定的顺序排列。

语法:

arrayObject.sort(sortMethod)

说明:
1.如果不指定方法函数 sortMethod ,则按 unicode 码顺序排列。
2.如果指定方法函数 sortMethod ,则按 sortMethod 所指定的排序方法排序。

注意: 该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

  • 若返回值 <= -1,则表示 A 在排序后的序列中出现在 B 之前。
  • 若 -1 < 返回值 < 1,则表示 A 和 B 具有相同的排序顺序。
  • 若返回值 > =1,则表示 A 在排序后的序列中出现在 B 之后。
  1. 使用 sort() 将数组进行排序。代码如下:
<script type = "text/javascript">
    var arr1 = new Array("Hello", "John", "love", "JavaScript"); 
    var arr2 = new Array("80", "16", "50", "6", "100", "1");
    document.write(myarr1.sort() + "<br>");
    document.write(myarr2.sort());
</script>

注意:上面的代码没有按照数值的大小对数字进行排序。

  1. 如要实现这一点,就必须使用一个排序函数。代码如下:
<script type = "text/javascript">
    function sortNum(a, b) 
    {
       return a - b; // 升序,如降序,把 "a - b" 该成 "b - a"
    }
    var arr = new Array("80", "16", "50", "6", "100", "1");
    document.write(arr + "<br>");
    document.write(arr.sort(sortNum));
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值