Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос насчет массива (нач уровень) (https://javascript.ru/forum/misc/75648-vopros-naschet-massiva-nach-uroven.html)

0pozzum0 26.10.2018 18:19

Вопрос насчет массива (нач уровень)
 
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
const foo = [1, 2, 5, 6];
const bar = foo;

bar[0] = 9;

console.log(bar[0], bar[1], bar[2], foo[0]); // => 9 2 5 9
</script>
</body>
</html>

почему последняя цифра 9 ? разве не должно быть 6 т.к массив foo остается прежним

j0hnik 26.10.2018 18:44

у массивов тип данных объект, данные передаются по ссылке
https://www.youtube.com/watch?v=4oud...eWwem&index=21

первые две минуты посмотрите

Dilettante_Pro 26.10.2018 18:48

bar - ссылка на массив foo
var foo = [1, 2, 5, 6];
var bar = foo;

bar[0] = 9;

alert(foo);

bar - новый массив
var foo = [1, 2, 5, 6];
var bar = foo.slice();
// или foo.concat();
bar[0] = 9;

alert(foo);
alert(bar);

(Поставил var, т.к. с const не запускается повторно демонстрашка)


Часовой пояс GMT +3, время: 04:31.