javascript两段代码,两个小技巧
2010-02-04 00:00
681 查看
第一段代码就是强调一下这个用法,我在我的项目中使用了一个switch,后来我发现这样的代码好丑,于是我就写成||&&形式的, 后来测试性能的时候,发现性能竟然上了一个数量级,可见这种写法在某些情况下可以增加性能,但是我并不确定是何种情况才能提高性能,因为我测试在通常情况下switch和||&&的性能是差不多的.
原来的代码:
改写后的代码,功能当然是一样的 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元素,赋值的同时会把值返回给外边的括号
于是出来下面这段代码 :
这段代码是因为我实在厌烦了建立一个dom元素的时候的一大堆语句:
等等等等,好烦啊.
于是出来了上面的代码.
用上面的原理还可以这样写代码 (ele=document.createElement("div")).className="aa"; 感觉是不是节省了一点空间呢,上面这句话节省了一个变量名,呵呵.
原来的代码:
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"; 感觉是不是节省了一点空间呢,上面这句话节省了一个变量名,呵呵.
相关文章推荐
- javascript两段代码,两个小技巧
- JavaScript 收集的两个小代码!
- Javascript 两个窗体之间传值实现代码
- [javascript]两段 javaScript 代码的逻辑比较
- Javascript 两个窗体之间传值实现代码
- 分享10个帮助你编写更加简洁javascript代码的小技巧
- javaScript 计算两个日期的天数相差(示例代码)
- 业务需要,得到了两段正则表达式的代码,JAVASCRIPT的(关于车牌号码的校验问题)。
- javascript代码运行分两个阶段:预解析,执行
- javascript 判断两个日期之差的示例代码
- javascript 判断两个日期之差的示例代码
- 使用javascript比较任意两个日期相差天数(代码)
- 8个Javascript小技巧,让你写的代码有腔调
- 给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
- JavaScript 收集的两个小代码!
- 给定一个整型变量a,写两段代码,第一个设置a的bit5,第二个清除a的bit5,在以上两个操作中,要保持其他位不变
- javascript代码优化几个小技巧
- 1、使用javascript代码写出一个函数:实现传入两个整数后弹出较大的整数
- 给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
- 从两段代码中理解JavaScript的单线程和异步