javascript作用域问题

PHP代码:

<?php
$key = [1,2];
function add($key){
    array_push($key,'dddss');
    print_r($key);
}
add($key);
print_r($key);

输出

Array
(
    [0] => 1
    [1] => 2
    [2] => dddss
)
Array
(
    [0] => 1
    [1] => 2
)

JS代码:

var $key = [1,2];
function addkey($key){
    let hello = $key;
    hello.push(9)
    console.log(hello)
    console.log($key)
}
addkey($key)
console.log($key)

输出:

[ 1, 2, 9 ]
[ 1, 2, 9 ]
[ 1, 2, 9 ]       

我想要的是函数内的处理不影响函数外,也就是类似于PHP的结果,也想知道什么原因

查看回复