前端技巧-w3c
1.使用全等===比较符
if (zeroAsAString === 0) {
// 判断为false
}
在和null进行比较的时候,允许使用 == 比较符
2.使用 .parseInt() 的时候,总是指定第二个 'radix' 参数
parseInt("08", 10)
3.避免比较true 和 false
if (foo === true) {
// 用了 === 倒是不错,可这是多余的
}
if (foo) {
// 赞!
}
4.避免污染全局命名空间
// 用 settings 作为对象命名
var settings = {
settingA: true,
settingB: false,
settingC: "test"
}
5.驼峰法变量命名
var xPosition = obj.scrollLeft;
6.循环的性能 - 缓存数组长度
var toLoop = new Array(1000);
for (var i = 0; i < toLoop.length; i++) {
// 败家玩意 - 长度会反复算 1000 次你知道不?
}
for (var i = 0, len = toLoop.length; i < len; i++) {
// 会过日子 - 长度只计算一次,然后缓存了
}
例外
如果你对一个数组做循环来查找并删除某个元素,这就会改变数组长度。任何时候你只要会在循环内部增加或删除元素来改变数组的长度,你就给自己带来了麻烦。这种情况下,你要么每次改变后重新设置数组长度,要么就别缓存它了。
7.循环的性能 - 使用 'break;' 和 'continue;'
break 直接跳出 不再往下执行
continue 跳出本次 接着执行
var bigArray = new Array(1000);
for (var i = 0, len = bigArray.length; i < len; i++) {
if (i === 500) {
break;
}
console.log(i); // 这样只会输出 0 - 499
}
8.函数调用不要传输太多的参数
下面的例子预先构建了一个对象作为参数,或者把内联对象传递过去,这样就好多了。
function greet(user) {
alert(user.name);
}
greet({
name: "Bob",
gender: "male"
});
9.尽量减少重新绘制和重新布局
var myList = document.getElementById("myList");
for (var i = 0, len = arr.length; i < len; i++) {
myList.innerHTML += "<li>" + arr[i].title + "</li>"; //重新布局 -- 增加到元素
}
在上面的 for 循环里,每次迭代会触发一次重新布局。10次迭代就是10次重新布局。
现在考虑下面的代码:
var constructedHTML = "";
for (var i = 0, len = arr.length; i < len; i++) {
constructedHTML += "<li>" + arr[i].title + "</li>"; //没有重新布局 - 增加到字符串
}
document.getElementById("myList").innerHTML = constructedHTML; //在这里重新布局
10.设置ID
function S4() {
return (((1+Math.random())*0x10000)|0).toString(16).substring(1);
}
function guid() {
return (S4()+S4()+"-"+S4()+"-"+S4()+"-"+S4()+"-"+S4()+S4()+S4());
}
11.使用 data-* 属性
<div id="test" data-is-bool="true" data-some-number="123"></div>
前端技巧-w3c的更多相关文章
- 前端技巧:禁止浏览器static files缓存篇(转)
前端技巧:禁止浏览器static files缓存篇 由于CSS/JS文件经常需要改动,前端调试时是不希望浏览器缓存这些文件的. 本文记录博主的经验. Meta法 目前在chrome调试还没有遇到问题, ...
- WEB前端技巧之JQuery为动态添加的元素绑定事件.md
jquery 为动态添加的元素绑定事件 如果直接写click函数的话,只能把事件绑定在已经存在的元素上,不能绑定在动态添加的元素上 可以用delegate来实现 .delegate( select ...
- 常用的jQuery前端技巧收集
调试时巧用console.log(),这比用alert()方便多了. jquery易错点:元素拼接的时候,元素还未添加到DOM,就用该预添加元素操作. ajax动态获取的数据,还没有装载html元素, ...
- 2.前端笔记之css
title: 1.前端笔记之CSS date: 2016-04-05 23:05:51 tags: 前端 categories: w3c --- 作者:刘耀 **出处:http://www.liuya ...
- WEB前端介绍
1.WEB前端是神马 Web前端开发是从网页制作演变而来的,名称上有很明显的时代特征.在互联网的演化进程中,网页制作是Web1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为 ...
- web前端之jQuery
前端的核心编程语言是javaScript,jQuery的出现简化了前端编程,以前看过一些,现在不用大都忘记了,以下总结几个前端技巧. 作为面向对象的脚本语言,注意区别jQuery和DOM对象,及其方法 ...
- Web前端开发工程师课程大纲
PHP程序员雷雪松整理出来的一套独一无二的Web前端开发课程.本套Web前端开发课程专门为想励志成为优秀web前端工程师的学习者而总结归纳的,本套Web前端课程舍弃了一些不常用的即将废弃的HTML标签 ...
- MOOC web前端开发笔记(一)
网站和网页 网站 互联网上用于展示特定内容的相关网页的集合. 网页 网站中的一页,一个网站中的网页通过"超链接"的方式被组织在一起. 主页 进入网站看到的第一个网页,主页的文件名通 ...
- 后端工程师必知必会的前端 css 知识
后端工程师虽然大部分工作都是跟服务器缓存数据库打交道,但有时也需要写一些前端代码. 有些公司的OAM后台基本是由后端工程师承包的,所以前端基础知识是必须要掌握的:就算开发中不直接写前段代码,了解前端知 ...
随机推荐
- 后台执行UNIX/Linux命令和脚本的五种方法
hiveserver 后台启动 nohup "${HIVE_HOME}"/bin/hive --service hiveserver2 & 1. 使用&符号在后台执 ...
- Luogu 3629 [APIO2010]巡逻
先考虑$k = 1$的情况,很明显每一条边都要被走两遍,而连成一个环之后,环上的每一条边都只要走一遍即可,所以我们使这个环的长度尽可能大,那么一棵树中最长的路径就是树的直径. 设直径的长度为$L$,答 ...
- Luogu 3676 小清新数据结构题
推荐博客: http://www.cnblogs.com/Mychael/p/9257242.html 感觉还挺好玩的 首先考虑以1为根,把每一个点子树的权值和都算出来,记为$val_{i}$,那么在 ...
- JavaScript 学习中
邮箱的验证: <!DOCTYPE html><html> <head> <meta charset="UTF-8"&g ...
- 李兴华Java培训系列课程
理解程序设计分层的思想: Dao设计模式的组成以及各部分的开发: 3.具体内容 在本次讲解之中,处理IO的部分暂时不会使用到之外,所有Java的重点的核心部分都会涉及到. 实际上在任何的环境下分层的概 ...
- Excel打开图片
=HYPERLINK("D:\固定资产图片\"&C2&".jpg",C2)
- LeetCode第617题:合并二叉树
问题描述 解题思路 略略略略略 C++代码 /** * Definition for a binary tree node. * struct TreeNode { * int val; * Tree ...
- 20169219《Linux内核原理与分析》第十一周作业
设备与模块 关于设备驱动和设备管理的四种内核成分: 设备类型:为了统一普通设备的操作所采用的分类. 模块:用于按需加载和卸载目标码的机制. 内核对象:内核数据结构中支持面向对象的简单操作,还支持维护对 ...
- log log4j配置
log4j配置 日志路径: web方式:web.xml <context-param> <param-name>log4jConfigLocation</param- ...
- GoogLeNet InceptionV2/V3/V4
仅用作自己学习 这篇文章中我们会详细讲到Inception V2/V3/V4的发展历程以及它们的网络结构和亮点. GoogLeNet Inception V2 GoogLeNet Inc ...