2013-07-14 4 views
4

Удивленный, чтобы узнать, что линия, как это:Инлайн `` ++ в Javascript не работает

$('#TextBox').val(parseInt($('#TextBox').val())++); 

не будет работать!

Я проделал некоторые тесты, он выносит заключение о том, что inline ++ не работает (в Javascript в целом или просто в моем примере?).

Вот test with three pieces of code, кажется, что ++ в порядке с переменной, но не встроенной.

Итак, нет встроенного ++ для нас в Javascript?

+6

Это не то, как работает '++'. Что случилось с '+ 1'? –

+1

Ну, нет ++ для вызовов функций ... – DerWaldschrat

+0

@ 32bitkid: ничего плохого, просто проверяйте здесь. – Akheloes

ответ

8

Нет ничего особенного в jQuery об этом. ++ увеличивает значение переменной. Вы пытаетесь увеличить возвращаемое значение вызова функции.

+0

Да. ++ - это оператор, который применяется только к переменным и свойствам объектов. –

+0

тогда почему 'parseInt ($ ('# TextBox'). Val()) + 1' отлично работает? – Akheloes

+2

@Gloserio '++' выполняет _assignment_, где вы меняете значение свойства/переменной здесь? По той же причине '1 ++' не работает и '1 + 1' делает. См. [Спецификация языка в операторе Postfix increenset] (http://es5.github.io/#x11.3.1). –

0

++ работа по переменным, а не непосредственно на номере

var c = parseInt($('#TextBox').val()); 
$('#TextBox').val(++c); 

Изменения порядка от

var x = 0; 

var result = x++; 

result // 0 

Для

var x = 0; 

var result = ++x; 

result // 1 

Тогда будет оценивать ++ перед извлечением значения.

4

Вопрос: Что означает x++?

A:x++ означает принимать значение x, давайте назовем это n, а затем установить x быть n + 1, а затем вернуться n.

Вопрос: Зачем это происходит при непеременной?

A: Давайте попробуем это на что-то простое, скажем 3 и посмотрим, где все пойдет не так.

  1. Возьмите значение 3 и назовите его n, хорошо, n = 3

  2. Набор 3 быть n + 1, так 3 = 3 + 1, 3 = 4 это не имеет никакого смысла! Поэтому, если этот шаг не может быть выполнен, нельзя использовать оператор ++.

+0

Lols, я даже на самом деле даже сделаю вас еще более сумасшедшим, если скажу, что знаю это: p – Akheloes

+0

+1 anyways, thanks :)! – Akheloes

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