Я пытался получить имена от пользователя в качестве входных данных и попытался отобразить имена так, чтобы первый символ был заглавным, а остальные буквы — строчными. ПРОБЛЕМА: функция оповещения в последний раз не отображает сообщение. КОД: ''' var Name = prompt("Введите ваше имя: ");

var Name = prompt("Enter your name: ");
var firstLetter = Name.Slice(0,1);
var finalFirstLetter = firstLetter.toUpperCase();
var remainingLetter = Name.Slice(0,Name.length);
var FinalRemainingLetter = remainingLetter.toLowerCase();
var captalisedName = finalFirstLetter + FinalRemainingLetter;
alert("Hello, " + CaptalisedName);
0
Abhishek Sharma 16 Янв 2022 в 11:35
alert(`${name[0].toUpperCase()}${Name.slice(1)}`);. Этот один лайнер должен сделать свое дело. Вы можете сохранить содержимое функции alert() в переменную, если позже захотите использовать имя с заглавной буквы.
 – 
deekeh
16 Янв 2022 в 11:55

4 ответа

Несколько заметок,

  1. Функция slice в Javascript написана в нижнем регистре.
  2. В конце, когда вы предупреждаете о выводе, ваша переменная должна иметь тот же регистр, что и вы объявили

Запустите приведенный ниже фрагмент, чтобы увидеть желаемый результат.

var Name = prompt("Enter your name: ");
var firstLetter = Name.slice(0,1);
var finalFirstLetter = firstLetter.toUpperCase();
var remainingLetter = Name.slice(1,Name.length);
var FinalRemainingLetter = remainingLetter.toLowerCase();
var captalisedName = finalFirstLetter + FinalRemainingLetter;
alert("Hello, " + captalisedName);
2
Eduard 16 Янв 2022 в 11:53
1
Кажется, здесь ошибка. Алиса дает мне Элис. Этот однострочный alert(`${name[0].toUpperCase()}${name.slice(1)}`); должен помочь!
 – 
deekeh
16 Янв 2022 в 11:50
1
Я обновил фрагмент
 – 
Eduard
16 Янв 2022 в 11:54

Это сообщение об ошибке, которое запускает ваш код:

{
  "message": "Uncaught TypeError: Name.Slice is not a function",
  "filename": "https://stacksnippets.net/js",
  "lineno": 13,
  "colno": 24
}

Убедитесь, что вы проверяете консоль при запуске кода, чтобы увидеть, возникают ли какие-либо ошибки, это может избавить вас от многих головных болей.

Функция не пишется с заглавной буквы, поэтому она будет выглядеть примерно так:

var name = prompt("Enter your name: ");
var firstLetter = name.slice(0,1).toUpperCase();
var remainingLetter = name.slice(1, name.length).toLowerCase();
var capitalizedName = firstLetter + remainingLetter;
alert("Hello, " + capitalizedName);

Я бы также попытался следовать какому-то соглашению об именах, чтобы уменьшить количество ошибок с заглавными буквами. В приведенном выше примере я использую стандарты javascript: camelCase для переменных и функций, а UpperCamelCase зарезервирован для типов данных и классов.

Wiki для соглашений об именах

Вот тот же код с const. Получайте удовольствие от изучения JS!

const name = prompt("Enter your name: ");
const firstLetter = name.substring(0, 1).toUpperCase();
const remainingString = name.substring(1).toLowerCase()
alert("Hello, " + firstLetter + remainingString);
1
Paul Kirby 16 Янв 2022 в 11:59

Возможно, вы могли бы заменить var на const. Иногда это также решает ошибку. Вот так..

const name = prompt("Enter your name: ");
const firstLetter = name.substring(0, 1).toUpperCase();
const remainingString = name.substring(1).toLowerCase()
alert("Hello, " + firstLetter + remainingString);
0
Eklavya Jain 16 Янв 2022 в 12:46

Ваш код хорош, но у вас есть опечатки. а) функциональный фрагмент в нижнем регистре б) captalisedName в вашем предупреждении должен быть в нижнем регистре, чтобы

Тогда это сработает!

var Name = prompt("Enter your name: ");
var firstLetter = Name.slice(0,1);
var finalFirstLetter = firstLetter.toUpperCase();
var remainingLetter = Name.slice(0,Name.length);
var FinalRemainingLetter = remainingLetter.toLowerCase();
var captalisedName = finalFirstLetter + FinalRemainingLetter;
alert("Hello, " + captalisedName);
0
Maik Lowrey 16 Янв 2022 в 12:51