当前位置: 首页 > 编程笔记 >

JavaScript编程中容易出BUG的几点小知识

笪波鸿
2023-03-14
本文向大家介绍JavaScript编程中容易出BUG的几点小知识,包括了JavaScript编程中容易出BUG的几点小知识的使用技巧和注意事项,需要的朋友参考一下

JavaScript是如今最受欢迎的编程语言之一,但受欢迎同时就是该语言自身的各种特性带来的副作用,无论该语言多美妙,每天还是有成千上万的程序员弄出一堆bug。先不要嘲笑别人,或许你也是其中之一。

给你一个例子,下面是几个简短的完全有效的JS片段(你可以在你的控制台上试验一下):


typeof NaN === 'number' // true

 

Infinity === 1/0        // true

0.1 + 0.2 === 0.3       // false,前面加括号也一样

"3" + 1                 // '31'  "3" - 1                 // 2

你还相信自己的JavaScript吗?

1、JS最小的值


Number.MIN_VALUE > 0; //true


Number.MIN_VALUE用于JavaScript可以表达的最小值,为5e-324,然而是JS中最接近0的一个数

2、字符串连接


("foo" + + "bar") === "fooNaN"  //true

"why I am " + typeof + ""       // why I am number

JShtml" target="_blank">解析成“foo” + (+ “bar”), 这将会把 “bar” 转成一个数字

3、parseInt 函数


parseInt('06'); // 6

parseInt('08'); // 0  注意,谷歌新版已修正

parseInt(null, 24) === 23 // true

4、null是不是object


typeof null  // object

null instanceof Object  // false

5、return返回内容


function myjson()

{

   return

   [

     2

   ]

}

myjson();  // undefined

return返回的内容必须和return在同一行

6、奇怪的数字


 012  == 12  // false

'012' == 12  // true

 "3" + 1     // '31'

 "3" - 1     // 2

0.1 + 0.2 == 0.3 // false

0.1 + 0.7 == 0.8 // false

0.2 + 0.7 == 0.9 // false

9999999999999999 // 10000000000000000

9999999999999999-1 //10000000000000000

111111111111111111111 // 111111111111111110000

7、诡异的参数


function hello(what) {

     alert(arguments[0]);    //vicky

     what = "world";

     return "Hello, " + arguments[0] + "!";

}

hello("vicky"); //"Hello, world!"

8、让人头大的等号


NaN === NaN;   // false

[] == false;   // true

"" == false;   // true

null == false; // false

[] == ![]      // true

window.window == window  // true window.window === window // false,有些浏览器是true window == document       // true,有些浏览器是false

("0" && {}) == 0 // false (0 && {}) == 0   // true 0 == "0"         // true [] == 0          // true

 类似资料:
  • 本文向大家介绍JavaScript易错知识点整理,包括了JavaScript易错知识点整理的使用技巧和注意事项,需要的朋友参考一下 前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一些ES6的知识点。 JavaScript知识点 1.变量作用域 上方

  • 主要内容:1) 源文件(Source File),2) 工程/项目(Project),3) 工程类型/项目类型,4) 链接(Link)上节我们介绍了编译器和 IDE 的概念,大家肯定希望赶紧实践一下,用 IDE 真正地运行一段C语言代码来看看效果,这样能够更快地获得成就感。 但是,使用 IDE 的过程中会涉及到一些与编程有关的概念,这些概念如果不提前了解,即使能够运行出程序来,也是雾里看花,知其然不知其所以然。本节的目标就是让大家对这些概念有一个简单的了解。 1) 源文件(Source File

  • 本文向大家介绍有效提高JavaScript执行效率的几点知识,包括了有效提高JavaScript执行效率的几点知识的使用技巧和注意事项,需要的朋友参考一下 为了提供新鲜、别致的用户体验,很多网站都会使用 JavaScript 来改善设计、验证表单、检查浏览器,以及Ajax请求,cookie操作等等,实现无刷新动态效果 。但是,要将大量内容在浏览器呈现,如果处理不好,网站性能将会急剧下降。所以我们有

  • 本文向大家介绍nodejs中的异步编程知识点详解,包括了nodejs中的异步编程知识点详解的使用技巧和注意事项,需要的朋友参考一下 简介 因为javascript默认情况下是单线程的,这意味着代码不能创建新的线程来并行执行。但是对于最开始在浏览器中运行的javascript来说,单线程的同步执行环境显然无法满足页面点击,鼠标移动这些响应用户的功能。于是浏览器实现了一组API,可以让javascri

  • 本文向大家介绍容易造成JavaScript内存泄露几个方面,包括了容易造成JavaScript内存泄露几个方面的使用技巧和注意事项,需要的朋友参考一下 发表于谷歌WebPerf(伦敦WebPerf集团),​​2014年8月26日。 高效的JavaScript Web应用必须流畅,快速。与用户交互的任何应用程序,都需要考虑如何确保内存有效使用,因为如果消耗过多,页面就会崩溃,迫使用户重新加载。而你只

  • 本文向大家介绍写出几种IE6 bug的解决方法相关面试题,主要包含被问及写出几种IE6 bug的解决方法时的应答技巧和注意事项,需要的朋友参考一下 1)png24位的图片在iE6浏览器上出现背景,解决方案是做成PNG8.也可以引用一段脚本处理. 2)IE6双倍边距bug:在该元素中加入display:inline 或 display:block 3)像素问题 使用多个float和注释引起的 使用d