Linux за българи: Форуми

Програмиране => Web development => Темата е започната от: 3p0 в Aug 30, 2016, 21:34



Титла: JavaScript може би не разбира добре логическите променливи True и False
Публикувано от: 3p0 в Aug 30, 2016, 21:34
Една функция на JavaScript сравнява две аналогични групи числови променливи дали са еднакви и връща False, понеже не са еднакви. Резултата от функцията го получава една Boolean променлива b, чиято стойност също е False ....
И накрая за капак ми изскача един алерт прозорец, точно защото не трябва да изскочи ?
Код:
        if (b=true)
        {
          window.alert("TRUE");
        }
Или аз съм напълно луд или JavaScript е малко лудичък ?


Титла: Re: JavaScript може би не разбира добре логическите променливи True и False
Публикувано от: spec1a в Aug 30, 2016, 21:56
   Не трябва ли да се сравняват с "==" т.е.
if (b==true)   
{
     window.alert("TRUE");
}


Титла: Re: JavaScript може би не разбира добре логическите променливи True и False
Публикувано от: 3p0 в Aug 30, 2016, 21:59
   Не трябва ли да се сравняват с "==" т.е.
if (b==true)   
{
     window.alert("TRUE");
}
Оооооооооо, слава Богу, аз съм луд, а JavaScript си е напълно нормален ;D


Титла: Re: JavaScript може би не разбира добре логическите променливи True и False
Публикувано от: chen_dzen в Aug 30, 2016, 22:22
Или само  if(b){ ... }  ;D


Титла: Re: JavaScript може би не разбира добре логическите променливи True и False
Публикувано от: 3p0 в Aug 30, 2016, 22:28
Или само  if(b){ ... }  ;D
Аз така съм свикнал от Паскал (Делфи, Лазарус).
Ако тази проверка работи, ще правя по-малко грешки !!!
Сега ще я проверя .... Ураааааа - работи по този опростен начин !


Титла: Re: JavaScript може би не разбира добре логическите променливи True и False
Публикувано от: 3p0 в Aug 30, 2016, 22:37
Все пак мисля, че хванах в крачка JavaScript, но не съм сигурен;
Предполагам, че ако от рекурсивна функция има обръщение към друга функция, след като се върне резултата в рекурсивната функция - тя забравя да прави рекурсии.
Това го установих и като върнах кода от другата функция в тялото на рекурсивната - без обръщение към друга функция, тя си работи рекурсивно :)


Титла: Re: JavaScript може би не разбира добре логическите променливи True и False
Публикувано от: pennywise в Aug 31, 2016, 00:17
Джабата е малко объркващ език. за мое нещастие в последната година е извън контрол.
Има също и оператор ===
Понеже е "weakly typed" език служи за проверка дали променливата има същата стойност и е от същия тип.
http://www.w3schools.com/js/js_operators.asp


Титла: Re: JavaScript може би не разбира добре логическите променливи True и False
Публикувано от: go_fire в Aug 31, 2016, 00:40
Оператора с три знака равно го има в един билюк езици. Нищо специфично за жабешкият низ.


Титла: Re: JavaScript може би не разбира добре логическите променливи True и False
Публикувано от: Naka в Aug 31, 2016, 11:12
   Не трябва ли да се сравняват с "==" т.е.
if (b==true)   
{
     window.alert("TRUE");
}
Оооооооооо, слава Богу, аз съм луд, а JavaScript си е напълно нормален ;D


за да не стават такива проблеми, може просто да е техническа грешка и неправилно чукване винаги обръщай сравняването, така че числото да стои първо а променливата втора:

if (true==b) 
или на на ПХП: if ( 5==$b)

ако случайно си го сгрешил с едно равно - ще избие с грешка, щото не може на число да присвоиш променлива   if ( 5=$b)
Аз винаги така правя и това простичко правило спестява много главоболия.



Титла: Re: JavaScript може би не разбира добре логическите променливи True и False
Публикувано от: 3p0 в Aug 31, 2016, 12:00
....
за да не стават такива проблеми, може просто да е техническа грешка и неправилно чукване винаги обръщай сравняването, така че числото да стои първо а променливата втора:

if (true==b) 
или на на ПХП: if ( 5==$b)

ако случайно си го сгрешил с едно равно - ще избие с грешка, щото не може на число да присвоиш променлива   if ( 5=$b)
Аз винаги така правя и това простичко правило спестява много главоболия.
Този начин за проверка ми харесва и ще го прилагам от днес нататък ....


Титла: Re: JavaScript може би не разбира добре логическите променливи True и False
Публикувано от: zxz в Sep 01, 2016, 19:57
В JS има една подробност относно сравняването. Най-добре е да използваш === за сравняване, може и == но трябва да си убеден че нещата които сравняваш са един и същи тип, в противен случай ако напишеш:
var a = 5;
a == '5' ще ти върне true, което не е вярно, защото '5' е стринг, не число
a === '5' връща false както си му е реда.

П.С. Сега видях, че сте го писали вече. Но нищо, както казват - повторението майка на знанието :D


Титла: Re: JavaScript може би не разбира добре логическите променливи True и False
Публикувано от: hristov82 в Apr 01, 2017, 19:29
може да погледнеш в Интернет и за truthy, falsy :)