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 相关文章推荐
20个非常棒的 jQuery 幻灯片插件和教程分享
Aug 23 Javascript
jquery连缀语法如何实现
Nov 29 Javascript
jquery三个关闭弹出层的小示例
Nov 05 Javascript
jQuery判断checkbox(复选框)是否被选中以及全选、反选实现代码
Feb 21 Javascript
jquery删除数据记录时的弹出提示效果
May 06 Javascript
jQuery实现为图片添加镜头放大效果的方法
Jun 25 Javascript
Bootstrap每天必学之日期控制
Mar 07 Javascript
基于js对象,操作属性、方法详解
Aug 11 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
Mar 03 Javascript
深入理解es6块级作用域的使用
Mar 28 Javascript
JQuery插件tablesorter表格排序实现过程解析
May 28 jQuery
解决Vue中的生命周期beforeDestory不触发的问题
Jul 21 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
thinkPHP中分页用法实例分析
2015/12/26 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
thinkphp5+layui实现的分页样式示例
2019/10/08 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
JavaScript 模仿vbs中的 DateAdd() 函数的代码
2007/08/13 Javascript
javascript相关事件的几个概念
2015/05/21 Javascript
jQuery实现判断滚动条到底部
2015/06/23 Javascript
详解JS面向对象编程
2016/01/24 Javascript
JavaScript中的原型prototype完全解析
2016/05/10 Javascript
浅谈js多维数组和hash数组定义和使用
2016/07/27 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
详解vue的数据劫持以及操作数组的坑
2019/04/18 Javascript
javascript 高级语法之继承的基本使用方法示例
2019/11/11 Javascript
微信小程序实现抖音播放效果的实例代码
2020/04/11 Javascript
vue实现图片上传功能
2020/05/28 Javascript
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
Python科学计算之NumPy入门教程
2017/01/15 Python
python负载均衡的简单实现方法
2018/02/04 Python
TensorFlow入门使用 tf.train.Saver()保存模型
2018/04/24 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
使用Python实现毫秒级抢单功能
2019/06/06 Python
adidas美国官网:adidas US
2016/09/21 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
外语专业毕业生自我评价分享
2013/10/05 职场文书
数据员岗位职责
2013/11/19 职场文书
中年人生感言
2014/02/04 职场文书
保护环境倡议书500字
2014/05/19 职场文书
2014年党风廉政工作总结
2014/12/03 职场文书
2014年酒店服务员工作总结
2014/12/08 职场文书
介绍信如何写
2015/01/31 职场文书
2016年第32个教师节致辞
2015/11/26 职场文书