review学弟的前端代码,我发现了这三个问题

简介: 之前在工作室分配给学弟一个任务:做一个网上报名的应用,做完后上传到仓库后,我review了一下,发现了不少问题,我也经历过这个阶段,所以我通过这篇文章总结了一些问题。

前言

之前在工作室分配给学弟一个任务:做一个网上报名的应用,做完后上传到仓库后,我review了一下,发现了不少问题,我也经历过这个阶段,所以我通过这篇文章总结了一些问题。

声明变量问题🙈

letconst都是ES6新增的变量声明方式,而不少人会对其进行滥用,但是letconst 两者的使用也需要进行斟酌。

其实用一句话就能概括出使用letconst的场景:正常情况下可以使用let声明,而如果你想要禁止这个变量二次赋值,就可以使用 const,下面我们来看看真正实际的例子,这是学弟写的一个基本的表单接口的获取内容部分,他使用let声明变量,为了存放表单内容,而目前场景没有更改表单的需求,我为了禁止这个变量二次赋值或者修改可以使用const来声明。

function get() {
        // 获取表单内容,后面发送数据
        let ano = document.getElementById('ano').value
        let name = document.getElementById('name').value
        let phone = document.getElementById('phone').value
        // 发送数据
    }
复制代码
function get() {
        // 获取表单内容,后面发送数据
        const ano = document.getElementById('ano').value
        const name = document.getElementById('name').value
        const phone = document.getElementById('phone').value
        // 发送数据
    }
复制代码

而如果我们获取数据后想对其进行二次修改吗,那么我们可以使用let,而二次修改视情况也分为两种,一种是立即修改,比如修改类型,则可以使用const赋值的时候完成修改,一种是条件修改,根据一些条件来进行修改,所以还是那句话:**正常情况下可以使用let声明,而如果你想要禁止这个变量二次赋值,就可以使用 const**✌️

那我们为什么要这么细致地去使用letconst呢?这样做可以让代码整体的规范变得更好,让开发变得流畅。

判断封装问题📚

涉及到表单,那肯定需要判断表单是否合规,我看了学弟的这个地方的代码,我拿一个表单作一个例子

function email() {
        let email = document.getElementById('email').value
        let emailtip = document.getElementById('emailtip')
        if (myreg.test(email)) {
            emailtip.innerText = ''
            email_one = 1;
        } else {
            emailtip.innerText = '输入内容不合法'
            email_one = 0;
        }
    }
复制代码

上面这段判断输入内容是否合规的代码,是先获取邮箱内容,在将内容进行一个邮箱的判断,并为一个事先声明好的变量赋值,最后通过变量来判断是否合规,看过这段代码后,我吐槽到还是没有彻底地掌握函数的应用啊

function email() {
        let email = document.getElementById('email').value
        let emailtip = document.getElementById('emailtip')
        return myreg.test(email) // 布尔值
}
复制代码

我优化了一下,利用函数的返回值,将值给到函数,再将提示内容错误的显示与隐藏的逻辑封装成另一个函数,抽出具体函数的功能,分工明确,即讲判断值与执行分开来做。

类型使用问题😵

这位学弟的代码中包括了一些判断,而我看到这一大串的判断后,我就觉得不简单

if (lose_one == 1 && phone_one == 1 && email_one == 1 && home_one == 1 && number_one == 1)
复制代码

这里使用==判断等于画蛇添足,在基于上面的优化判断逻辑后利用函数返回值,我们就可以将其转换成下面这种形式,来进行一个合法判断。

if (email()&&phone())
复制代码

而且,在js类型的使用上我们需要注意,布尔值和数字的01要分开使用,尽量做到各司其职!!!


相关文章
|
9月前
|
人工智能 自然语言处理 前端开发
DeepSite:基于DeepSeek的开源AI前端开发神器,一键生成游戏/网页代码
DeepSite是基于DeepSeek-V3模型的在线开发工具,无需配置环境即可通过自然语言描述快速生成游戏、网页和应用代码,并支持实时预览效果,显著降低开发门槛。
1669 93
DeepSite:基于DeepSeek的开源AI前端开发神器,一键生成游戏/网页代码
|
缓存 前端开发 JavaScript
利用代码分割优化前端性能:策略与实践
在现代Web开发中,代码分割是提升页面加载性能的有效手段。本文介绍代码分割的概念、重要性及其实现策略,包括动态导入、路由分割等方法,并探讨在React、Vue、Angular等前端框架中的具体应用。
|
8月前
|
自然语言处理 前端开发 IDE
用通义灵码全新智能体+MCP实现从设计稿到前端代码,个人免费用
通义灵码全新升级,发布国内首个支持“自主决策+工具链闭环”的编程智能体,面向个人免费!新增功能包括智能体模式、混合推理模型Qwen3支持、全面集成MCP中文社区(涵盖2400+服务)及长期记忆能力。用户可通过IDE插件使用,兼容主流开发环境如JetBrains、VS Code和Visual Studio。教程展示如何将MasterGo设计稿转化为前端代码,简化开发流程。探索链接:[通义灵码官网](https://lingma.aliyun.com/)。
|
9月前
|
前端开发 JavaScript 安全
|
JavaScript 前端开发 Docker
前端全栈之路Deno篇(二):几行代码打包后接近100M?别慌,带你掌握Deno2.0的安装到项目构建全流程、剖析构建物并了解其好处
在使用 Deno 构建项目时,生成的可执行文件体积较大,通常接近 100 MB,而 Node.js 构建的项目体积则要小得多。这是由于 Deno 包含了完整的 V8 引擎和运行时,使其能够在目标设备上独立运行,无需额外安装依赖。尽管体积较大,但 Deno 提供了更好的安全性和部署便利性。通过裁剪功能、使用压缩工具等方法,可以优化可执行文件的体积。
903 3
前端全栈之路Deno篇(二):几行代码打包后接近100M?别慌,带你掌握Deno2.0的安装到项目构建全流程、剖析构建物并了解其好处
|
缓存 监控 前端开发
探索前端性能优化:关键策略与代码实例
本文深入探讨前端性能优化的关键策略,结合实际代码示例,帮助开发者提升网页加载速度和用户体验,涵盖资源压缩、懒加载、缓存机制等技术。
|
Web App开发 缓存 监控
前端性能优化实战:从代码到部署的全面策略
前端性能优化实战:从代码到部署的全面策略
308 1
|
Web App开发 前端开发 JavaScript
前端性能优化实战:从代码到部署的全面指南
前端性能优化实战:从代码到部署的全面指南
309 1
|
前端开发 JavaScript
前端界的革命:掌握这些新技术,让你的代码简洁到让人惊叹!
前端技术的快速发展带来了许多令人惊叹的新特性。ES6及其后续版本引入了箭头函数、模板字符串等简洁语法,极大减少了代码冗余。React通过虚拟DOM和组件化思想,提高了代码的可维护性和效率。Webpack等构建工具通过模块化和代码分割,优化了应用性能和加载速度。这些新技术正引领前端开发的革命,使代码更加简洁、高效、可维护。
157 2
|
前端开发 JavaScript 测试技术
前端工程师的必修课:如何写出优雅、可维护的代码?
前端工程作为数字世界的门面,编写优雅、可维护的代码至关重要。本文从命名规范、模块化设计、注释与文档、遵循最佳实践四个方面,提供了提升代码质量的方法。通过清晰的命名、合理的模块划分、详细的注释和持续的学习,前端工程师可以写出高效且易于维护的代码,为项目的成功打下坚实基础。
188 2

热门文章

最新文章

  • 1
    前端如何存储数据:Cookie、LocalStorage 与 SessionStorage 全面解析
    624
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    265
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    242
  • 4
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    192
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    299
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    429
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    188
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    131
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    198
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    274