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 一段左右两边随屏滚动的代码
Jun 18 Javascript
原来Jquery.load的方法可以一直load下去
Mar 28 Javascript
JS代码判断IE6,IE7,IE8,IE9的函数代码
Aug 02 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
Nov 19 Javascript
js判断浏览器是否支持严格模式的方法
Oct 04 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
Jun 17 Javascript
详解webpack4升级指南以及从webpack3.x迁移
Jun 12 Javascript
vue框架搭建之axios使用教程
Jul 11 Javascript
详解如何在vue-cli中使用vuex
Aug 07 Javascript
Layui给switch添加响应事件的例子
Sep 03 Javascript
Vue v-text指令简单使用方法示例
Sep 19 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
May 26 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编程效率的53个要点(经验小结)
2010/09/04 PHP
PHP 面向对象程序设计(oop)学习笔记 (二) - 静态变量的属性和方法及延迟绑定
2014/06/12 PHP
浅谈php使用curl模拟多线程发送请求
2019/03/08 PHP
转自Jquery官方 jQuery1.1.3发布,速度提升800%,体积保持20K
2007/08/19 Javascript
JavaScript中将一个值转换为字符串的方法分析[译]
2012/09/21 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
JS基于正则截取替换特定字符之间字符串操作示例
2017/02/03 Javascript
微信小程序-getUserInfo回调的实例详解
2017/10/27 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
Vue2.0仿饿了么webapp单页面应用详细步骤
2018/07/08 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
Vue的Options用法说明
2020/08/14 Javascript
使用jquery实现轮播图效果
2021/01/02 jQuery
python分析网页上所有超链接的方法
2015/05/08 Python
python关键字and和or用法实例
2015/05/28 Python
常见的python正则用法实例讲解
2016/06/21 Python
Python 提取dict转换为xml/json/table并输出的实现代码
2016/08/28 Python
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
Django 生成登陆验证码代码分享
2017/12/12 Python
使用python将多个excel文件合并到同一个文件的方法
2019/07/09 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
Python ellipsis 的用法详解
2020/11/20 Python
python获取天气接口给指定微信好友发天气预报
2020/12/28 Python
HTML5等待加载动画效果
2017/07/27 HTML / CSS
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
向领导表决心的话
2014/03/11 职场文书
青年志愿者活动方案
2014/08/17 职场文书
纪念9.18事变演讲稿
2014/09/14 职场文书
python执行js代码的方法
2021/05/13 Python
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
Windows11插耳机没反应怎么办? win11耳机没声音的多种解决办法
2021/11/21 数码科技
bat批处理之字符串操作的实现
2022/03/16 Python
Django框架中模型的用法
2022/06/10 Python