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的让非HTML5浏览器支持placeholder属性的代码
May 24 Javascript
TypeScript 学习笔记之基本类型
Jun 19 Javascript
jQuery实现滚动切换的tab选项卡效果代码
Aug 26 Javascript
探讨:JavaScript ECAMScript5 新特性之get/set访问器
May 05 Javascript
Vue.js每天必学之数据双向绑定
Sep 05 Javascript
JS实现判断图片是否加载完成的方法分析
Jul 31 Javascript
Vue2.0生命周期的理解
Aug 20 Javascript
Vue列表渲染的示例代码
Nov 01 Javascript
Vue基础配置讲解
Nov 29 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
Dec 19 Javascript
JS+CSS实现炫酷光感效果
Sep 05 Javascript
vue 给数组添加新对象并赋值
Apr 20 Vue.js
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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
php 分页原理详解
2009/08/21 PHP
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
用javascript实现的激活输入框后隐藏初始内容
2007/06/29 Javascript
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
基于jquery实现拆分姓名的方法(纯JS版)
2013/05/08 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
angularJS 如何读写缓冲的方法(推荐)
2016/08/06 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
通过vue提供的keep-alive减少对服务器的请求次数
2018/04/01 Javascript
微信小程序用户信息encryptedData详解
2018/08/24 Javascript
Vue 实现展开折叠效果的示例代码
2018/08/27 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
使用Python的Tornado框架实现一个简单的WebQQ机器人
2015/04/24 Python
Python多线程、异步+多进程爬虫实现代码
2016/02/17 Python
对Python subprocess.Popen子进程管道阻塞详解
2018/10/29 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
python滑块验证码的破解实现
2019/11/10 Python
python GUI框架pyqt5 对图片进行流式布局的方法(瀑布流flowlayout)
2020/03/12 Python
Python动态强类型解释型语言原理解析
2020/03/25 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
JAVA及PYTHON质数计算代码对比解析
2020/06/10 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
Python识别处理照片中的条形码
2020/11/16 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
html5中valid、invalid、required的定义
2014/02/21 HTML / CSS
html5使用canvas画空心圆与实心圆
2014/12/15 HTML / CSS
初中军训感想300字
2014/03/05 职场文书
2015年元旦标语大全
2014/12/09 职场文书
学生保证书格式
2015/02/27 职场文书
2015年财政局工作总结
2015/05/21 职场文书
2016参观监狱警示教育活动心得体会
2016/01/15 职场文书
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python