这是我参与「第五届青训营 」伴学笔记创作活动的第 13天
JavaScript
一、Js中少用的方法
(1) in/hasOwnProperty()———检查对象是否有某个方法或者属性
执行结果如右图所示,注意 如果自身没有而是原型对象有 使用in会返回true ,而使用hasOwnProperty()会返回false
二、对象
1、数组对象
- 数组也是对象的一种,它是一种用于表达顺序关系的值的集合的语言结构
(1)创建数组
-
使用 new Array();
-
使用字面量创建
(2)遍历数组
-
使用for循环
-
调用数组的foreach(item,[index],[arrays])
- 第一个参数:当前正在遍历的元素
- 第二个参数:当前正在遍历元素的索引
- 第三个参数:当前正在遍历元素所属数组
(3)数组方法
-
push() :队末添加一个或多个元素,并返回新的数组长度
-
pop() :删除最后一个元素,并返回这个元素
-
unshift(): 向数组开头添加一个或多个元素,并返回新的数组长度
-
shift(): 删除第一个元素,并返回这个元素
-
slice(index1,[index2]) :从数组中提取指定元素, 该方法不会改变原数组,而是返回一个新的数组
-
第一个参数:截取开始的位置索引,截取包含开始索引
-
第二个参数:选用,截取结束的位置索引,截取不包含结束索引(不写该参数表示截取至数组末尾)
-
-
splice(index1,[num],...) :删除数组中的指定元素, 该方法会影响到原数组,它将指定元素从原数组中删除,并返回这些被删除的元素(以数组的形式)
-
第一个参数:表示删除开始的位置索引
-
第二个参数:表示删除元素的个数
-
第三个以及往后的参数:将从删除开始索引位置插入这些元素
-
-
concat() :该方法可以连接两个或多个数组,同时还能向他们合并后的数组最后追加若干元素。该方法不会对原有数组造成影响,而是返回一个新的数组
-
join(): 可以将一个数组转换为一个字符串,该方法不会对原有数组造成影响,还可以传递第二个参数作为数组中元素的分隔符,如果不传递则默认""
2、函数对象
(1)call()和apply()方法
-
这两个方法都是函数对象的方法,作用就是调用某个函数。
-
他们 第一个参数都是指定调用该函数的this指向
-
call()的第二个及后续实参将传递到被调用的函数作为参数
-
apply()的第二个参数为一个数组,表示被调用函数的参数们
-
举例
-
call():
-
apply():
-
(2)this指向详解
- 以函数形式调用时,this永远都是window
- 以方法的形式调用时,this是调用方法的对象
- 以构造函数的形式调用时,this是新创建的那个对象
- 使用call和apply调用时,this是传入的那个指定对象
(3)arguments参数详解
- 在调用函数时,浏览器不仅会传递隐含的 this,还会传递另一个隐含的arguments,其将调用函数时所有的参数包装为一个数组arguments,并且在函数内部我们可以直接使用该数组
3、Date对象
-
在javascript中使用Date对象来表示一个时间,如果直接使用构造方法实例化一个Date对象,则会封装代码执行瞬间的时间为其值。
-
Date对象中的方法:
- getFullYear():获取四位数年份 --2022
- getMonth():获取当前月份( 注意其值需要加1,范围是0~11)
- getDate(): 获取当前日期
- getHours():获取当前小时(0~23)
- getMinutes():获取当前分钟(0~59)
- getSeconds():获取当前秒数(0~59)
- getMilliseconds():获取毫秒(0~999)
4、Math对象
-
固定值
- 圆周率:Math.PI 3.1415...
- e:Math.E 2.7182818....
-
方法:
-
绝对值:Math.abs()
-
向上取整(有小数就直接+1):Math.ceil()
-
向下取整(舍弃小数):Math.floor()
-
四舍五入:Math.round()
-
生成一个0-1的随机数:Math.random()
- 生成0-10:Math.random()*10
- 生成1-10:Math.random*(10-1)+1
-
返回x的y次幂:Math.pow(x,y)
-
返回x的平方根:Math.sqrt(x)
-
5、String对象
-
属性:
- 长度:.length
-
方法:
-
charAt():返回索引处的字符
-
charCodeAt():返回索引处字符的字符编码【Unicode】
-
concat():用来连接两个或多个字符串
-
indexof():检索一个字符串中是否包含参数,如果包含返回第一次出现的索引,否则返回-1。可以指定第二个参数为查寻起始位置索引
-
lastIndexOf():同上,只不过返回最后一次出现的位置
-
slice(start,[end]):截取字符中指定内容,不影响原字符,而是返回新的字符串。
- 第一个参数:截取起始索引
- 第二个参数:选用,截取结束索引(不包含在内)【注意:也可以传递一个负数作为参数,负数的话将会从后边计算】
-
subString(start,[end]):同上,只是第二个参数不接受负值
-
substr(start,length):截取字符串,第二个参数为截取长度
-
split():将一个字符串拆分为一个数组, 需要指定一个参数作为拆分符,将会据此拆分字符串
-
toUpperCase():将一个字符串全部转为大写
-
toLowerCase():将一个字符串全部转为小写
-
6、正则对象
(1)创建正则对象
-
使用对象创建
let 变量名 = new RegExp("正则表达式","匹配模式");-
匹配模式:
- i:忽略大小写
- g:全局匹配模式
- ig:忽略大小写且全局匹配模式
-
-
使用字面量创建
let 变量名 = /正则表达式/匹配模式-
匹配模式:
- i:忽略大小写
- g:全局匹配模式
- m:执行多行匹配
我们可以为一个正则表达式设置多个匹配模式并且顺序无所谓
-
(2)正则进阶
-
或:|
//检查一个字符串中是否含有a或b let reg = /a|b/; -
[ ]里的内容也是或的关系
- [a-z] : 任意小写字母
- [A-Z] :任意大写字母
- [A-z] :任意字母
- [0-9] :任意数字
//检查一个字符串中是否包含任意字母 let reg = /[A-z]/ //检查一个字符串中是否包含abc、adc、aec let reg = /a[bde]c/ -
除了:^
- [^a-z]:除了任意小写字母
- [^A-Z]:除了任意大写字母
- [^A-z]:除了任意字母
- [^0-9]:除了任意数字
//检查一个字符串中是否不包含数字 let reg = /^[0-9]/