2015-01-18 4 views
2

Я столкнулся с этим оператором, предшествовавшим ключевому слову «this» в некотором коде Node.js Harmony, специально работающем с веб-картой Koa.~~ Оператор Javascript

В примере кода ниже:

app.use(function *(){ 
    var n = ~~this.cookies.get('view') + 1; 
    this.cookies.set('view', n); 
    this.body = n + ' views'; 
}); 

Рутинная поиск Google не появился ничего, так что я тщательно запутаться. Единственное, что я могу сказать наверняка, это то, что это важно для функциональности этого фрагмента, поскольку код перестает работать, когда он удаляется.

Любое понимание было бы оценено с указанием цели этого иностранного оператора.

+0

Не '' '' двойное побитовое НЕ? – abligh

+0

@abligh да, есть. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators#.7E_(Bitwise_NOT) –

+0

Я не знал, что Javascript может выполнять поразрядную логику. Это может быть так, я напишу несколько тестов, чтобы проверить! –

ответ

2

Это двойной побитовый-НЕ. Его единственный практический эффект (насколько я вижу) заключается в том, чтобы указать его аргумент (все это this.cookies.get('view') в этом случае) как целое число.

+0

Это то, что целое число, целая часть (и знак) числа. – Malvolio

+0

this.cookies.get() возвращает строку, поэтому требуется двойное поразрядное, чтобы вы могли увеличить значение. –

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