DAY7刷面试题

本文详细介绍了JQuery的选择器,包括基本选择器、层次选择器和过滤选择器,并探讨了JavaScript中函数防抖和节流的区别。同时,还涉及Vue的修饰符、Vuex的状态管理和Vue路由模式的hash与history。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天下午搞了中秋晚会,还有抽奖,奖品:星baba、炸鸡全家桶、电影券、超大蟹黄包、随机money的红包…不过我这种非洲人就是重在参与奖了QAQ 不过!我的室友中奖了!!!
在这里插入图片描述
结束之后和室友骑小电动去市区吃海底捞了,搞到晚上十点半多,这边市区晚上十点半已经可以说是几乎没人了的程度,这边入秋也很早,风也很大。所以会先写一部分今天发布,然后再往里面添加内容的!

JQuery的选择器有哪些?

这内容属实有点多,先记一些用的比较多的,其他的可以慢慢来,一下子记这么多要命
一、基本选择器:
基本选择器是jquery中最常用也是最简单的选择器,通过元素的id、class和标签名等来查找DOM元素。
1、ID选择器#id
根据给定的id匹配一个元素,返回单个元素(在网页中,id名称是不能重复的)

$("#test")选取id为test的元素

2、类选择器.class
根据给定的类名匹配元素,返回元素合集

$(".test")选取所有class名为test的元素

3、元素选择器element
根据给定的元素名匹配元素,返回元素合集

$(“p”)选取所有的<p>的元素

4、*
匹配所有元素,返回元素合集

$(" * ")选取所有的元素

5、selector1,selector2,......,selectorN
将每个选择器的元素匹配到的元素合并后一起返回,返回合并后的元素合集。

$(" p,span,p.myClass") 选取所有<p><span>和class名为myClass的<p>标签元素集合

二、层次选择器
根据层次关系获取特定元素
1、后代选择器

$(“p span”) 选取<p>元素里的所有的<span>元素(注:后代选择器选择父元素所有指定选择的元素,不管是儿子级,还是孙子级)

2、子选择器$(“parent>child”)

$(“p>span”) 选择<p>元素下的所有<span>元素 (注:子选择器只选择直属于父元素的子元素)

3、同辈选择器$(“prev+next”)
选取紧接在prev元素后面的next元素,返回元素集合

$(".one+p") 选取class为one的下一个<p>同辈元素集合

4、同辈选择器$(“prev~siblings”)
选取prev元素后的所有siblings元素,返回元素集合

$("#two~p")选取id为two的元素后所有<p>同辈元素集合

三、过滤选择器
1、基本过滤选择器
(1):first
选取第一个元素,返回单个元素

$(“p:first”) 选取所有<p>元素中第一个<p>元素

(2):last
选取最后一个幻速,返回单个元素

$(“p:last”) 选取所有<p>元素中最后一个<p>元素

(3):not(selector)
去除所有与给定选择器匹配的元素,返回元素集合

$(“input:not(.myClass)”) 选取class不是myClass的<input>元素

(4) :even
选取索引是偶数的所有元素,索引从0开始,返回元素集合

(5) :odd
选取索引是奇数的所有元素,索引从0开始,返回元素集合

(6) :eq(index)
选取索引等于index的元素,索引从0开始,返回单个元素

(7) :gt(index)
选取索引大于index的元素,索引从0开始,返回元素集合

(8) :lt(index)
选取索引小于于index的元素,索引从0开始,返回元素集合

(9) :focus
选取当前获取焦点的元素

2、内容过滤选择器
(1):contains(text)
选取含有文本内容为text的元素,返回元素集合

$(“p:contains(‘我’)”) 选取含有文本“我”的元素

(2):empty
选取不包含子元素或者文本元素的空元素,返回元素集合

$(“p:empty”) 选取不包含子元素或者文本元素的空<p>元素(<p></p>)

(3):has(selector)
选取含有选择器所匹配的元素的元素,返回元素集合

$(“p:has§”) 选取含有<p>元素的<p>元素(<p><p/></p>)

(4):parent
选取含有子元素或者文本的元素,返回元素集合

$(“p:parent”) 选取含有子元素或者文本元素的<p>元素(<p><p/></p>或者<p>文本</p>)

3、可见性过滤选择器
(1):hidden
选取所有不可见的元素,返回元素集合

(2):visible
选取所有可见的元素,返回元素集合

4、属性过滤选择器(返回元素集合)
(1)[attribute]

$(“p[id]”) 选取拥有id属性的p元素

(2)[attribute=value]

$(“input[name=text]”) 选取拥有name属性等于text的input元素

(3)[attribute!=value]

$(“input[name!=text]”) 选取拥有name属性不等于text的input元素

(4)[attribute^=value]

$(“input[name^=text]”) 选取拥有name属性以text开始的input元素

(5)[attribute$=value]

( " i n p u t [ n a m e ("input[name ("input[name=text]") 选取拥有name属性以text结束的input元素

(6)[attribute*=value]

$(“input[name*=text]”) 选取拥有name属性含有text的input元素

(7)[attribute~=value]

$(“input[class~=text]”) 选取拥有class属性以空格分割的值中含有text的input元素

(8)[attribute1][attribute2][attributeN]
合并多个属性过滤选择器

5、表单对象属性过滤选择器(返回元素集合)
(1):enabled
选取所有可用元素

(2):disabled
选取所有不可用元素

(3):checked
选取所有被选中的元素(单选框,复选框)

$(“input:checked”) 选取所有被选中的<input>元素

(4):selected
选取所有被选中的选项元素(下拉列表)

JQuery中插入节点的方法

append() 向每个匹配的元素内部追加内容
appendTo() 将所有匹配的元素加到指定元素中。实际上,该方法是颠倒了常规的 ( A ) . a p p e n d ( B ) 操 作 , 将 A 追 加 到 B 中 p r e p e n d ( ) 向 每 个 匹 配 的 元 素 内 部 前 置 内 容 p r e p e n d T o ( ) 将 所 有 匹 配 的 元 素 前 置 到 指 定 的 元 素 中 。 该 方 法 是 颠 倒 了 (A).append(B)操作,将A追加到B中 prepend() 向每个匹配的元素内部前置内容 prependTo() 将所有匹配的元素前置到指定的元素中。该方法是颠倒了 (A).append(B)ABprepend()prependTo()(A).prepend(B)操作,原本是B前置到A中,现在是将A前置到B中
after() 在每个匹配的元素之后插入内容
insertAfter() 将所有匹配的元素插入到指定元素后面。该方法是颠倒了常规的 ( A ) . a f t e r ( B ) 的 操 作 , 即 不 是 讲 B 插 入 到 A 后 面 , 而 是 将 A 插 入 到 B 后 面 b e f o r e ( ) 在 每 个 匹 配 的 元 素 之 前 插 入 内 容 i n s e r t B e f o r e ( ) 将 所 有 匹 配 的 元 素 插 入 到 指 定 的 元 素 的 前 面 。 该 方 法 是 颠 倒 了 常 规 的 (A).after(B)的操作,即不是讲B插入到A后面,而是将A插入到B后面 before() 在每个匹配的元素之前插入内容 insertBefore() 将所有匹配的元素插入到指定的元素的前面。该方法是颠倒了常规的 (A).after(B)BAABbefore()insertBefore()(A).before(B)的操作,即不是将B插入到A前面,而是将A插入到B前面

JS中函数防抖和节流的区别

函数节流是指一定时间内js方法只执行一次
函数防抖是指频繁触发的情况下,只有足够的空闲空间,才执行一次
函数节流是声明一个变量当标志位,记录当前代码是否在执行,如果正在执行,取消这次方法执行直接return,如果空闲,正常触发方法执行
函数防抖是需要一个延时器来辅助实现,延迟执行需要执行的代码,如果方法多次触发,把上次记录的延迟执行代码用cleartimeout清除掉,重新开始,如果计时完毕,没有方法来访问触发则执行代码

Vue中常用的修饰符有哪些?

修饰符:
.lazy 改变触发后,光标离开input输入框的时候值才会改变
.number 将输出字符转换为number类型
.trim 自动过滤用户输入的首位空格

事件修饰符:
.stop 阻止点击事件冒泡,相当于原生js中的event.stopPropagation()
.prevent 防止执行预设的行为,相当于原生js中的event.prevetnDefault()
.capture 添加事件侦听器时使用事件捕获模式,谁有该事件修饰符就先触发谁
.self 只会触发自己范围内的事件,不包括子元素
.once 只执行一次

键盘修饰符:
.enter 回车键 .tab制表键
.esc 返回键 .space 空格键
.up/down/left/right 向上/下/左/右键

系统修饰符:
.ctrl .alt .shift .meta

v-text和{{}}和v-html的区别?

{{}} 将数据解析为纯文本,不能显示输出html
v-html 可以渲染输出html
v-text 将数据解析为纯文本,不能输出真正的html,与花括号的区别是在页面加载时不显示双花括号
v-text操作页面元素中的纯文本内容,{{}}是他的另一种写法。

v-text与{{}}区别:
v-text与{{}}等价,{{}}叫模板插值,v-text叫指令。
有一点区别就是,在渲染的数据比较多的时候,可能会把大括号显示出来,俗称屏幕闪动:

v-on可以绑定多个方法吗?

可以!
如果绑定多个事件,可以用键值对的形式 事件类型:事件名
如果绑定的是多个相同的事件,直接用逗号分开就行

Vue循环中key值的作用

Key值的存在保证了唯一性,vue在执行的时候,会对节点进行检查,如果没有key值,那么vue检查到这里有dom节点,就会对内容清空并且重新赋值,如果有key值存在,那么会对新老节点进行比较,比较两者key值是否相同,来进行调换位置或者删除等操作。

什么是计算属性

描述一个值依赖了其他的值,当它依赖的这个值发生改变的时候,就更新DOM
当在模板中把数据绑定到一个计算属性上的时候,vue会在他依赖的任何值导致该计算属性改变时更新DOM
每个计算属性都包括一个getter和setter,读取时触发getter,修改时触发setter

Vuex是什么?属性有哪些?

vuex是一个专门为vue.js应用程序开发的状态管理器,通过创建一个集中的数据存储,方便程序中的所有组件进行访问,就是vue的状态管理工具。
vuex有五个属性:state、getters、mutations、actions、modules
state数据存放池,一般对应vue中的data。state里存放的数据是响应式的,state数据发生改变,对应这个数据的组件也会发生改变,用this.$store.state.xxx调用
getters相当于store的计算属性,主要是对state中的数据进行过滤,用this.$store.getters.xxx调用
mutations处理数据逻辑的方法,当触发事件想改变state数据的时候使用,用this.$store.commit调用,给这个方法添加一个参数就是mutation的载荷(payload)
actions异步数据操作,但是通过mutation来操作,用this.$store.dispatch触发,actions也支出载荷

使用场景:组件之间的状态,登录状态,加入购物车,音乐播放

vue路由模式中的hash和histroy

Hash模式下地址栏会有#,histroy模式下没有,该模式下刷新会出现404的情况,需要后台配置。
使用JS来对locationn.hash进行赋值,改变url的hash值。
可以使用hashchange事件来监听hash值的变化。

HTML5 提供了 History API 来实现 URL 的变化。
其中最主要的 API 有以下两个:history.pushState() 和 history.repalceState()。
这两个 API 可以在不进行刷新的情况下,操作浏览器的历史纪录。
唯一不同的是,前者是新增一个历史记录,后者是直接替换当前的历史记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值