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 相关文章推荐
jquery下组织javascript代码(js函数化)
Aug 25 Javascript
jQuery Ajax提交表单查询获得数据实例代码
Sep 19 Javascript
Javascript判断图片尺寸大小实例分析
Jun 16 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
Jan 15 Javascript
Vue.js基础知识小结
Jan 13 Javascript
jQuery页面弹出框实现文件上传
Feb 09 Javascript
node.js中cluster的使用教程
Jun 09 Javascript
Angular2关于@angular/cli默认端口号配置的问题
Jul 15 Javascript
Node.JS中快速扫描端口并发现局域网内的Web服务器地址(80)
Sep 18 Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
Apr 16 Javascript
javascript实现简易的计算器
Jan 17 Javascript
JavaScript canvas动画实现时钟效果
Feb 10 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 团购折扣计算公式
2011/11/24 PHP
yii分页组件用法实例分析
2015/12/28 PHP
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
jquery学习总结(超级详细)
2014/09/04 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
老生常谈 关于JavaScript的类的继承
2016/06/24 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
vue项目引入Iconfont图标库的教程图解
2018/10/24 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
python进程类subprocess的一些操作方法例子
2014/11/22 Python
Python使用gensim计算文档相似性
2016/04/10 Python
Python的“二维”字典 (two-dimension dictionary)定义与实现方法
2016/04/27 Python
win与linux系统中python requests 安装
2016/12/04 Python
Python实现类似比特币的加密货币区块链的创建与交易实例
2018/03/20 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
为什么说Python可以实现所有的算法
2019/10/04 Python
东方电视购物:东方CJ
2016/10/12 全球购物
巴西电子产品购物网站:Saldão da Informática
2018/01/09 全球购物
Java语言的优势
2015/01/10 面试题
顺丰快递Java软件工程师面试题
2015/07/31 面试题
师范教师大学生职业生涯规划范文
2014/01/05 职场文书
代理商会议邀请函
2014/01/27 职场文书
保安队长职务说明书
2014/02/23 职场文书
明确岗位职责
2015/02/14 职场文书
预备党员自我评价范文
2015/03/04 职场文书
撤诉书怎么写
2015/05/19 职场文书
调解协议书范本
2016/03/21 职场文书
jackson json序列化实现首字母大写,第二个字母需小写
2021/06/29 Java/Android