Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   поиск по CSS селекторам, YASS (https://javascript.ru/forum/library-toolkit-framework/15553-poisk-po-css-selektoram-yass.html)

Aluc 03.03.2011 22:24

поиск по CSS селекторам, YASS
 
Привет всем!
На примере YASS, хотел разобраться как выполняется это чудо действие.
вот на этапе разбора исходника наткнулся на такой код:
.....
'last-child': function (child) {
			var brother = child;
/* loop in lastChilds while nodeType isn't element */
			while ((brother = brother.nextSibling) && brother.nodeType != 1) {}
/* Check for node's existence */
			return !!brother;
		}
....

Вот мне стало интересно что за '!!' (после return) ??
как это работает? никогда такого не встречал =(

Aetae 03.03.2011 22:28

http://javascript.ru/boolean-operators
alert([
!true,
!!true,
!!!true,
!!!!true,
!!!!!true,
!!!!!!true
].join('\n'))


Вообще !! используется в основном для приведения не булева значения к булеву.(что на самом деле в большинстве случаев в js не требуется, ибо прведение типов)
var a, b = 'somesh...', c = '', d = document;

alert([
a + ' > ' + !!a,
b + ' > ' + !!b,
c + ' > ' + !!c,
d + ' > ' + !!d
].join('\n'))

Aluc 03.03.2011 23:17

ясно большое спасибо


Часовой пояс GMT +3, время: 15:36.