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 相关文章推荐
JS 用6N±1法求素数 实例教程
Oct 20 Javascript
combox改进版 页面原型参考dojo的,比网上jQuery的那些combox功能强,代码更小
Apr 15 Javascript
浅析LigerUi开发中谨慎载入common.css文件
Jul 09 Javascript
JS按回车键实现登录的方法
Aug 25 Javascript
js使用递归解析xml
Dec 12 Javascript
js实现Select头像选择实时预览代码
Aug 17 Javascript
js判断手机号运营商的方法
Oct 23 Javascript
基于angularjs实现图片放大镜效果
Aug 31 Javascript
Javascript的动态增加类的实现方法
Oct 20 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
Dec 24 Javascript
浅谈angular2 组件的生命周期钩子
Aug 12 Javascript
jquery实现拖拽小方块效果
Dec 10 jQuery
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邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
PHP中的output_buffering详细介绍
2014/09/27 PHP
php常用hash加密函数
2014/11/22 PHP
PHP json_encode() 函数详解及中文乱码问题
2015/11/05 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
JavaScript中的Screen屏幕对象
2008/01/16 Javascript
JQuery里选择超链接的实现代码
2011/05/22 Javascript
ExtJs纵坐标值重复问题的解决方法
2014/02/27 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
vue中js判断长时间不操作界面自动退出登录(推荐)
2020/01/22 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
python求crc32值的方法
2014/10/05 Python
Python采用Django制作简易的知乎日报API
2016/08/03 Python
Python 内置函数complex详解
2016/10/23 Python
python 容器总结整理
2017/04/04 Python
Python实现的递归神经网络简单示例
2017/08/11 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
使用CSS3滤镜的filter:blur属性制作毛玻璃模糊效果的方法
2016/07/08 HTML / CSS
南威尔士家居商店:Leekes
2016/10/25 全球购物
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
澳大利亚在线消费电子产品商店:TobyDeals
2020/01/05 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
Java面试题:请说出如下代码的输出结果
2013/04/22 面试题
药剂专业学生求职信范文
2013/12/28 职场文书
安全保证书范文
2014/04/29 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
浪漫的婚礼主持词
2015/06/30 职场文书
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
2021/10/05 Javascript
django中websocket的具体使用
2022/01/22 Python