12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844 |
- <!DOCTYPE html>
- <html lang="es">
- <head>
- <meta charset="utf-8">
- <meta name="generator" content="gendoc 1.0.0: https://gitlab.com/bztsrc/gendoc">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Aprendiendo PHP, MySQL y JavaScript</title>
- <style rel="logic">*{box-sizing:border-box;font-family:inherit;}body {background:rgba(0,0,0,0.05);font-weight:400;font-size:16px;}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:26px 0;padding:0;border-top:1px solid;}br:after,br:before{display:table;content:""}br{clear:both;}h1,h2,h3,h4,h5,h6{clear:both;margin:0px 0px 20px 0px;padding-top:4px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}p{margin:0 0 24px}a{cursor:pointer;}h1{font-size:175%}h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}pre,samp,code,var,kbd{font-family:Monaco,Consolas,Liberation Mono,Courier,monospace;font-variant-ligatures:none;}pre,code{display:block;overflow:auto;white-space:pre;font-size:14px;line-height:16px!important;}pre{padding:12px;margin:0px;}code{padding:0 0 12px 0;margin:12px 12px 0px 2px;background:url(data:type/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAgCAYAAADT5RIaAAAAFklEQVQI12NgYGDgZWJgYGCgDkFtAAAWnAAsyj4TxgAAAABJRU5ErkJggg==) 0 0 repeat;}.lineno{display:block;padding:0px 4px 0px 4px;margin:12px 0px 0px 0px;opacity:.4;text-align:right;float:left;white-space:pre;font-size:12px;line-height:16px!important;}pre .hl_b,samp .hl_b,code .hl_b{display:block;}blockquote{margin:0px;padding:12px;}blockquote>span:first-child::before{content:url(data:type/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAgCAYAAABU1PscAAABRElEQVRYw+3WTytEURjH8c/4l1JTpKxsyEbYWFkpG+UVKOWFeAts7eytbJSysLLVxIKNFAslwhSlUQabUdM0xm0e967Ot+7inPN8z+13z73nXBKJRCIRoJSxbggrmMMInlHBIWoF+KEAQ9jAaJuxe2zhJUe/Iz0ZahZ/uTmMYT1nPxxg/I/xWQzn6IcD1IIha//wkEIBKhlq+nP0wwHOsYuvDjWvOfod6c1Yd9O4ZjDQZvwAbzn6oRVofpKbqLf0P+GxAD8cAO7w0NJ3WqAfDlBCuan9gaMC/XCA+cbJ+sMRqgX6oQCTWGtqX2O/QL8tfRlqyljGUlPgW2y3+SDz8Lv6mRvEQmPbm25ZqQvs/LHtRf3wCkxgtaWvij2cZJg36ocD/Pw91nGJY5zhM+O8UT/8Ck01TswrvHcxb9RPJBKJRDF8AyNbWk4WFTIzAAAAAElFTkSuQmCC);float:left;vertical-align:top;}.ui1,.ui2,.ui3,.ui4,.ui5,.ui6{display:inline-block;height:24px!important;line-height:24px!important;padding:0px 4px;margin:-2px 0px -2px;}kbd{display:inline-block;font-weight:700;border:1px solid #888;height:24px!important;padding:0px 4px;margin:-2px 0px -2px;border-radius:4px;background-image:linear-gradient(#ddd 0%,#eee 10%,#bbb 10%,#ccc 30%,#fff 85%,#eee 85%,#888 100%);}.mouseleft,.mouseright,.mousewheel{display:inline-block;min-width:16px;height:24px!important;padding:0px;margin:-2px 0px 0px 0px;vertical-align:middle;}.mouseleft::before{content:url(data:type/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAYCAMAAADEfo0+AAAAe1BMVEUAAACoqKj9/f2zs7O1tbWRkZGlpaWsrKybm5u2traNjY2Wlpanp6empqaYmJiPj4+3t7f5+fmjo6P19fXu7u6ZmZnx8fHi4uLm5ube3t7q6uqwsLC0tLS7u7u4uLi/v7/W1tbDw8PLy8vPz8/T09Pa2trHx8eIiIhERkShhqFGAAAAAXRSTlMAQObYZgAAAI5JREFUGNNV0EcCwjAMRFEB6R2DKSGQUBLp/idEjsG23m7+cgAMIsJWwR8Z235pumDTnkUbv+lg7CIfTqvSbTquxsGFfjWXLlwsdOFs+XC1EHAWOEwCh4/A4S1weAkcFoHDU0CI8zGQx1Cpe0BVAO0j0PIfiR4cnZjLdHP7abQ9VRVZnaZ1VvjfO42o7edfH3EoHZS6XE4AAAAASUVORK5CYII=);}.mouseright::before{content:url(data:type/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAYCAMAAADEfo0+AAAAe1BMVEUAAACoqKj9/f2zs7O1tbWRkZGlpaWsrKybm5u2traNjY2Wlpanp6empqaYmJiPj4+3t7f5+fmjo6P19fXu7u6ZmZnx8fHi4uLm5ube3t7q6uqwsLC0tLS7u7u4uLi/v7/W1tbDw8PLy8vPz8/T09Pa2trHx8eIiIhERkShhqFGAAAAAXRSTlMAQObYZgAAAI9JREFUGNNV0NkWgjAMRdGozFOxWgdEcYLk/7/Q0EpL9tNd5/ECzLRCIoJF20zdlsinTbRn5Eu0O8zIl/Jk+dAPR4uWUo6d5QNenBDOTghXJ4RRQMCnwOErcPgIHN4Ch0ng8BIQ4nxYyWOo9H1FVwDqsaL4j8T0nknmy0xz+2uMO1UXWZ2mdVbo8LtBNK2dP/2+KB2shyfVAAAAAElFTkSuQmCC);}.mousewheel::before{content:url(data:type/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAYCAMAAADEfo0+AAAAe1BMVEUAAACzs7OoqKisrKyRkZGlpaX9/f22trabm5uNjY2mpqanp6ePj4+1tbWYmJi3t7eWlpajo6OZmZmwsLD5+fnu7u7x8fHi4uLW1tbm5ube3t7T09Pq6ur19fW4uLi7u7u0tLTa2trPz8+/v7/Dw8PLy8vHx8eIiIhERkS4354xAAAAAXRSTlMAQObYZgAAAKdJREFUGNNV0NkagiAUhdHjPAECzWWlWdL7P2Fno/nJumHzXx4iMMI5YeivVVOX592k2vkfy/1CxvjL6L6KJAd9ZF+GVxP144Eh4B170kPHEPAOmtwFEPxw5E6A4AeHKyD4wWEABD84nAHBDw43QPCDwyvA4RPgMAU4vAOO0mLcKFJqzHPDNETisSH4HpntVzbDyazaLZSdj2qqsk6Suqw2d7fO2fnmP7kAJW9a/HbiAAAAAElFTkSuQmCC);}footer{width:100%;padding:0 3.236em;}footer p{opacity:0.6;}footer small{opacity:0.5;}footer a{text-decoration:none;color:inherit;}footer a:hover{text-decoration:underline;}dl{margin:0 0 24px 0;padding:0px;}dt{font-weight:700;margin-bottom:12px;}dd{margin:0 0 12px 24px;}.table table{margin:0px;border-collapse:collapse;border-spacing:0;empty-cells:show;border:1px solid;width:100%;}th{font-weight:700;padding:8px 16px;overflow:visible;vertical-align:middle;white-space:nowrap;border:1px solid;}th.wide{width:100%;}td{padding:8px 16px;overflow:visible;vertical-align:middle;font-size:90%;border:1px solid;}td.right{text-align:right;}table.grid{margin:0px;padding:0px;border:none!important;background:none!important;border-spacing:0;border:0px!important;empty-cells:show;width:100%;}table.grid tr, table.grid td{margin:0px;padding:0px;overflow:hidden;vertical-align:top;background:none!important;border:0px!important;font-size:90%;}div.frame{position:absolute;width:100%;min-height:100%;margin:0px;padding:0px;max-width:1100px;top:0px;left:0px;}#_m{margin-left:300px;min-height:100%;}div.title{display:block;width:300px;padding-top:.809em;padding-bottom:.809em;margin-bottom:.809em;text-align:center;font-weight:700;}div.title>a{padding:4px 6px;margin-bottom:.809em;font-size:150%;}div.title>a:hover{background:transparent;}div.title>a>img{max-width:280px;border:0px;padding:0px;margin:0px;}div.title input{display:none;width:270px;border-radius:50px;padding:6px 12px;font-size:80%;box-shadow:inset 0 1px 3px #ddd;transition:border .3s linear;}div.title input:required:invalid{background:#fcfcfc url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAASFBMVEUAAAC6urq7u7y7vLy8vL3Dw8TLzM67urq8vL29vr69vr/AwMK5ubm5ubm4uLi5t7fAwMC/vr/FxMXBwsPExcW+u7vDw8S4uLiryZHFAAAAF3RSTlMA9vGttk4lfbWnpJQG0MpzYEIglFRCGzMa+EsAAAB0SURBVBjTbY5bCsMwDAQl2U6cR5s0fcz9b1oLpWBC52dhENqVRsmG5SIn60wwryEm0LQkbUacAveh5XGDh4uKfsQZlOqpJAkS5gHPUyzgYdeLjB6/H7lvGbzlssP2WDoRGGzxrVRD82sHRukZ/xhv7tns/QXrhgcaFdOKBwAAAABJRU5ErkJggg==) no-repeat 10px 50%;}div.title input:focus{background:#fcfcfc!important;}div.version{margin-top:.4045em;margin-bottom:.809em;font-size:90%;}nav.side {display:block;position:fixed;top:0;bottom:0;left:0;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;font-weight:400;z-index:999;}nav.mobile {display:none;font-weight:bold;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1;}nav a{color:inherit;text-decoration:none;display:block;}nav.side>div{position:relative;overflow-x:hidden;overflow-y:scroll;width:320px;height:100%;padding-bottom:64px;}div.nav p{height:32px;line-height:32px;padding:0 1.618em;margin:12px 0px 0px 0px;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap;-webkit-font-smoothing:antialiased}div.nav li>.current,div.nav li>ul{display:none;}div.nav li>a,div.nav li>label{display:block;}div.nav a,div.nav ul>li>label,div.nav ul>li>.current{width:300px;line-height:18px;padding:0.4045em 1.618em;}div.nav a,div.nav ul>li>label{cursor:pointer;}div.nav .current{font-weight:700;border-top:1px solid;border-bottom:1px solid #c9c9c9;}div.nav ul>li>ul>li>a{border-right:solid 1px #c9c9c9;font-size:90%;}div.nav ul>li>ul>li.h2>a{padding:0.4045em 2.427em;}div.nav ul>li>ul>li.h3>a{padding:.4045em 1.618em .4045em 4.045em;}div.nav ul>li>ul>li.h4>a{padding:.4045em 1.618em .4045em 5.663em;}div.nav ul>li>ul>li.h5>a{padding:.4045em 1.618em .4045em 7.281em;}div.nav ul>li>ul>li.h6>a{padding:.4045em 1.618em .4045em 8.899em;}div.nav ul,div.nav li,.breadcrumbs{margin:0px!important;padding:0px;list-style:none;}ul.breadcrumbs,.breadcrumbs li{display:inline-block;}.menu{display:inline-block;position:absolute;top:12px;right:20px;cursor:pointer;width:1.5em;height:1.5em;vertical-align:middle;padding:16px 24px 16px 24px;border:solid 1px rgba(255, 255, 255, 0.5);border-radius:5px;background:no-repeat center center url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");}.home{display:inline-block;max-width:16px;max-height:16px;line-height:16px;margin:0 5px 0 0;cursor:pointer;}.home::before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAS1BMVEUAAAD8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/PyxWsjVAAAAGHRSTlMAx6oLLRnYiXFEvPbey518NQbsj11QKhQ+J0ktAAAAbElEQVQY053ISQ7DMAwEwRYpavHurPz/SwMoMpD46L4MpvBTB0zTP+R9z55Ebh0yQL5DaDA+0WVR3h3Gikp9iPKF9MIkQhSDwUlGHCLQxhLGJkpLZcNYS/tdyorP/DQ7HgBqKRUgHBDcw2X4AFsJCSXB/5UVAAAAAElFTkSuQmCC);}h1>a,h2>a,h3>a,h4>a,h5>a,h6>a{display:none;max-width:16px;max-height:24px;margin:-8px 0 0 5px;vertical-align:middle;}h1:hover>a,h2:hover>a,h3:hover>a,h4:hover>a,h5:hover>a,h6:hover>a{display:inline-block;text-decoration:none!important;}h1>a::before,h2>a::before,h3>a::before,h4>a::before,h5>a::before,h6>a::before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAiBAMAAACkb0T0AAAAMFBMVEUAAAD8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/Pz8/PzS+N+gAAAAD3RSTlMABab5cVY73o4k2cJTPb1Q83MyAAAAh0lEQVQY02P4DwWkM7YxsNiDGJ8EGBgmgxiKDDkCLAwgAQn7hQxARiGj8v8/IIYDi2a9GZChHiAnMLmBjeGTaIBUAMcFaYaNvA2sC1kD9RkSOCwZF7IW/WdgSP4+yYHlP5Bx/r+RgDiIIfW5kVEfyHBgPMYgBLLdkoEBKABkfHZgyIa7h04MAOVty/RC/PhoAAAAAElFTkSuQmCC);}h1>a:hover::after,h2>a:hover::after,h3>a:hover::after,h4>a:hover::after,h5>a:hover::after,h6>a:hover::after{content:"Enlace permanente a este encabezado";display:block;padding:12px;position:absolute;margin:-8px 8px;font-weight:400;font-size:14px;background:rgba(0,0,0,.8);color:#fff;border-radius:4px;}input[type=radio]{display:none;}input[type=radio]:checked ~ ul{display:block;}.fig{margin-top:-12px;padding-bottom:12px;display:block;text-align:center;font-style:italic;}div.page{width:100%;padding:1.618em 3.236em;margin:auto;line-height:24px;}div.page ol{margin:0 0 24px 12px;padding-left:0px;}div.page ul{margin:0 0 24px 24px;list-style:disc outside;padding-left:0px;}div.page ol{list-style-type:none;counter-reset:list;}div.page ol li:before{counter-increment:list;content:counters(list,".") ". ";}div.pre{overflow-x:auto;margin:1px 0px 24px;}div.table{overflow-x:auto;margin:0px 0px 24px;}div.info,div.hint,div.warn{padding:12px;line-height:24px;margin-bottom:24px;}div.info>p,div.hint>p,div.warn>p{margin:0px;}div.info>p:first-child,div.hint>p:first-child,div.warn>p:first-child{display:block;font-weight:700;padding:2px 8px 2px;margin:-12px -12px 8px -12px;vertical-align:middle;}div.info>p:first-child>span,div.hint>p:first-child>span,div.warn>p:first-child>span{display:block;max-height:20px;margin:0px;vertical-align:middle;}div.info>p:first-child>span::before,div.hint>p:first-child>span::before,div.warn>p:first-child>span::before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAApUlEQVQ4y82TwQnDMAxFpVJyLPiSbbJETr13Fo+RZZxLRghkgnSEEni9ONS0sg1tDv3wwfjbX7Iki/wVAAd4IPBCiHuudrkHVvJYgb50eaOO7cMkpv0eeQGukYuRiUsNvBFpSvTJ0P2un0Sk+6Le3WEG58yBFrjt61r7Qqbij0gLIX3CaPgOqtqoaiMig6GPtTbOwCVyLraxMEj3yPIgHTLKv3ymJySzt16bW/sWAAAAAElFTkSuQmCC);}p>div:last-child,dd>*:last-child,td>*:last-child,li>ol,li>ul{margin-bottom:0px!important;}img{border:0px;}img.imgt{display:inline-block;max-height:22px!important;padding:0px;margin:-4px 0px 0px 0px;vertical-align:middle;}img.imgl{float:left;margin:0px 12px 12px 0px;}img.imgr{float:right;margin:0px 0px 12px 12px;}div.imgc{text-align:center;padding:0px;margin:0 12px 0 0;clear:both;}img.imgc{max-width:100%%;}img.imgw{width:100%;margin-bottom:12px;clear:both;}.btn{border-radius:2px;line-height:normal;white-space:nowrap;color:inherit;text-align:center;cursor:pointer;font-size:100%;padding:4px 12px 8px;border:1px solid rgba(0,0,0,.1);text-decoration:none;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);vertical-align:middle;*zoom:1;user-select:none;transition:all .1s linear}.prev{float:left;}.prev::before{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAANlBMVEUAAABAQEBAQEBAQEBAQEBAQEBAQEBBQUFAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEAWW5SEAAAAEnRSTlMA/fC9r2kXAjMN34F3ZlUu6B40Y5wGAAAAVElEQVQY08XPSw6AIAwEUIbS8lFE739Zq6luGtbM8iXTTMOCZGECiCX/MhIQTyCNz+SRrUc1MWKVvR5KYCN6pUFDRtqq4Sql9IYJ+aI/70f4qdOHblOhAuUcC5KnAAAAAElFTkSuQmCC);}.next{float:right;}.next::after{content:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASBAMAAACk4JNkAAAAJFBMVEUAAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEC4lvDfAAAAC3RSTlMAx711ZjlFPh3zLASjkrYAAABDSURBVAjXY6AUsGhvcgAzOKR3797YAGIx7t5mvVsAxPLevZ159xYQS3v3zgLrTSDW7tTQBcy7ESyELEIHwhSEyQjbAAH1HsMY8tCHAAAAAElFTkSuQmCC);}@media screen and (max-width:991.98px){nav.mobile{display:block;}nav.side{display:none;}#menuchk:checked ~ nav.side{display:block;}#_m{margin-left:0px;}}#_prefacio:checked ~ nav div ul li[rel=prefacio]>.toc,#_introduccion_contenido_dinamico_web:checked ~ nav div ul li[rel=introduccion_contenido_dinamico_web]>.toc,#_configuracion_servidor_desarrollo:checked ~ nav div ul li[rel=configuracion_servidor_desarrollo]>.toc,#_introduccion_php:checked ~ nav div ul li[rel=introduccion_php]>.toc,#_expresiones_control_flujo_php:checked ~ nav div ul li[rel=expresiones_control_flujo_php]>.toc,#_funciones_objetos_php:checked ~ nav div ul li[rel=funciones_objetos_php]>.toc,#_arrays_php:checked ~ nav div ul li[rel=arrays_php]>.toc,#_php_practico:checked ~ nav div ul li[rel=php_practico]>.toc,#_introduccion_mysql:checked ~ nav div ul li[rel=introduccion_mysql]>.toc,#_dominando_mysql:checked ~ nav div ul li[rel=dominando_mysql]>.toc,#_novedades_php_8_mysql_8:checked ~ nav div ul li[rel=novedades_php_8_mysql_8]>.toc,#_accediendo_mysql_utilizando_php:checked ~ nav div ul li[rel=accediendo_mysql_utilizando_php]>.toc,#_manejo_formularios:checked ~ nav div ul li[rel=manejo_formularios]>.toc,#_cookies_sesiones_autenticacion:checked ~ nav div ul li[rel=cookies_sesiones_autenticacion]>.toc,#_explorando_javascript:checked ~ nav div ul li[rel=explorando_javascript]>.toc,#_expresiones_control_flujo_javascript:checked ~ nav div ul li[rel=expresiones_control_flujo_javascript]>.toc,#_funciones_objetos_arrays_javascript:checked ~ nav div ul li[rel=funciones_objetos_arrays_javascript]>.toc,#_validacion_manejo_errores_javascript_php:checked ~ nav div ul li[rel=validacion_manejo_errores_javascript_php]>.toc,#_utilizando_comunicaciones_asincronas:checked ~ nav div ul li[rel=utilizando_comunicaciones_asincronas]>.toc,#_introduccion_css:checked ~ nav div ul li[rel=introduccion_css]>.toc,#_css_avanzado_css3:checked ~ nav div ul li[rel=css_avanzado_css3]>.toc,#_accediendo_css_desde_javascript:checked ~ nav div ul li[rel=accediendo_css_desde_javascript]>.toc,#_introduccion_jquery:checked ~ nav div ul li[rel=introduccion_jquery]>.toc,#_introduccion_jquery_mobile:checked ~ nav div ul li[rel=introduccion_jquery_mobile]>.toc,#_introduccion_react:checked ~ nav div ul li[rel=introduccion_react]>.toc,#_introduccion_html5:checked ~ nav div ul li[rel=introduccion_html5]>.toc,#_canvas_html5:checked ~ nav div ul li[rel=canvas_html5]>.toc,#_audio_video_html5:checked ~ nav div ul li[rel=audio_video_html5]>.toc,#_otras_caracteristicas_html5:checked ~ nav div ul li[rel=otras_caracteristicas_html5]>.toc,#_uniendo_todo:checked ~ nav div ul li[rel=uniendo_todo]>.toc,#_soluciones_preguntas_capitulos:checked ~ nav div ul li[rel=soluciones_preguntas_capitulos]>.toc,div.page{display:none;}#_prefacio:checked ~ nav div ul li[rel=prefacio]>ul,#_prefacio:checked ~ nav div ul li[rel=prefacio]>.current,#_prefacio:checked ~ div div[rel=prefacio],#_introduccion_contenido_dinamico_web:checked ~ nav div ul li[rel=introduccion_contenido_dinamico_web]>ul,#_introduccion_contenido_dinamico_web:checked ~ nav div ul li[rel=introduccion_contenido_dinamico_web]>.current,#_introduccion_contenido_dinamico_web:checked ~ div div[rel=introduccion_contenido_dinamico_web],#_configuracion_servidor_desarrollo:checked ~ nav div ul li[rel=configuracion_servidor_desarrollo]>ul,#_configuracion_servidor_desarrollo:checked ~ nav div ul li[rel=configuracion_servidor_desarrollo]>.current,#_configuracion_servidor_desarrollo:checked ~ div div[rel=configuracion_servidor_desarrollo],#_introduccion_php:checked ~ nav div ul li[rel=introduccion_php]>ul,#_introduccion_php:checked ~ nav div ul li[rel=introduccion_php]>.current,#_introduccion_php:checked ~ div div[rel=introduccion_php],#_expresiones_control_flujo_php:checked ~ nav div ul li[rel=expresiones_control_flujo_php]>ul,#_expresiones_control_flujo_php:checked ~ nav div ul li[rel=expresiones_control_flujo_php]>.current,#_expresiones_control_flujo_php:checked ~ div div[rel=expresiones_control_flujo_php],#_funciones_objetos_php:checked ~ nav div ul li[rel=funciones_objetos_php]>ul,#_funciones_objetos_php:checked ~ nav div ul li[rel=funciones_objetos_php]>.current,#_funciones_objetos_php:checked ~ div div[rel=funciones_objetos_php],#_arrays_php:checked ~ nav div ul li[rel=arrays_php]>ul,#_arrays_php:checked ~ nav div ul li[rel=arrays_php]>.current,#_arrays_php:checked ~ div div[rel=arrays_php],#_php_practico:checked ~ nav div ul li[rel=php_practico]>ul,#_php_practico:checked ~ nav div ul li[rel=php_practico]>.current,#_php_practico:checked ~ div div[rel=php_practico],#_introduccion_mysql:checked ~ nav div ul li[rel=introduccion_mysql]>ul,#_introduccion_mysql:checked ~ nav div ul li[rel=introduccion_mysql]>.current,#_introduccion_mysql:checked ~ div div[rel=introduccion_mysql],#_dominando_mysql:checked ~ nav div ul li[rel=dominando_mysql]>ul,#_dominando_mysql:checked ~ nav div ul li[rel=dominando_mysql]>.current,#_dominando_mysql:checked ~ div div[rel=dominando_mysql],#_novedades_php_8_mysql_8:checked ~ nav div ul li[rel=novedades_php_8_mysql_8]>ul,#_novedades_php_8_mysql_8:checked ~ nav div ul li[rel=novedades_php_8_mysql_8]>.current,#_novedades_php_8_mysql_8:checked ~ div div[rel=novedades_php_8_mysql_8],#_accediendo_mysql_utilizando_php:checked ~ nav div ul li[rel=accediendo_mysql_utilizando_php]>ul,#_accediendo_mysql_utilizando_php:checked ~ nav div ul li[rel=accediendo_mysql_utilizando_php]>.current,#_accediendo_mysql_utilizando_php:checked ~ div div[rel=accediendo_mysql_utilizando_php],#_manejo_formularios:checked ~ nav div ul li[rel=manejo_formularios]>ul,#_manejo_formularios:checked ~ nav div ul li[rel=manejo_formularios]>.current,#_manejo_formularios:checked ~ div div[rel=manejo_formularios],#_cookies_sesiones_autenticacion:checked ~ nav div ul li[rel=cookies_sesiones_autenticacion]>ul,#_cookies_sesiones_autenticacion:checked ~ nav div ul li[rel=cookies_sesiones_autenticacion]>.current,#_cookies_sesiones_autenticacion:checked ~ div div[rel=cookies_sesiones_autenticacion],#_explorando_javascript:checked ~ nav div ul li[rel=explorando_javascript]>ul,#_explorando_javascript:checked ~ nav div ul li[rel=explorando_javascript]>.current,#_explorando_javascript:checked ~ div div[rel=explorando_javascript],#_expresiones_control_flujo_javascript:checked ~ nav div ul li[rel=expresiones_control_flujo_javascript]>ul,#_expresiones_control_flujo_javascript:checked ~ nav div ul li[rel=expresiones_control_flujo_javascript]>.current,#_expresiones_control_flujo_javascript:checked ~ div div[rel=expresiones_control_flujo_javascript],#_funciones_objetos_arrays_javascript:checked ~ nav div ul li[rel=funciones_objetos_arrays_javascript]>ul,#_funciones_objetos_arrays_javascript:checked ~ nav div ul li[rel=funciones_objetos_arrays_javascript]>.current,#_funciones_objetos_arrays_javascript:checked ~ div div[rel=funciones_objetos_arrays_javascript],#_validacion_manejo_errores_javascript_php:checked ~ nav div ul li[rel=validacion_manejo_errores_javascript_php]>ul,#_validacion_manejo_errores_javascript_php:checked ~ nav div ul li[rel=validacion_manejo_errores_javascript_php]>.current,#_validacion_manejo_errores_javascript_php:checked ~ div div[rel=validacion_manejo_errores_javascript_php],#_utilizando_comunicaciones_asincronas:checked ~ nav div ul li[rel=utilizando_comunicaciones_asincronas]>ul,#_utilizando_comunicaciones_asincronas:checked ~ nav div ul li[rel=utilizando_comunicaciones_asincronas]>.current,#_utilizando_comunicaciones_asincronas:checked ~ div div[rel=utilizando_comunicaciones_asincronas],#_introduccion_css:checked ~ nav div ul li[rel=introduccion_css]>ul,#_introduccion_css:checked ~ nav div ul li[rel=introduccion_css]>.current,#_introduccion_css:checked ~ div div[rel=introduccion_css],#_css_avanzado_css3:checked ~ nav div ul li[rel=css_avanzado_css3]>ul,#_css_avanzado_css3:checked ~ nav div ul li[rel=css_avanzado_css3]>.current,#_css_avanzado_css3:checked ~ div div[rel=css_avanzado_css3],#_accediendo_css_desde_javascript:checked ~ nav div ul li[rel=accediendo_css_desde_javascript]>ul,#_accediendo_css_desde_javascript:checked ~ nav div ul li[rel=accediendo_css_desde_javascript]>.current,#_accediendo_css_desde_javascript:checked ~ div div[rel=accediendo_css_desde_javascript],#_introduccion_jquery:checked ~ nav div ul li[rel=introduccion_jquery]>ul,#_introduccion_jquery:checked ~ nav div ul li[rel=introduccion_jquery]>.current,#_introduccion_jquery:checked ~ div div[rel=introduccion_jquery],#_introduccion_jquery_mobile:checked ~ nav div ul li[rel=introduccion_jquery_mobile]>ul,#_introduccion_jquery_mobile:checked ~ nav div ul li[rel=introduccion_jquery_mobile]>.current,#_introduccion_jquery_mobile:checked ~ div div[rel=introduccion_jquery_mobile],#_introduccion_react:checked ~ nav div ul li[rel=introduccion_react]>ul,#_introduccion_react:checked ~ nav div ul li[rel=introduccion_react]>.current,#_introduccion_react:checked ~ div div[rel=introduccion_react],#_introduccion_html5:checked ~ nav div ul li[rel=introduccion_html5]>ul,#_introduccion_html5:checked ~ nav div ul li[rel=introduccion_html5]>.current,#_introduccion_html5:checked ~ div div[rel=introduccion_html5],#_canvas_html5:checked ~ nav div ul li[rel=canvas_html5]>ul,#_canvas_html5:checked ~ nav div ul li[rel=canvas_html5]>.current,#_canvas_html5:checked ~ div div[rel=canvas_html5],#_audio_video_html5:checked ~ nav div ul li[rel=audio_video_html5]>ul,#_audio_video_html5:checked ~ nav div ul li[rel=audio_video_html5]>.current,#_audio_video_html5:checked ~ div div[rel=audio_video_html5],#_otras_caracteristicas_html5:checked ~ nav div ul li[rel=otras_caracteristicas_html5]>ul,#_otras_caracteristicas_html5:checked ~ nav div ul li[rel=otras_caracteristicas_html5]>.current,#_otras_caracteristicas_html5:checked ~ div div[rel=otras_caracteristicas_html5],#_uniendo_todo:checked ~ nav div ul li[rel=uniendo_todo]>ul,#_uniendo_todo:checked ~ nav div ul li[rel=uniendo_todo]>.current,#_uniendo_todo:checked ~ div div[rel=uniendo_todo],#_soluciones_preguntas_capitulos:checked ~ nav div ul li[rel=soluciones_preguntas_capitulos]>ul,#_soluciones_preguntas_capitulos:checked ~ nav div ul li[rel=soluciones_preguntas_capitulos]>.current,#_soluciones_preguntas_capitulos:checked ~ div div[rel=soluciones_preguntas_capitulos],#_:checked ~ div div[rel=_]{display:block;}</style>
- <style rel="theme">hr,table,th,td{border-color:#e1e4e5;}th{background:#d6d6d6;}tr:nth-child(odd){background:#f3f6f6;}a{text-decoration:none;color:#2980B9;}samp{background:rgba(0,0,0,.1);color:#408040;}.content{background:#fcfcfc;color:#404040;font-family:Lato,Helvetica,Neue,Arial,Deja Vu,sans-serif;}.title,.home,h1>a,h2>a,h3>a,h4>a,h5>a,h6>a{background:#2980B9;color:#fcfcfc;}.version{color:rgba(255,255,255,0.3);}.search{border:1px solid #2472a4;background:#fcfcfc;}.nav{background:#343131;color:#d9d9d9;}.nav p{color:#55a5d9;}.nav label:hover,.nav a:hover{background:#4e4a4a;}.nav .current{background:#fcfcfc;color:#404040;}.nav li>ul>li{background:#e3e3e3;}.nav li>ul>li>a{color:#404040;}.nav li>ul>li>a:hover{background:#d6d6d6;}.pre {border:1px solid #e1e4e5;background:#f8f8f8;}.info{background:#e7f2fa;}.info>p:first-child{background:#6ab0de;color:#fff;}.hint{background:#dbfaf4;}.hint>p:first-child{background:#1abc9c;color:#fff;}.warn{background:#ffedcc;}.warn>p:first-child{background:#f0b37e;color:#fff;}.btn{background:#f3f6f6;}.btn:hover{background:#e5ebeb;}.ui1{font-family:Serif;font-size:12px;border:1px solid #555;border-radius:3px;background-image:linear-gradient(#fff 0%,#fff 1%,#f2f2f2 1%,#ebebeb 50%,#ddd 50%,#cfcfcf 99%,#fff 99%,#fff 100%);}.hl_h{background-color:#ccffcc;}.hl_c{color:#808080;font-style:italic;}.hl_p{color:#1f7199;}.hl_o{color:#404040;}.hl_n{color:#0164eb;}.hl_s{color:#986801;}.hl_t{color:#60A050;}.hl_k{color:#a626a4;}.hl_f{color:#2a9292;}.hl_v{color:#e95649;}</style>
- </head>
- <body>
- <div class="frame content">
- <input type="radio" name="page" id="_" checked><input type="radio" name="page" id="_prefacio"><input type="radio" name="page" id="_introduccion_contenido_dinamico_web"><input type="radio" name="page" id="_configuracion_servidor_desarrollo"><input type="radio" name="page" id="_introduccion_php"><input type="radio" name="page" id="_expresiones_control_flujo_php"><input type="radio" name="page" id="_funciones_objetos_php"><input type="radio" name="page" id="_arrays_php"><input type="radio" name="page" id="_php_practico"><input type="radio" name="page" id="_introduccion_mysql"><input type="radio" name="page" id="_dominando_mysql"><input type="radio" name="page" id="_novedades_php_8_mysql_8"><input type="radio" name="page" id="_accediendo_mysql_utilizando_php"><input type="radio" name="page" id="_manejo_formularios"><input type="radio" name="page" id="_cookies_sesiones_autenticacion"><input type="radio" name="page" id="_explorando_javascript"><input type="radio" name="page" id="_expresiones_control_flujo_javascript"><input type="radio" name="page" id="_funciones_objetos_arrays_javascript"><input type="radio" name="page" id="_validacion_manejo_errores_javascript_php"><input type="radio" name="page" id="_utilizando_comunicaciones_asincronas"><input type="radio" name="page" id="_introduccion_css"><input type="radio" name="page" id="_css_avanzado_css3"><input type="radio" name="page" id="_accediendo_css_desde_javascript"><input type="radio" name="page" id="_introduccion_jquery"><input type="radio" name="page" id="_introduccion_jquery_mobile"><input type="radio" name="page" id="_introduccion_react"><input type="radio" name="page" id="_introduccion_html5"><input type="radio" name="page" id="_canvas_html5"><input type="radio" name="page" id="_audio_video_html5"><input type="radio" name="page" id="_otras_caracteristicas_html5"><input type="radio" name="page" id="_uniendo_todo"><input type="radio" name="page" id="_soluciones_preguntas_capitulos">
- <input type="checkbox" id="menuchk" style="display:none;"><nav class="side nav"><div>
- <div class="title"><a href="https://ricardogj08.github.io/aprendiendo-php-mysql-javascript/">Aprendiendo PHP, MySQL y JavaScript</a><div class="version">6.0</div><input id="_q" class="search" type="text" required="required" onkeyup="s(this.value);"></div> <div id="_s" class="nav"></div>
- <div id="_t" class="nav">
- <p>Capítulo 0</p>
- <ul>
- <li rel="prefacio"><label class="toc" for="_prefacio">Prefacio</label><div class="current">Prefacio</div><ul>
- <li class="h2"><a href="#prefacio_audiencia" onclick="m()">Audiencia</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 1</p>
- <ul>
- <li rel="introduccion_contenido_dinamico_web"><label class="toc" for="_introduccion_contenido_dinamico_web">Introducción al contenido dinámico de la web</label><div class="current">Introducción al contenido dinámico de la web</div><ul>
- <li class="h2"><a href="#introduccion_contenido_dinamico_web_http_html_conceptos_basicos_berners_lee" onclick="m()">HTTP y HTML: Los conceptos básicos de Berners-Lee</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 2</p>
- <ul>
- <li rel="configuracion_servidor_desarrollo"><label class="toc" for="_configuracion_servidor_desarrollo">Configuración de un servidor de desarrollo</label><div class="current">Configuración de un servidor de desarrollo</div><ul>
- <li class="h2"><a href="#configuracion_servidor_desarrollo_que_es_wamp_mamp_lamp" onclick="m()">¿Qué es WAMP, MAMP o LAMP?</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 3</p>
- <ul>
- <li rel="introduccion_php"><label class="toc" for="_introduccion_php">Introducción a PHP</label><div class="current">Introducción a PHP</div><ul>
- <li class="h2"><a href="#introduccion_php_integrando_php_dentro_html" onclick="m()">Integrando PHP dentro de HTML</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 4</p>
- <ul>
- <li rel="expresiones_control_flujo_php"><label class="toc" for="_expresiones_control_flujo_php">Expresiones y control de flujo en PHP</label><div class="current">Expresiones y control de flujo en PHP</div><ul>
- <li class="h2"><a href="#expresiones_control_flujo_php_expresiones" onclick="m()">Expresiones</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 5</p>
- <ul>
- <li rel="funciones_objetos_php"><label class="toc" for="_funciones_objetos_php">Funciones y objetos en PHP</label><div class="current">Funciones y objetos en PHP</div><ul>
- <li class="h2"><a href="#funciones_objetos_php_funciones_php" onclick="m()">Funciones en PHP</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 6</p>
- <ul>
- <li rel="arrays_php"><label class="toc" for="_arrays_php">Arrays en PHP</label><div class="current">Arrays en PHP</div><ul>
- <li class="h2"><a href="#arrays_php_acceso_basico" onclick="m()">Acceso básico</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 7</p>
- <ul>
- <li rel="php_practico"><label class="toc" for="_php_practico">PHP práctico</label><div class="current">PHP práctico</div><ul>
- <li class="h2"><a href="#php_practico_utilizando_printf" onclick="m()">Utilizando printf</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 8</p>
- <ul>
- <li rel="introduccion_mysql"><label class="toc" for="_introduccion_mysql">Introducción a MySQL</label><div class="current">Introducción a MySQL</div><ul>
- <li class="h2"><a href="#introduccion_mysql_fundamentos_mysql" onclick="m()">Fundamentos de MySQL</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 9</p>
- <ul>
- <li rel="dominando_mysql"><label class="toc" for="_dominando_mysql">Dominando MySQL</label><div class="current">Dominando MySQL</div><ul>
- <li class="h2"><a href="#dominando_mysql_disenio_base_datos" onclick="m()">Diseño de bases de datos</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 10</p>
- <ul>
- <li rel="novedades_php_8_mysql_8"><label class="toc" for="_novedades_php_8_mysql_8">Novedades de PHP 8 y MySQL 8</label><div class="current">Novedades de PHP 8 y MySQL 8</div><ul>
- <li class="h2"><a href="#novedades_php_8_mysql_8_sobre_este_capitulo" onclick="m()">Sobre este capítulo</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 11</p>
- <ul>
- <li rel="accediendo_mysql_utilizando_php"><label class="toc" for="_accediendo_mysql_utilizando_php">Accediendo a MySQL utilizando PHP</label><div class="current">Accediendo a MySQL utilizando PHP</div><ul>
- <li class="h2"><a href="#accediendo_mysql_utilizando_php_consultando_base_datos_mysql_php" onclick="m()">Consultando una base de datos MySQL con PHP</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 12</p>
- <ul>
- <li rel="manejo_formularios"><label class="toc" for="_manejo_formularios">Manejo de formularios</label><div class="current">Manejo de formularios</div><ul>
- <li class="h2"><a href="#manejo_formularios_creacion_formularios" onclick="m()">Creación de formularios</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 13</p>
- <ul>
- <li rel="cookies_sesiones_autenticacion"><label class="toc" for="_cookies_sesiones_autenticacion">Cookies, sesiones y autenticación</label><div class="current">Cookies, sesiones y autenticación</div><ul>
- <li class="h2"><a href="#cookies_sesiones_autenticacion_utilizando_cookies_php" onclick="m()">Utilizando cookies en PHP</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 14</p>
- <ul>
- <li rel="explorando_javascript"><label class="toc" for="_explorando_javascript">Explorando JavaScript</label><div class="current">Explorando JavaScript</div><ul>
- <li class="h2"><a href="#explorando_javascript_introduccion" onclick="m()">Introducción</a></li>
- <li class="h2"><a href="#explorando_javascript_texto_javascript_html" onclick="m()">Texto JavaScript y HTML</a></li>
- <li class="h3"><a href="#explorando_javascript_scripts_cabecera_documento" onclick="m()">Uso de scripts dentro de la cabecera de un documento</a></li>
- <li class="h3"><a href="#explorando_javascript_navegadores_antiguos_no_estandar" onclick="m()">Navegadores antiguos y no estándar</a></li>
- <li class="h3"><a href="#explorando_javascript_incluyendo_archivos_javascript" onclick="m()">Incluyendo archivos JavaScript</a></li>
- <li class="h3"><a href="#explorando_javascript_depuracion_errores_javascript" onclick="m()">Depuración de errores en JavaScript</a></li>
- <li class="h2"><a href="#explorando_javascript_utilizando_comentarios" onclick="m()">Utilizando comentarios</a></li>
- <li class="h2"><a href="#explorando_javascript_signos_punto_coma" onclick="m()">Signos de punto y coma</a></li>
- <li class="h2"><a href="#explorando_javascript_variables" onclick="m()">Variables</a></li>
- <li class="h3"><a href="#explorando_javascript_variables_string" onclick="m()">Variables string</a></li>
- <li class="h3"><a href="#explorando_javascript_variables_numericas" onclick="m()">Variables numéricas</a></li>
- <li class="h3"><a href="#explorando_javascript_arrays" onclick="m()">Arrays</a></li>
- <li class="h2"><a href="#explorando_javascript_operadores" onclick="m()">Operadores</a></li>
- <li class="h3"><a href="#explorando_javascript_operadores_aritmeticos" onclick="m()">Operadores aritméticos</a></li>
- <li class="h3"><a href="#explorando_javascript_operadores_asignacion" onclick="m()">Operadores de asignación</a></li>
- <li class="h3"><a href="#explorando_javascript_operadores_comparacion" onclick="m()">Operadores de comparación</a></li>
- <li class="h3"><a href="#explorando_javascript_operadores_logicos" onclick="m()">Operadores lógicos</a></li>
- <li class="h3"><a href="#explorando_javascript_incrementando_decrementando_asignacion_abreviada" onclick="m()">Incrementando, decrementando y asignación abreviada</a></li>
- <li class="h3"><a href="#explorando_javascript_concatenacion_strings" onclick="m()">Concatenación de strings</a></li>
- <li class="h3"><a href="#explorando_javascript_caracteres_escape" onclick="m()">Caracteres de escape</a></li>
- <li class="h2"><a href="#explorando_javascript_tipado_variables" onclick="m()">Tipado de variables</a></li>
- <li class="h2"><a href="#explorando_javascript_funciones" onclick="m()">Funciones</a></li>
- <li class="h2"><a href="#explorando_javascript_variables_globales" onclick="m()">Variables globales</a></li>
- <li class="h2"><a href="#explorando_javascript_variables_locales" onclick="m()">Variables locales</a></li>
- <li class="h3"><a href="#explorando_javascript_utilizando_let_const" onclick="m()">Utilizando let y const</a></li>
- <li class="h2"><a href="#explorando_javascript_document_object_model" onclick="m()">El Document Object Model</a></li>
- <li class="h3"><a href="#explorando_javascript_otro_uso_simbolo" onclick="m()">Otro uso del símbolo $</a></li>
- <li class="h3"><a href="#explorando_javascript_utilizando_dom" onclick="m()">Utilizando el DOM</a></li>
- <li class="h2"><a href="#explorando_javascript_sobre_document_write" onclick="m()">Sobre document.write</a></li>
- <li class="h3"><a href="#explorando_javascript_utilizando_console_log" onclick="m()">Utilizando console.log</a></li>
- <li class="h3"><a href="#explorando_javascript_utilizando_alert" onclick="m()">Utilizando alert</a></li>
- <li class="h3"><a href="#explorando_javascript_escritura_elementos" onclick="m()">Escritura en elementos</a></li>
- <li class="h3"><a href="#explorando_javascript_utilizando_document_write" onclick="m()">Utilizando document.write</a></li>
- <li class="h2"><a href="#explorando_javascript_preguntas" onclick="m()">Preguntas</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 15</p>
- <ul>
- <li rel="expresiones_control_flujo_javascript"><label class="toc" for="_expresiones_control_flujo_javascript">Expresiones y control de flujo en JavaScript</label><div class="current">Expresiones y control de flujo en JavaScript</div><ul>
- <li class="h2"><a href="#expresiones_control_flujo_javascript_expresiones" onclick="m()">Expresiones</a></li>
- <li class="h2"><a href="#expresiones_control_flujo_javascript_literales_variables" onclick="m()">Literales y variables</a></li>
- <li class="h2"><a href="#expresiones_control_flujo_javascript_operadores" onclick="m()">Operadores</a></li>
- <li class="h3"><a href="#expresiones_control_flujo_javascript_precedencia_operadores" onclick="m()">Precedencia de operadores</a></li>
- <li class="h3"><a href="#expresiones_control_flujo_javascript_asociatividad" onclick="m()">Asociatividad</a></li>
- <li class="h2"><a href="#expresiones_control_flujo_javascript_operadores_relacionales" onclick="m()">Operadores relacionales</a></li>
- <li class="h3"><a href="#expresiones_control_flujo_javascript_operadores_igualdad" onclick="m()">Operadores de igualdad</a></li>
- <li class="h3"><a href="#expresiones_control_flujo_javascript_operadores_comparacion" onclick="m()">Operadores de comparación</a></li>
- <li class="h3"><a href="#expresiones_control_flujo_javascript_operadores_logicos" onclick="m()">Operadores lógicos</a></li>
- <li class="h2"><a href="#expresiones_control_flujo_javascript_declaracion_with" onclick="m()">Declaración with</a></li>
- <li class="h2"><a href="#expresiones_control_flujo_javascript_utilizando_onerror" onclick="m()">Utilizando onerror</a></li>
- <li class="h2"><a href="#expresiones_control_flujo_javascript_utilizando_try_catch" onclick="m()">Utilizando try...catch</a></li>
- <li class="h2"><a href="#expresiones_control_flujo_javascript_condicionales" onclick="m()">Condicionales</a></li>
- <li class="h3"><a href="#expresiones_control_flujo_javascript_declaracion_if" onclick="m()">Declaración if</a></li>
- <li class="h3"><a href="#expresiones_control_flujo_javascript_declaracion_else" onclick="m()">Declaración else</a></li>
- <li class="h3"><a href="#expresiones_control_flujo_javascript_declaracion_switch" onclick="m()">Declaración switch</a></li>
- <li class="h4"><a href="#expresiones_control_flujo_javascript_ruptura" onclick="m()">Ruptura</a></li>
- <li class="h4"><a href="#expresiones_control_flujo_javascript_accion_por_defecto" onclick="m()">Acción por defecto</a></li>
- <li class="h3"><a href="#expresiones_control_flujo_javascript_operador" onclick="m()">El operador ?</a></li>
- <li class="h2"><a href="#expresiones_control_flujo_javascript_bucles" onclick="m()">Bucles</a></li>
- <li class="h3"><a href="#expresiones_control_flujo_javascript_bucles_while" onclick="m()">Bucles while</a></li>
- <li class="h3"><a href="#expresiones_control_flujo_javascript_bucles_do_while" onclick="m()">Bucles do...while</a></li>
- <li class="h3"><a href="#expresiones_control_flujo_javascript_bucles_for" onclick="m()">Bucles for</a></li>
- <li class="h3"><a href="#expresiones_control_flujo_javascript_ruptura_bucle" onclick="m()">Ruptura de un bucle</a></li>
- <li class="h3"><a href="#expresiones_control_flujo_javascript_declaracion_continue" onclick="m()">Declaración continue</a></li>
- <li class="h2"><a href="#expresiones_control_flujo_javascript_conversion_explicita" onclick="m()">Conversión explícita</a></li>
- <li class="h2"><a href="#expresiones_control_flujo_javascript_preguntas" onclick="m()">Preguntas</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 16</p>
- <ul>
- <li rel="funciones_objetos_arrays_javascript"><label class="toc" for="_funciones_objetos_arrays_javascript">Funciones, objetos y arrays en JavaScript</label><div class="current">Funciones, objetos y arrays en JavaScript</div><ul>
- <li class="h2"><a href="#funciones_objetos_arrays_javascript_funciones_javascript" onclick="m()">Funciones en JavaScript</a></li>
- <li class="h3"><a href="#funciones_objetos_arrays_javascript_definicion_funcion" onclick="m()">Definición de una función</a></li>
- <li class="h3"><a href="#funciones_objetos_arrays_array_arguments" onclick="m()">El array arguments</a></li>
- <li class="h3"><a href="#funciones_objetos_arrays_javascript_devolviendo_valor" onclick="m()">Devolviendo un valor</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 17</p>
- <ul>
- <li rel="validacion_manejo_errores_javascript_php"><label class="toc" for="_validacion_manejo_errores_javascript_php">Validación y manejo de errores en JavaScript y PHP</label><div class="current">Validación y manejo de errores en JavaScript y PHP</div><ul>
- <li class="h2"><a href="#validacion_manejo_errores_javascript_php_validando_entrada_usuario_javascript" onclick="m()">Validando la entrada del usuario con JavaScript</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 18</p>
- <ul>
- <li rel="utilizando_comunicaciones_asincronas"><label class="toc" for="_utilizando_comunicaciones_asincronas">Utilizando comunicaciones asíncronas</label><div class="current">Utilizando comunicaciones asíncronas</div><ul>
- <li class="h2"><a href="#utilizando_comunicaciones_asincronas_que_es_comunicacion_asincrona" onclick="m()">¿Qué es la comunicación asíncrona?</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 19</p>
- <ul>
- <li rel="introduccion_css"><label class="toc" for="_introduccion_css">Introducción a CSS</label><div class="current">Introducción a CSS</div><ul>
- <li class="h2"><a href="#introduccion_css_importando_hoja_estilos" onclick="m()">Importando una hoja de estilos</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 20</p>
- <ul>
- <li rel="css_avanzado_css3"><label class="toc" for="_css_avanzado_css3">CSS avanzado con CSS3</label><div class="current">CSS avanzado con CSS3</div><ul>
- <li class="h2"><a href="#css_avanzado_css3_selectores_atributos" onclick="m()">Selectores de atributos</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 21</p>
- <ul>
- <li rel="accediendo_css_desde_javascript"><label class="toc" for="_accediendo_css_desde_javascript">Accediendo a CSS desde JavaScript</label><div class="current">Accediendo a CSS desde JavaScript</div><ul>
- <li class="h2"><a href="#accediendo_css_desde_javascript_revisando_funcion_getelementbyid" onclick="m()">Revisando la función getElementById</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 22</p>
- <ul>
- <li rel="introduccion_jquery"><label class="toc" for="_introduccion_jquery">Introducción a jQuery</label><div class="current">Introducción a jQuery</div><ul>
- <li class="h2"><a href="#introduccion_jquery_por_que_jquery" onclick="m()">¿Por qué jQuery?</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 23</p>
- <ul>
- <li rel="introduccion_jquery_mobile"><label class="toc" for="_introduccion_jquery_mobile">Introducción a jQuery Mobile</label><div class="current">Introducción a jQuery Mobile</div><ul>
- <li class="h2"><a href="#introduccion_jquery_mobile_incluyendo_jquery_mobile" onclick="m()">Incluyendo jQuery Mobile</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 24</p>
- <ul>
- <li rel="introduccion_react"><label class="toc" for="_introduccion_react">Introducción a React</label><div class="current">Introducción a React</div><ul>
- <li class="h2"><a href="#introduccion_react_para_que_sirve_react" onclick="m()">¿Para qué sirve React?</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 25</p>
- <ul>
- <li rel="introduccion_html5"><label class="toc" for="_introduccion_html5">Introducción a HTML5</label><div class="current">Introducción a HTML5</div><ul>
- <li class="h2"><a href="#introduccion_html5_canvas" onclick="m()">Canvas</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 26</p>
- <ul>
- <li rel="canvas_html5"><label class="toc" for="_canvas_html5">Canvas de HTML5</label><div class="current">Canvas de HTML5</div><ul>
- <li class="h2"><a href="#canvas_html5_creando_accediendo_canvas" onclick="m()">Creando y accediendo a Canvas</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 27</p>
- <ul>
- <li rel="audio_video_html5"><label class="toc" for="_audio_video_html5">Audio y vídeo en HTML5</label><div class="current">Audio y vídeo en HTML5</div><ul>
- <li class="h2"><a href="#audio_video_html5_sobre_codecs" onclick="m()">Sobre los códecs</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 28</p>
- <ul>
- <li rel="otras_caracteristicas_html5"><label class="toc" for="_otras_caracteristicas_html5">Otras características de HTML5</label><div class="current">Otras características de HTML5</div><ul>
- <li class="h2"><a href="#otras_caracteristicas_html5_geolocalizacion_servicio_gps" onclick="m()">Geolocalización y el servicio de GPS</a></li>
- </ul></li>
- </ul>
- <p>Capítulo 29</p>
- <ul>
- <li rel="uniendo_todo"><label class="toc" for="_uniendo_todo">Uniendo todo</label><div class="current">Uniendo todo</div><ul>
- <li class="h2"><a href="#uniendo_todo_diseniando_aplicacion_redes_sociales" onclick="m()">Diseñando una aplicación de redes sociales</a></li>
- </ul></li>
- </ul>
- <p>Apéndice A</p>
- <ul>
- <li rel="soluciones_preguntas_capitulos"><label class="toc" for="_soluciones_preguntas_capitulos">Soluciones a las preguntas de los capítulos</label><div class="current">Soluciones a las preguntas de los capítulos</div><ul>
- <li class="h2"><a href="#soluciones_preguntas_capitulos_respuestas_capitulo_14" onclick="m()">Respuestas del capítulo 14</a></li>
- <li class="h2"><a href="#soluciones_preguntas_capitulos_respuestas_capitulo_15" onclick="m()">Respuestas del capítulo 15</a></li>
- </ul></li>
- </ul>
- </div>
- </div></nav>
- <div id="_m">
- <nav class="mobile title">Aprendiendo PHP, MySQL y JavaScript<label for="menuchk" class="menu"></label></nav>
- <div class="page" rel="_">
- <h1>Aprendiendo PHP, MySQL y JavaScript</h1><br style="clear:both;"><label class="btn next" accesskey="n" for="_prefacio" title="Prefacio">Siguiente</label></div>
- <div class="page" rel="prefacio"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 0 »</li><li> Prefacio</li></ul><hr></div>
- <h1 id="prefacio">Prefacio<a href="#prefacio"></a></h1>
- <h2 id="prefacio_audiencia">Audiencia<a href="#prefacio_audiencia"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_">Volver</label><label class="btn next" accesskey="n" for="_introduccion_contenido_dinamico_web" title="Introducción al contenido dinámico de la web">Siguiente</label></div>
- <div class="page" rel="introduccion_contenido_dinamico_web"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 1 »</li><li> Introducción al contenido dinámico de la web</li></ul><hr></div>
- <h1 id="introduccion_contenido_dinamico_web">Introducción al contenido dinámico de la web<a href="#introduccion_contenido_dinamico_web"></a></h1>
- <h2 id="introduccion_contenido_dinamico_web_http_html_conceptos_basicos_berners_lee">HTTP y HTML: Los conceptos básicos de Berners-Lee<a href="#introduccion_contenido_dinamico_web_http_html_conceptos_basicos_berners_lee"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_prefacio" title="Prefacio">Volver</label><label class="btn next" accesskey="n" for="_configuracion_servidor_desarrollo" title="Configuración de un servidor de desarrollo">Siguiente</label></div>
- <div class="page" rel="configuracion_servidor_desarrollo"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 2 »</li><li> Configuración de un servidor de desarrollo</li></ul><hr></div>
- <h1 id="configuracion_servidor_desarrollo">Configuración de un servidor de desarrollo<a href="#configuracion_servidor_desarrollo"></a></h1>
- <h2 id="configuracion_servidor_desarrollo_que_es_wamp_mamp_lamp">¿Qué es WAMP, MAMP o LAMP?<a href="#configuracion_servidor_desarrollo_que_es_wamp_mamp_lamp"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_introduccion_contenido_dinamico_web" title="Introducción al contenido dinámico de la web">Volver</label><label class="btn next" accesskey="n" for="_introduccion_php" title="Introducción a PHP">Siguiente</label></div>
- <div class="page" rel="introduccion_php"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 3 »</li><li> Introducción a PHP</li></ul><hr></div>
- <h1 id="introduccion_php">Introducción a PHP<a href="#introduccion_php"></a></h1>
- <h2 id="introduccion_php_integrando_php_dentro_html">Integrando PHP dentro de HTML<a href="#introduccion_php_integrando_php_dentro_html"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_configuracion_servidor_desarrollo" title="Configuración de un servidor de desarrollo">Volver</label><label class="btn next" accesskey="n" for="_expresiones_control_flujo_php" title="Expresiones y control de flujo en PHP">Siguiente</label></div>
- <div class="page" rel="expresiones_control_flujo_php"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 4 »</li><li> Expresiones y control de flujo en PHP</li></ul><hr></div>
- <h1 id="expresiones_control_flujo_php">Expresiones y control de flujo en PHP<a href="#expresiones_control_flujo_php"></a></h1>
- <h2 id="expresiones_control_flujo_php_expresiones">Expresiones<a href="#expresiones_control_flujo_php_expresiones"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_introduccion_php" title="Introducción a PHP">Volver</label><label class="btn next" accesskey="n" for="_funciones_objetos_php" title="Funciones y objetos en PHP">Siguiente</label></div>
- <div class="page" rel="funciones_objetos_php"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 5 »</li><li> Funciones y objetos en PHP</li></ul><hr></div>
- <h1 id="funciones_objetos_php">Funciones y objetos en PHP<a href="#funciones_objetos_php"></a></h1>
- <h2 id="funciones_objetos_php_funciones_php">Funciones en PHP<a href="#funciones_objetos_php_funciones_php"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_expresiones_control_flujo_php" title="Expresiones y control de flujo en PHP">Volver</label><label class="btn next" accesskey="n" for="_arrays_php" title="Arrays en PHP">Siguiente</label></div>
- <div class="page" rel="arrays_php"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 6 »</li><li> Arrays en PHP</li></ul><hr></div>
- <h1 id="arrays_php">Arrays en PHP<a href="#arrays_php"></a></h1>
- <h2 id="arrays_php_acceso_basico">Acceso básico<a href="#arrays_php_acceso_basico"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_funciones_objetos_php" title="Funciones y objetos en PHP">Volver</label><label class="btn next" accesskey="n" for="_php_practico" title="PHP práctico">Siguiente</label></div>
- <div class="page" rel="php_practico"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 7 »</li><li> PHP práctico</li></ul><hr></div>
- <h1 id="php_practico">PHP práctico<a href="#php_practico"></a></h1>
- <h2 id="php_practico_utilizando_printf">Utilizando printf<a href="#php_practico_utilizando_printf"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_arrays_php" title="Arrays en PHP">Volver</label><label class="btn next" accesskey="n" for="_introduccion_mysql" title="Introducción a MySQL">Siguiente</label></div>
- <div class="page" rel="introduccion_mysql"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 8 »</li><li> Introducción a MySQL</li></ul><hr></div>
- <h1 id="introduccion_mysql">Introducción a MySQL<a href="#introduccion_mysql"></a></h1>
- <h2 id="introduccion_mysql_fundamentos_mysql">Fundamentos de MySQL<a href="#introduccion_mysql_fundamentos_mysql"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_php_practico" title="PHP práctico">Volver</label><label class="btn next" accesskey="n" for="_dominando_mysql" title="Dominando MySQL">Siguiente</label></div>
- <div class="page" rel="dominando_mysql"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 9 »</li><li> Dominando MySQL</li></ul><hr></div>
- <h1 id="dominando_mysql">Dominando MySQL<a href="#dominando_mysql"></a></h1>
- <h2 id="dominando_mysql_disenio_base_datos">Diseño de bases de datos<a href="#dominando_mysql_disenio_base_datos"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_introduccion_mysql" title="Introducción a MySQL">Volver</label><label class="btn next" accesskey="n" for="_novedades_php_8_mysql_8" title="Novedades de PHP 8 y MySQL 8">Siguiente</label></div>
- <div class="page" rel="novedades_php_8_mysql_8"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 10 »</li><li> Novedades de PHP 8 y MySQL 8</li></ul><hr></div>
- <h1 id="novedades_php_8_mysql_8">Novedades de PHP 8 y MySQL 8<a href="#novedades_php_8_mysql_8"></a></h1>
- <h2 id="novedades_php_8_mysql_8_sobre_este_capitulo">Sobre este capítulo<a href="#novedades_php_8_mysql_8_sobre_este_capitulo"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_dominando_mysql" title="Dominando MySQL">Volver</label><label class="btn next" accesskey="n" for="_accediendo_mysql_utilizando_php" title="Accediendo a MySQL utilizando PHP">Siguiente</label></div>
- <div class="page" rel="accediendo_mysql_utilizando_php"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 11 »</li><li> Accediendo a MySQL utilizando PHP</li></ul><hr></div>
- <h1 id="accediendo_mysql_utilizando_php">Accediendo a MySQL utilizando PHP<a href="#accediendo_mysql_utilizando_php"></a></h1>
- <h2 id="accediendo_mysql_utilizando_php_consultando_base_datos_mysql_php">Consultando una base de datos MySQL con PHP<a href="#accediendo_mysql_utilizando_php_consultando_base_datos_mysql_php"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_novedades_php_8_mysql_8" title="Novedades de PHP 8 y MySQL 8">Volver</label><label class="btn next" accesskey="n" for="_manejo_formularios" title="Manejo de formularios">Siguiente</label></div>
- <div class="page" rel="manejo_formularios"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 12 »</li><li> Manejo de formularios</li></ul><hr></div>
- <h1 id="manejo_formularios">Manejo de formularios<a href="#manejo_formularios"></a></h1>
- <h2 id="manejo_formularios_creacion_formularios">Creación de formularios<a href="#manejo_formularios_creacion_formularios"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_accediendo_mysql_utilizando_php" title="Accediendo a MySQL utilizando PHP">Volver</label><label class="btn next" accesskey="n" for="_cookies_sesiones_autenticacion" title="Cookies, sesiones y autenticación">Siguiente</label></div>
- <div class="page" rel="cookies_sesiones_autenticacion"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 13 »</li><li> Cookies, sesiones y autenticación</li></ul><hr></div>
- <h1 id="cookies_sesiones_autenticacion">Cookies, sesiones y autenticación<a href="#cookies_sesiones_autenticacion"></a></h1>
- <h2 id="cookies_sesiones_autenticacion_utilizando_cookies_php">Utilizando cookies en PHP<a href="#cookies_sesiones_autenticacion_utilizando_cookies_php"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_manejo_formularios" title="Manejo de formularios">Volver</label><label class="btn next" accesskey="n" for="_explorando_javascript" title="Explorando JavaScript">Siguiente</label></div>
- <div class="page" rel="explorando_javascript"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 14 »</li><li> Explorando JavaScript</li></ul><hr></div>
- <h1 id="explorando_javascript">Explorando JavaScript<a href="#explorando_javascript"></a></h1>
- <h2 id="explorando_javascript_introduccion">Introducción<a href="#explorando_javascript_introduccion"></a></h2>
- <p>JavaScript aporta una funcionalidad dinámica a tus sitios web. Cada vez que mires algo aparecer cuando pasas el mouse sobre un elemento en el navegador, o ves nuevo texto, colores o imágenes aparecer en la página frente a tus ojos, o cuando tomas un objeto en la página y lo arrastras a una nueva ubicación, todas esas cosas generalmente se hacen a través de JavaScript (aunque CSS se está volviendo cada vez más poderoso y también puede hacer muchas de estas cosas). Ofrece efectos que de otro modo no serían posibles, porque se ejecuta dentro del navegador y tiene acceso directo a todos los elementos de un documento web.</p>
- <p>JavaScript apareció por primera vez en el navegador Netscape Navigator en 1995, coincidiendo con la incorporación del soporte para la tecnología Java en el navegador. Debido a la incorrecta impresión inicial de que JavaScript era un derivado de Java, ha habido una confusión durante mucho tiempo sobre su relación. Sin embargo, el nombre fue solo una táctica de <i>marketing</i> para ayudar al nuevo lenguaje de scripting a beneficiarse de la popularidad del lenguaje de programación Java.</p>
- <p>JavaScript ganó nuevo poder cuando los elementos HTML de la página web obtuvieron una definición más formal y estructurada en lo que se llama <i>Document Object Model</i> (DOM). El DOM hace que sea relativamente fácil añadir un nuevo párrafo o centrarse en un fragmento de texto y modificarlo.</p>
- <p>Debido a que tanto JavaScript como PHP soportan gran parte de la sintaxis de la programación estructurada que utiliza el lenguaje de programación C, son muy similares entre sí. También son lenguajes de alto nivel. Además, son débilmente tipados, por lo que es fácil cambiar una variable a un nuevo tipo simplemente usándola en un nuevo contexto.</p>
- <p>Ahora que has aprendido PHP, deberías encontrar JavaScript aún más fácil. Y te alegrarás de haberlo hecho, porque está en el corazón de la tecnología de la comunicación asíncrona que proporciona las interfaces web fluidas que (junto con las características de HTML5) los usuarios web expertos esperan hoy en día.</p>
- <h2 id="explorando_javascript_texto_javascript_html">Texto JavaScript y HTML<a href="#explorando_javascript_texto_javascript_html"></a></h2>
- <p>JavaScript es un lenguaje de scripting del lado del cliente que se ejecuta completamente dentro del navegador web o bajo <i>Node.js</i>. Para llamarlo, se coloca entre las etiquetas HTML de apertura <samp><script></samp> y cierre <samp></script></samp>. Un documento típico de "Hello World" utilizando JavaScript puede parecerse al Ejemplo 14-1.</p>
- <p><i>Ejemplo 14-1. Visualización de "Hello World" con JavaScript</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br></pre><code><span class="hl_o"><</span><span class="hl_v">html</span><span class="hl_o">></span>
- <span class="hl_o"><</span><span class="hl_v">head</span><span class="hl_o">></span>
- <span class="hl_o"><</span><span class="hl_v">title</span><span class="hl_o">></span><span class="hl_v">Hello</span> <span class="hl_v">World</span><span class="hl_o"></</span><span class="hl_v">title</span><span class="hl_o">></span>
- <span class="hl_o"></</span><span class="hl_v">head</span><span class="hl_o">></span>
- <span class="hl_o"><</span><span class="hl_v">body</span><span class="hl_o">></span>
- <span class="hl_o"><</span><span class="hl_v">script</span> <span class="hl_v">type</span><span class="hl_o">=</span><span class="hl_s">"text/javascript"</span><span class="hl_o">></span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"Hello World"</span>)
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_o"><</span><span class="hl_v">noscript</span><span class="hl_o">></span>
- <span class="hl_v">Your</span> <span class="hl_v">browser</span> <span class="hl_v">doesn't</span> <span class="hl_v">support</span> <span class="hl_k">or</span> <span class="hl_v">has</span> <span class="hl_v">disabled</span> <span class="hl_v">JavaScript</span>
- <span class="hl_o"></</span><span class="hl_v">noscript</span><span class="hl_o">></span>
- <span class="hl_o"></</span><span class="hl_v">body</span><span class="hl_o">></span>
- <span class="hl_o"></</span><span class="hl_v">html</span><span class="hl_o">></span></code></div>
- <div class="info"><p><span>Nota</span></p><p>Es posible que hayas visto páginas web que utilizan la etiqueta HTML <samp><script language="javascript"></samp>, pero ahora esa manera está obsoleta. Este ejemplo utiliza el más reciente y preferido <samp><script type="text/javascript"></samp>, o puedes simplemente utilizar <samp><script></samp> por tu cuenta si lo prefieres.</p></div>
- <p>Dentro de las etiquetas <samp><script></samp> hay una sola línea de código JavaScript que utiliza su equivalente a los comandos <samp>echo</samp> o <samp>print</samp> de PHP, es <samp>document.write</samp>. Como era de esperar, simplemente envía el string proporcionado al documento actual, donde se muestra.</p>
- <p>También puede que haya notado que, a diferencia de PHP, no hay punto y coma al final (<samp>;</samp>). Esto se debe a que un salto de línea cumple la misma función que un punto y coma en JavaScript. Sin embargo, si deseas tener más de una instrucción en una sola línea, debes colocar un punto y coma después de cada comando, excepto el último. Por supuesto, si lo deseas, puedes añadir un punto y coma al final de cada instrucción, y tu JavaScript funcionará bien. Mi preferencia personal es omitir el punto y coma porque es innecesario, y por lo tanto también evito prácticas que podrían causar problemas. Al final del día, sin embargo, la elección puede depender del equipo en el que trabajes, que más a menudo no puede requerir puntos y coma, solo para estar seguros. Entonces, si tienes dudas, simplemente añade los puntos y comas.</p>
- <p>Lo otro a tener en cuenta en este ejemplo es el par de etiquetas <samp><noscript></samp> y <samp></noscript></samp>. Estos se utilizan cuando deseas ofrecer HTML alternativo a los usuarios cuyos navegadores no soportan JavaScript o lo tienen desactivado. El uso de estas etiquetas depende de ti, ya que no son obligatorias, pero realmente deberías usarlas porque generalmente no es tan difícil proporcionar alternativas HTML estáticas a las operaciones que ofreces utilizando JavaScript. Sin embargo, los ejemplos restantes en este libro omitirán las etiquetas <samp><noscript></samp>, porque nos estamos enfocando en lo que puedes hacer con JavaScript, no en lo que puedes hacer sin él.</p>
- <p>Cuando se carga el Ejemplo 14-1, un navegador web con JavaScript habilitado mostrará lo siguiente (ver Figura 14-1):</p>
- <div class="pre"><pre>
- Hello World
- </pre></div>
- <div class="imgc"><img class="imgc" width="479" height="163" alt="figura_14-1.png" src="data:image/png;base64,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Wu3DH/7wP/3TP4Vh2NfXd80117z61a8+++yt7XZUKPiMiVKx/IV//dehoaHfvuGG279wu23zgwdHzz57R1baT4RpqtM0XTGR+pGPfOTAgQPve997s1+/+c1vfvSjH33DG97w13/913/0R390/fXXlcuFIIiTJLFtC1ZZpRIEQUbubrejJEkOHDjwL//yLze8+PrdF16ACHEUfehDHxodPfrKV77yq1/9an9/30te8tK+vj7btVrNZprKck/p0KFDbrG3XC47jm06hCTbGJ3FSZ54RAT9U5POlCnHGHP06Nizr/6tjEm6ffuOl934spff9NJ2u9Fup9Vq9YlvTNMkCgkQCoXc3Nzcn77lT1/3B697xhXPsOwVTiwBEfspxmLRWqXqnwAAIABJREFUxhHRLbe8+U/+5E+uuupKpVQYGqUU59x17TRdwT1BhCRJkyQpFHKuax0/Pvmxj33if952G3I+OTFR6e0tFkuvetUrb7rpxqGhgTiWKy62rKccIMZx/E+f/dxAf/9znvOckZF1P7UGlWCpEO62f/yf+x945E/e8oadOzcRwfHjs+9573t7e6uv+Z1X2bbTaDSKxaLjcMdxHnvskffeeuvb33WrZVmO42itlVLQJfasuK7o6bTOvzyRjVVa59NsD/+P4OmcCCFknA0AA6hRZ6Iumbb8Yi1q58x1rLNlIpsSgFRAmhlnaQQgDw03wCN74NpXvvnVr/ndXKFAAMMls+eyixnjrVart7fXcZzR0fENGzasijWcbbRvvPHGm266aWRkxPfdzKX1PO+xx46sWbNm67ZtzWbziiuu+Na3v53Led/+9ndvu+223/u939u1axfn3BiT8XJWvACuuOKKffv2NRqBlBRF0e233/6CF7zgOc951sUXX+z7fpKk7Xabc14o5BlDrdWqrHOxWJRSep7TboeO47RarQcffPCGG65HBnNzs7lcrlqtTE6eWLduzR//8S2WZeXz+Vqt5iYuYyyX805MTNxyyxvf8vZ3b9q0uVwuS5lFZjuVlivS6RnoFW/+y81T17AYMrRl0wUf+MD7h4eHvvSlr3z9a3svu/iqbdvW5JxO3vUUcDSWzaWUSMZ3c/fs/f4fvv4NCGzFUheDZsXg9cozIfrJffe32gHjgpSxbNv1mDHakFErfcwkTRDRcX2pwER6YHDgbW9/2x//l7fMz8+/7GUve81rXnPddS8sl4taQztIOecr1nohE45rKaUty3n88cOW5diOZwiUXtk6nxyN6fwIy66UKznPb9ZlsxmRYfVaY/eFu33X01IxRIbYqNeLxSIZ86N7f1hbaAwMKsf1CbRUHf4v53xFb/1p9Z3hafP7Vgu+mo9JwGAlSvIvBpjCU5YFJGAKVqLl/eJg0BhGAAqQKwJGgGgJFCFzIsYiAZFws1d2rDMCR2KADIFlCxQJyGgCYgxazfrczDRDVcgZYWEcNFvzc5ZlI8P5uXklVW+1L0nk+PhxpaRlOyMjI1nlQ0bkeOL+LqO1Nxst27Zyfk4rNTdbsyyLM35k9FiaJEePHW8021w4U9OzSRKfmJxpB9Hjjx8eG5/Ytv3sQrHUarWlTD3XZewUNhwBQKVajaL4oYce2nPZnmKpeO8P733HO94+M1ubnpru7e11XTeKotnZWaWU67rlctkYk8vlPM+bm501RNVqlYhq9WYuX3AcBxEYgtbEORpNKoxb7XY+9cMwLJVKlrAsy8r7+TiKC8VSs9EIglAbmpuvGUOMMaV0rbZARFEUVavVsbGxw4dHH9q/H5Dt3LkziqKjo6OOY3u+XyqV8/l8GAazM7PImFbK9/2enh7fZUEcNRvNfL7geX5GaM/+BkBkmdusiIjAGFCMgVQSgAYGepCRNnxmJm216s1mg4DyuXy1t2pZtlJycnKq2ZrL5TzHcYqlkmPbjLHe3t5ms1mr1RzXrVaqMzPTtuMEQcAZy5eKQRIGQdP1rWpPv+fmW8F8bWFeJY7g7uAa3/PsY8dmgViU1NesGR4eWlMuV6IoOfjwwUq10j/Q9/DDj2ipyj091d5qLpeDJXYUACJjzBiTptIYjYiMcSLjuu7s7OxZZ23p7y+Njk75fg6ADh065DiO57o9PRXPcwmgvlCvLdSMMaViyfVcz3WVUvlc3rHtRx99XEqNAL19fZVqWSsgMpwz6vYAQCBtTNaVnMDESdQOWmGYlEpULOUdh8KoOT0znXVFmpur1Wr18fHRiy66qFLpc1xfKRPHSbM5Zlne9PQ0Q6xUKuWeHn4aOcPVxYZ/aULJq8LqXeGnz2VdTQkFwOrkzFY/FeowULNaHiICAg2MdWIey5ZHN+6sfaZc17Ncu0dKTFJgLNvnqSBoWNy06jOH9u+bGi2XSpWRPu9v3vHOs3ftesG114JCR3hpgvfs/cF73vdBlUR2ofqe97xneGQ9IgibGQk+k4uUfoROu0PSgjFnbra270f3b9gw7Dp+f//Avffe+1e3fiRuB+dedFEr4onxIiWe94Kbbrnlltv+8R8ffezEBz74yROz7d/5nZtbEXccT4FtkkXrnG2ONAD1DawdGF73/R/96PKrrrj9X28fWDNQ6e85Mnrkxhtveu9733veeed95jOf+fznP5+m6UUXXfTc5z73vvvuu/zyy/fs2fORj340aLdvefOb2+32xz975zXPv/6cs7dyDp6DtWY40OO2wzTnOcAhjJTvl4JmFLZj1Ljvx/c3W2EWdTk2Pk1gayM+8KG/833/5S9/+cc//vd7935Pa/3yl7/i7rvvnppZeN8H33flNdf82Vv+9J69e9/1F39RyuerA4PP/c3fvP7663/w/e+/653vGlm7rt1snrVly003vfSSyy65Z9+Dt9/+xWtf8KJLLn5GHMl8PpemWZCabE8ao6N01rIs4cgQamE6f/jo/tnasf0H77/08nMHhgtjY4c/9rGP7d27lzG2Y8eO1772tTt27Dh48OB73vOeEydOGGOe/exnv+51rxsaGiqUylMzs7PztXe/+907d+68+eab3/zmN+/YsePw4cMAsOfyZ07NLNz34Dcrw/j7N//5lZfe8M0ffeLzX/jUxCPb0nbfuz960WV7Nr3m1R8oFYcD8+MPfej9RjsL89G37r731ltvveiS3de+8LlvetNbBGMjG9f//n/+g4t2X6iUVAothwmBoJTFIAgCIioWi8YYKaWU0rbtZrMdRVEYxo7jzc7Ofetb3/rwhz5U8P2BgcHnP//5v/mbv9loNP7hH/7h7rvvdl1n3bp1v/u7r92+fXspVxTIJ8Ym3v/+9x98bCxJ5H9+wxtuuun57ZATKde1tAZAg0jCJqVTqQLL4sS0YXEQL9z34E+OT/aVy3693ooTRQDI7DvvuvtTn/pUs9k8cWLitts+tXXrVpk4Fi88cN9jb33rW5/3vOfd8ZWv9FYqv/G859308pevKtv8K4+nzybyVTrmT99MDIIm4ARZb0JAUgSkZdPO+y5GNqUidWzZ6X2xZNqMMUqRTGUcJ1EUZYlvxgQihmH0wP33/83RE5blXv6MZ7702l8DRCmlsIQ2euLExNj42Dv+4h2/feMrLr304ru/dc/73/++d7373a7rh83UsUQz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fu+9946MjERRtH79+uuuu27hwoVHjx4Nw9Bae+jgwS/+0z/9n7//+2/63bdOTU0bi9/8t39L07QnqOuhhx5+C/GcVUEio7UhAtbJO1utN15wwS1vvllahV6EjH3h9q9Lzwt9OTE+LqW44YZXl0OBQP5b3rRwqD557LAX8MDzJpvNarl85NDBnU89WSqWlows9gRfOrKoFAY/efDBV17/sgWDfXmmuOAMGeWZLPa98e3v+k8f+M8/ufu7SVBfsWHTDVdt/fod37hn3WhL4VkL6qjy8YnZA4eODi1Y0tfXFwTB6tWrPc+bmJh4wxve8LWvfW10dNT3fSmlS0AvXbr0W9/6VpIk1157LUMsFArDw8OcizAIlTJSnsnE1h566KGH5x/PJSZDxpBzBJBCJEniFMRJmma5Yn5gtJ44NsE5r9frWa61UpPHj19zzTWvf/3rXnH99S+75ur1GzeBNllu8izlDOO4zRCDIBg7OnZg/34peOj7ixcvXjA85EnPGCs4i1uxyTJgLMnsFVdfVy/I//5n/+3cTRcX+spXXXTewT1P3XX/Q6NnnxMGksj6Xiilt3///uPHjzv93ODgYKVSMcaEYdhsNqMo8jwviqLZ2dl9+/aNLl/ebCVZliGi53mc8ySOOWfzZNc99NBDD78teE52BuCce4HPhfCDABG1MaVSyY8KwDiTHiA2GrO7du1iQBvOX3/26lW3vv/9Riku5RPbtv3L7beHhRKXolopA1mr1MoVo+vXnbtt6+Pfu+uuOE527tyxa/eu9evXL1w4ZI3ljHmeh1ojAklRHR689LxVY7t2rd60EnxcuqT20ss2tkicfd46QEVIA8MjG1900c6dO++77z5r7b59+6amptatW1ev1xuNRq1W01q7bu9FixYxxlauXGGt/shHPpIkibvYCCnTNDPPdPzooYceenjh8UsyG9YYLkQcx/fee9+nP/OZR372s127djcnx9/2ljfv3Xfgto/97dat244em5huND70oQ/95V/+5Tvf+c4rrrhKSnHRhnNe/apXfeA/vP/o0cN/fOutSqmZRuMrX/nKLbfc8uY3v/lr//IvX/3KV6Ji8bWve92NN766WIgsQZrlvicZ+WA0eowD3vyG1179kpdEBV9ZNVyOfv//eMfXt8eFcgRmmhEUCtUbbnjNwYOHPvvZz37pS1/K8/ytb33ra17z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"></div>
- <div class="fig">Figura 14-1. JavaScript, habilitado y funcionando</div>
- <p>Un navegador con JavaScript desactivado mostrará este mensaje (ver Figura 14-2):</p>
- <div class="pre"><pre>
- Your browser doesn't support or has disabled JavaScript
- </pre></div>
- <div class="imgc"><img class="imgc" width="480" height="164" alt="figura_14-2.png" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAACkCAIAAADACGoMAAAAA3NCSVQICAjb4U/gAAAAGHRFWHRTb2Z0d2FyZQBtYXRlLXNjcmVlbnNob3TIlvBKAAAgAElEQVR4nOy9d5Qc13Umfu8LlTpN9yRgMAAIgABJgGAOAqlAUpJlWVpLtiwrWsmWbK+tXa3XtnaP1+Hs+XklpyPba/u3a9myVsFhlSVLohlEKlDMIsEIBhA5zGBCx0rvvXv3j+qeGQA9XM0R6bV1eEcqNKurq16873vfDYXMDC/IC/KCvCAvyL88Ef+vC/CCvCAvyAvyggyXFxT0C/KCvCAvyL9QUcU/+27+6le+9vW7u+WoXNm7f/9oxQ+TQ8ScWJOpERrZhsRppzdOi2PYM7Vyh1yluVCT2Aw29yzGXhSWy+PNe+u18oxNS+XKSRzPe50dmKU5OzkmhAIhszzvJSmgKFerfuBZZ+NeVwrha5kksRSolCQCAKgngAxPN1Ay7JqFVMIjk2IyqKw/nJzMOvOjejSsBLHrpi3lsxA6z5zvlaOwnKamF6daayEECwvAJDIAAMwBUKmacxaZpBBAxhiDzAiMwEJJ6xwTaK2JoRcnkedVSqVenHie3+71Ot3upm1bOp1OGIWdTjeMPCbqdBbDMPQ83etlWtaKxkRgZMZ+CzMzOWulkL7vxXEvSZJarUah6na7RDw5MZElttvthn5k8lyiAGAARmCAPvsUVrzZhRPAqLUfeJEQSgqVppkSAhEBCAAQDAAAOhRCBn6v1yMHnucBiDw3zpGSWikPAAGACZkBAJkZOQUmRiDu013ECABpbgGAUUBRIGYABHJgzFLFlo6iX5IzxTkLUHxz2nGJWDvjVz9MhBsiDm0TCUsde5pQMfTPFAZwz23B/q+CiADMg/EgRFERdGCGXjy0mgaAGAQgMBR6BlkAgMuzMAzyvBcEHoLtdju5Sccn17d7GRSjs7htf6QuH5GXv42iUqvV8jzPOVeMvZGRkaNHjzYaDaVUt9stiuT7fpqmCpit8TzP931GYObFVrNarc7Ozm7evLnV6Ugpe0kshKhWq82FBZPG559//lNPPaW1llIKKZSWzjlrLQPA0jgWDAAQm3JUyhhRiJTE/Nz8rq0XnJo5VfUCBjBkMFDzFAf1ykzWjBIz5oRgBiYE7s9D5jCKHBFIUW801m3cVKlUPvCBXylq2lfQTzz15Ibp6Q++/uc3nzNiBQLzGOSZyy0D62jWydxCJHlc2DCJ58mIqNwA0s50ZBmk7CFYgCluInMHcoXeAtQU8CSn5CClktIACAxcNHJmgYDT1PpaBL4wBrRCAVyMDADwUwCAEwEIhskuGAFHShDlMDZPri7mFKPlMSkJWOh+h/Z6DAyeB1L1B0yhI2kwG5ghzjHwQQIDgwBABAQgBmQAAY6AGSQCIgBinjpfC0egFBBCloPU0EtZSMwyY11erUS+RAagvjpeHqZLw0sUXyDkGQgBSiEiNJu5X9OGIFDoiBFBAjLzGUoOByUnLuqCllgKnJtvl6IIUYUeC7H8xEKsc7OtdqM+ohEdAzMoAcwr9H3xgaGYfp6AotF58FXxwRTKelCAQiSCh4OfA/BApWDRaGcJrbhg6TLm/vmlk6e33A+JIAxvE7nK9cP1M8BQdY5nrW3PoXDxx/0HI4JAABy+UOAqfWYA+PRvkREAJDAiErG1wGQOHHzm2LEjV119dVSuwFkKGgefAfr6EAZFshaUQiIGgCShVmtx//4Dl156CaLwfakUJIlBxCBQYFkiCoQ4zixRqeQLJYxhpRCA5xe7I/UyAKaZzbLs1MzMw/ff9+pXv9o5W6tVyVGSpbnJPU972ium4eCPAUE5RISFVmekXukZ9DVIA8AoiF0GuoQ586KzBggDXWKoMgITMAMQcNHK3O10SiMjv/qrv/r+9//yX3z0r2q1kaWaDhR069jlV1ylaqX9J7q1cpliU9exlsKXYm6h7VfrtQDm270D8/unynmpPplCkp6qgSnlVWEVtD3ngJPmCFuWY6Yd92a9gyEG0eJYUPZSCWA5TY0x1g88z1NZZnJjw1BrJRcWugJVqeSfmpltNBrGOCIODCJAlgEydFKwwDajXKiZpCfA70qnGJvKz2yMkhBUuRz24iw3gCCU8ophxliogQJa5gCAokxGmzztdrtKiigKkdlai4jMjIiOyFgjhAzDSAHYXPTiRAhJwHGS6MCP4xiV3DQ93uq4Y0dP1EaqANxutwQoX1WXRzhysewzEwB7ngfAJjNRFPm+juMklUYqqYR/YmbRV34UhZ1WXKuWssT277AMojnOOl6ooqjc6XSr5VKgvTx1USTmF1IiRl6qJgMSClEuVeJeaowhYmAkYueIGQVKgCXsXLQRCzRYLOinI2gCAQAEyFCMImZgLBazFfD52TFv8e0SeC4+CCGUUmefXw2L/SuV1aojaLhGW6UlGXCI5n5e24pXyIpnMYP9/kvi+su6AEDBAgYIWjBJIaTkLE/DSM7Mzj7++OMX7LooZ11gmkIK4NGHz8WNVjQPETnnfN+31pTLJSK3sLA4O3siCC5PU8pz2+uZOE6lFGnqC2ejwANA54iB4zj3Aq/d7oSlUrfbjdMkydKJiVFmFlpFwPjgE3L6XJPGXa2zJLXWaK0y5thYRF5aGgUgAtjsqO/L0ujIfKeTKe2cAwOT4xPZqfksS8frNXB5zcck6cYuPZ57JyvTQIRw2uSxSp2zdevRw4dKpdLFV151yy23LtW0r6A7vd6ea69d8L1e5uVd3jAqZIfZWXAUau/YXCvOsrAiJ0frCrunmqfQ15Worp1CyQJZa4HMngbjUEqtlfY9L4RAFBtkZiEhKnnOauPYWo4iFYFCYHZOKw2A1lK9Xifi4j+1RAQIPUAGBSAFNEJOe/nY+pF2bGuB7wtgw2G53I3juJd6Wiql/EA6V6yNUiD0deSK0cMoHVkpRa1WZSImInYo+jturbWvZJZleW7yPE/zXElprWM2XuCHYYhKTk5MnDw12+rkSqkwjJIk8X1/ZKTOJNDpwZiFPnxnYCZjcqVUFOm4l2ZZJqWs1SpdSLRWzXYaBH45LGWZ9X0fEYNAL5V2SUH7kUqyLrDTSsbdvDFSXmz2mk3jeZ5SOFDQBRx1KIQUuNjpEFG5XAHGLMujKJRS55ld0s5L2oAdMbslZMDAAkWhjVfM1/5wImJydLZ6ZiIeCvT6jX8avyGloH7PDERgcR5/qBD00CZZsUk58/rhdxl+E8Tnr60Yih4HooLY4uJpQ1cEZh5+frn+g2FSHBEdUUEe1KqVcrkMAKOjo4mhlQq6j6CLX5yloAFRKSWEyLK8VCqVy16tVlLK73TSPM+llMxQrUbG2OMnTngIUeDHcayVEkrGcRyVSwBw+OjRRqMxvXHd3Fyr1eoyc2ryNM2r1YpQIu52jDF5mmkly+WSRAHWFnBl0BAIANqLOr229NMDh45Nbju3XBs5tP9gs9MbUwFZNzczF6dxWPXLI1XUKnFs8mwJ7/ThG0Cr3T6qVK1WS5NkzzUv/vTf/f1SRfsKmmu1Rea5jtOIYZYsHmqXzEkO/O7JE0+ebH7p4YOHF2blSLlRyuqRqY/wzgs219bXfBVZypwS5Ixji1QDwnbToNSRQs+SAhV3uBtYIopCXYqEyDmJc3IoEI3JrMlrlZK1NuumtVo4M7NQLY9IqTqSAaEWAwPMRSCIq/PWmGRGi0pVlxLX7qY5coiB5/vWcWrY2VxaLYT0feUcOeL+Bh1df9QBEHWyzPh+UKmUnHPdbgwCpFTWGAAwziqEouMR0TjyfT+KRJIknpLOuYWFedkY2bxh3f5nDkblUq1WW2y1kyQPo4ic88VZ4xRBCAyUj8hxkoPAsOSD4F6aspdZ5xYW5zdMTWlF7U5ciSp57pRY2gETAhUQVjB7KF1qa1Gl2056naxRK7fbKdLynFlSp0TU7aaBHyIKBGGtZeY8t1IWe9Y+gl4qo5QSQBSbLqYCOyMAsGNmRgYGgv6MRRBSSMXMuHyq/1BYBUqfDZN5wJ8IFAiIgAIEIjKIYkX/oZGh0JJX0cWrIGIeDODTRAgxXC8+F0JELLg4LoNoAMWr9c6wkggLyNgHKhIKAAAgtSJyxpncmDS1eWZ7cXq2t8JKZX32KsUIyteIbIg7cZoa3U2cZReWfZ88rWScmDhzd9559969eylLyeTG5NZaYhACvSBggKhcMsb8+q//upSqVC0BO535st107ZPYnfOydkkqDFCww15TIUoAAYxL3CMDIH7u7n0Hj59M66W5xYUtTW/jxo3798/PzcxGSVrzvEunpi/ZvcsXhD12Sach2IlWwfUSADPkKAgxLJXHq5VKEEZBeCDNN1+we6mmfQV9yUWXZXGuNXuChevc8tXP7akmWW7uuvueuDJ+LA1zqYQTiVFT1fGdOxsSmoce3RdMBdVtY4tpGsdJrVJLEq7UMc6oVFJtFs28PVUZUwQUamPZGkpSFoBKSXZOIFRKHrCHIPxIBr7fbvXqIzVgCVxQ6IAEjGABJLCU2KhUTrDrxhlmHPpaK+4lcRR5Y2O1TicRgY8o0swR8wClrFi3ARBhpBJmQZDnLu4lxCSE0L6HCEJIz9PO2CzPEUErxcxhFPmedJbyPA/DIAz9Tq8zUg1zm61ft84SZVlWLpfLZT9N826Wg145yPoDjIjCyDe56cXJ6GhVIqSZ0Z4Kyl4v702tX68ldrpJuRSGPph8qbCEBQeIDEw2t0HgdzuxzRJPy2azoySFQZAbPntjLFAEQaCkcI6JKAo8AIiTPMuN1h7wErmBBdmIKAp6AwFYIDMLEAzAbPsrPTH14TMAMuNp6Lk4Eg9Hi8yMyAO1vFJXIyISgxQIKAo8DYg/PCZCAFiFg15dQ6/hLgyrLYjPhfR3Y4KZBhj4WaH8s9QHlywp/cuMsVJimmVMkGWZlEIp5chZ685E0AOr4NkIupcmxFEYaO15QghrrTEmz12z2TPGVaplZsjzvNVqXXzx7pe86OpAe1GkEQUxSAnd2DhyC83FP/3T/95ud/zAz3Lb7XTTNOE0I8mG8k7alYhaKi0EmRyskwCCSSBIZjEwAzTb3de/+W3bXrHHEvzH3/xPjz719KUX73rvL/6CSM2DN9/Seerpdqfr2czkiQDnl7zUJgiAzI6BAXIhHGC7Ewspe71ekqRChbVGY6mmA4rjRMpdWS6no6FeaO/zF7/nOge77TTK5sc2h4+fcO00mhzfiYF/x9NHRqqntk+0TJpnsfHSKyI/irACVqjAGhIPPnDnudu3w3SNM3DSHjs6c4Ddti2TpZKfpY6Jo1CBA4X42KOPRGFpYnx83/5narVaFEV+yQOQANgNgRGiFAghi0A75rnW4w89XXrxLq1VKbP7jx6Zy3rnbN1qmeebnUcf2ze1bnzT9MZAKGOcUqLAjwAwWJy1c/aBe++Z3rixXG04Iq09IdV8s3NyZiYIwi2bp73Qs8zAJJV01qZpmhspkZ1zvqecS59+/NHjhw6s37Bh06ZNzW6CIBjwzjv3OuDLL92laImhW7IRgiNAwQQUlQIGuG/vY8eOHf+RV7zs4Imnn3rqyRte/Oon9j9+7NDcq17xcmdZayn7Q10AAKIAcIBw6vj8U8eON5tta2lqenrDhunvfPPuCy/c3hidQlRUQN6+t4VgBuc4STOlZK+XPPzMM91ud/v2rVNT660tJtsSjgZmJqIV2hZhwEFLCTww5zEDEQlEB2hYDG6y8iiGTlJHrsBNZxyVVH1MjUJKWVgP6YcKPQPi8rZmpbCAoQuRGF59hH/2XUXfkAtAwEu+JQJWGIVPv3y4gkZGwcCIiFAoNBbMTM6EkW+MCgLNSH7ghVEpz63J3cq7FMP5NA76tJuLJEmJmIhRSHIOhfQDr1ot5YazzBhjrHWdbm9sbKRerzzx+NPWZojKMWgP5+dbV1558cbp9XOnFpIsJ0DO8iAIS+XyYtrsRXknSOZg0Wa5J0Tk+wpZKtYCJZFk0ADILAEQoTK19VOfufENGxrr1p/zgQ/93qc//bc/9d63d7u9R797zyPPHNhIopdTPShbJ7TNsdcLoQN9cgMJIBXaIhoJIRE58oNwZGzqVCdZqmhfQVf96uapjSfmW+1TnSfvvX1yRExHcvPG8U1bRh5azKyFIBqvNTYgyGZ86sYb/xGuil65c0+c7G+dmhxZv6UUlptJqktpb6H3ta9/fk/72iunfjzyS3H7xG23ffU7xzu/9AvvjqZ8rREscGG0Qvzi579QHxl5/ete/4mPf3zXrl1vedub0iTXvgcAAjAxFlD17cmODj/6xIc+8vtv/ePfetF5uxcWZz75sb85sDjzwd/4zfF1k9978Hu33HLL9S+7bmRkLApDpbCAfFIgCihIWK10nmaf+sT/es1rX3vVnheHUSR9P8/N4SNH7r7nnomJycZovT5SU0ogCCHQAWtP+56vJXhakqNjR0/+9z/5k+PHj3/+i18k50ye1xsjex976td/7YMTUxv+x5/9SaMssjwXQmitnSMQiCiEAGOcsbZcDjNjH3nkkZmZk1dedeWtt958//fuu+LyPd+47dbF2fiG629IYpJCCgHMLCUSMbMDcELy3/3t3375c5+fmpoWQu668NJXvepVt916q7P2pS8dFxKEBkeFpwWjAGb2PC2FkJLuvuvhT33qU6VS+dWv/tHRxoSUghkQwZFzjrSWgw2s8BTHSe55vpTQbKWe5/WVKQoUgFRwnowgBBY36Stn6OOtAZ47TfUw4pLiHijnYt1y1G8dYAAaAGocGMhX/OJ5hYrPlQxXUKsi6OGnV9N+qxHWzxtdLxCIgZgdEa/oWBrWE/1qnlUYYmZiUeyslg3TLKRgdlprQMyNNQ6tc3GSGIvWGoFCCCEEkiXsL/sDW9KKdhOBZ61ttzvWWWOtFDLL8243XWwlzBz3YkQsV8oM0O5mcUo33XTL8eMnwigkZqnk/v3PbN/x4VJJdXu9IAzzPO/0urVaTQp56lSztTCfdLtZ3ENmhyJ3zpJDZyWzIpbAilkCCiBEvHDbjm5z/mN/9ufved+b101e9u63/FjWm7v7u3fd//Uvbxofv2DTtEzne60EjfG1zGzPYjZQ0EDcV9B5yGTMqdlZob1WLzG03M59Be11PNnDSS0XZ+eaz9y+rkKe2KtE1SOcqO+4cNdl33paPHk4mZzaSeVKxHdWvW6a3rO4eHj7rhfleSeXtbIfkXu43LCEc63OQZ8iolTAk6iPJSZqjDVSC54QnmJnjGIWTIFEShPFjk1OuXG5i6LICswNC0CbG8eISgpgFFCp1+r12kN7v3fl9vNnTh576MH75yl7Zv9T66enHnn0kWartX5qwvMFovF9jxwb44C5FHpJL0NygQ57hgTnWa9VCjUKttaiECBFu9sbn4RytZo7F3pKApg8F0iglFSYpqnvCdNLztm44ejBA4ePHP7Wbbe95S1vCf0gS9JHHnniyaeeGZvYqKQWkEqwyEIJRc56OmCBcZJqrf3AcwxR5L/uJ368VoniJHcUA2ZKs6MUkIxNwzAkxwKAiAWCJZLSYWGvNvlP/vjrf+69P1cfaViL2lcX7dpZqQSMstlMSuUgN2AdMIPve91uDDlorbK08/BDj2Rp9kd/+AeB7wspABCQhUAiEuhCX/fiTAqfCKR0RA6AfU/keVoqeWRUYcgAImZGwYxIjMxiiVhZGkfLJsczkfUyXwfLCh1RIjMwFYe+ghYshMA+xl7xP/fP7Qe8ZlmNDR6+sqwCiFddhtbEh6xFVnOOhL43JPKAdOq7cQxbQngVPxxGy0hc0Na45JSBKORCs9eoR71uz/clMRCgI261OnmWB76PiO12e35ujomAgYnOpjhKjdr69euzLPM8L05a9XqdGJIsM9bFcZwkiZTSEhV+XbmxcZpfefWLdu3aBQKttR/5yEeSxCrfolStdscYk6QpM/q+b4wx3W7SbJ48fDhQKlBSMkt2wloFoJkUgAZWiBIYAbrzd1w4EaTQ+ZsP/+f/+ok/d72utclt//AHl41NTEgrZ06CybnXkUTEbGTQliEyAzExOOJUagvYqSYCRRhEYFzuaQhKSzXtK2gpPdsFq62SMvCUlrnkPOsuNpvw0NEnH8khxXO7cydNqhfnzVVTjS3TjSh4hvwEKK9UyyRFnIIqA+dJmnaNSZQA4TGoFDEFWUstCde794GHTx0+7Cs479xt52/bZrJEIyollZRM1hqbZ9nXv3l7p5t2PLdxanLbBVepUAYOQEBl/cT5F+787r33L7705U/te3yhtYiV8JGHHzxv9+4DBw/VG/VqtZpmybfvuXd+9pTvqe07zt+4flqJymc+84Xrr3vZTTd+fcuWHc5mJk+lxJmZk9+55/7M8tHZhdlTs9vPO1dIsBaMdYQACJ5WxoGULBDyzApgBPI9dcnFu7/+ta/+m9e+hqU3P9+94zvfveC8C3ytmPO5UzOHDh0+dPiII9q0+ZyLLrmk1ek+uPehuNMVnuecu/qalzRb7WZr8dqrr0izXm2kTMZ6vux0Fnrdbqd58nt338ssqiMjF+y8cN368dD3rM3anXikWuvNt7qtbskvay8gY269+bYXvejyWn3itm/cPr1l8plnDlz7kmuTNNn78AOLC81GY+OFu3eaPDl88NDJEyfvvvPOyy6/ZGZm7tFHHgW2Yal02eVX1Gql79zxwGhjbMvWrSdPzt15z72vetXLnTNz8zw2VpfCZctBCSsnMQ9cAIEHRwBY8WGl6n4W6MuFEhhY9gfqu6/pT/NQWI39/NcqqyHrf/abrEYeFwhaIDAiLXFhxVOH3AXP2OTg8r9YDJFBd/b3T0LKLHcopR/4xtpeHM/PL8zOLpSiCJi73e6DDz7YajYb9arEIogK4HQFfeR78zfccIPv+0II55x1bmFxMTemF8eLi4txHCOAlLLb6yGytYaInnjyyVarxYjMnKZZlmeRI2aYmZ1lYksuSVPf93utTnJ8Pj52qnv4ZIKoESSTZJLOaQTFpIAVsxIgGRBhpqHnuvHxrLnnJde1u6kflJRWGzdvO/Lk092gLaWKAMJOi9K0hJBIv+UkMiMRMTBxKpRF7NS64IVzc/OOWCqV5Mtzr6+gA79kDHuhJs/zJUvKImXRONuTTz585OH2qdL2KMHjnbl4fpGPdJ9Odq6LtvRScUKwUSjAgCAAaLGMk2TxvnvvyeyXFXSqcPuDDx/JSmOG6d57H7rxC18sU9qan7vwgh2jb3qjr4SvMO+28l6nUa3kSXLjV772+W/eMTI62ozbs4sLl/ze729pbBKOQillIDeft+2zn7h5/2OP7T9y4PwLttfXjR8+fOSxJ56O0/SKqy4TnvrM5z//6EN70Zo4Tr75rW/+8i++HxH++I8+8tADe9MkbdQm6pVoYrR28viRz37hS7d+597G2MRMsxun2cVXXGEIlBK+FkhkMpNbm+foe0op5SkFedLrdsql8Nf+46/8xf/4y0cf3nvlNS99+qlDp07Nv/GnfvqfbrxRe3D/t+/9zGc/5weh1Oque77b7ramN25+4ol9hw8eemL/fmfMpq1b9z9z6OZbvrFr507GnCGrlsIjRw5orxoGwaOH9t/xne8msZlb7Fz/8pe+933vIIY4iT1PgXMP3HNf6IcT45Pbzz1//dT0Fz/3xWq5tnUH/sWf//m2888FgN0X7/70pz/d7CzGnR5x6Yl9T1526aVPPLZvcW7u8UcezTJ73333HT18qFopNdud2dnZPXuu/s63vt3rdN/+znd89WvfePTxfXv2XHPutvFnnpkPI6/VyrQfFvNiEK0CsGzCZl6ho2HIh2dT0AgATIONMRV+XH1r0tLW/XT69l+4892airfkPfYDPfG5WLVWVdAw6JyCeurT0H378FnCK0rTr1xhFB7YfgH7HnSFhYOV9nKTayW1lsY6YxwxCyEYIEmSwu9o9+7d1193TeBpcm7pvkulfecv/Lvrb7hBaZ3nORH14rjT7RIzMVvnCsthnueOqJeYbi8955wtzXZrsdXK87zRaFx40UXE0Gq1ted1u70gCFBKRiSASAejPWh0YaRNyCSYBJFG1kyeQAVOAitggSCBBeI+Lz0y1zz36otf9spXs1/91h137HnR5a9/w1u/+em/7czOzrR6Y6WSCms5ySSLCZgQizDjIoZZAAuGXrtL1vXiBJQUvuqmZynojso6MhsJg15HtDM/a7cyrDKoEM2VO8d8sQHWb31wvnXsxOFS6o4//dD8jPS3lpuzZp1TJnUZsR8C25AM2Bw7rd5TTx2QrlvnEzMnut5F1f2H52/7xrfnZ2eueOlVJ4+ET+57/KG9DziTisAPS6UwDPMsfebJp7/8pS+98z/8yrUv3dPpdj/yx3/+px/7mw//7m9XWAoGF3nrztk4FpS+dfMt3cXFa172klqt+k/f+u4dd9yR5fn4+PjiwsJ3vnvHG3/idT/6yld2Wq0/+IM/vPmmm37m7W9r1OszJ0/+r7/5eBx3vnXTx07NHDeobrrxxt/58Ee2nrv9G3fc9am/+4xSSgpA4DTNZo4fe+yRh04eO5obefWLXrT7/B1aqiIM3eZZvVa7ds+eb9x8y6atu797x3df8fJXlMtV8EpPPXXs3nvvvvKKy975rncZ5z728U88+OADuy++6Bd/4efnFxY//Q//+7wLLti6bdvDjz4+uW4yJ0bkXq+dunhy3VjWCVDAtu3nXnjpxa1md+bb99x11z3vetfbA0/6fkCcG5M7Y48cODRzbKZSqU1MTHbbHWdMr9t11k6tn/r1X/vA408/8clPfvK9731PtKXyvfueuP2229/wk29405vfevttN7/n5372M//7C3ma/fbv/Pb0xg1333X3Jz/1yU0bp974U2/4vQ99+C/+7K8W291f/KWfmxivZxk4R9WqByjSrJh9p5u6uB8XUyBlXEa8yyTHWcez9AIvwW4c7LMRAIsomNPpDVjpB/AvVtbkkizWvN4MZ35/8FVrVYaDAbgfPTgI/mRmGrqwFMv1ksN78ZkHxesrb8Ql5p2IPE/mGSIKRxdOlG0AACAASURBVMwMQRBIKQHQ5MYay8zG2CzNWq2kxYk1ttDuYkVLMINSujASau0ppaRUvh8gil4vBgDP84i4Uqlq7SVJeulll5bK5TzPrbWVSqXZbgPi7Nypxuio9r0gDHNnsyxL0zS0TuvA96MgLAM5QU5CoZrJk6iAJJAElggSGQFmmslVL37lxa96aVipfu7rt37729/OY37Zi699zWvffNft35zbu7eZqiDyRTnCKEdywjlBJIjQERBplAJFqMJyuSyERCkYITPLAUF9BT0nOt3IBH7QQWX15MLJ+XkI6yMj0yM29aNWu3SyfUTNH/Dmj5ey9Jx1PDU2Skln4QSbVAS+BEStAKhCpEdH1l9y/WWve+u/R0rC+J++8uXvfPYQzjfbzWarUqmdPHlKCnHZZRfv2HHuvr33uyxViALY5bmnVGNkZOt55zrEyerItZde+Ucf//97yFE3UaFOqn5l3eiu6XO+8uV/nDpv89svfEckdfa1m276+7+//hU3bJzedPjIgQ3TG6Y2rBcSxkYb1+y5+uYbb9Va5Xn+5je9WQhIk5htimRcnpksnZ6eqlbKGzZs2HbuNikkAxMAE2dZ1mo1Z2dnHPlxnAiBnU7bozwIAyUwS+M3/vQb3/qmN1/2ohtuuummP/yzj955173gII4TBNq16/z6SCUzdvPm6cNHj3W7bd8P//Gr/9gYG730ssuCwDc2l1o6csR5uRz0sraQcGp2NkvTv/qrjx07enysMSEFCmQ/8I3NrM0ZLDDfcN11b3vHO6ojdR16CzMtIFIo16+bVEq+4oYbgHnfvn3T09MmyxazfPu2jVdfeTk764wDhjTOTs2eEkKMjdYl8uZNm4Dp1Ozci699yXXXX/f//dfff+fPvm/jxuliijUa1XY7I8JBTPJpMKtY8wvBwouuP2GWP5xxHCqiwFd97lkgYH8qExcqoTiJgMBDXSH+ZcnaEDSuyS2Dh1K/+FwsW7jK0sIOoI+jWQgg6Ees8LCYRlgyNvRvCUtURvG5z2HhknpnIUAIAYhJ5rTnl8tlROH7AQJIoRAxCMJjx07c9E+3IGI//8HpCnrTps1CyCzLicj3pdae1h6iQBSe53uep7XOsgxRHDx4KO20FWIRfOiYpZRCSWY2ziqtrHOEIKX0fJ+IgzACVlL62osEsCQrkX0lBFsBJJEkggSSCAIJAVoLqKvrvnP3Y51u584nHx4f2/rA/fvjJowzn5p3KpoKK2URKGszZ1PNucepIhJEwjlwpEAwitSrhGHoBQE7yAwwLqcDGCBoL8sr2JPoKpWpbVc1T7ROnDjFLmyUlUhh4dDhB/bfezCWlbK5dOf6H33p5RPj9WMHj9XCbZpCLSMthbEgYEJyrkQFudTvE1cmE/TizsRkbcuWrXVf/tv3/Yx2mU9GsROIntbCWZMmoe9HYbgwN//4vidHxhrWyXu/e9cFl198KkvOYSQDcUi6FG7fsPHYoYPrL9y6YXqqTKJRLs+eODk6Nlaq1ibXrc+6nZkTx3nXBTnZb95++3k7diilkzjxPK/oY3JWKRkGHoJ75sABQ7j34UefeXr/+bsuTA2R47Kvtu/Yvn3bOUzOGEXMQkjE3At9BO51u0qIbdu2XXH55Z/8xCfP27GjXi8zo5KqWi0LiXv3PnDppZcQ4OHDh+I0R4Svfu2rs7Mzb3n7O3zPy60ZadQfe/Ipx+R5yrgsVEGWpVKJ+ebcjTfe+Jf/83+ONRp/+ZcfO3b0oHNOSbDWag8RABwhg0QUjEpKJZVzLu7FzrhatcYM5593rrPuXe95d6PeEBgEgddsJp7nFS7eQRCcOjVz9OjRLVvOOXnyJABsmFrX63Uefvihl11/w77HHpuf6wVBHdFJKQlckjiphyaN4MJH+yyMfMaH/xsHzUu2f2TmfpgaF9YkXAbogM9jyonnTtaEoFfDravL6kzRDyarURyOaEBvFEHN/W4a6uvOfZPxgJ9a3kwtu7H0aS9GAJaynxCNAYzJS6VQaa/T6UqpgFlJJaXctGnTwtx83OsBs5TybCPhlVddVa3V2u22ryQKAYhCCmLSnvZ8XynFwH7gT2/c2GwusnW9XpxmaRCGUqtmuy2lDILAC/wdO84bqdUZgJE9z8/znJXqlrysFrnRKiAAO2aSCpGtQCJwElkiCYSiWNdW690n7uqBPXb0yKuvvTru9VySZ/vuS6xbjzhRU6XAKZfkkLG2Vqocy4qcdE5ah0QSBIGoVupK60q5AozGgB+ESzXtK+i2Trte7hhEubL5vGue3vv0sSceynqZvyGo1xpXnj9RHR1t+bJW7lx+6fot27Y8vf/YsYeOXHX9DVJVET1ATFJgqHKe5alyxhMSEATnoTOeVGpy3fjWbdu+9LefPHFgX1nj1RfvfOmeq60xzjlUksgxucb46A03XP+pv/7Y7Tff6Odi9sTsG37n/QlQyS8lSdpDEZbK527YuHHd+s3bt1RHqqXErZ+e3rhjx/SWreVSWClN775o99e+8pVv3noLWZeb/IYbrgfger3unGMG7flMLvD0+edtv+Si3X/8R39Un5w6fHKBhXRsPV+yY0TOnWNjPCm0xl7PWcQgCATl4KzNM62ky/L3vOc9b37nL73/371fCDbWkdRjYxOXXXbJ5z//pd/4L78tlQaBL3v5DcePH//8Zz8DjL12x0j58h99dS+Oe72eJ4WQmKYJsfM8LSX5vvcjr3zlxz/6Uefo/vv3nn/heZ1OtzESSCWMy33tcS9zxqFDylmitNZorYEh7vXSLPV9b8s5W67Zs+c3f+O/bNq8hWzpla98ye6LdvfinlSeEP511133+S987r/97ofXr18XJ/F55503Ojb2N3/913mWvue97/u7T//Dxz/60V/54AetDTxPRyW/101XmdSMQPyDK+i+dwcOtLBY6YWHS2q6uOxfhYpe28Xf//U8tBmf1xZhctDf2iAgAjEKZEa7CoAeaOe+Qx0OyI0zaBgGQECl0OSOCt1ENgw9R9zpdKc3bMrS1OTGWjs9Pb1xwzQTKSmFEEsB30t364FVWimtyuVynudKqyAMhZQMoD0tpTTGlEql7Tu2x3EcCqlRGHKICAKdc1JKIUS72/E8rzE2Njc3xwBBEFrrLEJWjUy9QqNVIQWRJbJCokRCyQyOkalIp4KMABfaUqfZqWxYF2+sJRi7wJXKkamIhiNPYGSNsxnKnCVb5CbqRVXRZKWzyjp0zoEkQFGv+0E4Uq8rTyJCFEVLjTbw4shHRF4SFkpa+o3pqQuvefyJJ+8+dOAwifUYlavhZZur5bqnRSzmu3eeaj40qyrh1WbTa6ExmSh0udFCxcIHqf/NT79ttDFKFoClLW+76CVR2NXjUr7syktqwswfP6IFVic3QWX8JT/+Ji0VVcdf8/Z3T05MVqc3vuE975Y3/lO32wPiV732NZfsuMiS6zIYKaJc+ag3Xnn1f/rQH46fu0moWh7QS37kNesuuPTCnTsDEThnXvNjb2iUx0+eOAEA11x7zTnbdljA9/7yL0+fe24KYFXwo2/6t+vXT4WNzW9597//9p33Su3t2VOdWD81MTmhLRahbEyIjMSIKLSWlsnkJEhoHX3gtz40unVnF7zpCy7+4G//1tYLLpBKXnHFrmo9qlbKl1z9Y+xtOHDwEDCcu2P7xZdcPDM7+8Y3/Vyr2QJA6fuT9Q1jtfWTjelIVa6+6Cd3bX0l29Frr3xdupOqlcm3/8zbbrv5Vmax86KLNm85B6VOjUAsC3RXXP8jLrU0NtqJfHJsIu+NP/+z63dujyZGf/7XPtDYONVlTNH7+Q/8h69/7R9RKt8reSM1WQ52X33JpvO3YKS3XXjeq/F1D3zvfiFFFEVXXXVlrVY7Z+eFN7xmy9Zt57/zfe+95847UWtUioXsJgBSEgExFtxjP+0WMYOwQq+gMIq/Qe4GGCjepYDI4b692AfGg2CVgZKWAgQiIBQEBw4i2pZMhyuyIDDQs+j/H0zE2a7Kz/qs1SDu0JXF4bDY7dVklfhKpuEPlcMafFV3OhjOk7CQBQtNPGAXEBhEQSX3uxwHuxtcSWbh0i0FCThtb9H/IumlUcknp/IMtA7DgEql8UOHjgaeGBsdHR9r9KNWHaki3RwMzIsrq5klUeRFYU0IIYSvlIp78/VaEIXorRuRUjrnlNIAnOc+OpSoAaFwnRBCIArnXK0+opSSShVRYX7gV8vlLlBpfIzDcNtFF+d55qyRUrBzUoDWSgAX+ZKKiiKAYq+UZrparjLIPPV9XwKmcSwQCTF1DgpWENmS9dgbFRGAA3AIDpgYkBmOzyw+8vgTL375y6XvW9Ml213uoaJtP/TZb/zYq28oGaiEgPOuNTtz39e+dOdttyTHnlpfjyYiG6q8pA062+v0Hl9/tXfRdVdcccWuXbuqlUgqDUCIq6VRXJvQWqYd87MRncOuH7pH46HnaYWX/koRw0K+iMGtmqlgiEhZjIr+rvDZ9/FFVo5hMrzuxPlqtxrCEVMALIqYwSIdUtEeSxGGK6MNDUAmEFY02ll5k04vybDowLPdZnGQ5a7IgtIHb7hCf/d/uHyEZ8vP+YOKYBBnVOdZmfChXyIODw6kVSIMV5NVnayHdb43bPqs8E7+gWTFiChc51AILMbM2RdrFGdHlzKztaZc9p3jLHOlkhLCHTw4++QTe7utw0KIYrA554rhtFqe8TRNK5WKcy6O4yAIPM87efJkp9PZuHHjkOqDD6y+zzr2Tp08dPuXt27dWiqVOp0OEQVBUIz/IgXjGTJUG6wqVoCVDskJYuEYqVh7GhMbxicmX/S6n4iqI/uk+m+/93tf+93fKX4xiCQUVJWgLKMDQK6PN3ZfdY2OSs88dN+RA08+c/SgzdsS0/pIddPGbVPnX7T96qsvuviCwC/FcRqVZCmSxjxHiGYt1g8ePkpXv37YMOVVVoWVKfNPu56GACAuGvv7F0srNdDAFLJq4MBQYR7SVgyMNGQkLWHcAWfIy1C3mHL95Ed9/yiB1LcD8iCbPzMDOiyesTJB2Rn5l1Y8dKjmAsYl+xRyX0cDIBIAI6BAIVGg6E9xGuTrgZVgkIGet30+nhlNshTUuPoPzj63CjONa3GQw1WGxGo318PVBYuzM3mtXWiQwXgwXxgRGQr/tDNFiWHUPEIp8rLckSPfk0xMgOdsntyw7qrO4pZmM+71Eu2JwJcAkCROaaHkMDxE5HnKESWxFUKGoeRdJs8toD77YgA5vLWGNkm+46UXne/7PluXpqkQwvN9ROBVtBuupWHRCXDCIZEgRmIkwYAMUXV089bNenL9idm2N1Wm5cTFSxQHGeGKPa0QEqs1P9q9Y/3U+ot2XfD4ow/NHj+Y5x3mpNGobN++NTj3Sm9yi6d9KUUUBUwc9wwKSTRco61JiIZjsaGyGnB7luu///OrvOFi+HkCtGsiBokHUHFJCmQ67NpVd7TDn8g0ZDezhHTOQL6IdiUKXmrSpWqekayjnyDhLCS+StsO33IPvPNw5ZEH5AezIBYSZJ94HASV45JL3vPNcZxWnRWNzMPpYxwaY7casyDWpqF5LXnyie3QMUHPkS8MU1/6njwrNkBniHNDxiwiWqFMngshhJCFZ1sQeFFQGm14Y6NKSqW1BGBj8jQ1WisphxurixxnzGitJbJaKyWVGzYkirDqs88PvbMCqICzxjBxQVWvrOkPKoToBAkipGLXWiho4fm5cYdOtqUXksBeepabXUipZxJ2KJ2XO5O7MEffVsTI+bsv3bKVMQfpDDvHUnr+SK2SG4rjbGRElUuqF9s0NUEgV89rtSZxz5/d3q0lahgH+Sa+r4uBxVrUBYHp83ggAASg7HssDJ9eqyg6MQRIMayWpGeQnBsABhkSGBjAFCwnQz+7aP9vkPtJIAMu/2wJhvd/wks5x4YVfGh7D6z8y7MbEQuvu4IYYCFYSCYkXBpUiDhooT6afT797/iM3DxnFf40kcNO9gH/WUJrRdBrGVgK3BDKGlcD3GsWRnL9Vw/1LRBCrOY3ODznSJpkQgpPS61YCqWVT8TOciACpQUwZgnnxiAIrQIgYYdtlIRga0lK4XkoUOU52ByUhqElEXL4BsK5IZPKMSSGrGWltK89ZjbGIoJYpRt4eAqVVYQFsCQiJwgcAQjFgAzUpTQ1mQzHG/68gMXO8qP6ClqQ1cjS02EgKJOAgAqRtdSiVA1SS6kl6YsgFASQpjkQeZ7vHPRia3ILAMV7SdZQ1tWqsEZE/IPD7dW45jXBbYa14bni9W5UJKBgIdgVgHroqs48XBuRHVpsZLcqL7Zs3Vv6JOzZ6p+ZiSycXVlezifNg2I9C754FotC4cm7fAQY+D4XKfREsceAARHJfTX+z+HUsRpjs6qskqRi+M3X5MGMw3dVq1Gfp72LYfkez5mChn5yDS4yGPVBzFCQv8reH5F9TzNTksRKKd/3jDEmtUTsnCViIaRSWirV74OhVLsWzqLJHbCUUnpevzWcG76N42ElHDpoEVFHAVpGFBbREbHUWgvEVVKRrMkQwgCA1H/DDBfqHQGIYXRCe0rOLRJMyurI6NIvBm523W5mbMkPQEDmcnTCC1UYYWpB+6BRABWxjZA7UAC1yPM9aSzkuQtDTypwz41+XtvsW6uRcChpUdgl1vDUoSVZ49JCBVmGIFAs28pWASPMCMOsbatnYR42e7EfkTuAvis94/rVX+5CBmNVccUZPdKvJQ/g87MraDf8PPd9n0/7EyhgKZndit+JgcMHrLArPq9CCDT8KUWLnNnoapVqPgeCPFwVr2JYHu7FsYoyWmNJ+ovFEqDp81FEQ6cPKzF0i6OkkEpYQ0lKCKQVeVKIwAu1ss4DBikRANMMkyT3PamG+eMrBVoJa5EYlQStERDIrYJjWPOwN0EW7htnVROdQiSwFpwDVELJ/hQY3g9roXUZgPt7jv441wSCwWV52kMXQGchtrXyRL22XMjin3Kloj3d7nQe33fsjjvuWlxsEkupdWqJBDgpSIjCMcQh1tn5NrfWAIBSWilJRMY8NxpaiDXwJGvloIfijjXd4VlusjbsLw2smDb9aCnmoSQMgkIcYvdbHbcO3RUKUWRIOJ0y5v7rPc+8YVGSMx6xbKI7nX1e1ZbNw9nwpRk+lMQ8s4Snc53Pwns+V0IoaHmlXDkFi3f0/LMq6OFudquMt9VeePicNFcRhLL03KXuG1oSi0O0ZVHspZdSFmk3PM8DEiZxWnsAYK1xjorQbecsDaPJ0jQrlUpCyCIXh5TCWmut9X1/WLktf99vRieAhIRSkhkQscjHFMcxAGg91AK5BmEGYmRkQkIgBNbEgnkkbMzOnHrNW9+zY0f9vg42m4tLPxlEElqvRz548mSz/a73vMkYUowAzlrrBz4DWLIEjEI6YAXIDgWCc6AUoMBWM6lU/LVairOcmNHTmCTG92WS2CjSvV5ernhpwlEkmPtZtbKMg6B/c2MoN873FBEUEYJnSxEwnKUsJSoNCGAtSAnEIAUw9I1uUgAREMEw/5lnbWgAYMhy8H2whq2lMJQA4CwbQ0JKJfse+46YHHgeCgHdboYotae0HowX7JfWOieFkGJFTovTZFVqGk43FzEAAffz6qKwzmqlqD+rWPdfp3vamt9L0sDXgMI5YmZfSwDoJVkpHDLWz3BvWMbgS69FXJHEmRlQgMlBKgCG3Djfk4BABEtEzsp6Mff/21oAhmKPywRxYkolDQBZxgCgFXc6ychICYYJMzgH1pLSaC1pJaTEPAethzQiAxABrqAACoxDgIzgGBDAUd9brghI76Um9JUQ2O71ylGpGPKCQAycfpDBWGZm31uVaHpO1PnQgbL2RB/Pl9hVStjv5OL/fd95ROibzaE/ufom9GehGc+4YBnUD3/m9yv9Thy04mkr0A/csgzguM9xFT2lGQSzYEnW3fXwAdetjgXCN52ln/Q1E3G/TYi5Uqk4B7qYIcDETEzExMBSaQJ2RkiBRJCmJooUItaqFVwyzX9/UrRknrOUWKmAlJDnAAD1OhNhfQSIoN1OGvWg2UwnJoI4dlpLa125LK1lKcE5DgI59KHWQp67WlUQYZracllZC0IAIsSxS5IkioIoUsxgLTCz1mto+yX9wktBUwyIYI1LU1etau0hOcgypzVqLYggyxwAVCpVIZAZOp0kqgYwcC8j7g+41d6Zulrh3DDlAgDArtPrAEOjMeacy0ympPK0N/QmtVplaVgXo9MYV6tVhy4KeMa7O1e0CaxwW1giQlcy6sVJIVZ1jcwypxQWG88sY+coDAUi1hk6ncw5OzlRAgDnnDE8MlJb7T4F0EOEotPFgDQdKs4N2nBFyS0DIUgJCJAX3jkCJIJA8FKrfakQg1LJU8qxS+Kk7JW1AusAAZRaXvWHL7bPo+/Jarmm/x+IXQvV/px4F6wqa23w560oNDAR8+D1hh6DYACHAEBkmVgKWKlJ+wo6FzoTUrE1gAxATMA5kGCX2V5XSFQS2VohEK0Ff1QEJWJWUlgD7Xar0SifPDk/OTn+/YPoJM0B+nsHIUS1GoaBBIDZ2dboaPXAM8e3bt1QHwnb7XSkFgoBlbJiBiWVUiAFZpmzzplcLL0kaqUoCU4AAkgBWZqUoopWkKYUBKJckqWozAxxz8RxUqmUfF+uiYLuduIwDJMk9X3PWle4yCVJjGzr9ZF2uzt/Km40auXIN4YW5lqe54VhwAxAmGXG89RINcwAyPXpvH58BgDRcMsK8vBZjcSnUZF9/oIYklopNCYXYFCw8CQQSbA0zKJBzovjOM9No1FJYqO1bs4vjI2NDfduguHex31XZRik5x9swLPMOde3fxaciedppdRQoOP7EhHiOMsyUyqFYSiJoNlsVSrVctlvtczCQntu7tT27dsmJurGDDfNW+uKrcDKqAchRBj6Q+EV9f0dB03IwPx/2HvzOLmu6lx0rb33GWvsqh7ULak1WZMlWx5kW7axCQ52AgGDjQPYYOCRkJBLCJjccBOGBJJL3gW/x0x+eQy5ibkQCLkmTMYOxIwyGBAeZFkeJLXUrVbP1TWdcQ/r/XGqultSy7gB38tN9Kl/Uqm6zj77nDpnnbXX+ta3iDOwGWoFhsDOVordqhPfEkZrZOgwbZQUjBU8W0tNwLXWAN1yBiQiXDZFumIDvSJ78Uxa/5ViBRNHTSh/9sd+PpC1bKht+YkA8ZUl/lYAhpk6pCEwCBrBoM78aguACRMLSmywbUgWNumu7Rd8KCICMJo0aQRiWnPBhW2RUWBbmXsTREq3Yt+3LYsLAaVSgTEslcrG4NO3dIhcCOjrKwKA1hDHUmtsNJo9PYUgkGvXrkbEJIFCwZmZqfu+H0VhT0+h3U6ySBDn6Hu2MaDUMoPHcZzP2yMjx9etGyqVCkqBZVGtNp/P58MwFIKXy8VczvI8KwxlHKee5y0zyhmQy/lCUByjECxrV0gAlUqeAURRkqayXC4KYR0/PuV5Tm9vGQDa7VhKlc97ABSGERHYeS9boGVmi3OuNWWm5PQ9sjMY6FOWdZk9MqSJpGu7KOwoilzHJW2CMBBC2PZyTrThtu1obYIg5Zw7Nhsa6ositXymEZY3MMvOhIhyvkNktduxMSaX8wBISqPU8kzKZrPpOE4+7/q+E8cqDFPXtarVUpoSY9DTkweAUik/P98olUoZGXeZ2SEDMEop17Vt20IEYyAIYqXMsjs9ZebdDBhjjEupk1Tl88KyuNIQRqnWspD3sqSLUlopWfALRKTIIHBEVEprA0oZKWXGon165+8psZINlk/M/e/AyowcasDl7uRfCoivyEATPVMzodMMNNOZR4yAYjGeg6d50AJTAZKBRkqJSJkUSSNnhE6qsd2QUhs/n2/MBo1G0NtfJYyVIGNoslYvFouj09MbNqzN0oZPExZn87X5Vqvtui4i2rbd01PorZQAQMuklUSZ7+O6TiFnRVFYKuQ5Yk/JC8M0SRLu2qRBpmewaGBUmpaLecGw3Y6EEI8+fnj79s1RlPb3FgBwfr4OAPl83rEYA0Z6BTNPUy18hyMJBiR4GLRHR8dWrx5iZBzHKRdzUso4DFb1VWq1+ePHjvf2VTmCsAUHBIZ+3ksTmcRk2SiAGw1kkACMAiWNtVzO2oBiy2U5ssAIdV93HUYTR9iab3DOheAmIa0x51cYQ5UuH6GzLETHQ2RxHB84NDI0NOT7Pi3L4UNaVnNyKZFjYSZE9OCDR7Zs2ZzLuWlqMuucJNKyrGU9vWKxBIBBkCZJgoie56WplFI1Gm3LsqIoQsTe3qpte0oRAC5LHkAExgTnYAw++uiTxWJpYKDqea6UelmD3p15Jy2ZVWGksbQ5L5Yskqhj4oZmZ2bLZR8BOEDUDoUQFkMElkTtBx54YN3mXT2irAkUQapBG5KGDBJb7jDPlMc7AwjOIPK5LPTTtkTPNHB5GvSZwACXD8H9MkAAT/cGpzORoH5J84AsOZhdcghkMvdLcBQJEwm3Ig4RX8xGdnnQANn1SWSyVr7a6MSQQM4s6zP/8Om//r/fm0hVLFauuea5L77hhZ/57Kcvvvjim2666dWvfvXLX/7yW2556fT0XLFYevrJ4lqt9pGPfOQf//EfwzDs6+u77rrrXvOa15x77pZ2OyoUfMZEqVj+4r/8y+Dg4G/fdNOdX7zTtvnBgyPnnrs9K/8nwjTVaZoum1r96Ec/euDAgfe//33Zf7/1rW997GMfe+Mb3/hXf/VXf/RHf3TjjTeUy4UgiJMksW0LVljAEgRBRvput6MkSQ4cOPDP//zPN73kxt0XXYgIcRR9+MMfHhk5+qpXveprX/taf3/fS1/6sr6+Ptu1Ws1mmspyT+nQoUNusbdcLjuObTosJdsYnQVMTt8jgv6ZaWjKBGaMOXp09LnX/FbGMN22bfvLb375K255WbvdaLfTarV6+oZpmkQhAUKhkJudnf0vb/0vr/+D1z/rymdZpnvFLwAAIABJREFU9jInloCI/Qx7sWDmiOi2297yJ3/yJ1dffZVSKgyNUopz7rp2mi7jpCBCkqRJkhQKOde1jh+f+PjHP/k/7rgDOZ8YH6/09haLpVe/+lW33HLz4OBAHMtlL7asHx0gxnH8j5/7/EB//7XXXjs8vPZnVqgSLJbJ3fEP/2P/Q4/9yVvfuGPHRiI4fnzmve97X29v9bW/82rbdhqNRrFYdBzuOM4TTzz2vttvf8e7b7csy3EcrbVSCrpUn2WvK3omDfSvTohjhQb6DIvE/y14JidCCBmLA8AAatSZ8EumRb9Qqbp45joG2jKRTQlAKiDN7LM0ApCHhhvgkT1w/ave8prX/m6uUCCAoZLZc/kljPFWq9Xb2+s4zsjI2Pr161fEJs5W3DfffPMtt9wyPDzs+27m2Hqe98QTR1avXr1l69Zms3nllVd++zvfyeW873zne3fcccfv/d7v7dy5k3NujMnIOsveA1deeeW+ffsajUBKiqLozjvvfOELX3jttc+55JJLfN9PkrTdbnPOC4U8Y6i1WpGBLhaLUkrPc9rt0HGcVqv18MMP33TTjchgdnYml8tVq5WJiRNr167+4z++zbKsfD5fq9XcxGWM5XLeifHx225701vf8Z6NGzeVy2Upsyhtpw5zWaY9A72sC7DUQnVtiyFDmzde+MEPfmBoaPDLX/7qN76+9/JLrt66dXXO6aRhTwFHY9lcSolkfDd3394f/OEb3ojAlq2CMWiWDWQvPxOinz7wYKsdMC5IGcu2XY8Zow0ZtdxhJmmCiI7rSwUm0gOrBt7+jrf/8X9+69zc3Mtf/vLXvva1N9zwonK5qDW0g5RzvmwlGDLhuJZS2rKcJ588bFmO7XiGQOnlDfTJYZnOj7DsSrmS8/xmXTabERlWrzV2X7Tbdz0tFUNkiI16vVgskjE/vv9HtfnGwCrluD6BlqrDC+acL+uzP6MeNDxj3t9KwVdymAQMlqMq/3KAKTxtAUECpmA5rt4vDwaNYQSgALkiYASIlkARMidiLBIQCXfhwx0DjcCRGCBDYNk1igRkNAExBq1mfXZ6iqEq5IywMA6arblZy7KR4dzsnJKqt9qXJHJs7LhS0rKd4eHhrCgio3acvtDLGO/NRsu2rZyf00rNztQsy+KMHxk5libJ0WPHG802F87k1EySxCcmpttB9OSTh0fHxrduO7dQLLVabSlTz3UZO4UiRwBQqVajKH7kkUf2XL6nWCre/6P73/nOd0zP1KYmp3p7e13XjaJoZmZGKeW6brlcNsbkcjnP82ZnZgxRtVololq9mcsXHMdBBIagNXGORpMK41a7nU/9MAxLpZIlLMuy8n4+juJCsdRsNIIg1IZm52rGEGNMKV2rzRNRFEXVanV0dPTw4ZFH9u8HZDt27Iii6OjIiOPYnu+XSuV8Ph+Gwcz0DDKmlfJ9v6enx3dZEEfNRjOfL3ien3Hds78BEFnmPCsiIjAGFGMglQSggYEeZKQNn55OW616s9kgoHwuX+2tWpatlJyYmGy2ZnM5z3GcYqnk2DZjrLe3t9ls1mo1x3Wrler09JTtOEEQcMbypWKQhEHQdH2r2tPvuflWMFebn1OJI7i7arXvefaxYzNALErqq1cPDQ2uLpcrUZQcfPRgpVrpH+h79NHHtFTlnp5qbzWXy8EiZQoAkTFmjElTaYxGRMY4kXFdd2Zm5pxzNvf3l0ZGJn0/B0CHDh1yHMdz3Z6eiue5BFCfr9fma8aYUrHkeq7nukqpfC7v2Pbjjz8ppUaA3r6+SrWsFRAZzhl12wYgkDYm62tOYOIkagetMExKJSqW8o5DYdScmp7K2inNztZqtfrY2MjFF19cqfQ5rq+UieOk2Ry1LG9qaoohViqVck8PP4Pw4crixL8yYeUVYeUO8TPnuK6ktAJgZapnK58KdWipWZkPEQGBBsY6wY+TL49uDFr7TLmuZ7l2j5SYpMBYtuBTQdCwuGnVpw/t3zc5Ui6VKsN93l+/813n7tz5wuuvB4WO8NIE79v7w/e+/0MqiexC9b3vfe/Q8DpEEDYzEnwmF9j+CJ1uiaQFY87sTG3fjx9cv37Idfz+/oH777//L2//aNwOzr/44lbEE+NFSjz/hbfcdtttd/zDPzz+xIkPfuhTJ2bav/M7t7Yi7jieAtskCwY6WyVpAOobWDMwtPYHP/7xFVdfeee/3DmweqDS33Nk5MjNN9/yvve9b9euXZ/97Ge/8IUvpGl68cUXP+95z3vggQeuuOKKPXv2fPRjHwva7dve8pZ2u/2Jz9193QtuPO/cLZyD52CtGQ70uO0wzXkOcAgj5fuloBmF7Rg17vvJg81WmIVfjo1NEdjaiA9++G9933/FK17xiU/83d6939dav+IVr7z33nsnp+ff/6H3X3XddX/61v9y39697/7zPy/l89WBVc/7zd+88cYbf/iDH7z7Xe8eXrO23Wyes3nzLbe87NLLL71v38N33vml61/44ksveVYcyXw+l6ZZwJpsTxqjo3TGsizhyBBqYTp3+Oj+mdqx/QcfvOyK8weGCqOjhz/+8Y/v3buXMbZ9+/bXve5127dvP3jw4Hvf+94TJ04YY5773Oe+/vWvHxwcLJTKk9MzM3O197znPTt27Lj11lvf8pa3bN++/fDhwwCw54pnT07PP/DwtypD+Pu3/tlVl930rR9/8gtf/PT4Y1vTdt97Pnbx5Xs2vvY1HywVhwLzkw9/+ANGO/Nz0bfvvf/222+/+NLd17/oeW9+81sFY8Mb1v3+f/qDi3dfpJRUCi2HCYGglMUgCAIiKhaLxhgppZTStu1msx1FURjGjuPNzMx++9vf/siHP1zw/YGBVS94wQt+8zd/s9Fo/P3f//29997rus7atWt/93dft23btlKuKJCPj45/4AMfOPjEaJLI//TGN95yywvaISdSrmtpDYAGkYRNSqdSBZbFiWnD4iCef+Dhnx6f6CuX/Xq9FSeKAJDZd99z76c//elms3nixPgdd3x6y5YtMnEsXnjogSfe9ra3Pf/5z7/rq1/trVR+4/nPv+UVr1hR8vk/PJ45s8hX6J4/czMxCJqAE2R9DQFJEZCWTTvvuxjZlIrUseViu4xF62aMUYpkKuM4iaIoS4UzJhAxDKOHHnzwr4+esCz3imc9+2XX/xogSimFJbTR4yfGR8dG3/nn7/ztm1952WWX3Pvt+z7wgfe/+z3vcV0/bKaOJZpJM8vBZEzTLJMppZyfr923d+/BRx+VaXLbbbft3u3efvvtL37xzS++4ca77777K3feqZQ6cmTUtu2NGze+693v/ou/+It3vvOdW7Zsnpys53JesxmHrVqp0NOx/phRDDUAhVHzssv2fO/79z7++JOPHnj0+c97/mOPP95qtRCZUvqHP7j/f/7PO2+99VW5XO7gwYOPPnrQc739+x/hXABhs9V+4IEHp6amGEPXcdpBDETStVrNtsdYksRGgRC81WrNzc0Vfdd1vYf374+iKOOfGWPm5uauuuqqMIyiKIrj+ODBx2Zn5/7wD9949dVXu677G7/xG7fccssb/uzPLrn00qmp6ffdfvvb/+Ivzj///AMPPfzxv/mbdevWK6VXDax63e+9bvXg0Ne//vX9+x9dv2nT0aPHqpXecrmcJjJJUsvy4jiREtI0MY1WPp93PKcdtIOZ2bm52ujo6N/93d8hYqlUuvXWVx0dOfq1u+6ampr+b//tvQP9/Xd8+o577rkHkX3qU5+69NLLXvayl83Nzb397W/ft2/fhRdcOF+rjR4b/fw/ff7Nb75t7do1c7NzM9Mzu3bt+su//Mu7777nm/fe+wdvfPOb/uQVH/jQu390/xPbNqpNm7b/0W2vmTty3sc/8p0DBw7Y/rzUcsuWLa/+/VeWy+WZmZl9+/YdO3bsDW94w+7LLv3iF7947o4db37zmwold2DVwFyt0Wq18/kChZCkCdNJ0Xez+FWz2ZIyJSLf9xuNBmcsl8sfPHi0p6enVpv/1Kc+9ad/+qd7Lrn0i1/84j13333+eed/57vfOXZs9IMf/ODqodUf/NAH9+7dm8vljh07tnXr1gMHDjDG3vmud61aNdjb23fo0HRfX7VU4keOTJdKBUMyTWMmTD7vAuJ8vR7HYX1+/ic/+cno6GgW2S8UigcPHrzs0stmZmY++clP7dp1/kUXXbRv374vfOELr7r1VZZtNxoNRGw0GrVa7aN/8zfjY2Of/9znLtuzZ3h4+Bm71c/i/zwgGABNIAg4AgdCASkjbQu1VBFoacBQLLzVlbvUWpOUikhJqWwbGbNc17v66mff+srXrF+/CYGr9oSfz7Wj8MjIiO1YjmsbMvXm/D13ffU7937TANt95eWeJ7TRhnQqtei0Gc90IDqKw4yzSqX6ohe96PoXvrCQzxcKhZGRw6VS6dxzt+fzuWc/+9mDw8NJkqxZswYAms2mEMJ13WwJ3NfXE4YxIls12B+20q57vvjT3zewZcvWf/3GXUeOHLn33m/ffvtv5XL5OE6iMHVsf2b6+PGxibu//o2MKnD11VdnlvTAI48xZjG0jo6MjY2Nrdp4fn9vBYwmAjDEAJRSjDEpkziOBWM95TIpxRjfsnnr29/x9s1bt2ax7M985jMjIyPGkOv6vb29q1YNFgqF733v+2EYb9u2rVKp+H6eMy5TGcfx3PTMnj2Xp0l6wYUX7bjgwka9kS3ti8XywMCqnp7KzMzM448/OT4+uXnztoGB1QScc5sMAmEYRvm8r4xqNYNUJUTMtv1iobJ+3Ya3/dnbBwYG9u7d+7l//NxNN92UJunQ4NDGDRsdx1k9tHp+vj4xMTlfq/de0uv7OSXV9m3bj44c27hhU7Xa97d/+//t2rVr8zmb+/v7T4xPrF695sYbXrJm9dr169YPrz3a27sK0V63Yc3UsbDVbh+eHPnq3Z+fHvnp7KQTRe7AwJDveTt37qhW+yYmjjuOc99995133nk7duywbXtwcDD+Qfy1r335qqsur9WCgcGB1auHpNRxEjuOYwHnnBljwjDKrlEpJecCkSHB1NT08PC6MIymp6YEF+edt6tYKF14wUVjo8f373+kUW+uX7e+WulNknTHuTtrtVoYRP19A2RgaHA1EX3lK1/as+fyLVu2V6tVy6Lx8RaRsWzRbLZ9309l0Gy2LZsQmOf5uXxhz2WXv+Y1r9m4caMQIgiCN735TWkqjxwemZ2Z3fv9+x5+aH8ulyuVSvl8gQGbnp4+55xz+vr6brrppjVrVo+NjQ2tXTs9Pb2sfvxZ/AcGdWuhaEG3jIC01kt6FJwkJtHVg+ZdffSONjEnAs+zhbCmp+eUUrZt5/M5wZnW5LgOARVLpf6BgUKxyIXggltCvP6Nf3jllVfGUvf0FEZGp4qlgm17YDTLnPluDUNmoJM4DaOomM8rpfsH+hiyfL4gpQraQZLEIyMjWaJpdna2p1zOmjymaZqmMaKZmJh1HAcAwzBhjHc9aOiuTUwqpW071Wrvd7/7vd7e3mKxaNtOzs+7bq7VCj0/v2HDOW96023nn38egWk1w5/85Cf3/+j+Eycmd11wQV/fwOTkVJLIDRs25HJuFCYMGefctm0AYowFQTww0C/ATE9PN2pz7XbAOUfk2hjHcZutlpRKCEtKpbWZnpnJFwp//J/fuv/hhz/ykQ+fd/75r3/964Mg5EIYYzjnrhDHjx9fNzx85NDhmenpcrk8OztbLBaLxSLnfOfOnffcc8+XvvTlfKGwYcMmz/W1Js6EUipr3GdbNmir1Wq7Pvd9rx0m7XZIAEmalkolz/cNURhF7aAdJ8lcrdbTUzZEjHPf95XWyFBrzThvB0Fvb2//wEA7aG/bvr3eqM/MzlaqlSRNPM9LklgbKZUsloqFQkFrqRVZljU7G/zT5++99gW7r3zDbX/7kW+6zuEoTDlntfk5MuuGhlYzxmzbnpiYmJub8wv5y/bs2bT5nG/8679+7KOfuPnWW8uVitZNAFBaeb5vA5NJlOV+fd/3PG9ubg4RW61Wta8vOyG5XC4Iw0x4QRs9MTmpjSn3lNkoa7VacRyvWbO6HbTbQbtQKDiuCwB+zn/f+/6fb373vg994IMvuP6Gm2+++ciRyfXrV/f3V6em5pChbdtSRUopz3OZbbWDJgC6nsuFsGyr3Q7SNC2VStXe3oFVq3oqlZe85CU33nBDq92uVquPPPKI6/tDQ0NKKSHE1NTk9u3boiiamZ6uVCora7dxFv/e0S1WZQQMgQEhB4ZE3YbjnWTMMh60NsoYnUn7IiJjDIBpbeIo9T0/l8u1Ws16vd7b26s1WRafa9b70kSRmZubq9fr1d7qs695zn//h/9eb9ajIFq1evVVz7lGqaTZnO+tVNJ2mvU26/rRAABcWIyLJw4d8r/33QcfenDVwMCmTZtWDQ7dc889jz56UBPNzMxkj5TJEycAILtJHnrgp8WiNzCw1vMcxngSpUR6IcC94EFLqcrl8rnbz7v99ve94pUvs21HppqICcs3JMrl8uDQujs+/fkrrhjp769Uq6tXDQ5PTd2dpunq1RsYY48e/KJte719fUoaozUXzGglBNNGAkA+50+cmHJtViqVC74/OzvnejkCZNxqtgMuLGE7BlDYjiYo+PlWO3zwof1Bu71+4zn9A4Pz9Wa1r/+BH/84iqLL9+y58ppr/ulzn9u+bdv4+In16zds3LixNjcnpVRSEtHg4GCpVLr/x/uuee61/X2DSgIZYIylqRLCcmyv2YiA61KxKkSSJkYri4wttfr2d7595OjII/v3D69ft+3c7YTwzW9+4xv/9g3HcR85cOA5z3nO8Pp1F+2++Ic/+pE2Zmp6Whm9dv26RquZKxRe89r/6/HHH//Epz55/fXXe64736g7vlssF4CxZrsFYFzHVwprtVoQNvr6ckePTAST333s8Uc2nJ/L53pbrfqGDWtSqRqz877vv/SlL221Wnfeeeell+/p7a0eePRRLsTa4WGtlDFGCGGMcYSTpqkxkpFxXVdrHcdxZpqFEKVSaWJ8PI7jLCR93nnnbd227ZOf+uSmDRsPHz5cqVQuvPjiVtA+MnLkS1/9iud5TzzxxHXXXdc70N9oNYGzVKmv3/P1RIuNGzcSGcsylUql2QyrVSAiwUWj2eQc8vkiY0bK1GgKwjCREhi2w9DPewZMlCTtMPBy/sZzNn3z377peM7cXG3Tpk27d++Ok5iI6vV6EAT37b2vMV8fHx+vVHrK5eJKdbjO4t87lnjQsKC8TkuDG6dwR/m73vUuANj30KMbN25gjI2NHV89NJQkCQAYbSzLchy3Xm86tti6dUu1WrFti0xSn589Z/Pmal8fAe664II1w+s3b9l86PCREyfGx0dHFdHuS3dPTc1yzlzH6XQPYYiQMZSQISZJ0m63JycnZmZmZ2dmgyDYtGnDBRdcePDJIxPj48Pr1m3cuPHCCy9cs2ZNkqY7d+5ctWqVTNNDTxyyndyOHecKwaMo6fRG6iCT6wREFILHUTK8bs38/Pxzr33uuuH1jPF2O6zX2hdddNH2c8/t6+s7dPjQ2OjY1NSM5+e3bt2az+UGVg3u2LGzWCwS0fr1G9ads4UJITgXgoNRnDHGgIhyvh2GCUMQQjCG9XpNSrXzvPMsx9Fa27YTRpHv584991wirFaraaoOPvbYvn0/9X3/+c//rd6+vkql+uShJ0Dw3bsvGRoaenDfT+fnZm3Xu/HGG/v7+hmyJI537Njpum4Sp81ms90OL7vsinM2bQFgjFuCW0aTZVtCWEEQFIteoVicmZ2SUpVKJaPh2OGxIAgmJycHBgZe/vKbS6XS4OCQEOKhhx6cmp7es+fyZ//as0vlns2bt4yPjT3yyCNhFN9w4427dl1gCZivN7ds2XrF5VccGRk5fvz4JZde6vr+2jXDuVyRc640nbN5W6WaD8LaYP+W7Vt39/SlR489OT1OG9Ztf9ZzNroem5tgV155laL60ODg8aNTL3rR81atWv3www8DYpqmP/nR/eMnTqxds+byK6/s6enJmNHaaGOMIzgZY9tOHMVKac9z4yju7e1NkzRO0u3nnjs8PFyv16vV3r6+vv37909NTa9Zveamm24qlct9ff1CWPv3PzI7O3vRRRc/61nPAoA4TgaHhnJ+7vvf//6Th0ccSzzvt164dm01SdB13UYjchzBuZUmSalU5JzX63OMsVwuJxPdW+nfdM5mwQVjLJWy2Wxt2nTO5s2bL7jwwtHRYw8+8GAYhdMzM1dcfsXhI0fO23WR53n/9m//Nrx27ZMHD+bz+Zf89k3r168zBvAszmIRxBAQOSJHYAwZB80QwKSu64zOzAytXh3Y1ne++4Nbr7m8Y7Iz4/13n/3Sdddda1l8794fXnrppc1mkzqtBNixY2P37f1hzrfAUJwQZ2LPpTsHV/UUSmXORRjFlmUrAsZYGMW+70dJ6nou4yyOtZ/LhUEoOtzMTovgLEn4030/fuLxx6VKpUwLubxS8mUvewkAV8yzHTeOY9/3jTFhGFqWFYZh1iOSiDJFwTRNtdaCCYGnhDgIgL721a+Mjo0ODvZOTc/kfD+Xz4dB67W/87tRkEkjWUHQLpdLSZLYNm+14lzO11pHUVwoFMIw1FohMrJdacjzHCKKo8B1XY6ktZZJksvlbIa12ly5VBQCG41mqVSOk9SyrGaziYiWZVmWlT3nvv+9701NTYVR5Ng2AF173a/39Q2SbydJkrUR8TxXaxW0gqzDvG3b7WarWChwZK1W66677qo3g996wYtXrRoiQiBOhEpqy7KFxRqNRqWaU0qemDy6Yf3Q1MzMZz/z2ZJfQgCltdGaMdy587yLd+8GIMZQSp3Vl1uWtVDvl4VZLcsqldzZ2VZWSM05n56eLhaLQghEBIAkSSzbSyRZTmKwkQRlZkroHkOrYeutUbtUHDhRb47lxfnNhiQx09tbCee176PWNjIWJbFlCcdz5ubmC6WiUkrqDpCh63kew3aj7vt+Vn9EZL785a+0W81WO+jv62u3Wq7nOq534403GmOyCTuOk5n4KIo8zyOiNF0s3DfGpGkqhGCMpQYsy9IKoyhyHC8ruaxW81GkwzAolXPtoJmkrZ6e4r59+358/z6mOee8WCq1W02tTb6QZ8iuuuqqVYODuZw/Ozvb01OOoiRJEmFZ3PaPHTv25je/+W1ve9sFF1ywUBBwhnZNZ/EfFGdKEpIOyuXC9x555MLduyd9/91/9f57/utbsk06IQ4CIwRnPKuU5VmvDMuyAVjQDqanp7O2R9yyiKAdbPTzGwwxmSrG7UQqZELKlAgZEwSSc6veaDqOGwShVpqIMiX6rgklINNsBePjJxhHItNsNInM7FxjcHAwTQ1jzLKsOI4ty7Jtm3Pe09Ojtc5kaNI0BQDLsoQQmOn3daPbCxqB9fn5oB0ceqLJLdGqN4FzMCqOUkBXWDxJUst2gihRSikDtuOkUhsyrucZAgL0/JwhSgwx7JTnAZFRGjiQMZ7nSSk1ERe21DqMFTAexokxQKAd1+ecp2kaxanrepzzdhAdGx1zXFemqTGmUulttUNGyvW8NE60VrZtN5uB5ziCC6M1ApZK5SgMRw4feeihh8bGxi7efXmp1KOUySL52QJJawXIhOBxnCRJkvMLtuUE7bjdjoJGSMYwIbRUAFTp7dulTdawO9O3jcJQKp3P55rNJmOcC6tYLpMxU9MN13UJME5Tz/WK5bLWGrRxHDtJU0IkICG4lFo4tiVsRwjFbE0OARMWhO3EtgqMgZ/zLLfcbLbzbs/U1EylUhGMZTYxTZXtOFJKQNRaZ9kFpZUxRgPjXGhtGOPGUL3eCIJwcmKKEFrNFgAhYE+1Gsex1sbzfEAkQMY5Msa4UMYIzrmwpFLUlYxEzm3XbTVbjpdrtdrFQjmfz0lpHMcJw7jZTBhjiCwMIyWV7/kIGARRs9kGBVqbufl5MmSMrjebWqnLr7yyHYRSa2E5842W53mGQFi2IarVakKIfD6fFU9xzqWUv3gjiLP49wWDYCiTQyYAYIYMgFmQ/WIMOYelPL+OB/3xT//TDTe8GMB897s/vOLyZ83N1YiAM651FrdmXRklICIhAMEopYwxTFic88wXk8owxlBknRbRGKOUAgKbO4iQtctYqNbiDDnrsLaX9s/W6Dz9uB2DJWVWi0lC0FoRGcSslGMh6I5Sr8Cj0Ut6+3U0NtFkpwwWePhLd7+SggIpzOIg3V0QEQIwZDJNc573xOOPfetb39m0acOey6+2nEK3DhS7hw5d/fisSkotvMYVKtWsBEjAAFPAFHQBTB7EDPAWyEEwObAmABNQfUACeBOAuF4syjJdliWc8pV33xTGLK8eewasqKt3t8lgtvvML1kiyY8yK73t8DWJ4dMXtUB0HP/48eN33XXXS17yksyrcBwnDMOzHvRZnIyMBy0oKwwEJihloAVLCwX/e488csmey6Zyzjv+/P+957/+cbbBkiqPU+jZhIics24QmxZIbCAVEQBDmwsgZDqTA+PgCK61lkppnSIg41wImyFTUncEuaEjfw0AuqONkN2qWWENAIBC9fTLfgwBW5SAOuWXaAwZY7LDyJCuxKPBkw3oEvufZTzp5L3iysR4l7NERESGXN+RqUxTuWPHzuHhDZwzYXupzMpwlkqLLrxYMhPiWVu6FcxkZeg+HkgAAqAE4GBcAAOYAoluuEkD8ZUT/ldgcU+7Xp/GFnhyVd7CawQglnVDBKRuMvtpT4YgCIJzztl400039fb21uv1NE1t2z5L4TiLXxxnNtDAiEDr7G43AMAYIkPGMJHGEDLGs1YghsiyLEtYSilkwmYCLADo2HWtjTaUicojAEdkjHc05qlTtJJ1os9uCI7s6d8brOvPnvo+Y9CVjsyUlbTOGg+u4KZ+epNYaqBXVJK7zIc548ISQCi4laYpUGxZtjEmTSQk1uoKAAAgAElEQVR0KtqXnf/SR0UmVv8Mr6wpa0NOgAqIAdiAmWAYB8KuKPnPZ56esbLmZc7Jggg0ADIgAqRuoGxl3yZjGEVxqVRqNBqe5wkhskC/WGmrnrM4i5OxcAFlNxUu9lEizAydoeyPNmRAG0QSVlEbHicpIjquyzlPU1WvB47jsK6fiZS1NCVA5rh2pkBJxhgyWhsEwzBTqc/UnQAy1gl0CdxPDwaWeNAdIBCkSmazz2jdC6uAFavUdsc+OXqRedBLbm9YeACtYOzutosggDSVRsee61pCJHHCuXAdL9VaLfr+Ha73qeOdpJLzjKo3EAB2ogSoADKxXdP1mkXXFP4cc1hhE46fB6fvABf/Jux40yvcges6YRgWi7n5+cRxnCRJOOdZGvbnm+VZnEWGBcF+6hrozv8XgqoMOQoGwAg1kQYwxgCi5bhCKd1sBu12KwiCOE7CIFBKSZkyxvKe39PT09PT4/muItUJMWRxaIZInXZkC4tx7KiILDame1o4/QYgAkDKovDUUabRWmfeNJ6hh+GyeLpqL5jFO34Jne2zuBAQZM8xzjhnvN1uazKWuxDMpZO2WMT/ygU1AjFADWiABBDvCIYZAcCAaQB6+hLpPydWdJ38bCysP36eYTPtcstyCoWCECLzoy3LkvIZ6xJyFv8xcKYlWCZqBFpnGUZCBkSklNRGMuETQKsVnJg4ceLEuEzTaqW6amBgeG0/54RAUmHQkHNzc8eOjSHCOds32bbtuo7rupYQHAGBjNFkTMesIBEQEgMAXLaJ8Zlmiad1WUUEgqw98EKEg7GMKoYxBSs5OYs2FxcqbU5GVtnTebj8cpqaM25zLSUR5Xzfti2llFFdtalFKmHn47A4rcVAxzMnf9b9bjJxSA2ggWwgC1gKaABYN/RMJ8/qmZjKyg5zOed8iTuS+c4dv8TAwrLu6UFKqZSan69nIrqO4yBimqb4y7gkzuI/Mp4iRoaIjDE0RiuVxEnYDhqtVj2M2kz0hjGbn5/nnPf3D/b2VkGbdrs9NRkgEiJyZnHkPT2VSqUaJdFjjz1u27bnObZlIaLRyijFEDhnnQBBps5BAAAaV+B54enND6gT3M5Wl5xzz8tlldOO6yzf8fQpsITucobfdy04/hLsYlaVz5ABouBcShlFkW3bwrYSlS4lep88v1MN9DMHwgUbvbDThezo6a/hGTTQPw+eYjLYfcRmM1/xtMvlchRFWutWq2WMsW07a8b4i0z3LM6iq8WhPKZcbaQrfK1NmiaOw5VOAJjSSmmYnKjNTM3ath0nYnLuOAq3Wh0olyqceRMnklY7jWPJUTDGjFZSxo6FuXzOsbltF9cPXzQ+Pj0+NsuFcj2OTBuTIGrGDIJCJABlyCCS4BwlO913yWLUmJVlsW6KMeuHfepHMwNNjHMAyLiopVJpeO3wgD8g0OGCZzqWiMg5N9pooxkuEx9IgRtgrnEFY7YCo8CmWHBm8AQyVFwrDW2ZAxCW2ysslagwC7AwhsgYEGWK8ss3SDW2lArRCGEhQ6M1QjZnI2WaHaPSUmnFDTIhEBkBZbWMSqmsuqQb4kSAhSQYAZBhKkshIDEkAQBIjIzhyGyLARijEzIKQGcxJ0NEhjHGkHucM6lYmqYoOAAQGkBjUGX8MzJCcB+BojC0bXRsN00jbskkaTMk1+YITKvUGINgENG27YyOyQW3GM8qYwABMWuLA5kKASKzHdsSXMtUGcM5V8oUisV6syWEMIYAOu2jcIHwQyDM4rOcgLoEPsriXCc9LhGEznzirJOLBgDAdHHrk19oBM2wsz6iDqXjFGIHLV5uAGBQG1toAm2AhAAysWAdLx8JkHAhR0G4zGV7Fr8iICLGmJ/LzddqRFQul5MkieMkKxv+BQdnnGwHU2PCWAJ3lNKGtGvbmrRmHDjnAgSeFKxcaHklGDBlECGrUiHGUWtChDCKpqdnwzDpKfemqZydabi27xVKnNmtVhiG7TCMk5QDIBmtteZIQog4SufrkW0xx7FdTwwMrLZtf+z4CCCsWz/k5wRRikwDSIaGQBFpIo2IPrjLBnOzLlOLJZPZ/c04nCrY3/kwYyxbZkZRpJSamZtuthvrhje66CIyBIaACKyzGF+23zMxYgLRQmCCQBuwTMoIbVtrrYlpy3KEk5eKRVIoRczqltgDQ1hkvyzr1TJgjBAAGSASGgPQdU4ZYtZOEDuJAcp6ZpM5iWCQCfWfNnC30n+pq0sIxCxhoaE4jDgn1+aApJQkbbLAv8VdIUSiTBBGjPu+m4tkCtClnXUymgQAWgMC2bblONyYNJWxBbxaKWutglY7TRLX9nzPA2JxHBujjFFEpJUxqLqkGsoqFRERATgCgJFxpICM1si5EDxNE61VksRS8U5Xs47I+QKdGheJ0AgAphPFwKzKChYTdFkYzKwkAwloMneagC2NLcESY96dBwAAaJX1cOwuqLRWCJ3ec12uf+ciI2ZWmqw+i/9lQACjdBIGnmMjokoTo2Ted6FbIveLQKpEKaXAIhCuU2CcVKziJLGtrHUEIsv+WdykKzfKEDmgBjIGCQRjDFnmadbr9dmZWqWnL+eVjhw5GsfUN7DWsgu1eqvZbKepMQa6Dd8YIhiGKlVgFACQMGmc1GoNxpxCwa/2rJqvTUwcn962bUO+WEySNqJEZjgziESktNGQLLO+RMRcLneKdTbGEDJaLiSSNaLNEpNa63a7XavVGo1GuVQ1xniel/Hw6OSOzqegwMc4iwzrV1rMsB5jc2W5nGNKeTJaYENw47E6Y5ybmACQWUtFXZ9iZABAJGSUKZMAmK7kExrSiIBI2FkvQNZbhLpElOygnqJEDQG55rBIE5Edk84sQyRJEggJljaoiVmWxRiTqVTGOOAYNNIQZzFwATruDgLcZDaKMxTaGKWl7zuMUZoqi3PBsF6ba7datbm5ZrPJ0PI8T6e61WrlS4UsTdApyATIFisEsFBrLgRHxDhOGJDgDLklLGtycnpgYCCMIsdxwigCyvzfjAxOjAgAl9aSUFZi2X0oZUsuQlrwoy2N+LRjUJqB6ha+dtxnAOjWK52ywiMAzZd8HbRIC8kSFEiIS8YxuFwjrLP41UC2sFZKua5DRGEYMcYsS5ypi/zKBmfa9a1EM8cvrl5rOW7OsR0EQorOtMmCgWacQ2b6AIAxjgBJHM/Xm+12UC73FArFE+NTY2PH+/sGGBPztWarFcZxSsCNAZmmcZzYtuP7vkzTRqMhOJXLZa1JS+kX3CefeHJgVe+qgWq7ZY+Njtk2bNq01nE44wSoBWeuY3MBxmiPe3gaISHrF7Vg7xYIzqkycrnGdFLKjLmRyTVkrZVc1202m5mapW3bC33zzmhGTcwwNJAaozUDYVkszxgDpfJCcKFNHEY6bNnCKdoOE7Y0HfI1LDH9ZyJadaUFMXuEQIcUiKQ6+rALzma3FxQujJnhjFdBJ2vZ2c/Cm0kSM2T5fB4AMyUTy7Id12OMAaZRFIZx4jhOuacnSaNGq2471sljAgByzhCF0qnWOk0TRCiWijKNT4yPeq6zfft213EAuG07rg1AFMRGCM4YSGmMMVnFkDEEYFxXJImKolQIkeVCLY6c8VQZqdSjBw5u3rzFy3me1z3wTjhnSRnJkkoT6troxTPceacDeyUkeI2LBnop5y57tix6012o5Rg0XTvdsc4L+Qo6ffuz+BVCJ0aapmSMcRyOCHGsGQPH+UWJSamUcZocGZ0IYoWYRQUAjOFnvpsXBPuBMQAGBk32xFdKBUFYr7dtO1epDM7MzD955IQCn3u9czWo15CMC8YmUlpJGacqSY1U8zMzUinHtkHYc9N1Jrjj2ATS4vl6LZbJbKlYzQ8X67OzE/bcxk1rLLSMTsgkIIywBDEI2sGyNs22bej6pIiYmVeRaSUth6y/MhFJKTnnvu+7rluba8Rx7Lpuxup4ajNKqRE2Iy8vbCdExzA2yyBKgNyS40AJfPSgR1KS0uRMRDpeVfENmmy0n5kdyp4NWaSaiIzRiEyA4JwTMWOUlJIxyOIAgKgNLdpxROg+CU4HElpaEBKhIjSAipAMkkYNlsP8QpjomGw35yDHuTZKBYWCbZfsVksrFfQUfGHFSRTazAYAbhgAorEAkBkBxIiBIyzSKo2jXM4RjE3Mzs7Nza1ZPdTfV/F9FztBZgAAy9GOzaEbeclq66RUUqpczqUcmKyZAy4aLaWMTBVQks+JStVnCFJpIFjkEXbN7kluKyw10wBLTGD2zooMtMFT68hPMtC05B0CQIgyUnjXv15woXE5a34Wv8pAAGTIOWhNxpBlsSSRlk2WZf3iwiquD2UOU3ONVEdZiCKT++H8jJdIx0CbrNivewsQUZIkQRhyzkulUpIkTzxxKIri4eGNURTXarGWHiklZRongZSp1pKIKDHHx4/39fXt2rUrTeRPf/pTRWbNmqH5+fqqwYEkiWZmZi1R7enJh2E0PT3T11cqFCxjZCrbSYK2wwHItXKn18gSURAES61etjo2hHq5CC/nPJOKB+iQoDOvUwihlIrj2LbtpRZ/WTi27XsstOxmMz4+707Ptx9tmKnpGatkuY41XIINa1eXBlyposcOPhaHjRdceyWuRB4i27XWOoqiJIk5Z8Zo13MRUessbYdZJjBOZRgnUkrLshbiMz9j8G7ouBsWJ9u2mLCCKAxCZVk5z2NBCw4fGQ+CaNOmtWuGHVeJViOpN5qeZ/L5PJgkO9Od1TohACglFRrHEYbIti0AmJmdHR0d3bx585bNGz3HJgKjwWiamZk7dmw0iptZuElKKYQQQsRxbIwZHBysVCo9PSXbFpTxvg2kSmYsS8sSUqaIlBWhWuKkh/ACi+WUq3rRRp9sErPbSrAVEFzMckIfuPCzdHQCAhCs8wGARY8bu8nMs0yO/4OglA7DNCPhEJlDh0affPLQ+vXrt2/falm/qAcdxUncTmZnZsPUlHoGGBecc/OU1UwdAy3BGJ7Fp5GBAaN1ok2qSvkewbzDx8Ynp9qO36tZz1xzPkoYM1Ycx1EYyqQuZUzUJtJSpsNryr92zbOuumrt0bFkbPLY8eNTjVaAYM3NJZYlOC/V6yZoN2TiqNQJ21DtKToOJDFD1JaljdEyTU+fcCbguRATyN40xmgCtdxjLYuH8C4WdDU9z0vTNI7jrB73qc9m2zq3pe2JWTjw2NwDR6dma42xNtXm55Xt2rZTLJTXrtYH1gMD7+DBbVUxcX035A3dzONTDM45GkNEOk3TIGi1Wi1k4Pt+D5Qcx84WNIyDIZWmaaMZNluh1trzPETMWn8t7Ot0MGIAJusxppkiJGIGBZNGBYkGK2cse3wOjo0Gx46HcZy0TLNtqtUq4/liM44VtnO+rxOJAEAciXGygACJIRhkRKARyHHsMGzOTE/aglV7yrZlyVQlcZL3Pdth5VJhyrEuvPBi23aIzII8Ra1Wm5+fB1D1+SmEtFKpcM61kkTEGGeWQGMEB8SEM2kJDVobaQBAd7xsAQAaMzmuThlIl7OxSJfomOlF6gSA0SvJEnbi16ewQTLTnD0YhFl8J80e9lmc3hjsRKsXJKFoabAFacmszuJXDIiYL2Sum5idnZ2aOs6FrjemJ6dyq1at+gUHt23uesViqegZXiwWwyiVUiZR5HtnvB66cqOUqW10F5tkspRlLpdrh/H09DQyZlnWiRMT2jDGcnEYx3GcyjRL/kiZxHEYReE11/zai29Y6zqQaj48PHxiYubYsWO91QFAcF3hOMKy3JwvHBtardmxsePFoujp8YnAkEGliDSivdSrXVjOZza3w83uTJIMoF4u81MoFLLgRpZVy6L+SinHcbKaAill5tk9xdmUChptePzJ+k8f2H/geNNy/XzP2kIhHxBYwg4j+djjh8YOezkvJ+Okf+1JEdvM71yY5+mDZ+WUxpBSKoqidrttSKdpKgQjytm2RUBaG611EASNerPZjrJxPM/LLN1CvvQpDmEplNKJVIzlimUvCPDw4dFDh2eJBOd8dHQ0DCcuvmjb+nVuo8Hi9iznzFrO+RNcMItJlQApx+FJksRxPDy8tlAoMAQmhOJKKeK8s3DJ/P2O6jTnphtx6u/vn5iYaDabrut6npdlC0BYBJimCRkWBEEnhsN5xphkWV4QBGUaLF3ifPeEwpKgAp7iRxORYKd/23QmQ0lAQIZwIZ6xuBMi4ksjMgQIYCEnIsYyUkqmrQuw6M3TyYOcNdC/0kjTNAxDz/PGx8ejONqxY8fIyMjk5OSaNWtOvobOeP10fk10SsBTGzKGojCMJBRKYSqNb1u5XI5B0t3kVCei2/KKdJRAEmgAo7VGwCgIi/miUdBsRDOzgYEcs/tkmgaJNokJ40ir0EDSaI5pFbl23Arn/vCNr9+9e5ebgxMTyee/9PDe+34QxcLL51PMBamlwYolRGlcKriVck+c1Cen2jvPyynFkVtkdJymts3TJPU83xjTbrd93x8YGMj6ZC9Y2yxSkR25JgADWUotM8SZf12v1/v6+uI4zmIa/f39x48fdxwHAXO5XBiGURTl8/nMCV0wdtk5zYYSQszm2dcOmP0PTh8djYby+jnPPn/LcN+a1Sg5zM3DV3+gDjx+dJavmg6TFlY2Vh3EFdT1xlFo27brOZYtuGC2Y7VajTRNpqcnleqp9lY8z0vTpNls1Gq1ODGO4+bz+VKplCkOK6WSJFl4Vp0Go43ycrYGHYYRcMYt17LcFLUBDjbd//1Hjh5tMJ7XRDZnCZmJmdp3f/CwW9hZLjv1Bq/kqyqcB4I4jR3LyufcJJYqloBMK+YIrpQirThCHAXlYi7n2VoqIMr5ThorAFYu+c36fJe2bMgoIiRjtEqzH8+1Z2ZmwqC1bds2wRlDUtoA66wi857HGIJJATsqrMfHJkulkl+sRnHs+D4ZTbINjBmtbdfNeN9xnBgCRJZKpY3xcznLsgmg0WgaFVXKZS64UsoSltY66wKRPeGMMYwxQ4Yhi5MYiGQaI2K+UIhUyhiXRmljVJyGcThY7bOERWmKnAOxxuys6e2vNxuDlV6lVKPRcB3Hc2zBGZEJwzZw9HOeNjqSiSVshztJ3FlPGGOSNHGdbhTIEgCglNJau477M9dhZ/GLIPu6AUBpBQCCdwoLLIsXi/nx8fFjoyMbN27s7atMTU9MTp04dmxk7dq1YRg6roOAcRL7nn8mRVkpZa1WKxQLzWZz1cAqpVSSJkLYluXZjqOROGc2CoZojAKEzBaFoQqNo9TiyrgTLuh4AydTxDhjlmVxxolAShUnaZzIJJGNRjOVqh20wyiq9lbjJA7C9itvfcXmLRuH1+H0dPyJT9xz1113z0zPETBhOVGcpFJpQ8g4FxYg05qQ8VSqdjswhqRUcRybrgDYAk82u4Idx6lWq/l8PhNBjzOB+iSJoihJkqwlxxLhOjLGDAwMTE1NGWOGhoZOnDgxMTExPDyccTkW6HcL+cYz+dFPHoIHHp6abzQHhwZ+/devuujC3nM26EJOgjaDfcmq/jCN6nNzJ/5/9t483q7qOhNca+29z3TnN2p6ktCIAEkgsMBgDAQ8YDzF+SU2hkoqg9OJ41Snk+60y52udn6ddFd3RpKqlONUHKcSO7ErtgN2iI2xTYGB2GCQQYCQAM1P0nt60x3POXtY/ce+9+ohPQk9xnTqfb/HRe++c/fdZ9hrr732Wt/HnAG5NM3PTLDrMTQtABLkEyEAOIrCYrEQRZEQwrFrNptzc3ONRr1erzebDa01CYqiqFAo9OO5vkrtLD1nBsfAWZ7nuY7jpFqtIYpWqx0GEXNw331PHDhwIs3STtoGNCSMMVmapY7dnXf945Ejc2OrVrfa7U6aF4ularUGgJ00tdb2vUnnnI9u1+v1MAjCMJo/7/c7hQBZlnuOLOiXACSJMWbPnj3Hjh3rdDpEFIahlMpHovuY7723ZmZ0q3Xbbbc988wzjWYjCqMst9aBA2g26jIImMEaY4y+4447PvGJT0xPT//Wb/3Wpz71pxMTk9baPMur5fLQ4OCx48fyPPfNj4+PF4tFr8zio2EAiID1Rr3RaIZBUEiSJEnSNEUGIgpVGKnoR3/0xx586KF2p8PMLIROU9PuvPNtb3vymadrldpMfU4I8eTu3bfe+qFHH3nEP1yFUilJkpNTJ2dnZ0MVEhEzBGFIRNZZRAyDyKeuK6U8WbqUMgoj7lUkLfj8LOGVw/YSwKSQUkhr7dzc3LFjx05Ondzz7J7nX3jeB0ULSWHb1m3FYunxXY8/8eQTaZbmWa61KSQF05PiPhNCiKGhIQRcNrqMmZEoiQtBEC548DnQ2yRkttxNVEJmgSiRBAqjod3W9UZmQKlSaCHS4DAO8zSFMJybnTtwePeK5YMfeP9NN9545cqVwf7Djc/+1X33P/xgx9S0E6ajkkolBxQQSYwAJFjCXHALOibIsuZMMx1aNsgstGMRkgYrmbMs80M6z/PZ2dlKpZIkiXeTvXPhVY78OOZeqlzf8gJAs9ksFArMPDMzMzo6Wi6XJyYmms1msVCZ72ifGwdnYe9MvUInL7544zVXqdEBV2wdSFutteGyHzy268APjtewng9tmmtnc5ygWO7cBeevoCEEGWOstgBKKVUoJMZkAK7Zqtcbc9pk7XYhyzrNZlNKWSiWC8VisVgMw9CfPgDMqyR8EZBQFiBtZRYUosg6LjXMshhF2OnwIz94es++/c22DsJ484Wr3nLtutHR8L77jjy9+7nD4wcLEd151zdv+7GbBwcqHRM0W9KlbQBCCdZpGWAYqixz7CwCI7vpqclapViIE2bniQyRmfw6DQGBvcA5ADKjcyAEJUlxcNBJFQoiX8gOKNhZY6wBQkRrCZnQMTgA6wChWK2Bc8cPH504euzyK6+dq7eiUlGQVUCQJM16PYoTqy2RUCRCGZjczk7XR4ZXVIplthAIiQztdrpyxZi/78aYVatWt1qtQqFQKJSsdd5/ybKsWCgHKp+bnk3iEKUQRLm1SMQC6+3muk3rTkxO+MveODldGR42s43mzNxMvTXX7gyVyoaBLZaLtaHygMsMomNiVPQf/uN/NGw/+rGPhUlYlCUBEoTotLvUd4VCwVnH7IQQWZYppTwLAoLohnOW8BoAgZyDfklEs9l+7rkXDhw44CNv1Wp1y4UXj61ak+cmy/TyZSvyTB8+dPTY+Iljx44Vi8W3v/3thUJhwRvknGs0WsViMQgiY5xPTEiSRKmXa6C7if29EY+IUggkYZhbrfbs7BwGouwASTrWWe6a7SzvdJqttFypXXf9W9/2jquGBoKDB+uf/rPPf/2bj4dhTCp0uU4zPnZiKgwK1jnrbBKFHAdKomXKcj09M9dstYWUgAFmRAK0zgU4rQ0zezKwmZkZZpZSKqWSJEFEXxnYXZMCGmuh5wh748vMaZoeOXJkdmamUCxKIaxzw8PDa9asmZ1p+GO66WvnRGNWg3bO5GvHhqJQGaOnpk4qKV448MxTTz3ZnMWh6kBQK5XboqKS0VrQT15+yZYBQAhiJmudc85aIwSVyqUoClUgJiYmsiwjwjzPAKBcLtcGh4KwqJTyyYUA0C9XWcBGIwCxdVrKSKmonbWzNCvV4lZHP/xPT+w/fFTnplwuEomLttQq5VBruHzHqoP7X8jzUtqaEyS++tV73nrtW7ZsGp6dbWedvFQqhJFqNnPLFrC7SPELu/pcfXRkMAgC5ywSggN2jtn1onPdWC4RAaM1jpACFQwODo2MjBpjjo2PZ3lujQVmIgEWnQN2zAj84nLovF5PO+mmTZt/+MPdKpCF6vCq5TXH3Gl3jowf07muVWpjY6udY2cdEVUqVXagtY4i98zT+1vtTpJgrVZduXLl0aNHsizfsGG9EPLZZ/euXLnSGI1IeZ6XSsUXXtjfaNQlUakQj4yOAPL07Gw7z2Zb9dVja5579oUf/cAHkjhpNJsnpqcPHTteMlwslkqlcqlQaLY71UIBESYnJufqjaf37ImScHhkqN6YOXjgkErCQwcPbtq8+cTxiayTO+fyPBsaGlZK7t+/f2ZmdnBwcMuWLUEQZFkeRcKH8l56BC/h5cKzCHh9MmbIsnx2dg4AP/CBHyuXS1obIYiZhRDlcqVUKm/YsMFaNz09zfyYc5YZhJALDnZmrtcbTz75ZBhGzHzJJReXSuVuOhktLhWkTzcKzoc4mAlAEkkphQqI4yyzU1MtS9KpuXYuJqc7U1NTxrnW3NFA8Qc/cNM1N1zOFGqGr3z1wX+854HjE6pUSSYmJsNiNakMHJ2YSYptJVUUBIU4rpQK1UpcKarpk7PNequVOgNCCGEIU5t3sk6JlK/q9nWMfm8wDMNyuRyGoc//y/PcO9FAwjgv4y295fWx6RdeeOFP//RPn9q1i5RKW63lY2P/46/8SqVSQZQ+vtw/sh/IP/PStMfH1fRJgpMrSoZt5pzUoCuV0oXJ8NaLN/9rNdJK7aSjsCC4iLKt3Uz7/D1oBiZCAGGtzXMjhAhDFcchg202G2na9uwYcRyVK8VKpQwY+rOGXhLh2aYB52w9q0NEVqCxLkgGYimmZ9JdT+zfu3ei0eo4cAMDpRvfdsXGDSMkwDIkZfjJ29/6uc/fe7wVHD08DiMrv/Xtx5GvXLmiWhtK8jzvuDaElJk2axAcAThEgQxWa4GA4Jw1BASO2aF1RjqBLJ01ikJiCRaIhZ9bhBCE6AyDQafBpNblLJUkwtSCdWAdEIBz0NfwsUY3G62B2sBffvYvv/XQD7LcXvMjb/u//s//rTNx4s477/z833wxy+0NN974a7/6q0qEBAoY261Op53qzD70wx/87u/+fr0+R1Lv2HHZxz/+67//+3+0ZcuWVavG9u59/vbbb7/jjju2b9/+ne985/nnn/vxH//xz33ub++55x6yZvXo8K23f/jGd77jz//8Lx76/j+BFP/mV3+lOlI7euxYrs1X7/zqX/2nP0x8/NoAACAASURBVMsdX7n5IqttmrncYqFQyLRVMi4kpS/+zX998KHvlsvJB2/9IAh44ondE7MnJ2em/qdf+9VP3/GfB8qDJ0+ePHDgwNVXXz04OPj1r399enr6+uuv/+3f/u1yuYgojWF/k89zvl/Cy4ZzgEiInCSl4eFlzHTixGQYRkoFjUYzy7IkiZUK8jyPoqDTyY4fn4zjYrFYZKY01XEcncnR0W63v/Slr/zhH94xMzNzyy23/Pqv//rWrVuJkBefczlvij5VunYqTMuOrbH1emO60ZisU7ONU3Op0ZaRhOtk0u159rmTJzdsWhdOT+PKlSuq1aEjh2c6HSNY6bZpS+OcaDQb7Bw6loRRoJKI4gitnq1VA5JCGwfE1rm83c7zFB0543wXfEDDm+lSqeRXCp1Op9PpeLYjFJLRSyCyEKJvHzdv3vyzP/uzf/VXf/XIgw9u2LLl9ttvv+aaa+I4aTba/rB+iOMcT7+yGGoSKFwHpIjynGUwmOpQaD453QqSPIxVoK2b0y5zLsudg1MXsM8WcjYwY7c+EJ0Dx87HLtrttucP8p4qoEzTNE1TFUh/dv1KwrO1z8BAEEdxmttGo1MqhkjiueeOPfnEMzNzzSgJBgaKN964detFI0/tPdxs+13SbPuWtbd/+Ka/+LN7nFtx5MCxSqX83e8+8u53v60ywrOzKYpmuZyQDFzqy6wBARBBKeVTYhCsYYcMlshZ66z1mrBEop8L2N3XtRYAtDa9rVlCRHZgrTZGsBTOeVUWv6hDQM7qjYEVK6dOTqWd9J57vvH3d33tjv/0mZmZ1v5n9nzhC1/8yEd+rlAsPfPMs9/+9rdbrTYz55muVQdGh5e12/aP//hPbrnl5ltv/YlGc+ZDt956330P3HLLu3/nd/7fd77jnRMTE2vXXvDggw+uX7du1+O7NmzceO+93961a9enPvWpTWvX/Nkf3/HYY49d8earxo8eGx1Z9uuf+Ldja1ff8Yd3RGHUabc/9alPffQnf+Yn/tW/euy+B/7L332RmSOFOjcmt8bovXv3XXfVm7/4hS989jN/vm/vvo/9yi8fmTg23Zr7uY98ZGB4sNlsnTg6+X/8u3+3bv36m2668f3v/9F77vnG00898653veuXfumXKpXNQaB6DFZsHUu5ZKBfGzBgT30JEZMkXrt2rRBi1+M/bLXal1xycRLHQRCEYZB2UiEEM+7ff+DgwUNjq1ZdsO6CaqXsTfuZDZdKxZ/5mZ9WMvjWt7/1sV/6pfXr1wGwOE0O9vxwykB3y2mxW1xHRAiIjqMwClSU5a3WdD3PJVglwhJRGIeFtD3zT9/bXakMJOFlK1esuOKK7T/90z/1F3+9a9++F8rLLtGG22klTKoGcrYOrQVnc2N1K2u0tKD26IpaoVK1AMiOETKdA6I3Q10KNCGKxWK1WvUx6Hq9Pj093W63obs8ccy+ao36gYu+2NW1116b53meprfedtsNN9zgnJucnIyjwvxNwnPvwKwvjj5nW828cPzpjDbW5uo8UrtoYqq5ZqTYmU1lg8jhQNoKAwztbCO1eVg7rUE+J9eHc47ZCkFSCudcmqbtdntqairPNSIyMCBba+bm5gCjYgl9cU1/I/RszSKhiEXHpJYTGYS5FtpAqVgeHlrebB4fGR5857u2bdww0Enhrq/e3e5kQRBMTEwMfexja1YO/NRPvv0739l3+PnpUnF4bNWYM1BvIoiAlMxsLoRRYcQaEICQATiOwzzPsixTinyyhiWyXZUzP82Atc5Pn0Q+IZ0RUUolJAkpAdBrpmttnUNGwQ6ZiBmByZPBJZUaOADGn/vZjzDTNVe/+U/+7PN7n903c2Ly+PGTd37lLgYYW712586riQ4ODAyxpYnjJ4uFWp6ZubnG1q0XR2FSrRa2bd3eaadbr9s2O1NP0/zLX/r7m9/5rnvvvfdHbrip1epc/eZr7r///lq1NrZqjFBs3rzlsV2PjR86kiTxlg0XF8sldgAOpFQHDxxatmz5TW9/B2T5ZW++phDFaW6MY6u5UgyVFBduvvh973v/8Oiy1WNrnnjqiXar4xwXC6W4WIjiwvJlKy+96dJLLtlqjBkaHLl0+2WEYv36je12arRz1rvMbI0jJQgXxfG0hEXAExQJRGvBMSNiuVRau+aCtJMdPHB4dGR5kiRZlunIelt0cnLi+LGJWnVg3br11WoZEfLcKkULZtoUktIHP/ihnTt3XnHF5dY6o52UhIvfUOiVeguwziCR35th5kBJZlACisVkYHjoRFvVTQlKA4GqockEAVFEcYIc/LddhzrSffjDlQtHS+99/w6BY5/97F8fq+eMKg1IxMgiQRbEBQGSrEDuEHTAnUhqlbAoQKaIuSAjHCkplVQI6HMzkiQZHBysVqtCiNnZ2Uaj0W63rbVKqS7VDiMDIaIkoYSUJDxRp2VoNZqXbb90+NeGxlaNZZ00CINKuWS0Q2AlhJSCwJuUbkVC77r5KgJmZ0eWxYWKPXGwvvvpPZftLEoVylCgpONTUB2NZM5P7Zk5cfS5NWtWXrB2iIPmi+/9S3BxeN4T55gIlVJ5nrea7ZnZmTw3CFQslKM40jpvtVt57uZm68xycGBQCWGt1dYgIqFYkLUSGclEWbMjA0ziKM1zZt60Ka4Nbn74+7B85cDqCwZyhlYHqgOrhoNwoFSulcadDhoNGKrAm6/c8I2v/eNNN267aHM5z9smh2IEQsSdTguFQCmREFFY54QUUVzIMpPnVgphXDd0bK1lZCTWNvdFggDMQP3sZIau2rq1VpvcWKOUJIFgDVhHaNkxSYGEQMI5x5kWxWI7z6ZmZy4shePjpjk3GQeiFceXXX7Zv/3Eb2y5+BJgTnP92K5d9XozTlR1oEjCOZeWS9Hhw0cv33GJc8HU1OTataujKFy9etVX77ozTTtvf/vbnn12z4MPPmCMLpUKSRK32+1Dhw6tX7t6YmaGgrA2OEQo8k5eULFOM5ubYlQQQp6cnDo6NTW4fPneXU8mhdKyarnTqP/w+99785VXpWnabM5mJpehYiUyo41zhMLmGWggB7Mz03meAdtarax1VioVAJzR+cjwkLPGWvY8h85Z5lNlWUt41THfw/EjkQgKSTQwUH3qqd1ZlhYLSRgoBFZKSiGYXZ6nK1csLxQiYHDsgmDhgLKnNhscrA0OXu73IaXscoQxAwEhMDISknPWWScUAhAgAqCDeXJ6p/igFWqXBWGg2VlEA1yMwyxz1uRhJIpDNTuNTTPKxTVODpXccZtNNuUQFasGXavVeHhyZuofx/+Xt43IoPr2q4YSd8MXvrP/hcMnooFBCjCjmE0B9CqyCbQLYOdC2QqUCIeLLsogmuV8Dlw9dBTY0LEjQd7PjaIoiiJmbjabExMTnge970ISkSJpLTvriEEioWO2Tnj2ZMeRCtavuaAbENBWIiGxAFaBklISOPKUC2y7bBHd+wbADNYtG3PrL0peGM/3vbD37q8nV1yxiWRQLCb1FuicX3j+5D3feXzvnkPr17dvfue1Wy8MQ904M7vuHCEUv+QxxhpjW63WzEx9bq7peUIGB0cHBgaazebx48fb7XbaTtlOBYLAGSLyEWjvw545ASCTbBQqmDit2XYCyp1ga+2yFcmWrVJGmiJgAFIwU7cAriwKs8dtNeIQQRFUClwsHLn6zQNTx49JQEUCLVEeFCFBLU2mZYhEmOU5gSyVB+dmp7MM4iRgtkqRCAKbpSCQ0Tbac4z+4UMAZz05KnppHkdEad7RNkfBjM6yEaDZMiIaYzCQQAQqcsaYAPPcloeGnJTW6ECaasJJxKvXb5Rx4U8+/emdO3eGYbhx0yYDxqE2kOWmKYOBkWXFq67e+k/fu3d27qiSgZR40ZbNlUrxR9//3k984hO/+Zu/OTxU27xp/X333ffe9763Vi2vHltRKRe/etffDw4O7t279/LLL68Oj+aZUagCkKGKIlaUcbUyePnlO3/n937vne9853PPPTftctWamd7f/sN///+s+YM/MKZTrsVOudSkhpwV2Mnygdrwww89dO9X73n7O94RSVVIQgDO0rRYiHWetprNQiEOQ3nixPjWbRf78JcUmGeZT8g7f6OzhJcBXwjl/83sjM6jUJWKMYA1JvfxVWcpjpSzmtn4SiSrz5rqigjeIvca770PwBaQBVrrtBNSOaORgVAgCQDpmGyXrbzXt09+8pMA8IOnntmwbr0gceTwkbEVq3SmJaC1zhjQoA5N1A9Nt7G6HDHQIoxLHMRgKhU1UHW1gosDoLmWbof5hBGF5csLQ2NDeXmk7uSUqkFR6SphUgRZRiFJRlFik1gn0cyGdeUdW5fXSuQ6TZOm0qiAAkZAwv4qHhGzLGu321mWQS97wbM6eDMFgEIIX5DmQxz9whOf3zr/IvYjIeeTxQGJkFFoTHbixKFDBw6fnGhMT7hDByYPH5zd/cTkww89/vTu3YidDRtWrN8wXKuIgDWeP5wFAB8Qn52dnZiYaLVantRpZGSkUql41VEf5M3z3BNbA0AURUEQYC8WtFDTJEACApBjBCaHBICMQk5NzzDL4aHRUKHV8L2HnzgxPjF17MT4kSM3v/NS5yJ2plyS9977nWvfcm2ethERgRCJWCISggBkw8ZvXjtnpRSddiuKoziOgiBQUiKAMToIgixLH3nkkW3bdnQJquf/ADCzNnp8fDzL8xUrVlhrHTMRAaK1zmhz+PDhlatWxUlMKAA4z/Is1zt37qxWqwwslbpoy4Vr1q5Zt27d47t2HT1ydHpmZvXq1SMjI5VqdeOmTc1Gc9u2ratXr/ZlYM8999yBgwd/4zf+9+UrVrTa7bGxVdPTsx/60IdqAwM+4PX+972PhBgdXVatVXc/9dTc7Nz27duuu/76KIq0ztevX79qbHUcJ9aaYrG0bfu2jRs3PProD44fO37pZdvXr9+wc+fOKIrCKLr44ouCMCyVKxdu3pQkibG2VC5v27Y1iuKJycksS9evXx+E4YYNG9esXSuESNPsggvWjo6MxoXCiRMnrrrqyuHhYesckQBC55zXPV6sxVnCy4Z1bvLk1NTU1PJlyxvN5qHDhw4fOdJJMyIipInJyYHawNDwMBFZ5/Dse/XnwPETJ7XhMEqQhCCMwhDJhWFw8Pjx0eXLmkr+t/sf+qkbr/EH90Icp7YXEUkgEQAjgZJYqSRjq4aGDs86ItaYK4HFCMGKqAhxFJTiSJSLubZ5Z9fxJ+dCSAYuWbduMNlUU8dHMQpViByELpUwV6AOhVkY21R1dCWUy0dLtWIoXT3PdAgyUAVFQRs6jF3WY2budDo+/blvcPvPKzM7B8SolAqCwJvsfk3EaZtpHp7++LQUiLNdYqHsuo2CeWOejz/+/WPP7n724LNto62U0jpj+FixFF986eAVb1q1ao0LI8b2Im4VM7BzfqrIsszzoFYqlYGBgaGhIUT0OcIDAwP+LKanp1vNlufi8Nunvu7jzJbR81Eg9C+BLzqXSMUosazQsHQoHSRCmVZ7JtP1udlWyxWLnGeuDlYJ6Z24HiX1vFekLlcdojE2jmOp1MTkZKVcjKOw1Wo7a5VEKVTbtlqtzoJKCEQEQuTGaGMZgITQxjJ7oiQERKGUUAr8xAJAQkZJ8sv/5per1Yq1rlSu3Hb77aVSwVqz4/LLt23fjog+KdMYI6XM8/zWD9/aDYUFwb/+6Z+u1WpauyzLpJKmaSrV2u/9/u/57dHLr7ji0ssu81sa1trrrr/+rdddZ4wNw8A/dR+69dZWq01EDPzBW2+11kql1qy94Hd+93eDIPD1vnEcWes+fNttPj1r3fr1Pg3/TTt3XrbjcilFpVq7bMcO7xasW79eSiml0Nr+5E/9VKEQM0OaZv/rxz9eLBaMsWmaJYkAACGlkHKpVOX1RK719MyMdXzw8OHp6Wlvc8aPHZs8ebJSqczVG/Vms9VuF4tFpG7UYhFgAAYiUoqCICAhwWprzyXz1zPQ3QEN/j8gRACpSEpprVy9amBsRWXyyEyhUorLMUYkwhDDYk7KxEFUxDItc3mKsyde6DS/s3ffYYBD7WhCWjcUR5UEFWKTKYljLSsdJRsGXH31ysLmdaOlCPN6w7Q7CgWy0LmTiYRTlCDcp2z2hrWfHtdlc3YohFRKdUVhe/TK85OTcB6tqGdcOjNHbeFIsesUkuiiC5dLunr5wOTBA0cmj/HMTFOQGByoLF+1ed36sQu3VtZeMBoXGXW2qLlUCql17hlTkyQpFotBEAwPD3vf2fM1exNTLpd9y61WK0mSeTz3pxhT5wPBy8UweoFI9NpNrNO802hOz7TmpmcFIWDi2p2BJA6rVQnu0UeeGRiI2KWtlg7DsNFoEJLnzkIgJAT2LbEUkogynQshmG2cJFNTJ9tpOqQGpTWaWUipjeukuZDBA/d/98xz96fjmCcnJwZqA2mas2OlFCA6pxFBSqlUiEj9TDutXRIXnANgQMRyqWSM1caEYSSE8nuMWaZ74gBsTFc3KwyDKEoQSUrR6aR5bgdqtU4nRQQhRDeZBITOrVKSCX3RShQpZy0wAaDOrTVOxcoY66xL4tg61tqWyyVEnJ1pBIFiB85BuVRyjhGoWCxY43JtvC8AzIEKGKCXxk79rf8kidn5L0UhQmsYGMMg6NJ/MzLDK2e5XML5w1p2lrNMNxqt4aGRVatWFgpJq9Xef+DA3GwdUbADYywwCBKIsBAd/VmBDNa4LNfGIBEppSxba7Q4u1ZqL4uDewrWSOgjBARCkhTCGFw+Wt64bmTv5PNUtHIAZ5XAchQnsSRKJWIELGJyweCqLZMTx5/P6jPjR2bE8npRQrXAlYCDkqvnUTEsOhFNG+RWweYb14+sG6sqbnQ6zQCoGCbkCjrnHNsMzk9c/oFGxPn0QNB70P3TLoUKw7BbWDg/U3BemnPfInfFk+ZfsrPTNyuRWVsPJG69aM3qkVXjR1dMjM91OnOIYaVSHVpWHRgYLNTaKjBsW+CIqHD+t0oSGqN9VL1SqSCilLJcLnvrDACFQsE5l2WZT2VBxCzLPFOS9+x8JeFCU0tXoBoR/e30/GlKymWDwxKU1s4aiGPcuf3CKIycCFrtOZJgLZic2bm3vvVaBCTyFEUE4E0zAgNbIEIGZoAwinSeDg4O5jo/eOiQkGJooFIsFZEhz02gom3bLoUzRH1hXlXRstFllUoFgRw7rW0YKkHCaOtzGIx23j8RggIlm81OuSw9j2yeWyEIUXQ6qVKB5/sPghARtda+Xkspaa0DwCiKO51MyaBWrRpj0zRnBnZcrzfDMEo76SmFHcfOsqDuNkTvcYNisdBudwAwCEJmlIIwDJ0F51ySJMZoAEAAYzzBN1jTTZIE5Dw3UgrfjvSPtLUAkKWaGQQRABARc7culBkBKEtzRFJKns6duoTXGGEQbNiwoVgsVyrloaGBUqmECJVKtVgsdTqdTidNkkK5VAbAdjv1pmlRnhkRkDdNrksrfu6P9zxo15fkIfYuGDMAC+EiBYMDwZZNyw7O1A/W6wRTJinkoZMxU4QmApRQEFIJWYgHMQltayZHQhXWChFR7CQMiVhbHFCqmBs+Oalo9sI15a1rB2oqd+1ZztMoLiaFEnNJWQoEWTY+0GytzfOciIIg8GbLmyQf/QAAZpQi8AwV/T/5nBgAsL0iQyGEL07pG7XT9vEW9KADrrTbOjcuKeDyETk0MGq3FJVckWsgkoixc844ggylLEqfl3jeQOzlRTJ7s9vvvLU2CIIoijzxiOcnKRaLhULBfwR7sXVYKD7D3OXeBL8GAwHIDEhAQ9XB4eqIkAqZBAmjpZTYZpChr6nmPGsxw0A1ajTqwF4fQAAjIQEjMgggRmfZCiWAUEgZRsGIs88/t296aiZQkoQMlTTWlCuVnTvfJGiB2lZEtM5a4xDBWBuEkc61MdYxWseOoZuTB2i6e4ZOBRRGChHS1AghtHFKCRLSWmctG8sMQkrPUgJIKAUhUdpOpZFRHJARKpCtdqq1ieMQkbRmvx9BQkglrOEs016W1zF7ZpU4DvNevjYzRZHyV1QbB4ACEZGdgziOAH3tvr9S6BwLQWFIjp3fKfHko8xAgkKfQISOPfu/AxJgNfhMW6JT8bne5Tr/x2oJrxRCiMGhoeGRYV9XYp2TkpyDQrFULpesdcwoBDIw9jzG879B1lq2LKUMkajrgHoCuLP64adi0NRjr2VAQGL0Ilw6CqMC8Nqx5E165dFv785bOLxuSysO20QyAiwCCIgVJjGkbVceHVBQbrdzpEIQk3TQ6oBEYXQwGJCcy5qd4wWob12/ZuOqQmBbjeac6bTzIJhzjXamiUJSLWtzH47wlSlSSs/j3Des3iMmoiCIoigKw9D1hLp9GKTPU+GTPaSUYRj6wlkfH5h/Cc6WCYcmCDlmqcmyxRTZkkiNc1KRtR22RskgEEVgdBYRDUB6vjcKwFjr+9NNR1HKV+X4KDkA+E1RH5PxHfbBDV+Z6j+44NyL6DmNekX7gD4sANYJEETC5c5qMAxSCGRUIczMNMMgCEOFzITYbDQJRU+RFmFeKq5UMne5YxeGQZp2lJSeU3T9+g3A/PwLB5yzxTjqdDphJJmdswt70L68xWtB+KJQfy55nvuozqHDR+Kk4OlhAYDZIGIYRlNTM5VKxTlrTO6XfEEQeikDa02e50EQGqMB/MpJWmujKMjz3PPpAqBzOkmS2dlGqZQAkDF5EARZpgGQ2UkptTZBoJgdIjCjMcY5I0SglDBGW+vCMALATqflaZ7a7ZZSUkplrWO2RJ7hAaUUno5H6xyA4jjudNqIEARBp9MJw1BrE8dxq9UulYrtdgeRmDkIhC/O8qtGYwwtJIu8hNcO1lpjciFkkhQ6nY7WWRBEUkr/UOW59nO21rlSqhuIOz8YrUOlJqbq5dqI9+cIMVDKuoWJ3eEU3ag1CGAMSqmsZSGVswYFapOikYlSo5Havmn0xMn6I8/s1xMvjK7bHNVUal0ns0lJFiO0FkIVhCgFiEiJhIRESCQYxSp3teGgvn/24J4frsiaOzetunRFrcpGmVzEcUEOG1FwIIM4BpQhOOAAAKhHZde3sDAvv9hDCNW3xb1CnVP+tU+EmJ/10RvtL4oMnG2JIYBJ+GGbs20RgRBZ171hx0zsDDoJQOgCQD5DSfFcwBcz3vWdfeh59P0kln735jNvnM3r92D0wtbzTpEJffSKARFJADgmsGCcEyAAkQ1bFogMbI1RUp0enegq/jESEJPzzh6CZUaS5XLFGF3VtVxrJQSJAJDZMS2UKIqIjp2zTgYBkjSe8RUQAIIwFkIKFW7YeGFcKCIAg0BEz94HKAvFipAhAQNKJAcAUilAEkICikgEUgok6VcRYRgaY5FQKmJHUilBlKYpUBAXgETg20SSQaiIBLMDRCGdlIqBrbEkfC2kFVIQkQBFgqVSABg4FFJKJYMQiAQJ4TWMkJC8RDMRAQOABIWIJJQMABiQpAyIhJJokYIgRMBABd2gHBIROAkBCYmIQp6qel3C6wMSjKSIPHMMAiqppI/4AYJU0g9TCZLOwsVxNgiSSuDI6GiUVLrfNW/F1Ntae9FHugZaSamUNAaEkNYxA+ZaC3AhMrOWKGIFq0bjG9+6sTZSvvux548+u3vTtku2rCtZSbMNyDscByhYUM6CIBFSia76RRDioOQjzx87+dRzw6BvuGLDtdvHxopSGC1s6LDKyKmILMochQOMraXzj7qdRae5b8d6lrBLke65LM7zmjpHPXZ1BAGADsj2LjSAQGCArhg3MhIshgZF9Abd/OHXj2CcdvCCpDlnG7cMAEg9A+1OKTD19PEIEYiQujkTxFBMIgDT7xYKP0Ge2p8gEL5dhyx6p6mCAKHPC+pUEAyPjAIAvhppB7Xa4EsdwoBn9TsWOlws0cIt4Y0FsSWwFgKHyoFgIEKBwH7Dw8ejmWG+UlLPQBNSb3dNKIkA6EJ0Gp0FZ3XayLKMCpWxWlK8bE2pVLr/+08+9/U77bpll7/5yk2D5VYG1kFmCRwgoxAgAKQEISCba+z79mPNidmLBsrXveXSHRurBQJsZ0QgKTACHDIKiUTQ3VA/x5bmGWCEhRzXXsE3+5CuMV2eOW+gzxfiGKMGp4AJrKeEr/QGOQNkgAw4A+CANHDgTOX822ZejHFZJNwpy8V9G+ptNIADrzMN4LMUrAVnuxVM/jMIp0XEsPsOg0OYJ6HGCDxPKZXnq4/0L9NrhtPUTl7y8KXttiW8wSCwgo1Fct3xxsQWgUmiEKiUUoqUgvkiAL0QhzFGa2OFY0aBAskJSQiBZCEFGpMbNqknbRZv2jK0evmOJ3Yv3717392f/0qxFG+4+JKNmzYNVqRSoBTkGUxOZM/vf/7Q/hc603Mbw6Frt2y+dMvylcMlbLt23ikodMQdlxsCS5AKawlzQQ6RcrcIAw20YJ6AIF83CfOJ/GGhLI5zQVqgDKwEADARgAAXzftmAWBBpgAMImMnnF1E42Khbr8q4DPWFX3fuf92d0Hhy9p9nft5rirmyV3jPOsPPM9J730FvOYGejEpTrxErLyENxjEJAAJlEPlQDIIYkJgxr56FvoE0P5HugaawBJaZrTW5JoJQOeO2Aqw0jhgE6JSbLQ2xtq83RxL4g1v2vjmlbWDh8anpmcOPPv0XXd/bS5nY7Q2WslgWbm0csXyncurI2su3rh81aoVlSSiZqPZ1nkhjlwUWMPGCdf1bAw6VpACOHDhIjj5zuIWZXk+v1YFemHr86cDBQBmxewAFIAAUGe46hKAuu9zCLAY0w8vJWf2CuDNJcwz0z5bANBHPRhOiZkigM/a8R/hXhydTrV0upd6SjWNu4bep4xA35PGU7+CO90Zf5VPdDFYiuQu4Q0G4sI+i0/rNMZkmc4pmL/Q7xpoYzQCKCUDpaREAhRxLCGg1BqjwWmQQkhgxFCIuFySQoDl0UqxvPECiFpiSgAAIABJREFU59buZMj1NbPaR0lYEJZIhkFYlEEUqHIgrWGTmUqpoGSitW20WoRSqYgIHIAgQLSCgAGEoLNFlhfCwh50f5/wjAu0mGI/JEQBKAAEIAGIF9kEX/3Te2VeXNHnYpJzFo3uY/CiLyBGxlPW9tQEge5UEWlvasTuR86QjUUEpFNtYPdEsGunXTfpCOcd/5qBF2dzX9SvJSzhDYDfq++X5vrxhABCKSnR5zKcNmR6BjrPEVgIdMxp6pAdsZWBiMLYEoEGi2StQZcrCgLUkGfkXC2JRBJ3OmmbkyiuzWpwDI4BAcoMSkAJLUiqo2tnDeNShYocMihZLjBLbZAYkEFYLZHJ5QDWcriYfAiGhQxxv+AQeokf/nVRG+Lkhtgi+OzmIAfIgZr99DVwRQAEWwUA0AwIvBipBAG4YM9fJXh3FuebX4fA6NhTyiEBMKNjgNAAeWVXQHfKg+4a615AwzvCTN3qa4Ceq05AwIBAAF3b3U3s88csKky86HNcVBx/KVltCW8wJLNgiygsCALhoFsK0em0pETnnBAYhhAEp5bjvU1CpYQQznG9Xj96dLzdari8EwkITUsRRgItitRB5qQToXIpsSZnkZlYIlBGZUZKxQAiOUBCKOgGOB2bugZuRSoIlYEsNzlKEjIyhpwmgoAYiEFik0AjNhCsgcoiDDTTgm7U/HrC+SGORW0Ssh1mF4NoARiQMwAWRP2UgbZlAAGmBiDBFoBSllPn37h4LTcJ/U5gz+Z6gwmM7JABvSCrA2BGZuCka6AJABwIAH9VgdG/4y2xN9DOIfQzm0830H02QO5GTgDAvXYGGhdpoHnJQC/hDYaEXHDmMLCgHCgGIrDIzJgPDtamp6c7ncyGgXM87yMAAJCpagsShboY0lu2rWDLAhwR+uwrRM/k3/0hnxT7IvRG66nfawCAzAwOUPeTCHwuCfvtKU/7DtCzet7v0/NWr9219qnXBb72tYPvZBUAAFbP6+f87+6/MsDoa9qbV44FjeViL+HregfeIDh4Uewc+9uq3X3RHkXIKeQAACgZyIGaP3VQV1XUEhjwnP8YASxOmG4J/4LAPn/DPz/U3RgSiHToxGSIATCwOzWq5ovGek8TpCBGkPPFXBDgdAP9kpj/YXfqCT/1tOMCdh76+V7nZ6DhdbAQ5/kF/yIt1X+nmG+gX/zU+nTDbsBn3id8yrxgIAdi/g4wdX8Yu7nk0N3PWMJ/r3A9zl0A7m3RC1/66rdy5sc+X4d138KpymcHLeWrLuGNBb3Yv3jxX3qvp5L8uJuwOA9nma7n+eJLWMJ5YCn3aAlLeIVYMrhLeK3w+uycnFYhMc+JWKCeYf7jPj8t92zHL2EJrzoccs9BxtMf2m4R/bzHUnTHkfBZiKftVBB0s1xO/baEJZwf/n++tb30qC/hnwXO+iDiOX5bwhJeCq9zDPosAbjTw3fzt1jO0uQSlvDaguf9v1sgydBLPTx91XdqHJ0ZZsbuC/Vrg16rLi/hXxxOWcAXJbydAZ9Z7PgUtcV8YmWt9TnYL8/RIHRLSHje+wAAzrFdlJjM646++OGiysfPB/OvzGKv6qsLa+2Z3Nlndukcnezzci3YlDuTXXHxOE1+YcG/zu/kgv1f6ONebqpP8dq1qp62G+YZYnbMANY657pEUt2yeQBgcNb2CGFOtbyos+s/afNP4Rzne+av52Km7anK9d951Z/nJbwS9NLsmHu3nX3MDQHYOWZLQrBz1rEDcAwkJDvGHg+RZ1tuNpteruks37KAI+wZfr2uFRH0GZCtBaWUMdoYkyTSv/9iFcH5Bv0N2BP3T3OWZV4owLPse5HAV6Xx/oX1l8iLMb7ylhcLryaOiHEc9++O75uXDuAeN7dXX12wk2maRlHk5RQ8Pbc/uE/P7+Vy+k0tqoe+D32hBl+LdFqVv/8655wxxqsTeYUaPzf4PvtjvGqa7wY7BgbHoLWRSkkpnPNnatqtFgkZx7EQpLXuSmYqStNckFCKEC132W/QWWusRUJE8hoU1jkipvM+U+dcnud+ZM2XofBj58zj/dn1C7X8vOgH6YIXUGvtFXz6N8UY42UiFnUvlvAa4Vwj3zHrPHfWet8ZEZVUXpW2Tw6ntXbO1Wq1lze6rLVeucNam+eZ1pqd86IhURT5w7Ismzfk+iUtbxh7pHeg/CCHnoXyilyvHH7gCSH60rdn+p6vA/xlj+M4jmNvy7zn6MVf/AHGGC8u7sUQFmynUCjkeZ6maRzHUkpjTKfTybLMm+YwDIMgAAAvyP0y+ukb9zOH1tqL7fqnxf/DF/37pxR6hOD+G72Yy/xpxj+TxphOJ9XGkpRhnAipGMC3kGVZFEbFQszO6Sxtt9rNZpNdro2L4lhKwezyLDPGEJHWebvVIkIv3ubd606WW7OIAkgvD5Rl2TwdTuenkwWP94a47+YDQKPRONvd8f30UvG2hyXr/M8K5zLQgkhImedZnufedfIqeX5K949dHMdCCK9UclbwAhbVF5cbo/M8c84oJaIoFAI7nSzPjM5tnnmREfLT+7y23MItvl7w5+vtlDEmyzL/lL/ylv2M1eOwNn1lr9c/0IGIXjXca1NB7375zngH379z7naYOY7jUqnkB78QIkkS74N7k+ot5stbJXj7G0WRN0b+mTTGeFvspw1/JYMg8OuAPM99OC4MQy9l6f16Zu50Ol6NN8uy3DKoUDtItdOOHRCSRKRCUtBaO6OVhKzTikNRLgTtxqwMVW44y421HIWREhKBozAMw6DTauVppqSUSjkAkgoXI+zgz7FYLPb1gPx1O9uc7R8VT7sDANbaJEm8fNqZ8A+YvzX+4DRN39io2hJOw7lW5c45YBZSdTptIZWUQW5zIQQS9p07Y4wfFYsdYM45a42UIgyVc5bZOXZa51LKOA4AMM+7zk4/8jbv9Y2E9y6llK1Wq1wuL45j+qXgh4o3WzxP+OpV/IrzRD+AAwBCCG+pvfCYN7X9sACfRRbdQ2vtbaUPNWitW60WIgZB4J1W/9eXsQLzvqTvzIJBEj/h+Te9GfLeorduvjOnhTsAIEmSVNtUGykoNzZEQQQkPL2VLSQxsDZ5WioljXqDEAZrFQOgAkIZIQA7a40WUjCAkkIWi+AJ2h0DAAmBixko3qP3ZxGGYZqmfoF17k953eR+uOysom5C+GWBl1T267ZFdG4Jrz3OGTZFtNYCYqFYPHDg4A8ef3x2ds46LiaF66+7bmRkZO/evY899lir1SoUCrfccsvQ0NBLD7PejguzY3bMfj/QkCBB1Gq17v6Hb1966fYtW7aEoXSWrWVAZO7zop1mpt8Ae22MieN4cnLy3nvvfdOb3nTBBRf0hV9fYcvMnKbpvn37pqenr7nmGgDw1uQlB+RrAW/dvKhjP8wyP27b79g5IsiImOe5d8Z9RDsIgrm5uYcffviqq64aGRnx9v2MbYbz6p5fu3j58z179hw/fvySSy7Zv39/lmU7duyoVCo+nOp9z/4X+YiHX8iPj49/73vfu/LKK9euXes9cW+sf/jUs8dnGlfsuKRaKQGCYQBmiUjOWmukEjbNITelclKfPvnlz//dlmvfvXbNamIQBJIoy7LHHv3h008+qbWJCoVLd1yx6aKLVCi1BbtIklR/F06cOPHoo49OTU3VarWLLrqoXC7XarVSqbTgBQeALMuSJPGrgS996Uu33HLLgis8f7L9KBAA+E2CN8onWMKZOJeBRkRANMYgYavV2rVr19e+dner3b7x+huuuPzyoaGhqampv/3bv9Vab9++/S1vecvQ0ND5f7EQwjnrnEVCIiKkY8eP/d3f/dc//qM//8jP/Q/r128IAmktMLOUXlfxzDbesBj0448/fuedd37ta1/75Cc/uXr1aq/B/Ko0Pjc3d/fdd+/bt2/Hjh39cfKGGGgA8AbaWptlmQ8IeDlq7/z2t3nhnPt7fg+wH1Lfs2fPZz7zmT179lQqleHhYT8DvQyL0A8HzczMPPDAA3/913+d5/nHP/7xb33rW+Pj42NjY9Vq1QfN/cFKKR/J7Xuge/fu/fSnP33nnXfecccdq1at8lbbGPPkk09+6tOfbTk1NPTR7Vs3MwMzCM+JKAQbDVaHSaRb9X27n/zKF/72M3/5N//zvx9dvXq1EoDARus8y44dHf/Kl7/87N59193wI2NrLjDaCBUgIjvHvAgycOfc0aNHv/nNb37/+9+P47hSqTz66KOjo6Pvfe97FzTQ3CNx9P+emJj4gz/4g9WrVy9btmzB9v3mrV8h+SWRd6gXdS+W8NrhJe6EFEJIgYgXXbTlox/96NoL1n3tH+5+63XXrV69GgB27NhxySWXXHXVVTfffPPLmHIRkUgSYZ5nCqU1ut1u1esNZlBKWAvMTinBAMaYIDjN8XjDYtCI2Gq1JiYmpqamkiTxbsirEuggoiRJwjAsFApBEOzdu3d8fHzHjh2LmvleRfgFr9978P3Zs2fPjh07Vq5c6YPI/rD+ID+zBW98obcnjIjtdnt8fHx2dtZv0HFPf72fsrKoHnqz22g0pqamfEzmyiuvbDabtVoNejtm3joDQD+ZwcdqtNadTicIgn62n5Qyz/O5ubnjJyZcVM2tswDMIBEIwRpHxEopdBnrXAUq7bSOHz3sdE5COOcsgBLonCuVyu9573uzdvuLX/zij33gA9dccw2qUGtHys8WizhBKeXzzz9/1113fehDH3rPe95z7Nixe+655yW2fObNl+Vy+ed//ueHh4cXPMxau3v37tnZ2W3bto2MjPjbvSQi/s8KPQON1oFhZx371ASwPjVfKGCHCNaYZcMj73nXzXt27777a1+/YM2mrVu33PvN+8bGLti29bIoioQQrVazUCgAeF8JGMA5I0BCrkAwSGYwDnPLwrECJkaJDnwmHVsztip+983b//zTcRAEznWp9dJUx7FCBGNACnSMxrAUgsGxc0KiMdrvaEFv3S2lTNM0DEOfcuSZ+xFRa4MopEToZi9lYRj0pxVr/TqdENE5cI5BoGEUCIQg2DhjBBiQCiG/duelAvmh7z7Q7KQqjp0MM2ultX0zPd/ceCOVpmk/mYmZ2SEgWNdUUuVpGASOqQlOKipsvXhbuSKEcD98/OnvPnT/6LLh2kCZhGLHzlkSghCbzabfngUAtg7nDSprjKEgTbNSIQZvDvgUQ6YgYucAAXxoEsGiyK2TRNqYUCnHTiIDgDGZlAyQEdk4Bp3NPrXr4X/4zj9FqzYVlkMFkQjQ5QCArNEJQAUo8ixXgULE1ux0oVKZAkkIUToVR4VMYyDM1gvplusu+cyXwyCuEJ3ITWK4EqJGThkCZoVIWhsphLFOSnFq2kdgZus0IQIyIccSjMsHKsX33vz2yeNHH/jug0rJm266CRAtY6OTB4EkwlSzUqRsS6FBZxmQ2SHhxosuesd73veNb9+XOY6TmJ21uqPIvenSzTt3bH1s3/GQUGEv35m71ItGa6kI2AHglq1bf+FjH73r6/dN5yNNdkXoWMCQ4yydSspHKhUqqkvAFkg2BAHoEN1cINodN6ApkuhykyUYIpA2R4MwgnwQiDXNEgTNtBAlYAAUIjPPzc21Wq0oitatW/cLv/ALR44cqdVq/ckPALTWfvpBTMEaKyIDLHl2eCj82V/+ZTYZuLph2YEkJA6szjQ6KXWW3X///SdOnBgdHR0cHOxv/75GtmYJLwN9D9oyG/Z1KJ5tgIEQSUhwjp0RRIQwPDDwnpvf8dv/9x9994HvKxk+9oMnb3n3O1atGkvTLEliAP7Lv/zsk0/+EBAvvHDdbbd9eM+zez7/X768orzx+hvecqKx/977vrnuwrFrrr/+yWcONGYBXOHQvv3XXXPNtW/ZgDa15vBgte2cjqLoU5/606PjR8ql8s/8zM8NDFQPHjx059/ftX7DBU899dTo6Irbb7/twIH9//APd09Nn4jj8F3vetdll1123333PfDAA0KId7/73Y888siBAweyLPvFX/zFTqfzuc99bsWKFb/4C7/43e8+8I1v/CMSrlu39rbbbiWC557b++WvfGV2Zm7jxo3XXXf96Ojye+75JjtqNlvP7t//vp/40GUXbw4kmjwlIuD863f+/f0PfC9RvOfghMnzZjuzjM8fnfj6XV+ZOPR8HMdXX331jTfeqJTq/H/snXd8HNXV98+5d+pWtZVW1bJsuci9YWNMs43B2BjTQstLJyF5npAOISTwBPKEFEjy8CQhhBRCx/RiMD0GjGOMMZabZFtykWR1aftOueX9YyRZxgZM3pA4b/b7gfVqdmbunbK/PXPuuedks2vWrFmzZk0ymRw9evSiRYuqq6s3bNjw7LPPplIpXfPfeOP3qJ6+6cafnnryJR9s+mt3Ysu8Y+csPOHiGTOmVo0ytm7d9MLK1+q3vofEOf+Cz82aNdPQdUTMpNOb6jfVb9q0b18bc9m55571wrPPZW129vIzgqHQgw88aBj+sy65MhFPvPn6qxMmTtq8ub63p2di3fgzzlgaDgVWPv9iMh4HEPv27k0mU2ecsWTU5Gm6LyAQ733g/qaG7VyK0qL8r3zlKwqRjY0NK599ZvKk8e9v2JBOZvc2NW5sivXpz3WckZo/a0qRnwQpB+ZQ13r55dfXbdiUtlg4HLrowgtG1NQIK3nbL35atvhLa159KSq3fuPr39b1EZlMn581BKC/r99Yv+6DzWvvyohRc+afO2NCccfe7S+89Pb+zn7ORTRadsEFFxYVFn2wsf6JJ59krsuY+8P/vgUAVBUkAGOWZDzW1f3c8yubm/YK7tZv2W74/QThtdde6+rumXfSyd29/S+/9HJ3V1d+pHThwvmzxhdue2/d48++AcizQisrL/vCV75mBMOqP5jIZG/94S2peKyudsSZSxf7daJLR1oWlVIyeP31N9auXWulkpMmjD9z2ekBvwlInnt+5bq/vmtnMsCy/SmWoeVMhyyPmeAjMqBRG0i9lP2Z/oiVJoQmmxq73n595+6WtxG7zIrjasbP3LL+le7+/X5W/P3vft3lu597/rkdmwNfvuZLG5qfeOftLclsdSQaqJlYs3j+SZWVlVVVVX/+85+z2expp51WVlZWXFwcDAYZY5TSxx9/fMeOHbZtB4PBSy+91Mm0Pf3kExPmLX/huWdHBROLTj/jkbXdc6fXhVMN721v0UfM27NtA+tsmjD12JknLNrywdqVK1dmMhnO+fnnnz958mTXdT1f1j9RknIM5xNcHN78FQCgispdBwnOnD37mNmz161bV1+/6dhj54wdO9owNMeVAPDQQw+tW7duxszptm397p7fdXV3nn766ZZlv/jm67WjasNlvq7O7hffeO7djRvr65v6emD+/HMmjxtZUBCQQqCqEKIpihEMhR5//PEFCxaMGlWz4tEnm3fvvfyyy2+//fb169fPmjXr5JNPqqoqb25uXrHiMde1R1RVbdm6+Xe/+93FF18cCoVaWlra2trmz58fiURWrVrlPbIFAoHGxsbx48d3dXetWPFY3YQ6IdxYLE4IaWtre/W1V3VdLysv2/jBB9u3N5im/9lnnwdJzj33vOrqEXkhXyaTpgFTIZQq9ImHnvjdb3596mlLfaa2f+0H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cXHWTVpOurOzc9vWralk0so44VCeqikqFT4f+v2gKMSyHEL9hllo2TbnTFEwPz/4ve/dNHny5Nmzj1FV1bIszpmuq4WFBXXj69raWh988KFkItnU1LRv377a2tqKigpN004++eQdO3Y0NzePHDny3HPPXb16dTQa9aa9pVKpvXtbFiyYf8EF55eXl2/durVuQt3mzZsfevChgD+QiCdefPHFxsbGTCbjOq6mKaqKIARBYIy7tj1l8uSRNVXXfvWb3OXx/piiKHl5YUrpMbNmomRPPL4ikUjs379/z549NTU106dPnzp16tNPP/3ss89yznfv3n3vvffu27dv586d48aN++IXvzhiRNWmTZsSiUSkKNjT0+P3U8ZcRaGmaSCCBKkbhqZrqqaapimF1DSdIFVUNRaLNe/ePbKm5oorLp9QN76zvTNSEu3pjVmWhYS+8847hmEqiOlEoqN9f9POnQG/b8vmzevWrTvhhBNmzJhh20795i3xRMpx3Vdee41LWLRw4YITTyguLnnqySeT8Xh3d9fav66llJ657Kx0OsuFCATzNFVXNVP3BZhgCnIFgCKqmkZUdXxd3aTJU+5/6OGWtnabybXvvpdIJJctX14+qsZh0NfVGtBAcEz1J3QDdJ2C9CPqSB2QQpVmXmFEUrZ9+9btmzebhl5TU9PS0trZ2alpWm9vbPfu3SeccOzVV18+d+7cV155xQu75pyHw+HJU6Z29fT88s7/tWxX9/mREESiKIo33a6vr++DjR8UFhVddeVlS5ac9sGGDWvWvlu/ZdPY8XXjJk5et3YdQaJRmk4kvPqAlNB9e/f9ZfWbx8yeO3psnZSoUVpRVlo7quaF55/bsP59KWDPnj1PPvFEZWVlQUH4xu99r6e3VwiRSKd9QcPQeF8vUFSDRritve3nt9/5m/+9v7Wlo6BELy7P27y9cevWrZpORo6oFkxxkvF8vypcKrn/85ec07R7s23pdXVjNM2p37q2ublz3OgpJZHA3n07mctcy1YU5e2337777rszmQwA7NixAwDKysomTJgwatSoBx54oKWlhTHW2dn5yCOPFBWVIvBAiHR02QQLg4EyLrsSqU43G2zatW/9+68jUZubOpqb9o2vGz2+bqxhGN4EIl3Xh9LjfNaik+PI+VgLWgIiqpqCIF3HkYKrut6wZfOvf3PPcytXUaLEYv23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"></div>
- <div class="fig">Figura 14-2. JavaScript, desactivado</div>
- <h3 id="explorando_javascript_scripts_cabecera_documento">Uso de scripts dentro de la cabecera de un documento<a href="#explorando_javascript_scripts_cabecera_documento"></a></h3>
- <p>Además de colocar un script dentro del cuerpo de un documento, puedes ponerlo en la sección <samp><head></samp>, que es el lugar ideal si deseas ejecutar un script cuando se carga una página. Si colocas código y funciones críticas allí, también puedes tener la seguridad de que estén listos para usarse de inmediato por cualquier otra sección de script en el documento que dependa de ellos.</p>
- <p>Otra razón para colocar un script en la cabecera del documento es permitir que JavaScript escriba cosas como meta etiquetas en la sección <samp><head></samp>, porque la ubicación de tu script es la parte del documento donde se escribe (imprime) por defecto.</p>
- <h3 id="explorando_javascript_navegadores_antiguos_no_estandar">Navegadores antiguos y no estándar<a href="#explorando_javascript_navegadores_antiguos_no_estandar"></a></h3>
- <p>Si necesitas soportar navegadores que no ofrecen scripting (muy poco probable en la actualidad), deberás usar las etiquetas de comentario HTML (<samp><!--</samp> y <samp>--></samp>) para evitar que se encuentren con código script que no deberían ver. El ejemplo 14-2 muestra cómo añadirlos a tu código de script.</p>
- <p>Ejemplo 14-2. El ejemplo de "Hello World" modificado para navegadores que no soportan JavaScript</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br></pre><code><span class="hl_o"><</span><span class="hl_v">html</span><span class="hl_o">></span>
- <span class="hl_o"><</span><span class="hl_v">head</span><span class="hl_o">></span>
- <span class="hl_o"><</span><span class="hl_v">title</span><span class="hl_o">></span><span class="hl_v">Hello</span> <span class="hl_v">World</span><span class="hl_o"></</span><span class="hl_v">title</span><span class="hl_o">></span>
- <span class="hl_o"></</span><span class="hl_v">head</span><span class="hl_o">></span>
- <span class="hl_o"><</span><span class="hl_v">body</span><span class="hl_o">></span>
- <span class="hl_o"><</span><span class="hl_v">script</span> <span class="hl_v">type</span><span class="hl_o">=</span><span class="hl_s">"text/javascript"</span><span class="hl_o">><!--</span>
- <span class="hl_f">document.write</span>(<span class="hl_v">'Hello</span> <span class="hl_v">World'</span>)
- <span class="hl_c">// --></span>
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_o"></</span><span class="hl_v">body</span><span class="hl_o">></span>
- <span class="hl_o"></</span><span class="hl_v">html</span><span class="hl_o">></span></code></div>
- <p>Aquí se ha añadido una etiqueta HTML de apertura de comentario (<samp><!--</samp>) directamente después de la declaración de apertura <samp><script></samp>, y se ha añadido una etiqueta de cierre de comentario (<samp>// --></samp>) directamente antes de que el script se cierre con <samp></script></samp>.</p>
- <p>La doble barra diagonal (<samp>//</samp>) la utiliza JavaScript para indicar que el resto de la línea es un comentario. Está ahí para que los navegadores que <i>sí soportan JavaScript</i> ignoren el siguiente <samp>--></samp>, pero los navegadores que no soportan JavaScript ignorarán el <samp>//</samp> anterior y actuarán sobre el <samp>--></samp> cerrando el comentario HTML.</p>
- <p>Aunque la solución es un poco complicada, lo único que realmente necesitas recordar es utilizar las dos líneas siguientes para encerrar tu JavaScript cuando desees soportar navegadores muy antiguos o no estándar:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span> <span class="hl_v">type</span><span class="hl_o">=</span><span class="hl_s">"text/javascript"</span><span class="hl_o">><!--</span>
- (<span class="hl_v">Your</span> <span class="hl_v">JavaScript</span> <span class="hl_v">goes</span> <span class="hl_v">here...</span>)
- <span class="hl_c">// --></span>
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Sin embargo, el uso de estos comentarios es innecesario para cualquier navegador lanzado en los últimos años, pero debes estar al tanto de esto, por si acaso.</p>
- <h3 id="explorando_javascript_incluyendo_archivos_javascript">Incluyendo archivos JavaScript<a href="#explorando_javascript_incluyendo_archivos_javascript"></a></h3>
- <p>Además de escribir código JavaScript directamente en documentos HTML, puedes incluir archivos de código JavaScript desde tu sitio web o desde cualquier lugar de internet. La sintaxis para esto es la siguiente:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span> <span class="hl_v">type</span><span class="hl_o">=</span><span class="hl_s">"text/javascript"</span> <span class="hl_v">src</span><span class="hl_o">=</span><span class="hl_s">"script.js"</span><span class="hl_o">></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>O, para cargar un archivo desde internet, usa esto (aquí sin el <samp>type="text/javascript"</samp> ya que es opcional):</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span> <span class="hl_v">src</span><span class="hl_o">=</span><span class="hl_s">"http://someserver.com/script.js"</span><span class="hl_o">></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>En cuanto a los archivos de script en sí, <i>no deben incluir</i> ninguna etiqueta <samp><script></samp> o <samp></script></samp>, porque son innecesarias: el navegador ya sabe que se está cargando un archivo JavaScript. Ponerlos en los archivos JavaScript causará un error.</p>
- <p>Incluir archivos de script es la forma preferida para que uses archivos JavaScript de terceros en tu sitio web.</p>
- <div class="info"><p><span>Nota</span></p><p>Es posible omitir el parámetro <samp>type="text/javascript"</samp>; todos los navegadores modernos asumen por defecto que el script contiene JavaScript.</p></div>
- <h3 id="explorando_javascript_depuracion_errores_javascript">Depuración de errores en JavaScript<a href="#explorando_javascript_depuracion_errores_javascript"></a></h3>
- <p>Cuando estás aprendiendo JavaScript, es importante poder rastrear errores de escritura u otros errores de codificación. A diferencia de PHP, que muestra mensajes de error en el navegador, JavaScript maneja los mensajes de error de una manera que cambia de acuerdo con el navegador que se esté utilizando. La Tabla 14-1 muestra cómo acceder a los mensajes de error de JavaScript en los navegadores más utilizados.</p>
- <p><i>Tabla 14-1. Acceso a los mensajes de error de JavaScript en diferentes navegadores</i></p>
- <div class="table"><table>
- <tr>
- <th>Navegador</th>
- <th>Cómo acceder a los mensajes de error de JavaScript</th>
- </tr>
- <tr>
- <td>Apple Safari</td>
- <td>Abre Safari y elige <span class="ui1">Safari</span> > <span class="ui1">Preferencias</span> > <span class="ui1">Avanzado</span>. Luego selecciona <span class="ui1">Mostrar menú de desarrollo en la barra de menú</span>. Elige <span class="ui1">Desarrollar</span> > <span class="ui1">Mostrar Consola de Errores</span></td>
- </tr>
- <tr>
- <td>Google Chrome, Microsoft Edge, Mozilla Firefox, & Opera</td>
- <td>Presiona <kbd>Ctrl</kbd> + <kbd>Shift</kbd> + <kbd>J</kbd> en una PC o <kbd>Command</kbd> + <kbd>Shift</kbd> + <kbd>J</kbd> en una Mac.</td>
- </tr>
- </table></div>
- <p>Por favor, consulte la documentación de los desarrolladores del navegador en sus sitios web para obtener todos los detalles sobre su uso.</p>
- <h2 id="explorando_javascript_utilizando_comentarios">Utilizando comentarios<a href="#explorando_javascript_utilizando_comentarios"></a></h2>
- <p>Debido a su herencia compartida del lenguaje de programación C, PHP y JavaScript tienen muchas similitudes, una de las cuales es la forma de comentar. Primero, hay el comentario de una sola línea, como este:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_c">// This is a comment</span></code></div>
- <p>Este estilo utiliza un par de caracteres de barra diagonal (<samp>//</samp>) para informar a JavaScript que todo lo que sigue debe ser ignorado. También tienes comentarios multilínea, como este:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br></pre><code><span class="hl_c">/* This is a section
- of multiline comments
- that will not be
- interpreted */</span></code></div>
- <p>Empiezas un comentario de varias líneas con la secuencia <samp>/*</samp> y lo terminas con <samp>*/</samp>. Solo recuerda que no puedes anidar comentarios multilínea, así que asegúrate de no comentar grandes secciones de código que ya contengan comentarios multilínea.</p>
- <h2 id="explorando_javascript_signos_punto_coma">Signos de punto y coma<a href="#explorando_javascript_signos_punto_coma"></a></h2>
- <p>A diferencia de PHP, JavaScript generalmente no requiere punto y coma si tienes solo una instrucción en una línea. Por lo tanto, lo siguiente es válido:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">x</span> <span class="hl_o">+=</span> <span class="hl_n">10</span></code></div>
- <p>Sin embargo, cuando desees colocar más de una declaración en una línea, debes separarlas con punto y coma, así:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">x</span> <span class="hl_o">+=</span> <span class="hl_n">10</span>; <span class="hl_v">y</span> <span class="hl_o">-=</span> <span class="hl_n">5</span>; <span class="hl_v">z</span> <span class="hl_o">=</span> <span class="hl_n">0</span></code></div>
- <p>Normalmente puedes omitir el punto y coma final, porque la nueva línea termina la declaración final.</p>
- <div class="warn"><p><span>Precaución</span></p><p>Hay excepciones a la regla del punto y coma. Si escribes bookmarklets (marcadores) en JavaScript, o terminas una declaración con una referencia a una variable o función, <i>y el primer carácter</i> de la siguiente línea es un paréntesis izquierdo o un corchete, <i>debes recordar</i> agregar un punto y coma o JavaScript fallará. Entonces, cuando tengas dudas, usa un punto y coma.</p></div>
- <h2 id="explorando_javascript_variables">Variables<a href="#explorando_javascript_variables"></a></h2>
- <p>Ningún carácter en particular identifica una variable en JavaScript como lo hace el signo de dólar en PHP. En su lugar, las variables utilizan las siguientes reglas de nomenclatura:</p>
- <ul>
- <li>Una variable puede incluir solo las letras <samp>a–z</samp>, <samp>A–Z</samp>, <samp>0–9</samp>, el símbolo <samp>$</samp> y el guion bajo (<samp>_</samp>).</li>
- <li>No se permiten otros caracteres, como espacios o signos de puntuación, en el nombre de una variable.</li>
- <li>El primer carácter del nombre de una variable puede ser solo <samp>a–z</samp>, <samp>A–Z</samp>, <samp>$</samp>, o <samp>_</samp> (sin números).</li>
- <li>Los nombres son sensibles a mayúsculas y minúsculas. <samp>Count</samp>, <samp>count</samp> y <samp>COUNT</samp> son todas variables diferentes.</li>
- <li>No hay un límite establecido para la longitud de los nombres de las variables.</li>
- </ul>
- <p>Y sí, tienes razón: hay un <samp>$</samp> en esta lista de caracteres permitidos. <i>Está permitido</i> por JavaScript y <i>puede ser</i> el primer carácter de un nombre de una variable o función. Aunque no recomiendo utilizar los caracteres <samp>$</samp>, esta regla te permite integrar mucho código PHP más rápidamente a JavaScript.</p>
- <h3 id="explorando_javascript_variables_string">Variables string<a href="#explorando_javascript_variables_string"></a></h3>
- <p>Las variables string en JavaScript deben estar entre comillas simples o dobles, así:</p>
- <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_v">greeting</span> <span class="hl_o">=</span> <span class="hl_s">"Hello there"</span>
- <span class="hl_v">warning</span> <span class="hl_o">=</span> <span class="hl_v">'Be</span> <span class="hl_v">careful'</span></code></div>
- <p>Puedes incluir una comilla simple dentro de un string de comillas dobles o una comilla doble dentro de un string de comillas simples. Pero debes escapar el entrecomillado del mismo tipo usando el carácter de barra invertida, así:</p>
- <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_v">greeting</span> <span class="hl_o">=</span> <span class="hl_s">"\"Hello there\" is a greeting"</span>
- <span class="hl_v">warning</span> <span class="hl_o">=</span> <span class="hl_v">'</span><span class="hl_s">\'Be careful\' is a warning'</span></code></div>
- <p>Para leer de una variable string, puedes asignarla a otra, así:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">newstring</span> <span class="hl_o">=</span> <span class="hl_v">oldstring</span></code></div>
- <p>o puedes usarla en una función, así:</p>
- <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_v">status</span> <span class="hl_o">=</span> <span class="hl_s">"All systems are working"</span>
- <span class="hl_f">document.write</span>(<span class="hl_v">status</span>)</code></div>
- <h3 id="explorando_javascript_variables_numericas">Variables numéricas<a href="#explorando_javascript_variables_numericas"></a></h3>
- <p>Crear una variable numérica es tan simple como asignarle un valor, como estos ejemplos:</p>
- <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_v">count</span> <span class="hl_o">=</span> <span class="hl_n">42</span>
- <span class="hl_v">temperature</span> <span class="hl_o">=</span> <span class="hl_n">98</span><span class="hl_v">.4</span></code></div>
- <p>Al igual que los strings, las variables numéricas pueden leerse y usarse en expresiones y funciones.</p>
- <h3 id="explorando_javascript_arrays">Arrays<a href="#explorando_javascript_arrays"></a></h3>
- <p>Los arrays en JavaScript también son muy similares a los de PHP, en el sentido de que un array puede contener datos de tipo string o numéricos, así como otros arrays. Para asignar valores a un array, utiliza la siguiente sintaxis (que en este caso crea un array de strings):</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">toys</span> <span class="hl_o">=</span> [<span class="hl_v">'bat'</span>, <span class="hl_v">'ball'</span>, <span class="hl_v">'whistle'</span>, <span class="hl_v">'puzzle'</span>, <span class="hl_v">'doll'</span>]</code></div>
- <p>Para crear un array multidimensional, anida arrays más pequeños dentro de uno más grande. Entonces, para crear un array bidimensional que contenga los colores de una sola cara de un Cubo Rubik desordenado (donde los colores red (rojo), green (verde), orange (naranja), yellow (amarillo), blue (azul) y white (blanco) están representados por sus letras iniciales en mayúscula), podrías usar el siguiente código:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br></pre><code><span class="hl_v">face</span> <span class="hl_o">=</span> [
- [<span class="hl_v">'R'</span>, <span class="hl_v">'G'</span>, <span class="hl_v">'Y'</span>],
- [<span class="hl_v">'W'</span>, <span class="hl_v">'R'</span>, <span class="hl_v">'O'</span>],
- [<span class="hl_v">'Y'</span>, <span class="hl_v">'W'</span>, <span class="hl_v">'G'</span>]
- ]</code></div>
- <p>El ejemplo anterior se le ha dado formato para que sea obvio lo que está sucediendo, pero también podría escribirse así:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">face</span> <span class="hl_o">=</span> [[<span class="hl_v">'R'</span>, <span class="hl_v">'G'</span>, <span class="hl_v">'Y'</span>], [<span class="hl_v">'W'</span>, <span class="hl_v">'R'</span>, <span class="hl_v">'O'</span>], [<span class="hl_v">'Y'</span>, <span class="hl_v">'W'</span>, <span class="hl_v">'G'</span>]]</code></div>
- <p>o incluso así:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br></pre><code><span class="hl_v">top</span> <span class="hl_o">=</span> [<span class="hl_v">'R'</span>, <span class="hl_v">'G'</span>, <span class="hl_v">'Y'</span>]
- <span class="hl_v">mid</span> <span class="hl_o">=</span> [<span class="hl_v">'W'</span>, <span class="hl_v">'R'</span>, <span class="hl_v">'O'</span>]
- <span class="hl_v">bot</span> <span class="hl_o">=</span> [<span class="hl_v">'Y'</span>, <span class="hl_v">'W'</span>, <span class="hl_v">'G'</span>]
- <span class="hl_v">face</span> <span class="hl_o">=</span> [<span class="hl_v">top</span>, <span class="hl_v">mid</span>, <span class="hl_v">bot</span>]</code></div>
- <p>Para acceder al elemento dos hacia abajo y tres hacia la derecha en este array, usarías lo siguiente (porque los elementos del array comienzan en la posición <samp>0</samp>):</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_f">document.write</span>(<span class="hl_v">face</span>[<span class="hl_n">1</span>][<span class="hl_n">2</span>])</code></div>
- <p>Esta declaración mostrará la letra <samp>O</samp> para <i>orange</i> (naranja).</p>
- <div class="info"><p><span>Nota</span></p><p>Los arrays en JavaScript son estructuras de almacenamiento poderosas, por lo que en el <a href="#funciones_objetos_arrays_javascript" onclick="c('funciones_objetos_arrays_javascript')">Capítulo 16</a> se tratan con mucho más detalle.</p></div>
- <h2 id="explorando_javascript_operadores">Operadores<a href="#explorando_javascript_operadores"></a></h2>
- <p>Los operadores en JavaScript, al igual que en PHP, pueden incluir matemáticas, cambios en strings y operaciones de comparación y lógicas. (<samp>and</samp>, <samp>or</samp>, etc.). Los operadores matemáticos de JavaScript se parecen mucho a la aritmética básica; por ejemplo, la siguiente instrucción devuelve <samp>15</samp>:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_f">document.write</span>(<span class="hl_n">13</span> <span class="hl_o">+</span> <span class="hl_n">2</span>)</code></div>
- <p>Las siguientes secciones te enseñan sobre los distintos operadores.</p>
- <h3 id="explorando_javascript_operadores_aritmeticos">Operadores aritméticos<a href="#explorando_javascript_operadores_aritmeticos"></a></h3>
- <p>Los <i>operadores aritméticos</i> se utilizan para realizar operaciones matemáticas. Puedes usarlos para las cuatro operaciones principales (suma, resta, multiplicación y división), así como para encontrar el módulo de una división (el residuo después de una división) y para incrementar o decrementar un valor.
- (ver la Tabla 14-2).</p>
- <p><i>Tabla 14-2. Operadores aritméticos</i></p>
- <div class="table"><table>
- <tr>
- <th>Operador</th>
- <th>Descripción</th>
- <th>Ejemplo</th>
- </tr>
- <tr>
- <td><samp>+</samp></td>
- <td>Suma</td>
- <td><samp>j + 12</samp></td>
- </tr>
- <tr>
- <td><samp>-</samp></td>
- <td>Resta</td>
- <td><samp>j - 22</samp></td>
- </tr>
- <tr>
- <td><samp>*</samp></td>
- <td>Multiplicación</td>
- <td><samp>j * 7</samp></td>
- </tr>
- <tr>
- <td><samp>/</samp></td>
- <td>División</td>
- <td><samp>j / 3.13</samp></td>
- </tr>
- <tr>
- <td><samp>%</samp></td>
- <td>Módulo (resto de la división)</td>
- <td><samp>j % 6</samp></td>
- </tr>
- <tr>
- <td><samp>++</samp></td>
- <td>Incremento</td>
- <td><samp>++j</samp></td>
- </tr>
- <tr>
- <td><samp>--</samp></td>
- <td>Decremento</td>
- <td><samp>--j</samp></td>
- </tr>
- </table></div>
- <h3 id="explorando_javascript_operadores_asignacion">Operadores de asignación<a href="#explorando_javascript_operadores_asignacion"></a></h3>
- <p>Los <i>operadores de asignación</i> se utilizan para asignar valores a las variables. Empiezan con el muy simple <samp>=</samp> y continúan con <samp>+=</samp>, <samp>–=</samp>, y así sucesivamente. El operador <samp>+=</samp> añade el valor del lado derecho a la variable del lado izquierdo, en lugar de reemplazar totalmente el valor del lado izquierdo. Así, si <samp>count</samp> comienza con el valor de <samp>6</samp>, la declaración:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">count</span> <span class="hl_o">+=</span> <span class="hl_n">1</span></code></div>
- <p>establece <samp>count</samp> en <samp>7</samp>, al igual que la declaración de asignación más familiar:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">count</span> <span class="hl_o">=</span> <span class="hl_v">count</span> <span class="hl_o">+</span> <span class="hl_n">1</span></code></div>
- <p>La Tabla 14-3 enumera los distintos operadores de asignación disponibles.</p>
- <p><i>Tabla 14-3. Operadores de asignación</i></p>
- <div class="table"><table>
- <tr>
- <th>Operador</th>
- <th>Ejemplo</th>
- <th>Equivalente a</th>
- </tr>
- <tr>
- <td><samp>=</samp></td>
- <td><samp>j = 99</samp></td>
- <td><samp>j = 99</samp></td>
- </tr>
- <tr>
- <td><samp>+=</samp></td>
- <td><samp>j += 2</samp></td>
- <td><samp>j = j + 2</samp></td>
- </tr>
- <tr>
- <td><samp>+=</samp></td>
- <td><samp>j += 'string'</samp></td>
- <td><samp>j = j + 'string'</samp></td>
- </tr>
- <tr>
- <td><samp>–=</samp></td>
- <td><samp>j –= 12</samp></td>
- <td><samp>j = j – 12</samp></td>
- </tr>
- <tr>
- <td><samp>*=</samp></td>
- <td><samp>j *= 2</samp></td>
- <td><samp>j = j * 2</samp></td>
- </tr>
- <tr>
- <td><samp>/=</samp></td>
- <td><samp>j /= 6</samp></td>
- <td><samp>j = j / 6</samp></td>
- </tr>
- <tr>
- <td><samp>%=</samp></td>
- <td><samp>j %= 7</samp></td>
- <td><samp>j = j % 7</samp></td>
- </tr>
- </table></div>
- <h3 id="explorando_javascript_operadores_comparacion">Operadores de comparación<a href="#explorando_javascript_operadores_comparacion"></a></h3>
- <p>Los <i>operadores de comparación</i> se utilizan generalmente dentro de una estructura como en una declaración <samp>if</samp>, donde necesitas comparar dos elementos. Por ejemplo, puede que desees saber si una variable que se ha estado incrementando ha alcanzado un valor específico, o si otra variable es menor que un valor establecido, y así sucesivamente. (ver la Tabla 14-4).</p>
- <p><i>Tabla 14-4. Operadores de comparación</i></p>
- <div class="table"><table>
- <tr>
- <th>Operador</th>
- <th>Descripción</th>
- <th>Ejemplo</th>
- </tr>
- <tr>
- <td><samp>==</samp></td>
- <td>Es <i>igual</i> a</td>
- <td><samp>j == 42</samp></td>
- </tr>
- <tr>
- <td><samp>!=</samp></td>
- <td><i>No es igual</i> a</td>
- <td><samp>j != 17</samp></td>
- </tr>
- <tr>
- <td><samp>></samp></td>
- <td>Es <i>mayor que</i></td>
- <td><samp>j > 0</samp></td>
- </tr>
- <tr>
- <td><samp><</samp></td>
- <td>Es <i>menor que</i></td>
- <td><samp>j < 100</samp></td>
- </tr>
- <tr>
- <td><samp>>=</samp></td>
- <td>Es <i>mayor o igual</i> que</td>
- <td><samp>j >= 23</samp></td>
- </tr>
- <tr>
- <td><samp><=</samp></td>
- <td>Es <i>menor o igual</i> que</td>
- <td><samp>j <= 13</samp></td>
- </tr>
- <tr>
- <td><samp>===</samp></td>
- <td>Es <i>igual</i> a (y del mismo tipo)</td>
- <td><samp>j === 56</samp></td>
- </tr>
- <tr>
- <td><samp>!==</samp></td>
- <td><i>No es igual</i> a (y del mismo tipo)</td>
- <td><samp>j !== '1'</samp></td>
- </tr>
- </table></div>
- <h3 id="explorando_javascript_operadores_logicos">Operadores lógicos<a href="#explorando_javascript_operadores_logicos"></a></h3>
- <p>A diferencia de PHP, los <i>operadores lógicos</i> de JavaScript no incluyen equivalentes de <samp>and</samp> y <samp>or</samp> a <samp>&&</samp> y <samp>||</samp>, y no hay un operador <samp>xor</samp>. (ver la Tabla 14-5).</p>
- <p><i>Tabla 14-5. Operadores lógicos</i></p>
- <div class="table"><table>
- <tr>
- <th>Operador</th>
- <th>Descripción</th>
- <th>Ejemplo</th>
- </tr>
- <tr>
- <td><samp>&&</samp></td>
- <td>And</td>
- <td><samp>j == 1 && k == 2</samp></td>
- </tr>
- <tr>
- <td><samp>||</samp></td>
- <td>Or</td>
- <td><samp>j < 100 || j > 0</samp></td>
- </tr>
- <tr>
- <td><samp>!</samp></td>
- <td>Not</td>
- <td><samp>! (j == k)</samp></td>
- </tr>
- </table></div>
- <h3 id="explorando_javascript_incrementando_decrementando_asignacion_abreviada">Incrementando, decrementando y asignación abreviada<a href="#explorando_javascript_incrementando_decrementando_asignacion_abreviada"></a></h3>
- <p>Las siguientes formas de post y preincremento y decremento que aprendiste a utilizar en PHP también son compatibles con JavaScript, al igual que los operadores de asignación abreviada:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br></pre><code><span class="hl_o">++</span><span class="hl_v">x</span>
- <span class="hl_o">--</span><span class="hl_v">y</span>
- <span class="hl_v">x</span> <span class="hl_o">+=</span> <span class="hl_n">22</span>
- <span class="hl_v">y</span> <span class="hl_o">-=</span> <span class="hl_n">3</span></code></div>
- <h3 id="explorando_javascript_concatenacion_strings">Concatenación de strings<a href="#explorando_javascript_concatenacion_strings"></a></h3>
- <p>JavaScript maneja la concatenación de strings de manera ligeramente diferente a PHP. En lugar del operador <samp>.</samp> (punto), utiliza el signo más (<samp>+</samp>), así:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_f">document.write</span>(<span class="hl_s">"You have "</span> <span class="hl_o">+</span> <span class="hl_v">messages</span> <span class="hl_o">+</span> <span class="hl_s">" messages."</span>)</code></div>
- <p>Suponiendo que la variable <samp>messages</samp> está establecida con el valor de <samp>3</samp>, la salida de esta línea de código será la siguiente:</p>
- <div class="pre"><pre>
- You have 3 messages.
- </pre></div>
- <p>Así como puedes agregar un valor a una variable numérica con el operador <samp>+=</samp>, también puedes concatenar un string a otra de la misma manera:</p>
- <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_v">name</span> <span class="hl_o">=</span> <span class="hl_s">"James"</span>
- <span class="hl_v">name</span> <span class="hl_o">+=</span> <span class="hl_s">" Dean"</span></code></div>
- <h3 id="explorando_javascript_caracteres_escape">Caracteres de escape<a href="#explorando_javascript_caracteres_escape"></a></h3>
- <p>Los caracteres de escape, que se han utilizado para insertar comillas en los strings, también pueden ser utilizados para insertar varios caracteres especiales, como tabulaciones, saltos de línea y retornos de carro. Aquí hay un ejemplo usando tabulaciones para organizar un encabezado: se incluye aquí simplemente para ilustrar escapes, porque en las páginas web, hay mejores maneras de hacer el diseño:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">heading</span> <span class="hl_o">=</span> <span class="hl_s">"Name\tAge\tLocation"</span></code></div>
- <p>La Tabla 14-6 detalla los caracteres de escape disponibles.</p>
- <p><i>Tabla 14-6. Caracteres de escape en JavaScript</i></p>
- <div class="table"><table>
- <tr>
- <th>Caracter</th>
- <th class="wide">Significado</th>
- </tr>
- <tr>
- <td><samp>\b</samp></td>
- <td>Retroceso</td>
- </tr>
- <tr>
- <td><samp>\f</samp></td>
- <td>Salto de página</td>
- </tr>
- <tr>
- <td><samp>\n</samp></td>
- <td>Salto de línea</td>
- </tr>
- <tr>
- <td><samp>\r</samp></td>
- <td>Retorno de carro</td>
- </tr>
- <tr>
- <td><samp>\t</samp></td>
- <td>Tabulador</td>
- </tr>
- <tr>
- <td><samp>\'</samp></td>
- <td>Comillas simples (o apóstrofe)</td>
- </tr>
- <tr>
- <td><samp>\"</samp></td>
- <td>Comillas dobles</td>
- </tr>
- <tr>
- <td><samp>\\</samp></td>
- <td>Barra invertida</td>
- </tr>
- <tr>
- <td><samp>\XXX</samp></td>
- <td>Un número octal entre <samp>000</samp> y <samp>377</samp> que representa el equivalente de caracteres Latin-1 (como <samp>\251</samp> para el símbolo ©)</td>
- </tr>
- <tr>
- <td><samp>\xXX</samp></td>
- <td>Un número hexadecimal entre <samp>00</samp> y <samp>FF</samp> que representa el equivalente de caracteres Latin-1 (como <samp>\xA9</samp> para el símbolo ©)</td>
- </tr>
- <tr>
- <td><samp>\uXXXX</samp></td>
- <td>Un número hexadecimal entre <samp>0000</samp> y <samp>FFFF</samp> que representa el equivalente de caracteres Unicode (como <samp>\u00A9</samp> para el símbolo ©)</td>
- </tr>
- </table></div>
- <h2 id="explorando_javascript_tipado_variables">Tipado de variables<a href="#explorando_javascript_tipado_variables"></a></h2>
- <p>Al igual que PHP, JavaScript es un lenguaje muy débilmente tipado; el <i>tipo de dato</i> de una variable se determina solo cuando se le asigna un valor y puede cambiar a medida que la variable aparece en diferentes contextos. Por lo general, no tienes que preocuparte por el tipo de dato de las variables; JavaScript averigua lo que quieres y simplemente lo hace.</p>
- <p>Echa un vistazo al Ejemplo 14-3, en el cual:</p>
- <ol>
- <li>A la variable <samp>n</samp> se le asigna el valor del string <samp>'838102050'</samp>. La siguiente línea imprime su valor, y se utiliza el operador <samp>typeof</samp> para consultar el tipo de dato de la variable.</li>
- <li><samp>n</samp> se le asigna el valor devuelto cuando se multiplican los números <samp>12345</samp> y <samp>67890</samp>. Este valor también es <samp>838102050</samp>, pero es un número, no un string. El tipo de dato de la variable se busca y se muestra.</li>
- <li>Se añade algún texto al número <samp>n</samp> y se muestra el resultado.</li>
- </ol>
- <p><i>Ejemplo 14-3. Establece el tipo de dato de una variable por asignación</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">n</span> <span class="hl_o">=</span> <span class="hl_v">'838102050'</span> <span class="hl_c">// Set 'n' to a string</span>
- <span class="hl_f">document.write</span>(<span class="hl_v">'n</span> <span class="hl_o">=</span> <span class="hl_v">'</span> <span class="hl_o">+</span> <span class="hl_v">n</span> <span class="hl_o">+</span> <span class="hl_v">'</span>, <span class="hl_k">and</span> <span class="hl_k">is</span> <span class="hl_v">a</span> <span class="hl_v">'</span> <span class="hl_o">+</span> <span class="hl_v">typeof</span> <span class="hl_v">n</span> <span class="hl_o">+</span> <span class="hl_v">'</span><span class="hl_o"><</span><span class="hl_v">br</span><span class="hl_o">></span><span class="hl_v">'</span>)
- <span class="hl_v">n</span> <span class="hl_o">=</span> <span class="hl_n">12345</span> <span class="hl_o">*</span> <span class="hl_n">67890</span>; <span class="hl_c">// Set 'n' to a number</span>
- <span class="hl_f">document.write</span>(<span class="hl_v">'n</span> <span class="hl_o">=</span> <span class="hl_v">'</span> <span class="hl_o">+</span> <span class="hl_v">n</span> <span class="hl_o">+</span> <span class="hl_v">'</span>, <span class="hl_k">and</span> <span class="hl_k">is</span> <span class="hl_v">a</span> <span class="hl_v">'</span> <span class="hl_o">+</span> <span class="hl_v">typeof</span> <span class="hl_v">n</span> <span class="hl_o">+</span> <span class="hl_v">'</span><span class="hl_o"><</span><span class="hl_v">br</span><span class="hl_o">></span><span class="hl_v">'</span>)
- <span class="hl_v">n</span> <span class="hl_o">+=</span> <span class="hl_v">'</span> <span class="hl_v">plus</span> <span class="hl_v">some</span> <span class="hl_v">text'</span> <span class="hl_c">// Change 'n' from a number to a string</span>
- <span class="hl_f">document.write</span>(<span class="hl_v">'n</span> <span class="hl_o">=</span> <span class="hl_v">'</span> <span class="hl_o">+</span> <span class="hl_v">n</span> <span class="hl_o">+</span> <span class="hl_v">'</span>, <span class="hl_k">and</span> <span class="hl_k">is</span> <span class="hl_v">a</span> <span class="hl_v">'</span> <span class="hl_o">+</span> <span class="hl_v">typeof</span> <span class="hl_v">n</span> <span class="hl_o">+</span> <span class="hl_v">'</span><span class="hl_o"><</span><span class="hl_v">br</span><span class="hl_o">></span><span class="hl_v">'</span>)
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>La salida de este script se ve así:</p>
- <div class="pre"><pre>
- n = 838102050, and is a string
- n = 838102050, and is a number
- n = 838102050 plus some text, and is a string
- </pre></div>
- <p>Si alguna vez hay alguna duda sobre el tipo de dato de una variable, o necesitas asegurarte de que una variable tenga un tipo de dato en particular, puedes forzarla a ese tipo de dato utilizando declaraciones como las siguientes (que convierten respectivamente un string a un número y un número a un string):</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br></pre><code><span class="hl_v">n</span> <span class="hl_o">=</span> <span class="hl_s">"123"</span>
- <span class="hl_v">n</span> <span class="hl_o">*=</span> <span class="hl_n">1</span> <span class="hl_c">// Convert 'n' into a number</span>
- <span class="hl_v">n</span> <span class="hl_o">=</span> <span class="hl_n">123</span>
- <span class="hl_v">n</span> <span class="hl_o">+=</span> <span class="hl_s">""</span> <span class="hl_c">// Convert 'n' into a string</span></code></div>
- <p>O puedes usar las siguientes funciones de la misma manera:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br></pre><code><span class="hl_v">n</span> <span class="hl_o">=</span> <span class="hl_s">"123"</span>
- <span class="hl_v">n</span> <span class="hl_o">=</span> <span class="hl_f">parseInt</span>(<span class="hl_v">n</span>) <span class="hl_c">// Convert 'n' into an integer number</span>
- <span class="hl_v">n</span> <span class="hl_o">=</span> <span class="hl_f">parseFloat</span>(<span class="hl_v">n</span>) <span class="hl_c">// Convert 'n' into a floating point number</span>
- <span class="hl_v">n</span> <span class="hl_o">=</span> <span class="hl_n">123</span>
- <span class="hl_v">n</span> <span class="hl_o">=</span> <span class="hl_f">n.toString</span>() <span class="hl_c">// Convert 'n' into a string</span></code></div>
- <p>Puedes leer más sobre la conversión de tipos de datos en JavaScript en línea (<a href="https://es.javascript.info/type-conversions" target="new">https://es.javascript.info/type-conversions</a>). Y siempre puedes consultar el tipo de dato de una variable usando el operador <samp>typeof</samp>.</p>
- <h2 id="explorando_javascript_funciones">Funciones<a href="#explorando_javascript_funciones"></a></h2>
- <p>Al igual que con PHP, las funciones en JavaScript se utilizan para separar secciones de código que realizan una tarea específica. Para crear una función, se declara de la manera que se muestra en el Ejemplo 14-4.</p>
- <p><i>Ejemplo 14-4. Una declaración simple de una función</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_k">function</span> <span class="hl_f">product</span>(<span class="hl_v">a</span>, <span class="hl_v">b</span>)
- {
- <span class="hl_k">return</span> <span class="hl_v">a</span><span class="hl_o">*</span><span class="hl_v">b</span>
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Esta función toma los dos parámetros pasados, los multiplica y devuelve el resultado.</p>
- <h2 id="explorando_javascript_variables_globales">Variables globales<a href="#explorando_javascript_variables_globales"></a></h2>
- <p>Las <i>variables globales</i> son aquellas definidas fuera de cualquier función (o definidas dentro de funciones pero sin la palabra clave <samp>var</samp>). Pueden definirse de las siguientes maneras:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br></pre><code> <span class="hl_v">a</span> <span class="hl_o">=</span> <span class="hl_n">123</span> <span class="hl_c">// Global scope</span>
- <span class="hl_v">var</span> <span class="hl_v">b</span> <span class="hl_o">=</span> <span class="hl_n">456</span> <span class="hl_c">// Global scope</span>
- <span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o">==</span> <span class="hl_n">123</span>) <span class="hl_v">var</span> <span class="hl_v">c</span> <span class="hl_o">=</span> <span class="hl_n">789</span> <span class="hl_c">// Global scope</span></code></div>
- <p>Independientemente si estás utilizando la palabra clave <samp>var</samp>, mientras una variable esté definida fuera de una función, su alcance es global. Esto significa que cada parte de un script puede tener acceso a él.</p>
- <h2 id="explorando_javascript_variables_locales">Variables locales<a href="#explorando_javascript_variables_locales"></a></h2>
- <p>Los parámetros pasados a una función automáticamente tienen un <i>alcance local</i>, es decir, solo pueden ser referenciados dentro de esa función. Sin embargo, hay una excepción. Los arrays se pasan a una función por referencia, por lo que si modificas cualquier elemento de un parámetro de tipo array, los elementos del array original serán modificados.</p>
- <p>Para definir una variable local que tenga alcance solo dentro de la función actual y que no haya sido pasada como parámetro, utiliza la palabra clave <samp>var</samp>. El Ejemplo 14-5 muestra una función que crea una variable con alcance global y dos con alcance local.</p>
- <p><i>Ejemplo 14-5. Una función que crea variables con alcance global y local</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_k">function</span> <span class="hl_f">test</span>()
- {
- <span class="hl_v">a</span> <span class="hl_o">=</span> <span class="hl_n">123</span> <span class="hl_c">// Global scope</span>
- <span class="hl_v">var</span> <span class="hl_v">b</span> <span class="hl_o">=</span> <span class="hl_n">456</span> <span class="hl_c">// Local scope</span>
- <span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o">==</span> <span class="hl_n">123</span>) <span class="hl_v">var</span> <span class="hl_v">c</span> <span class="hl_o">=</span> <span class="hl_n">789</span> <span class="hl_c">// Local scope</span>
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Para comprobar si la configuración del alcance ha funcionado en PHP, podemos usar la función <samp>isset</samp>. Pero en JavaScript no existe tal función, así que el Ejemplo 14-6 utiliza el operador <samp>typeof</samp>, que devuelve el string <samp>undefined</samp> cuando una variable no está definida.</p>
- <p><i>Ejemplo 14-6. Verificación del alcance de las variables definidas en la función test</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_f">test</span>()
- <span class="hl_k">if</span> (<span class="hl_v">typeof</span> <span class="hl_v">a</span> <span class="hl_o">!=</span> <span class="hl_v">'undefined'</span>) <span class="hl_f">document.write</span>(<span class="hl_v">'a</span> <span class="hl_o">=</span> <span class="hl_s">"' + a + '"</span><span class="hl_o"><</span><span class="hl_v">br</span><span class="hl_o">></span><span class="hl_v">'</span>)
- <span class="hl_k">if</span> (<span class="hl_v">typeof</span> <span class="hl_v">b</span> <span class="hl_o">!=</span> <span class="hl_v">'undefined'</span>) <span class="hl_f">document.write</span>(<span class="hl_v">'b</span> <span class="hl_o">=</span> <span class="hl_s">"' + b + '"</span><span class="hl_o"><</span><span class="hl_v">br</span><span class="hl_o">></span><span class="hl_v">'</span>)
- <span class="hl_k">if</span> (<span class="hl_v">typeof</span> <span class="hl_v">c</span> <span class="hl_o">!=</span> <span class="hl_v">'undefined'</span>) <span class="hl_f">document.write</span>(<span class="hl_v">'c</span> <span class="hl_o">=</span> <span class="hl_s">"' + c + '"</span><span class="hl_o"><</span><span class="hl_v">br</span><span class="hl_o">></span><span class="hl_v">'</span>)
- <span class="hl_k">function</span> <span class="hl_f">test</span>()
- {
- <span class="hl_v">a</span> <span class="hl_o">=</span> <span class="hl_n">123</span>
- <span class="hl_v">var</span> <span class="hl_v">b</span> <span class="hl_o">=</span> <span class="hl_n">456</span>
- <span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o">==</span> <span class="hl_n">123</span>) <span class="hl_v">var</span> <span class="hl_v">c</span> <span class="hl_o">=</span> <span class="hl_n">789</span>
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>La salida de este script es la siguiente línea:</p>
- <div class="pre"><pre>
- a = "123"
- </pre></div>
- <p>Esto muestra que solo la variable <samp>a</samp> recibió un alcance global, que es exactamente lo que esperaríamos, ya que las variables <samp>b</samp> y <samp>c</samp> recibieron un alcance local al estar precedidas por la palabra clave <samp>var</samp>.</p>
- <p>Si tu navegador emite una advertencia sobre que <samp>b</samp> está indefinido, la advertencia es correcta pero se puede ignorar.</p>
- <h3 id="explorando_javascript_utilizando_let_const">Utilizando let y const<a href="#explorando_javascript_utilizando_let_const"></a></h3>
- <p>JavaScript ahora ofrece dos nuevas palabras clave: <samp>let</samp> y <samp>const</samp>. La palabra clave <samp>let</samp> es prácticamente un reemplazo para <samp>var</samp>, pero tiene la ventaja de que no puedes redeclarar una variable una vez que lo hayas hecho con <samp>let</samp>, aunque sí puedes con <samp>var</samp>.</p>
- <p>Verás, el hecho de que pudieras redeclarar variables utilizando <samp>var</samp> estaba llevando a errores oscuros, como el siguiente:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br></pre><code><span class="hl_v">var</span> <span class="hl_v">hello</span> <span class="hl_o">=</span> <span class="hl_s">"Hello there"</span>
- <span class="hl_v">var</span> <span class="hl_v">counter</span> <span class="hl_o">=</span> <span class="hl_n">1</span>
- <span class="hl_k">if</span> (<span class="hl_v">counter</span> <span class="hl_o">></span> <span class="hl_n">0</span>)
- {
- <span class="hl_v">var</span> <span class="hl_v">hello</span> <span class="hl_o">=</span> <span class="hl_s">"How are you?"</span>
- }
- <span class="hl_f">document.write</span>(<span class="hl_v">hello</span>)</code></div>
- <p>¿Puedes ver el problema? Debido a que <samp>counter</samp> es mayor que <samp>0</samp> (ya que lo inicializamos en <samp>1</samp>), el string <samp>hello</samp> se redefine como "How are you?" (¿Cómo estás?) y luego se muestra en el documento.</p>
- <p>Ahora, si reemplazas <samp>var</samp> con <samp>let</samp> (como lo siguiente), la segunda declaración será ignorada, y se mostrará el string original "Hello there":</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br></pre><code><span class="hl_v">let</span> <span class="hl_v">hello</span> <span class="hl_o">=</span> <span class="hl_s">"Hello there"</span>
- <span class="hl_v">let</span> <span class="hl_v">counter</span> <span class="hl_o">=</span> <span class="hl_n">1</span>
- <span class="hl_k">if</span> (<span class="hl_v">counter</span> <span class="hl_o">></span> <span class="hl_n">0</span>)
- {
- <span class="hl_v">let</span> <span class="hl_v">hello</span> <span class="hl_o">=</span> <span class="hl_s">"How are you?"</span>
- }
- <span class="hl_f">document.write</span>(<span class="hl_v">hello</span>)</code></div>
- <p>La palabra clave <samp>var</samp> tiene un alcance global (si está fuera de cualquier bloque o función) o de <i>función</i>, y las variables declaradas se inicializan con <samp>undefined</samp>, pero la palabra clave <samp>let</samp> tiene un alcance global o de <i>bloque</i>, y las variables no se inicializan.</p>
- <p>Cualquier variable asignada utilizando <samp>let</samp> tiene un alcance dentro de todo el documento si se declara fuera de cualquier bloque, o, si se declara dentro de un bloque delimitado por <samp>{}</samp> (lo que incluye funciones), su alcance se limita a ese bloque (y cualquier sub-bloque anidado). Si declaras una variable dentro de un bloque pero intentas acceder a ella desde fuera de ese bloque, se devolverá un error, como en el siguiente caso, que fallará en el <samp>document.write</samp> porque <samp>hello</samp> no tendrá valor:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br></pre><code><span class="hl_v">let</span> <span class="hl_v">counter</span> <span class="hl_o">=</span> <span class="hl_n">1</span>
- <span class="hl_k">if</span> (<span class="hl_v">counter</span> <span class="hl_o">></span> <span class="hl_n">0</span>)
- {
- <span class="hl_v">let</span> <span class="hl_v">hello</span> <span class="hl_o">=</span> <span class="hl_s">"How are you?"</span>
- }
- <span class="hl_f">document.write</span>(<span class="hl_v">hello</span>)</code></div>
- <p>Puedes usar <samp>let</samp> para declarar variables con el mismo nombre que las variables previamente declaradas, siempre y cuando sean dentro de un nuevo ámbito, en cuyo caso cualquier valor anterior asignado a una variable con el mismo nombre en el ámbito anterior se volverá inaccesible para el nuevo ámbito, porque la nueva variable con el mismo nombre se maneja totalmente diferente de la anterior. Solo tiene alcance dentro del bloque actual, o de cualquier sub-bloque (a menos que se use otro <samp>let</samp> para declarar otra variable con el mismo nombre en un sub-bloque).</p>
- <p>Es una buena práctica intentar evitar la reutilización de nombres significativos de variables, o corres el riesgo de causar confusión. Sin embargo, las variables de bucle o índice como <samp>i</samp> (u otros nombres cortos y simples) generalmente pueden reutilizarse en nuevos ámbitos sin causar confusión.</p>
- <p>Puedes aumentar aún más tu control sobre el alcance declarando una variable con un valor constante, es decir, uno que no pueda ser cambiado. Esto es beneficioso cuando has creado una variable que lo estás tratando como una constante pero la has declarado utilizando solo <samp>var</samp> o <samp>let</samp>, porque podrías tener ocasiones que en tu código intentes cambiar ese valor, lo cual estaría permitido pero sería un error.</p>
- <p>Sin embargo, si utilizas la palabra clave <samp>const</samp> para declarar la variable y asignar su valor, cualquier intento de cambiar más tarde su valor será prohibido, y tu código se detendrá con un mensaje de error en la consola similar a:</p>
- <div class="pre"><pre>
- Uncaught TypeError: Assignment to constant variable
- </pre></div>
- <p>El siguiente código causará exactamente ese error:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br></pre><code><span class="hl_v">const</span> <span class="hl_v">hello</span> <span class="hl_o">=</span> <span class="hl_s">"Hello there"</span>
- <span class="hl_v">let</span> <span class="hl_v">counter</span> <span class="hl_o">=</span> <span class="hl_n">1</span>
- <span class="hl_k">if</span> (<span class="hl_v">counter</span> <span class="hl_o">></span> <span class="hl_n">0</span>)
- {
- <span class="hl_v">hello</span> <span class="hl_o">=</span> <span class="hl_s">"How are you?"</span>
- }
- <span class="hl_f">document.write</span>(<span class="hl_v">hello</span>)</code></div>
- <p>Al igual que <samp>let</samp>, las declaraciones <samp>const</samp> también tienen un alcance de bloque (dentro de secciones <samp>{}</samp> y cualquier sub-bloque), lo que significa que puedes tener variables constantes con el mismo nombre pero con diferentes valores en diferentes ámbitos de un fragmento de código. Sin embargo, te recomiendo encarecidamente que intentes evitar la duplicación de nombres y mantengas cualquier nombre de constante para un solo valor a lo largo de cada programa, utilizando un nuevo nombre de constante donde necesites una nueva constante.</p>
- <p>En resumen: <samp>var</samp> tiene un alcance global o de función, y <samp>let</samp> y <samp>const</samp> tienen un alcance global o de bloque. Tanto <samp>var</samp> como <samp>let</samp> pueden ser declarados sin ser inicializados, mientras que <samp>const</samp> debe ser inicializado durante la declaración. La palabra clave <samp>var</samp> se puede reutilizar para redeclarar una variable <samp>var</samp>, pero <samp>let</samp> y <samp>const</samp> no pueden. Finalmente, <samp>const</samp> no puede ser redeclarado ni reasignado.</p>
- <div class="info"><p><span>Nota</span></p><p>Es posible que prefieras utilizar una consola de desarrollador para pruebas como estas (y en otras partes de este libro) como se explicó anteriormente en <a href="#explorando_javascript_depuracion_errores_javascript" onclick="c('explorando_javascript_depuracion_errores_javascript')">"Depuración de errores en JavaScript"</a>, en cuyo caso puedes reemplazar <samp>document.write</samp> con <samp>console.log</samp>, y la salida se mostrará en la consola en lugar del documento del navegador. También es una mejor opción para que JavaScript se ejecute una vez que el documento se haya cargado completamente, porque en ese momento <samp>document.write</samp> reemplazaría el documento actual, en lugar de agregarle contenido, lo cual probablemente no sea lo que esperes.</p></div>
- <h2 id="explorando_javascript_document_object_model">El Document Object Model<a href="#explorando_javascript_document_object_model"></a></h2>
- <p>El diseño de JavaScript es muy inteligente. En lugar de simplemente crear otro lenguaje de scripting (lo que hubiera sido una mejora bastante buena en ese momento), había una visión de construirlo alrededor del ya existente Document Object Model de HTML. Este modelo descompone las partes de un documento HTML en <i>objetos</i> discretos, cada uno con sus respectivas <i>propiedades</i> y <i>métodos</i>, y cada uno sujeto al control de JavaScript.</p>
- <p>JavaScript separa objetos, propiedades y métodos utilizando un punto (una buena razón por la cual <samp>+</samp> es el operador de concatenación de strings en JavaScript, en lugar del punto). Por ejemplo, consideremos una tarjeta de presentación como un objeto al que llamaremos <samp>card</samp>. Este objeto contiene propiedades como su nombre, dirección, número de teléfono, y así sucesivamente. En la sintaxis de JavaScript, estas propiedades se verían así:</p>
- <div class="pre"><pre>
- card.name
- card.phone
- card.address
- </pre></div>
- <p>Sus métodos son funciones que recuperan, modifican y actúan de otras maneras sobre las propiedades. Por ejemplo, para invocar un método que muestre las propiedades del objeto <samp>card</samp>, podrías utilizar una sintaxis como esta:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_f">card.display</span>()</code></div>
- <p>Echa un vistazo a algunos de los ejemplos anteriores en este capítulo y observa dónde se utiliza la instrucción <samp>document.write</samp>. Ahora que entiendes cómo JavaScript se basa en objetos, verás que <samp>write</samp> es en realidad un método del objeto <samp>document</samp>.</p>
- <p>Dentro de JavaScript, existe una jerarquía de objetos padre e hijo, que es lo que se conoce como el Document Object Model. (DOM; ver Figura 14-3).</p>
- <div class="imgc"><img class="imgc" width="679" height="265" alt="figura_14-3.png" src="data:image/png;base64,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"></div>
- <div class="fig">Figura 14-3. Ejemplo de jerarquía de objetos del DOM</div>
- <p>La figura utiliza etiquetas HTML con las que ya estás familiarizado para ilustrar la relación padre/hijo entre los distintos objetos de un documento. Por ejemplo, una URL dentro de un enlace es parte del cuerpo de un documento HTML. En JavaScript, se hace referencia a ello así:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">url</span> <span class="hl_o">=</span> <span class="hl_v">document.links.linkname.href</span></code></div>
- <p>Observa cómo esto sigue la columna central hacia abajo. La primera parte, <samp>document</samp>, se refiere a las etiquetas <samp><html></samp> y <samp><body></samp>; <samp>links.linkname</samp> se refiere a la etiqueta <samp><a></samp>, y <samp>href</samp> al atributo <samp>href</samp>.</p>
- <p>Vamos a convertir la expresión en HTML y un script para leer las propiedades de un enlace. Escribe el Ejemplo 14-7 y guárdalo como <i>linktest.html</i>; luego ábrelo en tu navegador.</p>
- <p><i>Ejemplo 14-7. Leer una URL de un enlace con JavaScript</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br></pre><code><span class="hl_o"><</span><span class="hl_v">html</span><span class="hl_o">></span>
- <span class="hl_o"><</span><span class="hl_v">head</span><span class="hl_o">></span>
- <span class="hl_o"><</span><span class="hl_v">title</span><span class="hl_o">></span><span class="hl_v">Link</span> <span class="hl_v">Test</span><span class="hl_o"></</span><span class="hl_v">title</span><span class="hl_o">></span>
- <span class="hl_o"></</span><span class="hl_v">head</span><span class="hl_o">></span>
- <span class="hl_o"><</span><span class="hl_v">body</span><span class="hl_o">></span>
- <span class="hl_o"><</span><span class="hl_v">a</span> <span class="hl_v">id</span><span class="hl_o">=</span><span class="hl_s">"mylink"</span> <span class="hl_v">href</span><span class="hl_o">=</span><span class="hl_s">"http://mysite.com"</span><span class="hl_o">></span><span class="hl_v">Click</span> <span class="hl_v">me</span><span class="hl_o"></</span><span class="hl_v">a</span><span class="hl_o">><</span><span class="hl_v">br</span><span class="hl_o">></span>
- <span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">url</span> <span class="hl_o">=</span> <span class="hl_v">document.links.mylink.href</span>
- <span class="hl_f">document.write</span>(<span class="hl_v">'The</span> <span class="hl_v">URL</span> <span class="hl_k">is</span> <span class="hl_v">'</span> <span class="hl_o">+</span> <span class="hl_v">url</span>)
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_o"></</span><span class="hl_v">body</span><span class="hl_o">></span>
- <span class="hl_o"></</span><span class="hl_v">html</span><span class="hl_o">></span></code></div>
- <p>Observa la forma corta de las etiquetas <samp><script></samp>, donde he omitido el parámetro <samp>type="text/JavaScript"</samp> para ahorrarte un poco de escritura. Si lo deseas, solo con el fin de probar esto (y otros ejemplos), también podrías omitir todo lo que esté fuera de las etiquetas <samp><script></samp> y <samp></script></samp>. El resultado de este ejemplo es el siguiente:</p>
- <div class="pre"><pre>
- <span class="hl_h">Click me</span>
- The URL is http://mysite.com
- </pre></div>
- <p>La segunda línea de la salida proviene del método <samp>document.write</samp>. Observa cómo el código sigue el árbol del documento desde <samp>document</samp> hasta <samp>links</samp>, luego a <samp>mylink</samp> (el <samp>id</samp> dado al enlace) y finalmente a <samp>href</samp> (el valor de destino de la URL).</p>
- <p>También hay una forma corta que funciona igual de bien, que comienza con el valor en el atributo <samp>id</samp>: <samp>mylink.href</samp>. Entonces, puedes reemplazar esto:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">url</span> <span class="hl_o">=</span> <span class="hl_v">document.links.mylink.href</span></code></div>
- <p>con lo siguiente:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">url</span> <span class="hl_o">=</span> <span class="hl_v">mylink.href</span></code></div>
- <h3 id="explorando_javascript_otro_uso_simbolo">Otro uso del símbolo $<a href="#explorando_javascript_otro_uso_simbolo"></a></h3>
- <p>Como se mencionó anteriormente, el símbolo <samp>$</samp> está permitido en los nombres de variables y funciones de JavaScript. Debido a esto, a veces puedes encontrarte con código de aspecto extraño como este:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">url</span> <span class="hl_o">=</span> <span class="hl_f">$</span>(<span class="hl_v">'mylink'</span>)<span class="hl_v">.href</span></code></div>
- <p>Algunos programadores con iniciativa han decidido que la función <samp>getElementById</samp> es tan importante en JavaScript que han escrito una función para reemplazar la llamada <samp>$</samp>, como en jQuery (aunque jQuery usa el <samp>$</samp> para mucho más que eso ver <a href="#introduccion_jquery" onclick="c('introduccion_jquery')">Capítulo 22</a>), como se muestra en el Ejemplo 14-8.</p>
- <p><i>Ejemplo 14-8. Una función que reemplaza el método <samp>getElementById</samp></i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_k">function</span> <span class="hl_f">$</span>(<span class="hl_v">id</span>)
- {
- <span class="hl_k">return</span> <span class="hl_f">document.getElementById</span>(<span class="hl_v">id</span>)
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Por lo tanto, siempre y cuando hayas incluido la función <samp>$</samp> en tu código, una sintaxis como esta:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_f">$</span>(<span class="hl_v">'mylink'</span>)<span class="hl_v">.href</span></code></div>
- <p>puede reemplazar al siguiente código:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_f">document.getElementById</span>(<span class="hl_v">'mylink'</span>)<span class="hl_v">.href</span></code></div>
- <h3 id="explorando_javascript_utilizando_dom">Utilizando el DOM<a href="#explorando_javascript_utilizando_dom"></a></h3>
- <p>El objeto <samp>links</samp> es en realidad un array de URLs, por lo que la URL <samp>mylink</samp> en el <a href="#explorando_javascript_document_object_model" onclick="c('explorando_javascript_document_object_model')">Ejemplo 14-7</a> también puede referirse de manera segura en todos los navegadores de la siguiente manera (porque es el primer y único enlace):</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">url</span> <span class="hl_o">=</span> <span class="hl_v">document.links</span>[<span class="hl_n">0</span>]<span class="hl_v">.href</span></code></div>
- <p>Si quieres saber cuántos enlaces hay en un documento completo, puedes consultar la propiedad <samp>length</samp> del objeto <samp>links</samp> así:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">numlinks</span> <span class="hl_o">=</span> <span class="hl_v">document.links.length</span></code></div>
- <p>Puedes extraer y mostrar todos los enlaces en un documento de esta manera:</p>
- <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_k">for</span> (<span class="hl_v">j</span> <span class="hl_o">=</span> <span class="hl_n">0</span>; <span class="hl_v">j</span> <span class="hl_o"><</span> <span class="hl_v">document.links.length</span>; <span class="hl_o">++</span><span class="hl_v">j</span>)
- <span class="hl_f">document.write</span>(<span class="hl_v">document.links</span>[<span class="hl_v">j</span>]<span class="hl_v">.href</span> <span class="hl_o">+</span> <span class="hl_v">'</span><span class="hl_o"><</span><span class="hl_v">br</span><span class="hl_o">></span><span class="hl_v">'</span>)</code></div>
- <p>El <samp>length</samp> de algo es una propiedad de cada array, y de muchos objetos también. Por ejemplo, el número de elementos en el historial web de tu navegador se puede consultar así:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_f">document.write</span>(<span class="hl_v">history.length</span>)</code></div>
- <p>Para evitar que los sitios web espíen tu historial de navegación, el objeto <samp>history</samp> almacena solo el número de sitios en el array: no puedes leer ni escribir en estos valores. Pero puedes reemplazar la página actual con una del historial, si sabes en qué posición se encuentra dentro del historial. Esto puede ser muy útil en casos en los que sabes que ciertas páginas en el historial provienen de tu sitio, o simplemente desees que el navegador retroceda una o más páginas, lo cual puedes hacer con el método <samp>go</samp> del objeto <samp>history</samp>. Por ejemplo, para hacer que el navegador retroceda tres páginas, emita el siguiente comando:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_f">history.go</span>(<span class="hl_n">-3</span>)</code></div>
- <p>También puedes utilizar los siguientes métodos para avanzar o retroceder una página a la vez:</p>
- <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_f">history.back</span>()
- <span class="hl_f">history.forward</span>()</code></div>
- <p>De manera similar, puedes reemplazar la URL actualmente cargada con una de tu elección, así:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">document.location.href</span> <span class="hl_o">=</span> <span class="hl_v">'http</span><span class="hl_o">:</span><span class="hl_c">//google.com'</span></code></div>
- <p>Por supuesto, hay mucho más cosas en el DOM que leer y modificar enlaces. A medida que avances a través de los siguientes capítulos sobre JavaScript, te familiarizarás bastante con el DOM y en la manera de cómo acceder a él.</p>
- <h2 id="explorando_javascript_sobre_document_write">Sobre document.write<a href="#explorando_javascript_sobre_document_write"></a></h2>
- <p>Al enseñar programación, es necesario tener una forma rápida y fácil de mostrar los resultados de las expresiones. En PHP (por ejemplo) existen las declaraciones <samp>echo</samp> y <samp>print</samp>, que simplemente envían texto al navegador, así que es fácil. En JavaScript, sin embargo, existen las siguientes alternativas.</p>
- <h3 id="explorando_javascript_utilizando_console_log">Utilizando console.log<a href="#explorando_javascript_utilizando_console_log"></a></h3>
- <p>La función <samp>console.log</samp> mostrará en la consola del navegador actual el resultado de cualquier valor o expresión que se le pase. Se trata de un modo especial de presentación, con un marco o ventana separada de la ventana del navegador, en la cual se pueden mostrar errores y otros mensajes. Aunque es genial para programadores experimentados, no es la mejor opción para principiantes porque la salida no se parece al contenido web en el navegador.</p>
- <h3 id="explorando_javascript_utilizando_alert">Utilizando alert<a href="#explorando_javascript_utilizando_alert"></a></h3>
- <p>La función <samp>alert</samp> muestra en una ventana emergente valores o expresiones que se le pasan, la cual requiere que hagas clic en un botón para cerrarla. Claramente, esto puede volverse bastante irritante muy rápidamente, y tiene la desventaja de mostrar solo el mensaje actual, borrando los anteriores.</p>
- <h3 id="explorando_javascript_escritura_elementos">Escritura en elementos<a href="#explorando_javascript_escritura_elementos"></a></h3>
- <p>Es posible escribir directamente en el texto de un elemento HTML, lo cual es una solución bastante elegante (y la mejor para sitios web en producción), excepto que para este libro cada ejemplo requeriría que se creara dicho elemento y algunas líneas de código JavaScript para acceder a él. Esto interfiere con la enseñanza principal de un ejemplo y haría que el código pareciera excesivamente engorroso y confuso.</p>
- <h3 id="explorando_javascript_utilizando_document_write">Utilizando document.write<a href="#explorando_javascript_utilizando_document_write"></a></h3>
- <p>La función <samp>document.write</samp> escribe un valor o expresión en la ubicación actual del navegador y, por lo tanto, es la opción perfecta para mostrar resultados rápidamente. Mantiene todos los ejemplos breves y concisos, colocando la salida justo allí en el navegador junto al contenido web y el código.</p>
- <p>Sin embargo, es posible que hayas escuchado que esta función es considerada insegura por algunos desarrolladores, porque cuando la llamas después de que una página web se ha cargado completamente, sobrescribirá el documento actual. Aunque esto es correcto, no se aplica a ninguno de los ejemplos de este libro, porque todos ellos utilizan <samp>document.write</samp> de la manera en que originalmente se pretendía: como parte del proceso de creación de la página, llamándolo solo antes de que la página haya terminado de cargarse y mostrarse.</p>
- <p>No obstante, aunque uso <samp>document.write</samp> de esta manera para ejemplos simples, nunca lo utilizo en código de producción (excepto en las circunstancias más raras en las que realmente es necesario). En su lugar, casi siempre utilizo la opción anterior de escribir directamente en un elemento especialmente preparado, como en los ejemplos más complejos a partir del <a href="#utilizando_comunicaciones_asincronas" onclick="c('utilizando_comunicaciones_asincronas')">Capítulo 18</a>. (que acceden a la propiedad <samp>innerHTML</samp> de los elementos para presentar la salida del programa).</p>
- <p>Así que, por favor, recuerda que cuando veas que se llama a <samp>document.write</samp> en este libro, está ahí solo para simplificar un ejemplo, y les recomiendo que también usen la función de la misma manera para obtener resultados rápidos de prueba.</p>
- <p>Con la advertencia explicada, en el siguiente capítulo continuaremos nuestra exploración con JavaScript analizando cómo controlar el flujo del programa y escribir expresiones.</p>
- <h2 id="explorando_javascript_preguntas">Preguntas<a href="#explorando_javascript_preguntas"></a></h2>
- <ol>
- <li>¿Qué etiquetas utilizas para incluir código JavaScript?</li>
- <li>Por defecto, ¿a qué parte de un documento se enviará la salida del código JavaScript?</li>
- <li>¿Cómo puedes incluir código JavaScript desde otra fuente en tus documentos?</li>
- <li>¿Qué función de JavaScript es equivalente a <samp>echo</samp> o <samp>print</samp> de PHP?</li>
- <li>¿Cómo puedes crear un comentario en JavaScript?</li>
- <li>¿Cuál es el operador de concatenación de strings en JavaScript?</li>
- <li>¿Qué palabra clave puedes utilizar dentro de una función en JavaScript para definir una variable que tenga un alcance local?</li>
- <li>Proporciona dos métodos compatibles con múltiples navegadores para mostrar la URL asignada al enlace con un <samp>id</samp> de <samp>thislink</samp>.</li>
- <li>¿Qué dos comandos de JavaScript harán que el navegador cargue la página anterior en su array de historial?</li>
- <li>¿Qué comando de JavaScript usarías para reemplazar el documento actual con la página principal del sitio web <i>oreilly.com</i>?</li>
- </ol>
- <p>Ver <a href="#soluciones_preguntas_capitulos_respuestas_capitulo_14" onclick="c('soluciones_preguntas_capitulos_respuestas_capitulo_14')">"Respuestas del capítulo 14"</a> del <a href="#soluciones_preguntas_capitulos" onclick="c('soluciones_preguntas_capitulos')">Apéndice A</a> para comprobar las respuestas a estas preguntas.</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_cookies_sesiones_autenticacion" title="Cookies, sesiones y autenticación">Volver</label><label class="btn next" accesskey="n" for="_expresiones_control_flujo_javascript" title="Expresiones y control de flujo en JavaScript">Siguiente</label></div>
- <div class="page" rel="expresiones_control_flujo_javascript"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 15 »</li><li> Expresiones y control de flujo en JavaScript</li></ul><hr></div>
- <h1 id="expresiones_control_flujo_javascript">Expresiones y control de flujo en JavaScript<a href="#expresiones_control_flujo_javascript"></a></h1>
- <p>En el capítulo anterior, introduje los conceptos básicos de JavaScript y el DOM. Ahora es el momento de ver cómo construir expresiones complejas en JavaScript y cómo controlar el flujo del programa de tus scripts utilizando declaraciones condicionales.</p>
- <h2 id="expresiones_control_flujo_javascript_expresiones">Expresiones<a href="#expresiones_control_flujo_javascript_expresiones"></a></h2>
- <p>Las expresiones de JavaScript son muy similares a las de PHP. Como aprendiste en el <a href="#expresiones_control_flujo_php" onclick="c('expresiones_control_flujo_php')">Capítulo 4</a>, una expresión es una combinación de valores, variables, operadores y funciones que da como resultado un valor; el resultado puede ser un número, un string o un valor booleano (que se evalúa como <samp>true</samp> o <samp>false</samp>).</p>
- <p>El ejemplo 15-1 muestra algunas expresiones simples. En cada línea, imprime una letra entre <samp>a</samp> y <samp>d</samp>, seguida de dos puntos y el resultado de las expresiones. La etiqueta <samp><br></samp> está ahí para crear un salto de línea y separar la salida en cuatro líneas (recuerda que tanto <samp><br></samp> como <samp><br/></samp> son aceptables en HTML5, así que decidí utilizar el primer estilo por brevedad).</p>
- <p><i>Ejemplo 15-1. Cuatro simples expresiones booleanas</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"a: "</span> <span class="hl_o">+</span> (<span class="hl_n">42</span> <span class="hl_o">></span> <span class="hl_n">3</span>) <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- <span class="hl_f">document.write</span>(<span class="hl_s">"b: "</span> <span class="hl_o">+</span> (<span class="hl_n">91</span> <span class="hl_o"><</span> <span class="hl_n">4</span>) <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- <span class="hl_f">document.write</span>(<span class="hl_s">"c: "</span> <span class="hl_o">+</span> (<span class="hl_n">8</span> <span class="hl_o">==</span> <span class="hl_n">2</span>) <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- <span class="hl_f">document.write</span>(<span class="hl_s">"d: "</span> <span class="hl_o">+</span> (<span class="hl_n">4</span> <span class="hl_o"><</span> <span class="hl_n">17</span>) <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>La salida de este código es la siguiente:</p>
- <div class="pre"><pre>
- a: true
- b: false
- c: false
- d: true
- </pre></div>
- <p>Nota que ambas expresiones <samp>a:</samp> y <samp>d:</samp> se evalúan como <samp>true</samp>, pero <samp>b:</samp> y <samp>c:</samp> se evalúan como <samp>false</samp>. A diferencia de PHP (que imprimiría el número <samp>1</samp> y nada, respectivamente), se muestran los strings <samp>true</samp> y <samp>false</samp>.</p>
- <p>En JavaScript, cuando estás comprobando si un valor es <samp>true</samp> o <samp>false</samp>, todos los valores se evalúan como <samp>true</samp> excepto los siguientes, que se evalúan como <samp>false</samp>: el string <samp>false</samp> en sí misma, <samp>0</samp>, <samp>-0</samp>, la cadena vacía, <samp>null</samp>, <samp>undefined</samp> y <samp>NaN</samp> (Not a Number, un concepto de ingeniería informática para el resultado de una operación ilegal de punto flotante como la división entre cero).</p>
- <p>Como puedes ver, me estoy refiriendo a <samp>true</samp> y <samp>false</samp> en minúsculas. Esto se debe a que, a diferencia de PHP, estos valores <i>deben estar</i> en minúsculas en JavaScript. Por lo tanto, solo se mostrará la primera de las dos siguientes sentencias, imprimiendo la palabra en minúsculas <samp>true</samp>, porque la segunda causará un error de '<samp>TRUE</samp>' no está definido:</p>
- <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_k">if</span> (<span class="hl_n">1</span> <span class="hl_o">==</span> <span class="hl_t">true</span>) <span class="hl_f">document.write</span>(<span class="hl_v">'true'</span>) <span class="hl_c">// True</span>
- <span class="hl_k">if</span> (<span class="hl_n">1</span> <span class="hl_o">==</span> <span class="hl_t">TRUE</span>) <span class="hl_f">document.write</span>(<span class="hl_v">'TRUE'</span>) <span class="hl_c">// Will cause an error</span></code></div>
- <div class="info"><p><span>Nota</span></p><p>Recuerda que cualquier fragmento de código que desees escribir y probar por ti mismo en un archivo HTML, debe estar encerrado dentro de las etiquetas <samp><script></samp> y <samp></script></samp>.</p></div>
- <h2 id="expresiones_control_flujo_javascript_literales_variables">Literales y variables<a href="#expresiones_control_flujo_javascript_literales_variables"></a></h2>
- <p>La forma más simple de una expresión es una <i>literal</i>, que significa algo que se evalúa a sí mismo, como el número <samp>22</samp> o el string <samp>Presiona Enter</samp>. Una expresión también podría ser una variable, que evalúa el valor que se le ha asignado. Ambos son tipos de expresiones, porque devuelven un valor.</p>
- <p>El Ejemplo 15-2 muestra tres literales diferentes y dos variables, todas ellas devuelven valores, aunque de diferentes tipos.</p>
- <p><i>Ejemplo 15-2. Cinco tipos de literales</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">myname</span> <span class="hl_o">=</span> <span class="hl_s">"Peter"</span>
- <span class="hl_v">myage</span> <span class="hl_o">=</span> <span class="hl_n">24</span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"a: "</span> <span class="hl_o">+</span> <span class="hl_n">42</span> <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>) <span class="hl_c">// Numeric literal</span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"b: "</span> <span class="hl_o">+</span> <span class="hl_s">"Hi"</span> <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>) <span class="hl_c">// String literal</span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"c: "</span> <span class="hl_o">+</span> <span class="hl_t">true</span> <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>) <span class="hl_c">// Boolean literal</span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"d: "</span> <span class="hl_o">+</span> <span class="hl_v">myname</span> <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>) <span class="hl_c">// String variable</span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"e: "</span> <span class="hl_o">+</span> <span class="hl_v">myage</span> <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>) <span class="hl_c">// Numeric variable</span>
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Y, como es de esperar, puedes ver el valor de retorno de todo esto en la siguiente salida:</p>
- <div class="pre"><pre>
- a: 42
- b: Hi
- c: true
- d: Peter
- e: 24
- </pre></div>
- <p>Los operadores te permiten crear expresiones más complejas que se evalúan en resultados útiles. Cuando combinas asignaciones o estructuras de control de flujo con expresiones, el resultado es una <i>sentencia</i>.</p>
- <p>El ejemplo 15-3 muestra uno de cada uno. El primero asigna el resultado de la expresión <samp>366 - day_number</samp> a la variable <samp>days_to_new_year</samp>, y el segundo muestra un mensaje amigable solo si la expresión <samp>days_to_new_year < 30</samp> se evalúa como <samp>true</samp>.</p>
- <p><i>Ejemplo 15-3. Dos sentencias simples de JavaScript</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">day_number</span> <span class="hl_o">=</span> <span class="hl_n">127</span> <span class="hl_c">// For example</span>
- <span class="hl_v">days_to_new_year</span> <span class="hl_o">=</span> <span class="hl_n">366</span> <span class="hl_o">-</span> <span class="hl_v">day_number</span>
- <span class="hl_k">if</span> (<span class="hl_v">days_to_new_year</span> <span class="hl_o"><</span> <span class="hl_n">30</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"It's nearly New Year"</span>)
- <span class="hl_k">else</span> <span class="hl_f">document.write</span>(<span class="hl_s">"It's a long time to go"</span>)
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <h2 id="expresiones_control_flujo_javascript_operadores">Operadores<a href="#expresiones_control_flujo_javascript_operadores"></a></h2>
- <p>JavaScript ofrece muchos operadores potentes, que van desde operadores aritméticos, de string y lógicos hasta de asignación, comparación, etc. (ver la Tabla 15-1).</p>
- <p><i>Tabla 15-1. Tipos de operadores de JavaScript</i></p>
- <div class="table"><table>
- <tr>
- <th>Operador</th>
- <th>Descripción</th>
- <th>Ejemplo</th>
- </tr>
- <tr>
- <td>Aritmético</td>
- <td>Matemáticas básicas</td>
- <td><samp>a + b</samp></td>
- </tr>
- <tr>
- <td>Array</td>
- <td>Manipulación de arrays</td>
- <td><samp>a + b</samp></td>
- </tr>
- <tr>
- <td>Asignación</td>
- <td>Asignar valores</td>
- <td><samp>a = b + 23</samp></td>
- </tr>
- <tr>
- <td>Operador a nivel de bit</td>
- <td>Manipula bits en bytes</td>
- <td><samp>12 ^ 9</samp></td>
- </tr>
- <tr>
- <td>Comparación</td>
- <td>Comparar dos valores </td>
- <td><samp>a < b</samp></td>
- </tr>
- <tr>
- <td>Incremento/decremento</td>
- <td>Sumar o restar en uno </td>
- <td><samp>a++</samp></td>
- </tr>
- <tr>
- <td>Lógico</td>
- <td>Booleano</td>
- <td><samp>a && b</samp></td>
- </tr>
- <tr>
- <td>String</td>
- <td>Concatenación</td>
- <td><samp>a + 'string'</samp></td>
- </tr>
- </table></div>
- <p>Cada operador admite un número diferente de operandos:</p>
- <ul>
- <li>Los <i>operadores unarios</i>, como el incremento (<samp>a++</samp>) o la negación (<samp>-a</samp>), admiten un solo operando.</li>
- <li>Los <i>operadores binarios</i>, que representan la mayoría de los operadores de JavaScript (incluyendo la suma, la resta, la multiplicación y la división) admiten dos operandos.</li>
- <li>El único <i>operador ternario</i>, que adopta la forma <samp>? x : y</samp>, requiere tres operandos. Es una declaración <samp>if</samp> concisa de una sola línea que elige entre dos expresiones en función de una tercera.</li>
- </ul>
- <h3 id="expresiones_control_flujo_javascript_precedencia_operadores">Precedencia de operadores<a href="#expresiones_control_flujo_javascript_precedencia_operadores"></a></h3>
- <p>Al igual que PHP, JavaScript utiliza la precedencia de operadores, en la que algunos operadores de una expresión se procesan antes que otros y, por lo tanto, se evalúan primero. La Tabla 15-2 enumera los operadores de JavaScript y sus precedencias.</p>
- <p><i>Tabla 15-2. Precedencia de los operadores de JavaScript (de mayor a menor)</i></p>
- <div class="table"><table>
- <tr>
- <th>Operador(es)</th>
- <th>Tipo(s)</th>
- </tr>
- <tr>
- <td><samp>()</samp> <samp>[]</samp> <samp>.</samp></td>
- <td>Paréntesis, llamada, y miembro</td>
- </tr>
- <tr>
- <td><samp>++</samp> <samp>--</samp></td>
- <td>Incremento/decremento</td>
- </tr>
- <tr>
- <td><samp>+</samp> <samp>-</samp> <samp>~</samp> <samp>!</samp></td>
- <td>Unario, operador a nivel de bit y lógico</td>
- </tr>
- <tr>
- <td><samp>*</samp> <samp>/</samp> <samp>%</samp></td>
- <td>Aritmético</td>
- </tr>
- <tr>
- <td><samp>+</samp> <samp>-</samp></td>
- <td>Aritmético y string</td>
- </tr>
- <tr>
- <td><samp><<</samp> <samp>>></samp> <samp>>>></samp></td>
- <td>Operador a nivel de bit</td>
- </tr>
- <tr>
- <td><samp><</samp> <samp>></samp> <samp><=</samp> <samp>>=</samp></td>
- <td>Comparación</td>
- </tr>
- <tr>
- <td><samp>==</samp> <samp>!=</samp> <samp>===</samp> <samp>!==</samp></td>
- <td>Comparación</td>
- </tr>
- <tr>
- <td><samp>&</samp> <samp>^</samp> <samp>|</samp></td>
- <td>Operador a nivel de bit</td>
- </tr>
- <tr>
- <td><samp>&&</samp></td>
- <td>Lógico</td>
- </tr>
- <tr>
- <td><samp>||</samp></td>
- <td>Lógico</td>
- </tr>
- <tr>
- <td><samp>?:</samp></td>
- <td>Ternario</td>
- </tr>
- <tr>
- <td><samp>=</samp> <samp>+=</samp> <samp>-=</samp> <samp>*=</samp> <samp>/=</samp> <samp>%=</samp></td>
- <td>Asignación</td>
- </tr>
- <tr>
- <td><samp><<=</samp> <samp>>>=</samp> <samp>>>>=</samp> <samp>&=</samp> <samp>^=</samp> <samp>|=</samp></td>
- <td>Asignación</td>
- </tr>
- <tr>
- <td><samp>,</samp></td>
- <td>Separador</td>
- </tr>
- </table></div>
- <h3 id="expresiones_control_flujo_javascript_asociatividad">Asociatividad<a href="#expresiones_control_flujo_javascript_asociatividad"></a></h3>
- <p>La mayoría de los operadores en JavaScript se procesan de izquierda a derecha en una ecuación. Pero algunos operadores en su lugar requieren un procesamiento de derecha a izquierda. La dirección del procesamiento se denomina <i>asociatividad del operador</i>.</p>
- <p>Esta asociatividad se vuelve importante cuando no fuerzas explícitamente la precedencia (lo cual deberías hacer siempre, por cierto, porque hace que el código sea más legible y menos propenso a errores). Por ejemplo, observe los siguientes operadores de asignación, mediante los cuales se establecen tres variables con en el valor <samp>0</samp>:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">level</span> <span class="hl_o">=</span> <span class="hl_v">score</span> <span class="hl_o">=</span> <span class="hl_v">time</span> <span class="hl_o">=</span> <span class="hl_n">0</span></code></div>
- <p>Esta asignación múltiple solo es posible porque la parte más a la derecha de la expresión se evalúa primero y luego el procesamiento continúa de derecha a izquierda. La Tabla 15-3 enumera los operadores de JavaScript y su asociatividad.</p>
- <p><i>Tabla 15-3. Operadores y asociatividad</i></p>
- <div class="table"><table>
- <tr>
- <th>Operador</th>
- <th>Descripción</th>
- <th>Asociatividad</th>
- </tr>
- <tr>
- <td><samp>++</samp> <samp>--</samp></td>
- <td>Incremento y decremento</td>
- <td>Ninguna</td>
- </tr>
- <tr>
- <td><samp>new</samp></td>
- <td>Crea un nuevo objecto</td>
- <td>Derecha</td>
- </tr>
- <tr>
- <td><samp>+</samp> <samp>-</samp> <samp>~</samp> <samp>!</samp></td>
- <td>Unario y operador a nivel de bit</td>
- <td>Derecha</td>
- </tr>
- <tr>
- <td><samp>?:</samp></td>
- <td>Ternario</td>
- <td>Derecha</td>
- </tr>
- <tr>
- <td><samp>=</samp> <samp>*=</samp> <samp>/=</samp> <samp>%=</samp> <samp>+=</samp> <samp>-=</samp></td>
- <td>Asignación</td>
- <td>Derecha</td>
- </tr>
- <tr>
- <td><samp><<=</samp> <samp>>>=</samp> <samp>>>>=</samp> <samp>&=</samp> <samp>^=</samp> <samp>|=</samp></td>
- <td>Asignación</td>
- <td>Derecha</td>
- </tr>
- <tr>
- <td><samp>,</samp></td>
- <td>Separador</td>
- <td>Izquierda</td>
- </tr>
- <tr>
- <td><samp>+</samp> <samp>-</samp> <samp>*</samp> <samp>/</samp> <samp>%</samp></td>
- <td>Aritmético</td>
- <td>Izquierda</td>
- </tr>
- <tr>
- <td><samp><<</samp> <samp>>></samp> <samp>>>></samp></td>
- <td>Operador a nivel de bit</td>
- <td>Izquierda</td>
- </tr>
- <tr>
- <td><samp><</samp> <samp><=</samp> <samp>></samp> <samp>>=</samp> <samp>==</samp> <samp>!=</samp> <samp>===</samp> <samp>!=</samp></td>
- <td>Aritmético</td>
- <td>Izquierda</td>
- </tr>
- </table></div>
- <h2 id="expresiones_control_flujo_javascript_operadores_relacionales">Operadores relacionales<a href="#expresiones_control_flujo_javascript_operadores_relacionales"></a></h2>
- <p>Los <i>operadores relacionales</i> comprueban dos operandos y devuelven un resultado booleano de <samp>true</samp> o <samp>false</samp>. Existen tres tipos de operadores relacionales: de <i>igualdad</i>, <i>comparación</i> y <i>lógico</i>.</p>
- <h3 id="expresiones_control_flujo_javascript_operadores_igualdad">Operadores de igualdad<a href="#expresiones_control_flujo_javascript_operadores_igualdad"></a></h3>
- <p>El operador de igualdad es <samp>==</samp> (que no debe confundirse con el operador de asignación <samp>=</samp>). En el Ejemplo 15-4, la primera instrucción asigna un valor, y la segunda comprueba si son iguales. Tal como está, no se imprimirá nada, porque a <samp>month</samp> se le asigna el valor del string <samp>July</samp>, y por lo tanto la comprobación de que tenga el valor de <samp>October</samp> fallará.</p>
- <p><i>Ejemplo 15-4. Asignación de un valor y prueba de igualdad</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">month</span> <span class="hl_o">=</span> <span class="hl_s">"July"</span>
- <span class="hl_k">if</span> (<span class="hl_v">month</span> <span class="hl_o">==</span> <span class="hl_s">"October"</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"It's the Fall"</span>)
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Si los dos operandos de una expresión de igualdad son de diferentes tipos, JavaScript los convertirá al tipo dato más adecuado. Por ejemplo, cualquier string compuesto completamente por números será convertido a números cada vez que se compare con un número. En el Ejemplo 15-5, <samp>a</samp> y <samp>b</samp> son dos valores diferentes (uno es un número y el otro es un string), y por lo tanto, normalmente esperaríamos que ninguna de las sentencias <samp>if</samp> produzca un resultado.</p>
- <p><i>Ejemplo 15-5. Los operadores de igualdad e identidad</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">a</span> <span class="hl_o">=</span> <span class="hl_n">3</span><span class="hl_v">.1415927</span>
- <span class="hl_v">b</span> <span class="hl_o">=</span> <span class="hl_s">"3.1415927"</span>
- <span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o">==</span> <span class="hl_v">b</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"1"</span>)
- <span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o">===</span> <span class="hl_v">b</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"2"</span>)
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Sin embargo, si ejecutas el ejemplo, verás que imprime el número <samp>1</samp>, lo que significa que la primera sentencia <samp>if</samp> se evaluó como <samp>true</samp>. Esto se debe a que el valor del string de <samp>b</samp> se convirtió temporalmente a un número, y por lo tanto ambas mitades de la ecuación tenían un valor numérico de <samp>3.1415927</samp>.</p>
- <p>En contraste, la segunda sentencia <samp>if</samp> utiliza el <i>operador de identidad</i>, tres signos de igual uno a lado del otro, lo que evita que JavaScript convierta automáticamente los tipos. Por lo tanto, <samp>a</samp> y <samp>b</samp> son diferentes, por lo que no se muestra ningún resultado.</p>
- <p>Al igual que al forzar la precedencia de los operadores, siempre que tengas dudas sobre cómo JavaScript convertirá los tipos de datos de los operandos, puedes utilizar el operador de identidad para desactivar este comportamiento.</p>
- <h3 id="expresiones_control_flujo_javascript_operadores_comparacion">Operadores de comparación<a href="#expresiones_control_flujo_javascript_operadores_comparacion"></a></h3>
- <p>Utilizando operadores de comparación, puedes probar más que solo igualdad y desigualdad. JavaScript también te ofrece <samp>></samp> (es mayor que), <samp><</samp> (es menor que), <samp>>=</samp> (es mayor o igual que) y <samp><=</samp> (es menor o igual que) con los que puedes jugar. El Ejemplo 15-6 muestra como puedes utilizar estos operadores.</p>
- <p><i>Ejemplo 15-6. Los cuatro operadores de comparación</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">a</span> <span class="hl_o">=</span> <span class="hl_n">7</span>; <span class="hl_v">b</span> <span class="hl_o">=</span> <span class="hl_n">11</span>
- <span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o">></span> <span class="hl_v">b</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"a is greater than b<br>"</span>)
- <span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o"><</span> <span class="hl_v">b</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"a is less than b<br>"</span>)
- <span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o">>=</span> <span class="hl_v">b</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"a is greater than or equal to b<br>"</span>)
- <span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o"><=</span> <span class="hl_v">b</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"a is less than or equal to b<br>"</span>)
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>En este ejemplo, donde <samp>a</samp> es <samp>7</samp> y <samp>b</samp> es <samp>11</samp>, se produce la siguiente salida (porque <samp>7</samp> es menor que <samp>11</samp> y también menor o igual a <samp>11</samp>):</p>
- <div class="pre"><pre>
- a is less than b
- a is less than or equal to b
- </pre></div>
- <h3 id="expresiones_control_flujo_javascript_operadores_logicos">Operadores lógicos<a href="#expresiones_control_flujo_javascript_operadores_logicos"></a></h3>
- <p>Los operadores lógicos producen resultados verdaderos o falsos y también se conocen como <i>operadores booleanos</i>. Hay tres de ellos en JavaScript (ver la Tabla 15-4).</p>
- <p><i>Tabla 15-4. Operadores lógicos de JavaScript</i></p>
- <div class="table"><table>
- <tr>
- <th>Operador lógico</th>
- <th>Descripción</th>
- </tr>
- <tr>
- <td><samp>&&</samp> <i>(and)</i></td>
- <td><samp>true</samp> si ambos operandos son <samp>true</samp></td>
- </tr>
- <tr>
- <td><samp>||</samp> <i>(or)</i></td>
- <td><samp>true</samp> si cualquiera de los dos operandos es <samp>true</samp></td>
- </tr>
- <tr>
- <td><samp>!</samp> <i>(not)</i></td>
- <td><samp>true</samp> si el operando es <samp>false</samp>, o <samp>false</samp> si el operando es <samp>true</samp></td>
- </tr>
- </table></div>
- <p>Puedes ver cómo se pueden utilizar en el Ejemplo 15-7, que produce <samp>0</samp>, <samp>1</samp> y <samp>true</samp>.</p>
- <p><i>Ejemplo 15-7. Los operadores lógicos en uso</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">a</span> <span class="hl_o">=</span> <span class="hl_n">1</span>; <span class="hl_v">b</span> <span class="hl_o">=</span> <span class="hl_n">0</span>
- <span class="hl_f">document.write</span>(<span class="hl_v">(a</span> <span class="hl_o">&&</span> <span class="hl_v">b</span>) <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- <span class="hl_f">document.write</span>(<span class="hl_v">(a</span> <span class="hl_o">||</span> <span class="hl_v">b</span>) <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- <span class="hl_f">document.write</span>(<span class="hl_v">(</span> <span class="hl_o">!</span><span class="hl_v">b</span> ) <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>La sentencia <samp>&&</samp> requiere que ambos operandos sean <samp>true</samp> para devolver un valor <samp>true</samp>, la sentencia <samp>||</samp> será <samp>true</samp> si cualquiera de los valores es <samp>true</samp>, y la tercera sentencia realiza un <samp>NOT</samp> en el valor de <samp>b</samp>, convirtiéndolo de <samp>0</samp> a un valor <samp>true</samp>.</p>
- <p>El operador <samp>||</samp> puede causar problemas involuntarios, porque el segundo operando no se evaluará si el primero se evalúa como <samp>true</samp>. En el Ejemplo 15-8, la función <samp>getnext</samp> nunca se llamará si <samp>finished</samp> tiene un valor de <samp>1</samp> (estos son puramente ejemplos, y la acción de <samp>getnext</samp> es irrelevante para esta explicación, solo piénselo como una función que hace <i>algo</i> cuando se llama).</p>
- <p><i>Ejemplo 15-8. Una sentencia utilizando el operador <samp>||</samp></i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_k">if</span> (<span class="hl_v">finished</span> <span class="hl_o">==</span> <span class="hl_n">1</span> <span class="hl_o">||</span> <span class="hl_f">getnext</span>() <span class="hl_o">==</span> <span class="hl_n">1</span>) <span class="hl_v">done</span> <span class="hl_o">=</span> <span class="hl_n">1</span>
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Si <i>necesitas</i> que <samp>getnext</samp> se llame en cada sentencia <samp>if</samp>, debes reescribir el código como se muestra en el Ejemplo 15-9.</p>
- <p><i>Ejemplo 15-9. La sentencia <samp>if</samp>...<samp>or</samp> modificada para asegurar la llamada a <samp>getnext</samp></i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">gn</span> <span class="hl_o">=</span> <span class="hl_f">getnext</span>()
- <span class="hl_k">if</span> (<span class="hl_v">finished</span> <span class="hl_o">==</span> <span class="hl_n">1</span> <span class="hl_o">||</span> <span class="hl_v">gn</span> <span class="hl_o">==</span> <span class="hl_n">1</span>) <span class="hl_v">done</span> <span class="hl_o">=</span> <span class="hl_n">1</span>;
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>En este caso, el código en la función <samp>getnext</samp> se ejecutará y su valor de retorno se almacenará en <samp>gn</samp> antes de la sentencia <samp>if</samp>.</p>
- <p>La Tabla 15-5 muestra todas las posibles variaciones del uso de los operadores lógicos. También debes tener en cuenta que <samp>!true</samp> es igual a <samp>false</samp> y <samp>!false</samp> es igual a <samp>true</samp>.</p>
- <p><i>Tabla 15-5. Todas las posibles expresiones lógicas</i></p>
- <div class="table"><table>
- <tr>
- <th colspan="2">Entrada
- <th colspan="2">Operadores y resultados
- </tr>
- <tr>
- <th>a</th>
- <th>b</th>
- <th>&&</th>
- <th>||</th>
- </tr>
- <tr>
- <td><samp>true</samp></td>
- <td><samp>true</samp></td>
- <td><samp>true</samp></td>
- <td><samp>true</samp></td>
- </tr>
- <tr>
- <td><samp>true</samp></td>
- <td><samp>false</samp></td>
- <td><samp>false</samp></td>
- <td><samp>true</samp></td>
- </tr>
- <tr>
- <td><samp>false</samp></td>
- <td><samp>true</samp></td>
- <td><samp>false</samp></td>
- <td><samp>true</samp></td>
- </tr>
- <tr>
- <td><samp>false</samp></td>
- <td><samp>false</samp></td>
- <td><samp>false</samp></td>
- <td><samp>false</samp></td>
- </tr>
- </table></div>
- <h2 id="expresiones_control_flujo_javascript_declaracion_with">Declaración with<a href="#expresiones_control_flujo_javascript_declaracion_with"></a></h2>
- <p>La declaración <samp>with</samp> no la has visto en los capítulos anteriores sobre PHP, porque es exclusiva de JavaScript, y también es una que, aunque necesitas conocerla, no deberías utilizarla. Con él (si me entiendes), puedes simplificar algunos tipos de declaraciones de JavaScript reduciendo muchas referencias a un objeto a una solo referencia. Se asume que las referencias a las propiedades y métodos dentro del bloque <samp>with</samp> se aplican a ese objeto.</p>
- <p>Por ejemplo, considerando el código del Ejemplo 15-10, en el cual la función <samp>document.write</samp> nunca hace referencia a la variable <samp>string</samp> por su nombre.</p>
- <p><i>Ejemplo 15-10. Utilizando la declaración <samp>with</samp></i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">string</span> <span class="hl_o">=</span> <span class="hl_s">"The quick brown fox jumps over the lazy dog"</span>
- <span class="hl_t">with</span> (<span class="hl_v">string</span>)
- {
- <span class="hl_f">document.write</span>(<span class="hl_s">"The string is "</span> <span class="hl_o">+</span> <span class="hl_v">length</span> <span class="hl_o">+</span> <span class="hl_s">" characters<br>"</span>)
- <span class="hl_f">document.write</span>(<span class="hl_s">"In upper case it's: "</span> <span class="hl_o">+</span> <span class="hl_f">toUpperCase</span>())
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Aunque <samp>string</samp> nunca es referenciada directamente mediante <samp>document.write</samp>, este código consigue mostrar lo siguiente:</p>
- <div class="pre"><pre>
- The string is 43 characters
- In upper case it's: THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
- </pre></div>
- <p>Así es como funciona el código: el intérprete de JavaScript reconoce que la propiedad <samp>length</samp> y el método <samp>toUpperCase</samp> deben aplicarse en algún objeto. Como son independientes, el intérprete asume que se aplican al objeto <samp>string</samp> especificado en la declaración <samp>with</samp>.</p>
- <div class="info"><p><span>Nota</span></p><p>Utilizar <samp>with</samp> ya no se recomienda y ahora está prohibido en el modo estricto de ECMAScript 5. La alternativa recomendada es asignar a una variable temporal el objeto cuyas propiedades deseas acceder. Asegúrate de tener esto en cuenta para poder actualizarlo (si es necesario) cuando lo veas en el código de otras personas, pero no lo uses tú mismo.</p></div>
- <h2 id="expresiones_control_flujo_javascript_utilizando_onerror">Utilizando onerror<a href="#expresiones_control_flujo_javascript_utilizando_onerror"></a></h2>
- <p>Utilizando el evento <samp>onerror</samp> o una combinación de las palabras reservadas <samp>try</samp> y <samp>catch</samp>, puedes capturar errores de JavaScript y manejarlos tú mismo.</p>
- <p>Los <i>eventos</i> son acciones que puede detectar JavaScript. Cada elemento de una página web tiene ciertos eventos que pueden activar funciones de JavaScript. Por ejemplo, el evento <samp>onclick</samp> de un elemento button se puede configurar para llamar a una función y hacer que se ejecute cada vez que un usuario haga clic en el botón.</p>
- <p><i>Ejemplo 15-11. Un script que emplea el evento <samp>onerror</samp></i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">onerror</span> <span class="hl_o">=</span> <span class="hl_v">errorHandler</span>
- <span class="hl_f">document.writ</span>(<span class="hl_s">"Welcome to this website"</span>) <span class="hl_c">// Deliberate error</span>
- <span class="hl_k">function</span> <span class="hl_f">errorHandler</span>(<span class="hl_v">message</span>, <span class="hl_v">url</span>, <span class="hl_v">line</span>)
- {
- <span class="hl_v">out</span> <span class="hl_o">=</span> <span class="hl_s">"Sorry, an error was encountered.\n\n"</span>;
- <span class="hl_v">out</span> <span class="hl_o">+=</span> <span class="hl_s">"Error: "</span> <span class="hl_o">+</span> <span class="hl_v">message</span> <span class="hl_o">+</span> <span class="hl_s">"\n"</span>;
- <span class="hl_v">out</span> <span class="hl_o">+=</span> <span class="hl_s">"URL: "</span> <span class="hl_o">+</span> <span class="hl_v">url</span> <span class="hl_o">+</span> <span class="hl_s">"\n"</span>;
- <span class="hl_v">out</span> <span class="hl_o">+=</span> <span class="hl_s">"Line: "</span> <span class="hl_o">+</span> <span class="hl_v">line</span> <span class="hl_o">+</span> <span class="hl_s">"\n\n"</span>;
- <span class="hl_v">out</span> <span class="hl_o">+=</span> <span class="hl_s">"Click OK to continue.\n\n"</span>;
- <span class="hl_f">alert</span>(<span class="hl_v">out</span>);
- <span class="hl_k">return</span> <span class="hl_t">true</span>;
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>La primera línea de este script indica al evento de error que use la nueva función <samp>errorHandler</samp> a partir de ahora. Esta función toma tres parámetros: un mensaje (<samp>message</samp>), una URL (<samp>url</samp>) y un número de línea (<samp>line</samp>), por lo que es sencillo mostrar todo esto en una ventana emergente de alerta.</p>
- <p>Luego, para probar la nueva función, colocamos intencionalmente un error de sintaxis en el código con una llamada a <samp>document.writ</samp> en lugar de <samp>document.write</samp> (falta la <samp>e</samp> al final). La Figura 15-1 muestra el resultado de ejecutar este script en un navegador. Usar <samp>onerror</samp> de esta manera también puede ser bastante útil durante el proceso de depuración.</p>
- <div class="imgc"><img class="imgc" width="602" height="350" alt="figura_15-1.png" src="data:image/png;base64,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sW//od//739w7Ohopbv7T/6f//f8rduAQChBBEhOcn5aNwQCQs8LlPJN6ubnqgMD3UdHx0M/N3F86n1/fcv3b79jzbp1hqi7q4vJ/I/vuv8fPvEPO3fu/PjHP35w3/63/f47vvClr3/sYx+sNtIooYHBXBpzYxaqWdumCVChWBlZvfpb3/32/Q88cO1znv3P3/oXP/TWrjtvYmrqFa94xY03vmb37t1Hjhx53/ved8/dd1vn3vKWtwwODu7bt++yyy675JJLbr/99g996EPvfve7t2zd+tOf3fuZ2772jnf+URh6DNGTUKs28jnfGM1ROAZGm9DLK8mr1TmduHxYmJycXLly9Vy10TfQe/DgQS9QqUmQ4ytffeP1119/9TOv/uhHP/qVr3x5dm726quvEVz88zf/Za5afXT/vutueOmrX/mqPXv2vOMP/5ATdQ0MvO61r939/OcLxt/whjcIIY4eOhQG4WWXX/7KV75s9ZrzHnz4kW9961thkL/xxtc6i8a4XJiL08RXErjzPc+aZhTNCcX8QBjtEA05g0RHjxyOGo0tmzetHB5OkuSfvva1//UXf4GMSc5//21ve9kNNzSiaGx09M1vecvYsVHG+UtfcsMNL3vZqlUrK8XKzMx0o9q468d3ffKTn3zGlVc++1nPev/fvP/8zZvvuPPO8bFjv/O7v0dM/t2Hb2noyd3Pf8EbXvO2vr6V3/rulz/96Y8c2FcrFVe99BW73vB//MZPf3Lfn77nf1cqnYTzb37zb0nhxbEdPTp98803cyFv+cD/et/7/uaO7/8gTfWzd+268abXnL9lvXOUJo5LphRHB1Y7o938/LyUslgqGq21NmmaeJ7fqEfV+bq1NvTCRr16bH7sC7fd9slPfFIwfv75W17+spdddMklnLHDR4685sZX+2EYNxpvvPnml9/w0nq10d87oIRXnat++pOfve1LX5qdnbv4kst/601v3HHRBdW5xJItFvLGWCCHjHmesroZNepC8cBXRlvhIVNuZn7OC4NKOV9vVuerUT5fTLVpNOMv/dNXPvKRj9Tr9ShufPnLXx4cHEw0CZWbm639yZ+8Z+PGTffdd9+ee+654ILtr3rNjZdddtlSqkAGDgtMCScXcC94pxYKtBf9OcGt1H49hXYQoC1mTz78DA4803GfeMJnP+6ZTPisxVL7dbkJ/1oWqg1c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5cpE6K3xVqeXeoKCywrGdVpvua029dI9ue/yWJV1YieiynUiJQV3E47urqA8Aqex14cPNkuFc351dW00Go/Hk7qptja3lJZVVa2tXUNEaw0zjycTY+wLL1y8dvXKwuLyZDxSIplMxq28R0QhQCy0IELnnBDxlrNS0ljTNA1NyZJIFBBJCCJi76OgDgJM+80ED4TAjHkrt9Z5F0AKIqFUonVijXXWxsRjFJzYgRsQAACpmExM3fzOb3/kB37gBz/wQz+sVPJP/89/9uSTT913/4OBuSiqd77zne9977t/+7d+97d/5yOrVzeL4ca/+Of/8vu//wfve/j+axubn/zkp1736BuAaf++Az/1Uz995+13fP2rX99c23jve97/9re//SMf+Xef/dwXfu5//98eef2jf/7FL/7Kv/7Xf/GVr773fe8DotuOn/jH/+gfbWxtNsYkWeZ8UEmqkuRt73jHww/e9ZEP/9tnn33mR3/0xz74wQ9ubQ1/5md+5q1vf8fqtTVr7aVLl37+53+u1+/+0Ad+WOk7f/Zn/0el9f/yj//JE48/8d3f87YkSfO8LYQkEszsvFPqJrnDW63MeM3++pkU8vixo9baxx9/oiyru+66I+aGqqoxjel2ugxcFuX2YPDss89XZfXI6x7et3ffzR49MyipT526/Sd/8ifTJE2z9O/8nb97+NBh5/yrEax40ThDhKjBTUTOeyGUTlKhdDkyhR03VpcOKMmFlEoGkvlgcuVTf/bl/nxPJve2su4999/+gfp9JL742JNXfN73OFfWGkSiEu2ZQxDgAgc2Llhvy9IgVpnm3vxc1sqNq5QKjMFYizvqZOyjGjIqpfI873a7aZp67yeTydbWVlEUkTnJU7XXaYYmerhYhgEAIYQ9Kyvvete7yqL4iy996cc/+MFHX/967/36+nqa5ogoSET4brerepHX4mnTO43i6NL+7StnJagLp0fHD6Rlodqt5bJsunmC0jUTKwUrAaljxY5CUzUGVerD7puMLwkWb/RQY64rSCkABHMwxhRFsbGxUdf1tO8dMCBb54bDIYDqdEGpREkFON196n1vApYmWgf01jkkIimNBbCcpcnKytJ4UgUId9xx6vvedbt3UDr4/37z3x04tB8Z1tc29N/9wIP3dt/4XXfN95f/5I+/eqVeXZifW5jvOctFCUhCCGWdI3JZnrlq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350YW3fWnj1PuuCCv3r/+01oHjg0pYweHR65/nvXdzvdW2+6eXLThqc86cm/8prXHj546P77H7j11tv+85vffO7unXu2bPrPv/nrN974QwLZt+/2N//Wm3dt23rRRU972397z+233/6bb3jDv37uczs3b77mmu+Njw4dPjKVF3k1iT7xD3//9KdetPfMXX/6Z396+x13fOxvP3bJJRdv2bRp57atr37NLx18YPorX/nqC1/0n667/s44prvvmXrWpZd+65pvX/3tq579rGdsXr/u99/5jgMH9r/vfX/+vvf9ubW2P3kAAIEQ1anFbz6C8UiWReWCA8tdmwSA3ElrUYgE7U7XmFDpILdFs93uFkU7z1pZOpfnTZvN2dT/a9huhu6mO2695+A97bzzql959WWvvKzVbc7OzZx1zlmv+ZXXiIbrb/phK22PTU40i+4dB/en2s25rFGkDZs2bDpn02aRNm3aLFIdBUEU5nlhnW11WlEcB1HU6XS6eVaa2cugOEEWYlG86v2mj0KspfA+nVhqb+EBb+L8l4iIMDw8snFyMorjmdkiwTSpJY3ZxtjYxH/7nd8+uP/GK/7pU//4j5/asX3XH/3Rn//u23/nuc95+rGjxa/+6q+dsWNnEicitloLR4bqwDx95MhrX/urz3/ec/7v5z77dx//eFKNX/e61/7756881mgePHjkf17+N9/+zrVnbNvyxte/4SUvfuHLX365ofy33/a222+/bd89D9y67+Cx440//pP/fsmTz//Kl6/8l8994fwnnT++cWz75CbH7uj01B+8991/+Sd/nM3O/eVf/68vf/Xrrztv++vf+puTZ2555pNfdPEFLyyKtiJMwjAP8jzP773nvosuvvCa7137r//271/4whcfc9bjPvCBv/7t33rdO9/xridecMHM7Mz7P/jBM88669nPfs7I2Nhff+jD995792te/Usf+vCH/uOHP7z8Ix/Z8KlPnLf3XFfY49Mz27ZsvfXm/T/84Q1v+vX/1znT6eb33Hfv2Pj45KbJer0yPFwbHx0JtPrsFVf8+xe+8A+f+eQFFz7+1lvvfde73jVcr7/hDa950xvfcs655/7VX/5xtVKrVxO29vfe9a53veN3ifBDH778qquuesL554+MjWzeurnVbZ/3uPOOHz/2nj989/57D3zrm9/8/fe8e/8992zfvfMv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adax0wOD/X/6px/85Cc/ed3XvhFGdMbG09/+9ncNDHQIS3DOdu/Z5/v+gQP7//mLX4zCiBDOv+D8C176kmf27enr63vzVX/k++rpJ3eeun59b0/XZz/7V//nn/73tV+uJERZpNJgoWDq7C0vevw3j1zzN3//1S9+JQ78s7ee/cEPf4AUMgvS6VR+ip//4vPe+c73QRjvOjC58pyV5UC3dXckkolvXnfjxDPyD696+bJ+KeNSKpno6e0Owh1hRYUiSGdSftlnDLp6s2ds2viXn/mLjRvPeMc73/mqV73iX79141/8r7943RVX5Kenx0YPfvffv3vd17+upDr5tNPOOefsmdHJkZGRQr541113vfKil3ue57hs997927Y9ufnsswYH+uMoIhUzRNKU9BLnnLNlerb8Zx/9aK6zBwDWnXzyZZddBsD/x//488//78/df989oNR5557z0j/4g02bzvjBD2697utf33fgwIr1JyXT6YnJKctxevr6uBBSyyAIgGFUqAS+X8zPnnXOlsted9kPbr31u//5HzIOu3s7rrzyir7u3ptvuunmm74ryWrLdl504cuzWdHe3vnMMzsve83ln//Hv5spFBhXmWT63vt+9Z1v37xz985ce/sFF160+UVnP/30Mz/8wQ9v/taN09MFJcG2rZ7uXBCGw8PDd91xx6mnnkqEu3fv+qe/+7u9e/d5yfS5511w8vpTbrnl/zLmeF5a65poSKABCHQtYt9RrmiPnu/8/s6iZPzu6waHNUU0IQECseUrVz9VyI9PzbTl2pO2SHBgMo4TKQCLCAhQgTIWONKimJMGnc6khJTc97PpNk48iiqe6yZSmXIcO1bWBaCwMhNUhMusZKcf+cpiMaIEQcRBcaY4SI4aRSpVrJRjpVasXiW14pZQpCMpiXOjiTIbh3V9KermUSFaaESLHT77qK/ZTTwtk3sT6+YOpLVGBOjp7fnQh95/8skrNClN4rRTXrSs61TP6Ypi7O0dvPLKqwVzLSdx4UWv6O5Zlp+J0mnPdXLtnUnbZTP5cjrtagAurE1nnnXWizYDkZv01p60pr29c53j5q7ufPL0pzkTjsVz7X22Y11w4UtQlTUFYeHgEzt27JoFxngul7vyystefPaLwqLPdDS0vF8R04pc5ABWd1f/G9/41jUrTraAwM5Ax8r+3g4vE1515RvHTiv1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zgMHDuzcuTMKgo6OjrVr1z7+5FOptuyefSOAMDw00NHeadsWktq/b6/nuv19fZYliFTgV8LAz+Vyjm09cP9/jefzbe3dUuktm88OgvDRR59Iefb0dB4JOYN161YPD/crFUZBCZEI1M4d23fvHROWq5TauHGjUmrHjh1jY2Ou6w4ODk5OTgKAlLK3t9fzvPHx8ampKSllKpXq7+/v7OycmJh47LHHLMuybXtgYKC/v58xdv/997uuu2LFCs/zfvrTn3Z2dp500klxHO/fv9+yrEQi8cQTTxihKp1On3baaUqpp5566oknnvB9v7+/f926dVHoC4vrOJyeKRwcnyhVgkhiItu2fMWKKAq3b99pWbyYn7EYnbRm5epVK4Ni3vcrz+w8cHB0Uim1cuXy/v7+KIx37tx54MA+rVU6neru7hwcGiCi++67b/nw8LJlyyYnJ55+amd//0Aqldq+fbvWempqSinV3t6+bNmyMAx37ty5a9euRx99tK2tra+vb//+/QcOHCgWi5lMpq+vr6Oj45577unt7d29e/fGjRs9z3vggQcqlQoA5HK5wcFB27ZHRkYOHjzoOM7u3bs552EYOo5jFhMtNWkLLzC02OEJC6oFOQMAYw7DlUKOVhTGySSL4tkonnBSVJndjXwikwEVUWmWMKuE5WuYDeJnbLd/aupAyusXaVAStCImOGeCNFvKZN/wwiiKjJjY0dGxYsWKdevWXXfddSOjoy992cuU1tlsdufOnV+99tqHHnywLds2PDx8wQUXXHzxxTt37vzoRz96xsaNpVLpwx/+8BuvftOLtpw7XZjVWq9cueJDH3j/SevW/Oyuu2655Tt/cO65va+5xK+EgrNUMimEAEblcvHHP/5/P7j9TiuZnJkpXH/9v64aXvkvX/rS2Mh4IuEF5YqU4bvf9SdXXP5arYIgKHoJq1jM//Snd976w7vGxqey2ew111yTTqff8573rFmzZv/+/X/5l3/5yU9+0nVdIcRFF1101llnff/737/99tuFEO3t7RdeeOHrXve68fHxP/uzP1u9enWpVLrhhhsKhQLn/MEHHxwbG7vyyisTicRNN93U3t7+lre8RQhx6623ZrPZjRs33nDDDbt27SKiVatWfeELX9izZ8/HPvYx27Y555dffnl3d3dbJimAGMDu3Tu/8+/f+/Ujj1cCufUPXvKWP/mTX91739/97RcuueRV9959d+SXXvIH533qf34sk3T37N77F//rUxr4TKHwspe+9Oqr3zgyMnLTTTc+/sSjcRwtW9Z35ZWXd3d3PvTQg5/61Ke++tWvHDi4L5FIv/a1l959992ZTOYjH/nIihUrJiYmJiYmOjs73/rWt46Pj//iF78oFAo33nhjoVB49atffeutt37rW98yGtGvfOUrbW1t73vf+84///ynnnrqv//3/25Z1vXXX//kk08KIS699NJXvvKVvu/fc889//Zv/9be3t7f32/bdhzHExMTnPNEIpHL5Xzfb+lLW3jBoMUOT1DULSmr4aKIgxYqglQiUZydBWZVgslUOg7Dg0Gwu61NTY6NPvPMk2FUFs5k30BPV/eyQunprvZsHMSViu+5kttCcKFBatJc8KWC0kgppZTZbNbzvMnJSaVUb2/v2972tjvuvOPaa6999PHHr7jiis6Ozhu/daPv+1/84heHBoe+8Y1v3HLLLcv6lsVxnGtrW79+/Tve8Y6pqalsNrt6zdorrroqjuQ3vvH1fL5QmC3+5pFHuzq7Vq1e7TqOJTxSSisZhRVZlh2dna959SUXXHLJ2GT+g+//4LYntq1evuKZ7c90d/X+zTWf9cv+l770xemp6WJxtq0tobUo5Kdvv+2HN934nXe976MrVqz59a9/fd11133yk5/cvXv3qaeeevPNN3ueNzQ05HneVVddtWnTpr//+7+fmJj453/+5+XLl//nf/7nz3/+83PPPRcRp6ent27d+qY3vUlKmcvlHMdZvXr1Aw88IITYv39/HMc7d+7cs2cP57xQKKxdu/a00077xCc+sX///qmpqU984hMPPPBAPp9njP3TP/2TYRKWZTGk0A8q5dn/+I/vKqU+8fFPBFLffc99d9xxx+o1azVox3Fuv/22n//0rjdfffVVl1+yccP6D7z//S86+6X/7f0ftOyE7VhBUPn6168jgr/92y+sWbPqW9+64Zs3XJ9KJ5LJpGXxyamJVatWtefaOjvb9+/fZzhcFEUf+MAHcrncNddcs3///ssvv3xkZGTHjh0f+MAHhoeH77333h/96Efvfe97N2zYcPfdd1977bX/8A//UKlUCoXCl770pd7e3re+9a0nn3zyG9/4xnw+v2PHjieffHJycvK222770Ic+tH79+ltvvfVnP/uZEMII0GNjY0EQtHhhCy8ktNjhiQckAk1oYlQyMIagVc8KCwGSCS8sT1oi9JLx7gPPaBhzXPbLhw/c9n+3uzZkOvmWl+CKlcPFylR+dm+bd3K5GKCebuvKWQk7lFKp0LYZkSbdZC4zO2pBELiuCwBmF+2ss87q7u0578Uv/utrrvn2t7/9ile8ojBb2LJly4YNp2qlTj/99HK5rLUOw5AAXvva10ZR1NHRsWvXrjPOPHPdulWTU/nR0dHtzzwzODjgOu55L37xmjVr/MAnW4R+wBimUsnKbKE0M/Pgrx/4qy/8vVKQn5wZGBiYmpxNt+Xe/OY/7upalludSiYTu3fvyefz3T05YWmtfEuIXbt2f+ovPt3V3TMyMnL++ed3dHRks9mrr756fHy8u7v74MGD5513Xl9fXxRFU1NTyWSyv78/l8tt3LixUCg8/fTTRu5Zt25dV1cXAExNTUVRtGrVqrGxsV27dm3btm3t2rVPP/20YYeMsY6Ojp07d37/+9+/7rrrisViR0dHEARbt279+Mc//ulPf/rjH/94LpebmZlpSydTbVmtwijwb7319v/3k58jF9xJvO6KK5JJ76STN5x62ulT+cLy5cPLlnVNjo/JaNXIwQNbt25t72hTits2KxSmx8bGV65c0dPdE4bhpk2bKn4pkUgigu/7s4VCf1//7j17i6Wi7werV68GgFe96lWnnHJKe3v7xo0bS6VSHMf9/f2lUqmnp8fzvCiK7rnnnh07dkgpOedbt2417b/44osHBgbGxsZmZmZuuOGG73znO3Ecr127tqOjI47js88++/LLL0fEmZmZ2267LY7j0dHRRCLRUpa28MJDix2e+GBADLVAsh2LB2VItFkT+yfaeymQk0F00E34nptEhdOjGPvWapEA6TIh23Ji9zO7s/1QLgVKFty0a3ucIWqIEY2nYBMDfSGE53mjo6OVSiWVShnhCRF7enoGBwZfdNZZu3fvDoKgUi6Pj4/n8/m2bDaVSimlojjq6OwcHx87cODA2pNOevzRx04+6RTHdiemSgN93Re94qLHntj25JPb8tNTw8sHk8kkKKllzBkoLYUtgOPtt9/21Wu/euedd3Ev+Y63veOp7U+vWrnWtp09+/blC7NxEJGE3sG+dCJVzhfCqBiERd/3z9x01pe/+g2pmWVZqVRqenq6Uqns2rXrnHPOGR8fz+VyQ0NDuVyuUqkopTo7O40qeHZ29tFHH12zZk1/f79Sav369c8884zneblcDhGHh4f7+/t//etfHzx48NJLL02lUsVicd++fblcrqen53vf+97dd9/905/+9Mknn/zWt74lhOjt7X3ggQduueWWt7zlLevXr//c5z7num6ZB9FKAAAgAElEQVRhamJyfCw/M/vu97zrjW9+i5PItHd1T+Znb/n3/5zJz7ius6yvZ3txKqiUe3p67r///nQmXS6XZSwJ2MxMZXp61vcDsxEoLDY2NrZz547h4cFl/X2Oa/X0dpf9Yr4w09XVTqT37t3b29s7OTnpOE4URTt37sxms+YBzc7Ojo2NpdPpfD5/zjnnfPvb3zYsXGs9PT2dz+cdx5mampqenmaMfeYzn3n9619vNMZKqW984xsTExMjIyOe5/m+H8cxY6y9vX1iYqKvr89YlraYYgsvGByxZWkrJPpxw6Khpfkbe8YAUwAwwSGK4rgik0kHqTIzvdeyyqmUEgJ6u3IDPYOWHhZyMOG0cwDX1amkmJ6cikMlVVTxS77vMwa2A4p8TXHT52nsM9PpdC6XY4yNj49v37797rvvnp6aOnDwwPjY2MzMzPDQ8PLlK3bt2jU6OlooFO688859+/Yt61vGGRscHLJtmwH09HSPjIwwwTVSTLB589kT4+O/+tW9w8PDp27YkE6li6VSoVTM5to92x7bt29mYiKTSmWyGUB46umnxycnpJRC2F7C6+rq7uvN5trT7e0djm0HQahJt3Xkunv72rOZsbF93/zmN3O5nAkpZ4LM9ff3+77f3t7u+/6ePXu01olEIpvN7t6927gKbN++3bbtiy66qFAolMvlxx9/vLu7e3h4GACUUuVy+eyzz/7lL39ZKpVSqdTKlSt37do1PT19+umnE9HBgwczmYzxy/zZz342ODg4Pj4uhHjTm9500UUXDQ4Ojo6OxnGUSiZXLV8+ONR33333PPzww0rr8cmpZDLZ09dru06us3NkdHxmepq0Zhw3nbFxaHDgl/fcs3fvOKJIJpPr1q7dvHnznj17fvbzn83Ozu7Zu7dYLF1wwYWWEK7r3XvvvbZlHzx4sFyujIyMGpFUKeX7fltbm23blmUNDw/btl0qlYwwNzAwUKlU/uZv/sYIiIg4MDDQ0dGRTCYTicSaNWvWrl37ta997e677x4YGDBxGHp7e/P5/EMP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v/jFL/7pn/7piy++KKXcunXrhg0bMMadnZ0HDx5cu3atEGLWrFnFYvGWW26hlK5atSqfz3/1q1/dsmVLuVz++c9/vnPnznQ6bVnW9u3bjxw5AiFUERchtGPHjvvvv18IMXv27JGRESFErVaTUv7zP3/l+PHjPT29XV1djz322NNPP10sFl588cUNGzZYlrVkyZKFixY1NTYeHzv+1FNPFAqTvu8HQfDMM88ePz5eKpafeebZu++6h2Da1dW1ft36O+64Q/Bkxozeffv2Prd2bbFY2r179w9+8IOGhosuaAEAACAASURBVMzQ0FA2m33ggQcopffee99zz63r7enNZrMbN27csGFDKpXu6uya1t01MDA7k8mEYch5QimZnJx8+OGHpZSvvvrqY489tnHDT0ul0u7du1999bXAD1988aWtW7dms9l8Pr9n956tW7dqmtbd1d3S0rJkyZKZ/dOjKEIQGYbhed66det37Nhx6NChTZs2NTU1LVmypKOjI0kS1WXEGB87duyRRx55+eWXzzzzTADAt771rZGRkWq1+nd/93cAgPnz53d1dT700EP79+9vbGzMZLP5xsZZs2Y1N7coNizG2DDM2bNnn3X2sraOjs0vb962fVsQh4wx07QGBme3t7f39fX1z+hvamzctXPnzh07kyiOomh0ZHTTpk3Hx8aiOH7yyad++sLzZy1bhjC64+47jx09liTJww899LOf/ay5sXnJ0FB//4ze3t6OtvZsJtvb29PZ3rZn955169cBCSrl8i233MKSZOWKlbNmzbrr7rv3798/Nja+ft36Z595NpfPDg4O7NmzZ926dZVKxTRNQohaO76NLK3fNSjtoBPPFZ35nXtj+f8F6suuOl4PCKEatAiCoFAoUEoZY5lMpre3lzFmGCf6W4ODg1deeeWsWbN2795t2/aqVauGhoZeeumlrVu3fv7znx8aGqpUKjfeeOOOHTtmzZoVBMHixYsvvfTSjo4O27az2SylFCHEGKtWq4cPH2aMfexjH2tszL388svf/s43hRC+769f/5Mbb7xxzZrLIURf+MIXRkdHjx8/vm7dunKl/D9u/MjAwCzOOePB0RGCMKSUxHHMuTBNC0EMIYIQT5/ef9HFl6TTzt/+7echFhdfsrqrq/ub37hz12sHJyfHX3tt++NPPHbWWUsOHQJHjw0fHzt69dVX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7e1tamravHnzjh07PvKRjyxduvS2224bHx/fsGHDxRdfDAFwMpltL7905x13b3zhxUSIVavOe9cVV87on7l27dpHHnnENIxXtr5sGPoNf/C+q99zpeB8z+49773hg7phFYvFf/7nf54zZ86Xv/zlvXv3VqvVa665plarbdiwIY7j6dOn33TTTVu3bv2nf/onlareeOON7373u3Vdv+aaa2bMmLFv375PfOITy5cvV7QgIcShQ4e+9KUvbdmypamp6b3vfW9bW9tf//VfHzx48LOf/ey8efP+5m/+5uqrr/7Qhz703e9+lzF26aWXtre3P/roo6+99try5cvf9773DQwMKE4NY6xUKql02fO8usRMHe9k1MNhHadBUSGUh7vqG+Xz+cnJSUPXozBM26abSkkpy+WSbTtcgh/96KGfbPxpU0v73jLSOgAAIABJREFUinNXfeYznznBT9E0XdMppZVqYGiWEGL46LASG1N5p+qE7dy5s6Oj48/+7JMbNmx86OGH5s2f/6lPfvKTn/yLm266aXBwkBDygQ984LrrrjvvvPO6urqHh4c3b978/ve/f/Xq1T/84Q8ffPBH1157ba1WO3jwUBRFbkqbmCw9++wzn/x//wFj6jrO8fHjjz/++OVrrmlva0+SKoBQSOnVauvWb3xl27b/8ZGPNje3bNmy5c477pjR19fc1HTbbbchhL74xS/mcrm0m8IYX7B69axZs3zfv/f739+2bdu0nh6EkCoPEkKGh4ebm5s//vGPP//88/fdd9+HPvQhAMBXvvKVpqamz33uc3Ec33nnnUpN+9ixY8uWLVu9erUyT+7r67vvvvuuv/76BQsWqDzy1ltv/bd/+7eGhga/Wrnt1tscJ/X//OmfaKZ13w8fePbHP87lG48cObJp06YLV6/+3N987sknHr/j3+5YtfKctO186s8+df3115+9fMXGjRs3bdrU19d35MiRWq123XXXrVix4lvf+tbExMS73/3upUuXvvLKK3feeecVV1yxaNGibdu23Xrrrf39/dOnTz9y5MjMmTP/4i/+oqurKwxDTdMUxXTr1q2XXXbZzTffvHHjxqeffvrmm2/+4Ac/+LWvfe3mm2/u6+tTbJqvfvWrf/RHf4QQ+va3v53NZq+77rrLL7/8wQcfXL9+fV9fn5RS8VqV6lCpVFJTOsospY463iGQJ+n0EMF6OKzjNCiRUmWeoCbkJicnIYSaplupFJOC+xFjPNvQABEEki9bdtaq81fv2LVn585dH/zwjRjjOI6AlFEQlMtlyzSlkIODc/73//4/s2YOYEwIJgjjOE503ejunrbwzEVnL1tWLpf379+bSWdFB9R1vb29fdasWZqmEUK6urr6+voUoXHVqlUrVqzo6uoEQG7btt33/csuu+yiiy5yU9bo8eF9+3d3dHROm9aZTmujx8cOHT5sWWZHR6uu62Hsu46jUT0IgpGREV3TFy1amG9sbm1tO3zkyLZt2+KZM9etW/fYY491d3fbtj05MWFZ9vatW++9996dO3fuP3jATaUU91LXddUka2pqUhaPTU1NTz/99M6dO7PZ7LZt2/7qr/5qaGgoDMPNmzcXi8Vdu3YdO3asWq0yxmbOnKnkSQkhCxcunDlzJgBg3759ixcv7u7uDoKgWigcPz66dMmy5cuX65a9ddv24aMj4+NjuVyuv7//3FXnLlq4aHzs+JZNL02Mjx85cPCnGzceHhl//ImnJicn8/n8ggULAADLly9fsWKFotL09/cvXrx45syZW7ZsKRaLl156aSaT6e7ufv75519++eWWlpampqaFCxc2NTU1NzerSK+IVL29vatXr54/f365XH722WdTqZTSnh0YGOjt7S0UCul0+txzz121ahXn/Ec/+lFfX9+8efMopS+99JIy4UIIKSUwtbpS4qvKx+q3fY3XUcebo35p1nEaFDmWMaYsllzXLRaL8+bN84KgUi5bLc3FYqlYrLR3AcO03FQ639i4cOGZ/TNnff++Hz7+6KPvufoaQ6dh6GME0q5lUeD7Jcu0F5650DRtACQA0Kt5EsAk4YZuTpvW25hvbsq3TkxUSqUK1XQIkGIhTtF5DEOD8IThXzqdRghXKhV1w502rVvTSKVSFVx+/977Lrrwsqbm1MREwbYzDz90+4qVK3p6O+I4Cfy4Wq2lUxYhOEkYxrS9vdNxXDV0r+yQFItE+SIJIY8OD9911125XO7a6659+pln1WQIACCOYzWh77rumWeeqTTtFNWlra3NcZympiaMcTqdTqVSAIDe3t7e3t6tW7c+8MADTz311FVXXaUYm0rdNI7j22677ZxzzkmlUr5X9X3f83zXdR3XFRBOmzYtCONyuTI+PkYp7enpARA0NTUCIEulEuDCdd3/dfPN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2hijlNJaK6WiKBqPx3me93q9brcrpWSMKaVGoxEAGGMefvjhT37yk9dff/273/2uLB9GUTAej0aj0ff27CmyB19x5ct37ty5detZUsqsyIIgiKLYEhLZsiyV0sbUCFAUxZEjR6699tqiKJRSMzMzYRhqrZ08M8bCMLz88sufeOKJr3zlK+9617s2bdp0//3333rrrX/0R3+0a9euxx577H3ve9/9998/PT09MTFhrZ2fn7/zzjs557/+679+wQUXdDqd0Wj0L//yL7t37/7ABz5wzjnnfP/73//Qhz60Z8+edevWOY/r29/+dqXUe9/73vvuu+8XfuEXDh06srLc/7Vfe8eGDRtuueVTLk8nTRMAWLNmzW//9n9+6KE9b3nLWx59dP9ll102HA6jMHRGtkuLlUJ+64Fvf+tb3375y69Yv379nj177r///pe85ELOhTG202kePHhkcqqntfa5pR7P6cL7Zzyn4MwprXVRFJ1OZzweDwaD2dnZsiyLotBaB0EQx7Fb2dUtuIzZdruNiPv27VtcXLzhhhtcYKwsC2tt2mh8+lOfWl5e3rnzxevWTRttrLWBlM1mk3M5HuVam9FoZK1pt1tVVRVFccEFF4zHY875W9/61izLPvnJT87NzYVhWNd1nufGGACQUroyDBfei6Jodna22+2ef/75GzZsWFlZcWZukiRpmg6Hw263u23btjiO3blUVRWG4dlnn93tdjds2JAkiYsmJkly/vnnd7vdNWvWrF271tWZaKVGo5HW2lV3cM7TNHHhw5e+9KVxHLdarSiKXL1HnueNRiMIAnc90el0ms3m/Pz84cNze/fuveOOO/r9/tq1axuNhrWWc6GUruvaZ9F4PKcXL4fPOc796Gqx6QSn+6CeFpds6bQNAJIk2blz58tf/vKbbrpp//79w+HQFWCMRqPhcFgURVEUQRC0Wi1r7WAwCIKg1+t997vflTJQSoVh6Kr3LrzwwvF4vHv3g0Eg0zTK81wpzRjbuHG20QxvvfVWKWUURUePLn7lK18FgOnpaSFEFEWtVuu9733vI488cvPNNx88eHD1pXOViMPhMI5jzvny8nKWZVmW1XW9uLhYVdX09HS32x2NRsvLyy6VNMsyZ8VyzoUQaZqGYTg/P9/v94uicLtzBqjLdnECWRTFcDjMsixJkiiKiYCIVlZWiqIcDMa9Xi9N06KopqenO52Oq2Kcnp6eX1ioqqqqKneQ8wvzWuuXvnTX+9///r/927/9yEc+cu211w4Gg+985zuj0aiq1Nq1a/OiWK2S9Hg8//3xztLnFiIy1pz8p4u3ncZD+vE4NyARSSnH43Ecx1EUXXXVVTfeeOPHPvax6667rtFo9Pt9ANi+fbtzXTpRRMSJiYk4jjdv3vzRj3601WrlxXB6eqrb7Rit3/CGNy4u9O+7775OJ33FK64IIgZExpizNp913ovOu+P222fXbV47M3vo0OGbbrrp537+jVNTU66g3lq7cePGt7/97X//939/6623vvGNb+x2uy546arsH3/88SAI1q9fv379+q9//etLS0tFUTz88MP/8T/+R1cUIaUMguCCCy74+te//oUvfOGSSy7hnM/Ozm7atClJkk996lMXX3zx0aNHFxcXL7/8cpeD6tzFTtsYY3Ecd3vdA489ceDAAee2dS8LAFRV5Wo2nNz2er08zzZs2DA/P7979+6yyvfv33/++ed32p2tW7c+8MCDN9988xve8AatdZIk1sK73vXuP/rDP37ta18FwNHbhx7PacXLoecUnCfQuRkRcTAYGGN27dr1gQ984Pd///d/+7d/2xizdevW66+/fseOHbOzs1EUrV27djAYtNttALj44ouNMe9///vf9ra3EdDv/d57L7vs0unpaWP0O9/59o9//JaPfewfLdmfv/71o/FSXRdbt21tNtpVBX/wB38w6I9b7fb/+X/87y+/4mUTExNHjx7dtm2by3S95pprBoPBHXfcEcfxdddd12w267reuXPn7t27P/zhD19//fU33HDD+973vne84x1CiOnp6Xe+853btm0DgDzPAaDT6bzhDW9YWlr69Kc//bGPfWz79u2/+qu/+pKXvOTNb37z7/3e7912221BELz73e/esmVLlmVbtmzJ89zVCG7dujVJEsbYpS+7dM+evR/+8Iff/OY3T05Orlu3zlrb7XanpqaklI1G4/DhQ71ebzQabdgwe+2119x445/cfvvnp2cmGWNTU1OtVut1r3tdnhef/vRnPv7xjzebzauvvvpVr3rNz/zMa2dmZhYXV+I4ThtpVVVE5ie8Qx6P57kB/+rmOy996S6rzaN7H3rtqy5PAg4WOHNtFlddN/hU38Uz/hJ21bZb7XhijNFa13WtlFJKuehXlmVZlmdF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"></div>
- <div class="fig">Figura 15-1. Uso del evento onerror con un pop-up del método alert</div>
- <h2 id="expresiones_control_flujo_javascript_utilizando_try_catch">Utilizando try...catch<a href="#expresiones_control_flujo_javascript_utilizando_try_catch"></a></h2>
- <p>Las palabras clave <samp>try</samp> y <samp>catch</samp> son más estándar y más flexibles que la técnica <samp>onerror</samp> mostrada en la sección anterior. Estas palabras clave te permiten detectar errores en una sección de código determinado, en lugar de hacerlo para todos los scripts de un documento. Sin embargo, no detectan errores de sintaxis, para los cuales necesitas <samp>onerror</samp>.</p>
- <p>El constructor <samp>try...catch</samp> es compatible con todos los navegadores principales y es útil cuando quieres detectar una cierta condición que sabes que podría ocurrir en una parte específica de tu código.</p>
- <p>Por ejemplo, en el <a href="#funciones_objetos_arrays_javascript" onclick="c('funciones_objetos_arrays_javascript')">Capítulo 18</a> exploraremos las técnicas de Ajax que utilizan el objeto <samp>XMLHttpRequest</samp>. Por lo tanto, podemos utilizar <samp>try</samp> y <samp>catch</samp> para detectar este caso y hacer algo más si la función no está disponible. El ejemplo 15-12 muestra cómo hacerlo.</p>
- <p><i>Ejemplo 15-12. Detección de un error con <samp>try</samp> y <samp>catch</samp></i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_k">try</span>
- {
- <span class="hl_v">request</span> <span class="hl_o">=</span> <span class="hl_t">new</span> <span class="hl_f">XMLHttpRequest</span>()
- }
- <span class="hl_k">catch</span> (<span class="hl_v">err</span>)
- {
- <span class="hl_c">// Use a different method to create an XMLHttpRequest object</span>
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>También hay otra palabra reservada asociada con <samp>try</samp> y <samp>catch</samp> llamada <samp>finally</samp> que siempre se ejecuta, independientemente de si ocurre un error en la cláusula <samp>try</samp>. Para usarlo, simplemente añade algo como las siguientes declaraciones después de una declaración <samp>catch</samp>:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br></pre><code><span class="hl_v">finally</span>
- {
- <span class="hl_f">alert</span>(<span class="hl_s">"The 'try' clause was encountered"</span>)
- }</code></div>
- <h2 id="expresiones_control_flujo_javascript_condicionales">Condicionales<a href="#expresiones_control_flujo_javascript_condicionales"></a></h2>
- <p>Las condicionales alteran el flujo del programa. Te permiten hacer preguntas sobre determinadas cosas y responder a las respuestas que obtienes de diferentes maneras. Hay tres tipos de condicionales no iterativos: la declaración <samp>if</samp>, la declaración <samp>switch</samp> y el operador <samp>?</samp>.</p>
- <h3 id="expresiones_control_flujo_javascript_declaracion_if">Declaración if<a href="#expresiones_control_flujo_javascript_declaracion_if"></a></h3>
- <p>Varios ejemplos en este capítulo ya han utilizado declaraciones <samp>if</samp>. El código dentro de tal declaración se ejecuta solo si la expresión dada se evalúa como <samp>true</samp>. Las sentencias <samp>if</samp> multilínea requieren llaves alrededor de ellas, pero al igual que en PHP, puedes omitir las llaves para una sola sentencia, aunque a menudo es una buena idea usarlas de todos modos, especialmente cuando escribes código en el que el número de acciones dentro de una declaración <samp>if</samp> podría cambiar a medida que avanza el desarrollo. Por lo tanto, las siguientes sentencias son válidas:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br></pre><code><span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o">></span> <span class="hl_n">100</span>)
- {
- <span class="hl_v">b</span> <span class="hl_o">=</span> <span class="hl_n">2</span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"a is greater than 100"</span>)
- }
- <span class="hl_k">if</span> (<span class="hl_v">b</span> <span class="hl_o">==</span> <span class="hl_n">10</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"b is equal to 10"</span>)</code></div>
- <h3 id="expresiones_control_flujo_javascript_declaracion_else">Declaración else<a href="#expresiones_control_flujo_javascript_declaracion_else"></a></h3>
- <p>Cuando no se ha cumplido una condición, puedes ejecutar una alternativa utilizando una declaración <samp>else</samp>, así:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br></pre><code><span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o">></span> <span class="hl_n">100</span>)
- {
- <span class="hl_f">document.write</span>(<span class="hl_s">"a is greater than 100"</span>)
- }
- <span class="hl_k">else</span>
- {
- <span class="hl_f">document.write</span>(<span class="hl_s">"a is less than or equal to 100"</span>)
- }</code></div>
- <p>A diferencia de PHP, JavaScript no tiene una declaración <samp>elseif</samp>, pero eso no es un problema porque puedes utilizar un <samp>else</samp> seguido de otro <samp>if</samp> para formar el equivalente de una declaración <samp>elseif</samp>, así:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br></pre><code><span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o">></span> <span class="hl_n">100</span>)
- {
- <span class="hl_f">document.write</span>(<span class="hl_s">"a is greater than 100"</span>)
- }
- <span class="hl_k">else</span> <span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o"><</span> <span class="hl_n">100</span>)
- {
- <span class="hl_f">document.write</span>(<span class="hl_s">"a is less than 100"</span>)
- }
- <span class="hl_k">else</span>
- {
- <span class="hl_f">document.write</span>(<span class="hl_s">"a is equal to 100"</span>)
- }</code></div>
- <p>Como puedes ver, es posible utilizar otro <samp>else</samp> después del nuevo <samp>if</samp>, al que podría seguir igualmente otra declaración <samp>if</samp>, y así sucesivamente. Aunque he mostrado llaves en las declaraciones, dado que cada una es una sola línea, el ejemplo anterior podría escribirse de la siguiente manera:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br></pre><code><span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o">></span> <span class="hl_n">100</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"a is greater than 100"</span>)
- <span class="hl_k">else</span> <span class="hl_k">if</span> (<span class="hl_v">a</span> <span class="hl_o"><</span> <span class="hl_n">100</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"a is less than 100"</span>)
- <span class="hl_k">else</span> <span class="hl_f">document.write</span>(<span class="hl_s">"a is equal to 100"</span>)</code></div>
- <h3 id="expresiones_control_flujo_javascript_declaracion_switch">Declaración switch<a href="#expresiones_control_flujo_javascript_declaracion_switch"></a></h3>
- <p>La declaración <samp>switch</samp> es útil cuando una variable o el resultado de una expresión puede tener múltiples valores y quieres realizar una función diferente para cada valor.</p>
- <p>Por ejemplo, el siguiente código emplea el sistema de menú en PHP que construimos en el <a href="#expresiones_control_flujo_php" onclick="c('expresiones_control_flujo_php')">Capítulo 4</a> y lo convierte a JavaScript. Funciona pasando un único string al código del menú principal de acuerdo con lo que el usuario solicite. Digamos que las opciones son Inicio (<samp>Home</samp>), Acerca de (<samp>About</samp>), Noticias (<samp>News</samp>), Iniciar sesión (<samp>Login</samp>) y Enlaces (<samp>Links</samp>), y establecemos la variable <samp>page</samp> (página) en una de ellas en función de la entrada del usuario.</p>
- <p>El código escrito para esto utilizando <samp>if...else if...</samp> podría verse como en el Ejemplo 15-13.</p>
- <p><i>Ejemplo 15-13. Una declaración <samp>if...else if...</samp> de varias líneas</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_k">if</span> (<span class="hl_v">page</span> <span class="hl_o">==</span> <span class="hl_s">"Home"</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"You selected Home"</span>)
- <span class="hl_k">else</span> <span class="hl_k">if</span> (<span class="hl_v">page</span> <span class="hl_o">==</span> <span class="hl_s">"About"</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"You selected About"</span>)
- <span class="hl_k">else</span> <span class="hl_k">if</span> (<span class="hl_v">page</span> <span class="hl_o">==</span> <span class="hl_s">"News"</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"You selected News"</span>)
- <span class="hl_k">else</span> <span class="hl_k">if</span> (<span class="hl_v">page</span> <span class="hl_o">==</span> <span class="hl_s">"Login"</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"You selected Login"</span>)
- <span class="hl_k">else</span> <span class="hl_k">if</span> (<span class="hl_v">page</span> <span class="hl_o">==</span> <span class="hl_s">"Links"</span>) <span class="hl_f">document.write</span>(<span class="hl_s">"You selected Links"</span>)
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Pero usando una estructura <samp>switch</samp>, el código podría verse como en el Ejemplo 15-14.</p>
- <p><i>Ejemplo 15-14. Una estructura <samp>switch</samp></i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_k">switch</span> (<span class="hl_v">page</span>)
- {
- <span class="hl_k">case</span> <span class="hl_s">"Home"</span><span class="hl_o">:</span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"You selected Home"</span>)
- <span class="hl_k">break</span>
- <span class="hl_k">case</span> <span class="hl_s">"About"</span><span class="hl_o">:</span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"You selected About"</span>)
- <span class="hl_k">break</span>
- <span class="hl_k">case</span> <span class="hl_s">"News"</span><span class="hl_o">:</span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"You selected News"</span>)
- <span class="hl_k">break</span>
- <span class="hl_k">case</span> <span class="hl_s">"Login"</span><span class="hl_o">:</span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"You selected Login"</span>)
- <span class="hl_k">break</span>
- <span class="hl_k">case</span> <span class="hl_s">"Links"</span><span class="hl_o">:</span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"You selected Links"</span>)
- <span class="hl_k">break</span>
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>La variable <samp>page</samp> se menciona solo una vez al inicio de la declaración <samp>switch</samp>. Después, el comando <samp>case</samp> comprueba las coincidencias. Cuando ocurre una coincidencia, se ejecuta la declaración condicional correspondiente. Por supuesto, un programa real tendría código aquí para mostrar o saltar a una página, en lugar de simplemente decirle al usuario lo que ha seleccionado.</p>
- <div class="info"><p><span>Nota</span></p><p>
- <p>También puedes proporcionar múltiples casos para una sola acción. Por ejemplo:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br></pre><code><span class="hl_k">switch</span> (<span class="hl_v">heroName</span>)
- {
- <span class="hl_k">case</span> <span class="hl_s">"Superman"</span><span class="hl_o">:</span>
- <span class="hl_k">case</span> <span class="hl_s">"Batman"</span><span class="hl_o">:</span>
- <span class="hl_k">case</span> <span class="hl_s">"Wonder Woman"</span><span class="hl_o">:</span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"Justice League"</span>)
- <span class="hl_k">break</span>
- <span class="hl_k">case</span> <span class="hl_s">"Iron Man"</span><span class="hl_o">:</span>
- <span class="hl_k">case</span> <span class="hl_s">"Captain America"</span><span class="hl_o">:</span>
- <span class="hl_k">case</span> <span class="hl_s">"Spiderman"</span><span class="hl_o">:</span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"The Avengers"</span>)
- <span class="hl_k">break</span>
- }</code></div>
- </p></div>
- <h4 id="expresiones_control_flujo_javascript_ruptura">Ruptura<a href="#expresiones_control_flujo_javascript_ruptura"></a></h4>
- <p>Como puedes ver en el Ejemplo 15-14, al igual que con PHP, el comando <samp>break</samp> permite que tu código salga de la declaración <samp>switch</samp> una vez que se ha cumplido una condición. Recuerda incluir el <samp>break</samp> a menos que quieras seguir ejecutando las sentencias del siguiente <samp>case</samp>.</p>
- <h4 id="expresiones_control_flujo_javascript_accion_por_defecto">Acción por defecto<a href="#expresiones_control_flujo_javascript_accion_por_defecto"></a></h4>
- <p>Cuando no se cumple ninguna condición, puedes especificar una acción por defecto para una declaración <samp>switch</samp> utilizando la palabra reserveda <samp>default</samp>. El Ejemplo 15-15 muestra un fragmento de código que podría insertarse en el Ejemplo 15-14.</p>
- <p><i>Ejemplo 15-15. Una declaración por defecto para agregar al Ejemplo 15-14</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br></pre><code><span class="hl_v">default</span><span class="hl_o">:</span>
- <span class="hl_f">document.write</span>(<span class="hl_s">"Unrecognized selection"</span>)
- <span class="hl_k">break</span></code></div>
- <h3 id="expresiones_control_flujo_javascript_operador">El operador ?<a href="#expresiones_control_flujo_javascript_operador"></a></h3>
- <p>El operador ternario (<samp>?</samp>), combinado con el caracter <samp>:</samp>, proporciona una forma rápida de realizar pruebas <samp>if...else</samp>. Con él puedes escribir una expresión para evaluar y luego acompañarla con el símbolo <samp>?</samp> y el código a ejecutar si la expresión es <samp>true</samp>. Después de eso, colocas un <samp>:</samp> y el código a ejecutar si la expresión se evalúa como <samp>false</samp>.</p>
- <p>El ejemplo 15-16 muestra el uso del operador ternario para imprimir si la variable <samp>a</samp> es menor o igual a <samp>5</samp> e imprime algo de cualquier manera.</p>
- <p><i>Ejemplo 15-16. Utilizando el operador ternario</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_f">document.write</span>(
- <span class="hl_v">a</span> <span class="hl_o"><=</span> <span class="hl_n">5</span> <span class="hl_v">?</span>
- <span class="hl_s">"a is less than or equal to 5"</span> <span class="hl_o">:</span>
- <span class="hl_s">"a is greater than 5"</span>
- )
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>La declaración ha sido dividida en varias líneas para mayor claridad, pero es más probable que utilizes una declaración en una sola línea, de esta manera:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">size</span> <span class="hl_o">=</span> <span class="hl_v">a</span> <span class="hl_o"><=</span> <span class="hl_n">5</span> <span class="hl_v">?</span> <span class="hl_s">"short"</span> <span class="hl_o">:</span> <span class="hl_s">"long"</span></code></div>
- <h2 id="expresiones_control_flujo_javascript_bucles">Bucles<a href="#expresiones_control_flujo_javascript_bucles"></a></h2>
- <p>Nuevamente, encontrarás muchas similitudes cercanas entre JavaScript y PHP en lo que respecta a los bucles. Ambos lenguajes admiten bucles <samp>while</samp>, <samp>do...while</samp> y <samp>for</samp>.</p>
- <h3 id="expresiones_control_flujo_javascript_bucles_while">Bucles while<a href="#expresiones_control_flujo_javascript_bucles_while"></a></h3>
- <p>Un bucle <samp>while</samp> en JavaScript comprueba primero el valor de una expresión y comienza a ejecutar las instrucciones dentro del bucle solo si esa expresión es <samp>true</samp>. Si es <samp>false</samp>, la ejecución salta a la siguiente instrucción de JavaScript (si la hay).</p>
- <p>Al completar una iteración del bucle, la expresión se vuelve a evaluar para ver si es <samp>true</samp>, y el proceso continúa hasta que la expresión se evalúe a <samp>false</samp> o hasta que la ejecución se detenga de otra manera. El ejemplo 15-17 muestra este bucle.</p>
- <p><i>Ejemplo 15-17. Un bucle <samp>while</samp></i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">counter</span> <span class="hl_o">=</span> <span class="hl_n">0</span>
- <span class="hl_k">while</span> (<span class="hl_v">counter</span> <span class="hl_o"><</span> <span class="hl_n">5</span>)
- {
- <span class="hl_f">document.write</span>(<span class="hl_s">"Counter: "</span> <span class="hl_o">+</span> <span class="hl_v">counter</span> <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- <span class="hl_o">++</span><span class="hl_v">counter</span>
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Este script produce lo siguiente:</p>
- <div class="pre"><pre>
- Counter: 0
- Counter: 1
- Counter: 2
- Counter: 3
- Counter: 4
- </pre></div>
- <div class="warn"><p><span>Precaución</span></p><p>Si la variable <samp>counter</samp> (contador) no se incrementara dentro del bucle, es bastante posible que algunos navegadores no ofrezcan ninguna respuesta debido a un bucle interminable, y la página no sea fácil de cerrar ni siquiera con Escape o con el botón de Detener. Así que, ten cuidado con tus bucles de JavaScript.</p></div>
- <h3 id="expresiones_control_flujo_javascript_bucles_do_while">Bucles do...while<a href="#expresiones_control_flujo_javascript_bucles_do_while"></a></h3>
- <p>Cuando necesites que un bucle itere al menos una vez antes de realizar cualquier prueba, utiliza un bucle <samp>do...while</samp>, que es similar a un bucle <samp>while</samp>, excepto que la expresión de prueba se verifica solo después de cada iteración del bucle. Entonces, para mostrar los primeros siete resultados de la tabla del <samp>7</samp>, podrías usar un código como el del Ejemplo 15-18.</p>
- <p><i>Ejemplo 15-18. Un bucle <samp>do...while</samp></i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">count</span> <span class="hl_o">=</span> <span class="hl_n">1</span>
- <span class="hl_k">do</span>
- {
- <span class="hl_f">document.write</span>(<span class="hl_v">count</span> <span class="hl_o">+</span> <span class="hl_s">" times 7 is "</span> <span class="hl_o">+</span> <span class="hl_v">count</span> <span class="hl_o">*</span> <span class="hl_n">7</span> <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- } <span class="hl_k">while</span> (<span class="hl_o">++</span><span class="hl_v">count</span> <span class="hl_o"><=</span> <span class="hl_n">7</span>)
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Como era de esperar, este bucle produce lo siguiente:</p>
- <div class="pre"><pre>
- 1 times 7 is 7
- 2 times 7 is 14
- 3 times 7 is 21
- 4 times 7 is 28
- 5 times 7 is 35
- 6 times 7 is 42
- 7 times 7 is 49
- </pre></div>
- <h3 id="expresiones_control_flujo_javascript_bucles_for">Bucles for<a href="#expresiones_control_flujo_javascript_bucles_for"></a></h3>
- <p>Un bucle <samp>for</samp> combina lo mejor de todos los mundos en una única estructura de bucle que te permite pasar tres parámetros en cada declaración:</p>
- <ul>
- <li>Una expresión de inicialización</li>
- <li>Una expresión de condición</li>
- <li>Una expresión de modificación</li>
- </ul>
- <p>Estos están separados por punto y coma, así: <samp>for (expr1; expr2; expr3)</samp>. La expresión de inicialización se ejecuta al inicio de la primera iteración del bucle. En el caso del código para la tabla de multiplicar del <samp>7</samp>, <samp>count</samp> se inicializaría con el valor <samp>1</samp>. Luego, cada vez que se recorre el bucle, se evalúa la expresión de condición (en este caso, <samp>count <= 7</samp>), y el bucle solo se ejecuta si la condición es <samp>true</samp>. Por último, al final de cada iteración, se ejecuta la expresión de modificación. En el caso de la tabla de multiplicar del <samp>7</samp>, la variable <samp>count</samp> se incrementa. El ejemplo 15-19 muestra cómo sería el código.</p>
- <p><i>Ejemplo 15-19. Utilizando un bucle <samp>for</samp></i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_k">for</span> (<span class="hl_v">count</span> <span class="hl_o">=</span> <span class="hl_n">1</span>; <span class="hl_v">count</span> <span class="hl_o"><=</span> <span class="hl_n">7</span>; <span class="hl_o">++</span><span class="hl_v">count</span>)
- {
- <span class="hl_f">document.write</span>(<span class="hl_v">count</span> <span class="hl_o">+</span> <span class="hl_s">"times 7 is "</span> <span class="hl_o">+</span> <span class="hl_v">count</span> <span class="hl_o">*</span> <span class="hl_n">7</span> <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>);
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Al igual que en PHP, puedes asignar múltiples variables en el primer parámetro de un bucle <samp>for</samp> separándolas con una coma, así:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_k">for</span> (<span class="hl_v">i</span> <span class="hl_o">=</span> <span class="hl_n">1</span>, <span class="hl_v">j</span> <span class="hl_o">=</span> <span class="hl_n">1</span>; <span class="hl_v">i</span> <span class="hl_o"><</span> <span class="hl_n">10</span>; <span class="hl_v">i</span><span class="hl_o">++</span>)</code></div>
- <p>Asimismo, puedes realizar múltiples modificaciones en el último parámetro, de esta forma:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_k">for</span> (<span class="hl_v">i</span> <span class="hl_o">=</span> <span class="hl_n">1</span>; <span class="hl_v">i</span> <span class="hl_o"><</span> <span class="hl_n">10</span>; <span class="hl_v">i</span><span class="hl_o">++</span>, <span class="hl_o">--</span><span class="hl_v">j</span>)</code></div>
- <p>O puedes hacer ambas cosas al mismo tiempo:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_k">for</span> (<span class="hl_v">i</span> <span class="hl_o">=</span> <span class="hl_n">1</span>, <span class="hl_v">j</span> <span class="hl_o">=</span> <span class="hl_n">1</span>; <span class="hl_v">i</span> <span class="hl_o"><</span> <span class="hl_n">10</span>; <span class="hl_v">i</span><span class="hl_o">++</span>, <span class="hl_o">--</span><span class="hl_v">j</span>)</code></div>
- <h3 id="expresiones_control_flujo_javascript_ruptura_bucle">Ruptura de un bucle<a href="#expresiones_control_flujo_javascript_ruptura_bucle"></a></h3>
- <p>El comando <samp>break</samp>, que recordarás es importante dentro de una declaración <samp>switch</samp>, también está disponible dentro de los bucles <samp>for</samp>. Es posible que tengas que utilizar esto, por ejemplo, cuando busques algún tipo de coincidencia. Una vez que se encuentra la coincidencia, sabes que continuar solo sería una pérdida tiempo y harás que tu visitante tenga que esperar. El ejemplo 15-20 muestra cómo utilizar el comando <samp>break</samp>.</p>
- <p><i>Ejemplo 15-20. Utilizando el comando <samp>break</samp> en un bucle <samp>for</samp></i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">haystack</span> <span class="hl_o">=</span> <span class="hl_t">new</span> <span class="hl_f">Array</span>()
- <span class="hl_v">haystack</span>[<span class="hl_n">17</span>] <span class="hl_o">=</span> <span class="hl_s">"Needle"</span>
- <span class="hl_k">for</span> (<span class="hl_v">j</span> <span class="hl_o">=</span> <span class="hl_n">0</span>; <span class="hl_v">j</span> <span class="hl_o"><</span> <span class="hl_n">20</span>; <span class="hl_o">++</span><span class="hl_v">j</span>)
- {
- <span class="hl_k">if</span> (<span class="hl_v">haystack</span>[<span class="hl_v">j</span>] <span class="hl_o">==</span> <span class="hl_s">"Needle"</span>)
- {
- <span class="hl_f">document.write</span>(<span class="hl_s">"<br>- Found at location "</span> <span class="hl_o">+</span> <span class="hl_v">j</span>)
- <span class="hl_k">break</span>
- }
- <span class="hl_k">else</span> <span class="hl_f">document.write</span>(<span class="hl_v">j</span> <span class="hl_o">+</span> <span class="hl_s">", "</span>)
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Este script produce lo siguiente:</p>
- <div class="pre"><pre>
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- - Found at location 17
- </pre></div>
- <h3 id="expresiones_control_flujo_javascript_declaracion_continue">Declaración continue<a href="#expresiones_control_flujo_javascript_declaracion_continue"></a></h3>
- <p>A veces no quieres salir completamente de un bucle, sino que deseas omitir las sentencias restantes solo para una iteración concreta del bucle. En tales casos, puedes utilizar el comando <samp>continue</samp>. El ejemplo 15-21 muestra cómo se utiliza este comando.</p>
- <p><i>Ejemplo 15-21. Utilizando el comando <samp>continue</samp> en un bucle <samp>for</samp></i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br>15<br>16<br>17<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">haystack</span> <span class="hl_o">=</span> <span class="hl_t">new</span> <span class="hl_f">Array</span>()
- <span class="hl_v">haystack</span>[<span class="hl_n">4</span>] <span class="hl_o">=</span> <span class="hl_s">"Needle"</span>
- <span class="hl_v">haystack</span>[<span class="hl_n">11</span>] <span class="hl_o">=</span> <span class="hl_s">"Needle"</span>
- <span class="hl_v">haystack</span>[<span class="hl_n">17</span>] <span class="hl_o">=</span> <span class="hl_s">"Needle"</span>
- <span class="hl_k">for</span> (<span class="hl_v">j</span> <span class="hl_o">=</span> <span class="hl_n">0</span>; <span class="hl_v">j</span> <span class="hl_o"><</span> <span class="hl_n">20</span>; <span class="hl_o">++</span><span class="hl_v">j</span>)
- {
- <span class="hl_k">if</span> (<span class="hl_v">haystack</span>[<span class="hl_v">j</span>] <span class="hl_o">==</span> <span class="hl_s">"Needle"</span>)
- {
- <span class="hl_f">document.write</span>(<span class="hl_s">"<br>- Found at location "</span> <span class="hl_o">+</span> <span class="hl_v">j</span> <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- <span class="hl_k">continue</span>
- }
- <span class="hl_f">document.write</span>(<span class="hl_v">j</span> <span class="hl_o">+</span> <span class="hl_s">", "</span>)
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Nota cómo la segunda llamada a <samp>document.write</samp> no tiene que estar encerrada en una declaración <samp>else</samp> (como antes), porque el comando <samp>continue</samp> la omitirá si se ha encontrado una coincidencia. La salida de este script es la siguiente:</p>
- <div class="pre"><pre>
- 0, 1, 2, 3,
- - Found at location 4
- 5, 6, 7, 8, 9, 10,
- - Found at location 11
- 12, 13, 14, 15, 16,
- - Found at location 17
- 18, 19,
- </pre></div>
- <h2 id="expresiones_control_flujo_javascript_conversion_explicita">Conversión explícita<a href="#expresiones_control_flujo_javascript_conversion_explicita"></a></h2>
- <p>A diferencia de PHP, JavaScript no tiene una conversión explícita (casting) de tipos de datos como (<samp>int</samp>) o (<samp>float</samp>). En su lugar, cuando necesites que un valor sea de un tipo de dato específico, utiliza una de las funciones integradas de JavaScript, que se muestran en la Tabla 15-6.</p>
- <p><i>Tabla 15-6. Funciones de cambio de tipo en JavaScript</i></p>
- <div class="table"><table>
- <tr>
- <th>Cambiar al tipo</th>
- <th>Función que se utiliza</th>
- </tr>
- <tr>
- <td><samp>Int</samp>, <samp>Integer</samp></td>
- <td><samp>parseInt()</samp></td>
- </tr>
- <tr>
- <td><samp>Bool</samp>, <samp>Boolean</samp></td>
- <td><samp>Boolean()</samp></td>
- </tr>
- <tr>
- <td><samp>Float</samp>, <samp>Double</samp>, <samp>Real</samp></td>
- <td><samp>parseFloat()</samp></td>
- </tr>
- <tr>
- <td><samp>String</samp></td>
- <td><samp>String()</samp></td>
- </tr>
- <tr>
- <td><samp>Array</samp></td>
- <td><samp>split()</samp></td>
- </tr>
- </table></div>
- <p>Entonces, por ejemplo, para cambiar un número de punto flotante a un entero, podrías utilizar un código como el siguiente (que muestra el valor <samp>3</samp>):</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br></pre><code><span class="hl_v">n</span> <span class="hl_o">=</span> <span class="hl_n">3</span><span class="hl_v">.1415927</span>
- <span class="hl_v">i</span> <span class="hl_o">=</span> <span class="hl_f">parseInt</span>(<span class="hl_v">n</span>)
- <span class="hl_f">document.write</span>(<span class="hl_v">i</span>)</code></div>
- <p>O puedes utilizar la forma compuesta:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_f">document.write</span>(<span class="hl_f">parseInt</span>(<span class="hl_n">3</span><span class="hl_v">.1415927</span>))</code></div>
- <p>Eso es todo sobre el flujo de control y las expresiones. El siguiente capítulo se centrará en el uso de funciones, objetos y arreglos en JavaScript.</p>
- <h2 id="expresiones_control_flujo_javascript_preguntas">Preguntas<a href="#expresiones_control_flujo_javascript_preguntas"></a></h2>
- <ol>
- <li>¿Cómo se manejan los valores booleanos de manera diferente en PHP y JavaScript?</li>
- <li>¿Qué caracteres se utilizan para definir un nombre de variable en JavaScript?</li>
- <li>¿Cuál es la diferencia entre los operadores unarios, binarios y ternarios?</li>
- <li>¿Cuál es la mejor manera de forzar la precedencia de operadores?</li>
- <li>¿Cuándo utilizarías el operador <samp>===</samp> (identidad)?</li>
- <li>¿Cuáles son las dos formas más simples de expresiones?</li>
- <li>Nombra los tres tipos de declaración de condicionales.</li>
- <li>¿Cómo interpretan las declaraciones <samp>if</samp> y <samp>while</samp> las expresiones condicionales de diferentes tipos de datos?</li>
- <li>¿Por qué un bucle <samp>for</samp> es más poderoso que un bucle <samp>while</samp>?</li>
- <li>¿Cuál es el propósito de la declaración <samp>with</samp>?</li>
- </ol>
- <p>Ver <a href="#soluciones_preguntas_capitulos_respuestas_capitulo_15" onclick="c('soluciones_preguntas_capitulos_respuestas_capitulo_15')">"Respuestas del Capítulo 15"</a> del <a href="#soluciones_preguntas_capitulos" onclick="c('soluciones_preguntas_capitulos')">Apéndice A</a> para comprobar las respuestas a estas preguntas.</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_explorando_javascript" title="Explorando JavaScript">Volver</label><label class="btn next" accesskey="n" for="_funciones_objetos_arrays_javascript" title="Funciones, objetos y arrays en JavaScript">Siguiente</label></div>
- <div class="page" rel="funciones_objetos_arrays_javascript"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 16 »</li><li> Funciones, objetos y arrays en JavaScript</li></ul><hr></div>
- <h1 id="funciones_objetos_arrays_javascript">Funciones, objetos y arrays en JavaScript<a href="#funciones_objetos_arrays_javascript"></a></h1>
- <p>Al igual que PHP, JavaScript ofrece el acceso a funciones y objetos. De hecho, JavaScript está basado en objetos, porque, como has visto, tiene que acceder al DOM, lo que hace que cada elemento de un documento HTML esté disponible para manipularlo como un objeto.</p>
- <p>El uso y la sintaxis también son bastante similares a los de PHP, por lo que deberías sentirte como en casa mientras te guío en el uso de funciones y objetos en JavaScript, así como en la exploración en profundidad del manejo de arreglos.</p>
- <h2 id="funciones_objetos_arrays_javascript_funciones_javascript">Funciones en JavaScript<a href="#funciones_objetos_arrays_javascript_funciones_javascript"></a></h2>
- <p>Además de tener acceso a docenas de funciones (o métodos) integrados, como <samp>write</samp>, que ya has visto que se utiliza en <samp>document.write</samp>, puedes crear fácilmente tus propias funciones. Siempre que tengas un fragmento de código relativamente complejo que probablemente se reutilice, tienes un candidato para una función.</p>
- <h3 id="funciones_objetos_arrays_javascript_definicion_funcion">Definición de una función<a href="#funciones_objetos_arrays_javascript_definicion_funcion"></a></h3>
- <p>La sintaxis general para una función se muestra aquí:</p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br></pre><code><span class="hl_k">function</span> <span class="hl_f">function_name</span>([<span class="hl_v">parameter</span> [, <span class="hl_v">...</span>]])
- {
- <span class="hl_v">statements</span>
- }</code></div>
- <p>La primera línea de la sintaxis indica lo siguiente:</p>
- <ul>
- <li>La definición comienza con la palabra <samp>function</samp>.</li>
- <li>A continuación, sigue un nombre que debe comenzar con una letra o un guion bajo, seguido de cualquier número de letras, dígitos, signos de dólar o guiones bajos.</li>
- <li>Los paréntesis son obligatorios.</li>
- <li>Uno o más parámetros, separados por comas, son opcionales (indicados por los corchetes, que no forman parte de la sintaxis de la función).</li>
- </ul>
- <p>Los nombres de las funciones son sensibles a mayúsculas, por lo que todos los siguientes strings se refieren a diferentes funciones: <samp>getInput</samp>, <samp>GETINPUT</samp> y <samp>getinput</samp>.</p>
- <p>En JavaScript hay una convención general de nomenclaturas para funciones: la primera letra de cada palabra de un nombre se escribe en mayúsculas, excepto la primera letra, que se escribe en minúsculas. Por lo tanto, de los ejemplos anteriores, <samp>getInput</samp> sería el nombre preferido utilizado por la mayoría de los programadores. Esta convención se conoce comúnmente como <i>bumpyCaps</i>, <i>bumpyCase</i>, o (más frecuentemente) <i>camelCase</i>.</p>
- <p>La llave de apertura inicia las instrucciones que se ejecutarán cuando llames a la función; una llave de cierre correspondiente debe cerrarla. Estas declaraciones pueden incluir una o más declaraciones de <samp>return</samp>, que obligan a la función a detener su ejecución y regresar al código que la llamó. Si se adjunta un valor a la declaración de <samp>return</samp>, el código que la llama puede recuperarlo.</p>
- <h3 id="funciones_objetos_arrays_array_arguments">El array arguments<a href="#funciones_objetos_arrays_array_arguments"></a></h3>
- <p>El array <samp>arguments</samp> es un miembro de toda función. Con él, puedes determinar el número de variables pasadas a una función y cuáles son. Toma el ejemplo de una función llamada <samp>displayItems</samp>. El ejemplo 16-1 muestra una forma de escribirlo.</p>
- <p><i>Ejemplo 16-1. Definición de una función</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_f">displayItems</span>(<span class="hl_s">"Dog"</span>, <span class="hl_s">"Cat"</span>, <span class="hl_s">"Pony"</span>, <span class="hl_s">"Hamster"</span>, <span class="hl_s">"Tortoise"</span>)
- <span class="hl_k">function</span> <span class="hl_f">displayItems</span>(<span class="hl_v">v1</span>, <span class="hl_v">v2</span>, <span class="hl_v">v3</span>, <span class="hl_v">v4</span>, <span class="hl_v">v5</span>)
- {
- <span class="hl_f">document.write</span>(<span class="hl_v">v1</span> <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- <span class="hl_f">document.write</span>(<span class="hl_v">v2</span> <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- <span class="hl_f">document.write</span>(<span class="hl_v">v3</span> <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- <span class="hl_f">document.write</span>(<span class="hl_v">v4</span> <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- <span class="hl_f">document.write</span>(<span class="hl_v">v5</span> <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Cuando llames a este script en tu navegador, mostrará lo siguiente:</p>
- <div class="pre"><pre>
- Dog
- Cat
- Pony
- Hamster
- Tortoise
- </pre></div>
- <p>Todo esto está bien, pero ¿qué pasaría si quisieras pasar más de cinco elementos a la función? Además, reutilizar la llamada a <samp>document.write</samp> múltiples veces en lugar de emplear un bucle es un desperdicio de programación. Afortunadamente, el array <samp>arguments</samp> te da la flexibilidad para manejar un número variable de argumentos. El Ejemplo 16-2 muestra cómo puedes utilizarla para reescribir el ejemplo anterior de una manera mucho más eficiente.</p>
- <p><i>Ejemplo 16-2. Modificando la función para utilizar el array <samp>arguments</samp></i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_v">let</span> <span class="hl_v">c</span> <span class="hl_o">=</span> <span class="hl_s">"Car"</span>
- <span class="hl_f">displayItems</span>(<span class="hl_s">"Bananas"</span>, <span class="hl_n">32</span><span class="hl_v">.3</span>, <span class="hl_v">c</span>)
- <span class="hl_k">function</span> <span class="hl_f">displayItems</span>()
- {
- <span class="hl_k">for</span> (<span class="hl_v">j</span> <span class="hl_o">=</span> <span class="hl_n">0</span>; <span class="hl_v">j</span> <span class="hl_o"><</span> <span class="hl_v">displayItems.arguments.length</span>; <span class="hl_o">++</span><span class="hl_v">j</span>)
- <span class="hl_f">document.write</span>(<span class="hl_v">displayItems.arguments</span>[<span class="hl_v">j</span>] <span class="hl_o">+</span> <span class="hl_s">"<br>"</span>)
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Observa el uso de la propiedad <samp>length</samp>, que ya encontraste en el capítulo anterior, y también cómo hago referencia al array <samp>displayItems.arguments</samp> utilizando la variable <samp>j</samp> para desplazarnos sobre ella. También elegí mantener la función breve y concisa al no rodear el contenido del bucle <samp>for</samp> con llaves, ya que contiene solo una única instrucción. Recuerda que el bucle debe detenerse cuando <samp>j</samp> sea uno menos que <samp>length</samp>, no igual a <samp>length</samp>.</p>
- <p>Usando esta técnica, ahora tienes una función que puede tomar tantos (o tan pocos) argumentos como desees y actuar sobre cada argumento como desees.</p>
- <h3 id="funciones_objetos_arrays_javascript_devolviendo_valor">Devolviendo un valor<a href="#funciones_objetos_arrays_javascript_devolviendo_valor"></a></h3>
- <p>Las funciones no se utilizan solo para mostrar cosas. De hecho, se utilizan principalmente para realizar cálculos o manipulaciones de datos y luego devolver un resultado. La función <samp>fixNames</samp> en el Ejemplo 16-3 utiliza el array <samp>arguments</samp> (explicada en la sección anterior) para tomar una serie de string que se le pasan y devolverlas como un solo string. La "corrección" que realiza es convertir todos los caracteres de los argumentos a minúsculas, excepto el primer carácter de cada argumento, que se convertirá a mayúsculas.</p>
- <p><i>Ejemplo 16-3. Limpiando un nombre completo</i></p>
- <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>11<br>12<br>13<br>14<br></pre><code><span class="hl_o"><</span><span class="hl_v">script</span><span class="hl_o">></span>
- <span class="hl_f">document.write</span>(<span class="hl_f">fixNames</span>(<span class="hl_s">"the"</span>, <span class="hl_s">"DALLAS"</span>, <span class="hl_s">"CowBoys"</span>))
- <span class="hl_k">function</span> <span class="hl_f">fixNames</span>()
- {
- <span class="hl_v">var</span> <span class="hl_v">s</span> <span class="hl_o">=</span> <span class="hl_s">""</span>
- <span class="hl_k">for</span> (<span class="hl_v">j</span> <span class="hl_o">=</span> <span class="hl_n">0</span>; <span class="hl_v">j</span> <span class="hl_o"><</span> <span class="hl_v">fixNames.arguments.length</span>; <span class="hl_o">++</span><span class="hl_v">j</span>)
- <span class="hl_v">s</span> <span class="hl_o">+=</span> <span class="hl_v">fixNames.arguments</span>[<span class="hl_v">j</span>]<span class="hl_f">.charAt</span>(<span class="hl_n">0</span>)<span class="hl_f">.toUpperCase</span>() <span class="hl_o">+</span>
- <span class="hl_v">fixNames.arguments</span>[<span class="hl_v">j</span>]<span class="hl_f">.substr</span>(<span class="hl_n">1</span>)<span class="hl_f">.toLowerCase</span>() <span class="hl_o">+</span> <span class="hl_s">" "</span>
- <span class="hl_k">return</span> <span class="hl_f">s.substr</span>(<span class="hl_n">0</span>, <span class="hl_v">s.length</span> <span class="hl_o">-</span> <span class="hl_n">1</span>)
- }
- <span class="hl_o"></</span><span class="hl_v">script</span><span class="hl_o">></span></code></div>
- <p>Cuando se llama con los parámetros <samp>the</samp>, <samp>DALLAS</samp> y <samp>CowBoys</samp>, por ejemplo, la función devuelve el string <samp>The Dallas Cowboys</samp>. Vamos a repasar la función.</p>
- <p>Primero inicializa la variable temporal (y local) <samp>s</samp> con el string vacío. Luego, un bucle <samp>for</samp> itera a través de cada uno de los parámetros pasados, aislando el primer carácter del parámetro utilizando el método <samp>charAt</samp> y convirtiéndolo a mayúsculas con el método <samp>toUpperCase</samp>. Los distintos métodos mostrados en este ejemplo están todos integrados en JavaScript y disponibles por defecto.</p>
- <p>Luego se utiliza el método <samp>substr</samp> para obtener el resto de cada string, que se convierte a minúsculas mediante el método <samp>toLowerCase</samp>. Una versión más completa del método <samp>substr</samp>, en este caso, especificaría cuántos caracteres son parte del substring como segundo argumento:</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_f">substr</span>(<span class="hl_n">1</span>, (<span class="hl_v">arguments</span>[<span class="hl_v">j</span>]<span class="hl_v">.length</span>) <span class="hl_o">-</span> <span class="hl_n">1</span> )</code></div>
- <p>En otras palabras, este método <samp>substr</samp> dice: "Empieza con el carácter en la posición <samp>1</samp> (el segundo carácter) y devuelve el resto del string (la longitud menos uno)". Como un detalle agradable, sin embargo, el método <samp>substr</samp> asume que quieres el resto del string si omites el segundo argumento.</p>
- <p>Después de convertir todo el argumento al caso deseado, se añade un carácter de espacio al final y el resultado se agrega a la variable temporal <samp>s</samp>.</p>
- <p>Finalmente, se utiliza nuevamente el método <samp>substr</samp> para devolver el contenido de la variable <samp>s</samp>, excepto por el espacio final, que no se desea que aparezca. Lo eliminamos utilizando <samp>substr</samp> para devolver el string hasta el carácter final pero sin incluirlo.</p>
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">fixNames.arguments</span>[<span class="hl_v">j</span>]<span class="hl_f">.substr</span>(<span class="hl_n">1</span>)<span class="hl_f">.toLowerCase</span>()</code></div>
- <p>Tienes que interpretar la expresión dividiéndola mentalmente en partes en los puntos. JavaScript evalúa estos elementos de la declaración de izquierda a derecha de la siguiente manera:</p>
- <ol>
- <li>Comienza con el nombre de la función en sí: <samp>fixNames</samp>.</li>
- <li>Extrae el elemento <samp>j</samp> del array <samp>arguments</samp>, elemento que representa los argumentos de <samp>fixNames</samp>.</li>
- <li>Invoca a <samp>substr</samp> con el valor del parámetro en <samp>1</samp> para el elemento extraído. El resultado pasa en su totalidad, menos el primer carácter, a la siguiente sección
- de la expresión.</li>
- <li>Aplica el método <samp>toLowerCase</samp> al string que se ha pasado hasta ahora.</li>
- </ol>
- <p>Esta práctica a menudo se le conoce como <i>encadenamiento de métodos</i>. Entonces, por ejemplo, si el string <samp>mixedCASE</samp> se pasa a la expresión del ejemplo, pasará por las siguientes transformaciones:</p>
- <div class="pre"><pre>
- mixedCASE
- ixedCASE
- ixedcase
- </pre></div>
- <p>En otras palabras, <samp>fixNames.arguments[j]</samp> produce “mixedCASE”, luego <samp>substr(1)</samp> toma “mixedCASE” y produce “ixedCASE”, y finalmente <samp>toLowerCase()</samp> toma “ixedCASE” y produce “ixedcase”.</p>
- <p>Un recordatorio final: la variable <samp>s</samp> creada dentro de la función es local y, por lo tanto, no se puede acceder a ella fuera de la función. Al devolver <samp>s</samp> en la declaración <samp>return</samp>, hicimos que su valor estuviera disponible para el llamante, quien podría almacenarlo o utilizarlo de la forma que quisiera. Pero <samp>s</samp> en sí mismo desaparece al final de la función. Aunque podríamos hacer que una función opere sobre variables globales (y a veces eso es necesario), es mucho mejor simplemente devolver los valores que quieres preservar y dejar que JavaScript limpie el resto de variables utilizadas por la función.</p><br style="clear:both;"><label class="btn prev" accesskey="p" for="_expresiones_control_flujo_javascript" title="Expresiones y control de flujo en JavaScript">Volver</label><label class="btn next" accesskey="n" for="_validacion_manejo_errores_javascript_php" title="Validación y manejo de errores en JavaScript y PHP">Siguiente</label></div>
- <div class="page" rel="validacion_manejo_errores_javascript_php"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 17 »</li><li> Validación y manejo de errores en JavaScript y PHP</li></ul><hr></div>
- <h1 id="validacion_manejo_errores_javascript_php">Validación y manejo de errores en JavaScript y PHP<a href="#validacion_manejo_errores_javascript_php"></a></h1>
- <h2 id="validacion_manejo_errores_javascript_php_validando_entrada_usuario_javascript">Validando la entrada del usuario con JavaScript<a href="#validacion_manejo_errores_javascript_php_validando_entrada_usuario_javascript"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_funciones_objetos_arrays_javascript" title="Funciones, objetos y arrays en JavaScript">Volver</label><label class="btn next" accesskey="n" for="_utilizando_comunicaciones_asincronas" title="Utilizando comunicaciones asíncronas">Siguiente</label></div>
- <div class="page" rel="utilizando_comunicaciones_asincronas"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 18 »</li><li> Utilizando comunicaciones asíncronas</li></ul><hr></div>
- <h1 id="utilizando_comunicaciones_asincronas">Utilizando comunicaciones asíncronas<a href="#utilizando_comunicaciones_asincronas"></a></h1>
- <h2 id="utilizando_comunicaciones_asincronas_que_es_comunicacion_asincrona">¿Qué es la comunicación asíncrona?<a href="#utilizando_comunicaciones_asincronas_que_es_comunicacion_asincrona"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_validacion_manejo_errores_javascript_php" title="Validación y manejo de errores en JavaScript y PHP">Volver</label><label class="btn next" accesskey="n" for="_introduccion_css" title="Introducción a CSS">Siguiente</label></div>
- <div class="page" rel="introduccion_css"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 19 »</li><li> Introducción a CSS</li></ul><hr></div>
- <h1 id="introduccion_css">Introducción a CSS<a href="#introduccion_css"></a></h1>
- <h2 id="introduccion_css_importando_hoja_estilos">Importando una hoja de estilos<a href="#introduccion_css_importando_hoja_estilos"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_utilizando_comunicaciones_asincronas" title="Utilizando comunicaciones asíncronas">Volver</label><label class="btn next" accesskey="n" for="_css_avanzado_css3" title="CSS avanzado con CSS3">Siguiente</label></div>
- <div class="page" rel="css_avanzado_css3"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 20 »</li><li> CSS avanzado con CSS3</li></ul><hr></div>
- <h1 id="css_avanzado_css3">CSS avanzado con CSS3<a href="#css_avanzado_css3"></a></h1>
- <h2 id="css_avanzado_css3_selectores_atributos">Selectores de atributos<a href="#css_avanzado_css3_selectores_atributos"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_introduccion_css" title="Introducción a CSS">Volver</label><label class="btn next" accesskey="n" for="_accediendo_css_desde_javascript" title="Accediendo a CSS desde JavaScript">Siguiente</label></div>
- <div class="page" rel="accediendo_css_desde_javascript"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 21 »</li><li> Accediendo a CSS desde JavaScript</li></ul><hr></div>
- <h1 id="accediendo_css_desde_javascript">Accediendo a CSS desde JavaScript<a href="#accediendo_css_desde_javascript"></a></h1>
- <h2 id="accediendo_css_desde_javascript_revisando_funcion_getelementbyid">Revisando la función getElementById<a href="#accediendo_css_desde_javascript_revisando_funcion_getelementbyid"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_css_avanzado_css3" title="CSS avanzado con CSS3">Volver</label><label class="btn next" accesskey="n" for="_introduccion_jquery" title="Introducción a jQuery">Siguiente</label></div>
- <div class="page" rel="introduccion_jquery"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 22 »</li><li> Introducción a jQuery</li></ul><hr></div>
- <h1 id="introduccion_jquery">Introducción a jQuery<a href="#introduccion_jquery"></a></h1>
- <h2 id="introduccion_jquery_por_que_jquery">¿Por qué jQuery?<a href="#introduccion_jquery_por_que_jquery"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_accediendo_css_desde_javascript" title="Accediendo a CSS desde JavaScript">Volver</label><label class="btn next" accesskey="n" for="_introduccion_jquery_mobile" title="Introducción a jQuery Mobile">Siguiente</label></div>
- <div class="page" rel="introduccion_jquery_mobile"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 23 »</li><li> Introducción a jQuery Mobile</li></ul><hr></div>
- <h1 id="introduccion_jquery_mobile">Introducción a jQuery Mobile<a href="#introduccion_jquery_mobile"></a></h1>
- <h2 id="introduccion_jquery_mobile_incluyendo_jquery_mobile">Incluyendo jQuery Mobile<a href="#introduccion_jquery_mobile_incluyendo_jquery_mobile"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_introduccion_jquery" title="Introducción a jQuery">Volver</label><label class="btn next" accesskey="n" for="_introduccion_react" title="Introducción a React">Siguiente</label></div>
- <div class="page" rel="introduccion_react"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 24 »</li><li> Introducción a React</li></ul><hr></div>
- <h1 id="introduccion_react">Introducción a React<a href="#introduccion_react"></a></h1>
- <h2 id="introduccion_react_para_que_sirve_react">¿Para qué sirve React?<a href="#introduccion_react_para_que_sirve_react"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_introduccion_jquery_mobile" title="Introducción a jQuery Mobile">Volver</label><label class="btn next" accesskey="n" for="_introduccion_html5" title="Introducción a HTML5">Siguiente</label></div>
- <div class="page" rel="introduccion_html5"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 25 »</li><li> Introducción a HTML5</li></ul><hr></div>
- <h1 id="introduccion_html5">Introducción a HTML5<a href="#introduccion_html5"></a></h1>
- <h2 id="introduccion_html5_canvas">Canvas<a href="#introduccion_html5_canvas"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_introduccion_react" title="Introducción a React">Volver</label><label class="btn next" accesskey="n" for="_canvas_html5" title="Canvas de HTML5">Siguiente</label></div>
- <div class="page" rel="canvas_html5"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 26 »</li><li> Canvas de HTML5</li></ul><hr></div>
- <h1 id="canvas_html5">Canvas de HTML5<a href="#canvas_html5"></a></h1>
- <h2 id="canvas_html5_creando_accediendo_canvas">Creando y accediendo a Canvas<a href="#canvas_html5_creando_accediendo_canvas"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_introduccion_html5" title="Introducción a HTML5">Volver</label><label class="btn next" accesskey="n" for="_audio_video_html5" title="Audio y vídeo en HTML5">Siguiente</label></div>
- <div class="page" rel="audio_video_html5"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 27 »</li><li> Audio y vídeo en HTML5</li></ul><hr></div>
- <h1 id="audio_video_html5">Audio y vídeo en HTML5<a href="#audio_video_html5"></a></h1>
- <h2 id="audio_video_html5_sobre_codecs">Sobre los códecs<a href="#audio_video_html5_sobre_codecs"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_canvas_html5" title="Canvas de HTML5">Volver</label><label class="btn next" accesskey="n" for="_otras_caracteristicas_html5" title="Otras características de HTML5">Siguiente</label></div>
- <div class="page" rel="otras_caracteristicas_html5"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 28 »</li><li> Otras características de HTML5</li></ul><hr></div>
- <h1 id="otras_caracteristicas_html5">Otras características de HTML5<a href="#otras_caracteristicas_html5"></a></h1>
- <h2 id="otras_caracteristicas_html5_geolocalizacion_servicio_gps">Geolocalización y el servicio de GPS<a href="#otras_caracteristicas_html5_geolocalizacion_servicio_gps"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_audio_video_html5" title="Audio y vídeo en HTML5">Volver</label><label class="btn next" accesskey="n" for="_uniendo_todo" title="Uniendo todo">Siguiente</label></div>
- <div class="page" rel="uniendo_todo"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Capítulo 29 »</li><li> Uniendo todo</li></ul><hr></div>
- <h1 id="uniendo_todo">Uniendo todo<a href="#uniendo_todo"></a></h1>
- <h2 id="uniendo_todo_diseniando_aplicacion_redes_sociales">Diseñando una aplicación de redes sociales<a href="#uniendo_todo_diseniando_aplicacion_redes_sociales"></a></h2><br style="clear:both;"><label class="btn prev" accesskey="p" for="_otras_caracteristicas_html5" title="Otras características de HTML5">Volver</label><label class="btn next" accesskey="n" for="_soluciones_preguntas_capitulos" title="Soluciones a las preguntas de los capítulos">Siguiente</label></div>
- <div class="page" rel="soluciones_preguntas_capitulos"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label> »</li><li> Apéndice A »</li><li> Soluciones a las preguntas de los capítulos</li></ul><hr></div>
- <h1 id="soluciones_preguntas_capitulos">Soluciones a las preguntas de los capítulos<a href="#soluciones_preguntas_capitulos"></a></h1>
- <h2 id="soluciones_preguntas_capitulos_respuestas_capitulo_14">Respuestas del capítulo 14<a href="#soluciones_preguntas_capitulos_respuestas_capitulo_14"></a></h2>
- <ol>
- <li>Para incluir código JavaScript, utilizas las etiquetas <samp><script></samp> y <samp></script></samp>.</li>
- <li>Por defecto, el código JavaScript se mostrará en la parte del documento en la que reside. Si está en el encabezado, se mostrará en el <samp>head</samp>; si está en el cuerpo del documento, se mostrará en el <samp>body</samp>.</li>
- <li>Puedes incluir código JavaScript de otros archivos en tus documentos ya sea copiándolo y pegándolo o, lo más habitual, incluyéndolo como parte de una etiqueta <samp><script src='filename.js'></samp>.</li>
- <li>El equivalente de los comandos <samp>echo</samp> y <samp>print</samp> utilizados en PHP, es la función <samp>document.write</samp> de JavaScript (o método).</li>
- <li>Para crear un comentario en JavaScript, comienza con <samp>//</samp> para un comentario de una sola línea o incluirlo entre <samp>/*</samp> y <samp>*/</samp> para un comentario de varias líneas.</li>
- <li>El operador de concatenación de strings en JavaScript es el símbolo <samp>+</samp>.</li>
- <li>Dentro de una función de JavaScript, puedes definir una variable que tenga un alcance local iniciandola con la palabra reservada <samp>var</samp> , <samp>let</samp> o <samp>const</samp> en la primera asignación.</li>
- <li>
- Para mostrar la URL asignada al enlace con un <samp>id</samp> de <samp>thislink</samp> en los navegadores más importantes, puedes utilizar cualquiera de los dos siguientes comandos:
- <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_f">document.write</span>(<span class="hl_f">document.getElementById</span>(<span class="hl_v">'thislink'</span>)<span class="hl_v">.href</span>)
- <span class="hl_f">document.write</span>(<span class="hl_v">thislink.href</span>)</code></div>
- </li>
- <li>
- Los comandos para cambiar a la página anterior en el historial del navegador son:
- <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_f">history.back</span>()
- <span class="hl_f">history.go</span>(<span class="hl_n">-1</span>)</code></div>
- </li>
- <li>
- Para reemplazar el documento actual con la página principal del sitio web de O'Reilly (<a href="https://www.oreilly.com" target="new">https://www.oreilly.com</a>), podrías utilizar el siguiente comando:
- <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_v">document.location.href</span> <span class="hl_o">=</span> <span class="hl_v">'http</span><span class="hl_o">:</span><span class="hl_c">//www.oreilly.com'</span></code></div>
- </li>
- </ol>
- <h2 id="soluciones_preguntas_capitulos_respuestas_capitulo_15">Respuestas del capítulo 15<a href="#soluciones_preguntas_capitulos_respuestas_capitulo_15"></a></h2>
- <ol>
- <li>La diferencia más notable entre los valores booleanos de PHP y JavaScript es que PHP reconoce las palabras reservadas <samp>TRUE</samp>, <samp>true</samp>, <samp>FALSE</samp> y <samp>false</samp>, mientras que en JavaScript solo se admiten <samp>true</samp> y <samp>false</samp>. Además, en PHP, <samp>TRUE</samp> tiene un valor de <samp>1</samp>, y <samp>FALSE</samp> es <samp>NULL</samp>; en JavaScript están representados por <samp>true</samp> y <samp>false</samp>, que pueden ser devueltos como valores de string.</li>
- <li>A diferencia de PHP, no se utiliza ningún carácter (como <samp>$</samp>) para definir el nombre de una variable en JavaScript. Los nombres de las variables en JavaScript pueden comenzar y contener letras con mayúsculas y minúsculas, así como guiones bajos; los nombres también pueden incluir dígitos, pero no el primer carácter.</li>
- <li>La diferencia entre los operadores unarios, binarios y ternarios es el número de operandos que cada uno requiere (uno, dos y tres, respectivamente).</li>
- <li>La mejor manera de forzar tu propia precedencia de operadores es rodear las partes de una expresión que deben evaluarse primero con paréntesis.</li>
- <li>Utilizas el operador de identidad cuando deseas evitar el cambio automático del tipo de dato del operando de JavaScript.</li>
- <li>Las formas más simples de expresiones son las literales (como números y cadenas) y las variables, que simplemente se evalúan a sí mismas.</li>
- <li>Los tres tipos de declaraciones condicionales son <samp>if</samp>, <samp>switch</samp> y el operador <samp>?:</samp>.</li>
- <li>La mayoría de las expresiones condicionales en las declaraciones <samp>if</samp> y <samp>while</samp> son literales o booleanas y, por lo tanto, desencadenan la ejecución cuando se evalúan como <samp>true</samp>. Las expresiones numéricas desencadenan la ejecución cuando se evalúan a un valor distinto de cero. Las expresiones de string desencadenan la ejecución cuando se evalúan a un string no vacío. Un valor <samp>NULL</samp> se evalúa como <samp>false</samp> y, por lo tanto, no desencadena la ejecución.</li>
- <li>Los bucles que utilizan declaraciones <samp>for</samp> son más poderosos que los bucles <samp>while</samp> porque soportan dos parámetros adicionales para controlar el manejo del bucle.</li>
- <li>La declaración <samp>with</samp> toma un objeto como parámetro. Cuando la utilizamos, especificamos un objeto una sola vez; luego, para cada sentencia dentro del bloque <samp>with</samp>, se asume ese objeto.</li>
- </ol><br style="clear:both;"><label class="btn prev" accesskey="p" for="_uniendo_todo" title="Uniendo todo">Volver</label></div>
- <footer><hr><p>© Copyright 2021 Robin Nixon. Todos los derechos reservados.<br><small>Generated by <a href="https://gitlab.com/bztsrc/gendoc">gendoc</a> v1.0.0</small></p></footer>
- </div>
- </div>
- <script>function m(){document.getElementById("menuchk").checked=false;}function c(s){var r=document.getElementById(s);if(r!=undefined){if(r.tagName=="INPUT")r.checked=true;else document.getElementById("_"+r.parentNode.getAttribute("rel")).checked=true;}m();}function s(s){var r=document.getElementById("_s"),p=document.getElementById("_m").getElementsByClassName("page"),n,i,j,a,b,c,d;if(s){s=s.toLowerCase();document.getElementById("_t").style.display="none";r.style.display="block";while(r.firstChild)r.removeChild(r.firstChild);n=document.createElement("p");n.appendChild(document.createTextNode("Resultados de búsqueda"));r.appendChild(n);for(i=1;i<p.length;i++){a=p[i].getAttribute("rel");b="";c=p[i].childNodes;d=p[i].getElementsByTagName("H1")[0].innerText;for(j=1;j<c.length && c[j].className!="btn prev";j++){if(c[j].id!=undefined&&c[j].id!=""){a=c[j].id;d=c[j].innerText;}else if(a!=b&&c[j].innerText!=undefined&&c[j].innerText.toLowerCase().indexOf(s)!=-1){b=a;n=document.createElement("a");n.appendChild(document.createTextNode(d));n.setAttribute("href","#"+a);n.setAttribute("onclick","c('"+a+"');");r.appendChild(n);}}}}else{document.getElementById("_t").style.display="block";r.style.display="none";}}document.addEventListener("DOMContentLoaded",function(e){var i,r,n;document.getElementById("_q").style.display="inline-block";if(document.location.href.indexOf("?")!=-1)document.location.href=document.location.href.replace("?","#");else{r=document.querySelectorAll("LABEL:not(.menu)");while(r.length){l=r[0].getAttribute("for").substr(1);n=document.createElement("a");n.appendChild(document.createTextNode(r[0].innerText));n.setAttribute("href","#"+l);n.setAttribute("onclick","c('"+(l!=""?l:"_")+"');");if(r[0].getAttribute("class")!=undefined)n.setAttribute("class",r[0].getAttribute("class"));if(r[0].getAttribute("title")!=undefined&&l!="")n.setAttribute("title",r[0].getAttribute("title"));if(r[0].getAttribute("accesskey")!=undefined)n.setAttribute("accesskey",r[0].getAttribute("accesskey"));r[0].parentNode.replaceChild(n,r[0]);r=document.querySelectorAll("LABEL:not(.menu)");}try{c(document.location.href.split("#")[1]);}catch(e){}}});</script>
- </body>
- </html>
|