
JavaScript
文章平均质量分 69
小白路过
这个作者很懒,什么都没留下…
展开
-
clientWidth offsetWidth的区别
属性为何值,offsetWidth = clientWidth+borderLeft+borderRight;内容区域的宽度/高度,不包括边框border的宽度,含padding宽度。整个元素的宽高,包括边框border,即。时, offsetWidth为200px;原创 2023-02-16 16:12:56 · 194 阅读 · 0 评论 -
vue中v-for循环key值问题研究
介绍关于key的作用,官方是这样描述的: key 的特殊属性主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试修复/再利用相同类型元素的算法。使用 key,它会基于 key 的变化重新排列元素顺序,并且会移除 key 不存在的元素。有相同父元素的子元素必须有独特的 key。重复的 key 会造成渲染错误。之前不知道在哪里看的文章,一直以为使用key是为了就地复用,但是从上面的描述中可以看到原创 2022-04-25 09:45:23 · 8043 阅读 · 0 评论 -
安卓移动端数字键盘屏蔽加减
需求场景在手机端呼起数字键盘,在设置了type="number"之后,其实任然可以输入+, -;产品希望能够只输入数字和小数点,不要输入加减号。开发时,首先想到的是在keydown中监听当前输入的键值,如果不是0到9或者小数点,就不允许输入,其他则不允许。于是写出了以下代码$('#input-dom').on('keydown', function(e){ if ( e.key ...原创 2019-06-27 15:02:56 · 697 阅读 · 0 评论 -
es6实现继承的原理
extend在实现继承方面,本质上也是原型链继承,不过相对于es5原有继承模式而言,多了一条原型链继承。继承会首先在闭包里调用 _inherits(B, _A);该方法实现了两步原型链继承B.prototype = Object.create(A.prototype, {constructor:{value: B}})Object.setPrototypeOf(B, A);即将B.__...原创 2019-07-08 12:15:59 · 1283 阅读 · 0 评论 -
移动端呼出键盘换行改为搜索
在移动端有的时候设计稿不给出设计按钮,是需要回车搜索的,这时候希望将键盘上的enter换成搜索默认<input type="text"/>对应的是换行第一步:在input外面包一层form结构<form><input type="text"/></form>,此时对应的按钮变成前往第二步:为form添加action,input改为search类...原创 2019-06-05 11:03:36 · 1958 阅读 · 0 评论 -
let初始化思考
直接写let x=x会报以下错误Uncaught ReferenceError: x is not defined此句分为两步,1、申明变量 let x2、赋值变量 x=x; 此时内存中创建x变量,但是并未为其分配空间,所以再赋值时,并不能找到有效引用在这之后,如果再次尝试初始化lex x=1,依然会报错Uncaught SyntaxError: Identifier 'x' has ...原创 2019-04-26 01:34:16 · 662 阅读 · 0 评论 -
浏览器缓存理解
浏览器请求缓存机制Cache Control:response Header中设置缓存no-cache | max-age=0在缓存有效期内,必须先请求服务器验证是否使用缓存,而非不缓存no-store不缓存max-age = 12200服务器返回资源的同时,会返回ETag值,客户端首次访问后,将ETag值和资源同时缓存下来,新开浏览器窗口,再次访问,如果在资源有效期内,则会直接...原创 2019-04-26 01:31:00 · 329 阅读 · 0 评论 -
利用iframe解决跨域请求
用iframe解决跨域问题的关键在于利用window.name属性不会随页面跳转而丢失,在parent域名下内嵌iframe请求跨域接口,将请求回来的数据结果赋值给iframe的contentWindow.name。此时由于浏览器限制跨域访问iframe.contentWindow的属性,所以不能直接访问iframe的window.name属性。此时需要将iframe转为同一域名,然后在paren...原创 2019-04-08 23:33:01 · 3606 阅读 · 0 评论 -
javascript实现常用排序算法
选择排序每次循环,找出剩余未排序数据中最小或最大数所在的位置,查找过程中不交换function selectSort(arr){ for(var i=0;i<arr.length;i++){ var m = i; for (var j=i+1;j<arr.length;j++){ if (arr[j]<arr[m]) { m = j; } }...原创 2019-04-08 23:29:27 · 187 阅读 · 0 评论 -
圆形进度示意图
这阵子项目里用到圆形进度图,使用canvas实现圆形进度加载条 (function (globle, factory) { typeof module != "undefined" &amp;&amp; typeof module.exports != "undefined" ? module.exports.HProgress = fa原创 2018-12-17 21:03:38 · 359 阅读 · 0 评论