Nestjs
前端
技术分享
Linux
Python
Rust
常用工具
🗒️JavaScript笔记大全
type
status
date
slug
summary
tags
category
icon
password
本文JavaScript笔记用于平常查阅使用
一、Date(日期) 对象
日期对象用于处理日期和时间。
1. get方法
属性 | 说明 |
getFullYear() | 获取年份 |
getMonth() | 获取月份 |
getDate() | 获取日期 |
getDay() | 获取星期几 |
getHours() | 获取小时 |
getMinutes() | 获取分钟 |
getSeconds() | 获取秒钟 |
getMilliseconds() | 获取毫秒 |
getTime() | 获取1970年至今的毫秒数 同 Date.now() |
2. to方法
属性 | 说明 |
toString() | 把日期对象转字符串 |
toLocaleString() | 把日期对象转成符合当地习惯的字符串 |
toDateString() | 把时间对象的日期部分转字符串 |
toLocaleDateString() | 把时间对象的日期部分转成符合当地习惯的字符串 |
toTimeString() | 把时间对象的时间部分转字符串 |
toLocaleTimeString() | 把时间对象的时间部分转成符合当地习惯的字符串 |
toUTCString() | 把日期对象转UTC时间字符串 |
3.set方法
属性 | 说明 |
setFullYear() | 设置年份 |
setMonth() | 设置月份 |
setDate() | 设置日期 |
setHours() | 设置小时 |
setMinutes() | 设置分数 |
setSeconds() | 设置秒数 |
setMilliseconds() | 设置毫秒 |
创建时间对象:
或
代码如下(以“2022-1-14 09:58:27 星期五” 为例)
二、Math / 随机生成
属性 | 说明 |
ceil() | 对数进行上舍入,即向上取整 |
round() | 四舍五入 |
foor() | 对 x 进行下舍入,即向下取整 |
random() | 返回 0 ~ 1 之间的随机数,包含 0 不包含 1 |
代码如下(获取从 1 到 10 的随机整数,取 0 的概率极小)
代码如下(可均衡获取 0 到 1 的随机整数)
代码如下(可均衡获取 0 到 9 的随机整数)
代码如下(基本均衡获取 0 到 10 的随机整数,其中获取最小值 0 和最大值 10 的几率少一半)
三、数组API
数组对象的作用是:使用单独的变量名来存储一系列的值。
1.数组API
属性 | 说明 |
push() | 往数组的尾部插入一个或多个元素 |
pop() | 从数组的尾部删除一个元素 |
unshift() | 往数组的头部插入一个或多个元素 |
shift() | 从数组的头部删除一个元素 |
slice() | 裁切数组 |
splice() | 删除或替换数组某个元素 |
concat() | 连接一个或多个数组, 不会修改原数组, 会返回连接出来的新数组 |
join() | 以特定的连接符将一个数组连接成字符串, 不会修改原数组 |
reverse() | 反转数组 |
代码如下(例子)
2.数组遍历
- every() 用于检测数组所有元素是否都符合指定条件
- filter() 创建一个新数组, 其包含通过所提供函数实现的测试的所有元素
- forEach() 对数组的每个元素执行一次给定的函数
- map() 创建一个新数组,其结果是该数组中的每个元素是调用一次提供的函数后的返回值。
- some() 用于检测数组中的元素是否满足指定条件
- findIndex() 返回数组中满足条件的第一个元素的索引。若没有找到对应元素则返回-1。
代码如下(every)
代码如下(filter)
代码如下(forEach)
代码如下(map)
代码如下(some)
代码如下(findIndex)
四、字符串API
属性 | 说明 |
charAt() | 获取指定下标的字符 |
charCodeAt() | 如果不传参数, 把第0个字符转unicode编码 |
String.fromCharCode() | 静态方法,把unicode编码转成字符 |
substring() | 裁切字符串,从开始下标裁切到结束下标,结束下标裁切不到 |
split() | 把字符串切割成数组 |
repeat() | 重复一个字符串n次 |
trim() | 去除字符串左右两边的空格, 中间的空格则不做处理 |
toLowerCase() | 把字符串转小写 |
toUpperCase() | 把字符串转大写 |
replace() | 替换 |
indexOf() | 从头部开始检索下标 |
lastIndexOf() | 从尾部开始检索下标 |
代码如下(例子)
五、DOM对象
1.元素节点
文档本身是文档节点 所有 HTML 元素是元素节点 所有 HTML 属性是属性节点 HTML 元素内的文本是文本节点 注释是注释节点
属性 | 说明 |
parentNode | 获取父节点,包括文本节点和注释节点 |
firstChild | 获取第一个子节点 |
lastChild | 获取最后一个子节点 |
nextSibling | 获取下一个同胞节点 |
previousSibling | 获取上一个同胞节点 |
parentElement | 获取父元素版本节点,不包括文本节点和注释节点 |
firstElementChild | 获取第一个子节点的元素版本 |
lastElementChild | 获取最后一个子节点的元素版本 |
nextElementSibling | 获取下一个同胞节点的元素版本 |
previousElementSibling | 获取上一个同胞节点的元素版本 |
代码如下(例子)
2.获取或插入内容
属性 | 说明 |
innerHTML | 获取元素内部的所有内容 (包括文本和元素) |
innerText | 获取元素内部的文本内容 (只获取文本不获取元素) |
textContent | 获取元素内部的文本内容 (只获取文本不获取元素) |
3.获取元素属性
属性 | 说明 |
getAttributeNode() | 获取元素属性节点 |
getAttribute() | 获取元素属性的属性值 |
setAttribute() | 设置元素属性的属性值 |
removeAttribute() | 删除元素的属性 |
hasAttribute() | 判断元素是否具有某个属性 |
代码如下(例子)
4.创建或插入节点
属性 | 说明 |
createTextNode() | 创建文本节点 |
createElement() | 创建元素节点 |
appendChild() | 把节点插入到元素内部的结尾部分 |
nsertBefore() | 把节点插入到元素内部的指定元素的前面 |
removeChild() | 在节点中移除指定的子节点 |
remove() | 移除本身 |
replaceChild() | 用新的节点替换旧的节点 |
cloneNode() | 克隆节点 |
crateDocumentFragment() | 创建临时文档,虚拟DOM节点 |
代码如下(例子)
5.其它
属性 | 说明 |
element.nodeName | 获取节点名字(大写) |
element.calssName | 设置或获取节点类名 |
element.id | 设置或获取节点id |
element.style | 设置或获取节点样式 |
element.dataset | 设置自定义属性 |
element.classList.add() | 添加类名 |
element.classList.toggle() | 切换类名 |
element.classList.remove() | 移除类名 |
element.classList.replace() | 替换类名 |
element.offsetHeight | 返回元素的高度 |
element.offsetTop | 返回元素的垂直偏移位置 |
element.scrollTop | 返回元素上边缘与视图之间的距离 |
element.clientHeight | 返回元素的可见高度 |
element.offsetTop | 返回元素的垂直偏移位置 |
代码如下(例子)
六、事件对象
七、BOM对象
所有浏览器都支持 window 对象。它表示浏览器窗口 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员 全局变量是 window 对象的属性 全局函数是 window 对象的方法 甚至 HTML DOM 的 document 也是 window 对象的属性之一
1.Window 对象属性
属性 | 描述 |
closed | 返回窗口是否已被关闭。 |
defaultStatus | 设置或返回窗口状态栏中的默认文本。 |
document | 对 Document 对象的只读引用。 |
frames | 返回窗口中所有命名的框架。 |
history | 对 History 对象的只读引用。请参数 History 对象。 |
innerHeight | 返回窗口的文档显示区的高度。 |
innerWidth | 返回窗口的文档显示区的宽度。 |
localStorage | 在浏览器中存储 key/value 对。没有过期时间。 |
length | 设置或返回窗口中的框架数量。 |
location | 用于窗口或框架的 Location 对象。 |
name | 设置或返回窗口的名称。 |
navigator | 对 Navigator 对象的只读引用。 |
opener | 返回对创建此窗口的窗口的引用。 |
outerHeight | 返回窗口的外部高度,包含工具条与滚动条。 |
outerWidth | 返回窗口的外部宽度,包含工具条与滚动条。 |
pageXOffset | 设置或返回当前页面相对于窗口显示区左上角的 X 位置。 |
pageYOffset | 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。 |
parent | 返回父窗口。 |
screen | 对 Screen 对象的只读引用。 |
screenLeft | 返回相对于屏幕窗口的x坐标 |
screenTop | 返回相对于屏幕窗口的y坐标 |
screenX | 返回相对于屏幕窗口的x坐标 |
sessionStorage | 在浏览器中存储 key/value 对。 在关闭窗口或标签页之后将会删除这些数据。 |
screenY | 返回相对于屏幕窗口的y坐标 |
self | 返回对当前窗口的引用。等价于 Window 属性。 |
status | 设置窗口状态栏的文本。 |
top | 返回最顶层的父窗口。 |
2.Window 对象方法
方法 | 描述 |
alert() | 显示带有一段消息和一个确认按钮的警告框。 |
atob() | 解码一个 base-64 编码的字符串。 |
btoa() | 创建一个 base-64 编码的字符串。 |
blur() | 把键盘焦点从顶层窗口移开。 |
clearInterval() | 取消由 setInterval() 设置的 timeout。 |
clearTimeout() | 取消由 setTimeout() 方法设置的 timeout。 |
close() | 关闭浏览器窗口。 |
confirm() | 显示带有一段消息以及确认按钮和取消按钮的对话框。 |
createPopup() | 创建一个 pop-up 窗口。 |
focus() | 把键盘焦点给予一个窗口。 |
getSelection() | 返回一个 Selection 对象,表示用户选择的文本范围或光标的当前位置。 |
getComputedStyle() | 获取指定元素的 CSS 样式。 |
matchMedia() | 该方法用来检查 media query 语句,它返回一个 MediaQueryList对象。 |
moveBy() | 可相对窗口的当前坐标把它移动指定的像素。 |
moveTo() | 把窗口的左上角移动到一个指定的坐标。 |
open() | 打开一个新的浏览器窗口或查找一个已命名的窗口。 |
print() | 打印当前窗口的内容。 |
prompt() | 显示可提示用户输入的对话框。 |
resizeBy() | 按照指定的像素调整窗口的大小。 |
resizeTo() | 把窗口的大小调整到指定的宽度和高度。 |
scroll() | 已废弃。 该方法已经使用了 scrollTo() 方法来替代。 |
scrollBy() | 按照指定的像素值来滚动内容。 |
scrollTo() | 把内容滚动到指定的坐标。 |
setInterval() | 按照指定的周期(以毫秒计)来调用函数或计算表达式。 |
setTimeout() | 在指定的毫秒数后调用函数或计算表达式。 |
stop() | 停止页面载入。 |
3.Navigator 对象
Navigator 对象包含有关浏览器的信息。如:获取浏览器名称、版本信息、操作系统平台信息等等。 调用方式:window.navigator 或者 navigator。
属性 | 说明 |
appCodeName | 返回浏览器的代码名 |
appName | 返回浏览器的名称 |
appVersion | 返回浏览器的平台和版本信息 |
cookieEnabled | 返回指明浏览器中是否启用 cookie 的布尔值 |
platform | 返回运行浏览器的操作系统平台 |
userAgent | 返回由客户机发送服务器的user-agent 头部的值 |
4.Screen 对象
Screen 对象包含有关客户端显示屏幕的信息。如:获取屏幕高度、宽度等等。 调用方式:window.screen 或者 screen。
属性 | 说明 |
availHeight | 返回屏幕的高度(不包括Windows任务栏) |
availWidth | 返回屏幕的宽度(不包括Windows任务栏) |
colorDepth | 返回目标设备或缓冲器上的调色板的比特深度 |
height | 返回屏幕的总高度 |
pixelDepth | 返回屏幕的颜色分辨率(每象素的位数) |
width | 返回屏幕的总宽度 |
5.History 对象
history 对象包含用户(在浏览器窗口中)访问过的 URL。可对当前页的浏览历史进行操作,如:前进、后退等。但不能知道浏览了哪些URL。 调用方式:window.history 或者 history。
属性或方法 | 说明 |
length | 返回历史列表中的网址数 |
back() | 加载 history 列表中的前一个 URL |
forward() | 加载 history 列表中的下一个 URL |
go() | 加载 history 列表中的某个具体页面 |
6.Location 对象
Location 对象包含有关当前 URL 的信息。 Location 对象是 window 对象的一部分,可通过 window.Location 属性对其进行访问。,如:导航到新的页面、获取URL信息等。 调用方式:window.location 或者 location。
属性或方法 | 说明 |
hash | 返回一个URL的锚部分 |
host | 返回一个URL的主机名和端口 |
hostname | 返回URL的主机名 |
href | 返回完整的URL |
pathname | 返回的URL路径名。 |
port | 返回一个URL服务器使用的端口号 |
protocol | 返回一个URL协议 |
search | 返回一个URL的查询部分 |
assign() | 载入一个新的文档 |
reload() | 重新载入当前文档 |
replace() | 用新的文档替换当前文档 |
代码如下(例子)
八、正则表达式
1.修饰符
- i 忽略大写小写匹配
- g 全局匹配
- m 多行匹配
2.正则方法
代码如下( 正则表达式.方法名(字符串) )
方法 | 属性 |
test() | 验证字符串是否符合正则 返回true 或 false |
exec() | 验证字符串是否符合正则 返回数组 或 null |
complie() | 重写正则表达式规则 |
lastIndex () | 可读可写,表示下一次匹配从哪个下标开始(全局匹配) |
source() | 可读,返回正则表达式的字符串形式(不包括反斜杠) |
常见字符串搭配正则使用:
方法 | 属性 |
match() | 返回数组(全局匹配下拿到所有) |
search() | 查找 |
replace() | 替换 |
3.正则表达式模式
方法 | 属性 |
[] | 字符集, 括号里面的每一个字符 都可以匹配到 |
[^] | 脱字符: 如果方括号内的第一个字符是[^],则表示除了字符集之中的字符,或 以...开头 |
- | 连字符, 用来提供简写形式,表示字符的连续范围。比如,[abc]可以写成[a-c] |
. | 除回车(\r)、换行(\n) 、行分隔符(\u2028)和段分隔符(\u2029)以外, 可以匹配所有字符 |
\ | 转义符:^、.、[、$、(、)、|、*、+、?、{ 、\\ 在它们前面要加上反斜杠 |
$ | 以...结尾 |
| | 在正则表达式中表示“或关系”(OR),即cat|dog表示匹配cat或dog |
\n | 匹配换行键 |
\r | 匹配回车键 |
\t | 匹配制表符 tab(U+0009) |
\0 | 匹配null字符(U+0000 |
\xhh | 匹配一个以两位十六进制数(\x00-\xFF)表示的字符 |
\uhhhh | 匹配一个以四位十六进制数(\u0000-\uFFFF)表示的 Unicode 字符 |
4.重复类
介绍:模式的精确匹配次数,使用大括号{}表示。
方法 | 属性 |
{n} | 表示恰好重复n次, |
{min,} | 表示至少重复min次, |
{min,max} | 表示重复最少min次, 最多max次 |
5.量词符
介绍:量词符用来设定某个模式出现的次数。
方法 | 属性 |
? | 问号表示某个模式出现0次或1次,等同于{0, 1}。 |
* | 星号表示某个模式出现 任意次(0次或多次),等同于{0,}。 |
+ | 加号表示某个模式出现1次或多次,等同于{1,}。 |
6.先行断言
方法 | 属性 |
?=n | 先行断言 某种规则后面紧跟着字符n, 才可以被匹配到 |
7.先行否定断言
方法 | 属性 |
?!n | 先行否定断言 某种规则后面不跟着字符n, 才可以被匹配到 |
九、其它
1.this绑定
- call()
- apply()
- bind()
代码如下:(例子)
2.constructor
构造函数: Object Array String Number Date Boolean ...(Math 例外,它不是构造器)。所有对象都会从它的原型上继承一个 constructor 属性:
3. instanceof
instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。
4.继承
代码如下:(拷贝继承)
5.字符串(String)与json的相互转换
1.字符串转json
- parse()
- eval()
代码如下:(例子)
2.json转字符串
- stringify()
代码如下:(例子)
6.其它
属性 | 说明 |
isNaN() | 查看其它类型是不是非数字 |
toFixed() | 保留小数 |
isInteger() | 判断是否为整数 |
Math.min() | 取最小值 |
Math.max() | 取最大值 |
preventDefault() | 通知浏览器不要执行与事件相关联的默认动作 |
stopPropagation() | 取消事件进一步捕获或者冒泡 |