Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Результаты опроса: Какой вариант вам нравится больше ?
1й: стиль ES-5, и 2й вообще НЕ нравится 2 66.67%
2й: стиль ES-6, и 1й вообще НЕ нравится 0 0%
1й: стиль ES-5, НО 2й тоже ничего 1 33.33%
2й: стиль ES-6, НО 1й тоже ничего 0 0%
Голосовавшие: 3. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2016, 22:12   #11
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Ведь это же возможность языка программирования, а операция над кодом
так я про сборку кода/фронтенда (WebPack, ...), а не язык.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 26.10.2016, 22:50   #12
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
зачем прикручивать что-то, когда можно просто написать один и тот же код, понятным языком для всех и оно точно будет работать и на старых браузерах и на новых, и подаваться нормальной отладке и анализу до кучи оно работать будет быстрее. Молчу уже про всякие webpack которые грузят и задействуют туеву хучу ресурсов чтобы транслировать[ тебе максимум 20 файлов твоего кода (а то и всего проекта) на новомодном-современном (ES2015, ES6, ES7, что-там ещё?) в истинно-православный js.

Зачем? Просто напиши нормально, и это просто будет работать где угодно и как задумано тобой.
Если бы люди думали такой логикой, прогресс был бы нулевым. И писали бы мы сейчас все программы без исключения на истинном и православном Си. Чистом Си. Без плюсов.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 27.10.2016, 00:03   #13
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Я правильно понимаю, что ...
Если не вдаваться в подробности, то все верно.
В основном, проблема в облости видемости. (scope).

А "let" и другие "переводят", это декларирование в другое русло. И переменная ведет себя по другому.

На самом деле, это жесть, если вдуматься.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 27.10.2016, 21:01   #14
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
переменная x будет видна за пределами оператора if. Для C++ такое не будет верным. Я верно понимаю, что того эффекта в JS можно достичь с помощью директивы let?
да, верно, например в таком коде цикличная i никак не повлияет на i в глобальном контексте.

Код:
let i = 50;
let j = 5;
$('#c').append(`<p>global i = ${i}</p>`);
for (let i = 0; i < j; i++) {
$('#c').append(`<p>i = ${i}</p>`);
}
$('#c').append(`<p>global i again = ${i}</p>`);
https://jsfiddle.net/p961wmqb/1/

Цитата:
То есть теперь, чтобы получить "мульистроку", мы можем разбить строковый литерал на несколько строк?
да, просто:
Код:
console.log(`
многострочность:
строка 1
строка 2
строка 3
..
и никаких \\n
`);

Последний раз редактировалось Человек_Борща; 27.10.2016 в 21:15.
Человек_Борща вне форума Ответить с цитированием
Старый 28.10.2016, 03:19   #15
rlib
Форумчанин
 
Аватар для rlib
 
Регистрация: 22.05.2012
Сообщений: 352
По умолчанию

Цитата:
Сообщение от pompiduskus Посмотреть сообщение
Только про прочитал на хабре интересную статью, про новые фишки ECMы.
В целом, очень даже ничего. Но некоторые вещи просто жесть. Может я старею.

Это из статьи.

ВАРИАНТ [1]: ES5
PHP код:

function settings() {
  return { 
display: { color'red' }, keyboard: { layout'querty'} };
}

var 
tmp settings();
var 
displayColor tmp.display.color;
var 
keyboardLayout tmp.keyboard.layout;

console.log(displayColorkeyboardLayout); // red querty 
ВАРИАНТ [2]: ES6
<<То же самое (но короче):>> говорит автор.
PHP код:

function settings() {
  return { 
display: { color'red' }, keyboard: { layout'querty'} };
}

const { 
display: { colordisplayColor }, keyboard: { layoutkeyboardLayout }} = settings();

console.log(displayColorkeyboardLayout); // red querty 
Хотелось бы услышать ваше мнение. Какой код вам больше нравится ?

// https://habrahabr.ru/post/313526/
Пишу джва года на ноде алготрейдинговую систему, даже не знаю как раньше писали без ЕС6.


Es6:
Код:
function fetchAsync (url, timeout, onData, onError) {
    …
}
let fetchPromised = (url, timeout) => {
    return new Promise((resolve, reject) => {
        fetchAsync(url, timeout, resolve, reject)
    })
}
Promise.all([
    fetchPromised("http://backend/foo.txt", 500),
    fetchPromised("http://backend/bar.txt", 500),
    fetchPromised("http://backend/baz.txt", 500)
]).then((data) => {
    let [ foo, bar, baz ] = data
    console.log(`success: foo=${foo} bar=${bar} baz=${baz}`)
}, (err) => {
    console.log(`error: ${err}`)
})
старенькая :

Код:
function fetchAsync (url, timeout, onData, onError) {
    …
}
function fetchAll (request, onData, onError) {
    var result = [], results = 0;
    for (var i = 0; i < request.length; i++) {
        result[i] = null;
        (function (i) {
            fetchAsync(request[i].url, request[i].timeout, function (data) {
                result[i] = data;
                if (++results === request.length)
                    onData(result);
            }, onError);
        })(i);
    }
}
fetchAll([
    { url: "http://backend/foo.txt", timeout: 500 },
    { url: "http://backend/bar.txt", timeout: 500 },
    { url: "http://backend/baz.txt", timeout: 500 }
], function (data) {
    var foo = data[0], bar = data[1], baz = data[2];
    console.log("success: foo=" + foo + " bar=" + bar + " baz=" + baz);
}, function (err) {
    console.log("error: " + err);
});

Последний раз редактировалось rlib; 28.10.2016 в 03:22.
rlib вне форума Ответить с цитированием
Старый 28.10.2016, 12:16   #16
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

Цитата:
Es6 .. старенькая
что то особо разницы и не увидел
come-on вне форума Ответить с цитированием
Старый 28.10.2016, 12:46   #17
rlib
Форумчанин
 
Аватар для rlib
 
Регистрация: 22.05.2012
Сообщений: 352
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
что то особо разницы и не увидел


Код:
for(std::vector<T>::iterator it = x.begin(); it != x.end(); i++)
{
   it->something();
}

for(auto it = x.begin(); it != x.end(); i++)
{
   it->something();
}
Тут тоже немного разницы, но ведь приятно

Последний раз редактировалось rlib; 28.10.2016 в 12:52.
rlib вне форума Ответить с цитированием
Старый 28.10.2016, 17:59   #18
pompiduskus
юзер как все
Участник клуба
 
Аватар для pompiduskus
 
Регистрация: 10.01.2012
Сообщений: 1,586
По умолчанию

Да. Разница есть. Вот такие реальные примеры воспринемаются лучше. Сразу понятна разница.
<Дзен - Вся вселенная в тебе > | Резюме: https://ch3ll0v3k.github.io/CV/
pompiduskus вне форума Ответить с цитированием
Старый 28.10.2016, 18:07   #19
come-on
Участник клуба
 
Регистрация: 21.10.2015
Сообщений: 1,361
По умолчанию

где вы разницу видите о_О
я вижу в скрипте разницу в подходе а не в языке, в си или что там.. даже не смотрю
come-on вне форума Ответить с цитированием
Старый 28.10.2016, 20:22   #20
rlib
Форумчанин
 
Аватар для rlib
 
Регистрация: 22.05.2012
Сообщений: 352
По умолчанию

Цитата:
Сообщение от come-on Посмотреть сообщение
где вы разницу видите о_О
я вижу в скрипте разницу в подходе а не в языке, в си или что там.. даже не смотрю
Старое:

Код:
app.post("/purchase", (req, res) => {
    user.findOne(req.body, (err, userData) => {
        if (err) return handleError(err);
        permissions.findAll(userData, (err2, permissions) => {
            if (err2) return handleError(err2);
            if (isAllowed(permissions)) {
                transaction.process(userData, (err3, confirmNum) => {
                    if (err3) return handleError(err3);
                    res.send("Your purchase was successful!");
                });
            }
        });
    });
});
ES6:

Код:
import co from 'co';
app.post("/purchase", (req, res) => {
    co(function* () {
        const person = yield user.findOneAsync(req.body);
        const permissions = yield permissions.findAllAsync(person);
        if (isAllowed(permissions)) {
            const confirmNum = yield transaction.processAsync(user);
            res.send("Your transaction was successful!")
        }
    }).catch(err => handleError(err))
});
Тут тоже разные подходы?
rlib вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Счет остатков! creshik SQL, базы данных 0 20.12.2012 17:40
Счет количесва. Predator199 JavaScript, Ajax 1 09.09.2012 22:25
СЧЕТ Макавели Microsoft Office Excel 2 28.02.2012 15:53
Счет Alex_sim Общие вопросы C/C++ 4 10.06.2010 11:28
Счет букв zenner Microsoft Office Excel 14 24.10.2009 00:26