Javascript, String: получение Javascript var в виде строки - PullRequest
2 голосов
/ 15 июля 2010

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

Я знаю, что это глупо простая проблема с ответом, который буквально сейчас смотрит мне в глаза.

Ответы [ 5 ]

5 голосов
/ 15 июля 2010

Маршрут без конкатенации должен использовать конструктор String () :

var str = new String(myVar);  // returns string object
var str = String(myVar);      // returns string value

Конечно, var str = "" + myVar; короче и проще. Имейте в виду, что все методы здесь преобразуют переменную со значением null в "null". Если вы хотите обойти это, вы можете использовать ||, чтобы установить значение по умолчанию, когда значение переменной "falsey", например, null:

var str = myVar || ""; 

Пока вы знаете, что 0 и false также приведут к "" здесь.

https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/String

2 голосов
/ 15 июля 2010

Как насчет

var str = '' + someVar;
1 голос
/ 15 июля 2010

String(null) возвращает "null", что может вызвать проблемы, если само поле формы имеет значение null. Как насчет простой функции-обёртки?

function toString(v) {
    if(v == null || v == undefined) {
        return "";
    }
    return String(v);
}

Только null, undefined и пустые строки должны возвращать пустую строку. Все другие ложные значения, включая целое число 0, будут возвращать что-то еще. Некоторые тесты

> toString(null)
""
> toString(undefined)
""
> toString(false)
"false"
> toString(0)
"0"
> toString(NaN)
"NaN"
> toString("")
""
1 голос
/ 15 июля 2010

А как же

var str = (variable || "");
//or
(variable || "").toString();

Конечно, вы получите это для false, undefined и так далее, но это будет пустая строка, а не "null"

0 голосов
/ 15 июля 2010

Как насчет ...?

var theVarAsString = "" + oldVar;

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