Size: a a a

2021 April 02

ИУ

Иван Усенков... in pro.js
khok
а зачем, если память можно выделять только при вызове порождающих операций?
Напиши это в компанию Google inc
источник

ИУ

Иван Усенков... in pro.js
А то там не догадались
источник

k

khok in pro.js
Нет, так не пойдет.
Где доказательство того, что примитивы всегда передаются по значению?
В случае с объектами легко доказать, что те передаются по ссылке:
const a = [5, 6, 7];
const b = a;
a.push(8);
и a и b имеют 5 6 7 8, что доказывает, что они хранят ссылку на объект.
Для примитивов подобный тест написать нельзя, следовательно, доказать, используют ли они ссылки или значения.
источник

ИУ

Иван Усенков... in pro.js
Иван Усенков
Выделяется памяти в 2 раза больше
Х2
источник

S

S.unity in pro.js
Переслано от S.unity
cart.quantity это число. как их сложить и вывести в {{ }} сумму
источник

k

khok in pro.js
в спецификации ecma не указано, сколько памяти в таких ситуациях будет выделяться
источник

ИУ

Иван Усенков... in pro.js
khok
в спецификации ecma не указано, сколько памяти в таких ситуациях будет выделяться
Проверь эмпирическим путем. Я сомневаюсь что ты читал спецификацию про присвоение примитивов
источник

ВБ

Владислав Бирюков... in pro.js
источник

НТ

Николай Тарасов... in pro.js
Ребят, почему хром в поле input text предлагает ввести сохраненные пароли?
источник

ВБ

Владислав Бирюков... in pro.js
Куки
источник

k

khok in pro.js
Иван Усенков
Проверь эмпирическим путем. Я сомневаюсь что ты читал спецификацию про присвоение примитивов
Вот элементарщина в которой "якобы" копируется строка (переменная a в аргумент res)
const process = require("process");
let result = 0;
function cat(res) {
 result += res.length;
}

const a = new Array(1e7).fill(Math.round(Math.random() * 10)).join("")
for(let i = 0; i < 1e5; ++i) cat(a);
console.log(process.memoryUsage())
console.log(result);
Если же ее обернуть в объект:
...
result += res.a.length;
...
const obj = {a};
for(let i = 0; i < 1e5; ++i) cat(obj);
...
То показатели памяти не изменятся
запускал на ноде 13.9
Память уместно выделять при конкатенации, при создании подстрок и других порождающих операциях - на то они и порождающие. Совершенно нет смысла выделять ее при обычном копировании. Строка не имеет мутабельных методов - следовательно, копию строки изменить нельзя - следовательно, нет смысла тогда вообще эту копию создавать. Понятие "string interning" не вчера придумали.
источник

Ю

Юлия in pro.js
#Вакансия  #Frontend #Fulltime #JS #TypeScript #Удаленка

Вакансия:
🔥 Middle / Senior Frontend Developer 🔥

🔹Компания: Blogman
◾Санкт-Петербург / ст.м. Маяковская
◾Формат работы: офис / удаленка (с возможностью релокейта)
◾Занятость: полная
◾Зарплатная вилка: от 100к - до 200к

Описание вакансии:
🚀В Blogman мы занимаемся разработкой собственного приложения для блогеров и рекламодателей. В нашей команде уже более 60 разработчиков и мы продолжаем расти.
🚀Основной стек технологий — JavaScript, TypeScript, HTML/CSS
🚀Сейчас мы разрабатываем бизнес-функционал приложения и будем рады новому специалисту в нашей команде, который вольется в проект и мы вместе будем делать frontend с нативным кодом и отзывчивым интерфейсом 🙂
🔹Мы ожидаем, что у вас есть:
- опыт коммерческой разработки от 2 лет;
- хорошее  знание TypeScript, JavaScript, HTML/CSS.
🔹Будет плюсом, если вы:
- имеете опыт проектирования архитектуры сложных проектов;
- имеете опыт работы с Node.js
🔹Рады предложить:
- возможность  удаленной работы
- желаемый оклад по результатам собеседования
- понятную систему роста зарплаты каждые 6 месяцев, в которой все зависит только от вас.

Контакты: @Juliya_blogman
источник

ИУ

Иван Усенков... in pro.js
khok
Вот элементарщина в которой "якобы" копируется строка (переменная a в аргумент res)
const process = require("process");
let result = 0;
function cat(res) {
 result += res.length;
}

const a = new Array(1e7).fill(Math.round(Math.random() * 10)).join("")
for(let i = 0; i < 1e5; ++i) cat(a);
console.log(process.memoryUsage())
console.log(result);
Если же ее обернуть в объект:
...
result += res.a.length;
...
const obj = {a};
for(let i = 0; i < 1e5; ++i) cat(obj);
...
То показатели памяти не изменятся
запускал на ноде 13.9
Память уместно выделять при конкатенации, при создании подстрок и других порождающих операциях - на то они и порождающие. Совершенно нет смысла выделять ее при обычном копировании. Строка не имеет мутабельных методов - следовательно, копию строки изменить нельзя - следовательно, нет смысла тогда вообще эту копию создавать. Понятие "string interning" не вчера придумали.
Да, я объебался. Спор потому что начался не с этого. А с того что есть такое понятие как примитив. Означает что переменная неизменяема. Можно заморозить объект и можно сказать что он ведёт себя как примитив.
источник

k

khok in pro.js
Иван Усенков
Да, я объебался. Спор потому что начался не с этого. А с того что есть такое понятие как примитив. Означает что переменная неизменяема. Можно заморозить объект и можно сказать что он ведёт себя как примитив.
+
источник

Д

Дмитрий in pro.js
khok
const a = "длинная строка";
const b = a;
где доказательство, что во второй строке создастся копия?
источник

Д

Дмитрий in pro.js
Цитата "в JavaScript строки пересоздаются только полностью. Значения таких типов называются «примитивными значениями»."
источник

ИУ

Иван Усенков... in pro.js
В документации имеется в виду что ты не можешь поменять символ по индексу, а только создать новую строку
источник

Д

Дмитрий in pro.js
источник

Д

Дмитрий in pro.js
Внимательно читате что такое примитивы
источник

ИУ

Иван Усенков... in pro.js
Дмитрий
Внимательно читате что такое примитивы
речь идёт про код
const b= '123';
const a = b;
то что в памяти хранится одна строка, а не создана копия
источник