#javascript #parameters #special-characters
#javascript #параметры #специальные символы
Вопрос:
В моем заголовке я использую функцию
function changefinal(text)
{
if (text == ".")
{
final = final ".";
}
}
Но когда я вызываю функцию как changefinal(.), моя конечная переменная не меняется. Не уверен, что я здесь делаю не так. Я неправильно определяю параметр?
Комментарии:
1. Когда и как
final
определяется?
Ответ №1:
Вы должны заключать свои символы в кавычки. В JavaScript символ двойной кавычки имеет тот же эффект, что и символ одинарной кавычки. Когда вы цитируете что-то в JavaScript, содержимое внутри цитаты интерпретируется буквально, а созданный объект представляет собой строку.
changefinal(".");
changefinal('.');
Если вам когда-либо придется использовать буквальную кавычку внутри той же цитаты (пример "
внутри "..."
), префикс внутренней кавычки с помощью обратной косой черты, чтобы избежать кавычки:
var string = 'I'm Rob W.';
alert(string); //shows: I'm Rob W.
var attempt = 'I'm Rob W.'; //Notice: No backslash
^ Syntax error
Комментарии:
1. @user782311 Этот код работает. Ваша проблема находится где-то в другом месте.
2. хорошо, я использую onclick для вызова функции <form action=»» method=»get»> onclick=» changefinal(‘.’)» /> это как-то связано с этим?
3. Для вашей переменной
final
установлено значениеfinal "."
. Где вы обрабатываетеfinal
переменную?4. final объявляется ранее как var final = «»;
5. В глобальной области видимости (= не в функции?). Я имел в виду, как вы узнали, что «Это не работает»? Вы должны были где-то проверить переменную. Как вы это сделали?
Ответ №2:
Ну
changefinal(.);
это синтаксическая ошибка. Вы, вероятно, хотите
changefinal(".");