Home >Web Front-end >JS Tutorial >A brief discussion on data type conversion in javascript
1. Convert other data types to number types
Number()->strict
parseFloat/parseInt ->non-strict
isNaN(value ) If the value is not of numeric type, it first calls Number to convert to numeric type and then determines whether it is a valid number
For example:
Number("12px"); ->NaN
parseInt("12px"); ->12
isNaN("12"); ->false
Rule:
1) If the Boolean type is converted to a number, true->1 false->0
2) Convert null/undefined to a number null->0 undefined->NaN 10+null= 10 10+undefined=NaN
3) To convert [] to a number, first call the toString method of the array to convert []->"", and then use the Number method to convert ""->0
2. Convert other data types to Boolean types
Boolean
!!
! First convert to Boolean type, and then invert
For example:
!!1->true
!!0->false
![]->false !![]-> true
Law:
Only 0, NaN, null, undefined, and "" are false when converted to Boolean types, and the rest of the conversions are true
Special case:
If there is only a single value in your conditional judgment, it first converts 1 to Boolean type (->true), and then judges whether it is true or false. If the true condition is established, On the contrary, the condition is not true
if (1) { } if ("3px" * 3) {//->条件不成立 "3px" * 3=NaN ->false } if ("3px" + 3) {//->条件成立 "3px" + 3="3px3" ->true }
"+" is not only a mathematical operation in JS, but also a string concatenation when it encounters a string
"-, *, /" can only be mathematical operations in JS. When encountering non-number types, they must be forced to be converted to numbers for mathematical operations
3. Compare two values (== for comparison, ===No default conversion will be performed if the comparison data types are different). If the data types of the left and right sides are different, we need to follow a set of rules and perform default data type conversion
value1==value2
1) Object==Object compares the memory address stored by itself. If the memory addresses are different, they are not equal []==[]->false Each empty array is a separate memory address
2) Object == String Call the toString method to convert the object to a string []==""->true
3) Object == Boolean The object is converted to a number (toString- Number), Boolean is also converted to number (true->1 false->0)
[]==false ->true []->0 false->0 0==0 ->true
![]==false -> ![]Convert the empty array to Boolean type first and then negate it->false false==false->true
4) Object == Number Object converted to number []==0->true []==1->false
5) String == Boolean Both converted to number " 3"==true->false "1"==true->true
6) String == number String converted to number ""==0->true
7)Boolean==Number Convert Boolean to number true==1->true true==2->false
8)null==undefined ->true null===undefined - >false
null/undefined is not equal to any other value null==0->false
9)NaN==NaN ->false NaN and any value ( Including myself) are not equal
The above is the entire content of this article. I hope that the content of this article can bring some help to everyone's study or work. I also hope to support the PHP Chinese website!
For more articles on data type conversion in JavaScript, please pay attention to the PHP Chinese website!