|
30.01.2009, 06:38
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
сравнение строк (по стандарту)
либо я не правильно понял что в ECMA-262 3rd edition написано, либо у них противоречие (11.9.3)
Цитата:
|
The equality operator is not always transitive. For example, there might be two distinct String objects, each representing the same string value; each String object would be considered equal to the string value by the == operator, but the two String objects would not be equal to each other.
|
но по алгоритму из того же пункта == должен транзитивным, по-крайней мере для строк
|
|
30.01.2009, 16:08
|
|
|
Регистрация: 21.02.2008
Сообщений: 1,250
|
|
Хм, это наверно про следующее имеется в виду:
var a = new String("some");
var b = new String("some");
alert(a == b); // false
|
|
30.01.2009, 16:21
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
хм, про new не подумал. Думал что функции Number, Boolean и т.д. делают то же самое, что и соответствующие конструкторы. Пасибо
|
|
30.01.2009, 17:05
|
|
|
Регистрация: 21.02.2008
Сообщений: 1,250
|
|
Простой вызов приводит параметр к соответствующему типу.
|
|
30.01.2009, 18:17
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
Сообщение от Андрей Параничев
|
Простой вызов приводит параметр к соответствующему типу.
|
Зависит от конструктора (например, new Boolean / просто Boolean - один и тот же эффект). Но, в основном, да - с new - создает новый объект, без new - получает привитив.
|
|
30.01.2009, 18:28
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Цитата:
|
Зависит от конструктора (например, new Boolean / просто Boolean - один и тот же эффект). Но, в основном, да - с new - создает новый объект, без new - получает привитив.
|
минутку, Boolean не создает объект
|
|
30.01.2009, 21:07
|
|
|
Регистрация: 21.02.2008
Сообщений: 1,250
|
|
x-yuri,
Он об этом и говорит, собственно.
|
|
30.01.2009, 21:27
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
Вызов как функция:
Function - http://javascript.ru/ecma/part15#a-15.3.1
Array - http://javascript.ru/ecma/part15#a-15.4.1
Object - http://javascript.ru/ecma/part15#a-15.2.1
Boolean - http://javascript.ru/ecma/part15#a-15.6.1
Date - http://javascript.ru/ecma/part15#a-15.9.2
Error - http://javascript.ru/ecma/part15#a-15.11.1
P.S.> кстати, насчет Boolean, я "наврал" (вернее, перепутал). Но, просто хотел показать такие случаи (например, как с Array: new Array / просто Array - эффект один - создание объекта "массив")
Сообщение от x-yuri
|
минутку, Boolean не создает объект
|
new Boolean(param) - новый объект, Boolean(param) - преобразование типа к примитиву.
alert([typeof Boolean(true), typeof new Boolean(true)]); // boolean, object
Последний раз редактировалось Dmitry A. Soshnikov, 30.01.2009 в 21:56.
|
|
|
|