Как мне обработать все аргументы функции как строки? - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть эта функция:

function read(x) {
  console.log("You typed: " + x);
}

Если я запускаю read("Hello") в консоли, я получаю:

Вы ввели: Привет;

Но если я бегу read(Hello), я получаю:

Uncaught ReferenceError: Hello не определена

Я изменил функцию следующим образом:

function read(x) {
  console.log("You typed: " + x.toString());
}

но безуспешно.

Итак, я хочу трактовать аргумент функции как строку, независимо от того, как пользователь ее вводит. Как мне это сделать?

Ответы [ 3 ]

0 голосов
/ 02 ноября 2018

Когда пользователь вводит строку, она будет передана в виде строки. Например:

var str = "Hello";
read(str); // will print "You typed: Hello"

Другими словами, когда вы вводите строку, скажем, через консоль, вам не нужно помещать ее в кавычки. Но когда вы устанавливаете строковое значение для своей переменной в коде, вы помещаете его в кавычки.

Но с этим read(Hello) вы пытаетесь передать переменную с именем Hello, которая даже не существует в этом контексте. Чтобы исправить это вы можете написать это:

var Hello = "Hello";
read(Hello); // will print "You typed: Hello"

и все будет работать нормально.

0 голосов
/ 02 ноября 2018

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

Когда вы звоните read, как:

read("Hello");

Значение передано функции read. Однако при звонке, как:

read(Hello);

Это вызывает функцию read со значением переменной Hello, а Hello никогда не объявляется.

ReferenceError : Объект ReferenceError представляет ошибку при ссылке на несуществующую переменную.

Значением может быть строка, число, логическое значение и массив, объект.

read(5);
read(true);
read('a');

Все это значения.

var a = 55;
var b = 'Hello';
var c = false;

read(a); // Passing value of a variable
read(b); // Passing value of b variable
read(c); // Passing value of c variable

переменные : вы используете переменные в качестве символических имен для значений в вашем приложении. Имена переменных, называемые идентификаторами, соответствуют определенным правилам.

0 голосов
/ 02 ноября 2018

Вы не можете. Синтаксис языка просто разработан таким образом, поэтому, если вы напишите read(Hello), он будет искать переменную с именем Hello. Этого не существует, следовательно, ошибка.

Если вы хотите передать строку, вам нужно заключить ее в кавычки (или присвоить ее переменной, а затем передать переменную). Обойти это невозможно.

...