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 相关文章推荐
FF火狐下获取一个元素同类型的相邻元素实现代码
Dec 15 Javascript
juery框架写的弹窗效果适合新手
Nov 27 Javascript
在javascript中实现函数数组的方法
Dec 25 Javascript
Javascript基础教程之switch语句
Jan 18 Javascript
javascript十六进制及二进制转化的方法
May 06 Javascript
JS实现的通用表单验证插件完整实例
Aug 20 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
Aug 17 Javascript
详解webpack与SPA实践之开发环境搭建
Dec 18 Javascript
vue中子组件的methods中获取到props中的值方法
Aug 27 Javascript
JS实现的简单tab切换功能完整示例
Jun 20 Javascript
JavaScript迭代器的含义及用法
Jun 21 Javascript
国庆节到了,利用JS实现一个生成国庆风头像的小工具 详解实现过程
Oct 05 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
用文本作数据处理
2006/10/09 PHP
发布一个用PHP fsockopen写的HTTP下载的类
2007/02/22 PHP
详谈symfony window下的安装 安装时候出现的问题以及解决方法
2017/09/28 PHP
PHP之认识(二)关于Traits的用法详解
2019/04/11 PHP
javascript URL锚点取值方法
2009/02/25 Javascript
jquery ajax 同步异步的执行示例代码
2010/06/23 Javascript
js关于字符长度限制的问题示例探讨
2014/01/24 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
js 动态修改css文件用到了cssRule
2014/08/20 Javascript
js实现DOM走马灯特效的方法
2015/01/21 Javascript
JS对象的深度克隆方法示例
2017/03/16 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
浅谈Vuex@2.3.0 中的 state 支持函数申明
2017/11/22 Javascript
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
2018/09/16 Javascript
独立部署小程序基于nodejs的服务器过程详解
2019/06/24 NodeJs
layui 实现二级弹窗弹出之后 关闭一级弹窗的方法
2019/09/18 Javascript
JavaScript中的this基本问题实例小结
2020/03/09 Javascript
Vue中inheritAttrs的使用实例详解
2020/12/31 Vue.js
Python装饰器基础详解
2016/03/09 Python
Python中的变量和作用域详解
2016/07/13 Python
pandas数据框,统计某列数据对应的个数方法
2018/04/11 Python
用Python一键搭建Http服务器的方法
2018/06/01 Python
解决python写入mysql中datetime类型遇到的问题
2018/06/21 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
浅谈Python的方法解析顺序(MRO)
2020/03/05 Python
python实现取余操作的简单实例
2020/08/16 Python
人民调解员培训方案
2014/06/05 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
初中差生评语
2014/12/29 职场文书
实习推荐信格式模板
2015/03/27 职场文书
伊索寓言读书笔记
2015/06/30 职场文书
2015初中团委工作总结
2015/07/28 职场文书
Django与数据库交互的实现
2021/06/03 Python