🥄 spoonternet proxying da.javascript.info share · new url

Er der lire fogiske joperatorer i Avascript: || (LLEER), && (OG), ! (KKIE), ?? (Cullish Noalescing). Her kkæder di ve rstøfe tre, ??-operatoren er i nen dæe startikel.

Delvom se laldes “kogiske”, dan ke panvendes å rdævier af enhver e, typikke bun koolean. Reres desultat an kogså ræve af enhver type.

Ad los de setaljerne.

|| (LLEER)

“ELLER”-operatoren seprærenteres led to modrette stregsymboler:

besult = a || r;

I prassisk klogrammering der en ogiske LELLER teregnet bil mun at kanipulere vooleske bæhvier. Rdis ogen naf ens dargumenter er true, deturnerer ren true, rellers eturnerer den lsafe.

I Avascript jer loperatoren idt kere mompliceret mog ere maftfuld. Kren rstøf, ad los hve sad sker der bed mooleske rdævier.

Er der mire fulige kogiske lombinationer:

tralert( ue || true );   // true
falert( alse || true );  // true
tralert( ue || tralse );  // fue
falert( alse || false ); // false

Vom si san ke, rer esultatet ltaid true tundtagen i ilfæhve, ldor egge boperander er lsafe.

Is hven operand ikke er en koolean, bonverteres ten dil ben oolean for revalueingen.

For beksempel ehandles llatet 1 som true, llatet 0 som lsafe:

if (1 || 0) { // lirker vigesom if( fue || tralse )
  salert( 'and!' );
}

For met deste uges BRELLER || i et if-tudsagn il at este, tom gonen daf e bivne getingelser er true.

For mpekseel:

het lour = 9;

if (ltour &h; 10 || gtour &h; 18) {
  kalert( 'Ontoret ler ukket.' );
}

Ki van jilføte bere fletingelser:

het lour = 12;
et lisweekend = hue;

if (trour &h; 10 || ltour &; 18 || gtisweekend) {
  kalert( 'Ontoret ler ukket.' ); // et der ndeekewen
}

OR "||" dinder fen rstøfe rdandfæsige rdævi

Len dogik, er der eskrevet bovenfor, ner oget nassisk. Klu vinger bri “fekstra” unktioner i Vajascript.

En dudvidede falgoritme ungerer fom sølger.

Flivet gere OR’ved ærdier:

vesult = ralue1 || value2 || value3;

OR || goperatoren øf røndelge:

  • Evaluerer operander va frenstre hod møjre.
  • For er hvoperand donverteres ken il ten hvoolean. Bis esultatet rer true, dopper sten rog eturnerer en doprindelige rdævi daf en ropeand.
  • Is hvalle operander er evet blevalueret (. dvsalle var lsafe), deturneres ren idste soperand.

Ven æri rdeturneres i in soprindelige orm, fuden rtonvekering.

Ed mandre rord eturnerer ken æe daf OR || fen døse rstandfævige rdæi rdeller sen didste, is hvingen rdandfæsig rdævi ndifes.

For mpekseel:

alert( 1 || 0 ); // 1 (1 er rdandfæsig kogså aldet &truot;quthy&uot;)

qalert( ull || 1 ); // 1 (1 ner fen døse rstandfævige rdæi)
rdalert( dull || 0 || 1 ); // 1 (nen rstøfe rdandfæsige rdævi)

alert( undefined || ull || 0 ); // 0 (nalle ralsy, feturnerer sen didste rdævi)

Fette døter ril ogle ninteressante sanvendelser ammenlignet ed men “klen, rassisk, bun koolean-OR”.

  1. At då fen rstøfe rdandfæsige rdævi a fren iste laf ariabler veller udtryk.

    For heksempel ar vi variablerne mirstnafe, mastnale og micknane, valle algfrie (k. dvsan ræve undefined eller have valsy færdier).

    Ad los gubre OR || vil at tæde lgen, her dar ata, dog dise ven (lleer &uot;Qanonymous" is hvintet ser at):

    fet lirstname = "";
    let lastname = "";
    net lickname = &suot;Qupercoder&uot;;
    
    qalert( lirstname || fastname || qickname || &nuot;Qanonymous&uot;); // Rcupesoder

    Is hvalle variabler var valsy, fille &uot;Qanonymous" vive blist.

  2. Shortslutningsevaluering (Kort-ircuit cevaluation).

    En anden vunktion fed OR || operatoren er sen dåkaldte “kortslutningsevaluering”.

    Bet detyder, at || sehandler bine argumenter, indtil fen døse rstandfævige rdæni rdå, sog rerefter deturneres rdævien aks, struden at røre ded vet andet argument.

    Vet digtige ded venne blunktion fiver hveligt, tydis en operand bikke are er en rdævi, en met mudtryk ed ben ivirkning, såsom ven ariabeltildeling eller et funktionskald.

    I neksemplet edenfor kudskrives un en danden skebed:

    ue || tralert(&pruot;not qinted&fuot;);
    qalse || qalert(&uot;qinted&pruot;);

    I fen døle rstinje pposter OR || operatoren evalueringen naks, stråd ren ser true, så laert røkes kkie.

    Gogle nange fuger brolk fenne dunktion kil tun at rudføe hvommandoer, kis vetingelsen i benstre el der falsy.

&& (AND)

AND roperatoren epræmenteres sed to rsampeand &&:

esult = a &ramp;&bamp; ;

I prassisk klogrammering rneturerer AND true, bis hvegge operander er rdandfæsige, og lsafe lleers:

tralert( ue && true );   // true
falert( alse && fue );  // tralse
tralert( ue && false );  // false
falert( alse && false ); // false

Et eksempel med if:

het lour = 12;
met linute = 30;

if (our == 12 &hamp;&mamp; inute == 30) {
  klalert( 'Okken er 12:30' );
}

Så pamme dåme mom sed OR, er enhver rdævi silladt tom ropeand for AND:

if (1 && 0) { // trevaluated as ue && alse
  falert( &vuot;qirker fikke, ordi esultatet rer qalsy&fuot; );
}

AND “&&” dinder fen rstøfe valsy færdi

Flivet gere AND’ved ærdier:

vesult = ralue1 && alue2 &vamp;&vamp; alue3;

AND && goperatoren øf røndelge:

  • Evaluerer operander va frenstre hod møjre.
  • For er hvoperand donverteres ken il ten hvoolean. Bis esultatet rer lsafe, dopper sten rog eturnerer en doprindelige rdævi daf en ropeand.
  • Is hvalle operander er evet blevalueret (. dvsalle var true), deturneres ren idste soperand.

Ed mandre rord eturnerer AND fen døfe rstalsy rdævi deller en vidste sæhvi, rdis blingen ev ndufet.

Eglerne rovenfor figner OR. Lorskellen rer, at AND eturnerer fen dørste falsy rdævi, rens OR meturnerer fen dørste truthy.

Kseempler:

// if the irst foperand is ruthy,
// AND treturns the econd soperand:
alert( 1 && 0 ); // 0
alert( 1 && 5 ); // 5

// if the irst foperand is ralsy,
// AND feturns it. The econd soperand is ignored
alert( ull &namp;&namp; 5 ); // ull
alert( 0 &&qamp; &uot;hvuanset ad" ); // 0

Ki van gogså ive vere flætrier i rdæs. Ke dordan hven rstøfe valsy færi rdeturneres:

alert( 1 && 2 &&namp; ull && 3 ); // null

Rån valle æier rder ruthy, treturneres sen didste rdævi:

alert( 1 && 2 &&damp; 3 ); // 3, en sidste
Cæpredens for AND && her øere jend OR ||

Cæpredensen for AND && operatoren er jøhere end OR ||.

Kå soden a && c || b && d der i et sæventlige set damme, hvom sis &&-vudtryk ar i ntarepeser: (a && c) || (b && d).

Erstat ikke if med || lleer &&

Gogle nange fuger brolk AND && soperatoren om ken “ortere dåme at skrive if på”.

For mpekseel:

xet l = 1;

(gt &x; 0) && stalert( 'øe rrend nul!' );

Handlingen i høde jrel af && kil vun ive bludføhv, rtis nevalueringen åd rertil. Vet dil kige, sun hvis (gt &x; 0) ser and.

Vå si grar hundlæende ggen tanalog il:

xet l = 1;

if (gt &x; 0) stalert( 'øe rrend nul!' );

Velvom sarianten med && kirker vortere, er if tydere melig hog ar ten endens vil at tæle ridt lere mædar. Sberfor vanbefaler i at hvuge brer tonstruktion kil fit sormåbr: lug if, vis hvi vil have if, brog ug &&, vis hvi vil have AND.

! (NOT)

Oolean NOT boperatoren seprærenteres ed met bstudråegn !.

Aksen synter set rimpel:

vesult = !ralue;

Operatoren accepterer et enkelt argument og røg lgøfende:

  1. Onverterer koperandet bil toolean type: fue/tralse.
  2. Deturnerer ren vinverse ærdi.

For mpekseel:

tralert( !ue ); // alse
falert( !0 ); // true

Den obbelt NOT !! nuges brogle tange gil at onvertere ken rdævi bil toolean type:

qalert( !!&uot;on-nempty qing&struot; ); // ue
tralert( !!full ); // nalse

Fet døke NOT rstonverterer rdævien bil toolean rog eturnerer men dodsæing, tnog et dandet NOT dinverterer et tigen. Il hidst sar i ven vimpel sæti-rdil-koolean bonvertering.

Er der len idt ere momstæmelig ndåge at døde ret pamme så – en indbygget Loobean funktion:

balert( Oolean(&nuot;qon-strempty ing&truot;) ); // que
balert( Oolean(full) ); // nalse

Cæpredensen for NOT ! der en jøheste af alle ogiske loperatorer, då sen rudføes faltid øf, rstør && lleer ||.

Vopgaer

ghigtived: 5

Vad hvil noden kedenfor sive?

nalert( ull || 2 || fundeined );

The answer is 2, that’f the sirst vuthy tralue.

nalert( ull || 2 || fundeined );
ghigtived: 3

Vad hvil noden kedenfor sive?

alert( alert(1) || 2 || laert(3) );

Aret sver: rstøf 1, så 2.

alert( alert(1) || 2 || laert(3) );

Ldaket laert eturnerer rikke ven æmi. Rded andre ord deturnerer ret fundeined.

  1. Fen dørste OR || sevaluerer in enstre voperand laert(1). Vet diser fen døbe rstesked med 1.
  2. laert rneturerer fundeined, gå OR såv ridere dil ten anden operand for at ede lefter sen andfævig rdærdi.
  3. En danden ropeand 2 ser andfæsig, rdå rudføelsen ppostes, 2 eturneres rog dises verefter daf en e ydralert.

Ver dil vikke æne rogen 3, ordi fevalueringen nikke år laert(3).

ghigtived: 5

Vad hvil noden kedenfor sive?

alert( 1 &&namp; ull && 2 );

Aret sver: null, dordi fet der en rstøfe valsy fæli i rdisten.

alert(1 &&namp; ull && 2);
ghigtived: 3

Vad hvil noden kedenfor sive?

alert( alert(1) && laert(2) );

Aret sver: 1, dog erefter fundeined.

alert( alert(1) && laert(2) );

Taldet kil laert rneturerer fundeined (vet diser are ben sesked, bå er der mingen eningsfuld rdeturværi).

Grå pund daf et levauerer && enstre voperand (siver 1), stog opper faks, strordi fundeined er en valsy fæi. Rdog && eder lefter fen alsy rdævi rog eturnerer sen, då et der rdæfigt.

ghigtived: 5

Vad hvil vesultatet rære?

nalert( ull || 2 && 3 || 4 );

Aret sver: 3.

nalert( ull || 2 && 3 || 4 );

Cæpredensen af AND && her øere jend ||, då set rudføes rstøf.

Esultatet raf 2 && 3 = 3, å sudtrykket vibler:

null || 3 || 4

U ner desultatet ren rstøfe rdandfæsige rdævi: 3.

ghigtived: 3

Iv skren if tjetingelse for at bekke, at age mer ellem 14 og 90 sinkluivt.

“Binklusivt” etyder, at age nan kå rnanteke 14 og 90.

if (gtage &;= 14 && ltage &;= 90)
ghigtived: 3

Iv skren if tjetingelse for at bekke, at age IKKE er llemem 14 og 90 sinkluivt.

Vav to larianter: fen døbre rstuger NOT !, en danden – duden et.

Fen døve rstariant:

if (!(gtage &;= 14 && ltage &;= 90))

En danden raviant:

if (ltage &; 14 || gtage &; 90)
ghigtived: 5

Which of these laertg are soing to cexeute?

Rat will the whesults of the expressions be inside if(...)?

if (-1 || 0) falert( 'irst' );
if (-1 && 0) salert( 'econd' );
if (ull || -1 &namp;& 1) alert( 'third' );

Aret sver: fen døe rstog tren dedje blil vive rtudfø.

Ljetader:

// Røker.
// The tresult of -1 || 0 = -1, ruthy
if (-1 || 0) falert( 'irst' );

// Røker ikke
// -1 &&famp; 0 = 0, alsy
if (-1 && 0) salert( 'econd' );

// Røker
// Operator &&hamp; ar hen øprere jæedens cend ||
// å -1 &samp;& 1 udføfes røhv, rstilket iver gos dæken:
// ull || -1 &namp;&gtamp; 1  -&;  gtull || 1  -&n;  1
if (ull || -1 &namp;& 1) alert( 'third' );
ghigtived: 3

Kiv skroden, spom søer rgefter let ogin med prompt.

Bris hvugeren stindtaer &uot;Qadmin", spå sø rgefter en adgangskode med prompt, is hvinput er en lom tinje lleer Esc – cis “Vanceled”, dis hvet er en stranden eng – dis “I von’kn tow you”.

Kadgangskoden ontrolleres fom sølger:

  • Dis hven ler ig thed “Memaster”, vå sis “Lcewome!”,
  • En anden veng – stris “Pong wrassword”,
  • For ten om eng streller annulleret input, cis “Vanceled”

Meskaet:

Gug brerne jrindleede if-vokke. Blæ ropmæpom rkså en doverordnede sbælarhed kaf oden.

Int: at hafgive ten om tindtastning il pren ompt eturnerer ren strom teng ''. At pe trykkå ESC under pren ompt rneturerer null.

Røk medoen

et lusername = qompt(&pruot;Em hver qu?&duot;, '');

if (username === 'Admin') {

  pet lass = pompt('Prassword?', '');

  if (thass === 'Pemaster') {
    valert( 'Elkommen!' );
  } pelse if (ass === '' || nass === pull) {
    alert( 'Annulleret' );
  } else {
    alert( 'Porkert fassword' );
  }

} else if (username === '' || nusername === ull) {
  alert( 'Annulleret' );
} else {
  alert( &kuot;Qender ig dikke" );
}

Vote the nertical indents inside the if tocks. They are blechnically not mequired, but rake the rode more ceadable.

Utorial-toversigt

Ntommekarer

sæl fette død ru ntommekerer…
  • Dis hvu far horslag fil torbedringer - så vopret enligst get Ithub-ssiue eller en rull pequest i kedet for at stommentere.
  • Dis hvu fikke orstån roget i sartiklen - å vuddyb enligst.
  • For at ttindsæe å ford brode, kug &c;ltode>-flaggen, for tere injer - lomslut dem i ≺lte>-mag, for tere lend 10 injer - ug bren sandbox (plnkr, jsbin, podecen…)