如何写好你的JavaScript【推荐】
发布时间 - 2026-01-10 23:23:11 点击率:次前言

在实际工作中,我们应该经常会看到一些功能上没有问题,但编码风格和规范却十分糟糕的代码,这往往会让人不敢再往下阅读,甚至会影响阅读者一天的心情。这些代码不仅不易阅读,而且难以维护,它们一般会出自刚入门的编程新手,也会出自工作了好几年的老程序员手下。因此本文的目的在于帮助那些没有养成良好的编码风格,缺乏相应编码规范意识的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 程序编码规范
# 自己的
# 是否存在
# 打个
# 有的人
# 之分
# 举了
# 的是
# 时则
# 这是
# 他们的
# 几个
# 让人
# 也有
# 也会
# 又是
# 给他
# 每个人
# 阅读者
# 而在
# 适用于
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
WordPress 子目录安装中正确处理脚本路径的完整指南
北京网站制作的公司有哪些,北京白云观官方网站?
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
如何在Ubuntu系统下快速搭建WordPress个人网站?
Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决
Python文件操作最佳实践_稳定性说明【指导】
Laravel如何使用.env文件管理环境变量?(最佳实践)
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
如何用美橙互联一键搭建多站合一网站?
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
Android okhttputils现在进度显示实例代码
教你用AI将一段旋律扩展成一首完整的曲子
公司网站制作价格怎么算,公司办个官网需要多少钱?
Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作
java ZXing生成二维码及条码实例分享
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
Thinkphp 中 distinct 的用法解析
,在苏州找工作,上哪个网站比较好?
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
如何解决hover在ie6中的兼容性问题
如何快速查询域名建站关键信息?
HTML 中如何正确使用模板变量为元素的 name 属性赋值
Windows10怎样连接蓝牙设备_Windows10蓝牙连接步骤【教程】
详解Oracle修改字段类型方法总结
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
公司网站制作需要多少钱,找人做公司网站需要多少钱?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
简历在线制作网站免费版,如何创建个人简历?
微信h5制作网站有哪些,免费微信H5页面制作工具?
香港服务器租用费用高吗?如何避免常见误区?
js代码实现下拉菜单【推荐】
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
南京网站制作费用,南京远驱官方网站?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
Laravel如何创建自定义中间件?(Middleware代码示例)
在Oracle关闭情况下如何修改spfile的参数
如何在阿里云虚拟主机上快速搭建个人网站?
如何在腾讯云服务器上快速搭建个人网站?
Angular 表单中正确绑定输入值以确保提交与验证正常工作
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
Laravel如何生成和使用数据填充?(Seeder和Factory示例)
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
如何在服务器上三步完成建站并提升流量?
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
Laravel如何为API生成Swagger或OpenAPI文档

