当前位置: 首页 > news >正文

前端HTML CSS JS风格规范

本文代码规范来自HTML/CSS代码开发规范文档

文件命名规范

使用小写字母、数字和下划线组成文件名。
避免使用特殊字符和空格。
使用语义化的命名,能够清晰地表达出文件的功能或内容。
目录结构规范

使用约定俗成的目录结构,如:src/components/、src/assets/等。
将不同类型的文件放置在不同的目录下,如:JavaScript文件放在src/目录下,样式文件放在src/styles/目录下。

缩进规范

使用两个空格进行缩进。
不要使用制表符进行缩进。

注释规范

使用单行注释 // 或多行注释 /* */。
在函数、类、变量等定义前添加注释,说明其功能和用途。
在复杂的逻辑处添加注释,解释代码的作用和实现方式。
空行规范

在函数、类、变量等定义之间使用一个空行分隔。
在条件语句、循环语句等控制结构中,每个语句块之间使用一个空行分隔。

代码换行规范

每行代码长度不超过80个字符。
长表达式可以使用括号进行换行,但要保持括号的对齐。

变量声明规范

使用 const 声明常量,使用 let 声明变量。
变量名使用小驼峰命名法,第一个单词以小写字母开头,后续单词首字母大写。
避免使用全局变量,尽量将变量限制在局部作用域内。

函数声明规范

函数名使用小驼峰命名法,第一个单词以小写字母开头,后续单词首字母大写。
函数参数使用逗号分隔,每个参数之间使用空格隔开。
函数体使用大括号包裹,保持代码的整洁和可读性。

事件处理规范

使用 addEventListener 方法绑定事件。
事件处理函数名使用小驼峰命名法,第一个单词以小写字母开头,后续单词首字母大写。
避免使用内联事件处理器,将事件处理逻辑封装在独立的函数中。

CSS规范

将样式文件分离出来,放在单独的目录下。
使用选择器时,避免使用过于具体的选择器,以提高代码的可维护性。
使用预处理器(如Sass、Less)来编写样式,提高代码的可复用性和可维护性。
使用CSS模块化技术(如CSS模块)来组织样式,避免样式冲突。

JavaScript规范

遵循ESLint或其他代码质量工具的规则。
使用严格模式 ‘use strict’。
避免使用全局变量,尽量将变量限制在局部作用域内。
使用箭头函数替代传统的函数声明。
避免重复的代码,将重复的逻辑封装在独立的函数中。
使用Promise来处理异步操作,提高代码的可读性和可维护性。

测试规范

为重要的功能编写单元测试,确保代码的正确性。
使用断言库(如Jest)来编写测试用例。
将测试用例放在单独的目录下,与被测试的代码保持相同的目录结构。
运行测试用例时,确保覆盖率达到一定的标准。

相关文章:

前端HTML CSS JS风格规范

本文代码规范来自HTML/CSS代码开发规范文档 文件命名规范 使用小写字母、数字和下划线组成文件名。 避免使用特殊字符和空格。 使用语义化的命名,能够清晰地表达出文件的功能或内容。 目录结构规范 使用约定俗成的目录结构,如:src/compon…...

为什么spring默认采用单例bean

概 述 熟悉 Spring开发的朋友都知道 Spring 提供了 5种 scope,分别是: singleton: 单例模式,当spring创建applicationContext容器的时候,spring会欲初始化所有的该作用域实例,加上lazy-init就可以避免预处理&#xf…...

Redisson分布式锁学习

之前工作中一直使用redis来实现分布式锁,但是最近项目使用了云弹性,机器会涉及到扩缩容,涉及到优雅停机的问题,普通的redis分布锁,一般使用时会设置锁的时间,但是如果在加锁期间 JVM异常重启等发生会导致分…...

Metabase:简单快捷的商业智能与数据分析工具 | 开源日报 No.61

moby/moby Stars: 66.8k License: Apache-2.0 Moby 是一个由 Docker 创建的开源项目,旨在实现和加速软件容器化。它提供了工具包组件的“乐高集”,可以将它们组装成基于容器的自定义系统的框架。组件包括容器生成工具、容器注册表、业务流程工具、运行时…...

【无标题】高流量大并发Linux TCP性能调优

最近在使用jmeter做压测,当jmeter的并发量高的时候发现jmeter服务器一直报错Cannot assign requested address, 查看了一下发现系统中存在大量处于TIME_WAIT状态的tcp端口 netstat -n | awk ‘/^tcp/ {S[$NF]} END {for(a in S) print a, S[a]}’ TIME_W…...

优雅的用户体验:微信小程序中的多步骤表单引导

前言 在微信小程序中,实现一个多步骤表单引导界面既可以提供清晰的任务指引,又可以增加用户体验的互动性。本文将探讨如何使用微信小程序的特性,构建一个流程引导界面,帮助用户一步步完成复杂任务。我们将从设计布局和样式开始&am…...

Kotlin中的委托、属性委托和延迟加载

委托模式是一种常用的设计模式,用于将某个对象的责任委托给另一个对象来处理。在Kotlin中,委托可以通过关键字by来实现,主要分为类委托和属性委托两种形式。此外,Kotlin还提供了延迟加载的功能,可以在需要时才进行初始…...

轻松合并Excel工作表:Java批量操作优化技巧

摘要:本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 在Excel中设计表单时,我们经常需要对收集的信息进行统计分析。例如&a…...

计算机网络_网络层概述

4.1 网络层概述 4.1.1 一.分组转发和路由选择 网络层的主要任务就是将分组从源主机经过多个网络和多段链路传输到目的主机,可以将该任务划分为分组转发和路由选择两种重要的功能。 注释:A发送到B,从1端口进入. 如何得知是从2还是从3中转发出去呢?--------->这…...

自然语言处理---Transformer机制详解之GPT2模型介绍

1 GPT2的架构 从模型架构上看, GPT2并没有特别新颖的架构, 它和只带有解码器模块的Transformer很像. 所谓语言模型, 作用就是根据已有句子的一部分, 来预测下一个单词会是什么. 现实应用中大家最熟悉的一个语言模型应用, 就是智能手机上的输入法, 它可以根据当前输入的内容智…...

ChatGPT 即将诞生一周年,OpenAI 将有大动作

图片来源:由无界AI生成 下个月就是 ChatGPT 一周年纪念日。OpenAI 正在谋划新的大动作。可以肯定地说,自诞生以来,ChatGPT 就为 OpenAI 提供了不可阻挡的增长动力。 01 营收超预期,OpenAI 缓了一口气 据 The Information 报道&…...

jenkins 原理篇——pipeline流水线 声明式语法详解

大家好,我是蓝胖子,相信大家平时项目中或多或少都有用到jenkins,它的piepeline模式能够对项目的发布流程进行编排,优化部署效率,减少错误的发生,如何去写一个pipeline脚本呢,今天我们就来简单看…...

在ESP32-Arduino开发中添加其它Arduino库

目录 前言 原理说明 操作步骤 下载Bounce 安装Bounce 将下载的文件夹(压缩包需要解压)移动到components/arduino/libraries路径下,并重命名为Bounce2 查看添加库里所有的源文件位置 在arduino的CMakeList.txt里添加库源文件 使用Bounce 前言 乐鑫官方的es…...

CAN总线测试——CAN一致性之物理层

CAN一致性物理层测试项 1.最小通讯电压测试2.最大通讯电压测试3.显性位/隐性位输出电压测试4.信号跳变沿测试5. 地偏移6. 终端电阻 1.最小通讯电压测试 2.最大通讯电压测试 3.显性位/隐性位输出电压测试 4.信号跳变沿测试 5. 地偏移 6. 终端电阻...

macrodata数据集在Python统计建模和计量经济学中的应用

目录 一、数据介绍二、应用三、statsmodels 统计模块四、使用 statsmodels 统计模块分析 macrodata.csv 数据集参考 一、数据介绍 macrodata.csv是一个示例数据集,通常用于统计分析和计量经济学中的教育和训练目的。这个数据集通常包括以下列: year&am…...

【C++进阶(九)】C++多态深度剖析

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C   🔝🔝 多态 1. 前言2. 多态的概念以及定义3. 多态的实…...

第二节——Vue 基本介绍

一、MV*的理解 1、概念 在计算机编程领域,MV*(也称为MVC、MVP、MVVM等)是一种用于组织和设计应用程序结构的模式。这些模式旨在实现应用程序的解耦、可维护性和可扩展性。MV代表着Model-View-(表示控制器或视图模型等其他组件&a…...

基于ResNet34的花朵分类

一.数据集准备 新建一个项目文件夹ResNet,并在里面建立data_set文件夹用来保存数据集,在data_set文件夹下创建新文件夹"flower_data",点击链接下载花分类数据集https://storage.googleapis.com/download.tensorflow.org/example_i…...

[计算机提升] 数据及相关概念

1.9 数据及相关概念 1.9.1 数据、信息 在Windows系统中,数据是指事实或信息的集合,可以是数字、文本、图像、声音等形式的内容。数据是计算机系统中处理和操作的基本元素,是信息的表现形式和载体。 与信息相比,数据的范围更广泛…...

第18章 SpringCloud生态(二)

18.11 说说你了解的负载均衡算法 难度:★★ 重点:★★★★ 白话解析 常用的负载均衡算法有: 1、轮询(Round Robin):说白了就是让服务器排好队,一个个轮着来调用;Ribbon默认采用该算法。 优点:实现起来简单; 缺点:服务器性能不一样的情况下,导致能力强的会经常空闲…...

VisionPro坐标空间树实战:从概念到精准测量的空间转换指南

1. VisionPro坐标空间树的核心概念 第一次接触VisionPro的坐标空间树时,我也被那些专业术语搞得晕头转向。但经过几个项目的实战后,我发现这套系统其实设计得非常巧妙。简单来说,坐标空间树就像是一个多层级的地址系统,它能告诉你…...

医疗用气电混合连接器:实现安全性与稳定性平衡的实用技巧

想必从事医疗设备开发的各位都有同感:如今的设备变得越来越复杂。尤其是在需要同时传输气体和电信号的场合,可以说一个小小的连接器就能左右整个设备的可靠性。请不要低估这个"配角"的作用。一旦出现问题,轻则导致设备错误或停机&a…...

【BLheli_S】P01 上位机参数修改、编译生成固件以及脱机烧录教程

目录 1.1 脱机烧录器购买 1.2 BLHeli_S相关资料下载 1.2.1 源码结构分析: 1.3 BLHeli_S 工程文件创建 1.3.1 Keil-C51 工程创建 1.4 BLHeli_S 参数修改 1.5 BLHeli_S 引脚定义说明 1.6 脱机烧录教程配置 1.1 脱机烧录器购买 阿莫智能设备 1.2 BLHeli_S相关资料下载 源码下载 上…...

轻量级TTS神器:CosyVoice-300M Lite功能体验与效果测评

轻量级TTS神器:CosyVoice-300M Lite功能体验与效果测评 1. 产品定位与技术背景 1.1 为什么需要轻量级TTS 在智能硬件和边缘计算快速发展的今天,传统的云端语音合成方案面临三大挑战: 硬件依赖:大多数高质量TTS需要GPU加速&…...

Java的java.util.HexFormat自定义格式

Java的HexFormat:十六进制处理的现代方案 在数据处理、网络通信或安全加密领域,十六进制格式的转换与解析是常见需求。Java 17引入的java.util.HexFormat类,为开发者提供了标准化且灵活的十六进制处理工具,告别了以往依赖手动拼接…...

别再死记硬背ESP32 BLE API了!用这个“事件驱动”思维导图,5分钟理清GAP/GATT回调逻辑

用事件驱动思维重构ESP32 BLE开发:从API记忆到逻辑推演的艺术 在物联网设备开发中,BLE(低功耗蓝牙)技术因其低功耗特性成为连接智能设备的首选方案。ESP32作为集成BLE功能的明星芯片,其开发门槛却让不少工程师望而生畏…...

Qwen3-14B私有部署镜像Java面试题智能解析与模拟面试

Qwen3-14B私有部署镜像Java面试题智能解析与模拟面试 1. 为什么Java开发者需要AI面试助手 Java作为企业级开发的主流语言,技术栈庞大且更新迭代快。传统的面试准备方式存在几个明显痛点:首先,手动整理海量面试题耗时费力;其次&a…...

translategemma-4b-it代码实例:Python调用Ollama API实现图文翻译自动化

translategemma-4b-it代码实例:Python调用Ollama API实现图文翻译自动化 1. 了解translategemma-4b-it模型 translategemma-4b-it是一个基于Google Gemma 3模型系列构建的轻量级翻译模型。这个模型专门设计用来处理图文翻译任务,支持55种语言之间的互译…...

碧蓝航线Live2D提取完全指南:5分钟掌握角色动画资源获取

碧蓝航线Live2D提取完全指南:5分钟掌握角色动画资源获取 【免费下载链接】AzurLaneLive2DExtract OBSOLETE - see readme / 碧蓝航线Live2D提取 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneLive2DExtract 想要提取碧蓝航线中精美的Live2D角色动画…...

从Cortex-M4寄存器到流水线:手把手拆解ARM微处理器执行一条指令的全过程

从Cortex-M4寄存器到流水线:手把手拆解ARM微处理器执行一条指令的全过程 在嵌入式系统开发中,理解处理器如何执行指令是突破性能瓶颈的关键。当我们面对一个简单的ADD R0, R1, R2汇编指令时,表面上看只是将两个寄存器值相加,但背后…...