JS语法与dom操作(新手小白必看)

目录

一、JS语法

 1.引用

2 .变量

let

var

const

3.数据类型

undefined

number

string

bool

null

4.运算符

算术运算符

赋值运算符

比较运算符

逻辑运算符

三元运算符

5.输入与输出

输入

alert

confirm

prompt

输出

conlose.log

6.分支

单分支

双分支

多分支

switch分支

7.循环

for

for(起始条件;终止条件;步长)

for of

for in

while

do while

8.函数

参数

默认参数

取剩余参数

解构参数

匿名函数

箭头函数

this

9.字符串

10.数组

11.对象

12.原型与原型链

13.常用对象方法

Math

Json

Date

14.异常处理

15.正则表达式

二、dom操作

1.获取元素

a.get

b.query

2.绑定事件

windows

鼠标

键盘

聚焦与失焦

input

form

e鼠标的事件参数

事件注册

3.获取、设置元素的内容,属性,样式

元素内容

属性

元素属性

类操作

元素样式

4.相关元素

找到父元素,获取获取子元素

获取父元素

获取兄弟元素

5.元素的创建与删除

创建元素

插入父结点

删除元素


一、JS语法

 1.引用

js引用分为外部、头部和body内部

外部引用

<script src="script.js"></script>

2 .变量

变量的声明let,var,const;

let

可以声明局部变量,只能声明一次,没有变量提升效果。

变量提升效果就是在声明之前就可以使用变量

var

可以声明全局变量,有变量提升效果,可以声明多次,是一种早期的声明方式

const

声明常量,必须赋值,不能修改

3.数据类型

js中数据类型有undefined,number,string,bool,null;

可以使用typeof()对其数据类型进行检测;

undefined

未进行赋值时的数据类型和值都是undefined;

number

包括float和int

string

字符串型

bool

布尔型,分为true和false,注意是小写

null

空值

4.运算符

运算符分为算术运算符、赋值运算符、比较运算符、逻辑运算符、三元运算符

算术运算符

+、-、*、/、%

赋值运算符

= += -= *= /= %= ++a  a++

比较运算符

> < >= <= == != ===

值得一提的是===与==

==只是相等,不管你的数据类型,只要值一样就相等

===要值和数据类型都一样才相等

逻辑运算符

&& || !

三元运算符

a>b?"hello":"hi"

如果符合返回hello,不符合返回hi

5.输入与输出

输入

alert

弹出警告框,没有返回值

confirm

弹出确认框,返回布尔值

prompt

弹出输入框,返回字符串

输出

conlose.log

将内容输出到控制台

6.分支

单分支

if(){}当条件为真,执行语句块

双分支

if(){}else(){}当条件为真,执行语句块,当条件为假,执行其他语句

多分支

if(){}else if(){}else(){}可以出现多个条件,每一个条件逐一进行比较;

switch分支

switch(参数){

case "":

break;

case "":

break;

default:

}

当其他条件都不符合时,default执行

案例:

7.循环

for

for(起始条件;终止条件;步长)

与C语言一样

for of

用于遍历数组

for in

用于遍历对象

for in遍历数组返回的是索引,for of遍历数组返回值,for of遍历对象报错

while

与C语言一样

do while

先执行do里面的,在进行判断

8.函数

参数

js中函数有形参可以不传实参,不会报错,调用形参的地方会显示undefined

js中函数返回多个值,只有最后一个有效

默认参数
取剩余参数

...params,可以输入多个值,类似于python中的*args

案例

解构参数

可以用于传递对象

匿名函数

function(){}

(匿名函数)();特殊写法,只能执行一次

匿名函数可以作为实参赋予形参

箭头函数

无参箭头函数

有参箭头函数

箭头函数作为实参赋予形参

this

匿名函数中this有独立作用域;当前所属对象

箭头函数this没有作用域,直接获取到了window

9.字符串

length 返回长度

charAt 返回索引的字符

concat 把多个字符串连接起来

indexof 查找字符在原字符串中最后一次出现的位置,若未出现,返回-1

substring 提取字符串中介于两个指定下标之间的字符

slice 切片

toUpperCase 把字符串转换成大写

trim 去除字符串首尾的空白字符

replace 用于替换字符串指定的子字符串

split 把字符串分割成字符串数组

startsWith 以...开头

endsWith

toLowerCase 转小写 

10.数组

push 从尾部插入

pop 从尾部删除

shift 从首部删除

unshift 从首部插入,可以插入多个元素

splice 可以插入,可以删除,如果删除,把第二个参数写成1

forEach 数组的每一个元素执行一次

every 是数组的一个迭代方法,用于测试数组的所有元素是否通过了有函数提供的测试满足返回true

例子:判断是否全大于0

some 满足一个条件

find 从左到右找,找到一个满足条件的就不找了

filter 找到所有满足条件的

reverses 逆序,直接作用于本体

sort 排序,直接作用于本体,数字不能直接进行排序,默认是字符的unicode码

includes 包含 返回true或false

slice 切片

11.对象

类似于python中的字典

创建

obj.键名或obj[""键名]

遍历

对象中,如果键和值的名称一样,可以省略一个

 

 方法

keys 返回键数组

values 返回值数组

entries 返回键值对

assign 将两个对象进行拼接,遇到键名相同的,第二个进行覆盖

 freeze 冻结对象,让其无法做出行动

seal  封闭一个对象,阻止添加新属性并将所有现有属性标记为不可配置,但属性值仍可修改

 返回对象所有属性的名称,并包含在一个数组中

12.原型与原型链

原型 __proto__

本身对象没有的属性可以去原型中去找

通过原型,添加方法

 

13.常用对象方法

Math

abs 绝对值

ceil 向上取整

floor 向下取整

round 四舍五入

max 最大值

min 最小值

pow 次幂

sqrt 平方根

random 随机数0-1

sin cos tant 三角函数

Json

序列化 将对象转换成字符串

反序列化 将字符串转换成对象

json 所有语言通用格式

JSON.stringify 序列化

JSON.parse 反序列化

Date

创建对象,获取当前时间

let dat=new Date();

获取年月日时分秒

值得注意的是月份从0开始计算的,我们要+1; 

时间戳 getTime

14.异常处理

案例

15.正则表达式

格式

let reg=/正则表达式/

测试是否符合

let  result= reg.test(目标段落文字)  返回true或false

案例 校验qq密码

二、dom操作

dom 是document object model 文档对象模型 用js来操作页面

1.获取元素

获取元素分为两种方式,会其中一种即可

a.get

document.getElementById  根据id获取唯一元素

document.getElementByClassName 通过类名获取多个元素,返回数组

document.getElementByTagName 通过标签名获取多个元素,返回数组

返回发的数组不支持forEach

案例:

b.query

通过选择器来获取元素

document.querySelecter 根据选择器找到第一个匹配的元素,返回单个元素

document.querySelecterAll 返回多个元素,数组存储

支持forEach

案例

2.绑定事件

windows

onload 加载,先写script再写html时

onscroll 滚动事件 scorllY 滚动的位置y

onresize 窗体尺寸发生变化时触发

onclick 点击

案例:

鼠标

onclick 点击

ondblclick 双击

onmouseenter 鼠标进入

onmousemove 鼠标移动

onmouseleave 鼠标离开

onmousedown 鼠标按下

onmouseup 鼠标抬起

document.oncontexmenu 鼠标右键,返回false不触发菜单

键盘

onkeydown 键盘按下

onkeypress 键盘按下

onkeyup 键盘抬起

聚焦与失焦

onfocus 聚焦

onblur 失焦

input

oninput 输入内容改变

onchange 失焦时检测是否改变

form

onsubmit 用于指定当表单提交时要执行的 JavaScript 代码。

e鼠标的事件参数

e.pageX 鼠标的x位置

e.pageY 鼠标的y位置

e.data 按下的是哪个键

e.stopPropagation(); 阻止事件穿透

e.preventDefault() 阻止默认事件

事件注册

普通的事件如果重复对一个元素绑定同一个事件多次,会发生覆盖

事件注册所有事件名不带on

document.addEventListener("click",function) 绑定事件

案例

.removeEventListener("事件名",函数名)) 移除事件

 

3.获取、设置元素的内容,属性,样式

元素内容

innerText 只关注内容

innerHtml 关注标签

属性

元素属性

getAttribute 获取属性

setAttribute 设置属性

hasAttribute 看看有没有属性

removeAttribute 移除属性

简写

this.属性名 获取属性

this.属性名=属性值 

案例

类操作

假定元素是div

div.classList 查看类,返回一个数组

div.classList.add 添加类

div.classList.remove 删除类

div.classList.contains 判断是否有这个类名

div.classList.toggle 切换,没有就添加,有就删除

元素样式

通过修改属性的方法修改元素样式,只能获取行内样式style,属性的命名要用小驼峰,设置样式只能这一种方式

这里以获取到的div为例

div.style.backgroundColor=“blue”;

-要删除,字母大写

获取内部样式表或者外部样式表样式

getComputendStyle(obj).样式属性名

案例: 颜色改变器

案例:拖曳

案例: 页签,标签页

4.相关元素

找到父元素,获取获取子元素

这里以div是父元素为例

div.children 返回子元素数组

div.firstElementChild 返回第一个子元素

div.lastElementChild 返回最后一个子元素

获取父元素

子元素.parentElement

获取兄弟元素

以div为例

div.previousElementSibling 上一个

div.nextElementSibling 下一个

案例:

5.元素的创建与删除

创建元素

元素名=document.createElement("标签名")

插入父结点

document.body.appendChild(元素名)

删除元素

元素.remove()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值