命名

1.原则——编码格式UTF-8,根据功能为变量与方法命名(尽量不缩写)

2.类——构造函数/类 使用驼峰命名法,且首字母大写

3.方法——动词、动宾结构,使用驼峰命名法,首字母小写

例如:get + 非布尔属性名()      is + 布尔属性名()      set + 属性名()      has + 名词/形容词()        动词()        动词 + 宾语()

建议——类中的私有属性和方法名,建议以下划线开头或结尾

实例:class Foo() {

  this._bar = computerBar();  // 私有属性

  this.baz = computerBaz();  // 非私有属性,可通过实例访问

}

4.变量——驼峰风格、避免使用否定的布尔变量名、缩写词全大/小写、不要用保留字作键名或变量名、jQuery类变量以 $ 开头

5.常量——全大写单词,以下划线连接

注释

复杂的判定条件封装成名字清晰的方法,把判定结果作为返回值

好的注释描述代码为什么这么写,而不是描述代码功能

单行://     块: /* */     文档: /** */(包含用法,参数,返回值说明)

排版格式

1.缩进——只允许空格,使用Tab的话需要更改IDE配置自动将Tab转化为空格

2.换行——以操作符/运算符开头

3.方法的参数尽量在一行——长参数名单独一行

4.对象字面量属性最多4个同行——大于4个的话每个参数独占一行

5.链式调用方法时一行最多4次——否则需要换行,把点放在前面

6.每行声明一个变量,禁止连续赋值

7.使用基本类型的字面量而不是其封装类型

8.禁止变量声明覆盖外层作用域的变量

方法

1.方法设计原则——单一职责原则、单一抽象层次

2.参数<=5个——参数过多可抽象为对象、不要把方法入参当作工作变量/临时变量、默认参数放最后、实现对外API时应对外部传入参数的合法性进行判断

3.声明与实现——使用声明的方式定义方法而不是表达式、用到匿名函数时尽量使用箭头函数

附:  function Foo(){}即为声明,有函数提升效果         var Foo = function (){}即为表达式,必须先定义后使用

字符串

1.使用单引号(创建一个半酣HTML代码的字符串就会知道原因:标签属性需要用双引号括起来,会跟字符串的双引号产生配对错乱问题)

2.使用模板字符串实现字符串拼接(``)

数组

1.向数组中添加元素时使用push替代直接赋值

2.不要在数组上定义或使用非数字属性(length除外)

例如: arr['str'] = 'string',数组尽量以索引为键

3.遍历时有限使用Arrary方法,如 forEach、map、filter、every...

4.不要在forEach里进行元素的remove/add操作,会导致遍历紊乱

5.使用扩展运算符 ... 赋值数组,避免浅拷贝问题

对象

1.对象字面量名称使用标识符

例如:var object = { id:1, name:'name1' }    不要使用下面这种字符串做键    var obj = { 'str':'string' }

2.尽量在一个地方定义对象的所有属性,即初始化定义对象时就把所有键都初始化,尽量不要后续添加属性

3.对象字面量中使用方法简写、属性简写

4.使用点来访问对象属性,只有属性时动态的时候使用[ ],例如使用for-in遍历对象时通过key访问value

5.getter和setter应该承兑出现在对象中

6.禁止对象实例上直接使用Object.prototype的内置属性

7.需要约束for-in

8.不要修改内置对象的原型或向原型添加方法

9.使用扩展运算符 ... 进行对象赋值,防止浅拷贝问题

运算与表达式

1.if判定条件中,变量在先,字面量在后

2.使用 === 和 !===

3.使用简写的条件表达式,例如:当siValid时bool型时,写if(isValid) 而不是 if(isValid===true)

4.

Javascript安全编程规范的更多相关文章

  1. javascript模块化编程规范

    一.javascript模块化编程规范: 二.关于commenjs规范和AMD规范: 根本不同:前者用于服务器端同步加载模块:后者是客户端异步加载模块. 同点:两者都有一个全局函数require(), ...

  2. Javascript模块化编程-规范[2]

    实现Javascript模块化,固然很重要,但是怎样才能实现国际上都能认可的模块化呢?模块化编程规范随应运而生. 目前Javascript模块化规范主要有两种:CommonJS和AMD. Common ...

  3. Javascript模块化编程(二):AMD规范

    Javascript模块化编程(二):AMD规范   作者: 阮一峰 原文地址:http://www.ruanyifeng.com/blog/2012/10/asynchronous_module_d ...

  4. Javascript模块化编程(二):AMD规范(转)

    这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块. (接上文) 七.模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可以更方便地使用别人的代码,想要 ...

  5. Javascript模块化编程(二):AMD规范 作者: 阮一峰

    声明:转载自阮一峰的网络日志 这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块. (接上文) 七.模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可 ...

  6. Javascript模块化编程(二):AMD规范【转】

    作者: 阮一峰 日期: 2012年10月30日 这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块. (接上文) 七.模块的规范 先想一想,为什么模块很重要? 因为 ...

  7. javascript模块化编程(AMD规范的加载器)

    关于AMD规范可以参考阮一峰的这篇文章Javascript模块化编程(二):AMD规范 简单来说,AMD规范就是异步方式加载模块的一种方式,避免因为模块加载过慢而导致浏览器“假死”. 先贴一个学习地址 ...

  8. (转)Javascript模块化编程(二):AMD规范

    转自 ruanyifeng 系列目录: Javascript模块化编程(一):模块的写法 Javascript模块化编程(二):AMD规范 Javascript模块化编程(三):Require.js的 ...

  9. Javascript模块化编程(二)AMD规范(规范使用模块)

    这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块,先想一想,为什么模块很重要?接下来为您详细介绍,感兴趣的朋友可以了解下啊.今天介绍如何规范地使用模块. 七.模块 ...

随机推荐

  1. “进大厂大半年,每个月都想走!”大公司 VS 小公司到底该如何选择?

    前言 江湖风云不断,有人吐槽阿里996,也有人吐槽华为狼性文化,这不,就看到有腾讯员工吐槽“进腾讯大半年,每个月都想走!” “和我一样,进去一周就想走”.“我都陷入自我怀疑了,以为自己适应不了大公司” ...

  2. ffmpeg m3u8生成 剪辑及格式转换

    使用 ffmpeg 工具, 生成 m3u8 文件 ffmpeg -re -i 03.ts -c copy -f hls -hls_base_url /Users/admin/Downloads/dow ...

  3. Debian安装无线网卡Ralink RL5390驱动

    惠普一体机用的无线网卡是Ralink的 RL5390,安装Debian10以后没有驱动,网上下载firmware-misc-nonfree_20190114-2_all.deb 和firmware-r ...

  4. 操作系统 I/O 全流程详解

    我们之前的文章提到了操作系统的三个抽象,它们分别是进程.地址空间和文件,除此之外,操作系统还要控制所有的 I/O 设备.操作系统必须向设备发送命令,捕捉中断并处理错误.它还应该在设备和操作系统的其余部 ...

  5. c++深复制与浅复制区别代码示范vs2015-txwtech

    c++深复制与浅复制区别代码示范vs2015-txwtech c++深复制与浅复制区别代码示范 区别: 深复制: CDemo B = A; B.str[0] = 'K';//B对象里面的元素修改后,A ...

  6. java中的excel操作

    导入jxl.jar包: 下载个jxl.jar包,然后这个包放在什么位置都行,在你的项目中导入这个包就可以.   具体做法: 项目上右键,点击“属性”, 类别那里选择”库“,点击"添加jar文 ...

  7. 有趣的条漫版 HashMap,25岁大爷都能看懂

    我是风筝,公众号「古时的风筝」,一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农! 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在 ...

  8. Centos7下的MySQL5.6安装

    yum install wget yum install perl perl-devel cd /usr/local/src wget https://cdn.mysql.com//Downloads ...

  9. Mac OS 生成 icon 和 ico 文件

    [本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 1. 生成 IC ...

  10. xutils工具上传日志文件--后台服务器的搭建

    在上一篇文章中使用xutils将手机上保存的日志上传到后台服务器中,现在我们来讲后台服务器是如何搭建的 后台服务器采用jsp+sevlet+mysql的框架 首先讲mysql数据库的表的建立 在fil ...