Почему indexOf ничего не возвращает? - PullRequest
0 голосов
/ 19 октября 2011

Книга , которую я читаю , подсказывает мне открыть консоль JavaScript и попробовать код "foo: bar".indexOf(":").Я пробовал это разными способами.Я попытался удалить кавычки, поместив его в функции show() и alert().Кажется, я просто не могу ничего дразнить.

Что-то изменилось в JavaScript?Автор сделал ошибку?Я должен получить возврат?Мне нужно добавить document.write, возможно?Любая помощь с благодарностью.

Ответы [ 3 ]

1 голос
/ 19 октября 2011

попробуй как следует, должно работать.Обычно indexOf () возвращает -1, если значение для поиска никогда не встречается.

var str="foo:bar";
document.write(str.indexOf(":") + "<br />");

Выходные данные должны быть 3

1 голос
/ 19 октября 2011

Да, что-то изменилось в Firefox 5+ Однако консоль (ctrl-shift-k) все еще работает

Fx konsole

В консоли ошибок (ctrl-shift-J) вам нужно будет обернуть ее в предупреждение:

enter image description here

1 голос
/ 19 октября 2011

foo: bar - это определение свойства в json, и indexOf должен иметь дело с левым значением (строковой переменной, константой или хотя бы чем-то, что может содержать символы. Я не знаю, для чего вы Чтение хочет, чтобы вы это сделали, но, похоже, это не правильно. Правильный способ использования indexOf:

var myObject = {
   foo:"bar"
}

alert(myObject.foo.indexOf("a"));
...