前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript编码规范(2) 原

JavaScript编码规范(2) 原

作者头像
山河木马
发布2019-03-05 16:50:23
3740
发布2019-03-05 16:50:23
举报
文章被收录于专栏:山河木马山河木马

编码规范

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

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

1.比较参数

代码语言:javascript
复制
 // 不推荐的写法:==和!=比较时会进行类型转换,应尽量避免使用
 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语句

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

3.慎用eval

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

4.判断类型

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

5.检测属性

代码语言:javascript
复制
 // 不推荐的写法:使用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》一书。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017/03/15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档