Страннейшая программа в JS
var a = 15;
var b = 97;
if (a=b) {
console.log(a);
} else if (a>b) {
console.log("a is greater");
} else {
console.log("b is greater");
}
Ошибки нет, но выводит ВСЕГДА 97. Чуть покапав понял что каким-то образом a становится равным b. Это рас.
var g = Math.random();
var f = Math.random();
var h = Math.random();
if (h=f && g>=f) {
console.log(a);
} else if (h>g) {
console.log("c > a");
} else if (h>f) {
console.log("c > b");
}
console.log(g,f,h);
Выводит 2 дробных числа (естественно от 0 до 1), и false снова без ошибок 0.10607589160082331 0.49579362287099293 false
Ответы (2 шт):
Автор решения: DVD_AM
→ Ссылка
В певом примере должен был поставить 2 знака = в первом if(=присвоивает, ==сравнивает)
Автор решения: sombik
→ Ссылка
var a = 15;
var b = 97;
if (a === b) { ////используйте так
console.log(a);
} else if (a > b) {
console.log("a is greater");
} else {
console.log("b is greater");
}
var g = Math.random();
var f = Math.random();
var h = Math.random();
if (h === f && g >= f) { ///и здесь тоже
console.log(a);
} else if (h > g) {
console.log("c > a");
} else if (h > f) {
console.log("c > b");
}
console.log(g,f,h);
= присваивание
== сравнение ссылок объектов и значений
=== оператор строгого равенства проверяет равенство без приведения типов.