Size: a a a

JavaScript — русскоговорящее сообщество

2020 May 29

АБ

Алексей Б in JavaScript — русскоговорящее сообщество
Всю голову себе сломал какое значение объекта принимает this
источник

АБ

Алексей Б in JavaScript — русскоговорящее сообщество
Вот полный код
источник

АБ

Алексей Б in JavaScript — русскоговорящее сообщество
class Menu { constructor(elem) { this._elem = elem; elem.onclick = this.onClick.bind(this); // (*) } save() { alert('сохраняю'); } load() { alert('загружаю'); } search() { alert('ищу'); } onClick(event) { let action = event.target.dataset.action; if (action) { this[action](); } }; } new Menu(menu);
источник

R

Rostislav 🇺🇦 in JavaScript — русскоговорящее сообщество
Алексей Б
class Menu { constructor(elem) { this._elem = elem; elem.onclick = this.onClick.bind(this); // (*) } save() { alert('сохраняю'); } load() { alert('загружаю'); } search() { alert('ищу'); } onClick(event) { let action = event.target.dataset.action; if (action) { this[action](); } }; } new Menu(menu);
this - в данном контексте екземпляр класса Menu
источник

R

Rostislav 🇺🇦 in JavaScript — русскоговорящее сообщество
В след раз или кидай скрином или лучше в кавычки ` - три раза с каждой стороны
источник

АБ

Алексей Б in JavaScript — русскоговорящее сообщество
Ок спасибо
источник

R

Rostislav 🇺🇦 in JavaScript — русскоговорящее сообщество
источник

S

Slav in JavaScript — русскоговорящее сообщество
Rostislav 🇺🇦
Всем привет, могу ли я проводить битовые операции с более чем 32-битные числами?  Потому как
console.log(0b111111111111111111111111111111111 & 0b111111111111111111111111111111111)
выдает всегда
-1
, там по 33 еденицы, а мне нужно что бы число было в виде 5 или больше байтном состоянии, можно ли так? Такое же эффект будет если записать в десятеричной системе
console.log(8589934591 & 8589934591)
, если числа умещаются в 32-бита то все нормально работает.
console.log(BigInt(0b111111111111111111111111111111111) & BigInt(0b111111111111111111111111111111111))

8589934591n
источник

R

Rostislav 🇺🇦 in JavaScript — русскоговорящее сообщество
Slav
console.log(BigInt(0b111111111111111111111111111111111) & BigInt(0b111111111111111111111111111111111))

8589934591n
Спасибо, но почему мы тогда может выводить 32-битные и больше числа без побитовых операций?
источник

S

Slav in JavaScript — русскоговорящее сообщество
В жс под низом вроде double тип использует для всех чисел, то есть максимальная целая часть умещается в 2^53

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/MAX_SAFE_INTEGER
источник

S

Slav in JavaScript — русскоговорящее сообщество
источник

R

Rostislav 🇺🇦 in JavaScript — русскоговорящее сообщество
Так даже 2^33 должно было бы поместиться, разве нет?
источник

S

Slav in JavaScript — русскоговорящее сообщество
Rostislav 🇺🇦
Так даже 2^33 должно было бы поместиться, разве нет?
Не понял вопроса
источник

R

Rostislav 🇺🇦 in JavaScript — русскоговорящее сообщество
Slav
Не понял вопроса
Ну если максимальная часть 2^53, то 2^33 явно меньше
источник

R

Rostislav 🇺🇦 in JavaScript — русскоговорящее сообщество
Slav
Не понял вопроса
Или имееться ввиду что после 2^32 идет дабл? Тогда это все обьясняет
источник

S

Slav in JavaScript — русскоговорящее сообщество
Rostislav 🇺🇦
Ну если максимальная часть 2^53, то 2^33 явно меньше
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_Operators

>Bitwise operators treat their operands as a sequence of 32 bits (zeroes and ones), rather than as decimal, hexadecimal, or octal numbers
источник

R

Rostislav 🇺🇦 in JavaScript — русскоговорящее сообщество
Numbers with more than 32 bits get their most significant bits discarded. Спасибо, не знал.
источник

S

Slav in JavaScript — русскоговорящее сообщество
Ну да, последний бит за знак отвечает просто
источник

R

Rostislav 🇺🇦 in JavaScript — русскоговорящее сообщество
Это да, но я думал что можно вплоть до 64.
источник

S

Slav in JavaScript — русскоговорящее сообщество
Ну не, если у тебя последний из 32 битов за знак - после него что угодно можно делать, но больше MAX 32 INT не будет
источник