js规范

 

匿名函数

要避免全局变量泛滥, 可以考虑使用匿名函数, 把不需要在外部访问的变量或者函数限制在一个比较小的范围内。

例如以下代码:

<script>
    function func1(){
        var list = ["a", "b", "c"];

        for(var i = 0; i < list.length; i++){
            //..
        };
    }
    func1(); // 自动运行
</script>

这段代码的作用是在页面加载的时候自动执行某些操作, 并不需要被外部调用, 但是它执行过后却留下了一个全局的函数。

像这种情况, 非常有必要使用匿名函数:

<script>
    (function func1(){
        var list = ["a", "b", "c"];

        for(var i = 0; i < list.length; i++){
            //..
        };
    })(); // 自动运行
</script>

匿名函数的格式:

(function(){
    // 代码块
})();

如果要带参数的话:

(function(arg1, arg2, argN){
    //..
})(arg1, arg2, argN);

 

 

命名空间

还有另外一个方法可以减少全局变量, 那就是命名空间, 在JS中可以用"对象-属性"来模拟命名空间;

window.com = {}

window.com.bytter = {}

window.com.bytter.hello = function(){
    alert("hello");
}

如果你要给某个已经存在的页面增加功能, 可能要增加十多个函数, 而那个页面已经存在大量的全局变量和函数, 甚至还有函数跟你新增的函数同名, 怎么办?

命名空间是比较好的选择, 你可以创建一个命名空间, 把你的新函数都放在那个命名空间之下, 例如:

<button type="button" onclick="pg.check.userAcc()">检查用户名</button>
<button type="button" onclick="pg.check.userAcc()">检查帐号</button>

<script>
    window.pg = {}

    window.pg.check = {
        // 检查用户名
        userName: function(){
            //..
        },
        // 检查帐号
        userAcc: function(){
            //..
        }
    };
</script>

互不干扰

结合上述的匿名函数和命名空间的使用, 可以把一个页面中自己维护的代码与其它的代码分隔开来, 将与外部代码的耦合降低到最小。

<script>
    // 页面命名空间
    window.pg = {}


    // 检查用户信息
    // 作者:张三
    // 最后更新: 2012.12.31
    (function(){

        // 私有变量
        var a, b, c;

        // 检查用户信息的相关方法
        window.pg.check = {
            // 检查用户名
            userName: function(){
                //..
            },
            // 检查帐号
            userAcc: function(){
                //..
            }
        };

    })(); // end 张三的代码


    // xxx功能
    // 作者:李四
    // 最后更新: 2012.1.1
    (function(){
        window.pg.xxx = {
            //..
        }
    })(); // end 李四的代码

</script>

变量声明

变量必须在使用前用var进行声明;

变量的声明应该放在代码块或者函数的头部;

可在一行内声明多个变量, 但要考虑美观易读;

// 银行名称, 银行帐号 
var type, acc;


// 银行名称, 银行帐号
var type = "中国银行", acc = "xxxxxx";


var type = "中国银行",   // 银行名称
    acc = "xxxxxx";      // 银行帐号

尽量使用易于理解的变量名,如:

var bankType = "中国银行",
    bankAccount = "xxxxxx"; 

命名

普通变量名和函数名采用"小驼峰式命名法", 如:firstName、lastName

作为构造函数的函数采用"大驼峰式命名法", 如:

var Person = function(){
    //..
}

var me = new Person();

常量用大写和下划线表示,如:

var ROOT_PATH = "/v10/";

分号

每条语句必须使用分号结尾(特别是需要压缩的js,省略分号常常会导致压缩失败);

大括号

if语句、函数定义、try语句等带大括号的结构, 左大括号应紧跟前面的部分:

// good
var Person = function(){
    //..
}

// bad
var Person = function()
{
    //..
}

使用复合语句时不要省略大括号{}

// good
for(var i = 0; i < ary.length; i++){
    list.push(ary[i]);
}

// bad
for(var i = 0; i < ary.length; i++)
    list.push(ary[i]);

以提高代码可读性为前提,允许例外:

if(!data) return;

if(row) list.push(row);

空格

数值操作符(如, +/-/*/% 等)、比较符(大于、小于、等于)两边留空格;

逗号、冒号、分号后要留一个空格(如果后面还有内容的话);

行尾不要有空格;

点号前后不要出现空格;

函数名末尾和左括号之间不要出现空格;

字符串

表示字符串用单引号或双引号均可, 建议统一使用双引号,

但表示html标签时一律使用单引号, 如:

var html = '<div class="msg" ></div>';

数组

使用简便的方式定义数组:

// good
var list = [1, 2, 3];

// bad
var list = new Array();
list[0] = 1;
list[1] = 2;
list[2] = 3;
JavaScript 学习总结(17)—— 前端开发规范之命名规范、html 规范、css 规范、js 规范 一个好的程序员肯定是要能书写可维护的代码,而不是一次性的代码,怎么能让团队当中其他人甚至一段时间时候你再看你某个时候写的代码也能看懂呢,这就需要规范你的代码了。我是有一点强迫症的人,上周我们后端给我了一个CanUsename的接口(该接口的目的是判断输入的目的地是否是4级目的地),我真的是崩溃的。我只是觉得这个名字不够语义化,但是让我自己想一个名字我又想不出来,于是我就在想,如果有一套命名规范的话,那么以后起名字就不用发愁了,直接按照规范来就好了。 阅读详情

相关推荐

JavaScript规范

JavaScript 代码规范 **用更合理的方式写 JavaScript**

JavaScript 代码规范

6. 对条件语句和循环语句使用大括号:即使只有一条语句,也应始终使用大括号将条件语句(如 `if`、`else`)和循环语句(如 `for`、`while`)的代码块括起来。4. 声明变量时使用 `const` 或 `let`:避免使用 `var`,因为它具有函数作用域而不是块作用域。使用 `const` 声明不会改变的变量,使用 `let` 声明可变的变量。请记住,规范可能因团队和项目的要求而有所不同,因此在实际开发中,请与您的团队一起确定适用的规范并遵循它们。// 使用驼峰命名法和有意义的变量名。

smarten57的博客 1303

【Unity】【模型】【AI建模】如何将AI生成的GLB格式3D模型文件导入Unity

本文介绍了一个将AI工具自动生成的GLB格式3D模型文件转换成fbx模型文件导入Unity的步骤。

O青草O的博客 Unity和游戏制作知识分享 1358

JavaScript的基本规范

在JavaScript中,使用关键字 var、let 或 const 来声明变量。这些关键字表示在当前作用域中创建一个新的变量,并可以选择性地给它们赋初始值。然而,虽然你可以在同一行使用逗号分隔多个变量名,但每个变量都需要使用相应的关键字进行声明。这是因为 JavaScript 的语法规范要求每个变量声明都必须以关键字开始。var 是声明变量的关键字。var 声明的变量具有函数作用域或全局作用域,并且可以被重新赋值。使用 var 声明的变量会存在变量提升的现象,即变量可以在声明之前使用。

weixin_71893790的博客 401

告别MATLAB环境!保姆级教程:用Application Compiler把你的GUI程序打包成独立exe(2020R版本实测)

本文详细介绍了如何使用MATLAB的Application Compiler工具将GUI程序打包成独立exe文件,特别针对2020R版本进行实测。从技术原理、配置详解到打包实战与问题排查,提供完整的解决方案,帮助开发者实现无需MATLAB环境的程序分发,提升工作效率。

weixin_30571465的博客 274

波动性GARCH模型与波动率预测(代码+结果分析)

本文介绍的ARCH、GARCH模型可以刻画出随时间变化的条件异方差。

celiaweiwei的博客 2万+

JS | 如何规范 JavaScript 的注释

规范JavaScript的注释方法包括使用单行注释、多行注释、使用JSDoc风格的注释以及采用一致的注释习惯。其中,使用JSDoc风格的注释是为了提高代码的可读性和维护性,通过在函数和变量声明之前添加规范化的注释,为代码的每一部分提供清晰的文档说明。这种做法不仅有助于团队成员之间的沟通,也便于未来的代码维护和更新。

青春木鱼的博客 2159

【WRFDA教程】客观分析(OBSGRID)详解

客观分析(OBSGRID)详解

WW、forever的博客 1133

JavaScript(JS) 代码编写规范

代码规范问题虽然不影响程序的运行,但是却很可以使代码在管理上变得很容易。代码规范一般在开发前规定,可以跟你的团队成员来协商设置。本文主要介绍JavaScript(JS)中代码编写的规范。 原文地址:JavaScript(JS) 代码编写规范 ...

weixin_42098295的博客 227

PCL点云库入门(第6讲)——PCL库中Eigen数学工具库的基本使用(持续更新)

Eigen库是一个高性能的C++模板库,专注于线性代数、矩阵和向量运算,以及相关的数值分析和算法。在Eigen库中,所有的矩阵和向量均被视为矩阵模板类的实例。向量可以被看作是特殊形式的矩阵,具体表现为只包含1行或1列。

qq_36812406的博客 1753

老电脑续命神器:Windows 11 26H1 精简游戏版,帧率稳定无压力!(Win11 26H1 极致精简游戏版(3.17G):装完只占 8G 内存,Ultra CPU 性能拉满)

旧电脑福音也能安装windows11畅玩游戏🎮:文章分享一款 Windows 11 26H1 精简游戏版,仅 3.17G、C 盘占用 8G,开机进程约 50 个,内存占用 1.4G,内置游戏优化与运行库,支持离线安装、跳过 TPM 检测,让老电脑也能畅玩 3A 游戏和办公娱乐 🚀。

XiaoqiangClub的博客 1065

javascript规范(js)

EMCAScript规范 javascript语言实现,ES6规范(使用babel编译器将es6转换为es5,webpack只支持部分es6): import &amp;amp;quot;jquery&amp;amp;quot;; export function doStuff() {} module &amp;amp;quot;localModule&amp;amp;quot; {} commonjs规范 nodejs语言实现 require(&amp;amp;q

daoer_sofu的专栏 1713

YOLO11,ultralytics-main源代码目录结构详解

本文详细介绍了YOLO11框架的ultralytics-main源代码目录结构,帮助用户更好地理解和使用YOLO模型。主要目录包括:docker文件夹,包含多种Docker镜像文件,适用于不同硬件环境;docs文件夹,存放YOLO的说明文档;examples文件夹,提供YOLO使用的示例代码;tests文件夹,包含单元测试模块;ultralytics文件夹,为核心代码所在,包含推理逻辑、配置、数据处理等模块。其中,engine文件夹负责训练和推理引擎,models文件夹存放模型架构,nn定义神经网络结构

qq_30279827的博客 1284

Javascript 规范

一、javascript 书写位置 1.引入外部 js 文件 格式: 1.注: html和jsp页面中不允许将后面那个标签去掉 ECMA第五版规定 type 属性不写时默认为 type=”text/javascript”,因此省略这个属性。 2.自己写js 代码 3.标签的位置 如果将 二、命名规范 1.区分大小写 Javascript 中的一切(如:变量、函数名和操作符)都区分大小写。 如:...

FCYLin的博客 433

停车位检测:基于YOLOv5与UI界面的实现

YOLOv5是YOLO(You Only Look Once)系列中的最新版本,它能够在单次前向传播中同时完成多个目标的定位与分类,因此被广泛应用于实时目标检测任务。与之前的版本相比,YOLOv5在精度和速度上得到了很大的优化,适合嵌入到实际的自动驾驶和智能交通系统中。YOLOv5使用了卷积神经网络(CNN)进行特征提取,并通过回归方法预测边界框、类别及置信度。高效的推理速度:YOLOv5采用了优化的模型结构,能够在保证精度的同时提供较快的推理速度。较高的精度。

YOLO 695

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

js/javascript代码注释规范与示例

注释在代码编写过程中的重要性,写代码超过半年的就能深深的体会到。没有注释的代码都不是好代码。为了别人学习,同时为了自己以后对代码进行‘升级’,看看js/javascript代码注释规范与示例。来自:http://www.56.com/style/-doc-/v1/tpl/js_dev_spec/spec-comment.html 文件注释 文件注释位于文件的最前面,应包括文件的以下信息:概要说明及版本(必须)项目地址(开源组件必须)版权声明(必须)开源协议(开源组件必须)版本号(必须)修改时间(必...

txl910514的专栏 1045

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【vue.js之夯实基础-8】javascript模块化编程 之 规范地使用模块及require.js实战 同步加载规范 CommonJS 异步加载规范 AMD(require.js)

同步加载规范 CommonJS 浏览器环境 异步加载规范 AMD require([module], callback) (require.js) 加载 require.js 加载我们自己的代码了 指定主模快(data-main) 主模块的写法 模块的加载 require(['mod1'],function(mod1){}) AMD模块的写法 define(['myLib'], function(myLib){ function f(){} return {f:f} }

alwarse 767

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

JS学习之JavaScript模块化规范进化论

JavaScript 语言诞生至今,模块规范化之路曲曲折折。社区先后出现了各种解决方案,包括 AMD、CMD、CommonJS 等,而后 ECMA 组织在 JavaScript 语言标准层面,增加了模块功能(因为该功能是在 ES2015 版本引入的,所以在下文中将之称为 ES6 module)。今天我们就来聊聊,为什么会出现这些不同的模块规范,它们在所处的历史节点解决了哪些问题?

LoveSummer 1314

【JS规范】JavaScript 编码风格规范

为什么80%的码农都做不了架构师?>>> ...

weixin_34120274的博客 152

如何通过 idiomatic.js 规范提升 JavaScript 代码质量:完整指南

idiomatic.js 是一份关于编写一致、地道 JavaScript 代码的规范文档,旨在帮助开发者建立统一的编码风格,提升代码的可读性、可维护性和协作效率。无论是新手还是有经验的开发者,遵循这些规范都能显著改善代码质量,减少错误,并使团队协作更加顺畅。 ## 为什么需要 JavaScript 编码规范? 在现代 Web 开发中,JavaScript 代码的质量直接影响项目的可维护性和扩展

gitblog_01086的博客 697

java script 注释_js/javascript代码注释规范与示例

注释在代码编写过程中的重要性,写代码超过半年的就能深深的体会到。没有注释的代码都不是好代码。为了别人学习,同时为了自己以后对代码进行‘升级’,看看js/javascript代码注释规范与示例。来自:http://www.56.com/style/-doc-/v1/tpl/js_dev_spec/spec-comment.html文件注释文件注释位于文件的最前面,应包括文件的以下信息:概要说明及版本...

weixin_39564524的博客 171

JS编写规范

编写JS时需要遵守的规范

kydkong的博客 1万+

终极指南:如何在云平台上部署符合idiomatic.js规范的JavaScript应用

idiomatic.js是一个专注于编写一致、地道JavaScript代码的开源项目,提供了Principles of Writing Consistent, Idiomatic JavaScript核心指南。本文将详细介绍如何在云平台上部署遵循这些规范的JavaScript应用,帮助开发者构建高质量的云原生应用。 ## 为什么选择idiomatic.js规范进行云原生开发 在云原生环境中,J

gitblog_00080的博客 704

js命名规范

js命名规范 js命名应遵循 简洁、语义化 的原则 一、变量 命名方法: 小驼峰式命名法 命名规范:前缀为形容词 (函数前缀为动词, 以此来区分函数和变量) # 好的命名方式 let maxCount = 10; let tableTitle = '啦啦啦'; # 不好的命名方式 let setConut = 10; let getTitle = '啦啦啦'; 二、常量 命名方法:名词全部大写 命名规范:使用大写字母和下划线来组合命名,下划线用来分割单词。 const MAX_COUNT = 10; co

weixin_43294092的博客 2092
上一篇: jquery ui numberbox用法
下一篇: windows迁到linux上斜杠的问题
xia_andy
博客等级 码龄16年 0粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值