return в тернарных операторах
по этому заданию http://learn.javascript.ru/task/truncate
через обычные if'ы конечно решаемо, но вот для интереса хотел решить тернарным. Код такой function truncate(str, maxlength){ (str.length>maxlength) ? return str.slice(0,17)+"..." : return str; } Из гугла я понял, что в тут уже подразумевается return, т.е. получается return return str.slice(0,17)+"...". Но если я не напишу свой return,тогда из функции не вылавливается значение каким-нибудь console.log() Как быть в такой ситуации? |
всё, подглянул в решение, return ставить перед условием
return (str.length>maxlength) ? str.slice(0,17)+"..." : str; |
с точки зрения спецификации, это объясняется это тем, что инструкция return никаким боком не может войти в выражение присваивания
http://es5.javascript.ru/x11.html#x11.12 Цитата:
|
Часовой пояс GMT +3, время: 04:20. |