Зарплата - 500 долларов до испыта, 700 - после.
Дело в том, что позвали меня на позицию Full-stack(junior). Если бы это был фулстек веб(нода+реакт), допустим, скорее всего я бы согласился.
Но тут надо разбираться с любыми технологиями, которые нужны заказчику(компания аутсорс). Мне сразу сказали, что надо будет и с мобилками работать и уметь деплоить и с кубернетисом работать.
Так же из-за специфики работы, пм будет общаться с заказчиком, но будут очень частые случаи, когда надо будет созваниваться с заказчикам, уточнять какие-то моменты + презентовать продукт по результатам работы.
3.Знакомые опытные ребята говорят, что фулстек джунов не существет и это вообще треш.
const renderCart(count) {
$('#cart').text(count);
}
const renderFooterNavCart(count) {
$('.footer .cart').text(count);
}
const addToCartHandler() {
const count = $('.footer .cart').text() + 1;
renderCart(count);
renderFooterNavCart(count);
// Если добавится еще виджет с отображением количества товаров в корзине —
// нужно найти этот обработчик и добавить сюда функцию отрисовки
}
const renderCart(count) {
$('#cart').text(count);
}
const renderFooterNavCart(count) {
$('.footer .cart').text(count);
}
const addToCartHandler() {
const count = $('.footer .cart').text() + 1;
emitEvent('cartCountCanged', count)
}
subscribe('cartCountCanged', (count) => {
renderCart(count);
renderFooterNavCart(count);
})
// Если добавится еще виджет с отображением количества товаров в корзине —
// вызвать
subscribe('cartCountCanged', (count) => {
// виджет(count)
}
// в любом месте приложения.
.description {
width: 100%;
max-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
<td class='description'>
<div class="textbox">
<span> TEXT </span>
</div>
</td>
.textbox {
width: 100%;
display: inline-grid;
}
.textbox span {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
<td class='description'>
<div class="textbox"> TEXT </div>
</td>
.textbox {
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
что делать на фронтенде
<canvas id=canvas width=200 height=200></canvas>
let r = 90; // радиус
let amountOfPoints = 7; // количество точек
let x, y;
let ctx = canvas.getContext('2d');
for(i = 0; i < Math.PI * 2; i += Math.PI * 2 / amountOfPoints){
x = canvas.width / 2 + r * Math.sin(i);
y = canvas.height / 2 + r * Math.cos(i);
ctx.fillRect(x, y, 2, 2);
}
const calculateCoordinate = (count, r, cx, cy) => {
const sectors = [];
let startAngle = -90;
let endAngle = 0;
let maxCard = 6;
for (let i=0; i<count; i++) {
if (i<=maxCard-1){
const angle = 360/maxCard;
endAngle += angle;
const rad = Math.PI / 180;
const x = cx + r * Math.cos(startAngle * rad);
const y = cy + r * Math.sin(startAngle * rad);
startAngle += angle;
sectors.push({x, y});
} else {
const angle = 360/(count-maxCard);
endAngle += angle;
const rad = Math.PI / 180;
const x = cx + r * 2 * Math.cos(startAngle * rad);
const y = cy + r * 2 * Math.sin(startAngle * rad);
startAngle += angle;
sectors.push({x, y});
}
}
return sectors;
};
undefined
. Если значение нужно убрать - хорошая практика устанавливать null
delete
используют скорее не для обнуления значения, а для удаления свойства из объекта чтобы оно не участвовало в перечислении\не отправлялось на сервер и тд. Так что тут есть разница между delete и установкой undefined.