. .
, , 1-, 2-, 3- .. , -: , , HTML ..
, . . .
, , Array.
:
let arr = new Array();
let arr = [];
. :
let fruits = ["", "", ""];
, .
, :
let fruits = ["", "", ""];
alert( fruits[0] ); //
alert( fruits[1] ); //
alert( fruits[2] ); //
:
fruits[2] = ''; // ["", "", ""]
:
fruits[3] = ''; // ["", "", "", ""]
length:
let fruits = ["", "", ""];
alert( fruits.length ); // 3
alert.
let fruits = ["", "", ""];
alert( fruits ); // , ,
.
:
//
let arr = [ '', { name: '' }, true, function() { alert(''); } ];
// 1 ()
alert( arr[1].name ); //
// 3 ()
arr[3](); //
, , :
let fruits = [
"",
"",
"",
];
/ , .
at
, .
, - : fruits[-1].
, JavaScript . undefined, .
, : fruits[fruits.length - 1].
let fruits = ["Apple", "Orange", "Plum"];
alert( fruits[fruits.length-1] ); // Plum
, ? .
, : fruits.at(-1):
let fruits = ["Apple", "Orange", "Plum"];
// , fruits[fruits.length-1]
alert( fruits.at(-1) ); // Plum
, arr.at(i):
- ,
arr[i],i >= 0. -
i, .
pop/push, shift/unshift
push.shift, , .
.
. , , .
:
push.pop.
, .
: :
JavaScript , . / , .
, :
pop-
:
let fruits = ["", "", ""]; alert( fruits.pop() ); // "" alert( fruits ); // ,fruits.pop()fruits.at(-1),fruits.pop(), . push-
:
let fruits = ["", ""]; fruits.push(""); alert( fruits ); // , ,fruits.push(...)fruits[fruits.length] = ....
, :
shift-
:
let fruits = ["", "", ""]; alert( fruits.shift() ); // alert( fruits ); // , unshift-
:
let fruits = ["", ""]; fruits.unshift(''); alert( fruits ); // , ,
push unshift :
let fruits = [""];
fruits.push("", "");
fruits.unshift("", "");
// ["", "", "", "", ""]
alert( fruits );
. , , arr[0] , obj[key], obj arr, .
, , length. .
, JavaScript 8 . , , .
, :
let fruits = [""]
let arr = fruits; // ( )
alert( arr === fruits ); // true
arr.push(""); //
alert( fruits ); // , -
, . JavaScript , , , . , .
, .
, :
let fruits = []; //
fruits[99999] = 5; // ,
fruits.age = 25; //
, . .
, , . , , , .
:
- , :
arr.test = 5. - , :
arr[0],arr[1000]( ). - , :
arr[1000],arr[999]..
, . . JavaScript , , , . , , {}.
push/pop , shift/unshift .
, ? , :
fruits.shift(); //
0 . .
shift 3 :
-
0. - , ,
10,21.. -
length.
, , , .
unshift: , , .
push/pop? . , pop length.
pop:
fruits.pop(); //
pop , . .
push.
for :
let arr = ["", "", ""];
for (let i = 0; i < arr.length; i++) {
alert( arr[i] );
}
, for..of:
let fruits = ["", "", ""];
//
for (let fruit of fruits) {
alert( fruit );
}
for..of , , . .
, , for..in:
let arr = ["", "", ""];
for (let key in arr) {
alert( arr[key] ); // , ,
}
. :
-
for..in, ., , . ,
length, , . ,for..in. , , , . -
for..in, , 10-100 . . .
, for..in .
length
length . , , .
, , , :
let fruits = [];
fruits[123] = "";
alert( fruits.length ); // 124
, .
length .
, . , , . , :
let arr = [1, 2, 3, 4, 5];
arr.length = 2; //
alert( arr ); // [1, 2]
arr.length = 5; // length
alert( arr[3] ); // undefined:
, arr.length = 0;.
new Array()
:
let arr = new Array("", "", " ");
, [] . , .
new Array , , , .
, :
let arr = new Array(2); // [2]?
alert( arr[0] ); // undefined! .
alert( arr.length ); // length 2
, , , new Array(number) undefined.
, , , , , - Array.
, . , , :
let matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
alert( matrix[1][1] ); // 5,
toString
- toString, , .
:
let arr = [1, 2, 3];
alert( arr ); // 1,2,3
alert( String(arr) === '1,2,3' ); // true
:
alert( [] + 1 ); // "1"
alert( [1] + 1 ); // "11"
alert( [1,2] + 1 ); // "1,21"
Symbol.toPrimitive, valueOf, toString, , [] , [1] "1", [1,2] "1,2".
"+" - , , :
alert( "" + 1 ); // "1"
alert( "1" + 1 ); // "11"
alert( "1,2" + 1 ); // "1,21"
==
JavaScript, , ==.
, , .
:
=== , .
, ==, , ,
:
alert( [] == [] ); // false
alert( [0] == [0] ); // false
. . == .
, , :
alert( 0 == [] ); // true
alert('0' == [] ); // false
, , . , [] ''.
// , [] ''
alert( 0 == '' ); // true, '' 0
alert('0' == '' ); // false, ,
?
: ==. , .
, .
:
// ()
let arr = [item1, item2...];
// new Array ( )
let arr = new Array(item1, item2...);
new Array(number) , .
-
length, , . . -
length, .
:
- ,
arr[0]. -
at(i),i, . ,arr[i],i >= 0.
, :
push(...items)items.pop().shift().unshift(...items)items.
:
for (let i=0; i<arr.length; i++), .for (let item of arr)( ).for (let i in arr)!
<code>, —<pre>, 10 — (plnkr, JSBin, codepen)