全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

如何写好你的JavaScript【推荐】

前言

在实际工作中,我们应该经常会看到一些功能上没有问题,但编码风格和规范却十分糟糕的代码,这往往会让人不敢再往下阅读,甚至会影响阅读者一天的心情。这些代码不仅不易阅读,而且难以维护,它们一般会出自刚入门的编程新手,也会出自工作了好几年的老程序员手下。因此本文的目的在于帮助那些没有养成良好的编码风格,缺乏相应编码规范意识的JavaScript学习者们改善他们的编码形象。

编码形象

以上我提出了编码形象的概念,我个人认为:

编码形象 = 编码风格 + 编码规范

一个良好的编码形象就等于一个穿着得体的青年,对于程序员来说这是同行了解你优秀能力的最直接最简单的方式。

我们来看一下一段糟糕的编码形象:

//打个招呼
function func(){
 var age=18,sex='man';
 var greeting='hello';
 if(age<=18&&sex=='man'){
 console.log(greeting+'little boy')
 }
 ...
}
func()

上方代码整体缩在了一起,缺乏规范意识,阅读体验很差,不忍直视。

再来看一段良好的代码形象:

// 打个招呼
function greetFn() {
 var age = 18,
 sex = 'man',
 greeting = 'hello';
 if (age <= 18 && sex === 'man') {
 console.log(greeting + 'little boy');
 }
 ...
};
greetFn();

上方的代码是不是感觉舒服多了?

由此可见养成一个良好的编码形象是至关重要的,而本文主要讲解的是基于JavaScript的编码形象,即基于JavaScript的编码风格和编码规范。

那么什么是编码风格,什么是编码规范,两者的区别又是什么?

编码风格

首先编码风格既然是风格,就没有对错之分。就好比每个人的穿着打扮不同,有的人穿的比较得体,有的人穿的比较随意而已。

而在JavaScript编码风格中,也有一套比较得体的风格,尤其在团队开发中,我们不能随意的书写属于自己的风格。

下面就列举几种随意的编码风格,并将其与良好的编码风格进行对比。

1.合理注释

// 不推荐的写法
var name = '劳卜';//代码和注释之间没有间隔

if (name) {
 /*
 *注释之前无空行
 *星号后面无空格
 */
}
// 推荐的写法
var name = '劳卜'; // 代码和注释之间有间隔

if (name) {
 /*
 * 注释之前有空行
 * 星号后面有空格
 */
}

2.合理间隔

// 不推荐的写法
var name='劳卜'; // 等号和两侧之间没有间隔

// if块级语句间没有间隔
if(name){
 console.log('hello');
}
// 推荐的写法
var name = '劳卜'; // 等号和两侧之间有间隔

// if块级语句间有间隔
if (name) {
 console.log('hello');
}

3.合理缩进

// 不推荐的写法:没有合理缩进
function getName() {
console.log('劳卜'); 
}
// 推荐的写法:合理缩进
function getName() {
 console.log('劳卜');
}

4.合理空行

// 不推荐的写法: 代码功能块之间没有空行
function getName() {
 var name = '劳卜';
 if (name) {
 console.log('hello');
 }
}
// 推荐的写法:代码功能块之间有空行
function getName() {
 var name = '劳卜';

 if (name) {
 console.log('hello');
 }
}

5.合理命名

// 不推荐的写法
var getName = '劳卜'; // 变量命名前缀为动词

// 函数命名前缀为名词
function name() {
 console.log('hello');
}
// 推荐的写法
var name = '劳卜'; // 变量命名前缀为名词

// 函数命名前缀为动词
function getName() {
 console.log('hello');
}

6.合理声明

// 不推荐的写法:函数在声明之前使用
getName(); 

function getName() {
 console.log('hello');
}
// 推荐的写法:函数在声明之后使用
function getName() {
 console.log('hello');
}

getName();

7.合理结尾

// 不推荐的写法:没有使用分号结尾
var name = '劳卜' 

var getName = function() {
 console.log('hello')
}
// 推荐的写法:使用分号结尾
var name = '劳卜'; 

var getName = function() {
 console.log('hello');
};

以上主要列举了7个比较常见的编码风格的例子进行了比较,在推荐的写法和不推荐的写法中两者并没有对错之分,只是推荐的写法相比较而言更容易阅读和维护,更适用于团队开发,也是良好编码形象的体现。

编码规范

对于编码规范,既然是规范,那我们就应该按照一定的规则来编写。随意编写违反编码规范的代码,可能会导致程序的出错和潜在的bug,因此其相对于编码风格来说应该更加严谨,也有人会把编码风格包含在编码规范之中。

下面就列举几个常见的实例代码:

1.比较参数

// 不推荐的写法:==和!=比较时会进行类型转换,应尽量避免使用
var num = 123;

if (num == '123') {
 console.log(num);
} else if (num != '321') {
 console.log('321');
}
// 推荐的写法:使用===和!==来进行比较
var num = 123;

if (num === '123') {
 console.log(num);
} else if (num !== '321') {
 console.log('321');
}

2.包裹if语句

// 不推荐的写法:if语句不用大话号包裹会出现潜在bug
var num = 123;
if (num === '123')
 console.log(num);
// 推荐的写法:if语句用大话号包裹
var num = 123;
if (num === '123') {
 console.log(num);
}

3.慎用eval

// 不推荐的写法:应避免使用eval,不安全,非常耗性能(一次解析成js语句,一次执行)
var json = '{"name": "劳卜", "func": alert("hello")}';
eval('(' + json + ')'); // 弹出“hello”
// 推荐的写法
var json = '{"name": "劳卜", "func": alert("hello")}';
JSON.parse(json); // 校验报错

4.判断类型

// 不推荐的写法:用typeof来判断构造函数创建的对象
var str = new String('劳卜'); 
console.log(typeof str); // 'object'
// 推荐的写法:用instanceof来判断构造函数创建的对象
var str = new String('劳卜'); 
console.log(str instanceof String); // true

5.检测属性

// 不推荐的写法:使用undefined和null来检测一个属性是否存在
if (obj['name'] !== undefined) {
 console.log('name属性存在'); // 若obj.name为undefined时则会导致判断出错
}
if (obj['name'] !== null) {
 console.log('name属性存在'); // 若obj.name为null时则会导致判断出错
}
// 推荐的写法:使用in运算符来检测对象属性是否存在,使用hasOwnProperty方法来检测不包含原型链上的对象属性是否存在
if ('name' in obj) {
 console.log('name属性存在');
}
if (obj.hasOwnProperty('name')) {
 console.log('name属性存在');
}

以上主要列举了5个常见的编码规范的例子,合理地规范自己的代码能够很大程度上减少不必要的维护成本和潜在的bug风险,对于JavaScript学习者来说应该铭记于心。

结语

“程序是写给人读的,只是偶尔让计算机执行一下。”我们不能为了贪图一时的方便而亲手毁了自己的代码形象,这会给他人和整个项目带来不必要的麻烦。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# javascript编码规范  # javascript编码  # javascript技巧  # 前端编码规范(3)JavaScript 开发规范  # 最全的Javascript编码规范(推荐)  # Node.js编码规范  # JavaScript之编码规范 推荐  # 浅谈JavaScript编程语言的编码规范  # JavaScript 程序编码规范  # 自己的  # 是否存在  # 打个  # 有的人  # 之分  # 举了  # 的是  # 时则  # 这是  # 他们的  # 几个  # 让人  # 也有  # 也会  # 又是  # 给他  # 每个人  # 阅读者  # 而在  # 适用于 


相关文章: *服务器网站为何频现安全漏洞?  高端建站如何打造兼具美学与转化的品牌官网?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  建站之星云端配置指南:模板选择与SEO优化一键生成  如何通过西部数码建站助手快速创建专业网站?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  历史网站制作软件,华为如何找回被删除的网站?  建站之星如何通过成品分离优化网站效率?  如何规划企业建站流程的关键步骤?  php json中文编码为null的解决办法  制作网站的软件下载免费,今日头条开宝箱老是需要下载怎么回事?  做企业网站制作流程,企业网站制作基本流程有哪些?  岳西云建站教程与模板下载_一站式快速建站系统操作指南  网站建设设计制作营销公司南阳,如何策划设计和建设网站?  ,sp开头的版面叫什么?  如何选择服务器才能高效搭建专属网站?  如何在自有机房高效搭建专业网站?  建站之星安装后如何自定义网站颜色与字体?  建站主机选购指南与交易推荐:核心配置解析  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  建站之星如何一键生成手机站?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  洛阳网站制作公司有哪些,洛阳的招聘网站都有哪些?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料?  香港服务器如何优化才能显著提升网站加载速度?  建站之星北京办公室:智能建站系统与小程序生成方案解析  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?  如何在腾讯云免费申请建站?  清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?  如何自定义建站之星网站的导航菜单样式?  图册素材网站设计制作软件,图册的导出方式有几种?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  网站制作话术技巧,网站推广做的好怎么话术?  建站之星IIS配置教程:代码生成技巧与站点搭建指南  如何在IIS7上新建站点并设置安全权限?  建站之星3.0如何解决常见操作问题?  设计网站制作公司有哪些,制作网页教程?  C++如何使用std::optional?(处理可选值)  建站之星如何开启自定义404页面避免用户流失?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  安徽网站建设与外贸建站服务专业定制方案  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  招商网站制作流程,网站招商广告语?  如何通过PHP快速构建高效问答网站功能?  如何快速查询域名建站关键信息?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  成都响应式网站开发,dw怎么把手机适应页面变成网页?  高防服务器租用首荐平台,企业级优惠套餐快速部署  建站之星展会模板:智能建站与自助搭建高效解决方案 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。