Javascript安全编程规范
命名
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安全编程规范的更多相关文章
- javascript模块化编程规范
一.javascript模块化编程规范: 二.关于commenjs规范和AMD规范: 根本不同:前者用于服务器端同步加载模块:后者是客户端异步加载模块. 同点:两者都有一个全局函数require(), ...
- Javascript模块化编程-规范[2]
实现Javascript模块化,固然很重要,但是怎样才能实现国际上都能认可的模块化呢?模块化编程规范随应运而生. 目前Javascript模块化规范主要有两种:CommonJS和AMD. Common ...
- Javascript模块化编程(二):AMD规范
Javascript模块化编程(二):AMD规范 作者: 阮一峰 原文地址:http://www.ruanyifeng.com/blog/2012/10/asynchronous_module_d ...
- Javascript模块化编程(二):AMD规范(转)
这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块. (接上文) 七.模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可以更方便地使用别人的代码,想要 ...
- Javascript模块化编程(二):AMD规范 作者: 阮一峰
声明:转载自阮一峰的网络日志 这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块. (接上文) 七.模块的规范 先想一想,为什么模块很重要? 因为有了模块,我们就可 ...
- Javascript模块化编程(二):AMD规范【转】
作者: 阮一峰 日期: 2012年10月30日 这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块. (接上文) 七.模块的规范 先想一想,为什么模块很重要? 因为 ...
- javascript模块化编程(AMD规范的加载器)
关于AMD规范可以参考阮一峰的这篇文章Javascript模块化编程(二):AMD规范 简单来说,AMD规范就是异步方式加载模块的一种方式,避免因为模块加载过慢而导致浏览器“假死”. 先贴一个学习地址 ...
- (转)Javascript模块化编程(二):AMD规范
转自 ruanyifeng 系列目录: Javascript模块化编程(一):模块的写法 Javascript模块化编程(二):AMD规范 Javascript模块化编程(三):Require.js的 ...
- Javascript模块化编程(二)AMD规范(规范使用模块)
这个系列的第一部分介绍了Javascript模块的基本写法,今天介绍如何规范地使用模块,先想一想,为什么模块很重要?接下来为您详细介绍,感兴趣的朋友可以了解下啊.今天介绍如何规范地使用模块. 七.模块 ...
随机推荐
- mac下使用VMVARE安装win10虚拟机的一些坑
最近Mac上安装windows踩到了几个坑: 坑一:启动虚拟机后,提示找不到CD-ROM中找不到对应的ISO文件 硬盘格式请选择 在虚拟机->设置中选择启动磁盘为CD_ROM,然后重新启动. 坑 ...
- CMD指令和GIT指令
CMD指令 dir 显示当前文件夹的所有的文件目录 mkdir 创建文件夹 cd> 创建文件 rd 删除文件夹 del 删除文件 cls 清屏 Linux指令 查看版本 node -v node ...
- MATLAB实例:聚类网络连接图
MATLAB实例:聚类网络连接图 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 本文给出一个简单实例,先生成2维高斯数据,得到数据之后,用模糊C均值( ...
- Jquery封装: 地区选择联动插件
请点击下载百度云链接: 链接: https://pan.baidu.com/s/1plVmdJT2O4fLJokyJDQA2g 密码: aqt2
- Clear Writer v1.8 更新
拖更了这么久之后,Clear Writer 诈尸啦(bushi 下载链接:https://linhongping.lanzous.com/ikF2Udmf7if Clear Writer v1.8 更 ...
- 在CentOS8下利用seafile软件搭建私有云
一.安装前准备工作 1. 安装EPEL源 EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用 ...
- Spring Cloud 系列之 Alibaba Nacos 配置中心
Nacos 介绍 Nacos 是 Alibaba 公司推出的开源工具,用于实现分布式系统的服务发现与配置管理.英文全称 Dynamic Naming and Configuration Service ...
- Android选项卡学习
什么是选项卡 顶部的导航条就是选项卡了. Android开发中添加选项卡的步骤 图片不太懂上代码: activity_main.xml <?xml version="1.0" ...
- 重学 Java 设计模式:实战命令模式「模拟高档餐厅八大菜系,小二点单厨师烹饪场景」
作者:小傅哥 博客:https://bugstack.cn - 原创系列专题文章 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 持之以恒的重要性 初学编程往往都很懵,几乎在学习的过程中会遇到 ...
- CF #640 (div4)
CF640 div4 草 迟到半个月的补题 真正的懒狗 再懒就无了 D. Alice, Bob and Candies 题意:n个数字,奇数时间从左侧删数字,偶数时间从右侧删数字,每次删的数字之和必须 ...