2016-03-15 6 views
-2

Рассмотрим следующие примеры:Перемещение переменных и параметров функций?

function a(a){ 
    console.log(a); 
    function a(){} 
    var a=7; 
    console.log(a); 
} 
a(10) 

Так почему же первая печать является функцией, а не 10;

+2

Именно поэтому * грузоподъемность *. Вы используете это слово, но, похоже, вы не изучили, что это значит ...?! – deceze

+0

Я знаю подъем, но когда есть параметр функции, я буду путать. –

ответ

1

декларации функции анализируются на само время компиляции, и заявления перемещаются в начало функции, как этот

function a(a) { 
    var a = function a() {}; 
    console.log(a); 
    a = 7; 
    console.log(a); 
} 
a(10) 

Вот почему вы получаете [Function: a] или что-то подобное в первом console.log. Когда выполняется строка a = 7;, a присваивается значение 7. Вот почему второй console.log печатает 7.

+0

Когда функция выполняется, параметры функции - это как разбираться? –

+0

@SIMDD Они похожи на переменную, объявленную внутри функции. – thefourtheye

+0

Но в этом примере после подъема не были указаны назначенные параметры функции? –

 Смежные вопросы

  • Нет связанных вопросов^_^