前端js部分常用且必备的基础知识点

<!--

字符串操作:

- 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:用户移动输入设备时触发的事件。

*/

-->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值