function Calc() {
num = eval(num); // записать сразу в переменную
document.querySelector(".display").value = num; // затем вывести на дисплей
}
1++2
- и посчитайте - получите ошибку.1/0
- получите Infinity, затем добавьте любую цифру, опять равно, и снова упадет в ошибку.function ListNode(val, next) {
this.val = (val === undefined ? 0 : val)
this.next = (next === undefined ? null : next)
}
let list;
for(let c=1; c<=5; c++){
list=new ListNode(c, list); //Я не могу понять, как работает эта строка.
console.log('val=', list.val, 'next=', list.next); // <---------- вот эту
}
console.log(list);
val= 1 next= null
val= 2 next= ListNode {val: 1, next: null}
val= 3 next= ListNode {val: 2, next: ListNode}
val= 4 next= ListNode {val: 3, next: ListNode}
val= 5 next= ListNode {val: 4, next: ListNode}
ListNode {val: 5, next: ListNode}
В языках, основанных на понятии «класс», все объекты разделены на два основных типа — классы и экземпляры. Класс определяет структуру и функциональность (поведение), одинаковую для всех экземпляров данного класса. Экземпляр является носителем данных — то есть обладает состоянием, меняющимся в соответствии с поведением, заданным классом.
Сторонники прототипного программирования часто утверждают, что языки, основанные на классах, приводят к излишней концентрации на таксономии классов и на отношениях между ними. В противоположность этому, прототипирование заостряет внимание на поведении некоторого (небольшого) количества «образцов», которые затем классифицируются как «базовые» объекты и используются для создания других объектов. Многие прототип-ориентированные системы поддерживают изменение прототипов во время выполнения программы, тогда как лишь небольшая часть класс-ориентированных систем (например, Smalltalk, Ruby) позволяет динамически изменять классы.
Хотя подавляющее большинство прототип-ориентированных систем основаны на интерпретируемых языках с динамической типизацией, технически возможно добавить прототипирование и в языки со статической проверкой типов. Язык Omega является одним из примеров такой системы.
function copyColumn() {
const rows = document.querySelectorAll('table tr.tab'); // находим все строки
rows.forEach(row => {
const clone = row.firstElementChild.cloneNode(true); // клонируем первую ячейку вместе с содержимым
row.insertAdjacentElement('beforeend', clone); // вставляем в конец
});
};
<pre id="cont">0</pre>
<button id="btnStart">start</button>
<pre id="cont2">0</pre>
<button id="btnStart2">start</button>
<script>
btnStart.onclick = function(){
autoCounter('#cont', 0, 10050, 12.7);
};
btnStart2.onclick = function(){
autoCounter('#cont2', 100500, 200000, 300);
};
function autoCounter(selector, from, to, step) {
const container = document.querySelector(selector);
let currValue = from;
tick();
function tick() {
if (currValue < to) {
currValue += step;
if (currValue > to) {
currValue = to;
}
container.textContent = Math.round(currValue);
window.requestAnimationFrame(tick);
}
}
}
</script>
<html>
<body>
<section>
<article>
<h1>
<span>your text</span>
</h1>
</article>
</section>
</body>
</html>
let menu = {
width: 200,
height: 300,
title: "My menu"
};
function multiplyNumeric(obj) {
for(key in obj) {
if (typeof obj[key] === 'number') {
obj[key] *= 2;
}
}
}
multiplyNumeric(menu); // изменили размер
console.log(menu); // вывели
console.log(multiplyNumeric(menu));
то в консоль выведется undefined, потому что вы в консоль выводите возвращаемое значение функции multiplyNumeric, а когда она ничего не возвращает, то и выводится undefined.Обратите внимание, что multiplyNumeric не нужно ничего возвращать.
setTimeout(function(){
const select = document.querySelector('select');
select.value = 1
}, 1000); // 1000ms = 1s
const result = 'Работа не волк, работа это ворк, волк это ходить'.replace(/[ ,]+/g, ' | ');
// -> ''Работа | не | волк | работа | это | ворк | волк | это | ходить'
Это вы хотите? + add item
навешиваются обработчики на все айтемы. changeBtns.forEach(...)