博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript之奇淫技巧
阅读量:6955 次
发布时间:2019-06-27

本文共 905 字,大约阅读时间需要 3 分钟。

最近准备面试,复习一下javascript,整理了一些javascript的奇淫技巧~

//为兼容ie的模拟Object.keys()

Object.showkeys = function(obj) {    var a=[];     for(a[a.length] in obj);        return a;}

那么大家怎么模拟Object.keys()呢?是不是循环obj,再循环a数组赋值呢,反正一开始我就是这么想的,后来看到a[a.length]觉得蛮厉害的。

//mass Framework的合并对象,支持深拷贝的方法

function mix(target,source){    var args=[].slice.call(arguments);    var ride=typeof args[args.length-1]=='boolean'?args.pop():true;//判断深拷贝的布尔,一句话经典...}

一句话把是否是深拷贝的布尔值表示出来,简洁,高效,记录之。

// jq的makeAarry的复制数组

var i=array.length;while(i)    ret[--i]=array[i]

jquery的复制数组部分代码,蛮不错的。

//判断函数可以用return返回,其他情况下还可以减少对象的实例;

var toAarry =function(){  return isIE()?    function(a,i,j,res){...}//以后每次执行都不用判断了,直接取toAarry  : function(a,i,j){...}

这个方法是很多框架,前端都在用的,function,object,return的时候判断一下,比如第一次判断了你浏览器,以后就不用再判断了,直接用返回的东西。js设计模式很多也都用了这个模式,很高效的说。

// fn.call(window)的另一种写法

(0,fn)()

来自babel转码中的应用

持续更新~

转载于:https://www.cnblogs.com/dh-dh/p/5077215.html

你可能感兴趣的文章
PHP导出超大的CSV格式的Excel表方案
查看>>
Mac 环境下如何生成Git shh key
查看>>
jenkins 使用磁盘检查插件 disk check plugin
查看>>
使用 Ruby 拓展 Vim
查看>>
centos7下安装LNMP(nginx+PHP7.1.9+mysql5.7)
查看>>
NodeAPI学习之Buffer
查看>>
深入java单例模式
查看>>
create-react-app
查看>>
20170812-XSS跨站脚本攻击
查看>>
Let’s Build |> 使用Elixir,Phoenix和React打造克隆版的Slack(part 1)
查看>>
如何让 StackNaivgator 实现越级回跳
查看>>
工具简述
查看>>
Hbase 集群搭建
查看>>
分布式文件服务器dfs
查看>>
正则表达式
查看>>
关于直播视频格式和浏览器兼容性历史的来龙去脉
查看>>
是的,InfoQ正在招聘技术编辑!跟对的人,一起做喜欢的事!
查看>>
vue2+vue-cli,dis文件加载出错解决方案
查看>>
立下“去O”Flag的AWS,悄悄修炼了哪些内功?
查看>>
关于团队建设,穆帅能教我们什么?
查看>>