为了账号安全,请及时绑定邮箱和手机立即绑定

JS内置对象常用方法——且听风吟720

标签:
JavaScript

JS的内置对象分为Array(数组)、String(字符串)、Math和Date(日期)

1.数组Array的常用方法

1.1 栈方法(只对头/尾起作用)

栈方法

  • push:把一个/多个元素放到数组的尾部,返回添加后的数组长度(不是返回数组)
array1.push(2,3,4,"me",false);
  • unshift:把一个/多个元素放到数组的头部,返回添加后的数组长度(不是返回数组)
array1.unshift(2,3,4);
  • pop:删除数组最后一个元素,返回被删除的那个元素
array1.pop();
  • shift:删除数组第一个元素,返回被删除的那个元素
array1.shift();

1.2 转换/连接

图片描述

  • join:把数组中所有元素连接并放入一个字符串中,返回连接后的字符串
    • 其中括号内的参数是连接符号,默认为逗号(,)
    • 例子中连接后的array1元素间用;连接
array1.join(";");
  • concat:把多个数组连接起来,返回连接后得到的新数组
    • 例子中array1连接后在新数组的最前,array2和array3在后
array1.concat(array2,array3);

1.3 排序

  • reverse:反转数组元素的顺序
array1.reverse();
  • sort:默认把数组中元素全部转化成字符串,根据字符串首字母的ASCII码从小到大排序
    • 升序/降序:在sort括号内写函数来实现
array1.sort(function(a,b) {return a-b});//升序
array1.sort(function(a,b) {return b-a});//降序

1.4 切片

  • slice:从起始下标的元素开始切割数组,到终止下标前一个元素为止,返回切割得到的新数组
    • 当缺失终止下标时,默认从起始下标开始切割到数组最后一个元素
    • 起始下标为负数时,从数组最后一个元素往前推(最后一个元素的下标为-1),可以用数组长度+起始值来计算实际的起始位置
array1.slice(1,5);//实际效果是获取了1-4下标的元素
array1.slice(1);//实际效果是获取了下标1至原数组最后一个元素
array1.slice(-5);//假定array1有10个元素,则实际获取了(10-5=5)到最后一个元素的新数组
  • splice:
    splice图示说明
    1. 删除从给定位置起的多个元素,返回被删除元素的新数组
      • 若删除的元素数量为0,则不删除
      • 若未指定删除元素数量,则将删除从起始下标开始的所有数组元素
    2. 插入,在删除基础上加要插入的项,插入在起始位置的前面,返回修改后的数组
    3. 替换(实际为综合了1和2,即先删除后添加,效果表现为替换)
//1.删除
array1.splice(3,5);//实际效果为删除从下标为3开始的5个元素
array1.splice(3,0);//实际效果为不删除任何元素
array1.splice(3);//实际效果为删除从下标为3开始的原数组的所有元素
//2.插入
array1.splice(3,0,"this","is");//实际效果为在下标为3的元素前面插入"this"和"is"
//3.替换
array1.splice(3,4,"hello","world");//实际效果为把下标为3往后的4个元素删除,插入
//"hello"和"world"两个元素

1.5 查找

  • indexOf:按照设定的起始位置开始查找数组中该元素首次出现的位置,返回找到的位置的下标,若没有找到,返回-1
  • lastIndexOf:方法类似indexOf,只是从数组的末尾开始查找元素
    • 两个方法在IE9以上的浏览器得到支持
    • 比较给定参数和数组内容时,用的是全等操作符(即值和类型都必须一致,否则也返回-1)
array1.indexOf(3,5);//从array1的下标5的元素开始找数字3
array1.lastIndexOf("3",-1);//从array1的最后一个元素开始找字符串3

2.字符串String的常用方法

2.1 检索(查找)

  • charAt:返回给定位置的字符
  • charCodeAt:返回给定位置的字符ASCII编码
    • 可以用数组一样的方法,用下标访问字符串中的字符,但IE7及以前的浏览器不支持该方法,会导致返回undefined
var array1="hello world";
array1.charAt(0);//结果是"h"
array1.charCodeAt(0);//结果是h的ASCII码
  • indexOf:原理同数组中的同名方法,返回子字符串首次出现位置,没找到返回-1
  • lastIndexOf:原理同数组中的同名方法,返回子字符串首次出现位置,没找到返回-1
    • 该方法检索时,设定查找的字符串长度可以大于1,返回字符串的首个字符首次出现的位置
str1.indexOf("javascript");

2.2 切片/切割

  • slice:使用与数组array同名方法一致
  • substring:语法和功能同slice一致
    • 参数中出现负数,负数自动变成0
    • 起始/终止数字大小不同时,先将负数化成0,然后自动小的在前(作为起始),大的在后(作为终止)
array1.substring(-3,4);//实际截取了第一个到下标为4(不包括)的字符串为新的子字符串
array1.substring(4,-4);//实际截取范围是0-4(不包括)下标的字符
  • substr:在原字符串中截取子字符串
    • 不指定截取长度时,默认从起始位置截到末尾
    • 截取长度为负数,返回空的字符串
array1.substr(2,3);//实际截取了从下标为2开始的3个字符串
array1.substr(2,-1);//实际结果是空(即"",显示为空白)
  • split:把字符串切割成字符串数组
    • 返回值为切割之后的数组
    • 括号中的参数为切割符,即以什么为标准切割字符串,必填,填空字符串时将把每个字符分隔开
var array1="hello world";
array1.split(" ");//以字符串中的空格为切割符,切割成hello和world两个字符串元素组成的数组

2.3 替换/转换

  • replace:用一些字符替换另一些/替换和正则表达式匹配的字符串
var array1="hewwo worwd";
array1.replace("w","l");//此处用字符串l来替换字符串w,最后变成了hello lorld
  • toUpper(Lower)Case:新建了一个字符串,字符串中所有字母都大(小)写,原先的字符串没有变化
var array1="hello WorLd";
array1.toUpperCase();//新建了一个字符串,其中所有的字母都大写了
array1.toLowerCase();//新建了一个字符串,其中所有的字母都小写了

2.4 综合练习(供参考)

把CSS中带有-的属性名转换成JS中的驼峰命名法


3.Math对象的常用方法

  • 极值min/max:返回一组数值中的最小/最大值,如果其中出现非数字,返回NaN
    • 当用Math对象获取数组中的最大值和最小值时,要使用apply()方法,将Math对象作为apply()的第一个参数,从而正确的设置this,然后将数组作为第二个参数
var newArray=[2,4,5,6,7,1,3,8,9];
var max=Math.max.apply(Math,newArray);//此时才可以承接到该数组中的最大值
  • 取整:
    • ceil:向上取整,返回大于该数的最小整数,如34.2返回35
    • floor:向下取整(地板除),返回小于该数的最大整数,如34.9返回34
    • round:四舍五入为最接近的整数
  • 绝对值abs:返回绝对值
  • 随机数random:
    • 返回[0-1)的随机数
    • 可通过等比例放大/缩小,并综合运用Math对象方法,实现取一定范围内的随机整数
random=Math.floor(Math.random()*(m-n+1)+n);//实现生成n-m随机整数的方法

4.日期Date对象的常用方法

4.1 获取方法

获取日期对象方法

  • 注意month和day(星期)返回值是0-11,实际用的时候需要+1或用switch语句来判断
  • 对于month(月)、day(星期)返回值调整为汉字的方法,使用数组+下标来更改比switch语句更简洁方便
var weeks=["日","一","二","三","四","五","六"];
var i=Date.getDay(),
	week=weeks[i];//把得到的星期的数字转化成汉字

4.2 设置方法

设置日期对象方法

  • 设置时注意month的值范围是0-11(表示1-12月),务必算清楚

4.3 创建方法

创建日期对象方法

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消