Jump to content
  • 0

Опечатка в книге или я что-то не понял?


DivMan
 Share

Question

Книга Изучаем программирование на javascript Эрик Фримен.

Кому интересно страница 317 http://vk.com/doc1610887_410913980?hash=b05a07e016d53d162e&dl=b045130c8ef45b508e

 

На этой странице пишут, то, что значение у переменной element будет псевдоистиным 

720e043fbf8a2d752b9d4732fcc79338.jpg

 

Но как оно может быть псевдоистиным, если element возвратит undefined? 

Из списка видно, то, что undefined это всевдоложное значение, значит значение псевдоложное.

////////////////////////////////////////////////////////////

 

А на предыдущей странице, element возвращает null, как так?

 

bbe30e6b4dd9da562cc002b80474958b.jpg

 

 

будет false

var element = document.getElementById('elementThatDoesExist');

if(element){
	console.log('true')
}
else{
	console.log('false')
}

 

Edited by DivMan
Link to comment
Share on other sites

8 answers to this question

Recommended Posts

  • 0

Просто доверяй практике. Я проверил, getElementById() возвращает null, если id отсутствует, это == false.
 А вообще, лично я использую querySelector(), его писать короче и не надо шифт через каждую букву нажимать.

Я  не понял, почему у тебя element должен стать undefined.

Link to comment
Share on other sites

  • 0

А почему, если не сравнивать, то будет true, а если сравнивать, то будет false?

 function foo(){
    var lies = 0;

    var stolenDiamond = {};

    if(stolenDiamond){
    //if(stolenDiamond == true){
        console.log('true');
        lies++
    }

    return lies
}

foo()

 

Link to comment
Share on other sites

  • 0
12 минуты назад, DivMan сказал:

а если вообще без знака, то, что?

if(param)

тоже самое что

if(param == true)

Если вам нужно проверить переменную и вы не знаете какой тип переменной там будет можете приводить к логическому типу вот так

if( !!param == true)

Link to comment
Share on other sites

  • 0

это не тоже самое

теперь переменная не увеличится 

 

а если убрать == то увеличиться

function foo(){
    var lies = 0;

    var stolenDiamond = {};

    
    if(stolenDiamond == true){
        console.log('true');
        lies++
    }

    return lies
}

foo()

 

Edited by DivMan
Link to comment
Share on other sites

  • 0
2 минуты назад, DivMan сказал:

это не тоже самое

да я забыл добавить что это тоже самое если переменная имеет логический тип, пока думал про привидение типов дописать забыл ту строчку дописать

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy