当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript两段代码,两个小技巧

Javascript
很多人都是用下面的js刷新站IP和PV
javascript仿126邮箱TAB切换效果
js右下角弹出窗口,点击可关闭效果
javascript使用window.name解决跨域问题
DIV层之拖动、关闭、打开效果代码
Javascript条件判断使用小技巧总结
javascript获取不重复的随机数的方法比较
Firefox下设为主页的JavaScript代码
JavaScript编制留言簿程序代码
javascript表格随机排序代码
javascript一些不错的函数脚本代码
javascript之textarea打字机效果提示代码推荐
js实现的类似QQ的等级的代码
js检查是否全是中文
[原创]js判断是否有中文的脚本_js判断中文方法集合
js判断输入是否中文,数字,身份证等等js函数集合
js直接编辑当前cookie的脚本
jquery 必填项判断表单是否为空的方法
javascript高亮效果的二种实现方法
JavaScript基本入门语法集合

Javascript 中的 javascript两段代码,两个小技巧


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-02-27   浏览: 299 ::
收藏到网摘: n/a

话说以前我转过一片文章,讲的是 JavaScript中||和&&的妙用, 下面是一些优化写法。 第一段代码就是强调一下这个用法,我在我的项目中使用了一个switch,后来我发现这样的代码好丑,于是我就写成||&&形式的, 后来测试性能的时候,发现性能竟然上了一个数量级,可见这种写法在某些情况下可以增加性能,但是我并不确定是何种情况才能提高性能,因为我测试在通常情况下switch和||&&的性能是差不多的.
原来的代码:
复制代码 代码如下:

switch(this.now_char=this.str.charAt(this.index)){
case "/":
if(this.handleNote()) continue;else this.str2+=this.now_char;
break;
case "\"":
case "\'":
if(this.handleStr()) continue;else this.str2+=this.now_char;
break;
case "\n":
if(this.handleLine()) continue;else this.str2+=this.now_char;
break;
case "{":
case "}":
if(this.handleDepth()) continue;else this.str2+=this.now_char;
break;
case ":":if(this.handleJson()) continue;else this.str2+=this.now_char;break;
default:
if(this.handleKeyword()) continue;else this.str2+=this.now_char;
break;
}

改写后的代码,功能当然是一样的 view sourceprint?1 (this.now_char=="/"&&(this.handleNote()||(this.str2+=this.now_char)))||
((this.now_char=="\""||this.now_char=="\'")&&(this.handleStr()||(this.str2+=this.now_char)))||
(this.now_char=="\n"&&(this.handleLine()||(this.str2+=this.now_char)))|| ((this.now_char=="{"||this.now_char=="}")&&(this.handleDepth()||(this.str2+=this.now_char)))||
(this.handleKeyword()||(this.str2+=this.now_char))
我嚼的第二种写法更简洁点,||&&还有很多用处,可以看那篇文章的介绍
第二段代码是利用了一个特性: (ele=document.createElement("div")) ;//这个表达式会返回一个dom元素,赋值的同时会把值返回给外边的括号
于是出来下面这段代码 :
复制代码 代码如下:

var mixin=function(target,options){
for(var i in options){
target[i]=options[i]
}
}
var ele=null;
mixin(ele=document.createElement("div"),{
id:"aa",
className:"bb",
innerHTML:"sss"
})
document.body.appendChild(ele)
debug(ele.id)//aa
debug(ele.className)//bb
debug(ele.innerHTML)//sss

这段代码是因为我实在厌烦了建立一个dom元素的时候的一大堆语句:
复制代码 代码如下:

var ele=document.createElement("div")
ele.id="aa";
ele.className="aa"
ele.innerHTML="sss"

等等等等,好烦啊.
于是出来了上面的代码.
用上面的原理还可以这样写代码 (ele=document.createElement("div")).className="aa"; 感觉是不是节省了一点空间呢,上面这句话节省了一个变量名,呵呵.