JS代码优化及技巧
案例一 对象参数独立化
情景:为多个日期文本框添加日期选择器
源代码:
$('#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代码优化及技巧的更多相关文章
- 前端js代码优化
今天给大家分享下js代码优化的相关技巧. 1.使用"+"转换为数值 我们平时开发过程中需要将数字字符串创转为number类型,大多数都会用JavaScript parseI ...
- JS处理事件小技巧
今天,就分享一下我自己总结的一些JS的小技巧: ①防止鼠标选中事件 <div class="mask" onselectstart="return false&qu ...
- JS 一些常用技巧
记录 JS 常用的技巧 1. 生成随机数 2. 解决浮点数问题 3. 无路可走时,看看是不是 事件 冒泡了...
- python基础===Python 代码优化常见技巧
Python 代码优化常见技巧 代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构.优化.扩展以及文档相关的事情通常需要消耗 8 ...
- Chrome JS断点调试技巧
Chrome调试折腾记_(2)JS断点调试技巧 技巧一:格式化压缩代码 技巧二:快速跳转到某个断点的位置 技巧三:查看断点内部的作用范围[很实用] 技巧4:监听事件断点 技巧5:DOM及 XHR监听跳 ...
- 14条最佳JS代码编写技巧
http://gaohaixian.blog.163.com/blog/static/123260105201142645458315/写任何编程代码,不同的开发者都会有不同的见解.但参考一下总是好的 ...
- 【原创】分布式之数据库和缓存双写一致性方案解析(三) 前端面试送命题(二)-callback,promise,generator,async-await JS的进阶技巧 前端面试送命题(一)-JS三座大山 Nodejs的运行原理-科普篇 优化设计提高sql类数据库的性能 简单理解token机制
[原创]分布式之数据库和缓存双写一致性方案解析(三) 正文 博主本来觉得,<分布式之数据库和缓存双写一致性方案解析>,一文已经十分清晰.然而这一两天,有人在微信上私聊我,觉得应该要采用 ...
- js异步编程技巧一
异步回调是js的一大特性,理解好用好这个特性可以写出很高质量的代码.分享一些实际用的一些异步编程技巧. 1.我们有些应用环境是需要等待两个http请求或IO操作返回后进行后续逻辑的处理.而这种情况使用 ...
- 20个JS优化代码技巧
原文网址链接为:http://www.jstips.co/ .截取了一部分本人认为比较实用的技巧分享给大家.其中一小部分技巧为JS面向对象的写法,不宜一一列出.关于JS面向对象的写法可参考本人前几篇随 ...
随机推荐
- Cocos2d-x 3.1.1 学习日志3--C++ 初始化类的常量数据成员、静态数据成员、常量静态数据成员
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u011292087/article/details/37598919 有关const成员.stati ...
- 三.Shell脚本提取文件名称和所在的目录
一·简介 提取文件名称或者目录,一般都会使用到#,##,%和%%,但是他们的区别很容易记混淆了.在一下4种方式中,目标匹配字符是不在结果中. #:表示从左开始算起,并且截取第一个匹配的字符 ##:表示 ...
- php 中输出字符串时怎么换行?
<?php //php 不同系统的换行 //不同系统之间换行的实现是不一样的 //linux 与unix中用 /n //MAC 用 /r //window 为了体现与linux不同 则是 /r/ ...
- css3的代替图片的三角形
1.小三角形(与边框结合,不兼容IE8) .callout{ position: relative; width: 100px; height: 100px; background: #fce6ed; ...
- 5.spring:注解配置 Bean
在classpath中扫描组件 组键扫描:能够从classpath下自动扫描,侦测和实例化具有特定注解的组件 特定的组件包括: ->@Componment:基于注解,标识一个受Spring管理的 ...
- ASP.NET CORE 边学边记之 SwaggerUI简单配置
前言 当使用 ASP.NET CORE 开发WebApi程序时候,一般使用SwaggerUI生成接口文档.本文记录最简单的一个配置.(生成的文档无注释) 操作 首先安装Nuget包. 然后在Start ...
- iOS:动画(18-10-15更)
目录 1.UIView Animation 1-1.UIView Animation(基本使用) 1-2.UIView Animation(转场动画) 2.CATransaction(Layer版的U ...
- Qt5应用程序封包
系统环境:windows10+vs2017+qt5.12 目的:生成.exe可执行文件. 步骤: 1.选择release模式,生成解决方案. 2.打开命令行,cd到生成的可执行文件.exe目录下 3. ...
- 为什么有时候binlog文件会很大于max_binlog_size以及max_binlog_cache_size
问题描述 线上一个很有意思的现象,发现binlog文件大小是15G,查看了参数max_binlog_size是1073741824[1G], max_binlog_cache_size是2147483 ...
- 邮箱,ip,叠词的正则处理方式
package com.regexTest; import java.util.TreeSet; public class RegexTest { public static void main(St ...