<!--
字符串操作:
- indexof(): 获取指定字符串第一次出现的位置索引
- lastIndexof(): 获取指定字符串最后一次出现的位置索引
- slice(): 提取字符串的子串,根据起始和结束索引
- substr(): 提取字符串的子串,根据起始索引和子串长度
- substring(): 提取字符串的子串,根据起始和结束索引
- replace(): 替换字符串中的指定内容
- repeat(): 将字符串重复指定次数
- toLowerCase(): 将字符串转换为小写
- toUpperCase(): 将字符串转换为大写
- split(): 将字符串拆分为字符数组
- charAt(): 获取字符串指定索引位置的字符
- url(): 对URL进行编码
- fontColor(): 设置文本颜色
- fontSize(): 设置文本大小
- stringify():将原始字符串转换为 JSON 字符串,与parse()一起使用来实现简单的深拷贝效果
- parse(): 方法将 JSON 字符串解析回 JavaScript 对象,并存储在 deepCopy 变量中。通过这种方式,实现了对字符串的深拷贝。
- trim(): 去除字符串两端的空格。
- startsWith(): 判断字符串是否以指定的子串开头。
- endsWith(): 判断字符串是否以指定的子串结尾。
- includes(): 判断字符串是否包含指定的子串。
- padStart(): 在字符串的开头填充指定的字符,直到达到指定的长度。
- padEnd(): 在字符串的结尾填充指定的字符,直到达到指定的长度。
数组操作:
- push(): 在数组末尾添加一个或多个元素
- pop(): 删除并返回数组的最后一个元素
- unshift(): 在数组开头添加一个或多个元素
- shift(): 删除并返回数组的第一个元素
- splice(): 删除、替换或插入数组的元素
- slice(): 提取数组的一部分,根据起始和结束索引
- indexOf(): 获取指定元素第一次出现的位置索引
- concat(): 连接两个或多个数组
- sort(): 对数组进行排序
- sort(function(a,b){ return a-b; }): 数字数组升序排序
- sort(function(a,b){ return b-a; }): 数字数组降序排序
- join(): 将数组元素拼接为字符串
- reverse(): 反转数组元素顺序
- forEach(): 遍历数组中的每个元素并执行指定的函数。
- map(): 遍历数组中的每个元素,并返回一个新的数组,新数组的元素是原始数组元素经过处理后得到的结果。
- filter(): 遍历数组中的每个元素,并返回一个新的数组,新数组中只包含满足条件的元素。
- reduce(): 将数组中的元素通过指定的函数进行累积计算,返回计算结果。
- find(): 查找数组中满足条件的第一个元素。
- some(): 判断数组中是否存在满足条件的元素,只要有一个满足条件即返回 true。
- every(): 判断数组中的所有元素是否都满足条件,只有全部满足条件才返回 true。
数学操作:
- floor(): 向下取整
- ceil(): 向上取整
- random(): 返回一个介于 0(包括)和 1(不包括)之间的随机数
- round(): 四舍五入
- max(): 返回给定数字中的最大值
- min(): 返回给定数字中的最小值
- pow(): 返回指定数字的幂运算结果
- sqrt(): 返回一个数的平方根。
- abs(): 返回一个数的绝对值。
- log(): 返回一个数的自然对数。
- exp(): 返回 e 的指数次幂。
- sin(), cos(), tan(): 返回一个角度的正弦、余弦、正切值。
获取时间
-getFullYear():获取当前年份(四位数)。
-getMonth():获取当前月份(0-11,0 表示一月)。
-getDate():获取当前日期(1-31)。
-getHours():获取当前小时数(0-23)。
-getMinutes():获取当前分钟数(0-59)。
-getSeconds():获取当前秒数(0-59)。
变量
var a = 100;
var变量提升
console.log(a,b,c)(a = undefined,b和c报错)
var a = 100,b = 200,c = 300;
数据类型
字符串(String):表示一串文本,使用引号(单引号或双引号)括起来,例如:"Hello, World!"。
数字(Number):表示数值,可以是整数或浮点数,例如:5, 3.14。
布尔值(Boolean):表示逻辑值,只有两个取值:true 和 false,用于条件判断和逻辑运算。
未定义(Undefined):表示一个未被赋值的变量或属性,当变量声明但未赋值时,默认为未定义状态。
空(Null):表示一个空值,用于显式地表示变量为空。
对象(Object):表示复杂的数据结构,可以包含多个属性和方法。对象使用花括号 {} 定义,属性和值以键值对的形式存储,例如:{ name: "Alice", age: 25 }。
数组(Array):表示一个有序集合,可以包含多个元素。数组使用方括号 [] 定义,每个元素通过逗号分隔,例如:[1, 2, 3, 4]。
数据类型转换
转换为字符串(String):
数字转换为字符串:使用String()函数或.toString()方法,例如:String(123) 或 123.toString()。
布尔值转换为字符串:使用String()函数,例如:String(true)。
undefined 转换为字符串:"undefined"。
null 转换为字符串:"null"。
转换为数字(Number):
字符串转换为数字:
使用Number()函数或使用一元加号操作符 +,例如:Number("123") 或 +"123"。
布尔值转换为数字:true 转换为1,false 转换为0。
null 转换为数字:转换为0。
undefined 转换为数字:转换为 NaN(非数字)。
转换为布尔值(Boolean):
使用Boolean()函数进行转换:
例如:Boolean("hello")。
非空字符串转换为 true。
空字符串、0、null、undefined 和 NaN 转换为 false。
另外,两个感叹号!!也可以用于将一个值转换为对应的布尔值。例如:!!"hello" 返回 true,!!0 返回 false。
运算符:
算法运算符:+ - * / % ++ --
console.log(num++);
console.log(++num);
赋值运算符:= += -= *= /= %=
逻辑运算符:&& || !
三元运算符: 条件?true:false
比较运算符:> < >= <= == === != !==
运算符优先级:
一元 二元 三元
先乘除后加减
复制运算符永远都是在最后
流程控制
条件
if 判断范围
switch 具体的值
break
defult 可写可不写
循环
for(var i=0;i<10;i++){}
while(){}
do{}while()
for(in){} 循环对象
array.forEach((item,index,arr)=>{})
函数
具名函数
function 函数名称(形参,形参,形参=10){
函数体
arguments 获取所有的实参
return[];
}
自调用函数
(function 函数名称(形参,形参,形参=10){
函数体
arguments 获取所有的实参
return[];
})()
匿名函数
var 函数名称 = function(){
}
函数名称(实参)
函数提升
变量:局部变量,局部变量不能在函数外边使用
全局变量,全局变量可以在局部使用
局部变量变全局:去除前面的var
使用return关键词
arr.forEach((item,index,arr)=>{
})
(a,b)=>{
}
js对象
Bom
window
alert():弹出一个带有消息的警告框。
confirm():弹出一个带有确认和取消按钮的确认框。
prompt():弹出一个带有输入框的提示框,可以接收用户输入的内容。
layer插件:这是一个不常见的插件,具体功能需要查看插件的文档。
异步操作:
通过将任务放入任务队列中,等待同步代码执行完毕后再执行。常见的异步操作有:
setInterval():按照指定的时间间隔重复执行一段代码。
clearInterval():清除由 setInterval() 创建的定时器。
setTimeout():在指定的延迟后执行一段代码。
clearTimeout():清除由 setTimeout() 创建的定时器。
浏览器窗口操作:
open('','',''):打开一个新的浏览器窗口。
close():关闭当前浏览器窗口。
closed:检查当前浏览器窗口是否关闭。
moveTo():将当前浏览器窗口移动到指定位置。
moveBy():将当前浏览器窗口相对移动指定距离。
resizeTo():将当前浏览器窗口调整到指定大小。
resizeBy():将当前浏览器窗口相对调整指定大小。
window.location:包含有关当前 URL 的信息,例如 href、pathname、port 和 hostname。
href = '':设置或获取当前页面的 URL。
pathname = '':设置或获取当前页面的路径部分。
port = '':设置或获取当前页面的端口号。
hostname = '':设置或获取当前页面的主机名。
location.replace():用新的 URL 替换当前页面。
location.reload(false/true):重新加载当前页面,可选择从缓存加载或强制重新加载。
history:浏览器历史记录相关操作。
length:获取浏览器历史记录中的页面数量。
go():在浏览器历史记录中前进或后退指定页面数量。
back():在浏览器历史记录中后退一页。
forward():在浏览器历史记录中前进一页。
screen:包含有关用户屏幕的信息。
navigator:包含有关浏览器的信息。
Dom
节点对象
类型 名称 值
元素节点 1 标签名 null
属性节点 2 属性名 属性值
文本节点 3 #Text 文本
获取元素节点:
document.querySelector():返回文档中与指定选择器匹配的第一个元素。
例如,document.querySelector('.class') 将返回第一个具有指定 class 的元素。
可以使用 CSS 选择器语法来指定选择器。
document.getElementById():返回文档中具有指定 ID 的元素。
例如,document.getElementById('id') 将返回具有指定 ID 的元素。
document.getElementsByClassName():用于根据指定的类名获取文档中匹配该类名的元素集合。
获取属性节点
属性名
getAttribute():返回指定元素上具有指定名称的属性的值。
例如,element.getAttribute('attributeName') 可以获取指定元素上名为 'attributeName' 的属性的值。
attributes:返回一个包含元素上所有属性节点的 NamedNodeMap 对象。
可以通过遍历 element.attributes 来访问元素上的所有属性。
可以使用 attributes[index].name 获取属性的名称,使用 attributes[index].value 获取属性的值。
getAttributeNode():返回指定元素上具有指定名称的属性节点。
例如,element.getAttributeNode('attributeName') 可以获取指定元素上名为 'attributeName' 的属性节点。
自定义属性 dataset
例如,如果元素上有一个自定义属性 data-example,可以使用 element.dataset.example 来访问该属性的值。
获取文本[获取,设置]
innerHTML:获取或设置元素的 HTML 内容。
innerText:获取或设置元素的文本内容。
outerHTML:获取或设置包括元素本身在内的 HTML 内容。
value:获取或设置表单元素的值。
parentNode:获取元素的父节点。
children:获取元素的子元素列表。
childNode:获取元素的子节点列表,包括元素节点和文本节点。
nextElementSibling:获取元素的下一个兄弟元素节点。
previousElementSibling:获取元素的前一个兄弟元素节点。
firstElementChild:获取元素的第一个子元素节点。
element:表示一个 DOM 元素节点。
document.body:表示文档的 <body> 元素。
document.documentElement:表示文档的根元素。
document.title:获取或设置文档的标题。
setAttribute():设置元素的属性。
例如,element.setAttribute('attributeName', 'attributeValue') 可以设置元素的属性。
.属性名 = 属性值:直接为元素设置属性值。
例如,element.attributeName = 'attributeValue' 可以设置元素的属性。
增删改查节点
createElement():创建一个新的元素节点。
createTextNode():创建一个新的文本节点。
appendChild():将一个节点添加到父节点的末尾。
insertBefore():在指定节点之前插入一个节点。
remove():从父节点中移除当前节点。
removeChild():从父节点中移除指定的子节点。
replace():将一个节点替换为另一个节点。
事件
event 事件监听对象
e.target
e.currentTarget
onclick
addEventListener('click',()=>{
})
/*
继承
1. call和apply 构造内容
2. 原型继承
Student.prototype = new Person();
3. 实例继承
在Student类中 var per = new Person()
return per
4. 拷贝继承
在Student类中 var per = new Person()
对per进行循环便利
Student[k] = per[k];
5. 组合继承
call和apply +原型继承
6. 寄生继承
构造 call和apply
原型 创建了一个空类 ,先Person中的原型放入到 Super,再实例化Super,赋值给Student.peototype
*/
.call() 和 .apply() 都是函数对象的方法,它们允许你手动设置函数的执行上下文(即 this 值)和参数。
.call() 方法接受一个指定的 this 值和一组参数,然后立即调用该函数。参数会被作为单独的参数传递给函数。
.apply() 方法与 .call() 类似,但它接受一个指定的 this 值和一个数组或类数组对象作为参数。数组中的每个元素都会被作为单独的参数传递给函数。
鼠标事件
/*
1)click:元素被单击时触发的事件。
2)dblclick:元素被双击时触发的事件。
3)mousedown:鼠标按下时触发的事件。
4)mouseup:鼠标释放时触发的事件。
5)mouseover:鼠标移动到元素上方时触发的事件。
6)mouseout:鼠标从元素上方移开时触发的事件。
7)mouseenter:鼠标进入元素时触发的事件,不会冒泡。
8)mouseleave:鼠标离开元素时触发的事件,不会冒泡。
9)contextmenu:右键点击元素时触发的事件。
10)touchstart:触摸屏幕时触发的事件。
11)touchend:触摸结束时触发的事件。
12)touchcancel:触摸取消时触发的事件(例如手指移出触摸区域)。
13)pointerdown:用户接触输入设备(如鼠标、触摸笔)并按下按钮时触发的事件。
14)pointerup:用户释放输入设备上的按钮时触发的事件。
15)pointermove:用户移动输入设备时触发的事件。
*/
-->