Destructuring assignment для 2х переменных
Может баян, что-то в голову стукнуло, раньше не видел, чтобы так делали:
[x, y] = [y, x] //эквивалентно x = [y, y = x][0] если убрать пробелы, получается на 1 символ больше |
Ога, тож недавно в статье на хабре эту фичу вычитал.)
|
хороший трюк! можно ссыль на статью?
|
усложнимс примерчик :)
var a=1, b=2, c=3, d=4; d = [a, a=d, d=b, b=c, c=d][0]; alert([a, b, c, d]); таки забавно) |
ага, только читается плохо)
|
Цитата:
Можно еще так делать: let { x: f, y?: z } = { x: 'z' }; |
Всмысле смущает? Я функцию для расчета промежутка времени между датами писал и не захотел переменную заводить, чтобы поменять даты местами, начал думать, как без переменной обойтись и пришол к такому варианту. Так как не видел раньше такого приема, решил сюда запостить, но Aetae говорит, что об этом на хабре писали.
|
http://habrahabr.ru/post/119898/
Оказывается это натыкался я недавно, а статья ажно '11 года.=) |
Видимо без знания о destructuring assignment такая запись в 2011 году никому не понравилась :)
Хотя на mdn как бы не раньше появились примеры с этими [x,y]=[y,x] |
Цитата:
|
|
nerv_, ну так.)
Из той статьи собсно в нормальной практике только фича с массивом и применима.) |
Я обычно в php использую $arr как обозначение "временного" массива на коротких дистанциях. Применять на больших кусках текста конечно вредно, но на коротких
"писать_много_букв_для_того_чтобы_в_7_строках_собрать_временный_массив_неудобно." Еще есть $s, $s2, $3 и т.д. от вложенности :) Названия не имеют значения т.к. рядом лежит запрос. В остальном полностью согласен. Старая привычка php-одить, когда php дико тупило, если переменная была более 7 символов. Единственная однобуквенная переменная которую я использую это q в corn. Ничего плохого в ней не нахожу. Corn правда консольная библ-а. В составе другой библ-ы она присутствует тоже как одна буква + namespace библ-ы. Использовать транслит в программировании зло. Называя переменные англ. словами ты учишь язык. По поводу повторного использования имен - каюсь. Больше так делать не буду, сам сомневался в разумности, было местами лень. |
Цитата:
|
Кстати по поводу перекрытия имен переменных не понимаю порой как это можно избежать. Да по возможности, может и нужно, но причины особой не вижу - функция - есть замыкание, посему у нее свои переменные, то, что выше по контексту - выше по контексту.
|
Часовой пояс GMT +3, время: 18:55. |