当前位置: 首页 > Web前端 > CSS

总结开发过程中的坑(三)

时间:2023-03-31 00:14:51 CSS

在日常工作中,经常会遇到各种坑。有时候真觉得踩了很多开发经验。在大牛的路上,希望自己能克服重重障碍,越走越远。学会时时总结,不断完善自己。本文旨在总结开发过程中容易忘记或遇到的重要坑。一方面会加深自己对这部分的理解,另一方面也希望能分享给大家。知识在于分享,踩过的坑当然也不例外。(有趣的)。目录输入上传同一个文件问题let的一些用法限制小数位常规DOM操作方法根据对象字段排序方法:上传文件时,修改输入的上传类型,上传后恢复上传的文件类型。如果有form表单,可以通过reset()方法重置表单,解决问题。:let用于声明变量,声明的变量只在let命令所在的代码块中有效。块级作用域的出现,实际上使得广泛使用的IIFE不再是必要的。let声明的变量没有变量提升。如果它们是在使用后声明的,则该值是未定义的。let不允许在同一范围内重复声明同一变量。在使用的过程中,其实还有一个很方便的用法。如果需要获取一个对象的多个属性,不需要多次声明变量:let{attr1,attr2}=obj3。受限小数正则有段时间没写正则表达式了公式都快忘记了,算个坑吧。需求如下:需要实现一个输入框,限制输入内容为数字。整数位不超过8位,小数位不超过6位。核心实现方法如下varreg=/^\d{0,8}(?:\.\d{1,8})?/g;“?:”表示不满足条件,不保存括号内的内容“?”表示尽可能少的匹配符合条件的内容4.DOM操作方法这里简单介绍一下插入节点。最直接想到的就是appendChild和insertBefore。其实有一个很实用的方法:insertAdjacentHTML/insertAdjacentText这个方法接收两个参数,分别是插入位置和插入内容,插入位置参数:beforeBegin:在标签开始之前插入afterBegin:在开始之后插入标签的tagbeforeEnd:在标签的结束标签之前插入afterEnd:在标签的结束标签之后插入使用示例:obj.insertAdjacentHTML("afterEnd","");5.根据对象字段排序varobjs={f:{id:2,name:'2'},a:{id:3,name:'3'},c:{id:1,name:'1'}};//自定义排序规则,按对象id排序varsortedObjKeys=Object.keys(objs).sort(function(a,b){returnobjs[b].id-objs[a].id;});//按照默认的排序规则,按照对象的key排序varsortedObjKeys=Object.keys(objs).sort();for(varindexinsortedObjKeys){console.日志(sortedObjKeys[索引]);console.log(objs[sortedObjKeys[index]]);console.log('----------');}6.代码规范其实代码规范的问题很重要,但是一直被自己忽略了。这方面也一直很薄弱。这里简单说一下css的实际开发。当代码量达到一定程度时,拥有一个好的、规范的代码就显得尤为重要。同样乱七八糟的代码也会影响开发效率。不利于代码复用,对后期维护和项目交接也是灾难。风格命名尽量用通俗易懂的名字,避免字母和数字的组合,熟悉名字。比如左边的导航栏可以这样命名:容器:.l-nav-container每一项:.l-nav-item是否使用reset根据实际开发需要判断。是否需要使用reset来重置浏览器的默认样式,或者尝试Normalize,reset的替代方法。样式分类可以复用,以后可能用到的样式尽量放在公共文件中,其他样式按功能划分即可。