案例一  对象参数独立化

情景:为多个日期文本框添加日期选择器

源代码:

$('#PropertySalesAdviceExchnagedDate1').datepicker({
showOn: 'button',
buttonImage: '/img/calendar.gif',
buttonImageOnly: true,
changeYear : true,
changeMonth : true,
dateFormat:"dd/mm/yy"
}); $('#PropertySalesAdviceSettledDate1').datepicker({
showOn: 'button',
buttonImage: '/img/calendar.gif',
buttonImageOnly: true,
changeYear : true,
changeMonth : true,
dateFormat:"dd/mm/yy"
}); $('#PropertySalesAdviceFinanceDate1').datepicker({
showOn: 'button',
buttonImage: '/img/calendar.gif',
buttonImageOnly: true,
changeYear : true,
changeMonth : true,
dateFormat:"dd/mm/yy"
});

用到了jQueryUI里日期选择器的插件。datepicker接收一个对象作为参数。而且我们发现参数都一样,这样完全可以剥离出来。写在 datepicker_options 这个对象里。

datepicker_options = {
showOn: 'button',
buttonImage: '/img/calendar.gif',
buttonImageOnly: true,
changeYear : true,
changeMonth : true,
// 去掉这行,默认的格式就是dd/mm/yy
// dateFormat:"dd/mm/yy"
};
//原来必须点小图标才会弹出日历,用户体验不要,改为获得焦点就弹出
$('#PropertySalesAdviceExchnagedDate1,
  #PropertySalesAdviceSettledDate1,
  #PropertySalesAdviceFinanceDate1').datepicker(datepicker_options).bind('focus',function(){
  $(this).datepicker("show"); 
});

案例二  构建字符串的最优方法

当你需要遍历数组或对象的时候,不要总想着“for”语句,要有创造性,总能找到更好的办法,例如,像下面这样。

var arr = ['item 1', 'item 2', 'item 3'];
var list = '<ul><li>' + arr.join('</li><li>') + '</li></ul>';

arr.join('</li><li>') 会生成字符串 "item 1</li><li>item 2</li><li>item 3"

案例三  将方法放入到匿名函数中

(function(){
var a = function (){
alert("hello")
}
// 将a方法挂载到window对象上
window.$ = a;
})() $();

四

避免使用连续的声明,如在下面的例子里,a是局部变量,而b则是全局的(这和一般人的认知可能会不相同)。

function foo() {
var a = b = 0; //等同于var a = (b = 0);使得b“变成”了全局变量
// ...
}

所以可以这么做

function foo() {
var a, b;
// ...
a = b = 0; // both local
}

5. ~~可视为parseInt的缩写,而且速度更快

6. 类型转换

// 结果 ['1', '2', '3']
[1,2,3].map(String) // 结果 [1, 2, 3]
['1','2','3'].map(Number)

JS代码优化及技巧的更多相关文章

  1. 前端js代码优化

    今天给大家分享下js代码优化的相关技巧. 1.使用"+"转换为数值     我们平时开发过程中需要将数字字符串创转为number类型,大多数都会用JavaScript parseI ...

  2. JS处理事件小技巧

    今天,就分享一下我自己总结的一些JS的小技巧: ①防止鼠标选中事件 <div class="mask" onselectstart="return false&qu ...

  3. JS 一些常用技巧

    记录 JS 常用的技巧 1. 生成随机数 2. 解决浮点数问题 3. 无路可走时,看看是不是 事件 冒泡了...

  4. python基础===Python 代码优化常见技巧

    Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化.扩展以及文档相关的事情通常需要消耗 8 ...

  5. Chrome JS断点调试技巧

    Chrome调试折腾记_(2)JS断点调试技巧 技巧一:格式化压缩代码 技巧二:快速跳转到某个断点的位置 技巧三:查看断点内部的作用范围[很实用] 技巧4:监听事件断点 技巧5:DOM及 XHR监听跳 ...

  6. 14条最佳JS代码编写技巧

    http://gaohaixian.blog.163.com/blog/static/123260105201142645458315/写任何编程代码,不同的开发者都会有不同的见解.但参考一下总是好的 ...

  7. 【原创】分布式之数据库和缓存双写一致性方案解析(三) 前端面试送命题(二)-callback,promise,generator,async-await JS的进阶技巧 前端面试送命题(一)-JS三座大山 Nodejs的运行原理-科普篇 优化设计提高sql类数据库的性能 简单理解token机制

    [原创]分布式之数据库和缓存双写一致性方案解析(三)   正文 博主本来觉得,<分布式之数据库和缓存双写一致性方案解析>,一文已经十分清晰.然而这一两天,有人在微信上私聊我,觉得应该要采用 ...

  8. js异步编程技巧一

    异步回调是js的一大特性,理解好用好这个特性可以写出很高质量的代码.分享一些实际用的一些异步编程技巧. 1.我们有些应用环境是需要等待两个http请求或IO操作返回后进行后续逻辑的处理.而这种情况使用 ...

  9. 20个JS优化代码技巧

    原文网址链接为:http://www.jstips.co/ .截取了一部分本人认为比较实用的技巧分享给大家.其中一小部分技巧为JS面向对象的写法,不宜一一列出.关于JS面向对象的写法可参考本人前几篇随 ...

随机推荐

  1. 【REACT NATIVE 系列教程之十二】REACT NATIVE(JS/ES)与IOS(OBJECT-C)交互通信

    http://blog.csdn.net/xiaominghimi/article/details/51586492 一用到跨平台的引擎必然要有引擎与各平台原生进行交互通信的需要.那么Himi先讲解R ...

  2. UVa 247 - Calling Circles(Floyd求有向图的传递闭包)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  3. POJ 3264 Balanced Lineup 【ST表 静态RMQ】

    传送门:http://poj.org/problem?id=3264 Balanced Lineup Time Limit: 5000MS   Memory Limit: 65536K Total S ...

  4. 2019.1.10 Mac安装Nginx服务器

    1.安装Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/in ...

  5. Java 和 .NET SHA1算法记录

    最近做了一个.NET访问Java接口的小Demo,其中用到了SHA1加密,大体思路就是.NET 传一些参数然后SHA1加密,Java端接收到之后在SHA1加密对比. Java代码: public fi ...

  6. 几句代码简单实现IoC容器

    前言 最近在调试EasyNetQ代码的时候发现里面有一段代码,就是IoC容器的简单实现,跟着他的代码敲了一遍,发现了奇妙之处.当然也是因为我才疏学浅导致孤陋寡闻了.他的思路就是通过动态调用构造函数生成 ...

  7. springmvc和easyui使用ajax前台后台互传数据,假删除提示警告问题。

    前台 //删除 多/单条数据 function del(cid){ var id=''; if(cid=='-1'){ if(getSelections().length > 0){ id=ge ...

  8. ffmpeg教程

    转:http://blog.sina.com.cn/s/blog_51396f890100nd91.html 概要  电影文件有很多基本的组成部分.首先,文件本身被称为容器Container,容器的类 ...

  9. kafka 参数配置 1

    kafka 参数配置 #参数配置 * broker.id : kafka 集群的唯一,标识每个broker * log.dirs : 指定kafka持久化消息的目录,可以设置多个目录,如:/home/ ...

  10. STL中sort、priority_queue、map、set的自定义比较函数

    STL中,sort的默认排序为less,也就是说从小到大排序:priority_queue默认是less,也就说大顶堆:map默认是less,也就说用迭代器迭代的时候默认是小的排在前面:set默认是l ...