首页 > 其他分享 >前端常见问题总结(正在更新中)

前端常见问题总结(正在更新中)

时间:2023-10-21 10:40:19浏览次数:25  
标签:总结 常见问题 false undefined 前端 alert 按钮 null true



开发中我所遇到的前端问题

  • 1、按钮问题
  • 2、追加元素的问题
  • 3、AJAX发送的数据是数组或者对象时,会报错
  • 4、浮点数精度问题(7 * 0.8 会等于 5.6000000000000005)
  • 5、区分JS中的undefined,null,"",0和false
  • 5、误用ajax的complete


1、按钮问题

(1)、没有准确定位到按钮的选择器(这就不便多说,都知道的,提出来只是希望大家回去排查这个最不起眼的问题)
建议办法:
1、是不是精准定位到这个元素了;
2、这个button元素是不是后来的js部分添加上去的,之前的DOM里面并没有,这个时候就是添加的是否需要注意了,如下:

`$('.btns', $('body)).append('<button class="btn">按钮</button>');`

这里面的…$('body)我只是象征性的取当前页面的body标签,你这需要改成你当前操作的那个Dom

(2)、按钮点击,却使表单提交了(button标签的type属性是不是submit,或者type没有写成button,偶会导致这种情况;
反之,需要点击便提交表单,这需要把type属性改成submit)
建议办法: <button type='button' class="btn">按钮</button>

(3)、点击按钮,会把你定义的事件触发多次,比如,弹出多个弹窗(点一次弹出一个弹窗,点击第二次便会弹出第二个)
建议办法://避免响应多次执行
$('.btns').off("click").on("click", function () { });

$("myDiv").unbind("click").bind("click");

2、追加元素的问题

(1)、元素内部追加append,多次点击会一直加上新的元素
建议办法:$('.text').empty().append('<span>123</span>');

(2)、元素外部追加,会出现多个
建议办法:在追加之前就需要判断是否存在,给加上的元素一个class属性,用hasClass来判断,不存在就可以直接添加,存在就不追加

3、AJAX发送的数据是数组或者对象时,会报错

建议办法:用JSON.stringify()来转化为json

data : {
                          data: JSON.stringify($where)
                }

4、浮点数精度问题(7 * 0.8 会等于 5.6000000000000005)

建议办法:
1、将小数转成整数来运算,之后再转回小数;
2、调用round() 方法四舍五入或者toFixed() 方法保留指定的位数(对精度要求不高,可用这种方法);
3、使用特殊的进制数据类型,如前文提到的bignumber(对精度要求很高,可借助这些相关的类库)

5、区分JS中的undefined,null,"",0和false

<script>

alert(0 == ''); //true
alert(0 == false); //true
alert(false == ''); //true
alert(null == undefined); //true

alert(!0); //true
alert(!false); //true
alert(!undefined); //true
alert(!null); //true
alert(!''); //true

alert(0 == undefined); //false
alert(0 == null); //false
alert(false == null); //false
alert(false == undefined);//false
alert('' == null); //false
alert('' == undefined); //false

</script>

建议方法:如果是判断返回值是否是false这样确定的情况,那么尽量用 === (全等)来操作

5、误用ajax的complete

建议方法:当用ajax进行数据请求时,避免使用complete回调方法,而应该使用success方法。complete回调在请求成功或失败都会触发。

//错误的写法
$.ajax({
  url: "http://tools.42du.cn/jsonp/student/all",
}).complete(function( data ) {
    //一些操作  
});

//正确的写法
$.ajax({
  url: "http://tools.42du.cn/jsonp/student/all",
}).success(function( data ) {
    //一些操作  
});

后续更新中……


标签:总结,常见问题,false,undefined,前端,alert,按钮,null,true
From: https://blog.51cto.com/u_12591679/7964497

相关文章

  • 1.基础知识(6) --Matlab 函数使用总结
    ✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。......
  • 03前端开发【css结束】
    伪元素选择器'''通过css操作文本内容'''1.修改首个字体样式p:first-letter{color:red;font-size:48px;}2.在文本开头添加内容p:before{content:'哈哈';color:bule;......
  • MVCC总结
    MVCC机制是什么MVCC,即**Multi-VersionConcurrencyControl**(多版本并发控制)。它是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。个人理解MySQL的InnoDB存储引擎支持事务。事务的四大特性:A原子性、C一致性、I隔离性、D......
  • celery包结构、celery延迟任务和定时任务、django中使用celery、接口缓存、双写一致性
    celery包结构project├──celery_task#celery包│├──__init__.py#包文件│├──celery.py#celery连接和配置相关文件,且名字必须叫celery.py│└──tasks.py#所有任务函数├──add_task.py#添加任务......
  • JAVA项目中的常用的异常处理情况总结
    在Java项目开发中,异常处理是至关重要的一部分。良好的异常处理能够提高程序的稳定性和可靠性,使得程序在面对意外情况时能够有所作为,而不至于因为一些小错误而导致整个系统崩溃。以下是Java项目中常见的异常处理情况及其处理方法的详细总结:1.空指针异常(NullPointerException)空指......
  • 知识点总结
    一、Java异常处理简介Java异常可以分为三种类型:可检查异常(checkedexception)、运行时异常(runtimeexception)和错误(error)。以下是它们之间的关系和特点:1.可检查异常(checkedexception):-继承自Exception类,需要在代码中显式处理或声明。-代表程序可预见的、并且可以从中恢复的......
  • 前端大量复杂数据存储探索
    引入最近有需求做一个在B端的长期数据储存方案,主要是需要将大量数据结构化储存,避免每一次启动都去服务端重复拉取数据第一个想到的前端持久化数据存储方案理所当然想到localstorage,但是它有一个最大5M的空间限制,这大小远远不够,因此我们将视线转移到前端数据库,半年前我接的有看到......
  • 今日总结
    今天学习了C#编程,以及 WinForm入门课程以及图形界面GUI编程;开始接触这门语言,虽然其与JAVA和CC++有许多不同之处,但通过之前的学习,还是很容易掌握基本的特性的;我计划做一个c/s界面的与数据库交互的信息管理系统,其与以往的b/s方式有着很多不同,但又有着许多共通之处。......
  • Vue前端框架
    Vue渐进式javacript框架插件可选安装-谷歌访问助手这是一个谷歌浏览器上的插件安装必安插件(文件夹)下的google-access-helper-2.3.0(文件夹)复制到你想放的文件夹下(安装后不可以挪动位置)建议D盘下,弄一个专门按软件的文件夹打开谷歌浏览器-扩展程序-开......
  • 10.20每日总结
      例题展示例题解决......