Alterar matriz na função JavaScript altera a matriz fora da função?

Por que os dois scripts se comportam de maneira diferente? Eu quero o para usar o primeiro script, mas no segundodrawData() chame de mudançasdata; É estranho e não o que eu quero que aconteça. O segundo script não tem esse problema. Por que é assim e como posso consertar o primeiro script?

Primeiro script não mudadata:

var data = ["right"];

function drawData(arrs, type) {
    if (type == "percentage") {
        arrs[0] = "omg";
    }
    alert(data[0]); // Changed!?
}
drawData(data);
drawData(data, "percentage");

Segundo script:

var data = "right";

function drawData(arrs, type) {
    if (type == "percentage") {
        arrs = "omg";
    }
    alert(data); // OK, not changed.
}
drawData(data);
drawData(data, "percentage");

questionAnswers(2)

yourAnswerToTheQuestion