javascript两段代码,两个小技巧


Posted in Javascript onFebruary 04, 2010

第一段代码就是强调一下这个用法,我在我的项目中使用了一个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"; 感觉是不是节省了一点空间呢,上面这句话节省了一个变量名,呵呵.
Javascript 相关文章推荐
用javascript获取地址栏参数
Dec 22 Javascript
OfflineSave离线保存代码再次发布使用说明
May 23 Javascript
javascript中的作用域scope介绍
Dec 28 Javascript
遍历jquery对象的代码分享
Nov 02 Javascript
js实现新浪微博首页效果
Oct 16 Javascript
jquery trigger实现联动的方法
Feb 29 Javascript
Javascript闭包与函数柯里化浅析
Jun 22 Javascript
jQuery利用sort对DOM元素进行排序操作
Nov 07 Javascript
xmlplus组件设计系列之按钮(2)
Apr 26 Javascript
VUE axios发送跨域请求需要注意的问题
Jul 06 Javascript
利用JS如何计算字符串所占字节数示例代码
Sep 13 Javascript
详解ES6新增字符串扩张方法includes()、startsWith()、endsWith()
May 12 Javascript
JavaScript面向对象之静态与非静态类
Feb 03 #Javascript
JavaScript 学习笔记(十六) js事件
Feb 01 #Javascript
js左侧多级菜单动态的解决方案
Feb 01 #Javascript
javascript 三种编解码方式
Feb 01 #Javascript
对字符串进行HTML编码和解码的JavaScript函数
Feb 01 #Javascript
javaScript 关闭浏览器 (不弹出提示框)
Jan 31 #Javascript
javascript让setInteval里的函数参数中的this指向特定的对象
Jan 31 #Javascript
You might like
php自定义函数call_user_func和call_user_func_array详解
2011/07/14 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
php从字符串创建函数的方法
2015/03/16 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
浅谈PHP检查数组中是否存在某个值 in_array 函数
2016/06/13 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
javascript获得CheckBoxList选中的数量
2009/10/27 Javascript
IE浏览器打印的页眉页脚设置解决方法
2009/12/08 Javascript
javascript hasFocus使用实例
2010/06/29 Javascript
jquery选择器(常用选择器说明)
2010/09/28 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
jquery如何实现在加载完iframe的内容后再进行操作
2013/09/10 Javascript
javascript陷阱 一不小心你就中招了(字符运算)
2013/11/10 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
js style动态设置table高度
2014/10/21 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
2015/03/26 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
js实现点击向下展开的下拉菜单效果代码
2015/09/01 Javascript
JS表格组件神器bootstrap table详解(强化版)
2016/05/26 Javascript
前端微信支付js代码
2016/07/25 Javascript
bootstrap Table插件使用demo
2017/08/07 Javascript
JS正则表达式完美实现身份证校验功能
2017/10/18 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
基于JS实现数字动态变化显示效果附源码
2019/07/18 Javascript
原生JS封装拖动验证滑块的实现代码示例
2020/06/01 Javascript
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
wxpython多线程防假死与线程间传递消息实例详解
2019/12/13 Python
解决python中import文件夹下面py文件报错问题
2020/06/01 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
华为智利官方商店:Huawei Chile
2020/05/09 全球购物
年度考核自我鉴定
2013/11/09 职场文书
应届毕业生简历自我评价
2014/01/31 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
2016年教师节慰问信
2015/12/01 职场文书