2014-09-17 2 views
1

я нашел url = location.href + '' в URI.js, согласно msdn, то href свойства string, так почему CONCAT пустой строки здесь?Что цель location.href + «»

У вас есть проблемы совместимости с браузером?

+0

программисты делают ошибки слишком – monkeyinsight

+0

File его везде, где вы также подали 'TypeOf (х) и' недействительным (0) '. – RobG

ответ

-3

Я думаю, что нет никаких проблем с совместимостью браузеров ...

url = location.href + '' 

код означает, добавить строку типа

Java является языком Complect видящие int и double не то же самое. поэтому вам нужно его преобразовать.

пример

var prize = 10 // int 
var txtPrize = price + '' // change price to string 

если мы используем price.length, который будет возвращать undefinied

если мы используем txtPrize.length, который будет возвращать 2

другой пример

var txtPrize = "10" // string 
var prize = txtPrize * 1 // change to int 

если мы попытаемся используя Total = txtPrize + 40, что вернет 1040

если попытаться использовать Total = prize + 40, который будет возвращать 50

CMIIW

+0

Это уже строка, поэтому преобразование типа не требуется. Однако в 'location + ''' имеет смысл преобразовать в строку, поскольку 'window.location' является объектом' Location', а не строкой. Объект Location просто имеет удобный метод toString(), который вызывается, который возвращает весь href (более или менее, я не читал документы, чтобы узнать, есть ли что-то особенное в нем). – JayC

1

Это должна быть строка.

Но взять совет Вальтера Донован из The Last Crusade: "Будьте очень осторожны, не доверять никому."

+0

Совет хорош, но если интерфейс говорит, что он всегда будет возвращать строку, мы просто возьмем его за строку. Мы добавим только хак, пока не появятся некоторые проблемы. – liunian

+0

Мы говорим о веб-браузерах. Заведомо ужасно на встречах спецификации и трудно проверить тщательно. Вы действительно уверены, что нет никаких обстоятельств, в которых IE6 или BlackBerry или PhantomJS могли бы поместить здесь нулевое значение? Это тот же принцип, что и реализация сетевых протоколов: будьте консервативны в том, что вы отправляете, и либеральны в том, что вы получаете. –

Смежные вопросы