JavaScript的对象和方法


张登友,张登友的博客,张登友的网站——

JavaScript中的对象和方法

内置对象 对象说明
Arguments 函数参数集合
Array 数组
Boolean 布尔对象
Math 数学对象
Date 日期时间
Error 异常对象
Function 函数构造器
Number 数值对象
Object 基础对象
RegExp 正则表达式对象
String 字符串对象

String的方法

String 对象(字符串对象)的所有方法

变量名统一以a为例

此处定义一个a,let a = ‘acdefghijk’

方法名 解释 表达式 示例
indexOf()/lastIndexOf() 获取字符串中指定内容的索引(第二个参数可不填) 索引值 = str.indexOf(想查询的字符串, 起始位置); a.indexOf(‘c’,1)
search() 获取字符串中指定内容的索引(参数一般为正则) 索引值 = str.search(正则表达式) a.search(/est/i)
includes() 是否包含指定的内容 布尔值 = str.includes(想要查找的字符串, 起始位置) a.includes(‘j’)
a.includes(‘j’,2)
startsWith() 是否以指定的内容开头 布尔值 = str.startsWith(想要查找的内容, 起始位置) a.startsWith(‘z’)
endsWith() 是否以指定的内容结尾 布尔值 = str.endsWith(想要查找的内容, 检索的结束位置) a.endsWith(‘a’)
charAt(index) 获取指定位置的字符 字符 = str.charAt(index) a.charAt(2)
str[index] 获取指定位置的字符 字符 = str.[index] a[1]
charCodeAt(index) 返回字符串指定位置的字符的 Unicode 编码 字符 = str.charCodeAt(index) a.charCodeAt(2)
slice() 字符串截取

(2, 5) 截取时,包左不包右。
(2) 表示从指定的索引位置开始,截取到最后
(-2) 表示从倒数第三个开始,截取到最后。
(1, -2) 表示从第一个截取到倒数第一个。
(5, 2) 表示前面的大,后面的小,返回值为空。
新字符串 = str.slice(开始索引, 结束索引) a.slice(2,5)
a.slice(2)
a.slice(-2)
a.slice(1,-2)
substring() 从字符串中截取指定的内容
传递负值默认使用 0
第二个参数小于第一个,则自动交换
新字符串 = str.substring(开始索引, 结束索引) a.substring(-4,2)
substr() 从字符串中截取指定的内容。不会修改原字符串
(2,4) 从索引值为 2 的字符开始,截取 4 个字符。
(2) 从指定位置开始,截取到最后。
(-2) 从倒数第几个开始,截取到最后。
字符串 = str.substr(开始索引, 截取的长度) a.substr(2,4)
a.substr(2)
a.substr(-2)
concat() 连接字符串 新字符串 = str1.concat(str2) let c=a.concat(‘b’)
split() 通过指定的分隔符,将一个字符串拆分成数组 新的数组 = str.split(分隔符) let e=a.split(‘’)
let e=a.split()
replace() 将字符串中的指定内容,替换为新的内容并返回(可使用正则) 新的字符串 = str.replace(被替换的子串,新的子串) let g=a.replace(‘y’,’e’)
repeat() 将字符串重复指定的次数 newStr = str.repeat(重复的次数) a.repeat(2)
trim() 去除字符串前后的空白 字符串 = str.trim() a.trim()
toLowerCase() 小写转换 str.toLowerCase() let q = a.toLowerCase()
toUpwerCase() 大写转换 str.toUpwerCase() let q = a.toUpperCase()

Number的方法

方法名 解释 表达式 示例
isInteger() 判断是否为整数 布尔值 = Number.isInteger(数字) let b=Number.isInteger(a)
toFixed() 小数点后面保留多少位 字符串 = myNum.toFixed(num) let c = a.toFixed(2)

Math的方法

方法名 解释 表达式 示例
Math.PI 圆周率 变量名 = Math.PI let a=Math.PI
Math.abs() 返回绝对值 Math.abs(取绝对值的数或值) let b = Math.abs(a)
Math.random() 生成0-1之间的随机浮点数 变量名 = Math。random() let b = Math.random()
Math.floor() 向下取整(往小取值) Math.floor(取整的数或值) let b = Math.floor(a)
Math.ceil() 向上取整(往大取值) Math.ceil(取整的数或值) let d = Math.ceil(a)
Math.round() 四舍五入取整(正数四舍五入,负数五舍六入) Math.round(取整的数或值) let e = Math.round(a)
Math.max(x, y, z) 返回多个数中的最大值 Math.max(值, 值, 值) let g = Math.max(b,c,d)
Math.min(x, y, z) 返回多个数中的最小值 Math.min(值, 值, 值) let g = Math.min(b,c,d)
Math.pow(x,y) 乘方:返回 x 的 y 次幂 Math.pow(值,幂) let h = Math.pow(a,2)
Math.sqrt() 开方:对一个数进行开方运算 Math.sqrt(值) let j = Math.sqrt(h)

Date的方法

Date 对象是一个构造函数 ,需要先实例化后才能使用

  • 写法一:如果Date()不写参数,就返回当前时间对象
  • 写法二:如果Date()里面写参数,就返回括号里输入的时间对象

Moment.js 是一个轻量级的JavaScript时间库

此处以let date = new Date(); 为例

方法名 解释 表达式 示例
getFullYear() 获取年份 日期.getFullYear() let year=date.getFullYear()
getMonth() 获取月: 0-11 日期.getMonth() let month = date.getMonth()
getDate() 获取日:1-31 日期.getDate() let date2=date.getDate()
getDay() 获取星期:0-6 日期.getDay() let day = date.getDay()
getHours() 获取小时:0-23 日期.getHours() let hour=date.getHours()
getMinutes() 获取分钟:0-59 日期.getMinutes() let minutes=date.getMinutes()
getSeconds() 获取秒:0-59 日期.getSeconds() let seconds=date.getSeconds()
getMilliseconds() 获取毫秒:1s = 1000ms 日期.getMilliseconds() let milliseconds=date.getMilliseconds()
getTime() 获取时间戳 日期.getTime() const mydate = +new Date()
const mydate=new Date().getTime()
Date.now() 获取当前时间的时间戳 Date.now() const time=Date.now()

数组的方法

含有部分字符串的方法

方法名 解释 表达式 示例
Array.isArray() 判断是否为数组 Array.isArray(数组) Array.isArray(arr)
toString() 将数组转换为字符串 数组.toString() arr.toString()
Array.from() 将伪数组转化为真数组 Array.from(伪数组) Array.from(arr)
Array.of() 创建数组:将一系列值转换成数组 Array.of(值,值,值) Array.of(1,2,3)
push() 向数组的最后面插入一个或多个元素(会改变原数组) 数组.push(值,值) arr.push(2,3)
pop() 删除数组中的最后一个元素 数组.pop() arr.pop()
unshift() 在最前面插入一个或多个元素 数组.unshift(值,值) arr.unshift(1,2)
shift() 删除数组中的第一个元素 数组.shift() arr.shift()
slice() 提取指定的一个或多个元素 数组.slice(起始位置,截止位置) arr.slice(2,5)
splice() 删除指定的一个或多个元素 数组.splice(起始位置,截止位置) arr.splice(1,2)
fill() 用固定的值填充数组 数组.fill(填充值,开始位置,结束位置) arr.fill(2,4,5)
concat() 连接两个或多个数组 数组.concat(连接的数组) arr.concat(e)
join() 将数组转换为字符串 数组.join() arr.join()
split() 按照指定的分隔符组装为数组(字符串的方法) 数组.split(‘分隔符’) arr.split(‘,’)
reverse() 反转数组 数组.reverse() arr.reverse()
sort() 按照Unicode 编码,从小到大进行排序 数组.sort() arr.sort()
indexOf(value) 从前往后检索数组中是否有指定元素 数组.indexOf(查找的值) arr.indexOf(8)
lastIndexOf(value) 从后往前检索数组中是否有指定元素 数组.lastIndexOf(查找的值) arr.lastIndexOf(8)
includes(item) 数组中是否包含指定的内容 数组.includes(值) arr.includes(8)
find() 找出第一个满足「指定条件返回 true」的元素 数组.find(条件为true) arr.find((item,index)=>{return item>20})
findIndex() 找出第一个满足「指定条件返回 true」的元素的 index 数组.findIndex(条件为true) arr.findIndex((item,index)=>{return item>20})
every() 全真才为真。每一项都返回 true结果才返回 true 数组.every(回调函数) arr.every((ele,idnex,array)=>{ if (ele.length>2){ return false} return true })
some() 一真即真。只要有一项就返回 true 数组.every(判断条件) arr.some((ele,idnex,array)=>{ if (ele.length>9){ return false;} return true })
valueOf() 直接写数组对象的名字 数组本身 = 数组.valueOf() arr.valueOf()
for 循环
forEach() 数组中有几个元素,该回调函数就会执行几次 数组.forEach((遍历的元素,元素的索引,遍历的数组)=>{}) arr.forEach((item,index,arr)=>{console.log(item);console.log(index)})
map() 对数组中每一项运行回调函数,返回该函数的结果 数组.map(回调函数) arr.map((item,index,arr)=>{return item+10})
filter() 过滤数组:返回结果是 true 的项 数组.filter(回调函数) let ss=arr.filter((item)=>{ if (item>4){ return true } return false });
arr.filter((item) => item > 4)
reduce() 接收一个函数作为累加器,返回值是回调函数累计处理的结果 数组.reduce(function (上一次调用回调函数时的返回值, 正在处理的数组元素, 正在处理的数组元素下标, 调用方法的数组) {}, 可选的初始值); arr.reduce((prev,item)=>{ console.log(prev); console.log(item); return 88 })
for of 遍历数组 for (let value of 数组名) { console.log(value);} for (let value of arr1) { console.log(value)}

函数的方法

方法名 解释 表达式 示例
call() 调用一个函数,还可以改变这个函数内部的 this 指向 fn.call(想要将this指向哪里, 函数实参1, 函数实参2) fun.call(obj,2,5)
apply() 可以调用一个函数,还可以改变这个函数内部的 this 指向(实参,必须是数组) fn.apply(想要将this指向哪里, [函数实参1, 函数实参2]) fn.apply(obj, [‘hello’])
bind() 不会调用函数,但是可以改变函数内部的 this 指向 新函数 = fn.bind(想要将this指向哪里, 函数实参1, 函数实参2)
instanceof 检查一个对象是否为一个类的实例 对象 instanceof 构造函数 Person1 instanceof Person

对象的方法

方法名 解释 表达式 示例
in 可以检查一个对象中是否含有指定的属性 ‘属性名’ in 对象 ‘name’ in obj
for in 遍历对象的属性(有几个属性执行几次。每次执行会将对象中的每个属性的 属性名 赋值给变量) for (const 变量 in 对象) {} for (const key in json) {console.log(key);
Object.assgin() 浅拷贝 Object.assign(目标对象, 源对象1, 源对象2…) const obj2 = Object.assign({}, obj)
Object.freeze() 冻结对象 Object.freeze(对象) Object.freeze(params)

事件

事件名 解释
onclick 鼠标单机
ondblclick 鼠标双击
onkeyup 按下并释放键盘上的一个键时触发
onchange 文本内容或下拉菜单中的选项发生改变
onfocus 获得焦点
onblur 失去焦点
onmouseover 鼠标悬停
onmouseout 鼠标移出
onload 网页文档加载事件
onunload 关闭网页时
onsubmit 表单提交事件
onreset 重置表单时

DOM节点的相对关系

属性 解释 表达式
parentNode 获取父节点 节点.parentNode
nextSibling/nextElementSibling 获取下一个兄弟节点 下一个兄弟节点 = 节点.nextElementSibling ||节点.nextSibling
previousSibling/previousElementSibling 获取前一个节点 前一个兄弟节点 = 节点.previousElementSibling ||节点.previousSibling
firstChild/firstElementChild 第一个子节点 第一个子元素节点 = 节点.firstElementChild ||节点.firstChild
lastChild/lastElementChild 最后一个子节点 第一个子元素节点 = 节点.firstElementChild ||节点.firstChild
childNodes (标准属性) 获取所有的子节点 子节点数组 = 父节点.childNodes
children (用的最多) 获取所有子节点 子节点数组 = 父节点.children

DOM操作

方法 解释 表达式
document.createElement(“”) 创建标签 新的标签(元素节点) = document.createElement(“标签名”);
appendChild() 在父元素最后插入新节点 父节点.appendChild(新的子节点);
insertBefore() 插入节点 父节点.insertBefore(新的子节点,作为参考的子节点)
removeChild() 删除节点 父节点.removeChild(子节点);
cloneNode() 复制节点
无参数或false:只复制节点本身
带参数true复制本身及其所有的子节点
要复制的节点.cloneNode()
获取节点名属性值/设置节点的属性值
直接操作标签
元素节点.属性名
元素节点[属性名]
元素节点.属性名=”新的值”
元素节点[属性名]=”新的值”
getAttribute() 获取节点名属性值/设置节点的属性值
把标签作为DOM节点
元素节点.getAttribute(“属性名称”);
元素节点.setAttribute(“属性名”, “新的属性值”);
removeAttribute() 删除节点属性 元素节点.removeAttribute(属性名);
style 读取元素的样式 元素.style.样式名
元素.style[“属性”]
设置元素的样式
常用的样式
backgroundColor
backgroundImage
color
width
height
border
opacity
元素.style.样式名 = 样式值

JS动画offset/scroll/client

方法 解释 表达式
offsetWidth 获取元素的宽 + padding + border div1.offsetWeight
offsetHight 获取元素的高 + padding + border div1.offsetHeight
offsetLeft 当前元素相对于其定位父元素的水平偏移量 box2.offsetLeft
offsetTop 当前元素相对于其定位父元素的垂直偏移量 box2.offsetTop
offsetParent 获取当前元素的定位父元素 box3.offsetParent
ScrollWidth 获取元素整个滚动区域的宽(width 和 padding) div.scrollWidth
scrollHeight 获取元素整个滚动区域的高 div.scrollHeight
scrollTop 获取水平滚动条滚动的距离(兼容写法) window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop
scrollLeft 获取垂直滚动条滚动的距离(兼容写法) window.pageXOffset || document.body.scrollLeft || document.documentElement.scrollLeft
clientWidth 获取元素的可见宽度(width + padding) document.documentElement.clientWidth
document.body.clientWidth
window.innerWidth
clientHeight 获取元素的可见高度(height + padding) document.documentElement.clientHeight
document.body.clientHeight
window.innerHeight
clientX 鼠标距离可视区域左侧距离
clientY 鼠标距离可视区域上侧距离
clientTop 盒子的上border
clientLeft 盒子的左border

event的属性

属性 解释
timeStamp 返回时间生成的日期和事件
bubbles 返回布尔值,指示时间是否是起泡事件类型
button 返回当事件被触发是,哪个鼠标按钮被点击
pageX 光标相对于该网页的水平位置
pageY 光标相对于改网页的水平位置
clientX 光标相对于该网页的水平位置(当前可视区域)
clientY 光标相对于该网页的垂直位置(当前可视区域)
target 该事件被传送的对象
type 事件的类型
screenX 光标相对于显示器的水平位置
screenY 光标相对于显示器的垂直位置

鼠标事件

事件名 解释
onmousedown 当鼠标在被拖拽元素上按下时,开始拖拽
onmousemove 当鼠标移动时被拖拽元素跟随鼠标移动
onmouseup 当鼠标松开时,被拖拽元素固定在当前位置
onmousewheel 鼠标滚轮滚动的事件,会在滚轮滚动时触发(火狐不支持)
DOMMouseScroll 鼠标滚轮滚动的事件(火狐用)需通过addEventListener()函数来绑定
onkeydown 按键被按下
onkeyup 按键被松开

BOM对象

对象名 解释
Window 代表整个浏览器的窗口,同时 window 也是网页中的全局对象
Navigator 代表当前浏览器的信息,可以识别不同的浏览器
Location 代表当前浏览器的地址栏信息,可获取地址栏信息,或操作浏览器跳转页面
History 代表浏览器的历史记录,由于隐私原因只能操作浏览器向前或向后翻页且只在当次访问时有效
Screen 代表用户的屏幕信息,可以获取用户的显示器的相关信息

BOM对象的属性

属性名 解释
history.length 获取浏览器历史列表中的 url 数量
history.back() 回退到上一个页面
history.forward() 跳转下一个页面
history.go()
location.href 获取当前页面的 url 路径(或者设置 url 路径)
location.assign() 跳转到其他的页面
location.reload() 重新加载当前页面
location.replace() 使用一个新的页面替换当前页面,调用完毕也会跳转页面

定时器的方法

方法名 解释
setInterval() 循环调用。将一段代码,每隔一段时间执行一次。(循环执行)
setTimeout() 延时调用。将一段代码,等待一段时间之后再执行。(只执行一次)
clearInterval(timer) 清除定时器

jQuery选择器

符号 说明 用法
$(‘#div’) 选择id为div的第一个元素 $(‘demo’).css(‘backgroung’,’red’)
$(‘.div’) 选择所有类名为div的元素 $(‘.div’).css(‘background’,’red’)
$(‘div’) 选择所有标签名为div的元素 $(‘div’).css(‘background’,’red’)
$(‘*’) 选择所有元素 $(‘*’).css(‘background’,’red’)
$(‘.div,div’) 选择类名为.div和div标签的元素 $(‘.div, div’).css(‘background’,’red’)
空格 后代选择器(所有后代元素) $(‘div p’).css(‘background’,’red’)
> 子代选择器(所有子代元素) $(‘div>p’).css(‘background’,’red’)
+ 紧邻选择器(选择紧挨着的下一个元素) $(‘div+p’).css(‘background’,’red’)
~ 兄弟选择器 $(‘div~p’).css(‘background’,’red’)

jQuery基本选择过滤器

符号 说明 用法
:eq(index) 选择序号为index的第一个元素 $(‘li:eq(1)’).css(‘background’,’red’)
:gt(index) 选择序号大于index的一个元素 $(‘li:gt(2)’).css(‘background’,’red’)
:lt(index) 选择序号小于index的一个元素 $(‘li:lt(2)’).css(‘background’,’red’)
:odd 选择所有序号为奇数的行元素 $(‘li:odd’).css(‘background’,’red’)
:even 选择所有序号为偶数的行元素 $(‘li:even’).css(‘background’,’red’)
:first 选择匹配的第一个元素 $(‘li:first’).css(‘background’,’red’)
:last 选择匹配的最后一个元素 $(‘li:last’).css(‘background’,’red’)

jQuery属性选择器

符号 说明 用法
$(‘a[href]’) 选择所有包含href属性的元素 $(‘a:[href]’).css(‘background’,’red’)
$(‘a[href=”demo”]’) 选择href属性为demo的所有a标签 $(‘a:[href=”demo”]’).css(‘background’,’red’)
$(‘a[href!=”demo”]’) 选择href属性不等于demo的所有元素(包括没有href的元素) $(‘a[href!=”demo”]’).css(‘background’,’red’)
$(‘a[href^=”demo”]’) 选择所有以demo开头的元素 $(‘a[href^=”demo”]’).css(‘background’,’red’)
$(‘a[href$=”demo”]’) 选择所有以demo结尾的元素 $(‘a[href$=”demo”]’).css(‘background’,’red’)
$(‘a[href*=”demo”]’) 选择所有包含demo字符的元素 $(‘a[href*=”demo”]’).css(‘background’,’red’)
$(‘a[href][title=”demo”]’) 选择所有符合指定属性规则的元素 $(‘a:[href][title=”demo”]’).css(‘background’,’red’)

jQuery筛选选择器

符号 说明 用法
find(selector) 查找指定元素的所有后代元素 $(‘div’).find(‘li’).css(‘background’,’red’)
children() 查找指定元素的直接子元素 $(‘div’).children(‘li’).css(‘background’,’red’)
sibling 查找所有的兄弟元素 $(‘div’).sibling(‘li’).css(‘background’,’red’)
parent() 查找父元素 $(‘div’).parent(‘li’).css(‘background’,’red’)
eq(index) 查找索引值为index的元素 $(‘div’).eq(2).css(‘background’,’red’)

文章作者: 张登友
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 张登友 !
  目录