JavaScript进阶
JavaScript进阶
程序媛夏天
前端领域优质创作者、自媒体创作者、CSDN内容合伙人,致力于前端领域技术的推广与优秀技术的普及。
展开
-
前端面试十有九问之原型链
1.原型链是什么?原型指的是原型属性,原型也是一个对象。当访问一个对象的属性时,如果这个对象内部不存在这个属性,那么它就会去它的原型对象里找这个属性,这个原型对象又会有自己的原型,于是就这样一直找下去,也就是原型链的概念。2.原型链的终点是什么?为什么呢?原型链的终点是 null ,因为 Object.prototype.__proto__指向 null那为什么是null呢?首先要明确一点,原型链上的所有节点都是对象,另外,规范要求原型链必须是有限长度的(从任一节点出发,经过有限步骤后必须到原创 2022-04-26 22:53:14 · 3130 阅读 · 0 评论 -
每天10个前端小知识 【Day 9】
每天学习10个前端小知识,快来看看吧!原创 2023-02-09 00:45:00 · 2361 阅读 · 0 评论 -
js解决url传递中文参数乱码问题
常见url传递中文参数乱码问题原创 2023-02-06 17:53:19 · 5952 阅读 · 0 评论 -
每天10个前端小知识 【Day 8】
每天学习10个趣味前端小知识,快来看看吧!原创 2023-02-08 00:00:00 · 3033 阅读 · 0 评论 -
每天10个前端小知识 【Day 7】
每天学习10个趣味前端小知识,快来看看吧!原创 2023-02-07 15:30:00 · 2019 阅读 · 0 评论 -
每天10个前端小知识 【Day 6】
每天学习10个趣味前端小知识,快来看看吧!原创 2023-02-06 14:15:00 · 435 阅读 · 0 评论 -
每天10个前端小知识 【Day 5】
每天学习10个趣味前端小知识,快来看看吧!原创 2023-02-05 09:00:00 · 470 阅读 · 0 评论 -
每天10个前端小知识 【Day 4】
每天学习10个趣味前端小知识,快来看看吧!原创 2023-02-04 16:00:00 · 769 阅读 · 0 评论 -
每天10个前端小知识 【Day 1】
每天学习10个趣味前端小知识,快来看看吧!原创 2023-02-01 09:20:47 · 2025 阅读 · 0 评论 -
每天10个前端小知识 【Day 2】
每天学习10个趣味前端小知识,快来看看吧!原创 2023-02-02 09:49:01 · 4877 阅读 · 1 评论 -
如何在 JavaScript 中将数组转为对象
首先,我们要明白对象具有键和值。JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键。如果我们想把某个东西转换成一个对象,我们需要传递具有这两个要求的东西:键和值。原创 2022-10-17 15:35:24 · 18675 阅读 · 0 评论 -
用原生js实现商品表单筛选查询功能
原生js实现表单筛选查询功能原创 2022-08-23 16:44:35 · 842 阅读 · 0 评论 -
【前端面试】this的指向
今天面试考了一道题a={b},c()=>{}}问a.ba.ce=a.bf=a.c主要是考察普通函数和匿名函数的this指向。下面来回顾一下。原创 2022-07-19 23:09:22 · 358 阅读 · 1 评论 -
付款成功后秒数倒计时
在制作商城项目时,我们付款后经常会有一个几秒后跳转页面的计时原创 2022-06-30 18:30:43 · 464 阅读 · 0 评论 -
购物网站的秒杀计时器实现
秒杀计时器是我们在制作商城秒杀模块经常用到的,下面是用原生js写的一个简易秒杀计时器,小伙伴可以直接拷贝下来使用。原创 2022-06-30 18:15:53 · 609 阅读 · 2 评论 -
参数的设置
函数在定义参数时根据参数的不同,可以分为两种类型,一种是无参函数,一种是有参函数。在定义有参函数时,设置的函数称为形参,函数调用时传递的参数称为实参。所谓形参指的就是形式参数,具有特定的含义;实参指的是实际参数,也就是具体的值。接下来将分别介绍几种常见的函数参数设置。(1)无参函数无参函数适用于不需要提供任何数据,即可完成指定功能的情况。具体实例如下。(2)有参函数在项目开发中,若函数体内的操作需要用户传递的数据,此时函数定义时需要设置形参,用于接收用户调用函数时传递的实参。具体实例如下。上述定原创 2022-06-27 22:34:12 · 3347 阅读 · 0 评论 -
el-select二级联动效果-摄像头
需求:改变货架编号,显示出对应的监控层数。并且初次渲染的时候,也要展示货架编号的对应监控层列表。我的难点在于不知道将对应的层数怎样将它展示出来这个后端给的结构是这样的思路:定义一个选中的变量,然后里面从this.shelvesList.filter过滤掉,里面的shelvesSn 就是change里面的val,然后让 v-for里面的this.deviceCameras[index].levelList = selectedShelf[0].levels意思就是绑定的=选中的层数...原创 2022-06-24 13:38:30 · 748 阅读 · 2 评论 -
前端面试官问闭包,怎样回答脱颖而出
在前端面试中经常被问到的一个话题是闭包,下面我讲结合自己的面试经验,关于闭包这个问题讲讲技术面试官会对它进行怎么一个提问?1.闭包是什么?闭包就是能够读取其他函数内部变量的函数。2.为什么要使用闭包?原因:Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。但是在函数外部自然无法读取函数内的局部变量。出于种种原因,我们有时候需要得到函数内的局部变量。那就是在函数的内部,再定义一个函数。3.你能写一个闭包出来吗?就是在函数里面再写一个函数,然后返回值。function .原创 2022-01-05 10:52:02 · 7795 阅读 · 0 评论 -
reduce()数组方法的使用场景
定义:reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。语法:arr.reduce(function(prev,cur,index,arr){undefined一系列操作}, init);prev: 必需(初始值, 或者计算结束后的返回值);cur: 必需(当前元素);index: 可选(当前元素的索引);arr:可选(当前元素所属的数组对象);init: 可选(传递给函数的初始值);场景一:数组累加、累乘let arr1 = [1,.原创 2022-04-14 21:17:38 · 3651 阅读 · 7 评论 -
数组遍历的方法有哪些
数组遍历的方法有8种1、forEach:遍历开始以后无法停止,如果要遍历整个数组,那就使用这个方法;2、map:根据当前数组映射出一个新的数组;3、some:遍历整个数组,返回值true就停止循环(返回false继续循环)返回值:如果数组中的有一项回调函数返回true,那么结果为true,否则为false;(或者这样理解:数组别遍历完,那么结果为false,否则为true)4、every:与some相反,返回false就停止循环(返回true就继续循环)5、filter:过滤数组,返回一个新的数原创 2022-04-14 13:49:41 · 10272 阅读 · 0 评论 -
前端面试怎么回答节流和防抖
关于节流和防抖这一问题会经常在前端面试中问到,笔者认为可以从以下几个方面回答1.节流节流是什么函数节流是指规定一个单位时间,在这个单位时间内,只能有一次触发事件的回调函数执行,如果在同一个单位时间内某事件被触发多次,只有一次能生效。节流可以使用在 scroll 函数的事件监听上,通过事件节流来降低事件调用的频率。节流函数的适用场景:拖拽场景:固定时间内只执⾏⼀次,防⽌超⾼频次触发位置变动缩放场景:监控浏览器resize动画场景:避免短时间内多次触发动画引起性能问题源代码// 节流(一段时原创 2022-03-27 21:13:26 · 1525 阅读 · 0 评论 -
js数组常用方法
js数组常用方法还挺多的,如果面试官问你这道题可不要只回答几个哟,那是会扣分的!下面是一篇详细的js数组教程文章原创 2022-03-27 18:21:09 · 91813 阅读 · 21 评论 -
组件需要覆盖下面的按钮样式
地图检索组件需要覆盖下面的按钮样式需求:地图组件打开需要覆盖下面的按钮的样式存在的问题:按钮样式显示在地图组件的上方,并且改变层级没有用我的思路:一直在用那个z-index,想改变样式。但是就是改变不了解决方案:是在按钮添加v-show,里面定义一个变量,接着设置bm-local-search里面的方法,方法里面写与设置的变量相反的值。思路差异:我一直在纠结的是z-index层级的变化,而不是换一个思维去考虑按钮的显示,还有就是没考虑是这个组件bm-local-search的调用方法,这是我没有想原创 2022-03-14 18:19:44 · 748 阅读 · 0 评论 -
js垃圾回收机制
一、垃圾收集* 什么是垃圾: * 一般来说,没有被引用的对象就是垃圾,就要被清除。 * 有个例外,如果几个对象引用形成一个环,它们互相引用,但是根访问不到它们,这几个对象也是垃圾,也要被清除。* 垃圾回收GC的全拼是 Garbage Collection 其在维基百科的定义是:在计算机科学中,垃圾回收是一种自动的内存管理机制。当一个电脑上的动态内存不再需要时,就应该予以释放,以让出内存,这种内存资源管理,称为垃圾回收* JavaScript具有自动垃圾收集机制,也就是说,执行环境会原创 2022-03-04 14:04:42 · 268 阅读 · 0 评论 -
select下拉框组件禁用选项值怎么实现
效果如图背景需求下拉框的数据选项值是通过接口请求过来的,当时没有想明白将disabled为true写在哪里接口直接将数据渲染出来了,就是在后面继续再做判断;这个与当时的时间判断出数据是大同小异;因此不用将问题复杂化,这样做还少写了@change这个切换值的方法了。源代码 <!-- //指定部门主管的多选框 --> <template v-if="orderConfig.reportAuditType == 3"> <el-select v-原创 2022-01-21 17:03:44 · 2591 阅读 · 0 评论 -
el-select选择组件中@change事件返回对象方法
背景需求:选中多选框的部门后,还要去查询到该部门是否有负责人,有负责人就能够保存;无负责人,就提示“该部门暂未设置负责人”。解决思路:原创 2022-01-19 20:21:26 · 4915 阅读 · 0 评论 -
防止按钮暴力点击怎么实现
解决思路第一种方法:在规定时间内将按钮禁用的方法1.主要思想就是禁止用户在一定的时间多次点击,在一定时间内将按钮禁用,用定时器实现,一定时间之后用户可再次点击。源代码 //一个保存按钮 <el-button type="primary" @click="handleInspectionItemSave" :disabled="is_click" //这句话是要写的 v-loading.fullscreen.lock="inspectionItem.原创 2022-01-17 11:53:40 · 1716 阅读 · 0 评论 -
时间格式处理
时间格式问题这个问题在前端中是比较常用的到,下面写个代码(注意这个不是时间戳)后端返回的字段:2021-11-18T03:44:00.968+0000要求转换为的字段:2021年11月18日 03:44 <view class="subTitle"> <p>{{ dateFormat(item.startTime) }}</p></view>万能格式//时间转换 dateFormat(time) { let原创 2021-11-18 11:45:51 · 810 阅读 · 0 评论 -
监听器和侦听器
监听器 watch: { //dataList2为监听的数据 dataList2: { // handler为任意函数名 handler(val) { for (let i = 0; i < val.length; i++) { if (val[i].checked) { this.isActivation = true; return; } }原创 2021-11-16 11:51:12 · 232 阅读 · 0 评论 -
js实现单选全选功能
实现效果如图:源代码 <view class="padding32"> <template v-if="dataList2.length"> <!-- 循环单选 --> <view class="parkNotice-email" v-for="(item2, index2) in dataList2" :key="index2" @click="checkChange(index原创 2021-11-15 15:25:41 · 1317 阅读 · 0 评论 -
图片、接口封装
最近在做小程序项目,首先会将整个项目的图片、接口做个封装,以及公共样式的提取。这样做的好处是图片接口前面的地址可能会发生改变,那么改动的时候只用改一个地方就好了。今日讲讲怎么做图片、接口的封装图片封装一张图片的完整地址如下: src=“http://10.1.200.99:32000/runyang/miniprogram/prod/animation/park/swiperAll.png”那么服务器这个存放图片的文件夹很多图片一样的前缀地址,所以来封装了。imgPath.js//静态全局图.原创 2021-11-12 18:02:50 · 504 阅读 · 0 评论 -
前端验证手机号和座机号号码
上代码:// 校验电话号码或者手机号码,不符合提示:请输入正确的联系电话export function validateContactPhone(rule, value, callback) { value = value && (value + '') || '' var testPhone=/^((\+?86)|(\(\+86\)))?(13[012356789][0-9]{8}|15[012356789][0-9]{8}|18[02356789][0-9]{8}|1原创 2021-10-18 21:06:06 · 1346 阅读 · 0 评论 -
修改elementUI单选框默认值
上代码: <el-radio-group v-model="form.tax_rate_type"> <el-radio :label="1" >一般纳税人税率</el-radio> <el-radio :label="2" >小规模税率</el-radio> </el-radio-group>form:{ tax_rate_type:1, // 税率类型选择}实现效果:...原创 2021-10-18 21:04:06 · 909 阅读 · 0 评论 -
前端调试接口的常见报错
在前端调试接口的过程中,我遇到了一些错误,现将它整理出来,大概有以下几种情况。1.id为Object解决办法就是:将请求里面的参数从对象修改为单个的参数其次就是看接口方式,比如这里的put接口方式就有写错再次看自己有没有漏写参数,比如这次我漏改一个参数,就是在roomPop文件夹里2.接口200,但是返回参数为“参数错误、更新失败”解决办法:首先先确认自己的代码是传参正确,再次就是200不代表后端没有错误,而这次就是后端的错误。3.put接口的写法:就是将id放入其中//更新房间状态从原创 2021-10-18 21:01:40 · 3760 阅读 · 0 评论 -
拉完项目代码后代码全部报红
问题描述:从Gitlab上拉完项目代码后,发现每点一个文件的下方都出现红色波浪线在报错,首先解决思路是全部的代码爆红想到的是插件问题。解决办法:删除Elient空格符插件,关闭重启visualcode工具,然后再从gitlab上重新拉代码。目测成功...原创 2021-09-14 18:26:41 · 2103 阅读 · 0 评论 -
js经常忘记的
splice() 方法用于添加或删除数组中的元素。注意:这种方法会改变原始数组。push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。注意: 新元素将添加在数组的末尾。注意: 此方法改变数组的长度。提示: 在数组起始位置添加元素请使用 unshift() 方法。unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。注意: 该方法将改变数组的数目。join() 方法用于把数组中的所有元素转换一个字符串。...原创 2021-09-06 17:17:50 · 150 阅读 · 0 评论 -
HTTP状态码:StatusCode
一些常见的状态码为:200 - 服务器成功返回网页404 - 请求的网页不存在503 - 服务不可用详细分解:1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。代码 说明100 (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。2xx (成功)表示成功处理了请求的状态代码。代码 说明200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供原创 2021-08-17 09:52:09 · 1519 阅读 · 0 评论 -
Status Code: 518 Server Error (518)
接口状态码为Status Code: 518 Server Error (518)的解决思路首先我确保自己的接口是写对了的,而报518的原因是因为后台返回数据为空,我请求的数据也是没有的。那么这个问题的解决思路就是找后台要数据,或者问他请求的参数传个固定值为多少可以显示数据。我的情况是:后台人员说后台加数据比较困难,让我到原来的App上自己报单增加数据。...原创 2021-08-05 10:27:52 · 1083 阅读 · 0 评论 -
小程序:(点击A页面的卡片项,如何跳到相应的B页面)怎么实现的?
1.场景说明点击A页面的物料待审核卡片项,跳转到B页面的对应的物料待审核的列表项点击A页面的转派待审核卡片项,跳转到B页面的对应的转派待审核的列表项A页面B页面2.具体实现思路在B页面我是做了for循坏的,因为列表的整体是差不多的,只是要求放入数据进去。从A页面跳到B页面的关键思路就是“一个握手的操作”,意思就是B页面要拿到A页面跳到B页面的具体参数,即是根据什么标签来跳的,可以看看接口文档,像我当前这个就是根据orderId(工单编号)还有auditType(审核类型)来进行跳转的,原创 2021-08-05 10:20:36 · 515 阅读 · 0 评论 -
小程序:(让nav固定定位,下面的内容是滚动的)怎么实现?
以前我只想到的是固定定位fixed,但是没有想到用弹性盒子也可以,觉得这种写法挺巧妙的。原创 2021-08-05 10:06:19 · 500 阅读 · 0 评论