加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > 正文

五段适用的js淫荡能力

发布时间:2018-10-05 20:05:39 所属栏目:创业 来源:站长网
导读:能力一之setTimeout. 应用案例:好比你想一个函数轮回执行10次,怎么办?早年凡是是先setInterval,然后clearInterval,能力一就是降服这个题目 (function () { var i = 0; function job() { console.log(i++); if (i 10) { setTimeout(job, 1000); } } job();

能力一之setTimeout.

应用案例:好比你想一个函数轮回执行10次,怎么办?早年凡是是先setInterval,然后clearInterval,能力一就是降服这个题目

(function () {
var i = 0;
function job() {
console.log(i++);
if (i < 10) {
setTimeout(job, 1000);
}
}
job();

})();

上面这个job函数就只会乖乖的执行10次.然后自动遏制

能力二之高效的for轮回

应用案例:丢弃传统的轮回方法

(function () {
var arr=[];
for(var i=arr.length;i--;){
doStuff();
}
})();

这个方法为什么高效?

一:少了一个参数l=arr.length;

二:for语句中间谁人玩意少举办了一次计较,早年的话是for(i=0;i<l;i++)这样的话中间的语句会先较量i<l  然后较量出来的功效在

跟true 可能false较量,天然多了次计较

能力三之高效赋值

应用案例:丢弃传统的if判定赋值

var i=1,ret;
ret=i!==1||true;
console.log(ret);

以上代码会很神奇的汇报你ret会是true.高效吧不消if(i!==1)了在赋值了

能力四之刁悍的简短的attr

应用案例:setAttribute,getAttribute.这个要领不只可以配置尺度的属性,还可以配置恣意属性,兼容好

function attr(elem, name, value) {
var ret;
if (value) {
if (/msie [6-7].0/i.test(navigator.userAgent)) {
ret = elem.getAttributeNode(name);
if (!ret) { //ie6 7不正当的属性配置捕鸟,通过这里可以配置
ret = document.createAttribute(name);
elem.setAttributeNode(ret);
}
ret.nodeValue = value + "";
} else {
elem.setAttribute(name, value);
}
return elem;
} else { //ie6 7有得属性获取不鸟
ret = elem.getAttribute(name);
fixIe = elem.getAttributeNode(name).nodeValue;
ret = ret ? ret : fixIe ? fixIe : undefined;
return ret;
}
}

以上要领怎样测试呢?

 attr(document.getElementById("test"), "classxx", "xx")
 alert(attr(document.getElementById("test"),"classxx"));

能力五之getElementsByClassName.

应用案例 :早年js没什么框架的时辰,各人都再仿照这个要领,看看本日我是怎么高效的仿照出它来.这也不愧是js初学者的经典代码

(function () {
var getElementsByClassName=function(cls,context){
var root = context || document;
return document.querySelectorAll ? root.querySelectorAll("." + a) : root.getElementsByClassName ?
 root.getElementsByClassName(a) : help("*", cls, context);
}
var help=function(tagName,cls,context){
var root= context || document,
ret=[],elems,i,
rcls=new RegExp("^|s+"+cls+"s+|___FCKpd___4quot;);
elems = c.getElementsByTagName(tagName || "*");
for(i=elems.length;i--;){
if(rcls.test(elem[i].className)){
ret.push(elems[i]);
}
}
return ret;
}
})();

以上几个js淫荡能力照旧蛮适用的,条件是你没用行使别人的js框架,用原生缔造服从为条件的代码.

照旧那句话js代码喜爱者nothing原创,感谢各人支持,认为写得好可以顶下,可能把链接发给伴侣

来历:博客园,作者博客:http://nothingbrother.cnblogs.com/

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读