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 相关文章推荐
判断浏览器的javascript版本的代码
Sep 03 Javascript
微信企业号开发之微信考勤百度地图定位
Sep 11 Javascript
学习JavaScript设计模式之状态模式
Jan 08 Javascript
js组件SlotMachine实现图片切换效果制作抽奖系统
Apr 17 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
Apr 30 Javascript
仿百度换肤功能的简单实例代码
Jul 11 Javascript
JS简单实现表格排序功能示例
Dec 20 Javascript
node koa2实现上传图片并且同步上传到七牛云存储
Jul 31 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
Nov 14 Javascript
react-native动态切换tab组件的方法
Jul 07 Javascript
详解React项目中碰到的IE问题
Mar 14 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
Oct 24 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安全技术之 实现php基本安全
2010/09/04 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
2015/03/03 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
PHP封装请求类实例分析【基于Yii框架】
2019/10/17 PHP
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
2012/05/23 Javascript
jquery常用操作小结
2014/07/21 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
cookie的secure属性详解
2015/04/08 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
jQuery选择器总结之常用元素查找方法
2016/08/04 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
Vue按需加载的具体实现
2017/12/02 Javascript
jQuery实现form表单序列化转换为json对象功能示例
2018/05/23 jQuery
详解如何在vue项目中使用eslint+prettier格式化代码
2018/11/10 Javascript
详解nodejs 配置文件处理方案
2019/01/02 NodeJs
layui layer select 选择被遮挡的解决方法
2019/09/21 Javascript
使用preload预加载页面资源时注意事项
2020/02/03 Javascript
JS+CSS+HTML实现“代码雨”类似黑客帝国文字下落效果
2020/03/17 Javascript
vue实现购物车的监听
2020/04/20 Javascript
原生js实现随机点名
2020/07/05 Javascript
Python中使用urllib2防止302跳转的代码例子
2014/07/07 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
python 调试冷知识(小结)
2019/11/11 Python
css3实现六边形边框的实例代码
2019/05/24 HTML / CSS
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
电厂厂长岗位职责
2014/01/02 职场文书
会计学自荐信
2014/06/03 职场文书
护士实习求职信
2014/06/22 职场文书
庆祝教师节标语
2014/10/09 职场文书
学术会议通知
2015/04/15 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
浅谈Redis中的RDB快照
2021/06/29 Redis