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 相关文章推荐
js跑马灯代码(自写)
Apr 17 Javascript
JavaScript面向对象编程入门教程
Apr 16 Javascript
JS实现文字放大效果的方法
Mar 03 Javascript
js网页滚动条滚动事件实例分析
May 05 Javascript
javascript实现无缝上下滚动特效
Dec 16 Javascript
JS组件中bootstrap multiselect两大组件较量
Jan 26 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
May 28 Javascript
详解Angular 自定义结构指令
Jun 21 Javascript
Webpack devServer中的 proxy 实现跨域的解决
Jun 15 Javascript
javascript 原型与原型链的理解及实例分析
Nov 23 Javascript
vue 在服务器端直接修改请求的接口地址
Dec 19 Vue.js
原生js实现无缝轮播图效果
Jan 28 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
ueditor 1.2.6 使用方法说明
2013/07/24 PHP
php获取远程图片体积大小的实例
2013/11/12 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
2020/01/25 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
javascript学习笔记(十四) window对象使用介绍
2012/06/20 Javascript
js 图片随机不定向浮动的实现代码
2013/07/02 Javascript
jQuery $.each遍历对象、数组用法实例
2015/04/16 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
辨析JavaScript中的Undefined类型与null类型
2016/05/26 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
AngularJS入门教程引导程序
2016/08/18 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
jQuery实现用户信息表格的添加和删除功能
2017/09/12 jQuery
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
d3.js实现自定义多y轴折线图的示例代码
2018/05/30 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
记录vue项目中遇到的一点小问题
2019/05/14 Javascript
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
python启动办公软件进程(word、excel、ppt、以及wps的et、wps、wpp)
2009/04/09 Python
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
Python文件和目录操作详解
2015/02/08 Python
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
Django权限机制实现代码详解
2018/02/05 Python
人脸识别经典算法一 特征脸方法(Eigenface)
2018/03/13 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
解决Python在导入文件时的FileNotFoundError问题
2020/04/10 Python
Html5实现首页动态视频背景的示例代码
2019/09/25 HTML / CSS
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
Fox Racing官方网站:越野摩托车和山地自行车装备和服装
2019/12/23 全球购物
如何写辞职书
2015/02/26 职场文书
中国汉字听写大会观后感
2015/06/02 职场文书
SQL SERVER中常用日期函数的具体使用
2021/04/08 SQL Server
JavaScript中document.activeELement焦点元素介绍
2021/11/27 Javascript