Подтвердить что ты не робот

Операторы Javascript a = b = c

Я искал в интернетах, но не нашел подходящих критериев поиска, поэтому я подумал, что это будет лучшее место, чтобы спросить.

У меня есть утверждение JS, говорящее

document.location.hash = this.slug = this.sliceHashFromHref(href)

Как это работает?

4b9b3361

Ответ 1

Его получают от справа налево. iee

document.location.hash = this.slug = this.sliceHashFromHref(href)

вывод/значение

this.sliceHashFromHref(href)

присваивается document.location.hash = this.slug

Ответ 2

Как это работает?

a = b можно рассматривать как выражение и выражение .

Результат выражения b.

Другими словами,

a = b = c;

который можно записать как

a = (b = c);

эквивалентно

b = c;
a = b;

Таким образом, ваш код эквивалентен:

this.slug = this.sliceHashFromHref(href);
document.location.hash = this.slug;

Ответ 3

Довольно легко... Он присваивает результат от вызова this.sliceHashFromHref(href) как к document.location.hash, так и к this.slug, поэтому оба свойства (переменные) содержат одно и то же значение после выполнения строки.

Ответ 4

Имейте в виду область переменных!!

var A = B = C = 3; //A is local variable while B & C are global variables;
var A = 3 , B = 3, C = 3;// A B C are local variables;

Ответ 5

В Javascript (и нескольких других языках, которые выводят свой синтаксис из C) присваивание оценивает элемент справа от символа = и присваивает его переменной слева. Элемент справа сам по себе может быть заданием с оператором =. Что происходит, так это вычисление самого правого выражения, значение, присвоенное средней переменной, а затем это значение присваивается переменной слева.

Короче говоря, это просто способ присвоить значение сразу нескольким переменным.