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 相关文章推荐
用tip解决Ext列宽度不够的问题
Dec 13 Javascript
JavaScript的递归之递归与循环示例介绍
Aug 05 Javascript
js替代copy(示例代码)
Nov 27 Javascript
JS截取与分割字符串常用技巧总结
Nov 10 Javascript
JS设置cookie、读取cookie
Feb 24 Javascript
Vue.js实现简单动态数据处理
Feb 13 Javascript
JS求Number类型数组中最大元素方法
Apr 08 Javascript
Vue页面骨架屏的实现方法
May 22 Javascript
vue.js 图片上传并预览及图片更换功能的实现代码
Aug 27 Javascript
javascript数组去重方法总结(推荐)
Mar 20 Javascript
JS学习笔记之数组去重实现方法小结
May 29 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
Jul 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
WAR3重制版DOTA 5V5初体验
2020/04/09 DOTA
本地计算机无法启动Apache故障处理
2014/08/08 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
php从数据库中读取特定的行(实例)
2017/06/02 PHP
PHP实现删除多重数组对象属性并重新赋值的方法
2017/06/07 PHP
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
Javascript的常规数组和关联数组对比小结
2012/05/24 Javascript
基于JQuery的一句话搞定手风琴菜单
2012/09/14 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
jquery自定义类似$.ajax()的方法实现代码
2013/08/13 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
js实现简单计算器
2015/11/22 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
EasyUI为Numberbox添加blur事件的方法
2017/03/05 Javascript
ExtJs异步无法向外传值和赋值的完美解决办法
2017/06/14 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
js中的数组对象排序分析
2018/12/11 Javascript
js实现简单掷骰子效果
2019/10/24 Javascript
微信小程序动态添加和删除组件的现实
2020/02/28 Javascript
JavaScript 严格模式(use strict)用法实例分析
2020/03/04 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
[01:21]DOTA2新纪元-7.0新版本即将开启!
2016/12/11 DOTA
Python函数中定义参数的四种方式
2014/11/30 Python
python获取本地计算机名字的方法
2015/04/29 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
python flask中动态URL规则详解
2019/11/22 Python
Python __slots__的使用方法
2020/11/15 Python
如何用border-image实现文字气泡边框的示例代码
2020/01/21 HTML / CSS
英国奢侈品概念店:Base Blu
2019/05/16 全球购物
酒吧创业计划书
2014/01/18 职场文书
《伯牙绝弦》教学反思
2014/03/02 职场文书
村长党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
单位工资证明范本
2015/06/12 职场文书