Home > Web Front-end > JS Tutorial > body text

Some tips on how to easily cause bugs in JavaScript programming

PHPz
Release: 2018-09-29 15:58:42
Original
1639 people have browsed it

This article mainly introduces some tips that are prone to bugs in JavaScript programming. This article summarizes 8 tips. If you don’t understand these tips, they will cause you trouble and bugs in programming. You need Friends can refer to

JavaScript is one of the most popular programming languages ​​today, but its popularity is also a side effect of the various features of the language itself. No matter how beautiful the language is, there are still thousands of people using it every day Tens of thousands of programmers created a bunch of bugs. Don't laugh at others yet, maybe you are one of them.

To give you an example, here are a few short JS snippets that are completely valid (you can try it out on your console):

typeof NaN === 'number' // true
 
Infinity === 1/0        // true
0.1 + 0.2 === 0.3       // false,前面加括号也一样
"3" + 1                 // '31'  
"3" - 1                 // 2
Copy after login

Do you still believe it? Your own JavaScript?

1. The smallest value in JS

Number.MIN_VALUE > 0; //true
Copy after login

Number.MIN_VALUE is used for the smallest value that JavaScript can express, which is 5e-324, but it is the closest in JS A number of 0

2. String connection

("foo" + + "bar") === "fooNaN"  //true
"why I am " + typeof + ""       // why I am number
Copy after login

JS is parsed into "foo" ("bar"), which will convert "bar" into a number

3. parseInt function

parseInt('06'); // 6
parseInt('08'); // 0  注意,谷歌新版已修正
parseInt(null, 24) === 23 // true
Copy after login

4. Is null an object

typeof null  // object
null instanceof Object  // false
Copy after login

5. The content returned by return

function myjson()
{
   return
   [
     2
   ]
}
myjson();  // undefined
Copy after login

The content returned by return must be on the same line as return

6. Strange numbers

 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
Copy after login

7. Weird parameters

function hello(what) {
     alert(arguments[0]);    //vicky
     what = "world";
     return "Hello, " + arguments[0] + "!";
}
hello("vicky"); //"Hello, world!"
Copy after login

8. The head-scratching equal sign

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
Copy after login

That’s it For the entire content of this chapter, please visit JavaScript Video Tutorial for more related tutorials!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template