JavaScript开发规范 0.01版
为什么80%的码农都做不了架构师?>>>
JavaScript开发规范v0.01
终极原则:简洁,明晰,优雅。
所谓简洁,可以只写一遍的代码,绝不写两遍;
所谓明晰,尽量只用人类能一眼看明白的写法。
所谓优雅,能让阅读代码的人感受到一种莫名的和谐感(即美感)。
先不谈优雅,书写简洁而明晰的代码应该是所有程序员都应该遵守的天然法则。冗余而晦涩的代码,不但容易出错,而且会造成不可估量的维护麻烦。
1,定义普通变量
var name = “Shadow Fiend”;
var i, pid, price;
在任何时候,定义新的变量时,必须使用var。(如果不用var,你定义的局部变量就变成了全局变量,有可能在不知不觉中覆盖别人的变量,或者被别人的变量所覆盖)
2,定义数组
var ids= [];
只用这一种方法定义空数组。
// 向数组中追加元素
ids.push(10000);
ids.push(10001);
3,定义空对象(其实不空,就是个Object )
var params = {};
只用这一种方法定义空对象。
params[“mid”] = 0;
params[“pid”] = 12345;
params[“amount”] = 1;
4,定义方法
function addToCart(mid, pid, amount, callback){
// your code goes here
……
}
或者
var addToCart = function(mid, pid, amount, callback){
// your code goes here
……
};
定义方法,可任选一种方式;两种方式的区别不大,但是也有区别(具体细节可以问问度娘,在此不再赘述)。这里只提一句,我喜欢用第二种方式,因为这种方式可以时刻提醒我:在JavaScript中,一切都是对象,方法也不例外。
5,比较相等和不等
只用 === 和 !==.
if (code === 0) {
// your code goes here
… …
}
或者
if (code !== 0) {
// your code goes here
… …
}
6,关于parseInt
明确以十进制解析。
var value = “010”;
var amount = parseInt(value, 10); // 10
在JavaScript中,parseInt解析整数时,如果发现是以0开头的,就会默认以八进制解析,除非你明确要求以十进制解析。
7,关于setTimeout 和 setInterval
一定要用方法指针,不要用字符串代码,以避免JavaScript解释器的二次解释。
var doSomething = function () {
// your task code goes here
… …
};
// 5s之后执行
setTimeout(doSomething, 5000);
// 每隔1s执行一次
setInterval(doSomething, 1000);
转载于:https://my.oschina.net/aaxaac/blog/299966
JavaScript开发规范 0.01版相关推荐
- Android 开发规范(完结版)
点击上方蓝字关注公众号 码个蛋第270次推文 长文干货 作者:Blankj 博客:https://www.jianshu.com/u/46702d5c6978 文章目录 前言 AS 规范 命名规范 代 ...
- 阿里开发规范(精简版)
Java开发规范 命名 [规范]类名使用UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外: ( 领域模型的相关命名 )DO / BO / DTO / VO 等. 正例: Marco ...
- 阿里巴巴Java开发规范(终极版v1.3.0)--个人整理
一.编程规约 1.[强制]抽象类命名使用Abstract或Base开头:异常类命名使用Exception结尾:测试类命名以它要测试的类的名称开始,以Test结尾 2.[强制]POJO类中布尔类型的变量 ...
- React 前端开发规范(执行版)
一.命名规范 1. 变量 命名方法:小驼峰式命名法,首字母小写.studentInfo.userInfo 命名建议:使用英文单词组合,语义清晰 忌:var a=0;var nihao=true; 注 ...
- YunTable 0.1版正式发布!!!(转载)
源地址:http://peopleyun.com/?p=731 经过两个星期的努力(如果刨去学习C语言的时间),YunTable终于走完一个从无到有的历程,今天,也就是2010年7月12日,YunTa ...
- Linux 0.01 内存管理
源码下载 Linux 源码下载路径位于 https://mirrors.edge.kernel.org/pub/linux/kernel/,这篇博客所需要的 0.01 版本源码通过点击链接 https ...
- ASP.NET 2.0 正式版中无刷新页面的开发
ASP.NET 2.0 正式版中无刷新页面的开发 在已经发布的 ASP.NET2.0 中,无刷新页面开发相关部分同 beta2 有不少改动.而且在越来越多的 Ajax 开发包被开发出来的情况下, AS ...
- 个人工作室的网站开发规范V1.0
一,概述 不论是最古老的HTML,还是最近流行的AJAX,网站开发始终是一个综合了多种最新技术的实验场.作为个人工作室,成员屈指可数,多为手工作坊,往往一个人要担任多个角色,既是前台美工,又是后台程序 ...
- 游戏开发 unity3d python_游戏研发系列 Unity3D/2D游戏开发从0到1 第2版.pdf
作 者 :刘国柱著 出版发行 : 北京:电子工业出版社 , 2018.01 ISBN号 :978-7-121-33499-3 页 数 : 507 丛书名 : 游戏研发系列 原书定价 : 99.00 开 ...
最新文章
- perl: warning: Setting locale failed. Falling back to a fallback locale (“en_HK.UTF-8“).
- 线性回归——最小二乘法_实例(二)
- signature=c4f11bb5142d9f6ce0876b3cc0d888af,PROVISIONAL SIGNATURE SCHEMES
- 用PIL读取保存图片错误 :OSError: cannot write mode RGBA as JPEG
- 成功解决ImportError: Could not find ‘cudart64_90.dll‘. TensorFlow requires that this DLL be installed in
- 仅靠一种普通的泡沫橡胶,这台机器人解决了“爬楼梯”的难题
- Python之字符串的134个常用操作
- 码率跟视频质量有关系
- [Leedcode][JAVA][第1162题][BFS]
- java thrift连接池_由浅入深了解Thrift之客户端连接池化
- 压缩版styleGAN(Mobile StyleGAN)参数更少、计算复杂度更低
- pytorch ImageFolder
- shim是什么?Vue响应式原理
- 我认为到现在写的最好的一本小说 《紫川》
- sqlite设密工具如何使用(本人资源)
- 7-20 sdust-Java-字符串集合求并集
- opencv cvFindContour 轮廓 freeman链码
- lms c语言,LMS算法实现自适应滤波器(C语言版)
- 适合三本计算机专业考研的学校,适合三本考研的学校有哪些
- Programming OpenGL in Linux: GLX and Xlib