a = [1, 2, 3]
Array(3) [ 1, 2, 3 ]

a[2]
3
a.push(40)
4
a
Array(4) [ 1, 2, 3, 40 ]

a.slice(1, 2)
Array [ 2 ]

// a[1:2]
undefined
a.slice(1)
Array(3) [ 2, 3, 40 ]

// a[1:]
undefined
a.slice() // копия
Array(4) [ 1, 2, 3, 40 ]

// a[:]
undefined
a.splice(2, 1, 31, 32, 33)
Array [ 3 ]

a
Array(6) [ 1, 2, 31, 32, 33, 40 ]

// splice изменила a
// с какого индекса удалить
// сколько удалить
// какие эл-ты вставить
undefined
o = {x: 1, y: 2, z: "abc"}
Object { x: 1, y: 2, z: "abc" }

//ввели объект o
undefined
o.x
1
o['x']
1
// второй вариант как в dict в python
undefined
// первый вариант как поле объекта
undefined
o.f = true
true
o
Object { x: 1, y: 2, z: "abc", f: true }

balls = [{x: 10, y: 20, vx: 5, vy: -5}, {x: 40, y: 50, vx: 10, vy: -5}]
(2) […]
​
0: Object { x: 10, y: 20, vx: 5, … }
​
1: Object { x: 40, y: 50, vx: 10, … }
​
length: 2
​
<prototype>: Array []

balls[0]
Object { x: 10, y: 20, vx: 5, vy: -5 }

balls[1]
Object { x: 40, y: 50, vx: 10, vy: -5 }

balls[0].x
10
// перебор элеметов массива
undefined
// в браузерном JS работает только перебор по индексу:
undefined
for (int i = 0; i < balls.length; i++)
Uncaught SyntaxError: missing ; after for-loop initializer debugger eval code:1:9
for (int i = 0; i < balls.length; i++)
    console.log(balls[i])
Uncaught SyntaxError: missing ; after for-loop initializer debugger eval code:1:9
for (let i = 0; i < balls.length; i++)
    console.log(balls[i])
Object { x: 10, y: 20, vx: 5, vy: -5 }
debugger eval code:2:10
Object { x: 40, y: 50, vx: 10, vy: -5 }
debugger eval code:2:10
undefined
for (let ball of balls)
  console.log(ball)
{…}
​
vx: 5
​
vy: -5
​
x: 10
​
y: 20
​
<prototype>: Object { … }
debugger eval code:2:11
Object { x: 40, y: 50, vx: 10, vy: -5 }
debugger eval code:2:11
undefined
// can i use: for-of узайте в каких браузерах работает
undefined

// a.forEach() -- см. сами