{{announcement.body}}
{{announcement.title}}

DZone 's Guide to

Sometimes, JavaScript gets a bad rap as being hard to learn. Well, in this article, we don't really help to dispell this notion. Take a look at some of the quirks of JS!

· Web Dev Zone ·
Free Resource

Comment (1)

Save
{{ articles[0].views | formatCount}} Views

Arguments Object

The arguments object is an Array-like object corresponding to the arguments passed to a function.

``````function argumentFunction(){
console.log(arguments[0]);
console.log(arguments[1]);
console.log(arguments[2]);
}
argumentFunction("1","2","3");``````
Output:
1
2
3

``````function Add() {
var sum = 0;
for(var j = 0; j < arguments.length; j++) {
sum += arguments[j];
}
return sum;
}
Add(1, 2, 3, 4); // returns 10``````

Note: It is not an array, however, it is similar to an array and it has a length property in it.

Importance of { }

``````function method1() {
return
{
name: 'foo'
}
}
function method2() {
return {
name: 'foo'
}
}
typeof method1() === typeof method2()   // return false``````

The first function returns undefined and the second method will return the object as expected. Parentheses play a major role, so they should be handled with caution.

Note: it's good practice to put the opening parentheses on the same line you're working on.

Floating Number :

``````0.1+0.2  //0.30000000000000004
0.1+0.3  //0.4
0.2+0.4  //0.6000000000000001
0.2+0.5  //0.7
0.3+0.6  //0.8999999999999999
0.3+0.7  //1``````

Try 0.1+0.2 in your JavaScript environment and it will not return 0.3, however, 0.1+0.3 will return 0.4.

0.1+0.2 == 0.3 will return false, so we should be careful.

Sum of Arrays and Objects :

``````{} + [] // 0
[] + {} // "[object Object]"
[] + [] // ""
{} + {} // "[object Object][object Object]"``````

From the above code, we can come to a conclusion that:

``{} + []  == [] + {} // returns false.``

These are some of the weird facts about JavaScript. However, there are many and if you find anything weird, please share it in the comment section.

Next Article:  http://www.nodesimplified.com/2017/08/javascript-pass-by-value-and-pass-by-reference.html

Topics:
javascript ,web dev ,arguments ,arrays ,objects

Comment (1)

Save
{{ articles[0].views | formatCount}} Views

Published at DZone with permission of Raghuraman Kesavan , DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.