Значение параметра по умолчанию в стрелочной функции

Я новичок в ES6 Javascript, что означает, что я изучаю его. Мне нравится функция стрелки и функция параметра по умолчанию из ES6, которая упоминается на сайте ниже.

http://es6-features.org/#ExpressionBodies
http://es6-features.org/#DefaultParameterValues

Ниже приведен фрагмент кода ES6, и я протестировал его в Chrome 47. Я пытаюсь указать значение параметра по умолчанию для моей функции стрелки, которая в настоящее время выдает ошибку, например

<script type="text/javascript">
  'use strict';
  var greet = (name = 'Venkat') => (console.log('Hi ' + name + '!'));
  greet(); // expected output: Venkat
  greet('Venkatraman'); // expected output: Venkatraman
</script>

Дайте мне знать, возможно ли это, если да, объясните с решением и что я здесь делаю неправильно.


person Community    schedule 18.12.2015    source источник
comment
Chrome 47 пока не поддерживает параметры по умолчанию (48 поддерживает, хотя и под экспериментальным флагом). Ваш код действителен для ES6, поэтому Babel отлично работает.   -  person CodingIntrigue    schedule 18.12.2015
comment
предоставить простую настройку babeljs для переноса этого кода   -  person    schedule 18.12.2015


Ответы (2)


Нет, это невозможно (пока, я полагаю). Что вы можете сделать:

var greet = name => console.log('Hi ' + (name || 'Venkat') + '!');
greet(); // output: Venkat
greet('Venkatraman'); // output: Venkatraman

Попробуйте здесь

[январь 2018 г.] Я полагаю, что значение параметра по умолчанию теперь поддерживается во всех основных браузерах.

person KooiInc    schedule 18.12.2015
comment
Спасибо за ваше решение. что произойдет, если у меня есть 4 переменные внутри функции. это увеличит количество строк кода. - person ; 18.12.2015
comment
Ага. Нам придется жить с этим, пока не появится полная поддержка значений параметров по умолчанию. - person KooiInc; 18.12.2015

Кажется, это поддерживается только в Firefox

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Default_parameters

person teshvenk    schedule 18.12.2015
comment
Да, ты прав. я тестировал код. это работает ! мой план состоит в том, чтобы изучить и реализовать совместимый с браузером фрагмент для вышеуказанной проблемы! - person ; 18.12.2015