- 博客(16)
- 资源 (2)
- 收藏
- 关注
原创 appearance: none;的使用
在知乎上看到一个问题,为什么前端开发总喜欢用div代替语意更好的button按钮来实现button,原因无非是各个浏览器的button丑且样式不一致,所以干脆用div模拟反而要比修改button的默认样式反而更便捷。 其实一直有一个非标准的css而且兼容还出奇的好的属性--ie无视,能够在某种程度上缓解这种矛盾,就是 -webkit-appearance: none;(这里...
2018-10-07 10:38:25 8770
原创 彩色border
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> *{ padding: 0
2018-09-09 17:24:51 281 1
原创 instanceof执行机制
js中的instanceof是判断依据是对象的__proto__是否等于方法/类的prototype,若否则沿着原型链向上寻找,直到为null时返回false,大体实现如下function checkIsInstanceOf(obj,Class){ let proto=Object.getPrototypeOf(obj); if(proto === Class...
2018-08-04 18:52:04 501
原创 如何让阻止别人调试js
非服务端js因为最终要下载到客户端/浏览器编译执行,所以不可避免的要把代码泄漏出去。虽然压缩混淆可以让代码难以识别,但字符串/全局对象都不能被压缩,可以根据这方面入手来找寻突破口,进而对代码进行调试。这里抛砖引玉的分享一个阻止别人在浏览器调试代码的方法。目前多数浏览器都支持debugger断点代码,只要打开devtools,代码执行到debugger位置时,就会断点。而如若没有打开devtools...
2018-03-10 08:28:07 10293 3
原创 css实现页面切换效果
<!DOCTYPE><html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <style> *{ padding: 0; margin: 0
2018-03-04 11:24:08 7921
原创 数组扁平化
var arr=[1,2,[3,4,[5,6,{}]],7,8]; var toString=({}).toString; function plat(arr,_arr){ for(var i=0;i<arr.length;i++){ var item=arr[i]; if(toString.call(item)...
2018-03-03 18:20:20 353
原创 对象扁平化
JavaScript如何将层级Json转换成平级Json,例如将 { "A": { "a1": 1, "a2": 2 }, "B": { "b": 3 } }转换为{ "A.a1": 1, "A.a2":
2018-03-03 14:52:37 3541
原创 实现destructuringArray方法
阿里的一道面试提,实现es6的数组解构功能,并用对象形式返回达到如下效果// destructuringArray( [1,[2,4],3], "[a,[b],c]" ); // result // { a:1, b:2, c:3 }1.既然es6已经实现,调用es6解构后自己组装对象 function test(arr,str){ var o=new Function...
2018-03-03 08:02:46 1139 1
原创 setTimeout解决循环值的几种方法
for(var i=0;i<5;i++){ setTimeout(function(){ console.log(`错误 ${i}`); },0) } for(var i=0;i<5;i++){ (function(i){ setTimeout(function(){...
2018-03-03 08:00:04 1640
原创 等于1的同时等于2
网上看到的一道面试题,感觉没太实际的用途,正好前段时间看 你不知道的javascript,里面有讲解,顺手抄来,其实就是利用了了对象与基本数据类型比较要转换为基本类型的隐式转换--调用对象的toString和valueOf方法而已var o={ a:0, valueOf:function(){ return ++this.a; ...
2018-02-23 22:05:05 423
原创 日期格式化
const defaultFormat='yyyy/MM/DD HH:mm:ss MS d'; const REGS={ year:/y{2,4}/, month:/M{1,2}(?!S)/, date:/D{1,2}/, hour:/H{1,2}/, minute:/m{1,2}/, seco...
2018-02-23 21:52:52 272
原创 获取对象多层级属性值
在开发中,我们常遇到获取对象的多层级属性值,例如a.b.c.d这种,则不免会遇到其中一层已经为undefined而导致后面取值报错。所以不得不做一次校验,类似 a.b&&a.b.c&&a.b.c.d这样,层级越多判断也越多。es未来提议以这种形式替换:a.b?.c?.d,但目前还没有得到浏览器的支持。所以很有必要做一个工具方法来简化书写,这里抛砖引玉一下functi...
2018-02-23 21:50:02 2469
原创 几种左边固定右边自适应的左右布局方式
*{ padding: 0; margin: 0; box-sizing: border-box; } body>div{ margin-top: 10px; } .fixed{ width: 100px;
2017-06-11 15:09:57 424
原创 js实现sleep功能
class Test{ constructor(){ this.promise=Promise.resolve(); } showSomething(something){ this.promise=this.promise.then(()=>console.log(something));
2017-01-08 08:28:35 614
原创 js二维数组转一维数组
面试的一道题,将二维数组转换为一维数组 { const arr=[[1,2,3],[3,4],[5]]; console.log([].concat.apply([],arr)); }
2016-12-31 16:26:46 12885 2
原创 数组去重
面试时经常被问到数组去重的问题,个人觉得这种问题其实没太大的作用,毕竟在实际工作中很少能遇到的很大的数组,所以不论以什么样的方式实现都很难做到内存的溢出及产生较大的耗时差距(除非你是故意),这里以2的13次方乘以10个数组项为例,在不改变原数组的前提下,做了几种没考虑效率及内存的方法,仅以实现为目的 { function createTestArray
2016-12-31 11:51:37 415 1
PHPEclipse
2013-05-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人