Uncaught SyntaxError: Неожиданный токен = в Google Chrome

У меня есть функция javascript, которая принимает необязательный параметр. Это отлично работает в Firefox, но в Google Chrome он показывает: -

Uncaught SyntaxError: Unexpected token =

Мой код,

function errorNotification(text = "Something went wrong!") {
  $.pnotify({
      title: 'Error',
      text: text,
      type: 'error'
  });
}

Я видел много похожих вопросов, но я не могу понять свою проблему.

Ответы

Ответ 1

Вы используете параметр по умолчанию, который теперь поддерживается только Firefox.

function errorNotification(text) {
    text = text || "Something went wrong!";
    $.pnotify({
        title: 'Error',
        text: text,
        type: 'error'
    });
}

Ответ 2

Javascript не позволяет передавать аргументы по умолчанию. Вам необходимо назначить значение по умолчанию для функции.

function errorNotification(text) {
  text || (text = "Something went wrong!");
  $.pnotify({
      title: 'Error',
      text: text,
      type: 'error'
  });
}

Ответ 3

Примечание. Другие ответы не будут работать, если у вас есть логическое значение, которое вы хотите по умолчанию: true. Это потому, что anything||true всегда будет возвращать true. Вместо этого вы должны сделать что-то вроде:

function foo(bar){
  if(bar === undefined)
    bar = true;
  //rest of your function
}

Ответ 4

function [a-zA-Z0-9_]*?\s{0,}\([^=$)]*?(=)[^)$]*?\) может оказаться полезным найти js-функции с параметром по умолчанию и затем исправить их.