Изменение массива в функции JavaScript меняет массив вне функции?

Почему два сценария ведут себя по-разному? Я хочу использовать первый скрипт, но во второмdrawData() называть это изменениямиdata; это странно, а не то, чего я хочу. Второй скрипт не имеет этой проблемы. Почему так, и как я могу исправить первый скрипт?

Первый скрипт не меняетсяdata:

var data = ["right"];

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

Второй скрипт:

var data = "right";

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

Ответы на вопрос(2)

Ваш ответ на вопрос