mozilla

Compare Revisions

Predefined Core Objects

Change Revisions

Revision 47754:

Revision 47754 by fusionchess on

Revision 47755:

Revision 47755 by xkizer on

Title:
Predefined Core Objects
Predefined Core Objects
Slug:
JavaScript/Guide/Predefined_Core_Objects
JavaScript/Guide/Predefined_Core_Objects
Tags:
JavaScript, NeedsTechnicalReview, NeedsEditorialReview
JavaScript, NeedsTechnicalReview, NeedsEditorialReview
Content:

Revision 47754
Revision 47755
nn42 
43// This has exactly the same effect
44var arr = [];
45arr.length = arrayLength;
nn47    <p>
48      Note: in the above code, <code>arrayLength</code> must be a
 > <code>Number</code>. Otherwise, an array with a single element (
 >the provided value) will be created. Calling <code>arr.length</co
 >de> will return <code>arrayLength</code>, but the array actually 
 >contains empty (undefined) elements. Running a for...in loop on t
 >he array will return none of the array's elements.
43    <p>49    </p>
50    <p>
44      In addition to a newly defined variable as shown above, Arr51      In addition to a newly defined variable as shown above, Arr
>ays can also be assigned as a property of an existing object:>ays can also be assigned as a property of a new or an existing ob
 >ject:
nn57 
58// OR
59var obj = {prop: [element0, element1, ...., elementN]}
n51    <p>n
52      If you wish to initialize an array with a single element, y
>ou must use the bracket syntax. When only one value is passed to  
>the Array() constructor, it is interpreted as an arrayLength, not 
> as a single element. 
53    </p>61    <p>
62      If you wish to initialize an array with a single element, a
 >nd the element happens to be a <code>Number</code>, you must use 
 >the bracket syntax. When a single <code>Number</code> value is pa
 >ssed to the Array() constructor or function, it is interpreted as
 > an <code>arrayLength</code>, not as a single element.
54    <p>63    </p>
64    <pre>
55      <code>var arr = [42];<br>65<code>var arr = [42];
56      var arr = Array(42); // Error: 42 interpreted as arrayLengt66var arr = Array(42); // Creates an array with no element, but wit
>h</code>>h arr.length set to 42
67 
68// The above code is equivalent to
69var arr = [];
70arr.length = 42;
71</code>
72</pre>
57    </p>73    <p>
74      Furthermore, if you are creating an array with a single ele
 >ment, and the element happens to be a non-whole <code>Number</cod
 >e> (a number with a non-trivial floating part), a <code>RangeErro
 >r</code> is thrown. If there is a possibility that your code will
 > be creating arrays with single elements, with arbitrary data typ
 >e, it is safer to use array literals, or create an empty array fi
 >rst and then fill it up.
75    </p>
76    <pre>
77var arr = Array(9.3);  // RangeError: Invalid array length
78</pre>
nn86var emp = [];
nn92      <strong>Note:</strong> if you supply a non-integer value to
 > the array operator in the code above, a property will be created
 > in the object representing the array, instead of an array elemen
 >t.
93    </p>
94    <pre>
95var arr = [];
96arr[3.4] = "Oranges";
97console.log(arr.length);                // 0
98console.log(arr.hasOwnProperty[3.4]);   // true
99</pre>
100    <p>
nn105var myArray = ["Mango", "Apple", "Orange"]
nn119    <p>
120      <strong>Note:</strong> the array operator (square brackets)
 > is also used for accessing the array's properties (arrays are al
 >so objects in JavaScript). For example,
121    </p>
122    <pre>
123var arr = ["one", "two", "three"];
124arr[2];  // three
125arr["length"];  // 3
126</pre>
n91      At the implementation level, JavaScript's arrays actually sn131      At the implementation level, JavaScript's arrays actually s
>tore their elements as standard object properties, using the arra>tore their elements as standard object properties, using the arra
>y index as the property name. The <code>length</code> property is>y index as the property name. The <code>length</code> property is
> special; it always returns the index of the last element. Rememb> special; it always returns the index of the last element. Rememb
>er, Javascript Arrays are 0-based: they start at 0, not 1. This m>er, Javascript Array indexs are 0-based: they start at 0, not 1. 
>eans that the <code><code>length</code></code> property will be o>This means that the <code><code>length</code></code> property wil
>ne more than the&nbsp;highest index stored in the array:>l be one more than the&nbsp;highest index stored in the array:
n103print(cats.length); // 3n143console.log(cats.length); // 3
n106print(cats); // prints "Dusty,Misty" - Twiggy has been removedn146console.log(cats); // prints "Dusty,Misty" - Twiggy has been remo
 >ved
n109print(cats); // prints nothing; the cats array is emptyn149console.log(cats); // prints nothing; the cats array is empty
150 
151cats.length = 3;
152console.log(cats);  // [undefined, undefined, undefined]
n120  alert(colors[i]);n163  console.log(colors[i]);
n144  alert(color);n187  console.log(color);
n148      The function passed to <code>forEach</code> is executed oncn191      The function passed to <code>forEach</code> is executed onc
>e for every item in the array, with the array item passed as the >e for every item in the array, with the array item passed as the 
>argument to the function.>argument to the function. Unassigned values are not iterated in a
 > <code>forEach</code> loop.
192    </p>
193    <p>
194      Since JavaScript elements are saved as standard object prop
 >erties, it is not advisable to iterate through JavaScript arrays 
 >using for...in loops because normal elements and all enumerable p
 >roperties will be listed.
n208        <a href="/en/JavaScript/Reference/Global_Objects/Array/spn254        <a href="/en/JavaScript/Reference/Global_Objects/Array/sp
>lice" title="en/Core JavaScript 1.5 Reference/Global Objects/Arra>lice" title="en/Core JavaScript 1.5 Reference/Global Objects/Arra
>y/splice"><code>splice(index, count_to_remove, addelement1, addel>y/splice"><code>splice(index, count_to_remove, addelement1, addel
>ement2, ...)</code></a> adds and/or removes elements from an arra>ement2, ...)</code></a> removes elements from an array and (optio
>y.>nally) replaces them.<br>
n230          <code>sort()</code> can also take a callback function tn276          <code>sort()</code> can also take a callback function t
>o determine how array content is sorted. The function compares tw>o determine how array elements is compared. The function compares
>o values and returns one of three values:> two values and returns one of three values:
n356      Two-Dimensional Arraysn402      Multi-Dimensional Arrays
tt404    <p>
405      Arrays can be nested, meaning that an array can contian ano
 >ther array as an element. Using this characteristic of JavaScript
 > arrays, multi-dimensional arrays can be created.
406    </p>

Back to History