1
问题:正则如何匹配img标签
解决方法
关于字符串替换replace的理解和实际使用
匹配正则img字符串 let reg = /<img\b.*?(?:\>|\/>)/gi
2
问题:如何实现,一个页面底部有一个加载条的动画?
解决方法:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.span {
width: 120px;
height: 100px;
vertical-align: middle;
border-radius: 1px;
margin-right: 100px;
background-color: pink;
}
.battery {
width: 69px;
height: 14px;
border: 1px #03a9f4 solid;
border-radius: 2px;
position: relative;
-webkit-animation: charge 5s linear infinite;
-moz-animation: charge 5s linear infinite;
animation: charge 5s linear infinite;
top: 40px;
margin: 0 auto;
}
@keyframes charge {
0% {
box-shadow: inset 0px 0px 0px #03a9f4;
}
100% {
box-shadow: inset 30px 0px 0px #03a9f4;
}
}
</style>
</head>
<body>
<div class="span">
<div class="battery"></div>
</div>
</body>
</html>
3
问题:如何使用api-mock js文件跟服务端进行交互
1 下载地址
https://registry.npm.taobao.org/api-mock-js/download/api-mock-js-0.1.9.tgz
2 支持promise,每次请求返回的都是promise对象
3 支持jsonp请求,需要对请求进行设置,具体用法如下
主要是要对jsonp进行配置说明,在第三个对象参数中,设置请求域名,请求类型,以及请求的urlModel
4
问题:你有什么自己的命名规则?
文件夹名,使用下划线,如
class名字:使用横杠,如
js变量名字,使用驼峰命名,如
5
问题:window.onload 方法有的理解?
window.onload() 方法用于在网页加载完毕后立刻执行的操作,即当 HTML 文档加载完毕后,立刻执行某个方法。
window.οnlοad=function(){
方法1,
方法2
}
6
问题:Vue如何设置动态宽度高度或者动态样式?
解决方法:
`background-image:" url${config.19.img}
1. 添加样式绑定
绑定高试样式
<div class="container" :style="{height: scrollerHeight}"> </div>
2. 添加属性计算
在computed里添加属性计算。记住 scrollerHeight 不能在data进行定义。
computed是啥?请看看 computed的使用
computed: { // 滚动区高度 // (业务需求:手机屏幕高度减去头部标题和底部tabbar的高度,当然这2个高度也是可以动态获取的) scrollerHeight: function() { return (window.innerHeight - 46 - 50) + 'px'; } }
7
问题:在移动端,有时候点击的时候会出现闪烁,怎么去除这个闪烁效果?
解决方法:
去除移动端点击闪烁效果
-webkit-tap-highlight-color: transparent;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
8
问题:js代码混淆的网址是什么?
9
问题:需要注意,vue中,dom更新是异步的,而不是同步
vue中DOM的更新是异步的,不是同步,而 this.$nextTic
能够在DOM发生后,触发里面的回调函数
10
问题:DOMContentLoaded 和 load 事件的区别
1 DOMContentLoaded --- 当初始的 HTML 文档被完全加载和解析完成之后,DOMContentLoaded 事件被触发,而无需等待样式表、图像和子框架的完成加载。
window.addEventListener(
"DOMContentLoaded",
function () {
initRem()
},
false
)
2 load --- 仅用于检测一个完全加载的页面,页面的html、css、js、图片等资源都已经加载完之后才会触发 load 事件。
11
问题:vue中插槽的使用
1 子组件通过放置 <slot></slot> 标签来表明他这里有一个插槽位置
2 父组件可以在子组件中,写入html 标签代码。如下图,是最简单的插槽代码
上面是最最简单的插槽的使用方法
下面是具名插槽的使用方法
1 在子组件中,给 slot 取一个name,属性和值
2 在父组件中,使用v-slot = name的值,来把插槽放到对应的位置,如下图
如对插槽做进一步了解:可参考以下网址
https://www.cnblogs.com/mandy-dyf/p/11528505.html
12
问题
如下图所示动态绑定src,不显示图片,将路径换成网络图片地址又可以显示
解决方法
引用本地图片需要加上require,使用require定义之后,就可以动态使用了,不用require你就只能写死的。不用 :src="’…/img/image.jpg’" 会被解析为字符串
13
问题:怎么监听微信浏览器返回按钮事件?
解决方法:
window.addEventListener("popstate", function(e) { alert("我监听到了浏览器的返回按钮事件啦");//根据自己的需求实现自己的功能 }, false);
14
问题;使用什么可以控制电脑的node 版本?
解决方法:
使用nvm
15
问题:我们想要移除元素的某个css属性时,将属性赋值为空有时不能达到我们想要的效果,应该怎么处理?
解决方法:可以使用下面的方式,赋值为’initial’。
$('.giftBox').css('height','initial');
16
问题:当你遇到不懂的代码,写不出来的时候,怎么去获取别人的网站特效源码?
解决方法
1 先百度下载一个仿站小工具
2 然后去这个网站,找自己要的特效:https://www.jsdaima.com/
3 然后把网址复制进我们的防站小工具,获取源码
4 记得下载下来的jq是有问题的,可以按需求进行替换
17
问题:在某些场景下,没有注册组件,但会报错,但这个标签在某个环境下是存在的?如:
<wx-open-launch-weapp> 标签,在vue中是没有的,但在微信环境中是存在的,所以需要对报错进行处理,怎么处理?
解决方法:
// 接除警告
Vue.config.ignoredElements = ['wx-open-launch-weapp']
18
问题:input,button,之间存在间距,需要怎么处理
解决方法:
给父元素添加font-size:0px
19
问题:在vue中,路由跳转,传参和接收参数是怎么做的?
传参
this.$router.push({path: '/vipDetails', params: {data: obj}})
接收参数
在目标页面通过this.$route.params获取参数
20
问题:undefined 和 null 相等吗?
解决方法:如下图
2个等,相等,不判断类型
3个等,不相等,判断了类型,undefined 是undefined 类型,null 是object 类型
21
问题:网页后台的搜索,怎么做?用户体验会更好
解决方法:
参照 巨量引擎 分门别类的进行搜索,
可以下拉和展开
按照某一种类进行分组和分类
22
问题:一个div内出现了url,但无法换行?怎么使用css解决?
解决方法
css控制Url换行
word-break: break-word;
23
问题:你是怎么理解闭包的?闭包函数?
解决方法:
在面试过程中,如果遇到问闭包的,就要马上联想到,函数内,再定义一个函数,这样,内部的函数能够访问外部函数的变量,就是闭包,这个函数也成为闭包函数
所以说,闭包是函数与函数之间,联系的桥梁
24
问题:原生js怎么创建dom?
解决方法
document.createElement('span') //创建dom
setAttribute("className","red") //添加指定的属性,并为其赋指定的值。
xxx.appendChild() // xxx为某个dom节点, 添加 子dom
25
问题:怎么创建一个文本节点?或者说,怎么理解document.createTextNode()方法?
解决方法:
使用document.createTextNode(”你好,我是文本内容“)
如果,我想要在某个节点下,添加文本内容--你好,世界,则可以使用以下代码
var txtDom = document.createTextNode(‘你好,世界’)
dom.appendChild(txtDom) --- dom是你要添加的某个节点
26
问题:如果在A站点与B站点进行通信?
解决方法:
使用postMessage(),进行跨域
27
问题:你对数据量过大,渲染卡顿,你是怎么进行优化的?
解决方法:
利用setTimeout,使用定时器,分批次进行加载
28
问题:对表格table渲染,你有什么更好的操作?
解决方法
可以使用vxe - table
链接:https://xuliangzhan_admin.gitee.io/vxe-table/#/table/start/install
29
问题:如果列表需要拖动,需要怎么实现?
解决方法:
使用sorttable.js ,详细用法自行百度
30
问题:怎么实现对xls文件的识别?
使用xls.js