- 博客(25)
- 收藏
- 关注
原创 es6笔记1——变量解构赋值
最近在复习 es6 的语法,再次看的过程中,有很多细节以及容易犯的错误,在这里做一下记录,以便以后多次查看复习:函数的参数使用默认值的时候,需要注意的地方:function func1({x = 0, y = 0} = {}) { return [x, y];}func1({x: 3, y: 8}); // [3, 8]func1({x: 3}); // [3, 0]func1({}); // [0, 0]func1(); // [0, 0]上面的代码里是对函数的参数 x, y 指定
2020-06-02 16:53:45
235
原创 复习几种常见的排序方法
1、冒泡排序通过交换相邻的位置,每一轮排序都把剩下的元素里最大的排到最后function bubbleSort(arr){ let len = arr.length; for(let i = 0; i < len ; i+++){ for(let j = 0; j<len-1-i; j++){ if(arr[j]<arr[j+1]){ [arr[j],arr[j+1]] = [arr[j+1],arr[j]]; } } } return arr;}
2020-06-02 15:20:10
339
原创 重写 js 里的 apply、call、bind 和 new 方法
用了这么久的这些方法以后,特别想深究其实现原理,所以在参考了很多资料以后,试着自己再手写一遍,记录在此,方便以后查找、回忆,或者帮助别人理解这些方法。1、apply方法:Function.prototype.myApply=function(){ let f = this; if(typeof f !== 'function'){ throw new TypeError('error'); } let arg = [...arguments].slice(1).shift();//1、类数组
2020-06-02 11:38:10
535
原创 利用Generator函数和for...of循环,实现有限的斐波那契数列数组
function* fibonaqi(){ let [pre,cur] = [1,1]; for(;;){ [pre,cur] = [cur,cur+pre]; yield cur; }}let arr=[1,1];for(let n of fibonaqi()){ if(n >1000){ break; } arr.push(n)}console.log(arr)// [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,
2020-05-29 15:52:13
320
原创 js里把字符串转成数组的几种方法小结
let str = 'asdfghjkksfg";1、常用 str.split(’’);2、Object.values(str)
2020-05-27 17:16:33
10833
原创 用 jquery 实现九九乘法表
用 jquery 实现九九乘法表,直接上代码:let sum=0;inner;for (let i = 1; i < 10; i++){ let div=$('<div></div>'); $("body").append(div); for(let j = i; j > 0; j--){ sum = j * i; inner= `${j}X${i}=${sum}`; div.prepend($(
2020-05-27 17:09:20
1780
原创 HbuilderX引入iconfont踩坑
在iconfont图库下载好之后,放在自己用 HbuilderX 开发的app项目里,发现不能用,查阅很多资料才知道,要在 iconfont.css 里修改下路径。截图如下:记录在此,后续忘记可以查看
2020-05-25 15:02:52
2739
原创 chrome控制台调试hover后才出现的元素
1、按【F12】打开开发者工具,鼠标位于悬停才出现的元素上时,点击右键;2、不要选中任何选项,将鼠标移动到开发者工具的调试面板3、按下N键,定位成功
2020-05-25 14:51:04
4952
4
原创 IE踩坑小结
写变量这个功能的时候,真的是各种问题,因为要兼容chrome、IE和Firefox,所以写到吐血……其中Firefox有个问题到现在都没有解决(用 “ Backspace “ 按键删除插入的变量内容的时候,要不删不掉,要不增加一个空格),因为是它浏览器内部的bug……现在抽时间小结一下遇到的IE问题,希望能帮到同行一点点:1、插入变量新生成页面dom元素的时候,IE会改成特定顺序的格式:比如我...
2019-04-11 16:59:46
414
原创 判断三种不同的浏览器:IE、Firefox、chrome
在做浏览器兼容的时候,要经常根据不同的浏览器展示页面,所以我参考了资料,总结了三个主流浏览器的判别方法: function checkBrowserType() { let Msie = /(msie\s|trident.*rv:)([\w.]+)/; let Firefox = /(firefox)\/([\w.]+)/; let Chrome = /(chrome)\...
2019-04-10 16:38:17
2090
原创 命名更改小结:下划线转驼峰,或驼峰转下划线
1、下划线转驼峰const toCamel = str =>str.replace(/([^_])(?:_+([^_]))/g, (_,p1, p2)=>p1+p2.toUpperCase());2、驼峰转下划线 const toLowerLine = str =>str.replace(/[A-Z]/g, match=>"_"+match.toLowe...
2018-03-23 19:22:00
2723
原创 一道有关于 prototype 的题
最近看到一道题,如下:var A = function(){};A.prototype = {};var a = new A();A.prototype = {};var b = new A();console.log(a instanceof A);console.log(b instanceof A);如果对原型不是很了解,这里肯定很懵。我试着解释一下: 1、创建了一个...
2018-03-21 23:32:35
474
原创 几种黑白相间的棋盘实现方法
方法一:用 DIV 实现<style> .black-cell{ width:50px; height:50px; background: #000; position: absolute; top:0; left:0; }</style> &...
2018-03-13 21:20:54
8965
2
原创 HTML 的 contenteditable=false 陷井之一
最近刚开发完一个新特性,碰见了很多问题,等有时间会依次做总结,其中有一个问题就是 html 元素的 contenteditable=false 在IE(edge)下,会偶现还是可编辑的情况,查了很多资料才了解到,原来在IE下,必须做其它处理:假如有这样的代码:<div contenteditable=true class="someDivStyle"> <span...
2018-03-09 20:59:16
7759
1
原创 用javascript给元素添加样式的方法以height为例
在工作中遇到很多人对简单的样式很头疼,经常忘记方法,自己也经常这样,或忘记或弄混淆,在这里做一个总结: 假如有一个如下的div元素,需要通过 js 来控制它的高: <div id="test"></div>可以有如下几种方法: 1、 用原生的 setAttribute( ) 方法:document.getElementById...
2018-01-26 20:25:10
3834
原创 获取光标的像素位置、索引位置
最近工作中有一个需求,需要根据用户的输入判断如果为“@”字符,需要在旁边弹出一个变量框,让用户选择变量。这里就遇到了两个问题: 1、获取光标的像素位置,这样才能判断输入框在哪个位置弹出 2、获取光标在输入框的索引位置,这样才能把变量放进输入框1、对于第一个问题的解决其实很简单,JQuery有一款插件:jquery.caret——可以很方便的取得相对父元素的定位,或者相对浏览器窗口的定位。// G
2018-01-17 21:27:09
3292
5
原创 表格enctype的三种方式
作用:指定表达数据的编码方式,表单中的那些数据可以提交给服务器 取值: 1、application/x-www-form-urlencoded 默认值,允许将普通字符和特殊字符提交给服务器,文件不行 2、multipart/form-data 特点:允许提交 文件,会影响普通上传数据 3、text/plain
2017-12-28 20:25:26
521
原创 记录两种控制台报错信息
最近工作中遇到两种控制台的报错信息相对来说比较棘手,所以做一下记录,给自己以后提醒:1、测试人员发现点击某处按钮,偶现弹框页面加载不出来的现象,并把控制台截图给我们反映情况。但是由于这是偶现问题,所以至今我们仍无法复现问题,但是根据当时的截图以及控制台的报错,可以大概推出原因:此弹框的js并没有加载出来。对于这种情况,可以参考网上已有方法,推荐文章: 《无阻塞加载 js ,防止因 js 加
2017-08-13 19:15:47
883
原创 异步调用接口返回大量数据,如何处理才能使页面渲染时不卡?
页面上要渲染的表格数据是由很多个接口返回的数据拼成的,并且数据量相当大,甚至几千几万条,一般人想着如下方式处理,eg:var datas = [];service.getNames(a,b,...其它参数).then( function(response){ for(var i = 0;i<response.length;i++){ service.
2017-08-08 21:08:48
10573
原创 for循环异步调用接口,怎样判断数据已经返回完成?
在工作中遇到了一个for循环调用接口的例子:首先要根据一个集群ID,去调用接口查询此集群下的所有“命名空间”,接着再用for循环来一个个查询所有“命名空间”下的“实例”,eg:<script type="text/javascript"> namespaceService.getNamespaceList(clusterId,...(其它参数)).then( function
2017-08-06 12:38:29
19680
原创 重写toFixed方法——以既可以指定小数位又可返回数字类型
1、我们知道Math对象里的 Math.round( num ) 方法返回 num 的最接近整数,有一点近似于四舍五入的方法,这个方法只能得到整数。2、而 num.toFixed( n )方法返回的是 num 的指定小数位数为 n 的字符串,注意:这里返回的是字符串,其实这个方法还有另一个坑,它无法把整数小数化。比如:你在控制台打印 3.toFixed(2),那么控制台会报错。3、所以我们在
2017-07-01 17:33:32
4311
1
原创 四种数组去重方法的遍历效率比较
1、第一种方法,就是我们上次讨论的方法:var arr=["a","b","a","c","a","b"];function unique1(arr){ for(var i =0,uarr=[];i<arr.length;i++){ for(var k =0;k<uarr.length;k++){ if
2017-06-28 20:33:05
7448
原创 巧用短路逻辑优化代码质量
方法1:var arr=["a","b","a","c","a","b"];function unique1(arr){ //第一种方法 for(var i =0,uarr=[];i<arr.length;i++){ for(var k =0;k<uarr.length;k++){ if(arr[i] == uarr[k]){
2017-06-23 21:14:07
644
1
原创 巧用css技巧实现三角符号
<html><head><title>巧用css技巧实现三角符号</title><style type="text/css"> div{ width:0; height:0; border:50px solid transparent; border-top-color:red; }</style></head
2017-06-22 22:04:53
1457
原创 过长的字符如何使用CSS隐藏?
过长的输入怎样隐藏?<html><head><title>过长内容的隐藏</title><style type="text/css"> b{ width:100px; display:inline-block;/*行内元素必须添加此属性,宽度设置才能有效*/ overflow:hidden; text-overflow:e
2017-06-21 22:04:15
650
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人