当前位置: 首页 > news >正文

JS学习笔记

文章目录

      • JS学习
        • 一、修改样式属性
          • 1、注意
          • 2、通过classList修改样式
        • 二、获取表单里面的值
        • 三、定时器函数
        • 四、删除数组中选中的元素
        • 五、事件类型
          • 1、鼠标事件
          • 2、焦点时间
          • 3、键盘事件
          • 4、文本事件
        • 六、document通过type获取
        • 七、获得焦点伪类选择器(focus)
          • 仅需要样式改变时可以使用
        • 八、事件对象
        • 九、trim方法
        • 十、文本框注意事项
        • 十一、this
        • 十二、checked伪类选择器
        • 十三、全等号(===)
        • 十四、mouseenter、mouseleave
        • 十五、获取事件对象的方法
        • 十六、DOM树获取上/下一个兄弟
        • 十七、form表单提交中的问题
          • 1、有时候需要阻止默认提交事件
          • 2、表单清空
        • 十八、立即调用函数的写法
        • 十九、元字符精确匹配
        • 二十、元字符量词
        • 二十一、className与classList的区别
        • 二十二、blur和change的区别
        • 二十三、开发中多使用剩余参数
        • 二十四、对象解构注意
        • 二十五、什么时候使用原型对象
        • 二十六、浅拷贝怎么理解
        • 二十七、直接赋值和浅拷贝有什么区别
        • 二十八、深拷贝中的问题
        • 二十九、如何深拷贝
        • 三十、this的指向
          • 1、普通函数
          • 2、箭头函数

JS学习

一、修改样式属性

对象.style.样式属性 = ‘值’

1、注意

有短横线链接的属性,采取小驼峰命名法

例如: b a c k g r o u n d − c o l o r ——》 b a c k g r o u n d C o l o r background-color ——》 backgroundColor backgroundcolor——backgroundColor

  • JS可以通过修改类名的方式修改样式,相当于结构体赋值,适用于修改内容较多的情况
2、通过classList修改样式
二、获取表单里面的值

用对象名.value

  • d i s a b l e d disabled disabled 禁用按钮
  • c h e c k e d checked checked 勾选框
  • s e l e c t e d selected selected 多选框
三、定时器函数

开启定时器 s e t I n t e r v a l ( 函数名 / 需要操作的代码,间隔时间 ) 函数名不要加小括号 setInterval(函数名/需要操作的代码,间隔时间) 函数名不要加小括号 setInterval(函数名/需要操作的代码,间隔时间)函数名不要加小括号

关闭定时器 c l e a r I n t e r v a l ( 定时器对象 ) clearInterval(定时器对象) clearInterval(定时器对象)

四、删除数组中选中的元素

a r r . s p l i c e ( 开始删除下标,删除数量 ) arr.splice(开始删除下标,删除数量) arr.splice(开始删除下标,删除数量)

五、事件类型
1、鼠标事件
  • c l i c k 鼠标点击 click 鼠标点击 click鼠标点击
  • m o u s e e n t e r 鼠标经过 mouseenter 鼠标经过 mouseenter鼠标经过
  • m o u s e l e a v e 鼠标离开 mouseleave鼠标离开 mouseleave鼠标离开
2、焦点时间
  • f o c u s 获得焦点 focus获得焦点 focus获得焦点
  • b l u r 失去焦点 blur失去焦点 blur失去焦点
3、键盘事件
  • k e y d o w n 键盘按下触发 keydown键盘按下触发 keydown键盘按下触发
  • k e y u p 键盘弹起触发 keyup键盘弹起触发 keyup键盘弹起触发
4、文本事件
  • i n p u t 用户输入触发 input用户输入触发 input用户输入触发
六、document通过type获取

在这里插入图片描述

七、获得焦点伪类选择器(focus)
仅需要样式改变时可以使用

. t e x t : f o c u s .text:focus .text:focus

八、事件对象

在事件回调函数中绑定的第一个参数就是事件对象

在这里插入图片描述

九、trim方法

可以去掉字符串左右两侧的空格

十、文本框注意事项
  • value属性中的内容是文本框中的内容
十一、this

每个函数里面都有this 环境对象

  • 普通函数里面this指向的是window

  • 在这里插入图片描述

谁调用函数,函数中的this就指向谁

this指向触发者

十二、checked伪类选择器

只选择被勾选的复选框

  • 可以利用这个性质判断有几个复选框被选中
十三、全等号(===)

与c++等语言不同,需要三个等号

十四、mouseenter、mouseleave

一般使用这两个事件,这两个事件不会冒泡

mouseover和mouseout会冒泡

十五、获取事件对象的方法

e.target(target就是点击的对象)

e.target.tagName 是点击的对象具体是什么

在这里插入图片描述

十六、DOM树获取上/下一个兄弟
  • 上一个 当前兄弟对象 . p r e v i o u s E l e m e n t S i b l i n g 当前兄弟对象.previousElementSibling 当前兄弟对象.previousElementSibling
  • 下一个 当前兄弟对象 . n e x t E l e m e n t S i b l i n g 当前兄弟对象.nextElementSibling 当前兄弟对象.nextElementSibling
十七、form表单提交中的问题
1、有时候需要阻止默认提交事件

在这里插入图片描述

2、表单清空

reset()方法

十八、立即调用函数的写法
  • ( f u n c t i o n ( ) { } ) ( ) (function()\{\})() (function(){})()
  • ! f u n c t i o n ( ) { } ( ) !function()\{\}() !function(){}()
十九、元字符精确匹配

^$/str$/$

二十、元字符量词
  • *(>=0次)
  • +(>=1次)
  • ?(0或1次)
  • {n} (必须出现n次)
  • {n,}(>=n次)
  • {n,m}(n=< x<=m次)
二十一、className与classList的区别
  • 前者会覆盖原类名
  • 后者不会
二十二、blur和change的区别
  • blur失去焦点后会触发
  • change失去焦点且修改过内容才会触发
二十三、开发中多使用剩余参数

因为剩余参数是真数组,可以使用pop,push方法

二十四、对象解构注意
  • 结构变量名必须和属性名一致

  • 对象解构的变量名可以重新改名,结构

    • 旧变量名:新变量名
二十五、什么时候使用原型对象
  • 可以把不变的方法,直接定义在prototype对象上,这样所有对象的实例都可以共享这个方法
二十六、浅拷贝怎么理解
  • 拷贝对象之后,里面的属性值是简单数据类型直接拷贝值

  • 如果属性值是引用数据类型则拷贝的是地址

二十七、直接赋值和浅拷贝有什么区别
  • 直接赋值的方法,只要是对象都会相互影响,因为是直接拷贝对象栈里面的地址
  • 浅拷贝如果是一层对象,不相互影响,如果出现多层对象拷贝还会相互影响
二十八、深拷贝中的问题

一定要先处理数组在处理对象

二十九、如何深拷贝
  • 自己写
  • 利用lodash
  • 利用JSON
三十、this的指向
1、普通函数

this指向调用者

2、箭头函数

this指向就近外层作用域中的this


http://www.mrgr.cn/news/17129.html

相关文章:

  • 【AIGC】MimicMotion:姿态引导的高质量人体运动视频生成技术
  • 【LLM】文生视频相关开源数据集(VidGen、Panda、Cogvideox等)
  • FCIS+mxnet的大坑(终于ok了)
  • ★ 算法OJ题 ★ 力扣 LCR179 - 和为 s 的两个数字
  • 算法——K-means算法和算法改进
  • 【SpringBoot】实体多层嵌套如何判空字段?
  • Mybatis 是如何进行分页的?分页插件的原理是什么?
  • 【零知识证明】通读Tornado Cash白皮书(并演示)
  • js做一个带模糊搜索、自动补全的select组件auto-input-select
  • 向大家推荐一个好用的云服务器
  • 西部数据获准在泰国扩大硬盘生产计划
  • 8月31复盘日记
  • 顶级 SSD 硬盘数据恢复工具探讨:最佳 SSD 硬盘数据有哪些
  • 驾驶模拟左拐右拐
  • Pandas 5-单元格填充日期
  • 巧妙的数(逐倍数判断)
  • Pinterest账号被封?试试这几种解封方法
  • java 反射
  • Docker 容器编排之 Docker Compose
  • 数据结构--带头双向循环链表