index.html 340 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006
  1. <!DOCTYPE html>
  2. <html lang="es">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="generator" content="gendoc 1.0.0: https://gitlab.com/bztsrc/gendoc">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Aprendiendo PHP, MySQL y JavaScript</title>
  8. <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>
  9. <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>
  10. </head>
  11. <body>
  12. <div class="frame content">
  13. <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">
  14. <input type="checkbox" id="menuchk" style="display:none;"><nav class="side nav"><div>
  15. <div class="title"><a href="#">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>
  16. <div id="_t" class="nav">
  17. <p>Capítulo 0</p>
  18. <ul>
  19. <li rel="prefacio"><label class="toc" for="_prefacio">Prefacio</label><div class="current">Prefacio</div><ul>
  20. <li class="h2"><a href="#prefacio_audiencia" onclick="m()">Audiencia</a></li>
  21. </ul></li>
  22. </ul>
  23. <p>Capítulo 1</p>
  24. <ul>
  25. <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>
  26. <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>
  27. </ul></li>
  28. </ul>
  29. <p>Capítulo 2</p>
  30. <ul>
  31. <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>
  32. <li class="h2"><a href="#configuracion_servidor_desarrollo_que_es_wamp_mamp_lamp" onclick="m()">¿Qué es WAMP, MAMP o LAMP?</a></li>
  33. </ul></li>
  34. </ul>
  35. <p>Capítulo 3</p>
  36. <ul>
  37. <li rel="introduccion_php"><label class="toc" for="_introduccion_php">Introducción a PHP</label><div class="current">Introducción a PHP</div><ul>
  38. <li class="h2"><a href="#introduccion_php_integrando_php_dentro_html" onclick="m()">Integrando PHP dentro de HTML</a></li>
  39. </ul></li>
  40. </ul>
  41. <p>Capítulo 4</p>
  42. <ul>
  43. <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>
  44. <li class="h2"><a href="#expresiones_control_flujo_php_expresiones" onclick="m()">Expresiones</a></li>
  45. </ul></li>
  46. </ul>
  47. <p>Capítulo 5</p>
  48. <ul>
  49. <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>
  50. <li class="h2"><a href="#funciones_objetos_php_funciones_php" onclick="m()">Funciones en PHP</a></li>
  51. </ul></li>
  52. </ul>
  53. <p>Capítulo 6</p>
  54. <ul>
  55. <li rel="arrays_php"><label class="toc" for="_arrays_php">Arrays en PHP</label><div class="current">Arrays en PHP</div><ul>
  56. <li class="h2"><a href="#arrays_php_acceso_basico" onclick="m()">Acceso básico</a></li>
  57. </ul></li>
  58. </ul>
  59. <p>Capítulo 7</p>
  60. <ul>
  61. <li rel="php_practico"><label class="toc" for="_php_practico">PHP práctico</label><div class="current">PHP práctico</div><ul>
  62. <li class="h2"><a href="#php_practico_utilizando_printf" onclick="m()">Utilizando printf</a></li>
  63. </ul></li>
  64. </ul>
  65. <p>Capítulo 8</p>
  66. <ul>
  67. <li rel="introduccion_mysql"><label class="toc" for="_introduccion_mysql">Introducción a MySQL</label><div class="current">Introducción a MySQL</div><ul>
  68. <li class="h2"><a href="#introduccion_mysql_fundamentos_mysql" onclick="m()">Fundamentos de MySQL</a></li>
  69. </ul></li>
  70. </ul>
  71. <p>Capítulo 9</p>
  72. <ul>
  73. <li rel="dominando_mysql"><label class="toc" for="_dominando_mysql">Dominando MySQL</label><div class="current">Dominando MySQL</div><ul>
  74. <li class="h2"><a href="#dominando_mysql_disenio_base_datos" onclick="m()">Diseño de bases de datos</a></li>
  75. </ul></li>
  76. </ul>
  77. <p>Capítulo 10</p>
  78. <ul>
  79. <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>
  80. <li class="h2"><a href="#novedades_php_8_mysql_8_sobre_este_capitulo" onclick="m()">Sobre este capítulo</a></li>
  81. </ul></li>
  82. </ul>
  83. <p>Capítulo 11</p>
  84. <ul>
  85. <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>
  86. <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>
  87. </ul></li>
  88. </ul>
  89. <p>Capítulo 12</p>
  90. <ul>
  91. <li rel="manejo_formularios"><label class="toc" for="_manejo_formularios">Manejo de formularios</label><div class="current">Manejo de formularios</div><ul>
  92. <li class="h2"><a href="#manejo_formularios_creacion_formularios" onclick="m()">Creación de formularios</a></li>
  93. </ul></li>
  94. </ul>
  95. <p>Capítulo 13</p>
  96. <ul>
  97. <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>
  98. <li class="h2"><a href="#cookies_sesiones_autenticacion_utilizando_cookies_php" onclick="m()">Utilizando cookies en PHP</a></li>
  99. </ul></li>
  100. </ul>
  101. <p>Capítulo 14</p>
  102. <ul>
  103. <li rel="explorando_javascript"><label class="toc" for="_explorando_javascript">Explorando JavaScript</label><div class="current">Explorando JavaScript</div><ul>
  104. <li class="h2"><a href="#explorando_javascript_introduccion" onclick="m()">Introducción</a></li>
  105. <li class="h2"><a href="#explorando_javascript_texto_javascript_html" onclick="m()">Texto JavaScript y HTML</a></li>
  106. <li class="h3"><a href="#explorando_javascript_scripts_cabecera_documento" onclick="m()">Uso de scripts dentro de la cabecera de un documento</a></li>
  107. <li class="h3"><a href="#explorando_javascript_navegadores_antiguos_no_estandar" onclick="m()">Navegadores antiguos y no estándar</a></li>
  108. <li class="h3"><a href="#explorando_javascript_incluyendo_archivos_javascript" onclick="m()">Incluyendo archivos JavaScript</a></li>
  109. <li class="h3"><a href="#explorando_javascript_depuracion_errores_javascript" onclick="m()">Depuración de errores en JavaScript</a></li>
  110. <li class="h2"><a href="#explorando_javascript_utilizando_comentarios" onclick="m()">Utilizando comentarios</a></li>
  111. <li class="h2"><a href="#explorando_javascript_signos_punto_coma" onclick="m()">Signos de punto y coma</a></li>
  112. <li class="h2"><a href="#explorando_javascript_variables" onclick="m()">Variables</a></li>
  113. <li class="h3"><a href="#explorando_javascript_variables_string" onclick="m()">Variables string</a></li>
  114. <li class="h3"><a href="#explorando_javascript_variables_numericas" onclick="m()">Variables numéricas</a></li>
  115. <li class="h3"><a href="#explorando_javascript_arrays" onclick="m()">Arrays</a></li>
  116. <li class="h2"><a href="#explorando_javascript_operadores" onclick="m()">Operadores</a></li>
  117. <li class="h3"><a href="#explorando_javascript_operadores_aritmeticos" onclick="m()">Operadores aritméticos</a></li>
  118. <li class="h3"><a href="#explorando_javascript_operadores_asignacion" onclick="m()">Operadores de asignación</a></li>
  119. <li class="h3"><a href="#explorando_javascript_operadores_comparacion" onclick="m()">Operadores de comparación</a></li>
  120. <li class="h3"><a href="#explorando_javascript_operadores_logicos" onclick="m()">Operadores lógicos</a></li>
  121. <li class="h3"><a href="#explorando_javascript_incrementando_decrementando_asignacion_abreviada" onclick="m()">Incrementando, decrementando y asignación abreviada</a></li>
  122. <li class="h3"><a href="#explorando_javascript_concatenacion_strings" onclick="m()">Concatenación de strings</a></li>
  123. <li class="h3"><a href="#explorando_javascript_caracteres_escape" onclick="m()">Caracteres de escape</a></li>
  124. <li class="h2"><a href="#explorando_javascript_tipado_variables" onclick="m()">Tipado de variables</a></li>
  125. <li class="h2"><a href="#explorando_javascript_funciones" onclick="m()">Funciones</a></li>
  126. <li class="h2"><a href="#explorando_javascript_variables_globales" onclick="m()">Variables globales</a></li>
  127. <li class="h2"><a href="#explorando_javascript_variables_locales" onclick="m()">Variables locales</a></li>
  128. <li class="h3"><a href="#explorando_javascript_utilizando_let_const" onclick="m()">Utilizando let y const</a></li>
  129. <li class="h2"><a href="#explorando_javascript_document_object_model" onclick="m()">El Document Object Model</a></li>
  130. <li class="h3"><a href="#explorando_javascript_otro_uso_simbolo" onclick="m()">Otro uso del símbolo $</a></li>
  131. <li class="h3"><a href="#explorando_javascript_utilizando_dom" onclick="m()">Utilizando el DOM</a></li>
  132. <li class="h2"><a href="#explorando_javascript_sobre_document_write" onclick="m()">Sobre document.write</a></li>
  133. <li class="h3"><a href="#explorando_javascript_utilizando_console_log" onclick="m()">utilizando console.log</a></li>
  134. <li class="h3"><a href="#explorando_javascript_utilizando_alert" onclick="m()">Utilizando alert</a></li>
  135. <li class="h3"><a href="#explorando_javascript_escritura_elementos" onclick="m()">Escritura en elementos</a></li>
  136. <li class="h3"><a href="#explorando_javascript_utilizando_document_write" onclick="m()">Utilizando document.write</a></li>
  137. <li class="h2"><a href="#explorando_javascript_preguntas" onclick="m()">Preguntas</a></li>
  138. </ul></li>
  139. </ul>
  140. <p>Capítulo 15</p>
  141. <ul>
  142. <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>
  143. <li class="h2"><a href="#expresiones_control_flujo_javascript_expresiones" onclick="m()">Expresiones</a></li>
  144. </ul></li>
  145. </ul>
  146. <p>Capítulo 16</p>
  147. <ul>
  148. <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>
  149. <li class="h2"><a href="#funciones_objetos_arrays_javascript_funciones_javascript" onclick="m()">Funciones en JavaScript</a></li>
  150. </ul></li>
  151. </ul>
  152. <p>Capítulo 17</p>
  153. <ul>
  154. <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>
  155. <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>
  156. </ul></li>
  157. </ul>
  158. <p>Capítulo 18</p>
  159. <ul>
  160. <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>
  161. <li class="h2"><a href="#utilizando_comunicaciones_asincronas_que_es_comunicacion_asincrona" onclick="m()">¿Qué es la comunicación asíncrona?</a></li>
  162. </ul></li>
  163. </ul>
  164. <p>Capítulo 19</p>
  165. <ul>
  166. <li rel="introduccion_css"><label class="toc" for="_introduccion_css">Introducción a CSS</label><div class="current">Introducción a CSS</div><ul>
  167. <li class="h2"><a href="#introduccion_css_importando_hoja_estilos" onclick="m()">Importando una hoja de estilos</a></li>
  168. </ul></li>
  169. </ul>
  170. <p>Capítulo 20</p>
  171. <ul>
  172. <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>
  173. <li class="h2"><a href="#css_avanzado_css3_selectores_atributos" onclick="m()">Selectores de atributos</a></li>
  174. </ul></li>
  175. </ul>
  176. <p>Capítulo 21</p>
  177. <ul>
  178. <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>
  179. <li class="h2"><a href="#accediendo_css_desde_javascript_revisando_funcion_getelementbyid" onclick="m()">Revisando la función getElementById</a></li>
  180. </ul></li>
  181. </ul>
  182. <p>Capítulo 22</p>
  183. <ul>
  184. <li rel="introduccion_jquery"><label class="toc" for="_introduccion_jquery">Introducción a jQuery</label><div class="current">Introducción a jQuery</div><ul>
  185. <li class="h2"><a href="#introduccion_jquery_por_que_jquery" onclick="m()">¿Por qué jQuery?</a></li>
  186. </ul></li>
  187. </ul>
  188. <p>Capítulo 23</p>
  189. <ul>
  190. <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>
  191. <li class="h2"><a href="#introduccion_jquery_mobile_incluyendo_jquery_mobile" onclick="m()">Incluyendo jQuery Mobile</a></li>
  192. </ul></li>
  193. </ul>
  194. <p>Capítulo 24</p>
  195. <ul>
  196. <li rel="introduccion_react"><label class="toc" for="_introduccion_react">Introducción a React</label><div class="current">Introducción a React</div><ul>
  197. <li class="h2"><a href="#introduccion_react_para_que_sirve_react" onclick="m()">¿Para qué sirve React?</a></li>
  198. </ul></li>
  199. </ul>
  200. <p>Capítulo 25</p>
  201. <ul>
  202. <li rel="introduccion_html5"><label class="toc" for="_introduccion_html5">Introducción a HTML5</label><div class="current">Introducción a HTML5</div><ul>
  203. <li class="h2"><a href="#introduccion_html5_canvas" onclick="m()">Canvas</a></li>
  204. </ul></li>
  205. </ul>
  206. <p>Capítulo 26</p>
  207. <ul>
  208. <li rel="canvas_html5"><label class="toc" for="_canvas_html5">Canvas de HTML5</label><div class="current">Canvas de HTML5</div><ul>
  209. <li class="h2"><a href="#canvas_html5_creando_accediendo_canvas" onclick="m()">Creando y accediendo a Canvas</a></li>
  210. </ul></li>
  211. </ul>
  212. <p>Capítulo 27</p>
  213. <ul>
  214. <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>
  215. <li class="h2"><a href="#audio_video_html5_sobre_codecs" onclick="m()">Sobre los códecs</a></li>
  216. </ul></li>
  217. </ul>
  218. <p>Capítulo 28</p>
  219. <ul>
  220. <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>
  221. <li class="h2"><a href="#otras_caracteristicas_html5_geolocalizacion_servicio_gps" onclick="m()">Geolocalización y el servicio de GPS</a></li>
  222. </ul></li>
  223. </ul>
  224. <p>Capítulo 29</p>
  225. <ul>
  226. <li rel="uniendo_todo"><label class="toc" for="_uniendo_todo">Uniendo todo</label><div class="current">Uniendo todo</div><ul>
  227. <li class="h2"><a href="#uniendo_todo_diseniando_aplicacion_redes_sociales" onclick="m()">Diseñando una aplicación de redes sociales</a></li>
  228. </ul></li>
  229. </ul>
  230. <p>Apéndice A</p>
  231. <ul>
  232. <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>
  233. <li class="h2"><a href="#soluciones_preguntas_capitulos_respuestas_capitulo_14" onclick="m()">Respuestas del capítulo 14</a></li>
  234. </ul></li>
  235. </ul>
  236. </div>
  237. </div></nav>
  238. <div id="_m">
  239. <nav class="mobile title">Aprendiendo PHP, MySQL y JavaScript<label for="menuchk" class="menu"></label></nav>
  240. <div class="page" rel="_">
  241. <h1>Aprendiendo PHP, MySQL y JavaScript</h1><br style="clear:both;"><label class="btn next" accesskey="n" for="_prefacio" title="Prefacio">Siguiente</label></div>
  242. <div class="page" rel="prefacio"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Prefacio</li></ul><hr></div>
  243. <h1 id="prefacio">Prefacio<a href="#prefacio"></a></h1>
  244. <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>
  245. <div class="page" rel="introduccion_contenido_dinamico_web"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Introducción al contenido dinámico de la web</li></ul><hr></div>
  246. <h1 id="introduccion_contenido_dinamico_web">Introducción al contenido dinámico de la web<a href="#introduccion_contenido_dinamico_web"></a></h1>
  247. <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>
  248. <div class="page" rel="configuracion_servidor_desarrollo"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Configuración de un servidor de desarrollo</li></ul><hr></div>
  249. <h1 id="configuracion_servidor_desarrollo">Configuración de un servidor de desarrollo<a href="#configuracion_servidor_desarrollo"></a></h1>
  250. <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>
  251. <div class="page" rel="introduccion_php"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Introducción a PHP</li></ul><hr></div>
  252. <h1 id="introduccion_php">Introducción a PHP<a href="#introduccion_php"></a></h1>
  253. <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>
  254. <div class="page" rel="expresiones_control_flujo_php"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Expresiones y control de flujo en PHP</li></ul><hr></div>
  255. <h1 id="expresiones_control_flujo_php">Expresiones y control de flujo en PHP<a href="#expresiones_control_flujo_php"></a></h1>
  256. <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>
  257. <div class="page" rel="funciones_objetos_php"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Funciones y objetos en PHP</li></ul><hr></div>
  258. <h1 id="funciones_objetos_php">Funciones y objetos en PHP<a href="#funciones_objetos_php"></a></h1>
  259. <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>
  260. <div class="page" rel="arrays_php"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Arrays en PHP</li></ul><hr></div>
  261. <h1 id="arrays_php">Arrays en PHP<a href="#arrays_php"></a></h1>
  262. <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>
  263. <div class="page" rel="php_practico"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;PHP práctico</li></ul><hr></div>
  264. <h1 id="php_practico">PHP práctico<a href="#php_practico"></a></h1>
  265. <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>
  266. <div class="page" rel="introduccion_mysql"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Introducción a MySQL</li></ul><hr></div>
  267. <h1 id="introduccion_mysql">Introducción a MySQL<a href="#introduccion_mysql"></a></h1>
  268. <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>
  269. <div class="page" rel="dominando_mysql"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Dominando MySQL</li></ul><hr></div>
  270. <h1 id="dominando_mysql">Dominando MySQL<a href="#dominando_mysql"></a></h1>
  271. <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>
  272. <div class="page" rel="novedades_php_8_mysql_8"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Novedades de PHP 8 y MySQL 8</li></ul><hr></div>
  273. <h1 id="novedades_php_8_mysql_8">Novedades de PHP 8 y MySQL 8<a href="#novedades_php_8_mysql_8"></a></h1>
  274. <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>
  275. <div class="page" rel="accediendo_mysql_utilizando_php"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Accediendo a MySQL utilizando PHP</li></ul><hr></div>
  276. <h1 id="accediendo_mysql_utilizando_php">Accediendo a MySQL utilizando PHP<a href="#accediendo_mysql_utilizando_php"></a></h1>
  277. <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>
  278. <div class="page" rel="manejo_formularios"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Manejo de formularios</li></ul><hr></div>
  279. <h1 id="manejo_formularios">Manejo de formularios<a href="#manejo_formularios"></a></h1>
  280. <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>
  281. <div class="page" rel="cookies_sesiones_autenticacion"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Cookies, sesiones y autenticación</li></ul><hr></div>
  282. <h1 id="cookies_sesiones_autenticacion">Cookies, sesiones y autenticación<a href="#cookies_sesiones_autenticacion"></a></h1>
  283. <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>
  284. <div class="page" rel="explorando_javascript"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Explorando JavaScript</li></ul><hr></div>
  285. <h1 id="explorando_javascript">Explorando JavaScript<a href="#explorando_javascript"></a></h1>
  286. <h2 id="explorando_javascript_introduccion">Introducción<a href="#explorando_javascript_introduccion"></a></h2>
  287. <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>
  288. <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>
  289. <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>
  290. <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>
  291. <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>
  292. <h2 id="explorando_javascript_texto_javascript_html">Texto JavaScript y HTML<a href="#explorando_javascript_texto_javascript_html"></a></h2>
  293. <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>&lt;script&gt;</samp> y cierre <samp>&lt;/script&gt;</samp>. Un documento típico de "Hello World" utilizando JavaScript puede parecerse al Ejemplo 14-1.</p>
  294. <p><i>Ejemplo 14-1. Visualización de "Hello World" con JavaScript</i></p>
  295. <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">&lt;</span><span class="hl_v">html</span><span class="hl_o">&gt;</span>
  296. <span class="hl_o">&lt;</span><span class="hl_v">head</span><span class="hl_o">&gt;</span>
  297. <span class="hl_o">&lt;</span><span class="hl_v">title</span><span class="hl_o">&gt;</span><span class="hl_v">Hello</span> <span class="hl_v">World</span><span class="hl_o">&lt;/</span><span class="hl_v">title</span><span class="hl_o">&gt;</span>
  298. <span class="hl_o">&lt;/</span><span class="hl_v">head</span><span class="hl_o">&gt;</span>
  299. <span class="hl_o">&lt;</span><span class="hl_v">body</span><span class="hl_o">&gt;</span>
  300. <span class="hl_o">&lt;</span><span class="hl_v">script</span> <span class="hl_v">type</span><span class="hl_o">=</span><span class="hl_s">&quot;text/javascript&quot;</span><span class="hl_o">&gt;</span>
  301. <span class="hl_f">document.write</span>(<span class="hl_s">&quot;Hello World&quot;</span>)
  302. <span class="hl_o">&lt;/</span><span class="hl_v">script</span><span class="hl_o">&gt;</span>
  303. <span class="hl_o">&lt;</span><span class="hl_v">noscript</span><span class="hl_o">&gt;</span>
  304. <span class="hl_v">Your</span> <span class="hl_v">browser</span> <span class="hl_v">doesn&#039;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>
  305. <span class="hl_o">&lt;/</span><span class="hl_v">noscript</span><span class="hl_o">&gt;</span>
  306. <span class="hl_o">&lt;/</span><span class="hl_v">body</span><span class="hl_o">&gt;</span>
  307. <span class="hl_o">&lt;/</span><span class="hl_v">html</span><span class="hl_o">&gt;</span></code></div>
  308. <div class="info"><p><span>Nota</span></p><p>Es posible que hayas visto páginas web que utilizan la etiqueta HTML <samp>&lt;script language=&quot;javascript&quot;&gt;</samp>, pero ahora esa manera está obsoleta. Este ejemplo utiliza el más reciente y preferido <samp>&lt;script type=&quot;text/javascript&quot;&gt;</samp>, o puedes simplemente utilizar <samp>&lt;script&gt;</samp> por tu cuenta si lo prefieres.</p></div>
  309. <p>Dentro de las etiquetas <samp>&lt;script&gt;</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>
  310. <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>
  311. <p>Lo otro a tener en cuenta en este ejemplo es el par de etiquetas <samp>&lt;noscript&gt;</samp> y <samp>&lt;/noscript&gt;</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>&lt;noscript&gt;</samp>, porque nos estamos enfocando en lo que puedes hacer con JavaScript, no en lo que puedes hacer sin él.</p>
  312. <p>Cuando se carga el Ejemplo 14-1, un navegador web con JavaScript habilitado mostrará lo siguiente (ver Figura 14-1):</p>
  313. <div class="pre"><pre>
  314. Hello World
  315. </pre></div>
  316. <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/++d7373a7rh83UsUQzaWZJl4xRmuUtpZQLC7V79u49+PDDMk1uueWW3bvdW2+99UUvuvFF111/5513fvn225VSR46M2ba9adOmd77rXX/5l3/5jne8Y+vWLVNT9VzOazbjsFUrFXo6ph8zKqEGoDBqXnrpnu9+7+5HH3384QMPP++5z3vk0UdbrRYiU0r/4Pv3/q//dfvNN78yl8sdPHjw4YcPeq63f/9DnAsgbLba9913//T0NGPoOk47iIFIular2fYYS5LYKBCCt1qt+fn5ou+6rvfg/v1RFGVUM2PM/Pz8lVdeGYZRFEVxHB88+Mjc3Pwf/uEbrrrqKtd1f+M3fuOmm256/Z//+cWXXDI9PfPeW29921/+5bnnnnvggQc/9rd/u379BqX04MDga3/vtWuGhr/2ta/t3//whs2bjx49Vq30lsvlNJFJklqWF8eJlJCmiWm08vm84zntoB3Mzs3P18bGxv7+7/8eEUul0s03v/Lo6NGv3nHH9PTMf/tv7xno77/tU7fdddddiOyTn/zkJZdc+tKXvnR+fv5tb3vbvn37Ljj/goVabezY2Of++XNvetMt69atnZ+bn52ZPe+88/7qr/7qzjvv+sbdd//BG970xj95+fs/+K4f3vvY9k1q8+Ydf3TLq+ePnPOxD3/7wIEDtr8gtdy6deurfv8V5XJ5dnZ23759x44de/3rX7/70ku+8IUvnL1z55ve9MZCyR0YHJivNVqtdj5foBCSNGE6KfpuFrZqNltSpkTk+36j0eCM5XL5gweP9vT01GoLn/zkJ//sz/5sz8WXfOELX7jrzjvPPefcb3/n28eOjX3gAx9YM7zmAx/8wN69e3O53LFjx7Zt23bgwAHG2Dve+c7BwaHe3r5Dh2b6+qqlEj9yZKZUKhiSaRozYfJ5FxAX6vU4DusLCz/+8Y/HxsayaH6hUDx48OCll1w6Ozv7iU988rzzzr3wwgv37dv3+c9//pU3v9Ky7UajgYiNRqNWq33kb/92Ynz8c5/97KV79oyMjDxt1/kZ/N8HBAOgCQQBR+BAKCBlpG2hlqv9LEbbxOLvXQVLrTVJqYiUlMq2kTHLdb2rrnrmza949YYNmxG4ak/6+Vw7Co+MjtqO5bi2IVNvLtx1x1e+ffc3DLDdV1zmeUIbbUinUotOh/BM46GjIMw4q1SqL3zhC699wQsK+XyhUBgdPVwqlc4+e0c+n3vmM585NDKSJMnatWsBoNlsCiFc1812vn19PWEYI7LBof6wlXYd86Wf/r6BrVu3/dvX7zhy5Mjdd3/r1lt/K5fLx3EShalj+7Mzx4+PT975ta9nxICrrroqM6MHHnqEMYuhdXR0fHx8fHDTuf29FTCaCMAQA1BKMcakTOI4Foz1lMukFGN865Ztb3v727Zs25bFrz/96U+Pjo4aQ67r9/b2Dg4OFQqF7373e2EYb9++vVKp+H6eMy5TGcfx/Mzsnj2XpUl6/gUX7jz/gka9ke3oi8XywMBgT09ldnb20Ucfn5iY2rJl+8DAGgLOuU0GgTAMo3zeV0a1mkGqEiJm236xUNmwfuNb//xtAwMDe/fu/ew/ffaGG25Ik3R4aHjTxk2O46wZXrOwUJ+cnFqo1Xsv7vX9nJJqx/YdR0ePbdq4uVrt+7u/++/nnXfelrO29Pf3n5iYXLNm7fXXvXjtmnUb1m8YWXe0t3cQ0V6/ce30sbDVbh+eGv3KnZ+bGf3J3JQTRe7AwLDvebt27axW+yYnjzuOc88995xzzjk7d+60bXtoaCj+fvzVr37pyisvq9WCgaGBNWuGpdRxEjuOYwHnnBljwjDKFqiUknOByJBgenpmZGR9GEYz09OCi3POOa9YKF1w/oXjY8f373+oUW9uWL+hWulNknTn2btqtVoYRP19A2RgeGgNEX35y1/cs+eyrVt3VKtVy6KJiRaRsWzRbLZ9309l0Gy2LZsQmOf5uXxhz6WXvfrVr960aZMQIgiCN77pjWkqjxwenZud2/u9ex58YH8ulyuVSvl8gQGbmZk566yz+vr6brjhhrVr14yPjw+vWzczM7OiGPwZ/AqDugVPtChIRkBa62UNB5a0Irr6zrwrdt7RGuZE4Hm2ENbMzLxSyrbtfD4nONOaHNchoGKp1D8wUCgWuRBccEuI173hD6+44opY6p6ewujYdLFUsG0PjGaZD98tVMiscxKnYRQV83mldP9AH0OWzxekVEE7SJJ4dHQ0yyzNzc31lMtZl8Y0TdM0RjSTk3OO4wBgGCaM8a7vDN0tiUmltG2nWu39zne+29vbWywWbdvJ+XnXzbVaoefnN248641vvOXcc88hMK1m+OMf//jeH9574sTUeeef39c3MDU1nSRy48aNuZwbhQlDxjm3bRuAGGNBEA8M9AswMzMzjdp8ux1wzhG5NsZx3GarJaUSwpJSaW1mZmfzhcIf/5e37H/wwQ9/+EPnnHvu6173uiAIuRDGGM65K8Tx48fXj4wcOXR4dmamXC7Pzc0Vi8Viscg537Vr11133fXFL34pXyhs3LjZc32tiTOhlMqa79mWDdpqtdquz33fa4dJux0SQJKmpVLJ831DFEZRO2jHSTJfq/X0lA0R49z3faU1MtRaM87bQdDb29s/MNAO2tt37Kg36rNzc5VqJUkTz/OSJNZGSiWLpWKhUNBaakWWZc3NBf/8ubuf8/zdV7z+lr/78Ddc53AUppyz2sI8mfXDw2sYY7ZtT05Ozs/P+4X8pXv2bN5y1tf/7d8++pGP33jzzeVKResmACitPN+3gckkypK9vu97njc/P4+IrVar2teXnZBcLheEYSaqoI2enJrSxpR7ymyMtVqtOI7Xrl3TDtrtoF0oFBzXBQA/57/3vf/vN75zzwff/4HnX3vdjTfeeOTI1IYNa/r7q9PT88jQtm2pIqWU57nMttpBEwBdz+VCWLbVbgdpmpZKpWpv78DgYE+l8uIXv/j6665rtdvVavWhhx5yfX94eFgpJYSYnp7asWN7FEWzMzOVSmV1jTPO4D86uuWojIAhMCDkwJCo2y68k4A51XfWRhmjM6leRGSMATCtTRylvufncrlWq1mv13t7e7Umy+LzzXpfmigy8/Pz9Xq92lt95tXP+h//+D/qzXoURINr1lz5rKuVSprNhd5KJW2nWX+yrgcNAMCFxbh47NAh/7vfuf+B+wcHBjZv3jw4NHzXXXc9/PBBTTQ7O5vdTKZOnACA7Ap54L6fFIvewMA6z3MY40mUEunFoPai7yylKpfLZ+8459Zb3/vyV7zUth2ZaiImLN+QKJfLQ8Prb/vU5y6/fLS/v1KtrhkcGpmevjNN0zVrNjLGHj74Bdv2evv6lDRGay6Y0UoIpo0EgHzOnzwx7dqsVCoXfH9ubt71cgTIuNVsB1xYwnYMoLAdTVDw8612eP8D+4N2e8Oms/oHhhbqzWpf/30/+lEURZft2XPF1Vf/82c/u2P79omJExs2bNy0aVNtfl5KqaQkoqGhoVKpdO+P9l397Of09w0pCWSAMZamSgjLsb1mIwKuS8WqEEmaGK0sMrbU6lvf/taRo6MP7d8/smH99rN3EMI3vvH1r//71x3HfejAgWc961kjG9ZfuPuiH/zwh9qY6ZkZZfS6DesbrWauUHj1a/7To48++vFPfuLaa6/1XHehUXd8t1guAGPNdgvAuI6vFNZqtSBs9PXljh6ZDKa+88ijD208N5fP9bZa9Y0b16ZSNeYWfN9/yUte0mq1br/99ksu29PbWz3w8MNciHUjI1opY4wQwhjjCCdNU2MkI+O6rtY6juPMLgshSqXS5MREHMdZGPqcc87Ztn37Jz75ic0bNx0+fLhSqVxw0UWtoH1k9MgXv/Jlz/Mee+yxa665pnegv9FqAmepUl+762uJFps2bSIylmUqlUqzGVarQESCi0azyTnk80XGjJSp0RSEYSIlMGyHoZ/3DJgoSdph4OX8TWdt/sa/f8PxnPn52ubNm3fv3h0nMRHV6/UgCO7Ze09joT4xMVGp9JTLxdUKbJ3Bf3Qs851hUUmdlsc0ltNE+Tvf+U4A2PfAw5s2bWSMjY8fXzM8nCQJABhtLMtyHLdebzq22LZta7VasW2LTFJfmDtry5ZqXx8Bnnf++WtHNmzZuuXQ4SMnTkxMjI0pot2X7J6enuOcuY7T6QPCECEjIyFDTJKk3W5PTU3Ozs7Nzc4FQbB588bzz7/g4ONHJicmRtav37Rp0wUXXLB27dokTXft2jU4OCjT9NBjh2wnt3Pn2ULwKEo6LY46yBQ4ARGF4HGUjKxfu7Cw8OznPHv9yAbGeLsd1mvtCy+8cMfZZ/f19R06fGh8bHx6etbz89u2bcvncgODQzt37ioWi0S0YcPG9WdtZUIIzoXgYBRnjDEgopxvh2HCEIQQjGG9XpNS7TrnHMtxtNa27YRR5Pu5s88+mwir1WqaqoOPPLJv309833/e836rt6+vUqk+fugxEHz37ouHh4fv3/eThfk52/Wuv/76/r5+hiyJ4507d7mum8Rps9lst8NLL738rM1bARjjluCW0WTZlhBWEATFolcoFmfnpqVUpVLJaDh2eDwIgqmpqYGBgZe97MZSqTQ0NCyEeOCB+6dnZvbsueyZv/bMUrlny5atE+PjDz30UBjF111//XnnnW8JWKg3t27ddvlllx8ZHT1+/PjFl1zi+v66tSO5XJFzrjSdtWV7pZoPwtpQ/9Yd23b39KVHjz0+M0Eb1+94xrM2uR6bn2RXXHGlovrw0NDxo9MvfOFzBwfXPPjgg4CYpumPf3jvxIkT69auveyKK3p6ejIGtDbaGOMITsbYthNHsVLa89w4int7e9MkjZN0x9lnj4yM1Ov1arW3r69v//7909Mza9esveGGG0rlcl9fvxDW/v0Pzc3NXXjhRc94xjMAII6ToeHhnJ/73ve+9/jhUccSz/2tF6xbV00SdF230YgcR3BupUlSKhU55/X6PGMsl8vJRPdW+jeftUVwwRhLpWw2W5s3n7Vly5bzL7hgbOzY/ffdH0bhzOzs5ZddfvjIkXPOu9DzvH//938fWbfu8YMH8/n8i3/7hg0b1hsDeAZnsARiCIgckSMwhoyDZghgUtd1xmZnh9esCWzr29/5/s1XXwbQbXrx95/54jXXPMey+N69P7jkkkuazSZ1mgKwY8fG79n7g5xvgaE4Ic7Enkt2DQ32FEplzkUYxZZlKwLGWBjFvu9HSep6LuMsjrWfy4VBKDoczE6D3ywr+JN9P3rs0UelSqVMC7m8UvKlL30xAFfMsx03jmPf940xYRhalhWGYdbkkYgykcA0TbXWggmBp0Q2CIC++pUvj42PDQ31Ts/M5nw/l8+HQes1v/O7UZBpHllB0C6XS0mS2DZvteJcztdaR1FcKBTCMNRaITKyXWnI8xwiiqPAdV2OpLWWSZLL5WyGtdp8uVQUAhuNZqlUjpPUsqxms4mIlmVZlpXd5L733e9OT0+HUeTYNgA955pf7+sbIt9OkiRrCOJ5rtYqaAVZc3jbttvNVrFQ4MhardYdd9xRbwa/9fwXDQ4OEyEQJ0IltWXZwmKNRqNSzSklT0wd3bhheHp29jOf/kzJLyGA0tpozRju2nXORbt3AxBjKKXOyscty1qs6MtCq5ZllUru3Fwrq5PmnM/MzBSLRSEEIgJAkiSW7SWSLCcx2EiCMjMldI+h1bD1tqhdKg6cqDfH8+LcZkOSmO3trYQL2vdRaxsZi5LYsoTjOfPzC4VSUSkldQfI0PU8j2G7Ufd9PysyIjJf+tKX261mqx309/W1Wy3Xcx3Xu/76640x2YQdx8nsexRFnucRUZou1eUbY9I0FUIwxlIDlmVphVEUOY6XFVVWq/ko0mEYlMq5dtBM0lZPT3Hfvn0/uncf05xzXiyV2q2m1iZfyDNkV1555eDQUC7nz83N9fSUoyhJkkRYFrf9Y8eOvelNb3rrW996/vnnLxL/T9N16Qx+RXG6rCDpoFwufPehhy7YvXvK99/11++767++GRYjGwRGCM54VgjLs64XlmUDsKAdzMzMZN2LuGURQTvY5Oc3GmIyVYzbiVTIhJQpETImCCTnVr3RdBw3CEKtNBFlsvJd+0lAptkKJiZOMI5EptloEpm5+cbQ0FCaGsaYZVlxHFuWZds257ynp0drnenLpGkKAJZlCSEwk+TrRrQXZf/qCwtBOzj0WJNbolVvAudgVBylgK6weJKklu0EUaKUUgZsx0mlNmRczzMEBOj5OUOUGGLYKcADIqM0cCBjPM+TUmoiLmypdRgrYDyME2OAQDuuzzlP0zSKU9f1OOftIDo2Nu64rkxTY0yl0ttqh4yU63lpnGitbNtuNgPPcQQXRmsELJXKURiOHj7ywAMPjI+PX7T7slKpRymTRe+zfZHWCpAJweM4SZIk5xdsywnacbsdBY2QjGFCaKkAqNLbd542WbvtTK82CkOpdD6fazabjHEurGK5TMZMzzRc1yXAOE091yuWy1pr0MZx7CRNCZGAhOBSauHYlrAdIRSzNTkETFgQthPbKjAGfs6z3HKz2c67PdPTs5VKRTCWGcQ0VbbjSCkBUWudZRSUVsYYDYxzobVhjBtD9XojCMKpyWlCaDVbAISAPdVqHMdaG8/zAZEAGefIGONCGSM458KSSlFXBRI5t1231Ww5Xq7VahcL5Xw+J6VxHCcM42YzYYwhsjCMlFS+5yNgEETNZhsUaG3mFxbIkDG63mxqpS674op2EEqtheUsNFqe5xkCYdmGqFarCSHy+XxWIcU5l1L+/F0dzuA/FgyCoUzhmACAGTIAZlHPizHkHBYpfR3f+WOf+ufrrnsRgPnOd35w+WXPmJ+vEQFnXOssUM26+khAREIAglFKGWOYsDjnmRcmlWGMochaJaIxRikFBDZ3ECFrfLFYj8UZctahZi/vfq3ReeqxOgbLCqmWsoKgtSIyiFm9xmKUHaVehS+jl/Xn68hmoslOGSyS7ZcffjVVA1KYpUG6hyAiBGDIZJrmPO+xRx/55je/vXnzxj2XXWU5hW6ZJ3Y/OnTF4LM6KLX4GFcpQbMaIAEDTAFT0AUweRCzwFsgh8DkwJoETED1AQngTQDieqnsynQJlXDKV959UhizsiDsabCqntzdRoHZ4TOnZJm+PsqssrZDzSSGT12wAtFx/OPHj99xxx0vfvGLM5fCcZwwDM/4zmdwMjK+s6Cs+g+YoJSBFiwtFPzvPvTQxXsunc45b/+L/++u//rHsJzvfCoHmxCRc9aNWtMiXw2kIgJgaHMBhExnIl8cHMG11lIprVMEZJwLYTNkSuqOujZ0tKwBQHd0D7LrNCudAQBQqJ56YY8hYEvCTqf8JxpDxpjsY2RIV+PL4MnWc5nxz1KcdPJRcXXiuiuZISIiQ67vyFSmqdy5c9fIyEbOmbC9VGa1NsvVQhcfLJsJ8ay13Cpmsjp07w0kAAFQAnAwLoABTIFEN8qkgfjqWf2rMLdPWK9P4R14ct3d4mMEIJZ1NASkbvb6KU+GIAiCs87adMMNN/T29tbr9TRNbds+Q9g4g58Tp7fOwIhA6+xSNwDAGCJDxjCRxhAyxrOmHobIsixLWEopZMJmAiwA6Bh1rY02lCnEIwBHZIx3BOOpU5mSNZHPrgaO7KlfGKzryZ76PGPQVYPMJJO0zpoHruKKfmqTWG6dV1Vxu8KLOePCEkAouJWmKVBsWbYxJk0kdArWV5z/8vtEpjz/NG+oKWsKSTfJAAAgAElEQVQiToAKiAHYgJkMGAfCrsL4z2abnraq5RXOyaKoMwAyIAKkbnxsdd8mYxhFcalUajQanucJIbLgvlht050zOINlWFw92RWFS+2QCDMrZyj7ow0Z0AaRhFXUhsdJioiO63LO01TV64HjOKzrYSJlPUkJkDmunYlKkjGGjNYGwTDMJOczzSaAjGACXZb2U4OBZb5zBwgEqZLZ7DP69qL/v2rV2e7YJwctMt952bUNi3efVYzdfe8SCCBNpdGx57qWEEmccC5cx0u1Vktef4fTfep4J8nfPK3KDASAneAAKoBMPNd0/WXRtYM/wxxW2U7jZ8ETD4BLfxN2/OhVHsB1nTAMi8XcwkLiOE6SJJzzLO/6s83yDM4AlqnvU9c6d35fDKQy5CgYACPURBrAGAOIluMKpXSzGbTbrSAI4jgJg0ApJWXKGMt7fk9PT09Pj+e7ilQnspDFnhkidVqKLe7BsSMPstRc7inhiaufCAApC7tTR3JGa5350XiaPoQr4qnKuGAW5vgFNKXPwkFAkN3EOOOc8Xa7rclY7mIAl056xxL+d+6jEYgBakADJIB4RwbMCAAGTAPQU9c7/xmxqnXy07G48/hZhs20yC3LKRQKQojMg7YsS8qnrd/HGfwK4HQ7r0ytCLTO8omEDIhIKamNZMIngFYrODF54sSJCZmm1Up1cGBgZF0/54RAUmHQkPPz88eOjSPCWTs227btuo7rupYQHAGBjNFkTMemIBEQEgMAXLEF8elmiU9ok4oIBFlz38XABmMZKwxjClZzcpYMLi6W05yMrHync2f5xbQkZ9zmWkoiyvm+bVtKKaO6MlJLrMHOy2FpWkvxjadP1Kz73WR6jxpAA9lAFrAU0ACwbriZTp7V0zGV1X3MldzyZb5I5jV3nBIDixu6pwYppVJqYaGe6eI6joOIaZriL2JJnMGvLJ4kLoaIjDE0RiuVxEnYDhqtVj2M2kz0hjFbWFjgnPf3D/X2VkGbdrs9PRUgEiJyZnHkPT2VSqUaJdEjjzxq27bnObZlIaLRyijFEDhnnbhAprxBAAAaV+Fz4RPbGFAnoJ1tKjnnnpfLCqMd11m5ZemTYOnlK19mSyQ+/AUYxaziniEDRMG5lDKKItu2hW0lKl1O6D55fqda56cPhIsGevGgi+nQJz6Gp9E6/yx4kslg9/6azXzV0y6Xy1EUaa1brZYxxrbtrKHizzPdM/gVR1dnQ3lMudpIV/hamzRNHIcrnQAwpZXSMDVZm52es207TsTU/HEUbrU6UC5VOPMmTyStdhrHkqNgjBmtpIwdC3P5nGNz2y5uGLlwYmJmYnyOC+V6HJk2JkHUjBkEhUgAypBBJME5SvZEryWLS2NWeMW6OcWsm/WpL82sMzHOASDjnJZKpZF1IwP+gECHC55JUyIi59xoo41muEJYIAVugLnGFYzZCowCm2LBmcETyFBxrTS0ZQ5AWG6vsFSiwiyuwhgiY0CUycOv3OHU2FIqRCOEhQyN1gjZnI2UafYZlZZKK26QCYHICCirVlRKZSUk3bAmAixmvQiADFNZ2gCJIQkAQGJkDEdmWwzAGJ2QUQA6CzUZIjKMMYbc45xJxdI0RcEBgNAAGoMqo5qREYL7CBSFoW2jY7tpGnFLJkmbIbk2R2BapcYYBIOItm1nzEsuuMV4Vv4CCIhZgxvIFAYQme3YluBapsoYzrlSplAs1pstIYQxBNDpAoWL9B4CYZZu5ATU5epRFt466V6JIHTmDWc9WTQAAKZL7z75gUbQDDs7I+oQOE6hcdDScgMAg9rYQhNoAyQEkIkF6/j3SICEi3kJwhWW7Rn8koCIGGN+LrdQqxFRuVxOkiSOk6ww+OccnHGyHUyNCWMJ3FFKG9KubWvSmnHgnAsQuBSjXOxcJRgwZRAhK0UhxlFrQoQwimZm5sIw6Sn3pqmcm224tu8VSpzZrVYYhu0wjJOUAyAZrbXmSEKIOEoX6pFtMcexXU8MDKyxbX/8+CggrN8w7OcEUYpMA0iGhkARaSKNiD64KwZws2ZRSxWR2cXNOJyqvt95MWMs211GUaSUmp2fabYb60c2uegiMgSGgAisswdfsVszMWIC0UJggkAbsEzKCG1ba62JactyhJOXikVSKEXM6pbPA0NY4rqs6M8yYIwQABkgEhoD0HVLGWLWEhA7yQDKOl6TOYlOkKnuP2HgbhX/cieXEIhZwkJDcRhxTq7NAUkpSdpkwX6Lu0KIRJkgjBj3fTcXyRSgyzDrpDAJALQGBLJty3G4MWkqYwt4tVLWWgWtdpokru35ngfE4jg2RhmjiEgrY1B1KTSU1SIiIgJwBAAj40gBGa2RcyF4miZaqySJpeKd5mQdxfJF2jQuEZ4RAEwneIFZKRUsZeSy6JdZTcoR0GSOdNbQfrnE1uIg3XkAAIBWWR/G7lZKa4XQ6R/X5fR3Fhkxs9rs9Bn8bwMCGKWTMPAcGxFVmhgl874L3Tq4nwdSJUopBRaBcJ0C46RiFSeJbWV9IBBZ9k/n9V0FUYbIATWQMUggGGPIMh+zXq/PzdYqPX05r3TkyNE4pr6BdZZdqNVbzWY7TY0x0G3axhDBMFSpAqMAgIRJ46RWazDmFAp+tWdwoTY5eXxm+/aN+WIxSdqIEpnhzCASkdJGQ7LCthIRc7ncKabZGEPIaKVISNZJNstEaq3b7XatVms0GuVS1RjjeV5GuaOT+zGfggIf5ywyrF9pMct6jM2V5XKOKeXJaIENwY3H6oxxbmICQGYtF2l9kpEBAJGQUaY6AmC6Wk5oSCMCImFnpwBZlxDq0k6yD/UkRWgIyDWHJVKI7NhzZhkiSZJASLC0QU3MsizGmEylMsYBx6CRhjiLgQvQcXcQ4CYzUJyh0MYoLX3fYYzSVFmcC4b12ny71arNzzebTYaW53k61a1WK18qZKmBTsklQLZNIYDFUnIhOCLGccKABGfILWFZU1MzAwMDYRQ5jhNGEVDm+Wakb2JEALi8YISyIsruHSnbbBHSogdtacSnHHrSDFS3tLXjOANAtyjplL0dAWi+7OugJRJIlpRAQlw2jsGV+lmdwS8Hsi21Usp1HSIKw4gxZlnidD3gVzc4065vJZo5fnHNOstxc47tIBBStOLrF60z4xwyuwcAjHEESOJ4od5st4NyuadQKJ6YmB4fP97fN8CYWKg1W60wjlMCbgzINI3jxLYd3/dlmjYaDcGpXC5rTVpKv+A+/tjjA4O9gwPVdsseHxu3bdi8eZ3jcMYJUAvOXMfmAozRHvfwCfSDrO3TorFbJDKnysiVmstJKTOeRibFkHVIcl232WxmApW2bS/2vjutDTUxw9BAaozWDIRlsTxjDJTKC8GFNnEY6bBlC6doO0zY0nRI1rDM7p+OU9VVC8Ts/gEd/h+S6ui9LrqZ3ZZOuDhmhidbBEve+tLRkyRmyPL5PABmKiWWZTuuxxgDTKMoDOPEcZxyT0+SRo1W3Xask8cEAOScIQqlU611miaIUCwVZRqfmBjzXGfHjh2u4wBw23ZcG4AoiI0QnDGQ0hhjsrIgYwjAuK5IEhVFqRAiS35aHDnjqTJSqYcPHNyyZauX8zyv+8E7UZxltSLLykmoa6CXznDnmQ7s1ZDdNS5Z5+X0uuzGsuRHd6FW4st0jXTHNC/mKOiJ7z+DXyJ0QqNpSsYYx+GIEMeaMXCcn5eGlEoZp8mRsckgVohZPADAGH6aq3lRfR8YA2Bg0GT3eqVUEIT1etu2c5XK0OzswuNHTijwudc7X4N6Dcm4YGwipZWUcaqS1Ei1MDsrlXJsG4Q9P1NngjuOTSAtnq/XYpnMlYrV/EixPjc3ac9v2rzWQsvohEwCwghLEIOgHaxo0Gzbhq43ioiZbRWZCNJKyLojE5GUknPu+77rurX5RhzHrutmHI4nt6GUGmEz8vLCdkJ0DGNzDKIEyC05DpTARw96JCUpTc1GpOPBim/QZKP91HRQdmPIotNEZIxGZAIE55yIGaOklIxBtv0HRG1oyYgjQvc28EQgoaUFIREqQgOoCMkgadRgOcwvhImOyXZzDnKcb6NUUCjYdslutbRSQU/BF1acRKHNbADghgEgGgsAmRFAjBg4wiKt0jjK5RzB2OTc3Pz8/No1w/19Fd93sRNYBgCwHO3YHLoBl6x6TkolpcrlXMqByToz4JLFUsrIVAEl+ZyoVH2GIJUGgiXKYNfmnuSwwnIbDbDM/mXPrMo6Gzy1TPwk60zLniEAhCgjf3c960XnGVcy5WfwywwEQIacg9ZkDFkWSxJp2WRZ1s8vmuL6UOYwPd9IdZQFJzIpH85XXiId62yycr7u+ieiJEmCMOScl0qlJEkee+xQFMUjI5uiKK7VYi09UkrKNE4CKVOtJRFRYo5PHO/r6zvvvPPSRP7kJz9RZNauHV5YqA8ODSRJNDs7Z4lqT08+DKOZmdm+vlKhYBkjU9lOErQdDkCulXtiCSwRBUGw3ORlm2JDqFeK6nLOM913gA7ZOfM3hRBKqTiObdtebu5XhGPbvsdCy2424+ML7sxC++GGmZ6ZtUqW61gjJdi4bk1pwJUqeuTgI3HYeP5zrsDVSD9kh9ZaR1GUJDHnzBjtei4iap3l6TBL/cWpDONESmlZ1mJY5qcM3g0Xd0PhZNsWE1YQhUGoLCvneSxoweEjE0EQbd68bu2I4yrRaiT1RtPzTD6fB5NkZ7qzSScEAKWkQuM4whDZtgUAs3NzY2NjW7Zs2bplk+fYRGA0GE2zs/PHjo1FcTOLMkkphRBCiDiOjTFDQ0OVSqWnp2TbgjJ+t4FUyYxQaVlCyhSRsjJTS5x0B17krJyypJcM9Mn2MLumBFsFncWsJOKBiz/LRycgAME6LwBY8rWxm708w9v4vwhK6TBMM8oNkTl0aOzxxw9t2LBhx45tlvXz+s5RnMTtZG52LkxNqWeAccE5N6cvWepYZwnG8CwgjQwMGK0TbVJVyvcI5h0+NjE13Xb8Xs165psLUcKYseI4jsJQJnUpY6I2kZYyHVlb/rWrn3HlleuOjifjU8eOH59utAIEa34+sSzBealeN0G7IRNHpU7YhmpP0XEgiRmitixtjJZp+sTZZpqci6GA7EljjCZQK93QsjAI72JRKtPzvDRN4zjOym2f/FS2rbNb2p6cgwOPzN93dHqu1hhvU21hQdmubTvFQnndGn1gAzDwDh7cXhWT13bD3NBNNT7J4JyjMUSk0zQNglar1UIGvu/3QMlx7GwrwzgYUmmaNpphsxVqrT3PQ8Ssg9fisZ4IRgzAZK3CNFOERMygYNKoINFg5YxlT8zDsbHg2PEwjpOWabZNtVplPF9sxrHCds73dSIRAIgjMU4WECAxBIOMCDQCOY4dhs3ZmSlbsGpP2bYsmaokTvK+ZzusXCpMO9YFF1xk2w6RWZSeqNVqCwsLAKq+MI2QVioVzrlWkogY48wSaIzggJhwJi2hQWsjDQDojn8tAEBjprPVqfXoMjSWyBEdG71ElAAwejVpwU7M+hTuR2aXs7uCMEvPpNmdPovNG4OdCPWi1hMtj7EgLZvVGfySARHzhcxvE3Nzc9PTx7nQ9cbM1HRucHDw5xzctrnrFYulomd4sVgMo1RKmUSR7628HroKopQpaXT3mGSyBGUul2uH8czMDDJmWdaJE5PaMMZycRjHcZzKNMv2SJnEcRhF4dVX/9qLrlvnOpBqPjIycmJy9tixY73VAUBwXeE4wrLcnC8cG1qtufHx48Wi6OnxicCQQaWINKK93J9d3MVnBrfDwe5MkgygXinVUygUsphGlkbLwvxKKcdxssIBKWXm0z3JqZQKGm149PH6T+7bf+B403L9fM+6QiEfEFjCDiP5yKOHxg97OS8n46R/3UlR2szjXJznEwfPCiaNIaVUFEXtdtuQTtNUCEaUs22LgLQ2WusgCBr1ZrMdZeN4npeZucUE6ZN8hOVQSidSMZYrlr0gwMOHxw4dniMSnPOxsbEwnLzowu0b1ruNBovbc5wzayW3T3DBLCZVAqQchydJEsfxyMi6QqHAEJgQiiuliPPOliXz9Dsq0pybbqCpv79/cnKy2Wy6rut5XpYhAGERYJomZFgQBJ3QDecZOZJliUAQlOmrdAny3RMKy2IJeIoHTUSCPfHbptNZSQICMoSLYYylgxARXx6IIUAACzkRMZZRUDK5XIAlP55OHuSMdf6lRpqmYRh6njcxMRHF0c6dO0dHR6emptauXXvyGjrt+un8N9EpcU5tyBiKwjCSUCiFqTS+beVyOQZJ9y0neRDdzlWkowSSQAMYrTUCRkFYzBeNgmYjmp0LDOSY3SfTNEi0SUwYR1qFBpJGc1yryLXjVjj/h2943e7d57k5ODGZfO6LD+695/tRLLx8PsVckFoarFhClMalglsp98RJfWq6veucnFIcuUVGx2lq2zxNUs/zjTHtdtv3/YGBgazL9aKpzQIU2cfWBGAgy6FlVjjzrOv1el9fXxzHWSijv7//+PHjjuMgYC6XC8MwiqJ8Pp+5n4uWLjuh2VBCiLk8++oBs//+maNj0XBeP+uZ524d6Vu7BiWH+QX4yvfVgUePzvHBmTBpYWVT1UFcRdluHIW2bbueY9mCC2Y7VqvVSNNkZmZKqZ5qb8XzvDRNms1GrVaLE+M4bj6fL5VKmYKwUipJksUb1RNgtFFeztagwzACzrjlWpabojbAwaZ7v/fQ0aMNxvOayOYsITM5W/vO9x90C7vKZafe4JV8VYULQBCnsWNZ+ZybxFLFEpBpxRzBlVKkFUeIo6BczOU8W0sFRDnfSWMFwMolv1lf6NKTDRlFhGSMVmn247n27OxsGLS2b98uOGNIShtgnc1j3vMYQzApYEdY9fj4VKlU8ovVKI4d3yejSbaBMaO17boZvzuOE0OAyFKptDF+LmdZNgE0Gk2jokq5zAVXSlnC0lpnLR2y25sxhjFmyDBkcRIDkUxjRMwXCpFKGePSKG2MitMwDoeqfZawKE2RcyDWmJszvf31ZmOo0quUajQaruN4ji04IzJh2AaOfs7TRkcysYTtcCeJOzsJY0ySJq7TDf5YAgCUUlpr13F/6g7sDH4eZF83ACitAEDwTgGBZfFiMT8xMXFsbHTTpk29fZXpmcmp6RPHjo2uW7cuDEPHdRAwTmLf808nEiulrNVqhWKh2WwODgwqpZI0EcK2LM92HI3EObNRMERjFCBktigMVWgcpTp74k6UoOMHnMwG44xZlsUZJwIpVZykcSKTRDYazVSqdtAOo6jaW42TOAjbr7j55Vu2bhpZjzMz8cc/ftcdd9w5OzNPwITlRHGSSqUNIeNcWIBMa0LGU6na7cAYklLFcWy6sl6LfNhs+TqOU61W8/l8pmgeZ2rzSRJFUZIkWXONZXJ0ZIwZGBiYnp42xgwPD584cWJycnJkZCRjbiwy7RYTjKfzoB8/BPc9OL3QaA4ND/z6r1954QW9Z23UhZwEbYb6ksH+MI3q8/MniBJgJo7TJ3LputJLK4Bx9v+z9+ZRct3Vuejev+FMNXf1pKEluTVZtiRblpDnAYyNDSwwBgLGJox56wUI4YV1/XK5uTc3N+HekADBNyFhCFPCcM0LlxgTBmNjY7ANGGxhS7Y1z2qpWz3VcKbfsN8fv6pW25aMRDDmrVffarfVVadOnTp1znf22fvb33ayBwAKAr9YLARBwDm3ZFut1uzsbLPZaDQarVZTKcU4C4KgUCjM5XBdH9optpwILAFleZ7nKgyjarWGyNvt2PcCIu+++x7bt+9YmqVJGgNqxrXWWZqlluwd3/j2oUOzI4uXtOM4SfNisVSt1gAwSVNjzFwcaa11Ge1Go+F7nu8H86/4cxuFAFmWO/MrmNP5R5HW+qmnnhobG0uShDHm+74Q0mWf5zA/bm9PT6t2++abb37yySebrWbgB1lujAUL0Go2hOcRgdFaa3Xbbbd94AMfmJqa+ou/+ItPfOKT4+MTxpg8y6vlcn+9PnZ0LM9zt/ojR44Ui0U3Y8UlwQAQARvNRrPZ8j2vEEVRFKVpigSMMV/6gQxe85rXPvDgg3GSEBFxrtJUx8l111zz+JNP1Cq16cYs5/zxrVtvuumNP3v4YXdwFUqlKIqOTx6fmZnxpc8YIwLP9xljxhpE9L3ASdSllM78XAgR+AF1245Oevz08O+H6cq9BBeCC2PM7Ozs2NjY8cnjT21/avee3S4XWogK69etLxZLj2559LHHH0uzNM9ypXQhKujuIO1ng3Pe39+PgMNDw0SEjEVhwfP8ky58KnSrgkSGOpokJOKIAhlHrhXEsWo0Mw1SlnwDgQKLoZ+nKfj+7MzsvoNbFy6o33jDS6+++sJFi7y9B5uf/+f77n/ogUTXlOU6kVGlkgNyCAQGAAIMw5xTGxLtZVlrupX2D9eJuLLEfabACKIsy9z5nOf5zMxMpVKJosgFyC6scMOK3ElMXVXcHO0CQKvVKhQKRDQ9PT00NFQul8fHx1utVrFQmR9iPzf2z8CO6UaFHT/33JWXXiSH+myxvS9tt5f5wz9/ZMu+nx+tYSPvXzUbZ7MUIV9g7VmnPwuDc6a1NsoASClloRBpnQHYVrvRaM4qncVxIcuSVqslhCgUy4VisVgs+r7vPj4AzOsVfBqQoShA2s4MSESeJTbVRKIYBJgk9PDPn3hq595WrDw/XH324ssuHx0a8u+779ATW3cdPLK/ELA7vvG9m197fb2vkmiv1RY2jQEYCjBWCQ99X2aZJWsQCMlOTU7UKsVCGBFZZ0+IRMzdniEgkBtPDoBEaC1wzqKoWK9bIX3OmOtTB+RkjdZGA0NEYxgSQ0tgAYwFhGK1BtYePXh4/PDYxgsvn220g1KRMyOBQRS1Go0gjIwyjHHJuC88nZuZqcbgwMJKsUwGPC6QII7TRQtH3PeutV68eEm73S4UCoVCyRjrIpcsy4qFsifz2amZKPRRcM5YbgwyRhwbcWt01eixiXG325vHpyoDA3qm2ZqenW60Z+Okv1TWBGSwXKz1l/tsphEtMULJ/u7jH9dk3vWe9/iRXxQlDgI4T+KOoV2hULDGElnOeZZlUkpncoDAO1mcHp4HIDBrYa71odWKd+3as2/fPpdwq1ara84+d2Tx0jzXWaYWDC/MM3XwwOGxI8fGxsaKxeK1115bKBRO+gVZa5vNdrFY9LxAa+uUCFEUSfkrsXNHvd893RFRcI6Ma6J2O56ZmUWPly0gE5ZUlttWnOVJ0mqn5UrtyquuuOZlF/X3efv3Nz716S9/53uP+n7IpG9zlWY0dmzS9wrGWmNNFPgUelKgIZblamp6ttWOuRCAHmaMcVAq52CV0kTkLL6mp6eJSAghpYyiCBFd71/nVhRQGwPdENgxLxGlaXro0KGZ6elCsSg4N9YODAwsXbp0Zrrpluko1Z4TzRkFylqdLxvpD3yptZqcPC4F37PvyW3bHm/NYH+1z6uVyjGvyGio5s2JlH/pmgGAc0bEjLHWWmM056xULgWBLz0+Pj6eZRljmOcZAJTL5Vq93/OLUkqnIwSAuZ6UkxA0AjAyVgkRSBnEWZylWakWthP10I8f23vwsMp1uVxkjJ+zplYp+0rBxgsW79+7J89LaXuWM37nnXddcflla1YNzMzEWZKXSgU/kK1WbsgAdm5P3P1cY7YxNFj3PM9agwzBAllLZLsZuU7+ljEGhEZbhsyTXr3ePzg4pLUeO3Iky3OjDRAxxsGgtUCWCIGe3u2cNxppkq5atfoXv9gqPVGoDixeULNESZwcOjKmclWr1EZGllhL1ljGWKVSJQtKqSCwTz6xtx0nUYS1WnXRokWHDx/KsnzFiuWci+3bdyxatEhrhcjyPC+Vinv27G02G4KxUiEcHBoEpKmZmTjPZtqNJSNLd23f85obb4zCqNlqHZuaOjB2tKSpWCyVSuVSodCKk2qhgAgT4xOzjeYTTz0VRP7AYH+jOb1/3wEZ+Qf271+1evWxo+NZkltr8zzr7x+QUuzdu3d6eqZer69Zs8bzvCzLg4C7DN4vP4N7+FXhTALcmDEiyLJ8ZmYWAG+88bXlckkpzTkjIs55uVwplcorVqwwxk5NTRE9Yq0hAs7FSU92Imo0mo8//rjvB0S0du25pVK5Ix5jZyD8mHMQBesyG0QMQDAmhODSYxRmmZmcbBsmrJyNcz4xlUxOTmpr27OHPUlvuPGll754IzFfEXz9zge+fdcPj47LUiUaH5/wi9Wo0nd4fDoqxlLIwPMKYVgpFaqVsFKUU8dnWo12O7UaOOdcM0xNnmRJiUnXtO06FV0x0Pf9crns+76T+uV57sJnYFxbN4RbONp1+eg9e/Z88pOf3LZlC5MybbcXjIz84fveV6lUEIXLKc8tOZe5f/auiY8ckVPHGRxfWNJkMmuFAlWplM6OBtadu/qtcrCdmgnL/AKnIopY2en49GNnAmIMAbgxJs8159z3ZRj6BKbVaqZp7JwvwjAoV4qVShnQd58aunrBU10DrDWNrAEBMxy1sV7UFwo+NZ1ueWzvjh3jzXZiwfb1la6+ZtPKFYOMgyGIyvC7t1zxpS/ffbTtHT54BAYX3fP9R5EuXLSwWuuP8jxPbAw+y3RMCjgFABaRI4FRiiMgWGs0AwaWyKKxWliOJKzRkvmMBBhgxN2FhXPOEK0m0GgV6NTYnIQUjGFqwFgwFhiAtTA3jcdo1Wq2+2p9X/j8F+558OdZbi59yTX//c//UzJ+7I477vjyV76a5ebFV1/9/j/6I8l9BhII43aSxKnKzIO/+PmHP/zRRmOWCXXBBRv++I9v/ehH/+eaNWsWLx7ZsWP3Lbfcctttt5133nn33nvv7t27Xv/613/pS//rrrvuYkYvGRq46ZY3XX3dyz7zmc89+NMfg+Dv/aP3VQdrh8fGcqXvvOPOf/6HT+eWLlx9jlEmzWxusFAoZMpIERai0le/8v888OCPyi72V4wAACAASURBVOXoDTe9ATg89tjW8ZnjE9OT/9f7/+hTt/1jX7l+/Pjxffv2XXLJJfV6/Tvf+c7U1NRVV131wQ9+sFwuIgqtyX3Jp3mx7+FXhrWAyBApikoDA8NE7NixCd8PpPSazVaWZVEUSunleR4EXpJkR49OhGGxWCwSsTRVYRg8238jjuOvfe3rH/vYbdPT0694xStuvfXWdevWMYZ0hvLKeRfnE81pJ1KzZMlo02g0p5rNiQZrxTg5m2plCBm3SSbsU9t3HT++YtWoPzWFixYtrFb7Dx2cThLNSapYx0Jby5utJlmLlgTDwJNRwMIAjZqpVT0muNIWGBlr8zjO8xQts9q6TXB5DMfRpVLJ3SAkSZIkibMxQi4I3RhD4pzPkePq1avf8Y53/PM///PDDzywYs2aW2655dJLLw3DqNWM3WJzmY3nOPSlQV8xjtwmIHiQ5yS8eqp8ruj4VNuLcj+UnjJ2VtnM2iy3Fk7swDknkFOBCDsdgGgtWLIuZRHHsTMGcjEqoEjTNE1T6Qn36eZ6BU+1fgICBmEQprlpNpNS0UfGd+0ae/yxJ6dnW0Hk9fUVr7563bpzBrftONiKXVk0O2/Nslve9NLPffouaxce2jdWqZR/9KOHX/nKayqDNDOTIm+VyxETnk1dFzUgACJIKZ0ABsFoskhgGLPGWGPcUFfG+Jzsr1PINQYAlNLdWixDRLJgjNKak+DWuvkq7nYOASlrNPsWLpo8Ppkm6V13ffdfv/HN2/7hs9PT7b1PPnX77V/9vd97Z6FYevLJ7d///vfb7ZiI8kzVqn1DA8NxbP72b//+Fa+4/qabfqfZmn7jTTfdd98PX/GKV/71X//VdS+7bnx8fNmysx544IHlo6NbHt2yYuXKu+/+/pYtWz7xiU+sWrb003972yOPPLLp4ouOHB4bGhy+9QP/cWTZkts+dlvgB0kcf+ITn3jX7779d9785kfu++E//ctXiSiQqHKtc6O12rFj55UXXfzV22///Gc/s3PHzve87w8OjY9NtWff+Xu/1zdQb7Xaxw5P/Ol/+S+jy5e/9KVX33DDa+6667tPbHvy5S9/+bvf/e5KZbXnya41FRlLQvTY+fkBAXbnKCFiFIXLli3jnG959Bftdrx27blRGHqe5/temqSccyLcu3ff/v0HRhYvPmv0rGql7Hj92SsulYpvf/vbpPDu+f4973n3u5cvHwUgPn+e6+nhBDt3umWx0z7HGENAtBT4gSeDLG+3pxp5LsBI7pcY80O/kMbTP/7J1kqlL/I3LFq4cNOm8972trd87otbdu7cUx5eqzTFacWPqhpyMhaNAWtybVQ7a7YVZ/HQwlqhUjUASJYQMpUDouOgjrEZ58VisVqturxzo9GYmpqK4xg6dyWWyPWlsbl8xdzMqssvvzzP8zxNb7r55he/+MXW2omJiTAozK8KPnfJZXlxaJdpt/LC0ScytrI226DB2jnjk62lg8VkJhVNxiz2pW3fQ9/MNFOT+7VnrJCe08fDWktkOGdCcGttmqZxHE9OTua5QkQCAiRj9OzsLGBQLKHroJmrfJ5qtciQhzzRqaFIeH6uuNJQKpYH+he0WkcHB+rXvXz9yhV9SQrfuPNbcZJ5njc+Pt7/nvcsXdT3lt+99t57dx7cPVUqDowsHrEaGi0E7jEpMpNzrqUfkAIEYEgAFIZ+nmdZlknJnDTDMGY6w8rcNQaMse7ayZgTnhMiCiG5YFwIAHQTz5Uy1iIhJ4vEGBECMWfxFlVqYAEI3/mO3yNil15y8d9/+ss7tu+cPjZx9OjxO77+DQIYWbJs8+ZLGNvf19dPho0fPV4s1PJMz8421607N/CjarWwft15SZyuu3L9zHQjTfP//bV/vf66l999990vefFL2+3kkosvvf/++2vV2sjiEYZ89eo1j2x55MiBQ1EUrllxbrFcIgtgQQi5f9+B4eEFL732ZZDlGy6+tBCEaa61JaOoUvSl4GevPvfVr75hYGh4ycjSx7Y9FrcTa6lYKIXFQhAWFgwvOv+l569du05r3V8fPP+8DQz58uUr4zjVylrjgmUy2jLJGZ6ReVMPZwDnPMQRjQFLhIjlUmnZ0rPSJNu/7+DQ4IIoirIsU4FxXHR8Yvzo2Hit2jc6urxaLSNCnhsp2Ul1NYWo9IY3vHHz5s2bNm00xmplhWB4hkWEbic3B2M1MuaKMUTkSUEEkkOxGPUN9B+LZUOXoNTnyRrqjDNgLGBhhOT9YMuBRNg3valy9lDpVTdcwHHk85//4lgjJ5Spx3iIxCMkzqjAQTDDkRIGCdhjUa3iFzmIFDHnTHPLpBBSSAR0Sowoiur1erVa5ZzPzMw0m804jo0xUsqOhw4hAUNEwbjkQjDuvDcNQbvZ2nDe+QPv7x9ZPJIlqed7lXJJK4tAknMhOAPHJ522g+5Oc60CRNYMDoeFijm2v7H1iac2bC4K6Qufo2BHJ6E6FIictj01fezwrqVLF521rJ+81tO/+F/is+E8TawlxlBKmed5uxVPz0znuUZgxUI5CAOl8nbcznM7O9MgEvW+uuTcGKOMRkSG/KRGlEjIdJC1EuFhFAZpnhPRqlVhrb76oZ/CgkV9S87qywnaCVT7Fg94fl+pXCsdscprNqG/AhdfuOK73/z2S69ef87qcp7HOodiAJyHSdJGzlEIZIjIjbVc8CAsZJnOcyM417aTLjbGEBIyUiZ3bYAARMDmVMgEnVnpxhilc220lIJxBKPBWIaGLDHBkSEwbq2lTPFiMc6zyZnps0v+kSO6NTsRerwdhhs2bviPH/iTNeeuBaI0V49s2dJotMJIVvuKjFtr03IpOHjw8MYL1lrrTU5OLFu2JAj8JUsW3/mNO9I0ufbaa7Zvf+qBB36otSqVClEUxnF84MCB5cuWjE9PM8+v1fsZ8jzJCzJUaWZyXQwKnIvjE5OHJyfrCxbs2PJ4VCgNV8tJs/GLn/7k4gsvStO01ZrJdC58SZJnWmlrGXKTZ6CAWZiZnsrzDMjUamWlslKpAGC1ygcH+q3RxpBzL7TWEJ3overh14754Y07ExmDQhT09VW3bduaZWmxEPmeRCApheCcyOZ5umjhgkIhAAJL1vNOnkR2nmX1eq1e3+gKj0J0zL+IgAFDICRkyKw11lguEYABIgBaODEVr+vvLFHZzPM9RdYgaqBi6GeZNTr3A17sr5kpbOkhKi61or9kj5psoiX6WbGq0bbbzYcmpie/feQ/XDMovOq1F/VH9sW337t3z8FjQV+deZixkHQB1GJmIogLYGZ90fYk9weKNsggmKF8FmzDt8wzviXLOHMRbhAEQRAQUavVGh8fd6bmc8EjY0wyYQxZYxmBQIaWyFju3JAtBdJbvvSsTh5AGYEMGXEg6UkhBAPLnJ0CmY4TROdLAyACY4dH7PJzoj1H8p17dnzrO9GmTauY8IrFqNEGldOe3cfvuvfRHU8dWL48vv66y9ed7fuq+Wwh3XNkTtydjtZGa9Nut6enG7OzLecBUq8P9fX1tVqto0ePxnGcximZSY8zsJox5rLOLnp9NvsjMdEsVDCySpFJPJZbTsaY4YXRmnVCBIoFQABMwnTDANgyL8wcNdWAfATJoFKgYuHQJRf3TR4dE4CScTSM5V4RIlRCZ0r4yBhmec5AlMr12ZmpLIMw8oiMlIx7nslS4EhomvEsoTvyEMAa53eKbsiOZYyleaJMjpwIrSHNQZEhRNRaoyeAMZCB1Vp7mOem3N9vhTBaeUJXI4oCWrJ8pQgLf/+pT23evNn3/ZWrVmnQFpWGLNct4fUNDhcvumTdj39y98zsYSk8IfCcNasrleJrbnjVBz7wgT/7sz8b6K+tXrX8vvvue9WrXlWrlpeMLKyUi3d+41/r9fqOHTs2btxYHRjKMy1ReiB8GQQkWUbVSn3jxs1//ZGPXHfddbt27ZqyuWxPT+2NP/aXH1r6N3+jdVKuhVbaVKeaWcMxyfK+2sBDDz549513XfuylwVCFiIfgLI0LRZClaftVqtQCH1fHDt2ZN36c13WS3DMs8xp786IdHo4U7huJ/dvIqtVHviyVAwBjNa5S6taw8JAWqOItGs3MuqUqlZEcHTcXXn3cQAygMTRGKssF9JqhQQMOTIOICwx03EfBwDg//W//lcA+Pm2J1eMLueMHzp4aGThYpUpAWiM1RoUyAPjjQNTMVYXIHqK+2GJvBB0pSL7qrZWsKEHbLatYj8f17ywYEGhf6Q/Lw82rJiUNShKVWUYFUGUkQsmgiAyUaiiYHrFaPmCdQtqJWaTlk5ToaXHPEJAhnM374iYZVkcx1mWQVer4BwbHEcBIOfctZy5zMZcd4nTsc7fg3MJkNPRbEDEReBrnR07duDAvoPHx5tT4/bAvomD+2e2Pjbx0IOPPrF1K2KyYsXC5SsGahXukcLThzUA4JLgMzMz4+Pj7XbbuTUNDg5WKhU3NtQldvM8d0bVABAEged52E0BnWzVjIMABGCWEIhZZABIyMXk1DSRGOgf8iUaBT956LFjR8Ynx44dOXTo+uvOtzYgq8slcffd915+2eV5GiMiAkNkjAQiQ+CApEm7UrW1RgiexO0gDMIw8DxPCoEAWivP87Isffjhh9evv6BjOD3/B4CIlFZHjhzJ8nzhwoXGGEvEGANEY6xW+uDBg4sWLw6jkCEHoDzLs1xt3ry5Wq0SkJDynDVnL122dHR09NEtWw4fOjw1Pb1kyZLBwcFKtbpy1apWs7V+/bolS5a4Rq9du3bt27//T/7kPy9YuLAdxyMji6emZt74xjfW+vpcnuuGV7+acT40NFytVbdu2zY7M3veeeuvvOqqIAiUypcvX754ZEkYRsboYrG0/rz1K1eu+NnPfn507Oj5G85bvnzF5s2bgyDwg+Dcc8/xfL9Urpy9elUURdqYUrm8fv26IAjHJyayLF2+fLnn+ytWrFy6bBnnPE2zs85aNjQ4FBYKx44du+iiCwcGBoy1jHFgaK11g4t/Bcbp4VeDsXbi+OTk5OSC4QXNVuvAwQMHDx1K0owxxpCNT0z01fr6BwYYY8ZaPHVx/jlw9NhxpckPImScMwx8H5n1fW//0aNDC4ZbUvzg/gffcvWlcCKzcaKYiMg4MgZAyEAKrFSikcX9/QdnLGOkMJcciwGC4UERwsArhQEvF3Nl8mTL0cdnfYj61o6O1qNVNXl0CANf+kieb1MBswWWMD/zQ5PKRFV8sWCoVCv6wjbyTPkgPFmQzIshIey4GBNRkiRO5jzHtnMHKxFZC4xQSul5nuPrucaHZ1TPHJyd8TMED6fav1ya0ZWcaGWeH3n0p2Pbt27fvz3WygghjNWaxoql8Nzz65tetHjxUusHhPEZfE9EQNa660SWZc7atFKp9PX19ff3I6LTAvf19blPMTU11W61nc+Gq5e65o5nrxmd1wTC3C5wPeUCWTGIDEnUJCwKCxGXuh1PZ6oxO9Nu22KR8sw2wEguXPjWtZie9xtZx4EOUWsThqGQcnxiolIuhoHfbsfWGClQcBmbdrudnHSsAWMMOM+1VtoQAONcaUPkHJAQELmUXEpwVxUAxkUQRX/w3j+oVivG2FK5cvMtt5RKBWP0BRs3rj/vPER0+kuttRAiz/Ob3nRTJwPmeW9929tqtZpSNssyIYVu6Uq19pGPfsTVQzdu2nT+hg2ujGGMufKqq6648kqtje977qh74003tdsxY4yA3nDTTcYYIeXSZWf99Yc/7Hmea+cNw8AY+6abb3ZKrNHly53c/kWbN2+4YKMQvFKtbbjgAhcTjC5fLoQQgitlfvctbykUQiJI0+z//uM/LhYLWps0zaKIAwAXggvR60f5TSJXamp62ljaf/Dg1NSU45wjY2MTx49XKpXZRrPRarXjuFgsIuskK84ABEDAGJOSeZ7HuACjjDnltL4uO3fOZnD/AUMEEJIJIYwRSxb3jSysTByaLlRKYTnEgHHfR7+YM6lDLyhimQ3bPMWZY3uS1r07dh4EOBAH48LY/jCoRCgRW8SiMFSikkjR1GAbSxYVVo8OlQLMG00dJxI5Ele5FZGAE3YfNGfB7Fh1TgnXcWe2yLmQUnamunbtkufrkHCeU6izUnq2HO3k2WGbFKLgnLMXCHbJgr6J/fsOTYzR9HSLM17vqyxYvHp0+cjZ6yrLzhoKi4QqO6OrqOBCqdyZoEZRVCwWPc8bGBhwUbPzX3b8Ui6X3Zrb7XYURfNM60+YoM4Hghv8QuiGPKIbwUQqzZNma2q6PTs1wxkCRjZO+qLQr1YF2J89/GRfX0A2bbeV7/vNZpMhc6ZYCAwZArk1keCCMZapnHNOZMIompw8Hqdpv6wLoxURF0Jpm6Q5F94P7//Rsz+7+ziWaGJivK/Wl6Y5WZJSAqK1ChGEEFL6iGxOVKeUjcKCtQAEiFgulbQ2SmvfDziXrqiYZarr9E9ad8Zf+b4XBBEiE4InSZrnpq9WS5IUETjnHekIcJUbKQUxdJ0pQSCtMUAMAFVujLYylFoba2wUhsaSUqZcLiHizHTT8yRZsBbKpZK1hMCKxYLRNlfaBQJA5EmPALpydTZX6I+ikKx7U+TcN5qA0Pe8jp03IRH8+40rezh9GEPWUJapZrM90D+4ePGiQiFqt+O9+/bNzjQQOVnQ2gABZxwRTmYvf0oggdE2y5XWyBiTUhoyRit+inmnXc0GdedPI0OXGGDABROca40LhsorRwd3TOxmRSP6cEZyLAdhFArGUoEYAPGQWa++eM3E+NHdWWP6yKFpvqBRFFAtUMUjr2QbeVD0i5YHUxqpXTD5yuWDoyNVSc0kaXnAin7EbEHllGNMYN0lyx3NiDjf9we6R7k71AWXvu93WgfniwLnyZnn6LgzA2n+/jq1HbPkmTENT+C6c5YuGVx85PDC8SOzSTKL6Fcq1f7hal9fvVCLpafJtMEyxgqn/z0Jhlorl0mvVCqIKIQol8uOmgGgUChYa7Msc8IVRMyyzFkguZjO9Qqe7LrSGS+NiO7rdK5oUojh+oAAqZQ1GsIQN593duAHlnvteJYJMAZ0TmTtFVdcjoCMOe8hBuB4GYGADDCGBEQAfhCoPK3X67nK9x84wAXv76sUS0UkyHPtyWD9+vPhWVN5YV7r0PDQcKVSQWCWrFLG9yVnXCvjFAtaWReZcM48KVqtpFwWzho2zw3nDJEnSSql58z7Pc9HRKWU68iSUhhjATAIwiTJpPBq1arWJk1zIiBLjUbL94M0SU/MyrFkDXHWKT10DzcoFgtxnACg5/lEKDhD37cGrLVRFGmtAAABtHaG3WB0Rw8JSHmuheBuPcId0sYAQJYqIuCMAQBjjKjT+UmEACxLc0QmpXimHWoPzzN8z1uxYkWxWK5Uyv39faVSCREqlWqxWEqSJEnSKCqUS2UAjOPUUdMZhWWMAXPUZDs24c/x8m7sbOcm6zBywRcRAHFuAwn1Pm/NquH90439jQaDSR0Vct+KkFiAOgAUUOBCclEI6xj5pj2dI0Pp1woBY6EV0M9DZbBPymKu6fiEZDNnLy2vW9ZXk7mNZyhPg7AYFUpEJWmYx5kh7ZLLxpg8zxljnuc5znJ85JIeAECEgnvOfWLuKSd/AQDTbSPknLsOlDlGe0bh7qSxs0eVOFa5tlEBFwyK/r4hs6YoxcJcAWMCMbTWassgQyGKwkkQTxuIXf0jkePcuY03xnieFwSBMxVx3iPFYrFQKLiXYDefDidLyxB17DTB3XoBByQCZMD6q/WB6iAXEolxxrUSQmBMIHzXMk151iaCvmrQbDaAnNk/B0KGDAiRgAMjtIYMlxwYciH8wBu0ZveunVOT054UjAtfCm10uVLZvPlFnJ2kdRURjTVGW0TQxnh+oHKltbGExpIl6MjvAHWnSGilx/xAIkKaas650lZKzrgwxhpD2hABF8I5kAAyFJwhY2mcCi2C0GOaS0+041QpHYY+IlOKXA2CcS4kN5qyTLm5upbIuaaEoZ93ddlELAik26NKWwDkiIhkLYRhAOha892eQmuJc+b7zJJ11RHnJ0oEjDPfyYXQkrPyt8A4GAVOUcvYibRcd3ed/mHVw78XnPN6f//A4IBrHjHWCsGshUKxVC6XjLFEyDkSEHbDxdP/gowxZEgI4SNjnejTObudPAI/kXdmXTdaAgRkhG6Qlgr8oAC0bCR6kVp0+Ptb8zYOjK5ph37MmAgAiwAcQolRCGlsy0N9EspxnCMreCETFtoJCORaeXWPidmslRwtQGPd8qUrFxc80262ZnUS5543a5txphjzmWwbk7sshGs/EUI4X+Y5VnWxMGPM84IgCHzft90x2y77MedB4aQdQgjf911frEsLzN8FpxK9ofZ8CkkoZshgimQYT7W1QjJjEjJaCs/jRSC0BhE1QHq63xKANsZtT0d8IqVrvXGZcQBwVVCXinEb7HIarvHUvfCkV11EZ1bU7ckHdNkAMJYDZ4zb3BoFmkBwjoTSh+nplu95vi+RiCG2mi2GvDtSFmGe5FZIkdvckvV9L00TKYSzCV2+fAUQ7d6zz1pTDIMkSfxAEFlrTh47ux4WN9jBtX26z5LnuUvmHDh4KIwKzvEVAIg0Ivp+MDk5XalUrDVa5+5mz/N8N5fAGJ3nuef5WisAd88kjDFB4OV57ixyAdBaFUXRzEyzVIoAmNa553lZpgCQyAohlNKeJ4ksIhCh1tpazbknJddaGWN9PwDAJGk7/6Y4bksphJDGWCLDmHNvQCG489lRKgdgYRgmSYwInuclSeL7vlI6DMN2Oy6VinGcIDIi8jzuOrDc/aLWmp1srnEPzx+MMVrnnIsoKiRJolTmeYEQwh1Uea7cBVupXErZyb+dHrRSvpTjk41ybdAFcwzRk9LYkxu1dx1EjUYArVEIaQxxIa3RyFHpFLWIpBwK5Hmrho4dbzz85F41vmdodHVQk6mxSWaikigGaAz40vNRcOCB5BHjAiESoCXJ3NYGvMbemf1P/WJh1tq8avH5C2tV0lLnPAwLYkDzggXhhSGg8MECeQDAugZ1c/QK83TEDpzLOSLutuKciKyd7GG+xqN7qj8tIXCqOwsOxLg7Z3MybcaA86wT2JAlYmQ1WgHA0HqA9KxpiM8FfLqP3VyYD91Yfk6yMrd58101ThXvOxC6sdTzPiIxdEkrAkRkHMASAwPaWg4cEEmTIY5IQEZrKeQzkxKdqX2EDBgx68I8BEOETJTLFa1VVdVypSTnjHuARJbYyQShiGjJWmOF5yET2pm4AgKA54ecCy79FSvPDgtFBCDgiOg8+QBFoVjhwmdAgAKZBQAhJSDjXADygHtCcGTC3T/4vq+1QYZCMrJMSMkZS9MUmBcWgHHPrROZ8HzJGCeygMiFFUISkNGGcdftaLjgjDEOknESUgKgZ5ELIaTwfGCMM87dKCJkyNyAZcYYEAAIkIjIuBQeAAEyITzGuBRokHmej4Ce9Dq5OGSMgRXgMS4QkYsTfa09/GbAOCGTjDlXGASUQgqX6AMEIYU7TQUIdgqfjVOBMyE5Dg4NBVGl817z7pW65bQTy3fYWQohpdAaOBfGEgHmSnGwPhKREshDCYuHwquvWFkbLH/rkd2Ht29dtX7tmtGSEWymCXlCoYecOMuJM4i4kLwzx8LzsS7o0O6x49t2DYB68aYVl583MlIUXCtufItVQkp5YFDkyC1gaAw7/UzbKaYsz5FYlwY7fufOp+I0d6i1rGuVjsAB0AIz3b0MwBEIoDNKGwkZnIm/Ce+ecfPPvbnExTMWPqkbzqlOWgIAZF12ticGKXVn3DFEYAxZRyHBCIpRAKDnNgu5uzqeqEkw4G69Fol3P6b0PIQ5q08rPW9gcAgA8NchMqjV6r9sEQI8ecRxisV5z+ythxcWjAwDY8CzKC1wAsaQI5ArcrgcNBHMmR902Zkh65bTuBQIgNZHq9AasEalzSzLWKEyUouKG5aWSqX7f/r4ru/cYUaHN1584ap6uZ2BsZAZBhaQkHPgAEIA55DNNnd+/5HW+Mw5feUrLzv/gpXVAgOMM8ZAME9zsEjIBTIGnfL5qQqYJwMhnCxk7fZzk0vjat1xj3PsfLrgY4QKrARiYJy/e6V7hhNABkiA0wAWmALyrK6c/rqJzoRZzhD2BG3RHIE6ggaw4KZEAzhNgjFgTadHyb0G4RlZMOw8QmAR5o1BIwSaN+qU5s8RmdtNzxueMbfkly7eq6/18AKDgeGkDTLbOd+IkUEgJpBzlFJKyaSEOUf/bmZDa62UNtwSIUeOzHLBEDxBXHDUOtekU2fCzF+0pn/Jggse27pg69ad3/ry14ulcMW5a1euWlWvCClBSsgzmBjPdu/dfWDvnmRqdqXff/ma1eevWbBooISxjfOkINEySmyuGRgGKTeGYc6ZRWS5PQN2BnZSVQBnri0S5rvyw8k0G88FYYBlYAQAgA4AONhg3jtzAAMiBSDgGVluzRmsnJ9ss38toGfdUcxFzXMPd24lXNe6a2M/zfuJecOqcR71A80Lz7tvAc87O5+Jmol6Rsk9vMBgxDggA2lRWhAEnBFDIMK5IVjotJ5u+Q47MzAMDREao3NFDEDllpHhYIS2QNpHKUkrpbUxedwaicIVL1p58aLa/gNHJqem921/4hvf+uZsTlorpZUU3nC5tGjhgs0LqoNLz125YPHihZUoYK1mK1Z5IQxs4BlN2nLbiWk0WpKQAliw/hnY7J0iIMryfH5DCnRT1afv8AkARJLIAkgADiCfFaQLANZ5nHyAM+F9+GUjyf4dcFwJ8zjaaQMAXbKD4MQ0UgRwGh33EurmztmJNT0zPj0x+Yw6LO8EIjAXQ+OJP8E+Mwz/NX/QM0Eve9vDCwzEkwcsTsGptc4ylTNv7ha/w85aKwSQUnhSCoEMkIehAI+lRmsFVoHgXAAh+pyH5ZLgHAwNVYrllWdZu2wzQa4unVEuOUKcYYkJ3/OLwgs8GJefmAAAIABJREFUWfaE0aQzXSkVpIiUMs12m6GQMmAMLABngGg4AwLgnJ0qm3wynDx2nisMPmvvnEk7HzJEDsgBOCAD4E8jBNff0/1NdGY9nWeiwzljdI6Bp70BIyQ8QbUnrg5oT7SJdq+L2HnJs+a+IgKyE+vAzgfBDknbjr4I5y3/vIHOjHCftl099PACwBXn55pv3fmEAFxKIdCJF+afMl12znME4hwtUZpaJMvICI8HfmgYAwUGmTEabS6Z56GCPGPW1qKAR2GSpDFFQVibUWAJLAEClAkkhxIaEKyBNs6a2qYSJbNIIEW5QCSURkaABNwogcRsDmAM+WeifiA4GQvPtRRCV+bhfp9R+ZvZfjIITsXs5QA5sNacUg1sEQDBVAEAFAECnUFREDjgSbf81wQXyOJ87rUIhJacURwyACK0BOBrYG40K6A9ETt3mLqbx3AhMLFOczVAN0hnwIAAgQF0iLuj4XPLnFFq+Iw/4xnl7nu6tB5eYAgiTgaRG+AMuIVOy0OStIVAay3n6PvgeZ0b8W5VUErOubXUaDQOHz4St5s2TwIOvm5LhgFHgzy1kFlhuS9tykgxa5CIkUBgGSsTspT3ITILyBAKqglWhbqhgNqB9HypIct1joJxEWjNrGIMPEbACAS2GCjEJoLRUDkDdiZ20gBqfsfg/MzGGVUFyQyQDYG3ATSIaQADvHGCnU0ZgIOuAQgwBWApicnTXzl/PquCrvTXJVzHlkBIFgnQTVS1AERIBBR12JkBgAUO4PYqELpHHA07drYWYU7B/Ex2nvP4o07CBADs88fOeIbsTD127uEFhoCcU2bRMyAtSALGwCARYV6v16amppIkM75nLXWXBwCATFbbEElURZ9dtn4hGeJgGUMntEJ0tvydHwvGAnEgBOrc7RtXE3K3+QwALKsBgCFCIIlmTjLgmLIrxp2L4l2ilJ722AsPR3BVAABYAgBPTxrh038TwNBvdOvOHCdlyjPd3c9YyW/Pt9VDD/9fADm1hjuTWKcYxBHZgWMTPnpAQN071vlTXx1zguCMEMT8mSwI8DR2RguWd+VsnZd1l3P/NqwTNbFO0PK0bOTJT+puVPpbhtPcoN+67e6hhx5+C2G7NroA1K3Jc9fc6so3cynPX/F2D+d+zafUpxfo8MRip5ep6PFbDz300EMXv5rMqKfq76GHHnp4fvGrxM4IgECdMViuTk+dav3cb8f69LS/euihhx56OF38Krz5fGYgelF5Dz300APArxw7z+uKnesXm/d091ne8WeYF1k/E/Ob/WznRb0MdA899PD/e5yInelp/+s+2HVDnrOqIOo0gFh7wg+H5iniHIzRlgyQNUZ3B32eWGzektT9TfNee0LHOt+Oec5pc25LTuWiOf+p+T4bcw/O+W88997poYceenih0FXUEXUpjbAbDRORynMikp5UxjLOCUhr4wlkYLNce55vjWaMG8uEG32k8yDwiGyatYXg1mTWMikEInCOxhDnromBuj5F9AxqttamaWeYkDPUN8b4vu+oOcuyIAioO2uKiE7qrukWdk+56Spu1JMb9KmUmmsddO7Pz/9+7qGHHno4MzxX3tla46g5z3OjNRCkaeJmeag8l0JyzuMkzTLN3eBgBjOzLSIyxkZhwBCbzYbgjCFopa21iKCU6ZpMP9Nex/0opaIoStMUAOI4Zoz5vm+McW1+nucppfI8d7O6T0WsROQmDboXusZuR9PGmDiO56ZGZVl2RtZIPfTQQw+/GTwXO3PGpZRaKc659DylVeAHnu91Z2dgnqpSsRCEXqatRVCGCuUCMuSCp2lMpOt9lbjd1Bq4YGmqhGCImCQ5OLcjgHmxs2vMNW4+U5ZlxphKpeIGVrlLgrPOcA5HbtLgqVITbuSVC7ELhcLs7Kx7xBFxoVBQSrnZK0EQzE+k9NBDDz38luC52LlrMcncbCE34w4AyFpAsNZmea4NGQtZZghIetiOM2MpSVNjNJFVKqtUKwDEkHtS5rlK05QLBk9PLs9LbhAiGGNqtZoxJkkSt6QQwlqrtXbBchiGnPMgCJ61yd1PxZjz2neRcp7nvu8Xi0VrrVuV53lzjH9G3nI99NBDD78ZPFfKFRFdDc6Tcvv2px7d8otmq20Jzl21/Pz1a8fGjj+65bHpRiL9qD5Qf+k1V/qBX+8vW2OzPI88ZGiPjh382aPb1q59Ced827bH165dW6mW/MAjIje3uPtWjp0tAPz4xz/Ztu2JIAjyPN+0adPu3btnZ2fzPPc878orrxweHt67d+9DDz0khLjgggvOPvvskxrquwy1eypN07vuuuvCCy8cHR1VSimlCoWC1npsbOyxxx7bsGHD8PDwr3uv9tBDDz38e/GceWdj8jS1xhprp6emH3rooY98+MP/6ytfOXTwYB7H01NTT2zb+qG//KsvfP4L23fs0tpoBUo7x180Ws1OT335S1/+sz/9H/fcc//Hbvu7v/qrvzlw4DDnQivt5rF23+dp2YlDhw5+8YtffO973/vDH/6QMbZz585//Md/vPXWW3/0ox9pra21ExMTd9xxx9e//vUjR46cKmWMiFmWMcampqbuueeeP/zDP/ze977nMtFa6yRJfvCDH3zoQx/60Ic+9MQTT/SmavbQQw+/hXiu2JmAuBBcCGPNphdtQs537dp95YtfcuNrXxsIPjA8cvaacx9+9KmNmy58+ztuKRSjOAEpAAistTL0Wm3at28vZ0xrMzZ2zBIYY4UQfuA97U2ezs6vfOUrGRPvete7XvnKV65Zs2bFihVCiGPHjr3+9a8fHR3Nsuycc865+eab8zy/+OKL3aDuk2w5UalUcnqMPXv2ZFnmyowup0FEcRyPj4+7kmBPV9dDDz38FuJE2GiJrLU0T0rBufA8D8giopSe53lCCIYIZNAqsLnvsTxrV8qh4CzLlODgSRCMQsnB2nqp/PqXv8IjWxusXf2yq4kDCGCeTJQxgAbAACrimkScQ2a4Ac+AF4b+FVdcsmHN0vu/+79bALkU1199RdUT9zy6/3hm0cYzM8cn43z9xgsKIYDNHJRS86XQQRDEcWytrdfrN9xwg5RyaGhIKVUqRlbnYRhcddWVr33t6xgXXhBxKe2Jq0Q3x0Km17jYQw89vIA4ETs7aYRjN3SDO8iSMYDoRlvH7bgdJ8gYMgDQQCg5cWYQFAAgIkf7Nx/9n3lj0ii1dtXIja97bdULMQfm83gqMcxmpInBll88fs/37m7MzgDAq19z4+bNmywCIjOAjWa7HGJfX+WSDWd/+1vfHk94NbJFmxbAfuM7P3vla19/xcJ8dmp8OslHzlrKWaK1feyxnXfffffk5GSxWLzuuuvOP//8drt9++23VyqVqampgwcPvupVr8rz3JX+0jT+2ldvf/ypHQjwxFM7LaFFZrp2et0rFXUsWE/ldNpDDz308PzjuRsxEAC00tqaIBRRFBUK0TfvvPPAjicjTsqiVnrP7j1KqVY7GS4WPvfZLyDyRQsXjh87+rlPffLcNavjNGUcfd+XQnBEKb0f/+ThO+/8pifl6PLRH9z/o7/7u4+/5z3vPv/88xjnBCA4B5tzT1z7ihs+/bkvf+/fvvvGG1+y9cm9K9Ze8NSWfTt+sXVj9azGdGPFyIKCL4HSn/7kp9/67v2+7y9evPjHP/7xvn37Xve6191///1f+tKXhoeH3/KWtyxfvrxUKoVhODk5CQCf/uQnH3zggYsuvSLNsu3bv1kqlwHmz9jroYceevhtwXOyMxEACCE4cGNMo9nQxiweGdmwYUNIuRU+AN7/k0eyLBOc7di552Mf/ZuVq1b1FbzZmekdO/Z/91vfvvSKS3OlGo1GFEW5Uq1W+8knn5xtNP/wvX+wdOmSiy65/E//9E9/+KMHlp01OtBfA0Dp+ZxpAHv+hZeuPW/D5z71D7/z6que3Hv4d978tsdnvrzl4YeuWVvff+DwhS++WjKcHJ+667vfnZpK3ve+942MjFx22WV//ud/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>
  317. <div class="fig">Figura 14-1. JavaScript, habilitado y funcionando</div>
  318. <p>Un navegador con JavaScript desactivado mostrará este mensaje (ver Figura 14-2):</p>
  319. <div class="pre"><pre>
  320. Your browser doesn&#039;t support or has disabled JavaScript
  321. </pre></div>
  322. <div class="imgc"><img class="imgc" width="480" height="164" alt="figura_14-2.png" src="data:image/png;base64,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Of+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+0HyVRGUWh3d/fDDz+yf+/u46ZP2L59++9+9ztCyAknnLB+/fqGhoZIJOLz+Z599lm/36/r+iOPPFJeXl5aWrrx/S379u37/b0/uf++Rz/Y0L3g5BMc1/n1XffVjlhUHA2NrR274b2dnMu8cF5BQYFpGN50HIUqiWTi+eefDwWDVVVVu3c1pZMpv9//pz/9ZsqEcccef3w2nVrx2BMxF3c2NG7bvm369Glz587tkT0rVjzW19frM/Q/33svSH78vONGjxq1u3n3L+74xTXXfWfWrGP+dO+f3nnnndnTpjHBn3nyUdu25s6Zdfdv71792urFp5108kknOEzGensYTxYURvz+kKoSggiEgICXVq586ZU3KmrGFkXznn/++WwmvWTJkscefPD+++6rqCcnnnjc+FJBiWLboFJE1BRV7+nbvXlz/ZQR6fX169oToarCJSuffnF9/Y6pM2fFYsmnnnqqZuToGTOm//a394weXUsI7Ny1M5FI+Pw+CcLQdUpoR0/X/X/6487GHdNnzemLxbp7e6vDoTfeeOOZZ54fXTumetTodes3JBKpqqqq1o5uQrGnveMnP75z8sxjikuLP9jedPfdvz39rPOsbKa/q/PVVatmTpvIbeupJ550s9bnzj7dZSwvPwxIX3vtzU0bNxcVFKQoeeSRFSqVy5cve2Hli7+/++7Fi07TdO35Zx4HBEoEAhCkXAhCAHUKqGu6WRjxa4YaTyZffOHNzRt6J0wrTqV6n37iqQVL/apqPrHi6c+dfll/PF0UKd7RuK+7J7K/ff+dv7xn5swTqkeWbPxg6/oN7544+7gRI0ZceeWVd9555y9+8Yu333574cKFp512WiAQYIw988wz9fX1RUVFjuP8/ve/r6ioeOm5R19//S81q3aefe4iPbnmF7ff/uSG/G1zm9zmJ+t3pcacAMfOqEi77z30yH0WCUXydS+Gr7i42O/3e493mUzG5/Pl7OijhE8aDfCy6ovBUCqEQCBw3nnn3nzzjxobd3/hC5eaps+yHNPUGhoa77jj5z/72U+XnrE4lUr5/Op99903ZkztsjNPv+XN31CFTpxYN3lyXXPHtuqRNW3tCcndRYvmnr5wjk9TUFoEhRAYi8UZYz6/7/zzz6+pqRhTO+6CCy46ZeEp48aPe3f9u8cfP+/KKy9zXb5ixeN79uz53vduGDOmZueunT/84Q+feuqp66677pRTTnn55ZdDodAxxxzzzDPP2LYdiURCoVA0Gl2+fHlLS8vq1avHjh37n1/5cmdnZzqdfvHFF//4x3trampM07d167aAPzB//oLS0lJV1RcsWDBt7ixJFOnYiGjbVntbz29//evlZ555xTXXCCl9BdEbbryJUmX9+vfWr1nzXz+4ec6UcTt27LjzzjuffvppQsjLL7+8fv36srIyKeW2bdveeeedadOmvfPOO7NmzbrpppsWnXJqMBiqrq5GIstLyz/3ubP2dITfWn1bJsNUlUgpa2qqp8+YJt5Pn7V8+ZSpUwhF27Jcx3UcZ8eOHZUVFZdeeikKKYQYP3bsHT+/UwhRWlJy2WWXPfXMyoDfP3Xa1K3bt40ZM+ayyy7p6e6+/ac/W/P222csXRKNlmRSqYULF8477rgTTzzxiiuu2rx5iyT07l//5vobv3vusjPT2XRJUfi6674TLS6cMnXqmjfXTZ4yZckZS4N5YSr5lnbrlMUnz5w0UleBoG2n09xOP//8y5Onz7jw0ksV3V89cuQP/+vm0mi0rLQkGPBXVJRffeXSkdp+IVBRQUMh0pbjuKapzZo165yF/n73rYbWzrQl5pww79j5pyXT1sMPP7pz585MJtvd3dvQ0BgMhm644fp0OhEIBFRNzWTihmGAhKamXX99552rv/jFRYuXdHV29fXF9uxr8fv9hmFQRUmn0hvff9/wB6+48hLLkaVlUT3btnjxojMvvHDVCy80NjTajtPQ2KjrmukzR40edfnll1OQ99xFXnn5pXmzpyqqYtvxvr7YypUvbnxvfc3IKuZkG7Zvf2ftO6NrR913770zZs646porNUrLSwvffOdaVSVCok514CiEdJnUDQ1QTab60pm0pkVmz50yfVJhxqlf9dKbLU27VAIXnn9xy97dzLVUjfgDBaZZ8I1v/EckWnDN1ddOmTZz1ev1jVs2gkZ7enpKRxQfd9xxoVBo9erV3pBmd3f35Zdf7jjO888/f+aZZy5cuLCvr2/SpEmRSGTOsTNXrlxZUjLiC1dfznqK4r99Uqxm48dOsvW3mzvFtClTP3/xTN5fevsvH35p1atXXXZOZWWlpmnLli0bM2bMUCBNzoI+eviE30kcNvGfUEqQCMYqKypCoUBd3fjKynLXZZQiIK5b925bW9vs2bNt29Y1vW78hFQy3dLS6tiOoiKXjKgK51Kl2uia0ePGjRs1uqZ6RIlpKJkMMI5IEKkvP7+MM372WWdVVJTE46njjz+WEIjF+k87dVF+Xri6eoRh6J2dXXv27GbMDYfDAFBdXV1ZWdnR0RGLxcaPH9/T01NfX19fX19aWhqLxXbt2vXkk0/OnTs3GAxWVFRceumlL7/80lVXXfXMM89QSi3LKisrPeOMpcuWLf32t7/1/e9//6KLLqqurq6oqIhGiwVHlNI0dQSiKuru5t2NO5rPOPNMQojh81VXV4fDwVQq+c6atYzziRPqCCE1NTXjx4/funXrrl27LMuaOXPmWWedtWjRottuu+2cc87Jz8+/7rrrVq9effXVVz/xxFOO4y5YsMB15EknnlBQoLe2tjBm9/X1GAYBBEDUVI25zHG9MDWiaYaiapGi4sWLT29o2PHlL117330P+ALBWCyhKgohipXOGoZPCllTM3LBgvkKITNmTA/6fKUl0cmTJtq2XVxSUlk1oryyclTtGF8wVDViRFl52aZNmxobd1i2NXbMGEKpz/BNnjzFNMx0OnPSSSf7fL7JU6b6g3nCFYAEhNAI95tEoygZB8SGhsaWlpaCgiJD92maPnnKVMb5jp07z//cOZy5U6ZPCoVQVTSFapYDDCioQS6oP+wfUTs6XFRBgTqZFBNCVeljKx598803o9HScDhsWVY0Grn00ktWr1597bXX/uQnP/X5fJQQn+mTQrR3tq9fv55QZcrkqQAYzs+vqKgwTbO2tnbU6FFSykikcOnSJds31//nl/7jwQcfyKaTlNCJE8df/+3r9+7Zd8wxx6SSKZ9phoJBTdPnHDvX7/cThY6rm5BOp3fv2cuFJIj9fX3JRHzqtClLliw++6zlP/npTy679PKe7p4tWxpPXXSaqhuci+qRNcXFeQRsCoiScM6RIFUVKXTXcYgsAAO6AAAgAElEQVTihkIBw/AXFpasfuvNVS+sKispzS8MuywdMI3Zs0588+0Xm/du3l6/36dVRMv1vELVzuo/+uEv+/vax0+sUXQjm850dHRs2bJl6tSp11xzzW233XbSSSc99dRTr7/+elNTUzwe92bcVFRUnHfeebNnzz711JMiEd+cOScThGChb9GpcwkPFBWWTp9ZXlAUrqmpyc8jxSXhkSMrksm0ZbteQA4iplKpVCrlRezk5qocPXyii0NyxgEkIjLXRQCiKMGQQimWlZf7/D5KqaJQRCgqKjJN4y9/+ctZZy9TqBIO59m2XVlZFYvFmesapk4IQUL9/rzCgkI7naFSUqLF45ICEooA4NqubXNVVTo62l2XO46bzWZ8Pl9BQT4AEEI0TeVchEJ+qhDLymazWS6kF5UcCoVs266trT3++ONXr17d2tp66qmn9vb2/upXv6qurv7qV7/qhRBdffWVdXV1Gz9478EHH5wyZWI6nS4tjZ5zztmMMQDi9wU6O7tN0xQCGOMKwbTlEE3RVKrohsNYxuY9fX3lNTWIRFFVy7IVSkPhUDyR+OvataeeNBcAVFUtLS0tKirq7+8/9thjly9fDoNRClLKk08+uaCg4K233rrrrrsnT55aMybMOAaDoVSK5+UVpFJub28f56BoiuBuf3/MMAzTNLOWBQCGrjOXcSHOXLZ8Yt3ENWvW/ukPfyosKlp48nzD0BLxhC8U7m/coSpUCtHX11dUVEgJSSSSfr8ppeCcJ5MpRVXDeXnpdNp1XS4kIvp9Pr/PZ1vWmrffriovL8wvqCircBxbVTUpRH6+v6enRwgphMxmLUpQuEyjCAy4AF1VXcZd1+ns7OrY3142YqTfH/D5/cXFJZl0xnHsvHAgkwXV1CglqgDbparm4xJBIUhp1ua2w6iqdra1vr7yUSNQsGjRIk0z3n13fW9vr89nLlu2rKysvL7+g1tvvfXM5UtPOWUh4wxQ0TXdcd1kygYkUohUIuk4NucDYSG6rvt8gYUL55eVRt9Y/faKR1bUjKyeP7X6B7fecdZ5Z0+fMT3hwm/uuosgyaQzhJB4PK6pWiaVbNvXYvh8BQVFhLQmU0nHtjVNmzhxwrIzlwZMXQoQ3Fnz9ltZy8lmbeG4VNcLC4uSyYzkjkJACmk7DgAILjgwIEogZOYX5PX1xf78wAqWCV/w+UusTPNjrzXqhkoQT1lw/MqnKv/7R7ecseDC+Sct9YXUt9585bd3/enar107btrodX9dv+sPK8KhUHNzw7vvvjt+/HifzzdnzhxN07xYb13X+/v7vYgOb5BcUZRMOt3X50pBQYIAnkzGKNUjkUiYBQnxFRQUIzJVBSEZIcS2bW8Sg6IohmF406NyPuijio+zoCWAEBLgoLQsjm0TlD6fnk4n4/GUriuuy6SQs2fPnjBhwi233NLfH0umUtu3NxYUROYee3xxcXHWTVpOurOzc9vWralk0so44VCeqikqFT4f+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>
  323. <div class="fig">Figura 14-2. JavaScript, desactivado</div>
  324. <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>
  325. <p>Además de colocar un script dentro del cuerpo de un documento, puedes ponerlo en la sección <samp>&lt;head&gt;</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>
  326. <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>&lt;head&gt;</samp>, porque la ubicación de tu script es la parte del documento donde se escribe (imprime) por defecto.</p>
  327. <h3 id="explorando_javascript_navegadores_antiguos_no_estandar">Navegadores antiguos y no estándar<a href="#explorando_javascript_navegadores_antiguos_no_estandar"></a></h3>
  328. <p>Si necesitas soportar navegadores que no ofrecen scripting (muy poco probable en la actualidad), deberás usar las etiquetas de comentario HTML (<samp>&lt;!--</samp> y <samp>--&gt;</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>
  329. <p>Ejemplo 14-2. El ejemplo de "Hello World" modificado para navegadores que no soportan JavaScript</p>
  330. <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">&lt;</span><span class="hl_v">html</span><span class="hl_o">&gt;</span>
  331. <span class="hl_o">&lt;</span><span class="hl_v">head</span><span class="hl_o">&gt;</span>
  332. <span class="hl_o">&lt;</span><span class="hl_v">title</span><span class="hl_o">&gt;</span><span class="hl_v">Hello</span> <span class="hl_v">World</span><span class="hl_o">&lt;/</span><span class="hl_v">title</span><span class="hl_o">&gt;</span>
  333. <span class="hl_o">&lt;/</span><span class="hl_v">head</span><span class="hl_o">&gt;</span>
  334. <span class="hl_o">&lt;</span><span class="hl_v">body</span><span class="hl_o">&gt;</span>
  335. <span class="hl_o">&lt;</span><span class="hl_v">script</span> <span class="hl_v">type</span><span class="hl_o">=</span><span class="hl_s">&quot;text/javascript&quot;</span><span class="hl_o">&gt;&lt;!--</span>
  336. <span class="hl_f">document.write</span>(<span class="hl_v">&#039;Hello</span> <span class="hl_v">World&#039;</span>)
  337. <span class="hl_c">// --&gt;</span>
  338. <span class="hl_o">&lt;/</span><span class="hl_v">script</span><span class="hl_o">&gt;</span>
  339. <span class="hl_o">&lt;/</span><span class="hl_v">body</span><span class="hl_o">&gt;</span>
  340. <span class="hl_o">&lt;/</span><span class="hl_v">html</span><span class="hl_o">&gt;</span></code></div>
  341. <p>Aquí se ha añadido una etiqueta HTML de apertura de comentario (<samp>&lt;!--</samp>) directamente después de la declaración de apertura <samp>&lt;script&gt;</samp>, y se ha añadido una etiqueta de cierre de comentario (<samp>// --&gt;</samp>) directamente antes de que el script se cierre con <samp>&lt;/script&gt;</samp>.</p>
  342. <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>--&gt;</samp>, pero los navegadores que no soportan JavaScript ignorarán el <samp>//</samp> anterior y actuarán sobre el <samp>--&gt;</samp> cerrando el comentario HTML.</p>
  343. <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>
  344. <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br></pre><code><span class="hl_o">&lt;</span><span class="hl_v">script</span> <span class="hl_v">type</span><span class="hl_o">=</span><span class="hl_s">&quot;text/javascript&quot;</span><span class="hl_o">&gt;&lt;!--</span>
  345. (<span class="hl_v">Your</span> <span class="hl_v">JavaScript</span> <span class="hl_v">goes</span> <span class="hl_v">here...</span>)
  346. <span class="hl_c">// --&gt;</span>
  347. <span class="hl_o">&lt;/</span><span class="hl_v">script</span><span class="hl_o">&gt;</span></code></div>
  348. <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>
  349. <h3 id="explorando_javascript_incluyendo_archivos_javascript">Incluyendo archivos JavaScript<a href="#explorando_javascript_incluyendo_archivos_javascript"></a></h3>
  350. <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>
  351. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_o">&lt;</span><span class="hl_v">script</span> <span class="hl_v">type</span><span class="hl_o">=</span><span class="hl_s">&quot;text/javascript&quot;</span> <span class="hl_v">src</span><span class="hl_o">=</span><span class="hl_s">&quot;script.js&quot;</span><span class="hl_o">&gt;&lt;/</span><span class="hl_v">script</span><span class="hl_o">&gt;</span></code></div>
  352. <p>O, para cargar un archivo desde internet, usa esto (aquí sin el <samp>type=&quot;text/javascript&quot;</samp> ya que es opcional):</p>
  353. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_o">&lt;</span><span class="hl_v">script</span> <span class="hl_v">src</span><span class="hl_o">=</span><span class="hl_s">&quot;http://someserver.com/script.js&quot;</span><span class="hl_o">&gt;&lt;/</span><span class="hl_v">script</span><span class="hl_o">&gt;</span></code></div>
  354. <p>En cuanto a los archivos de script en sí, <i>no deben incluir</i> ninguna etiqueta <samp>&lt;script&gt;</samp> o <samp>&lt;/script&gt;</samp>, porque son innecesarias: el navegador ya sabe que se está cargando un archivo JavaScript. Ponerlos en los archivos JavaScript causará un error.</p>
  355. <p>Incluir archivos de script es la forma preferida para que uses archivos JavaScript de terceros en tu sitio web.</p>
  356. <div class="info"><p><span>Nota</span></p><p>Es posible omitir el parámetro <samp>type=&quot;text/javascript&quot;</samp>; todos los navegadores modernos asumen por defecto que el script contiene JavaScript.</p></div>
  357. <h3 id="explorando_javascript_depuracion_errores_javascript">Depuración de errores en JavaScript<a href="#explorando_javascript_depuracion_errores_javascript"></a></h3>
  358. <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>
  359. <p><i>Tabla 14-1. Acceso a los mensajes de error de JavaScript en diferentes navegadores</i></p>
  360. <div class="table"><table>
  361. <tr>
  362. <th>Navegador</th>
  363. <th>Cómo acceder a los mensajes de error de JavaScript</th>
  364. </tr>
  365. <tr>
  366. <td>Apple Safari</td>
  367. <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>
  368. </tr>
  369. <tr>
  370. <td>Google Chrome, Microsoft Edge, Mozilla Firefox, & Opera</td>
  371. <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>
  372. </tr>
  373. </table></div>
  374. <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>
  375. <h2 id="explorando_javascript_utilizando_comentarios">Utilizando comentarios<a href="#explorando_javascript_utilizando_comentarios"></a></h2>
  376. <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>
  377. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_c">// This is a comment</span></code></div>
  378. <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>
  379. <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br></pre><code><span class="hl_c">/* This is a section
  380. of multiline comments
  381. that will not be
  382. interpreted */</span></code></div>
  383. <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>
  384. <h2 id="explorando_javascript_signos_punto_coma">Signos de punto y coma<a href="#explorando_javascript_signos_punto_coma"></a></h2>
  385. <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>
  386. <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>
  387. <p>Sin embargo, cuando desees colocar más de una declaración en una línea, debes separarlas con punto y coma, así:</p>
  388. <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>
  389. <p>Normalmente puedes omitir el punto y coma final, porque la nueva línea termina la declaración final.</p>
  390. <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>
  391. <h2 id="explorando_javascript_variables">Variables<a href="#explorando_javascript_variables"></a></h2>
  392. <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>
  393. <ul>
  394. <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>
  395. <li>No se permiten otros caracteres, como espacios o signos de puntuación, en el nombre de una variable.</li>
  396. <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>
  397. <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>
  398. <li>No hay un límite establecido para la longitud de los nombres de las variables.</li>
  399. </ul>
  400. <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>
  401. <h3 id="explorando_javascript_variables_string">Variables string<a href="#explorando_javascript_variables_string"></a></h3>
  402. <p>Las variables string en JavaScript deben estar entre comillas simples o dobles, así:</p>
  403. <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">&quot;Hello there&quot;</span>
  404. <span class="hl_v">warning</span> <span class="hl_o">=</span> <span class="hl_v">&#039;Be</span> <span class="hl_v">careful&#039;</span></code></div>
  405. <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>
  406. <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">&quot;\&quot;Hello there\&quot; is a greeting&quot;</span>
  407. <span class="hl_v">warning</span> <span class="hl_o">=</span> <span class="hl_v">&#039;</span><span class="hl_s">\&#039;Be careful\&#039; is a warning&#039;</span></code></div>
  408. <p>Para leer de una variable string, puedes asignarla a otra, así:</p>
  409. <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>
  410. <p>o puedes usarla en una función, así:</p>
  411. <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">&quot;All systems are working&quot;</span>
  412. <span class="hl_f">document.write</span>(<span class="hl_v">status</span>)</code></div>
  413. <h3 id="explorando_javascript_variables_numericas">Variables numéricas<a href="#explorando_javascript_variables_numericas"></a></h3>
  414. <p>Crear una variable numérica es tan simple como asignarle un valor, como estos ejemplos:</p>
  415. <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>
  416. <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>
  417. <p>Al igual que los strings, las variables numéricas pueden leerse y usarse en expresiones y funciones.</p>
  418. <h3 id="explorando_javascript_arrays">Arrays<a href="#explorando_javascript_arrays"></a></h3>
  419. <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>
  420. <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">&#039;bat&#039;</span>, <span class="hl_v">&#039;ball&#039;</span>, <span class="hl_v">&#039;whistle&#039;</span>, <span class="hl_v">&#039;puzzle&#039;</span>, <span class="hl_v">&#039;doll&#039;</span>]</code></div>
  421. <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>
  422. <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> [
  423. [<span class="hl_v">&#039;R&#039;</span>, <span class="hl_v">&#039;G&#039;</span>, <span class="hl_v">&#039;Y&#039;</span>],
  424. [<span class="hl_v">&#039;W&#039;</span>, <span class="hl_v">&#039;R&#039;</span>, <span class="hl_v">&#039;O&#039;</span>],
  425. [<span class="hl_v">&#039;Y&#039;</span>, <span class="hl_v">&#039;W&#039;</span>, <span class="hl_v">&#039;G&#039;</span>]
  426. ]</code></div>
  427. <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>
  428. <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">&#039;R&#039;</span>, <span class="hl_v">&#039;G&#039;</span>, <span class="hl_v">&#039;Y&#039;</span>], [<span class="hl_v">&#039;W&#039;</span>, <span class="hl_v">&#039;R&#039;</span>, <span class="hl_v">&#039;O&#039;</span>], [<span class="hl_v">&#039;Y&#039;</span>, <span class="hl_v">&#039;W&#039;</span>, <span class="hl_v">&#039;G&#039;</span>]]</code></div>
  429. <p>o incluso así:</p>
  430. <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">&#039;R&#039;</span>, <span class="hl_v">&#039;G&#039;</span>, <span class="hl_v">&#039;Y&#039;</span>]
  431. <span class="hl_v">mid</span> <span class="hl_o">=</span> [<span class="hl_v">&#039;W&#039;</span>, <span class="hl_v">&#039;R&#039;</span>, <span class="hl_v">&#039;O&#039;</span>]
  432. <span class="hl_v">bot</span> <span class="hl_o">=</span> [<span class="hl_v">&#039;Y&#039;</span>, <span class="hl_v">&#039;W&#039;</span>, <span class="hl_v">&#039;G&#039;</span>]
  433. <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>
  434. <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>
  435. <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>
  436. <p>Esta declaración mostrará la letra <samp>O</samp> para <i>orange</i> (naranja).</p>
  437. <div class="info"><p><span>Nota</span></p><p>Los arrays en JavaScript son estructuras de almacenamiento poderosas, por lo que 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>
  438. <h2 id="explorando_javascript_operadores">Operadores<a href="#explorando_javascript_operadores"></a></h2>
  439. <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>
  440. <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>
  441. <p>Las siguientes secciones te enseñan sobre los distintos operadores.</p>
  442. <h3 id="explorando_javascript_operadores_aritmeticos">Operadores aritméticos<a href="#explorando_javascript_operadores_aritmeticos"></a></h3>
  443. <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.
  444. (ver la Tabla 14-2).</p>
  445. <p><i>Tabla 14-2. Operadores aritméticos</i></p>
  446. <div class="table"><table>
  447. <tr>
  448. <th>Operador</th>
  449. <th>Descripción</th>
  450. <th>Ejemplo</th>
  451. </tr>
  452. <tr>
  453. <td><samp>+</samp></td>
  454. <td>Suma</td>
  455. <td><samp>j + 12</samp></td>
  456. </tr>
  457. <tr>
  458. <td><samp>-</samp></td>
  459. <td>Resta</td>
  460. <td><samp>j - 22</samp></td>
  461. </tr>
  462. <tr>
  463. <td><samp>*</samp></td>
  464. <td>Multiplicación</td>
  465. <td><samp>j * 7</samp></td>
  466. </tr>
  467. <tr>
  468. <td><samp>/</samp></td>
  469. <td>División</td>
  470. <td><samp>j / 3.13</samp></td>
  471. </tr>
  472. <tr>
  473. <td><samp>%</samp></td>
  474. <td>Módulo (resto de la división)</td>
  475. <td><samp>j % 6</samp></td>
  476. </tr>
  477. <tr>
  478. <td><samp>++</samp></td>
  479. <td>Incremento</td>
  480. <td><samp>++j</samp></td>
  481. </tr>
  482. <tr>
  483. <td><samp>--</samp></td>
  484. <td>Decremento</td>
  485. <td><samp>--j</samp></td>
  486. </tr>
  487. </table></div>
  488. <h3 id="explorando_javascript_operadores_asignacion">Operadores de asignación<a href="#explorando_javascript_operadores_asignacion"></a></h3>
  489. <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>
  490. <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>
  491. <p>establece <samp>count</samp> en <samp>7</samp>, al igual que la declaración de asignación más familiar:</p>
  492. <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>
  493. <p>La Tabla 14-3 enumera los distintos operadores de asignación disponibles.</p>
  494. <p><i>Tabla 14-3. Operadores de asignación</i></p>
  495. <div class="table"><table>
  496. <tr>
  497. <th>Operador</th>
  498. <th>Ejemplo</th>
  499. <th>Equivalente a</th>
  500. </tr>
  501. <tr>
  502. <td><samp>=</samp></td>
  503. <td><samp>j = 99</samp></td>
  504. <td><samp>j = 99</samp></td>
  505. </tr>
  506. <tr>
  507. <td><samp>+=</samp></td>
  508. <td><samp>j += 2</samp></td>
  509. <td><samp>j = j + 2</samp></td>
  510. </tr>
  511. <tr>
  512. <td><samp>+=</samp></td>
  513. <td><samp>j += &#039;string&#039;</samp></td>
  514. <td><samp>j = j + &#039;string&#039;</samp></td>
  515. </tr>
  516. <tr>
  517. <td><samp>–=</samp></td>
  518. <td><samp>j –= 12</samp></td>
  519. <td><samp>j = j – 12</samp></td>
  520. </tr>
  521. <tr>
  522. <td><samp>*=</samp></td>
  523. <td><samp>j *= 2</samp></td>
  524. <td><samp>j = j * 2</samp></td>
  525. </tr>
  526. <tr>
  527. <td><samp>/=</samp></td>
  528. <td><samp>j /= 6</samp></td>
  529. <td><samp>j = j / 6</samp></td>
  530. </tr>
  531. <tr>
  532. <td><samp>%=</samp></td>
  533. <td><samp>j %= 7</samp></td>
  534. <td><samp>j = j % 7</samp></td>
  535. </tr>
  536. </table></div>
  537. <h3 id="explorando_javascript_operadores_comparacion">Operadores de comparación<a href="#explorando_javascript_operadores_comparacion"></a></h3>
  538. <p>Los <i>operadores de comparación</i> se utilizan generalmente dentro de una estructura como una declaración <samp>if</samp>, donde necesitas comparar dos elementos. Por ejemplo, puede que desee saber si una variable que 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>
  539. <p><i>Tabla 14-4. Operadores de comparación</i></p>
  540. <div class="table"><table>
  541. <tr>
  542. <th>Operador</th>
  543. <th>Descripción</th>
  544. <th>Ejemplo</th>
  545. </tr>
  546. <tr>
  547. <td><samp>==</samp></td>
  548. <td>Es <i>igual</i> a</td>
  549. <td><samp>j == 42</samp></td>
  550. </tr>
  551. <tr>
  552. <td><samp>!=</samp></td>
  553. <td><i>No es igual</i> a</td>
  554. <td><samp>j != 17</samp></td>
  555. </tr>
  556. <tr>
  557. <td><samp>&gt;</samp></td>
  558. <td>Es <i>mayor que</i></td>
  559. <td><samp>j &gt; 0</samp></td>
  560. </tr>
  561. <tr>
  562. <td><samp>&lt;</samp></td>
  563. <td>Es <i>menor que</i></td>
  564. <td><samp>j &lt; 100</samp></td>
  565. </tr>
  566. <tr>
  567. <td><samp>&gt;=</samp></td>
  568. <td>Es <i>mayor o igual</i> que</td>
  569. <td><samp>j &gt;= 23</samp></td>
  570. </tr>
  571. <tr>
  572. <td><samp>&lt;=</samp></td>
  573. <td>Es <i>menor o igual</i> que</td>
  574. <td><samp>j &lt;= 13</samp></td>
  575. </tr>
  576. <tr>
  577. <td><samp>===</samp></td>
  578. <td>Es <i>igual</i> a (y del mismo tipo)</td>
  579. <td><samp>j === 56</samp></td>
  580. </tr>
  581. <tr>
  582. <td><samp>!==</samp></td>
  583. <td><i>No es igual</i> a (y del mismo tipo)</td>
  584. <td><samp>j !== &#039;1&#039;</samp></td>
  585. </tr>
  586. </table></div>
  587. <h3 id="explorando_javascript_operadores_logicos">Operadores lógicos<a href="#explorando_javascript_operadores_logicos"></a></h3>
  588. <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>&amp;&amp;</samp> y <samp>||</samp>, y no hay un operador <samp>xor</samp>. (ver la Tabla 14-5).</p>
  589. <p><i>Tabla 14-5. Operadores lógicos</i></p>
  590. <div class="table"><table>
  591. <tr>
  592. <th>Operador</th>
  593. <th>Descripción</th>
  594. <th>Ejemplo</th>
  595. </tr>
  596. <tr>
  597. <td><samp>&amp;&amp;</samp></td>
  598. <td>And</td>
  599. <td><samp>j == 1 &amp;&amp; k == 2</samp></td>
  600. </tr>
  601. <tr>
  602. <td><samp>||</samp></td>
  603. <td>Or</td>
  604. <td><samp>j &lt; 100 || j &gt; 0</samp></td>
  605. </tr>
  606. <tr>
  607. <td><samp>!</samp></td>
  608. <td>Not</td>
  609. <td><samp>! (j == k)</samp></td>
  610. </tr>
  611. </table></div>
  612. <h3 id="explorando_javascript_incrementando_decrementando_asignacion_abreviada">Incrementando, decrementando y asignación abreviada<a href="#explorando_javascript_incrementando_decrementando_asignacion_abreviada"></a></h3>
  613. <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>
  614. <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>
  615. <span class="hl_o">--</span><span class="hl_v">y</span>
  616. <span class="hl_v">x</span> <span class="hl_o">+=</span> <span class="hl_n">22</span>
  617. <span class="hl_v">y</span> <span class="hl_o">-=</span> <span class="hl_n">3</span></code></div>
  618. <h3 id="explorando_javascript_concatenacion_strings">Concatenación de strings<a href="#explorando_javascript_concatenacion_strings"></a></h3>
  619. <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>
  620. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_f">document.write</span>(<span class="hl_s">&quot;You have &quot;</span> <span class="hl_o">+</span> <span class="hl_v">messages</span> <span class="hl_o">+</span> <span class="hl_s">&quot; messages.&quot;</span>)</code></div>
  621. <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>
  622. <div class="pre"><pre>
  623. You have 3 messages.
  624. </pre></div>
  625. <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>
  626. <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">&quot;James&quot;</span>
  627. <span class="hl_v">name</span> <span class="hl_o">+=</span> <span class="hl_s">&quot; Dean&quot;</span></code></div>
  628. <h3 id="explorando_javascript_caracteres_escape">Caracteres de escape<a href="#explorando_javascript_caracteres_escape"></a></h3>
  629. <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>
  630. <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">&quot;Name\tAge\tLocation&quot;</span></code></div>
  631. <p>La Tabla 14-6 detalla los caracteres de escape disponibles.</p>
  632. <p><i>Tabla 14-6. Caracteres de escape en JavaScript</i></p>
  633. <div class="table"><table>
  634. <tr>
  635. <th>Caracter</th>
  636. <th class="wide">Significado</th>
  637. </tr>
  638. <tr>
  639. <td><samp>\b</samp></td>
  640. <td>Retroceso</td>
  641. </tr>
  642. <tr>
  643. <td><samp>\f</samp></td>
  644. <td>Salto de página</td>
  645. </tr>
  646. <tr>
  647. <td><samp>\n</samp></td>
  648. <td>Salto de línea</td>
  649. </tr>
  650. <tr>
  651. <td><samp>\r</samp></td>
  652. <td>Retorno de carro</td>
  653. </tr>
  654. <tr>
  655. <td><samp>\t</samp></td>
  656. <td>Tabulador</td>
  657. </tr>
  658. <tr>
  659. <td><samp>\&#039;</samp></td>
  660. <td>Comillas simples (o apóstrofe)</td>
  661. </tr>
  662. <tr>
  663. <td><samp>\&quot;</samp></td>
  664. <td>Comillas dobles</td>
  665. </tr>
  666. <tr>
  667. <td><samp>\\</samp></td>
  668. <td>Barra invertida</td>
  669. </tr>
  670. <tr>
  671. <td><samp>\XXX</samp></td>
  672. <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>
  673. </tr>
  674. <tr>
  675. <td><samp>\xXX</samp></td>
  676. <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>
  677. </tr>
  678. <tr>
  679. <td><samp>\uXXXX</samp></td>
  680. <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>
  681. </tr>
  682. </table></div>
  683. <h2 id="explorando_javascript_tipado_variables">Tipado de variables<a href="#explorando_javascript_tipado_variables"></a></h2>
  684. <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>
  685. <p>Echa un vistazo al Ejemplo 14-3, en el cual:</p>
  686. <ol>
  687. <li>A la variable <samp>n</samp> se le asigna el valor del string <samp>&#039;838102050&#039;</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>
  688. <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>
  689. <li>Se añade algún texto al número <samp>n</samp> y se muestra el resultado.</li>
  690. </ol>
  691. <p><i>Ejemplo 14-3. Establece el tipo de dato de una variable por asignación</i></p>
  692. <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">&lt;</span><span class="hl_v">script</span><span class="hl_o">&gt;</span>
  693. <span class="hl_v">n</span> <span class="hl_o">=</span> <span class="hl_v">&#039;838102050&#039;</span> <span class="hl_c">// Set &#039;n&#039; to a string</span>
  694. <span class="hl_f">document.write</span>(<span class="hl_v">&#039;n</span> <span class="hl_o">=</span> <span class="hl_v">&#039;</span> <span class="hl_o">+</span> <span class="hl_v">n</span> <span class="hl_o">+</span> <span class="hl_v">&#039;</span>, <span class="hl_k">and</span> <span class="hl_k">is</span> <span class="hl_v">a</span> <span class="hl_v">&#039;</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">&#039;</span><span class="hl_o">&lt;</span><span class="hl_v">br</span><span class="hl_o">&gt;</span><span class="hl_v">&#039;</span>)
  695. <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 &#039;n&#039; to a number</span>
  696. <span class="hl_f">document.write</span>(<span class="hl_v">&#039;n</span> <span class="hl_o">=</span> <span class="hl_v">&#039;</span> <span class="hl_o">+</span> <span class="hl_v">n</span> <span class="hl_o">+</span> <span class="hl_v">&#039;</span>, <span class="hl_k">and</span> <span class="hl_k">is</span> <span class="hl_v">a</span> <span class="hl_v">&#039;</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">&#039;</span><span class="hl_o">&lt;</span><span class="hl_v">br</span><span class="hl_o">&gt;</span><span class="hl_v">&#039;</span>)
  697. <span class="hl_v">n</span> <span class="hl_o">+=</span> <span class="hl_v">&#039;</span> <span class="hl_v">plus</span> <span class="hl_v">some</span> <span class="hl_v">text&#039;</span> <span class="hl_c">// Change &#039;n&#039; from a number to a string</span>
  698. <span class="hl_f">document.write</span>(<span class="hl_v">&#039;n</span> <span class="hl_o">=</span> <span class="hl_v">&#039;</span> <span class="hl_o">+</span> <span class="hl_v">n</span> <span class="hl_o">+</span> <span class="hl_v">&#039;</span>, <span class="hl_k">and</span> <span class="hl_k">is</span> <span class="hl_v">a</span> <span class="hl_v">&#039;</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">&#039;</span><span class="hl_o">&lt;</span><span class="hl_v">br</span><span class="hl_o">&gt;</span><span class="hl_v">&#039;</span>)
  699. <span class="hl_o">&lt;/</span><span class="hl_v">script</span><span class="hl_o">&gt;</span></code></div>
  700. <p>La salida de este script se ve así:</p>
  701. <div class="pre"><pre>
  702. n = 838102050, and is a string
  703. n = 838102050, and is a number
  704. n = 838102050 plus some text, and is a string
  705. </pre></div>
  706. <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>
  707. <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">&quot;123&quot;</span>
  708. <span class="hl_v">n</span> <span class="hl_o">*=</span> <span class="hl_n">1</span> <span class="hl_c">// Convert &#039;n&#039; into a number</span>
  709. <span class="hl_v">n</span> <span class="hl_o">=</span> <span class="hl_n">123</span>
  710. <span class="hl_v">n</span> <span class="hl_o">+=</span> <span class="hl_s">&quot;&quot;</span> <span class="hl_c">// Convert &#039;n&#039; into a string</span></code></div>
  711. <p>O puedes usar las siguientes funciones de la misma manera:</p>
  712. <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">&quot;123&quot;</span>
  713. <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 &#039;n&#039; into an integer number</span>
  714. <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 &#039;n&#039; into a floating point number</span>
  715. <span class="hl_v">n</span> <span class="hl_o">=</span> <span class="hl_n">123</span>
  716. <span class="hl_v">n</span> <span class="hl_o">=</span> <span class="hl_f">n.toString</span>() <span class="hl_c">// Convert &#039;n&#039; into a string</span></code></div>
  717. <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>
  718. <h2 id="explorando_javascript_funciones">Funciones<a href="#explorando_javascript_funciones"></a></h2>
  719. <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>
  720. <p><i>Ejemplo 14-4. Una declaración simple de una función</i></p>
  721. <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br></pre><code><span class="hl_o">&lt;</span><span class="hl_v">script</span><span class="hl_o">&gt;</span>
  722. <span class="hl_k">function</span> <span class="hl_f">product</span>(<span class="hl_v">a</span>, <span class="hl_v">b</span>)
  723. {
  724. <span class="hl_k">return</span> <span class="hl_v">a</span><span class="hl_o">*</span><span class="hl_v">b</span>
  725. }
  726. <span class="hl_o">&lt;/</span><span class="hl_v">script</span><span class="hl_o">&gt;</span></code></div>
  727. <p>Esta función toma los dos parámetros pasados, los multiplica y devuelve el resultado.</p>
  728. <h2 id="explorando_javascript_variables_globales">Variables globales<a href="#explorando_javascript_variables_globales"></a></h2>
  729. <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>
  730. <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>
  731. <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>
  732. <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>
  733. <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>
  734. <h2 id="explorando_javascript_variables_locales">Variables locales<a href="#explorando_javascript_variables_locales"></a></h2>
  735. <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>
  736. <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>
  737. <p><i>Ejemplo 14-5. Una función que crea variables con alcance global y local</i></p>
  738. <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">&lt;</span><span class="hl_v">script</span><span class="hl_o">&gt;</span>
  739. <span class="hl_k">function</span> <span class="hl_f">test</span>()
  740. {
  741. <span class="hl_v">a</span> <span class="hl_o">=</span> <span class="hl_n">123</span> <span class="hl_c">// Global scope</span>
  742. <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>
  743. <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>
  744. }
  745. <span class="hl_o">&lt;/</span><span class="hl_v">script</span><span class="hl_o">&gt;</span></code></div>
  746. <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>
  747. <p><i>Ejemplo 14-6. Verificación del alcance de las variables definidas en la función test</i></p>
  748. <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">&lt;</span><span class="hl_v">script</span><span class="hl_o">&gt;</span>
  749. <span class="hl_f">test</span>()
  750. <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">&#039;undefined&#039;</span>) <span class="hl_f">document.write</span>(<span class="hl_v">&#039;a</span> <span class="hl_o">=</span> <span class="hl_s">&quot;&#039; + a + &#039;&quot;</span><span class="hl_o">&lt;</span><span class="hl_v">br</span><span class="hl_o">&gt;</span><span class="hl_v">&#039;</span>)
  751. <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">&#039;undefined&#039;</span>) <span class="hl_f">document.write</span>(<span class="hl_v">&#039;b</span> <span class="hl_o">=</span> <span class="hl_s">&quot;&#039; + b + &#039;&quot;</span><span class="hl_o">&lt;</span><span class="hl_v">br</span><span class="hl_o">&gt;</span><span class="hl_v">&#039;</span>)
  752. <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">&#039;undefined&#039;</span>) <span class="hl_f">document.write</span>(<span class="hl_v">&#039;c</span> <span class="hl_o">=</span> <span class="hl_s">&quot;&#039; + c + &#039;&quot;</span><span class="hl_o">&lt;</span><span class="hl_v">br</span><span class="hl_o">&gt;</span><span class="hl_v">&#039;</span>)
  753. <span class="hl_k">function</span> <span class="hl_f">test</span>()
  754. {
  755. <span class="hl_v">a</span> <span class="hl_o">=</span> <span class="hl_n">123</span>
  756. <span class="hl_v">var</span> <span class="hl_v">b</span> <span class="hl_o">=</span> <span class="hl_n">456</span>
  757. <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>
  758. }
  759. <span class="hl_o">&lt;/</span><span class="hl_v">script</span><span class="hl_o">&gt;</span></code></div>
  760. <p>La salida de este script es la siguiente línea:</p>
  761. <div class="pre"><pre>
  762. a = &quot;123&quot;
  763. </pre></div>
  764. <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>
  765. <p>Si tu navegador emite una advertencia sobre que <samp>b</samp> está indefinido, la advertencia es correcta pero se puede ignorar.</p>
  766. <h3 id="explorando_javascript_utilizando_let_const">Utilizando let y const<a href="#explorando_javascript_utilizando_let_const"></a></h3>
  767. <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>
  768. <p>Verás, el hecho de que pudieras redeclarar variables utilizando <samp>var</samp> estaba llevando a errores oscuros, como el siguiente:</p>
  769. <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">&quot;Hello there&quot;</span>
  770. <span class="hl_v">var</span> <span class="hl_v">counter</span> <span class="hl_o">=</span> <span class="hl_n">1</span>
  771. <span class="hl_k">if</span> (<span class="hl_v">counter</span> <span class="hl_o">&gt;</span> <span class="hl_n">0</span>)
  772. {
  773. <span class="hl_v">var</span> <span class="hl_v">hello</span> <span class="hl_o">=</span> <span class="hl_s">&quot;How are you?&quot;</span>
  774. }
  775. <span class="hl_f">document.write</span>(<span class="hl_v">hello</span>)</code></div>
  776. <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>
  777. <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>
  778. <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">&quot;Hello there&quot;</span>
  779. <span class="hl_v">let</span> <span class="hl_v">counter</span> <span class="hl_o">=</span> <span class="hl_n">1</span>
  780. <span class="hl_k">if</span> (<span class="hl_v">counter</span> <span class="hl_o">&gt;</span> <span class="hl_n">0</span>)
  781. {
  782. <span class="hl_v">let</span> <span class="hl_v">hello</span> <span class="hl_o">=</span> <span class="hl_s">&quot;How are you?&quot;</span>
  783. }
  784. <span class="hl_f">document.write</span>(<span class="hl_v">hello</span>)</code></div>
  785. <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>
  786. <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>
  787. <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>
  788. <span class="hl_k">if</span> (<span class="hl_v">counter</span> <span class="hl_o">&gt;</span> <span class="hl_n">0</span>)
  789. {
  790. <span class="hl_v">let</span> <span class="hl_v">hello</span> <span class="hl_o">=</span> <span class="hl_s">&quot;How are you?&quot;</span>
  791. }
  792. <span class="hl_f">document.write</span>(<span class="hl_v">hello</span>)</code></div>
  793. <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>
  794. <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>
  795. <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>
  796. <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>
  797. <div class="pre"><pre>
  798. Uncaught TypeError: Assignment to constant variable
  799. </pre></div>
  800. <p>El siguiente código causará exactamente ese error:</p>
  801. <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">&quot;Hello there&quot;</span>
  802. <span class="hl_v">let</span> <span class="hl_v">counter</span> <span class="hl_o">=</span> <span class="hl_n">1</span>
  803. <span class="hl_k">if</span> (<span class="hl_v">counter</span> <span class="hl_o">&gt;</span> <span class="hl_n">0</span>)
  804. {
  805. <span class="hl_v">hello</span> <span class="hl_o">=</span> <span class="hl_s">&quot;How are you?&quot;</span>
  806. }
  807. <span class="hl_f">document.write</span>(<span class="hl_v">hello</span>)</code></div>
  808. <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>
  809. <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>
  810. <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>
  811. <h2 id="explorando_javascript_document_object_model">El Document Object Model<a href="#explorando_javascript_document_object_model"></a></h2>
  812. <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>
  813. <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>
  814. <div class="pre"><pre>
  815. card.name
  816. card.phone
  817. card.address
  818. </pre></div>
  819. <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>
  820. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_f">card.display</span>()</code></div>
  821. <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>
  822. <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>
  823. <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>
  824. <div class="fig">Figura 14-3. Ejemplo de jerarquía de objetos del DOM</div>
  825. <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>
  826. <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>
  827. <p>Observa cómo esto sigue la columna central hacia abajo. La primera parte, <samp>document</samp>, se refiere a las etiquetas <samp>&lt;html&gt;</samp> y <samp>&lt;body&gt;</samp>; <samp>links.linkname</samp> se refiere a la etiqueta <samp>&lt;a&gt;</samp>, y <samp>href</samp> al atributo <samp>href</samp>.</p>
  828. <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>
  829. <p><i>Ejemplo 14-7. Leer una URL de un enlace con JavaScript</i></p>
  830. <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">&lt;</span><span class="hl_v">html</span><span class="hl_o">&gt;</span>
  831. <span class="hl_o">&lt;</span><span class="hl_v">head</span><span class="hl_o">&gt;</span>
  832. <span class="hl_o">&lt;</span><span class="hl_v">title</span><span class="hl_o">&gt;</span><span class="hl_v">Link</span> <span class="hl_v">Test</span><span class="hl_o">&lt;/</span><span class="hl_v">title</span><span class="hl_o">&gt;</span>
  833. <span class="hl_o">&lt;/</span><span class="hl_v">head</span><span class="hl_o">&gt;</span>
  834. <span class="hl_o">&lt;</span><span class="hl_v">body</span><span class="hl_o">&gt;</span>
  835. <span class="hl_o">&lt;</span><span class="hl_v">a</span> <span class="hl_v">id</span><span class="hl_o">=</span><span class="hl_s">&quot;mylink&quot;</span> <span class="hl_v">href</span><span class="hl_o">=</span><span class="hl_s">&quot;http://mysite.com&quot;</span><span class="hl_o">&gt;</span><span class="hl_v">Click</span> <span class="hl_v">me</span><span class="hl_o">&lt;/</span><span class="hl_v">a</span><span class="hl_o">&gt;&lt;</span><span class="hl_v">br</span><span class="hl_o">&gt;</span>
  836. <span class="hl_o">&lt;</span><span class="hl_v">script</span><span class="hl_o">&gt;</span>
  837. <span class="hl_v">url</span> <span class="hl_o">=</span> <span class="hl_v">document.links.mylink.href</span>
  838. <span class="hl_f">document.write</span>(<span class="hl_v">&#039;The</span> <span class="hl_v">URL</span> <span class="hl_k">is</span> <span class="hl_v">&#039;</span> <span class="hl_o">+</span> <span class="hl_v">url</span>)
  839. <span class="hl_o">&lt;/</span><span class="hl_v">script</span><span class="hl_o">&gt;</span>
  840. <span class="hl_o">&lt;/</span><span class="hl_v">body</span><span class="hl_o">&gt;</span>
  841. <span class="hl_o">&lt;/</span><span class="hl_v">html</span><span class="hl_o">&gt;</span></code></div>
  842. <p>Observa la forma corta de las etiquetas <samp>&lt;script&gt;</samp>, donde he omitido el parámetro <samp>type=&quot;text/JavaScript&quot;</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>&lt;script&gt;</samp> y <samp>&lt;/script&gt;</samp>. El resultado de este ejemplo es el siguiente:</p>
  843. <div class="pre"><pre>
  844. <span class="hl_h">Click me</span>
  845. The URL is http://mysite.com
  846. </pre></div>
  847. <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>
  848. <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>
  849. <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>
  850. <p>con lo siguiente:</p>
  851. <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>
  852. <h3 id="explorando_javascript_otro_uso_simbolo">Otro uso del símbolo $<a href="#explorando_javascript_otro_uso_simbolo"></a></h3>
  853. <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>
  854. <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">&#039;mylink&#039;</span>)<span class="hl_v">.href</span></code></div>
  855. <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>
  856. <p><i>Ejemplo 14-8. Una función que reemplaza el método <samp>getElementById</samp></i></p>
  857. <div class="pre"><pre class="lineno">1<br>2<br>3<br>4<br>5<br>6<br></pre><code><span class="hl_o">&lt;</span><span class="hl_v">script</span><span class="hl_o">&gt;</span>
  858. <span class="hl_k">function</span> <span class="hl_f">$</span>(<span class="hl_v">id</span>)
  859. {
  860. <span class="hl_k">return</span> <span class="hl_f">document.getElementById</span>(<span class="hl_v">id</span>)
  861. }
  862. <span class="hl_o">&lt;/</span><span class="hl_v">script</span><span class="hl_o">&gt;</span></code></div>
  863. <p>Por lo tanto, siempre y cuando hayas incluido la función <samp>$</samp> en tu código, una sintaxis como esta:</p>
  864. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_f">$</span>(<span class="hl_v">&#039;mylink&#039;</span>)<span class="hl_v">.href</span></code></div>
  865. <p>puede reemplazar al siguiente código:</p>
  866. <div class="pre"><pre class="lineno">1<br></pre><code><span class="hl_f">document.getElementById</span>(<span class="hl_v">&#039;mylink&#039;</span>)<span class="hl_v">.href</span></code></div>
  867. <h3 id="explorando_javascript_utilizando_dom">Utilizando el DOM<a href="#explorando_javascript_utilizando_dom"></a></h3>
  868. <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>
  869. <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>
  870. <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>
  871. <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>
  872. <p>Puedes extraer y mostrar todos los enlaces en un documento de esta manera:</p>
  873. <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">&lt;</span> <span class="hl_v">document.links.length</span>; <span class="hl_o">++</span><span class="hl_v">j</span>)
  874. <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">&#039;</span><span class="hl_o">&lt;</span><span class="hl_v">br</span><span class="hl_o">&gt;</span><span class="hl_v">&#039;</span>)</code></div>
  875. <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>
  876. <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>
  877. <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>
  878. <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>
  879. <p>También puedes utilizar los siguientes métodos para avanzar o retroceder una página a la vez:</p>
  880. <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_f">history.back</span>()
  881. <span class="hl_f">history.forward</span>()</code></div>
  882. <p>De manera similar, puedes reemplazar la URL actualmente cargada con una de tu elección, así:</p>
  883. <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">&#039;http</span><span class="hl_o">:</span><span class="hl_c">//google.com&#039;</span></code></div>
  884. <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 cómo acceder a él.</p>
  885. <h2 id="explorando_javascript_sobre_document_write">Sobre document.write<a href="#explorando_javascript_sobre_document_write"></a></h2>
  886. <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>
  887. <h3 id="explorando_javascript_utilizando_console_log">utilizando console.log<a href="#explorando_javascript_utilizando_console_log"></a></h3>
  888. <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>
  889. <h3 id="explorando_javascript_utilizando_alert">Utilizando alert<a href="#explorando_javascript_utilizando_alert"></a></h3>
  890. <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>
  891. <h3 id="explorando_javascript_escritura_elementos">Escritura en elementos<a href="#explorando_javascript_escritura_elementos"></a></h3>
  892. <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>
  893. <h3 id="explorando_javascript_utilizando_document_write">Utilizando document.write<a href="#explorando_javascript_utilizando_document_write"></a></h3>
  894. <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>
  895. <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>
  896. <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>
  897. <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>
  898. <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>
  899. <h2 id="explorando_javascript_preguntas">Preguntas<a href="#explorando_javascript_preguntas"></a></h2>
  900. <ol>
  901. <li>¿Qué etiquetas utilizas para incluir código JavaScript?</li>
  902. <li>Por defecto, ¿a qué parte de un documento se enviará la salida del código JavaScript?</li>
  903. <li>¿Cómo puedes incluir código JavaScript desde otra fuente en tus documentos?</li>
  904. <li>¿Qué función de JavaScript es equivalente a <samp>echo</samp> o <samp>print</samp> de PHP?</li>
  905. <li>¿Cómo puedes crear un comentario en JavaScript?</li>
  906. <li>¿Cuál es el operador de concatenación de strings en JavaScript?</li>
  907. <li>¿Qué palabra clave puedes utilizar dentro de una función en JavaScript para definir una variable que tenga un alcance local?</li>
  908. <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>
  909. <li>¿Qué dos comandos de JavaScript harán que el navegador cargue la página anterior en su array de historial?</li>
  910. <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>
  911. </ol>
  912. <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>
  913. <div class="page" rel="expresiones_control_flujo_javascript"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Expresiones y control de flujo en JavaScript</li></ul><hr></div>
  914. <h1 id="expresiones_control_flujo_javascript">Expresiones y control de flujo en JavaScript<a href="#expresiones_control_flujo_javascript"></a></h1>
  915. <h2 id="expresiones_control_flujo_javascript_expresiones">Expresiones<a href="#expresiones_control_flujo_javascript_expresiones"></a></h2><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>
  916. <div class="page" rel="funciones_objetos_arrays_javascript"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Funciones, objetos y arrays en JavaScript</li></ul><hr></div>
  917. <h1 id="funciones_objetos_arrays_javascript">Funciones, objetos y arrays en JavaScript<a href="#funciones_objetos_arrays_javascript"></a></h1>
  918. <h2 id="funciones_objetos_arrays_javascript_funciones_javascript">Funciones en JavaScript<a href="#funciones_objetos_arrays_javascript_funciones_javascript"></a></h2><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>
  919. <div class="page" rel="validacion_manejo_errores_javascript_php"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Validación y manejo de errores en JavaScript y PHP</li></ul><hr></div>
  920. <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>
  921. <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>
  922. <div class="page" rel="utilizando_comunicaciones_asincronas"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Utilizando comunicaciones asíncronas</li></ul><hr></div>
  923. <h1 id="utilizando_comunicaciones_asincronas">Utilizando comunicaciones asíncronas<a href="#utilizando_comunicaciones_asincronas"></a></h1>
  924. <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>
  925. <div class="page" rel="introduccion_css"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Introducción a CSS</li></ul><hr></div>
  926. <h1 id="introduccion_css">Introducción a CSS<a href="#introduccion_css"></a></h1>
  927. <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>
  928. <div class="page" rel="css_avanzado_css3"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;CSS avanzado con CSS3</li></ul><hr></div>
  929. <h1 id="css_avanzado_css3">CSS avanzado con CSS3<a href="#css_avanzado_css3"></a></h1>
  930. <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>
  931. <div class="page" rel="accediendo_css_desde_javascript"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Accediendo a CSS desde JavaScript</li></ul><hr></div>
  932. <h1 id="accediendo_css_desde_javascript">Accediendo a CSS desde JavaScript<a href="#accediendo_css_desde_javascript"></a></h1>
  933. <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>
  934. <div class="page" rel="introduccion_jquery"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Introducción a jQuery</li></ul><hr></div>
  935. <h1 id="introduccion_jquery">Introducción a jQuery<a href="#introduccion_jquery"></a></h1>
  936. <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>
  937. <div class="page" rel="introduccion_jquery_mobile"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Introducción a jQuery Mobile</li></ul><hr></div>
  938. <h1 id="introduccion_jquery_mobile">Introducción a jQuery Mobile<a href="#introduccion_jquery_mobile"></a></h1>
  939. <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>
  940. <div class="page" rel="introduccion_react"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Introducción a React</li></ul><hr></div>
  941. <h1 id="introduccion_react">Introducción a React<a href="#introduccion_react"></a></h1>
  942. <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>
  943. <div class="page" rel="introduccion_html5"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Introducción a HTML5</li></ul><hr></div>
  944. <h1 id="introduccion_html5">Introducción a HTML5<a href="#introduccion_html5"></a></h1>
  945. <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>
  946. <div class="page" rel="canvas_html5"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Canvas de HTML5</li></ul><hr></div>
  947. <h1 id="canvas_html5">Canvas de HTML5<a href="#canvas_html5"></a></h1>
  948. <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>
  949. <div class="page" rel="audio_video_html5"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Audio y vídeo en HTML5</li></ul><hr></div>
  950. <h1 id="audio_video_html5">Audio y vídeo en HTML5<a href="#audio_video_html5"></a></h1>
  951. <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>
  952. <div class="page" rel="otras_caracteristicas_html5"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Otras características de HTML5</li></ul><hr></div>
  953. <h1 id="otras_caracteristicas_html5">Otras características de HTML5<a href="#otras_caracteristicas_html5"></a></h1>
  954. <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>
  955. <div class="page" rel="uniendo_todo"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Uniendo todo</li></ul><hr></div>
  956. <h1 id="uniendo_todo">Uniendo todo<a href="#uniendo_todo"></a></h1>
  957. <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>
  958. <div class="page" rel="soluciones_preguntas_capitulos"><div><ul class="breadcrumbs"><li><label class="home" for="_" title="Inicio"></label>&nbsp;»</li><li>&nbsp;Soluciones a las preguntas de los capítulos</li></ul><hr></div>
  959. <h1 id="soluciones_preguntas_capitulos">Soluciones a las preguntas de los capítulos<a href="#soluciones_preguntas_capitulos"></a></h1>
  960. <h2 id="soluciones_preguntas_capitulos_respuestas_capitulo_14">Respuestas del capítulo 14<a href="#soluciones_preguntas_capitulos_respuestas_capitulo_14"></a></h2>
  961. <ol>
  962. <li>Para incluir código JavaScript, utilizas las etiquetas <samp>&lt;script&gt;</samp> y <samp>&lt;/script&gt;</samp>.</li>
  963. <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>
  964. <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>&lt;script src=&#039;filename.js&#039;&gt;</samp>.</li>
  965. <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>
  966. <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>
  967. <li>El operador de concatenación de strings en JavaScript es el símbolo <samp>+</samp>.</li>
  968. <li>Dentro de una función de JavaScript, puedes definir una variable que tenga un alcance local iniciandola con la palabra clave <samp>var</samp> , <samp>let</samp> o <samp>const</samp> en la primera asignación.</li>
  969. <li>
  970. Para mostrar la URL asignada al enlace con un <samp>id</samp> de <samp>thislink</samp> en los navegadores más importantes, puedes usar cualquiera de los dos siguientes comandos:
  971. <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">&#039;thislink&#039;</span>)<span class="hl_v">.href</span>)
  972. <span class="hl_f">document.write</span>(<span class="hl_v">thislink.href</span>)</code></div>
  973. </li>
  974. <li>
  975. Los comandos para cambiar a la página anterior en el historial del navegador son:
  976. <div class="pre"><pre class="lineno">1<br>2<br></pre><code><span class="hl_f">history.back</span>()
  977. <span class="hl_f">history.go</span>(<span class="hl_n">-1</span>)</code></div>
  978. </li>
  979. <li>
  980. 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:
  981. <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">&#039;http</span><span class="hl_o">:</span><span class="hl_c">//www.oreilly.com&#039;</span></code></div>
  982. </li>
  983. </ol><br style="clear:both;"><label class="btn prev" accesskey="p" for="_uniendo_todo" title="Uniendo todo">Volver</label></div>
  984. <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>
  985. </div>
  986. </div>
  987. <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>
  988. </body>
  989. </html>