From ecb19543704237e6bc7cf1ea85eab07539218f8a Mon Sep 17 00:00:00 2001 From: "Queen Vinyl Da.i'gyu-Kazotetsu" Date: Fri, 12 Aug 2022 22:58:04 -0700 Subject: [PATCH 1/9] Move es/web/ folder from .html to .md --- .../accessibility/aria/aria_techniques/{index.html => index.md} | 0 .../using_the_aria-label_attribute/{index.html => index.md} | 0 .../using_the_aria-required_attribute/{index.html => index.md} | 0 files/es/web/accessibility/aria/forms/{index.html => index.md} | 0 .../accessibility/aria/roles/alert_role/{index.html => index.md} | 0 .../aria/roles/alertdialog_role/{index.html => index.md} | 0 files/es/web/accessibility/community/{index.html => index.md} | 0 .../web/accessibility/understanding_wcag/{index.html => index.md} | 0 .../understanding_wcag/keyboard/{index.html => index.md} | 0 .../perceivable/color_contrast/{index.html => index.md} | 0 .../text_labels_and_names/{index.html => index.md} | 0 files/es/web/api/analysernode/{index.html => index.md} | 0 files/es/web/api/animation/animation/{index.html => index.md} | 0 files/es/web/api/animation/cancel/{index.html => index.md} | 0 files/es/web/api/animation/cancel_event/{index.html => index.md} | 0 files/es/web/api/animation/currenttime/{index.html => index.md} | 0 files/es/web/api/animation/effect/{index.html => index.md} | 0 files/es/web/api/animation/finish/{index.html => index.md} | 0 files/es/web/api/animation/finish_event/{index.html => index.md} | 0 files/es/web/api/animation/finished/{index.html => index.md} | 0 files/es/web/api/animation/id/{index.html => index.md} | 0 files/es/web/api/animation/{index.html => index.md} | 0 files/es/web/api/animation/pause/{index.html => index.md} | 0 files/es/web/api/animation/play/{index.html => index.md} | 0 files/es/web/api/animation/playbackrate/{index.html => index.md} | 0 files/es/web/api/animation/playstate/{index.html => index.md} | 0 files/es/web/api/animation/ready/{index.html => index.md} | 0 files/es/web/api/animation/reverse/{index.html => index.md} | 0 files/es/web/api/animation/starttime/{index.html => index.md} | 0 files/es/web/api/animation/timeline/{index.html => index.md} | 0 .../web/api/animationevent/animationname/{index.html => index.md} | 0 files/es/web/api/animationevent/{index.html => index.md} | 0 files/es/web/api/atob/{index.html => index.md} | 0 .../baseaudiocontext/createbiquadfilter/{index.html => index.md} | 0 files/es/web/api/baseaudiocontext/{index.html => index.md} | 0 files/es/web/api/beforeunloadevent/{index.html => index.md} | 0 files/es/web/api/blob/blob/{index.html => index.md} | 0 files/es/web/api/blob/{index.html => index.md} | 0 files/es/web/api/blob/type/{index.html => index.md} | 0 files/es/web/api/blobbuilder/{index.html => index.md} | 0 files/es/web/api/caches/{index.html => index.md} | 0 files/es/web/api/cachestorage/{index.html => index.md} | 0 files/es/web/api/cachestorage/keys/{index.html => index.md} | 0 .../api/canvas_api/a_basic_ray-caster/{index.html => index.md} | 0 files/es/web/api/canvas_api/{index.html => index.md} | 0 .../manipulating_video_using_canvas/{index.html => index.md} | 0 .../tutorial/advanced_animations/{index.html => index.md} | 0 .../canvas_api/tutorial/basic_animations/{index.html => index.md} | 0 .../api/canvas_api/tutorial/basic_usage/{index.html => index.md} | 0 .../tutorial/compositing/example/{index.html => index.md} | 0 .../canvas_api/tutorial/drawing_shapes/{index.html => index.md} | 0 .../api/canvas_api/tutorial/drawing_text/{index.html => index.md} | 0 files/es/web/api/canvas_api/tutorial/{index.html => index.md} | 0 .../tutorial/optimizing_canvas/{index.html => index.md} | 0 .../canvasrenderingcontext2d/beginpath/{index.html => index.md} | 0 .../canvasrenderingcontext2d/drawimage/{index.html => index.md} | 0 .../canvasrenderingcontext2d/fillrect/{index.html => index.md} | 0 .../getimagedata/{index.html => index.md} | 0 .../api/canvasrenderingcontext2d/linecap/{index.html => index.md} | 0 .../api/canvasrenderingcontext2d/rotate/{index.html => index.md} | 0 .../api/canvasrenderingcontext2d/save/{index.html => index.md} | 0 files/es/web/api/clearinterval/{index.html => index.md} | 0 files/es/web/api/cleartimeout/{index.html => index.md} | 0 files/es/web/api/clipboard_api/{index.html => index.md} | 0 .../web/api/clipboardevent/clipboarddata/{index.html => index.md} | 0 files/es/web/api/clipboardevent/{index.html => index.md} | 0 files/es/web/api/closeevent/{index.html => index.md} | 0 files/es/web/api/comment/{index.html => index.md} | 0 files/es/web/api/console/assert/{index.html => index.md} | 0 files/es/web/api/console/count/{index.html => index.md} | 0 files/es/web/api/console/dir/{index.html => index.md} | 0 files/es/web/api/console/dirxml/{index.html => index.md} | 0 files/es/web/api/console/error/{index.html => index.md} | 0 files/es/web/api/console/info/{index.html => index.md} | 0 files/es/web/api/console/log/{index.html => index.md} | 0 files/es/web/api/console/table/{index.html => index.md} | 0 files/es/web/api/console/time/{index.html => index.md} | 0 files/es/web/api/console/timeend/{index.html => index.md} | 0 files/es/web/api/console/trace/{index.html => index.md} | 0 files/es/web/api/console/warn/{index.html => index.md} | 0 files/es/web/api/createimagebitmap/{index.html => index.md} | 0 files/es/web/api/crypto/getrandomvalues/{index.html => index.md} | 0 files/es/web/api/crypto/{index.html => index.md} | 0 files/es/web/api/crypto/subtle/{index.html => index.md} | 0 files/es/web/api/css_object_model/{index.html => index.md} | 0 files/es/web/api/cssrule/csstext/{index.html => index.md} | 0 files/es/web/api/cssrule/{index.html => index.md} | 0 files/es/web/api/cssstyledeclaration/{index.html => index.md} | 0 files/es/web/api/cssstylerule/{index.html => index.md} | 0 .../es/web/api/cssstylerule/selectortext/{index.html => index.md} | 0 .../es/web/api/cssstylesheet/deleterule/{index.html => index.md} | 0 files/es/web/api/cssstylesheet/{index.html => index.md} | 0 .../es/web/api/cssstylesheet/insertrule/{index.html => index.md} | 0 files/es/web/api/cssstylesheet/ownerrule/{index.html => index.md} | 0 .../web/api/customelementregistry/define/{index.html => index.md} | 0 files/es/web/api/customelementregistry/{index.html => index.md} | 0 files/es/web/api/devicemotionevent/{index.html => index.md} | 0 files/es/web/api/document/adoptnode/{index.html => index.md} | 0 files/es/web/api/document/alinkcolor/{index.html => index.md} | 0 files/es/web/api/document/anchors/{index.html => index.md} | 0 files/es/web/api/document/applets/{index.html => index.md} | 0 files/es/web/api/document/bgcolor/{index.html => index.md} | 0 files/es/web/api/document/body/{index.html => index.md} | 0 files/es/web/api/document/characterset/{index.html => index.md} | 0 files/es/web/api/document/clear/{index.html => index.md} | 0 files/es/web/api/document/close/{index.html => index.md} | 0 files/es/web/api/document/contenttype/{index.html => index.md} | 0 .../api/document/createdocumentfragment/{index.html => index.md} | 0 files/es/web/api/document/createevent/{index.html => index.md} | 0 files/es/web/api/document/createrange/{index.html => index.md} | 0 files/es/web/api/document/createtextnode/{index.html => index.md} | 0 files/es/web/api/document/defaultview/{index.html => index.md} | 0 files/es/web/api/document/designmode/{index.html => index.md} | 0 files/es/web/api/document/dir/{index.html => index.md} | 0 files/es/web/api/document/doctype/{index.html => index.md} | 0 .../es/web/api/document/documentelement/{index.html => index.md} | 0 files/es/web/api/document/documenturi/{index.html => index.md} | 0 .../web/api/document/documenturiobject/{index.html => index.md} | 0 files/es/web/api/document/dragover_event/{index.html => index.md} | 0 files/es/web/api/document/embeds/{index.html => index.md} | 0 files/es/web/api/document/exitfullscreen/{index.html => index.md} | 0 .../api/document/getelementsbyclassname/{index.html => index.md} | 0 .../web/api/document/getelementsbyname/{index.html => index.md} | 0 .../api/document/getelementsbytagname/{index.html => index.md} | 0 .../api/document/getelementsbytagnamens/{index.html => index.md} | 0 files/es/web/api/document/getselection/{index.html => index.md} | 0 files/es/web/api/document/hasfocus/{index.html => index.md} | 0 files/es/web/api/document/head/{index.html => index.md} | 0 files/es/web/api/document/height/{index.html => index.md} | 0 files/es/web/api/document/hidden/{index.html => index.md} | 0 files/es/web/api/document/importnode/{index.html => index.md} | 0 files/es/web/api/document/open/{index.html => index.md} | 0 .../api/document/pointerlockchange_event/{index.html => index.md} | 0 .../web/api/document/pointerlockelement/{index.html => index.md} | 0 .../es/web/api/document/queryselectorall/{index.html => index.md} | 0 .../es/web/api/document/registerelement/{index.html => index.md} | 0 files/es/web/api/document/scripts/{index.html => index.md} | 0 files/es/web/api/document/stylesheets/{index.html => index.md} | 0 files/es/web/api/document/write/{index.html => index.md} | 0 files/es/web/api/document/writeln/{index.html => index.md} | 0 .../how_to_create_a_dom_tree/{index.html => index.md} | 0 files/es/web/api/document_object_model/{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../example/{index.html => index.md} | 0 .../using_the_w3c_dom_level_1_core/{index.html => index.md} | 0 files/es/web/api/documentfragment/{index.html => index.md} | 0 files/es/web/api/domerror/{index.html => index.md} | 0 files/es/web/api/domparser/{index.html => index.md} | 0 .../web/api/element/animationend_event/{index.html => index.md} | 0 files/es/web/api/element/attachshadow/{index.html => index.md} | 0 files/es/web/api/element/attributes/{index.html => index.md} | 0 files/es/web/api/element/blur_event/{index.html => index.md} | 0 files/es/web/api/element/classlist/{index.html => index.md} | 0 files/es/web/api/element/classname/{index.html => index.md} | 0 files/es/web/api/element/click_event/{index.html => index.md} | 0 files/es/web/api/element/clientheight/{index.html => index.md} | 0 files/es/web/api/element/clientwidth/{index.html => index.md} | 0 .../es/web/api/element/computedstylemap/{index.html => index.md} | 0 files/es/web/api/element/getattribute/{index.html => index.md} | 0 .../web/api/element/getattributenodens/{index.html => index.md} | 0 .../api/element/getboundingclientrect/{index.html => index.md} | 0 files/es/web/api/element/getclientrects/{index.html => index.md} | 0 .../api/element/getelementsbyclassname/{index.html => index.md} | 0 .../web/api/element/getelementsbytagname/{index.html => index.md} | 0 .../api/element/getelementsbytagnamens/{index.html => index.md} | 0 .../api/element/gotpointercapture_event/{index.html => index.md} | 0 files/es/web/api/element/hasattribute/{index.html => index.md} | 0 files/es/web/api/element/id/{index.html => index.md} | 0 files/es/web/api/element/{index.html => index.md} | 0 .../api/element/insertadjacentelement/{index.html => index.md} | 0 .../web/api/element/insertadjacenthtml/{index.html => index.md} | 0 files/es/web/api/element/localname/{index.html => index.md} | 0 .../api/element/lostpointercapture_event/{index.html => index.md} | 0 files/es/web/api/element/mousedown_event/{index.html => index.md} | 0 files/es/web/api/element/namespaceuri/{index.html => index.md} | 0 .../web/api/element/nextelementsibling/{index.html => index.md} | 0 files/es/web/api/element/outerhtml/{index.html => index.md} | 0 files/es/web/api/element/prefix/{index.html => index.md} | 0 files/es/web/api/element/queryselector/{index.html => index.md} | 0 files/es/web/api/element/removeattribute/{index.html => index.md} | 0 .../es/web/api/element/requestfullscreen/{index.html => index.md} | 0 files/es/web/api/element/scroll_event/{index.html => index.md} | 0 files/es/web/api/element/scrollheight/{index.html => index.md} | 0 files/es/web/api/element/scrolltop/{index.html => index.md} | 0 files/es/web/api/element/scrolltopmax/{index.html => index.md} | 0 files/es/web/api/element/scrollwidth/{index.html => index.md} | 0 files/es/web/api/element/setattribute/{index.html => index.md} | 0 files/es/web/api/element/setattributens/{index.html => index.md} | 0 files/es/web/api/element/setcapture/{index.html => index.md} | 0 files/es/web/api/element/tagname/{index.html => index.md} | 0 .../es/web/api/element/touchstart_event/{index.html => index.md} | 0 .../api/element/transitioncancel_event/{index.html => index.md} | 0 .../web/api/element/transitionend_event/{index.html => index.md} | 0 files/es/web/api/event/bubbles/{index.html => index.md} | 0 files/es/web/api/event/cancelable/{index.html => index.md} | 0 files/es/web/api/event/currenttarget/{index.html => index.md} | 0 files/es/web/api/event/defaultprevented/{index.html => index.md} | 0 files/es/web/api/event/{index.html => index.md} | 0 files/es/web/api/event/initevent/{index.html => index.md} | 0 files/es/web/api/event/preventdefault/{index.html => index.md} | 0 files/es/web/api/event/stoppropagation/{index.html => index.md} | 0 files/es/web/api/event/target/{index.html => index.md} | 0 files/es/web/api/event/type/{index.html => index.md} | 0 files/es/web/api/eventsource/open_event/{index.html => index.md} | 0 .../web/api/eventtarget/addeventlistener/{index.html => index.md} | 0 .../es/web/api/eventtarget/dispatchevent/{index.html => index.md} | 0 files/es/web/api/eventtarget/{index.html => index.md} | 0 files/es/web/api/fetch/{index.html => index.md} | 0 .../es/web/api/fetch_api/basic_concepts/{index.html => index.md} | 0 files/es/web/api/fetch_api/{index.html => index.md} | 0 files/es/web/api/fetch_api/using_fetch/{index.html => index.md} | 0 files/es/web/api/fetchevent/{index.html => index.md} | 0 files/es/web/api/file/lastmodifieddate/{index.html => index.md} | 0 files/es/web/api/file/name/{index.html => index.md} | 0 files/es/web/api/file/webkitrelativepath/{index.html => index.md} | 0 .../using_files_from_web_applications/{index.html => index.md} | 0 files/es/web/api/filereader/{index.html => index.md} | 0 files/es/web/api/filereader/load_event/{index.html => index.md} | 0 files/es/web/api/filereader/readastext/{index.html => index.md} | 0 files/es/web/api/filereader/result/{index.html => index.md} | 0 files/es/web/api/formdata/{index.html => index.md} | 0 .../api/formdata/using_formdata_objects/{index.html => index.md} | 0 files/es/web/api/fullscreen_api/{index.html => index.md} | 0 files/es/web/api/gamepad_api/{index.html => index.md} | 0 files/es/web/api/gamepadbutton/{index.html => index.md} | 0 .../api/geolocation/getcurrentposition/{index.html => index.md} | 0 .../es/web/api/geolocation/watchposition/{index.html => index.md} | 0 files/es/web/api/geolocationcoordinates/{index.html => index.md} | 0 .../api/geolocationcoordinates/latitude/{index.html => index.md} | 0 files/es/web/api/geolocationposition/{index.html => index.md} | 0 files/es/web/api/globaleventhandlers/{index.html => index.md} | 0 files/es/web/api/history/{index.html => index.md} | 0 files/es/web/api/history/length/{index.html => index.md} | 0 .../file_drag_and_drop/{index.html => index.md} | 0 files/es/web/api/html_drag_and_drop_api/{index.html => index.md} | 0 files/es/web/api/htmlaudioelement/{index.html => index.md} | 0 .../web/api/htmlcanvaselement/getcontext/{index.html => index.md} | 0 .../es/web/api/htmlcanvaselement/height/{index.html => index.md} | 0 files/es/web/api/htmlcanvaselement/width/{index.html => index.md} | 0 files/es/web/api/htmlcollection/{index.html => index.md} | 0 files/es/web/api/htmldivelement/{index.html => index.md} | 0 files/es/web/api/htmlelement/accesskey/{index.html => index.md} | 0 .../web/api/htmlelement/contenteditable/{index.html => index.md} | 0 files/es/web/api/htmlelement/{index.html => index.md} | 0 .../es/web/api/htmlelement/offsetheight/{index.html => index.md} | 0 files/es/web/api/htmlelement/offsetleft/{index.html => index.md} | 0 .../es/web/api/htmlelement/offsetparent/{index.html => index.md} | 0 files/es/web/api/htmlelement/offsettop/{index.html => index.md} | 0 files/es/web/api/htmlelement/offsetwidth/{index.html => index.md} | 0 files/es/web/api/htmlformelement/{index.html => index.md} | 0 files/es/web/api/htmlformelement/reset/{index.html => index.md} | 0 files/es/web/api/htmlheadelement/{index.html => index.md} | 0 files/es/web/api/htmlimageelement/{index.html => index.md} | 0 .../api/htmlinputelement/invalid_event/{index.html => index.md} | 0 files/es/web/api/htmlinputelement/select/{index.html => index.md} | 0 files/es/web/api/htmllabelelement/{index.html => index.md} | 0 files/es/web/api/htmllielement/{index.html => index.md} | 0 .../api/htmlmediaelement/canplay_event/{index.html => index.md} | 0 files/es/web/api/htmlmediaelement/{index.html => index.md} | 0 .../htmlmediaelement/loadeddata_event/{index.html => index.md} | 0 files/es/web/api/htmlmediaelement/pause/{index.html => index.md} | 0 files/es/web/api/htmlmediaelement/paused/{index.html => index.md} | 0 files/es/web/api/htmlmediaelement/play/{index.html => index.md} | 0 .../htmlmediaelement/timeupdate_event/{index.html => index.md} | 0 files/es/web/api/htmlselectelement/{index.html => index.md} | 0 .../htmlselectelement/setcustomvalidity/{index.html => index.md} | 0 files/es/web/api/htmlstyleelement/{index.html => index.md} | 0 files/es/web/api/htmltableelement/align/{index.html => index.md} | 0 files/es/web/api/htmltableelement/{index.html => index.md} | 0 .../web/api/htmltableelement/insertrow/{index.html => index.md} | 0 files/es/web/api/htmlvideoelement/{index.html => index.md} | 0 files/es/web/api/idbobjectstore/{index.html => index.md} | 0 files/es/web/api/imagebitmap/{index.html => index.md} | 0 .../web/api/imagebitmaprenderingcontext/{index.html => index.md} | 0 files/es/web/api/indexeddb_api/{index.html => index.md} | 0 .../api/indexeddb_api/using_indexeddb/{index.html => index.md} | 0 .../es/web/api/intersection_observer_api/{index.html => index.md} | 0 files/es/web/api/issecurecontext/{index.html => index.md} | 0 files/es/web/api/keyboardevent/metakey/{index.html => index.md} | 0 files/es/web/api/location/{index.html => index.md} | 0 files/es/web/api/location/origin/{index.html => index.md} | 0 files/es/web/api/location/reload/{index.html => index.md} | 0 .../taking_still_photos/{index.html => index.md} | 0 .../es/web/api/mediadevices/getusermedia/{index.html => index.md} | 0 files/es/web/api/mediadevices/{index.html => index.md} | 0 .../web/api/mediaquerylist/addlistener/{index.html => index.md} | 0 files/es/web/api/mediaquerylist/{index.html => index.md} | 0 files/es/web/api/mediaquerylist/matches/{index.html => index.md} | 0 .../api/mediaquerylist/removelistener/{index.html => index.md} | 0 files/es/web/api/messageevent/{index.html => index.md} | 0 files/es/web/api/mimetype/{index.html => index.md} | 0 files/es/web/api/mouseevent/{index.html => index.md} | 0 .../es/web/api/mouseevent/initmouseevent/{index.html => index.md} | 0 files/es/web/api/mouseevent/pagex/{index.html => index.md} | 0 files/es/web/api/mouseevent/shiftkey/{index.html => index.md} | 0 files/es/web/api/navigator/donottrack/{index.html => index.md} | 0 files/es/web/api/navigator/geolocation/{index.html => index.md} | 0 files/es/web/api/navigator/getusermedia/{index.html => index.md} | 0 .../navigator/registerprotocolhandler/{index.html => index.md} | 0 files/es/web/api/navigator/vibrate/{index.html => index.md} | 0 files/es/web/api/network_information_api/{index.html => index.md} | 0 files/es/web/api/node/appendchild/{index.html => index.md} | 0 files/es/web/api/node/childnodes/{index.html => index.md} | 0 files/es/web/api/node/clonenode/{index.html => index.md} | 0 files/es/web/api/node/contains/{index.html => index.md} | 0 files/es/web/api/node/haschildnodes/{index.html => index.md} | 0 files/es/web/api/node/issamenode/{index.html => index.md} | 0 files/es/web/api/node/lastchild/{index.html => index.md} | 0 files/es/web/api/node/nextsibling/{index.html => index.md} | 0 files/es/web/api/node/nodename/{index.html => index.md} | 0 files/es/web/api/node/nodetype/{index.html => index.md} | 0 files/es/web/api/node/nodevalue/{index.html => index.md} | 0 files/es/web/api/node/ownerdocument/{index.html => index.md} | 0 files/es/web/api/node/parentelement/{index.html => index.md} | 0 files/es/web/api/node/parentnode/{index.html => index.md} | 0 files/es/web/api/node/previoussibling/{index.html => index.md} | 0 files/es/web/api/node/replacechild/{index.html => index.md} | 0 files/es/web/api/notifications_api/{index.html => index.md} | 0 files/es/web/api/payment_request_api/{index.html => index.md} | 0 files/es/web/api/performance/memory/{index.html => index.md} | 0 files/es/web/api/performance/navigation/{index.html => index.md} | 0 files/es/web/api/performance/now/{index.html => index.md} | 0 files/es/web/api/performance/timeorigin/{index.html => index.md} | 0 files/es/web/api/performance/timing/{index.html => index.md} | 0 files/es/web/api/pointer_lock_api/{index.html => index.md} | 0 files/es/web/api/push_api/{index.html => index.md} | 0 files/es/web/api/pushmanager/{index.html => index.md} | 0 .../supportedcontentencodings/{index.html => index.md} | 0 files/es/web/api/range/collapsed/{index.html => index.md} | 0 .../api/range/commonancestorcontainer/{index.html => index.md} | 0 files/es/web/api/range/getclientrects/{index.html => index.md} | 0 files/es/web/api/range/{index.html => index.md} | 0 files/es/web/api/range/setstart/{index.html => index.md} | 0 files/es/web/api/request/headers/{index.html => index.md} | 0 files/es/web/api/request/{index.html => index.md} | 0 files/es/web/api/response/ok/{index.html => index.md} | 0 files/es/web/api/response/response/{index.html => index.md} | 0 files/es/web/api/response/status/{index.html => index.md} | 0 .../cantrickleicecandidates/{index.html => index.md} | 0 files/es/web/api/rtcrtpreceiver/{index.html => index.md} | 0 files/es/web/api/selection/addrange/{index.html => index.md} | 0 files/es/web/api/selection/anchornode/{index.html => index.md} | 0 files/es/web/api/selection/anchoroffset/{index.html => index.md} | 0 files/es/web/api/selection/collapse/{index.html => index.md} | 0 files/es/web/api/selection/collapsetoend/{index.html => index.md} | 0 .../es/web/api/selection/collapsetostart/{index.html => index.md} | 0 .../web/api/selection/deletefromdocument/{index.html => index.md} | 0 files/es/web/api/selection/extend/{index.html => index.md} | 0 files/es/web/api/selection/focusnode/{index.html => index.md} | 0 files/es/web/api/selection/focusoffset/{index.html => index.md} | 0 files/es/web/api/selection/getrangeat/{index.html => index.md} | 0 files/es/web/api/selection/{index.html => index.md} | 0 files/es/web/api/selection/iscollapsed/{index.html => index.md} | 0 files/es/web/api/selection/rangecount/{index.html => index.md} | 0 .../es/web/api/selection/removeallranges/{index.html => index.md} | 0 files/es/web/api/selection/removerange/{index.html => index.md} | 0 .../web/api/selection/selectallchildren/{index.html => index.md} | 0 files/es/web/api/selection/tostring/{index.html => index.md} | 0 .../using_server-sent_events/{index.html => index.md} | 0 files/es/web/api/service_worker_api/{index.html => index.md} | 0 files/es/web/api/serviceworkercontainer/{index.html => index.md} | 0 .../api/serviceworkercontainer/register/{index.html => index.md} | 0 files/es/web/api/settimeout/{index.html => index.md} | 0 files/es/web/api/storage/clear/{index.html => index.md} | 0 files/es/web/api/storage/getitem/{index.html => index.md} | 0 files/es/web/api/storage/{index.html => index.md} | 0 files/es/web/api/storage/length/{index.html => index.md} | 0 files/es/web/api/storage/removeitem/{index.html => index.md} | 0 files/es/web/api/storage/setitem/{index.html => index.md} | 0 files/es/web/api/storagemanager/estimate/{index.html => index.md} | 0 files/es/web/api/storagemanager/{index.html => index.md} | 0 files/es/web/api/storagemanager/persist/{index.html => index.md} | 0 .../es/web/api/storagemanager/persisted/{index.html => index.md} | 0 files/es/web/api/stylesheet/disabled/{index.html => index.md} | 0 files/es/web/api/stylesheet/href/{index.html => index.md} | 0 files/es/web/api/stylesheet/{index.html => index.md} | 0 files/es/web/api/stylesheet/media/{index.html => index.md} | 0 .../web/api/stylesheet/parentstylesheet/{index.html => index.md} | 0 files/es/web/api/stylesheet/title/{index.html => index.md} | 0 files/es/web/api/stylesheet/type/{index.html => index.md} | 0 files/es/web/api/subtlecrypto/digest/{index.html => index.md} | 0 files/es/web/api/subtlecrypto/{index.html => index.md} | 0 files/es/web/api/svgpoint/{index.html => index.md} | 0 .../es/web/api/texttrack/cuechange_event/{index.html => index.md} | 0 files/es/web/api/touch_events/{index.html => index.md} | 0 files/es/web/api/touchevent/{index.html => index.md} | 0 files/es/web/api/uievent/which/{index.html => index.md} | 0 files/es/web/api/url/createobjecturl/{index.html => index.md} | 0 files/es/web/api/url/host/{index.html => index.md} | 0 files/es/web/api/url/{index.html => index.md} | 0 files/es/web/api/url/port/{index.html => index.md} | 0 files/es/web/api/url/url/{index.html => index.md} | 0 files/es/web/api/urlsearchparams/{index.html => index.md} | 0 .../api/urlsearchparams/urlsearchparams/{index.html => index.md} | 0 files/es/web/api/vibration_api/{index.html => index.md} | 0 files/es/web/api/web_audio_api/{index.html => index.md} | 0 files/es/web/api/web_crypto_api/{index.html => index.md} | 0 files/es/web/api/web_speech_api/{index.html => index.md} | 0 .../using_the_web_speech_api/{index.html => index.md} | 0 files/es/web/api/web_storage_api/{index.html => index.md} | 0 .../using_the_web_storage_api/{index.html => index.md} | 0 files/es/web/api/web_workers_api/{index.html => index.md} | 0 .../web_workers_api/using_web_workers/{index.html => index.md} | 0 .../adding_2d_content_to_a_webgl_context/{index.html => index.md} | 0 .../tutorial/animating_textures_in_webgl/{index.html => index.md} | 0 .../creating_3d_objects_using_webgl/{index.html => index.md} | 0 .../tutorial/getting_started_with_webgl/{index.html => index.md} | 0 files/es/web/api/webgl_api/tutorial/{index.html => index.md} | 0 .../{index.html => index.md} | 0 files/es/web/api/webrtc_api/protocols/{index.html => index.md} | 0 .../web/api/webrtc_api/session_lifetime/{index.html => index.md} | 0 files/es/web/api/websocket/close_event/{index.html => index.md} | 0 files/es/web/api/websocket/error_event/{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../writing_websocket_server/{index.html => index.md} | 0 .../writing_websocket_servers/{index.html => index.md} | 0 files/es/web/api/webvr_api/{index.html => index.md} | 0 .../api/webvr_api/using_the_webvr_api/{index.html => index.md} | 0 .../es/web/api/window/beforeunload_event/{index.html => index.md} | 0 .../web/api/window/cancelanimationframe/{index.html => index.md} | 0 files/es/web/api/window/close/{index.html => index.md} | 0 files/es/web/api/window/closed/{index.html => index.md} | 0 files/es/web/api/window/confirm/{index.html => index.md} | 0 files/es/web/api/window/devicepixelratio/{index.html => index.md} | 0 files/es/web/api/window/dialogarguments/{index.html => index.md} | 0 files/es/web/api/window/document/{index.html => index.md} | 0 files/es/web/api/window/error_event/{index.html => index.md} | 0 files/es/web/api/window/frameelement/{index.html => index.md} | 0 files/es/web/api/window/fullscreen/{index.html => index.md} | 0 files/es/web/api/window/getcomputedstyle/{index.html => index.md} | 0 files/es/web/api/window/getselection/{index.html => index.md} | 0 files/es/web/api/window/hashchange_event/{index.html => index.md} | 0 files/es/web/api/window/history/{index.html => index.md} | 0 files/es/web/api/window/innerheight/{index.html => index.md} | 0 files/es/web/api/window/localstorage/{index.html => index.md} | 0 files/es/web/api/window/location/{index.html => index.md} | 0 files/es/web/api/window/locationbar/{index.html => index.md} | 0 files/es/web/api/window/matchmedia/{index.html => index.md} | 0 files/es/web/api/window/menubar/{index.html => index.md} | 0 files/es/web/api/window/moveby/{index.html => index.md} | 0 files/es/web/api/window/navigator/{index.html => index.md} | 0 files/es/web/api/window/offline_event/{index.html => index.md} | 0 files/es/web/api/window/opener/{index.html => index.md} | 0 files/es/web/api/window/outerheight/{index.html => index.md} | 0 files/es/web/api/window/outerwidth/{index.html => index.md} | 0 files/es/web/api/window/popstate_event/{index.html => index.md} | 0 files/es/web/api/window/print/{index.html => index.md} | 0 files/es/web/api/window/prompt/{index.html => index.md} | 0 .../web/api/window/requestanimationframe/{index.html => index.md} | 0 files/es/web/api/window/scrollby/{index.html => index.md} | 0 files/es/web/api/window/scrollto/{index.html => index.md} | 0 files/es/web/api/window/scrollx/{index.html => index.md} | 0 files/es/web/api/window/scrolly/{index.html => index.md} | 0 files/es/web/api/window/sessionstorage/{index.html => index.md} | 0 files/es/web/api/window/showmodaldialog/{index.html => index.md} | 0 files/es/web/api/window/statusbar/{index.html => index.md} | 0 files/es/web/api/windoweventhandlers/{index.html => index.md} | 0 files/es/web/api/worker/{index.html => index.md} | 0 files/es/web/api/worker/terminate/{index.html => index.md} | 0 files/es/web/api/xmldocument/async/{index.html => index.md} | 0 files/es/web/api/xmlhttprequest/abort/{index.html => index.md} | 0 .../web/api/xmlhttprequest/loadend_event/{index.html => index.md} | 0 .../readystatechange_event/{index.html => index.md} | 0 .../web/api/xmlhttprequest/responsetext/{index.html => index.md} | 0 files/es/web/css/--_star_/{index.html => index.md} | 0 files/es/web/css/-moz-context-properties/{index.html => index.md} | 0 files/es/web/css/-moz-image-rect/{index.html => index.md} | 0 files/es/web/css/-moz-image-region/{index.html => index.md} | 0 files/es/web/css/-moz-orient/{index.html => index.md} | 0 .../css/-moz-outline-radius-bottomleft/{index.html => index.md} | 0 .../css/-moz-outline-radius-bottomright/{index.html => index.md} | 0 .../web/css/-moz-outline-radius-topleft/{index.html => index.md} | 0 .../web/css/-moz-outline-radius-topright/{index.html => index.md} | 0 files/es/web/css/-moz-outline-radius/{index.html => index.md} | 0 files/es/web/css/-moz-user-focus/{index.html => index.md} | 0 files/es/web/css/-moz-user-input/{index.html => index.md} | 0 files/es/web/css/-webkit-border-before/{index.html => index.md} | 0 files/es/web/css/-webkit-box-reflect/{index.html => index.md} | 0 files/es/web/css/-webkit-mask-attachment/{index.html => index.md} | 0 files/es/web/css/-webkit-mask-box-image/{index.html => index.md} | 0 files/es/web/css/-webkit-mask-composite/{index.html => index.md} | 0 files/es/web/css/-webkit-mask-position-x/{index.html => index.md} | 0 files/es/web/css/-webkit-mask-position-y/{index.html => index.md} | 0 files/es/web/css/-webkit-mask-repeat-x/{index.html => index.md} | 0 .../web/css/-webkit-overflow-scrolling/{index.html => index.md} | 0 .../web/css/-webkit-tap-highlight-color/{index.html => index.md} | 0 files/es/web/css/-webkit-text-fill-color/{index.html => index.md} | 0 .../es/web/css/-webkit-text-stroke-color/{index.html => index.md} | 0 .../es/web/css/-webkit-text-stroke-width/{index.html => index.md} | 0 files/es/web/css/-webkit-text-stroke/{index.html => index.md} | 0 files/es/web/css/-webkit-touch-callout/{index.html => index.md} | 0 files/es/web/css/@charset/{index.html => index.md} | 0 .../css/@counter-style/additive-symbols/{index.html => index.md} | 0 files/es/web/css/@counter-style/{index.html => index.md} | 0 files/es/web/css/@counter-style/symbols/{index.html => index.md} | 0 files/es/web/css/@font-face/font-display/{index.html => index.md} | 0 files/es/web/css/@font-face/font-family/{index.html => index.md} | 0 files/es/web/css/@font-face/src/{index.html => index.md} | 0 files/es/web/css/@font-feature-values/{index.html => index.md} | 0 files/es/web/css/@keyframes/{index.html => index.md} | 0 files/es/web/css/@media/color/{index.html => index.md} | 0 files/es/web/css/@media/display-mode/{index.html => index.md} | 0 files/es/web/css/@media/height/{index.html => index.md} | 0 files/es/web/css/@media/hover/{index.html => index.md} | 0 files/es/web/css/@media/{index.html => index.md} | 0 files/es/web/css/@media/pointer/{index.html => index.md} | 0 files/es/web/css/@media/resolution/{index.html => index.md} | 0 files/es/web/css/@media/width/{index.html => index.md} | 0 files/es/web/css/@namespace/{index.html => index.md} | 0 files/es/web/css/@page/{index.html => index.md} | 0 files/es/web/css/@supports/{index.html => index.md} | 0 files/es/web/css/_colon_-moz-broken/{index.html => index.md} | 0 files/es/web/css/_colon_-moz-drag-over/{index.html => index.md} | 0 files/es/web/css/_colon_-moz-first-node/{index.html => index.md} | 0 files/es/web/css/_colon_-moz-focusring/{index.html => index.md} | 0 .../web/css/_colon_-moz-handler-blocked/{index.html => index.md} | 0 .../web/css/_colon_-moz-handler-crashed/{index.html => index.md} | 0 .../web/css/_colon_-moz-handler-disabled/{index.html => index.md} | 0 files/es/web/css/_colon_-moz-last-node/{index.html => index.md} | 0 files/es/web/css/_colon_-moz-list-number/{index.html => index.md} | 0 files/es/web/css/_colon_-moz-loading/{index.html => index.md} | 0 .../web/css/_colon_-moz-locale-dir(ltr)/{index.html => index.md} | 0 .../web/css/_colon_-moz-locale-dir(rtl)/{index.html => index.md} | 0 .../web/css/_colon_-moz-only-whitespace/{index.html => index.md} | 0 .../web/css/_colon_-moz-submit-invalid/{index.html => index.md} | 0 files/es/web/css/_colon_-moz-suppressed/{index.html => index.md} | 0 .../es/web/css/_colon_-moz-user-disabled/{index.html => index.md} | 0 .../web/css/_colon_-moz-window-inactive/{index.html => index.md} | 0 files/es/web/css/_colon_active/{index.html => index.md} | 0 files/es/web/css/_colon_any-link/{index.html => index.md} | 0 files/es/web/css/_colon_autofill/{index.html => index.md} | 0 files/es/web/css/_colon_blank/{index.html => index.md} | 0 files/es/web/css/_colon_checked/{index.html => index.md} | 0 files/es/web/css/_colon_default/{index.html => index.md} | 0 files/es/web/css/_colon_defined/{index.html => index.md} | 0 files/es/web/css/_colon_disabled/{index.html => index.md} | 0 files/es/web/css/_colon_empty/{index.html => index.md} | 0 files/es/web/css/_colon_enabled/{index.html => index.md} | 0 files/es/web/css/_colon_first-child/{index.html => index.md} | 0 files/es/web/css/_colon_first-of-type/{index.html => index.md} | 0 files/es/web/css/_colon_first/{index.html => index.md} | 0 files/es/web/css/_colon_focus-within/{index.html => index.md} | 0 files/es/web/css/_colon_focus/{index.html => index.md} | 0 files/es/web/css/_colon_fullscreen/{index.html => index.md} | 0 files/es/web/css/_colon_has/{index.html => index.md} | 0 files/es/web/css/_colon_host/{index.html => index.md} | 0 files/es/web/css/_colon_hover/{index.html => index.md} | 0 files/es/web/css/_colon_in-range/{index.html => index.md} | 0 files/es/web/css/_colon_invalid/{index.html => index.md} | 0 files/es/web/css/_colon_is/{index.html => index.md} | 0 files/es/web/css/_colon_lang/{index.html => index.md} | 0 files/es/web/css/_colon_last-child/{index.html => index.md} | 0 files/es/web/css/_colon_last-of-type/{index.html => index.md} | 0 files/es/web/css/_colon_left/{index.html => index.md} | 0 files/es/web/css/_colon_link/{index.html => index.md} | 0 files/es/web/css/_colon_not/{index.html => index.md} | 0 files/es/web/css/_colon_nth-child/{index.html => index.md} | 0 files/es/web/css/_colon_nth-last-child/{index.html => index.md} | 0 files/es/web/css/_colon_nth-last-of-type/{index.html => index.md} | 0 files/es/web/css/_colon_nth-of-type/{index.html => index.md} | 0 files/es/web/css/_colon_only-child/{index.html => index.md} | 0 files/es/web/css/_colon_only-of-type/{index.html => index.md} | 0 files/es/web/css/_colon_optional/{index.html => index.md} | 0 files/es/web/css/_colon_out-of-range/{index.html => index.md} | 0 .../es/web/css/_colon_placeholder-shown/{index.html => index.md} | 0 files/es/web/css/_colon_read-only/{index.html => index.md} | 0 files/es/web/css/_colon_read-write/{index.html => index.md} | 0 files/es/web/css/_colon_required/{index.html => index.md} | 0 files/es/web/css/_colon_right/{index.html => index.md} | 0 files/es/web/css/_colon_root/{index.html => index.md} | 0 files/es/web/css/_colon_target/{index.html => index.md} | 0 files/es/web/css/_colon_user-invalid/{index.html => index.md} | 0 files/es/web/css/_colon_valid/{index.html => index.md} | 0 files/es/web/css/_colon_visited/{index.html => index.md} | 0 .../css/_doublecolon_-moz-color-swatch/{index.html => index.md} | 0 .../css/_doublecolon_-moz-page-sequence/{index.html => index.md} | 0 files/es/web/css/_doublecolon_-moz-page/{index.html => index.md} | 0 .../css/_doublecolon_-moz-progress-bar/{index.html => index.md} | 0 .../css/_doublecolon_-moz-range-progress/{index.html => index.md} | 0 .../css/_doublecolon_-moz-range-thumb/{index.html => index.md} | 0 .../css/_doublecolon_-moz-range-track/{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../css/_doublecolon_-webkit-meter-bar/{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../_doublecolon_-webkit-progress-bar/{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../_doublecolon_-webkit-progress-value/{index.html => index.md} | 0 .../css/_doublecolon_-webkit-scrollbar/{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../_doublecolon_-webkit-slider-thumb/{index.html => index.md} | 0 files/es/web/css/_doublecolon_after/{index.html => index.md} | 0 files/es/web/css/_doublecolon_backdrop/{index.html => index.md} | 0 files/es/web/css/_doublecolon_before/{index.html => index.md} | 0 files/es/web/css/_doublecolon_cue/{index.html => index.md} | 0 .../es/web/css/_doublecolon_first-letter/{index.html => index.md} | 0 files/es/web/css/_doublecolon_marker/{index.html => index.md} | 0 .../es/web/css/_doublecolon_placeholder/{index.html => index.md} | 0 files/es/web/css/_doublecolon_selection/{index.html => index.md} | 0 .../web/css/_doublecolon_spelling-error/{index.html => index.md} | 0 files/es/web/css/actual_value/{index.html => index.md} | 0 .../web/css/adjacent_sibling_combinator/{index.html => index.md} | 0 files/es/web/css/align-content/{index.html => index.md} | 0 files/es/web/css/align-self/{index.html => index.md} | 0 files/es/web/css/all/{index.html => index.md} | 0 files/es/web/css/animation-delay/{index.html => index.md} | 0 files/es/web/css/animation-direction/{index.html => index.md} | 0 files/es/web/css/animation-duration/{index.html => index.md} | 0 files/es/web/css/animation-fill-mode/{index.html => index.md} | 0 .../es/web/css/animation-iteration-count/{index.html => index.md} | 0 files/es/web/css/animation-name/{index.html => index.md} | 0 files/es/web/css/animation-play-state/{index.html => index.md} | 0 .../es/web/css/animation-timing-function/{index.html => index.md} | 0 files/es/web/css/animation/{index.html => index.md} | 0 files/es/web/css/at-rule/{index.html => index.md} | 0 files/es/web/css/attr/{index.html => index.md} | 0 files/es/web/css/attribute_selectors/{index.html => index.md} | 0 files/es/web/css/backdrop-filter/{index.html => index.md} | 0 files/es/web/css/backface-visibility/{index.html => index.md} | 0 files/es/web/css/background-attachment/{index.html => index.md} | 0 files/es/web/css/background-blend-mode/{index.html => index.md} | 0 files/es/web/css/background-color/{index.html => index.md} | 0 files/es/web/css/background-image/{index.html => index.md} | 0 files/es/web/css/background-position/{index.html => index.md} | 0 files/es/web/css/basic-shape/{index.html => index.md} | 0 files/es/web/css/blend-mode/{index.html => index.md} | 0 files/es/web/css/block-size/{index.html => index.md} | 0 files/es/web/css/border-block-color/{index.html => index.md} | 0 files/es/web/css/border-block-end-color/{index.html => index.md} | 0 files/es/web/css/border-block-end-style/{index.html => index.md} | 0 files/es/web/css/border-block-end-width/{index.html => index.md} | 0 files/es/web/css/border-block-end/{index.html => index.md} | 0 .../es/web/css/border-block-start-color/{index.html => index.md} | 0 .../es/web/css/border-block-start-style/{index.html => index.md} | 0 .../es/web/css/border-block-start-width/{index.html => index.md} | 0 files/es/web/css/border-block-start/{index.html => index.md} | 0 files/es/web/css/border-block-style/{index.html => index.md} | 0 files/es/web/css/border-block-width/{index.html => index.md} | 0 files/es/web/css/border-bottom-color/{index.html => index.md} | 0 files/es/web/css/border-bottom-style/{index.html => index.md} | 0 files/es/web/css/border-bottom-width/{index.html => index.md} | 0 files/es/web/css/border-bottom/{index.html => index.md} | 0 files/es/web/css/border-collapse/{index.html => index.md} | 0 files/es/web/css/border-color/{index.html => index.md} | 0 files/es/web/css/border-end-end-radius/{index.html => index.md} | 0 files/es/web/css/border-end-start-radius/{index.html => index.md} | 0 files/es/web/css/border-image-outset/{index.html => index.md} | 0 files/es/web/css/border-image-repeat/{index.html => index.md} | 0 files/es/web/css/border-image-slice/{index.html => index.md} | 0 files/es/web/css/border-image/{index.html => index.md} | 0 files/es/web/css/border-inline-color/{index.html => index.md} | 0 files/es/web/css/border-inline-end-color/{index.html => index.md} | 0 files/es/web/css/border-inline-end-style/{index.html => index.md} | 0 files/es/web/css/border-inline-end-width/{index.html => index.md} | 0 files/es/web/css/border-inline-end/{index.html => index.md} | 0 .../es/web/css/border-inline-start-color/{index.html => index.md} | 0 .../es/web/css/border-inline-start-style/{index.html => index.md} | 0 .../es/web/css/border-inline-start-width/{index.html => index.md} | 0 files/es/web/css/border-inline-start/{index.html => index.md} | 0 files/es/web/css/border-inline-style/{index.html => index.md} | 0 files/es/web/css/border-inline-width/{index.html => index.md} | 0 files/es/web/css/border-inline/{index.html => index.md} | 0 files/es/web/css/border-left-color/{index.html => index.md} | 0 files/es/web/css/border-left/{index.html => index.md} | 0 files/es/web/css/border-right/{index.html => index.md} | 0 files/es/web/css/border-spacing/{index.html => index.md} | 0 files/es/web/css/border-start-end-radius/{index.html => index.md} | 0 .../es/web/css/border-start-start-radius/{index.html => index.md} | 0 files/es/web/css/border-style/{index.html => index.md} | 0 files/es/web/css/border-top-color/{index.html => index.md} | 0 files/es/web/css/border-top-left-radius/{index.html => index.md} | 0 files/es/web/css/border-top/{index.html => index.md} | 0 files/es/web/css/border-width/{index.html => index.md} | 0 files/es/web/css/bottom/{index.html => index.md} | 0 files/es/web/css/box-flex/{index.html => index.md} | 0 files/es/web/css/box-ordinal-group/{index.html => index.md} | 0 files/es/web/css/box-pack/{index.html => index.md} | 0 files/es/web/css/calc/{index.html => index.md} | 0 files/es/web/css/caret-color/{index.html => index.md} | 0 files/es/web/css/child_combinator/{index.html => index.md} | 0 files/es/web/css/class_selectors/{index.html => index.md} | 0 files/es/web/css/clear/{index.html => index.md} | 0 files/es/web/css/color/{index.html => index.md} | 0 files/es/web/css/color_value/{index.html => index.md} | 0 files/es/web/css/column-count/{index.html => index.md} | 0 files/es/web/css/column-gap/{index.html => index.md} | 0 files/es/web/css/column-span/{index.html => index.md} | 0 files/es/web/css/comments/{index.html => index.md} | 0 files/es/web/css/computed_value/{index.html => index.md} | 0 files/es/web/css/content/{index.html => index.md} | 0 .../detecting_css_animation_support/{index.html => index.md} | 0 files/es/web/css/css_animations/{index.html => index.md} | 0 files/es/web/css/css_animations/tips/{index.html => index.md} | 0 .../border-image_generator/{index.html => index.md} | 0 .../border-radius_generator/{index.html => index.md} | 0 .../web/css/css_backgrounds_and_borders/{index.html => index.md} | 0 .../using_multiple_backgrounds/{index.html => index.md} | 0 files/es/web/css/css_box_model/{index.html => index.md} | 0 .../introduction_to_the_css_box_model/{index.html => index.md} | 0 .../mastering_margin_collapsing/{index.html => index.md} | 0 .../web/css/css_colors/color_picker_tool/{index.html => index.md} | 0 files/es/web/css/css_colors/{index.html => index.md} | 0 files/es/web/css/css_columns/{index.html => index.md} | 0 .../using_multi-column_layouts/{index.html => index.md} | 0 files/es/web/css/css_conditional_rules/{index.html => index.md} | 0 files/es/web/css/css_containment/{index.html => index.md} | 0 .../aligning_items_in_a_flex_container/{index.html => index.md} | 0 .../backwards_compatibility_of_flexbox/{index.html => index.md} | 0 .../basic_concepts_of_flexbox/{index.html => index.md} | 0 files/es/web/css/css_flexible_box_layout/{index.html => index.md} | 0 .../typical_use_cases_of_flexbox/{index.html => index.md} | 0 files/es/web/css/css_flow_layout/{index.html => index.md} | 0 .../auto-placement_in_css_grid_layout/{index.html => index.md} | 0 .../box_alignment_in_css_grid_layout/{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../basic_concepts/{index.html => index.md} | 0 .../floating_and_positioning/{index.html => index.md} | 0 files/es/web/css/css_logical_properties/{index.html => index.md} | 0 .../margins_borders_padding/{index.html => index.md} | 0 .../css/css_logical_properties/sizing/{index.html => index.md} | 0 files/es/web/css/css_motion_path/{index.html => index.md} | 0 files/es/web/css/css_positioning/{index.html => index.md} | 0 .../understanding_z_index/adding_z-index/{index.html => index.md} | 0 .../understanding_z_index/{index.html => index.md} | 0 .../stacking_and_float/{index.html => index.md} | 0 .../stacking_context_example_2/{index.html => index.md} | 0 .../stacking_context_example_3/{index.html => index.md} | 0 .../stacking_without_z-index/{index.html => index.md} | 0 .../the_stacking_context/{index.html => index.md} | 0 .../es/web/css/css_properties_reference/{index.html => index.md} | 0 files/es/web/css/css_selectors/{index.html => index.md} | 0 .../{index.html => index.md} | 0 files/es/web/css/css_text/{index.html => index.md} | 0 files/es/web/css/css_transforms/{index.html => index.md} | 0 files/es/web/css/css_transitions/{index.html => index.md} | 0 files/es/web/css/css_types/{index.html => index.md} | 0 files/es/web/css/css_writing_modes/{index.html => index.md} | 0 files/es/web/css/cursor/{index.html => index.md} | 0 files/es/web/css/direction/{index.html => index.md} | 0 files/es/web/css/env/{index.html => index.md} | 0 files/es/web/css/filter-function/blur/{index.html => index.md} | 0 files/es/web/css/filter-function/{index.html => index.md} | 0 files/es/web/css/filter/{index.html => index.md} | 0 files/es/web/css/flex-grow/{index.html => index.md} | 0 files/es/web/css/flex-shrink/{index.html => index.md} | 0 files/es/web/css/font-family/{index.html => index.md} | 0 files/es/web/css/font-language-override/{index.html => index.md} | 0 files/es/web/css/font-size-adjust/{index.html => index.md} | 0 files/es/web/css/font-size/{index.html => index.md} | 0 files/es/web/css/font-style/{index.html => index.md} | 0 files/es/web/css/font-weight/{index.html => index.md} | 0 files/es/web/css/frequency/{index.html => index.md} | 0 files/es/web/css/gap/{index.html => index.md} | 0 files/es/web/css/gradient/{index.html => index.md} | 0 files/es/web/css/grid-template-areas/{index.html => index.md} | 0 files/es/web/css/grid/{index.html => index.md} | 0 files/es/web/css/hyphens/{index.html => index.md} | 0 files/es/web/css/id_selectors/{index.html => index.md} | 0 files/es/web/css/image-rendering/{index.html => index.md} | 0 files/es/web/css/image/{index.html => index.md} | 0 files/es/web/css/ime-mode/{index.html => index.md} | 0 files/es/web/css/inherit/{index.html => index.md} | 0 files/es/web/css/inheritance/{index.html => index.md} | 0 files/es/web/css/initial/{index.html => index.md} | 0 files/es/web/css/initial_value/{index.html => index.md} | 0 files/es/web/css/inline-size/{index.html => index.md} | 0 files/es/web/css/inset-block-end/{index.html => index.md} | 0 files/es/web/css/inset-block-start/{index.html => index.md} | 0 files/es/web/css/inset-block/{index.html => index.md} | 0 files/es/web/css/inset-inline-end/{index.html => index.md} | 0 files/es/web/css/inset-inline-start/{index.html => index.md} | 0 files/es/web/css/inset-inline/{index.html => index.md} | 0 files/es/web/css/inset/{index.html => index.md} | 0 files/es/web/css/integer/{index.html => index.md} | 0 files/es/web/css/isolation/{index.html => index.md} | 0 files/es/web/css/justify-content/{index.html => index.md} | 0 files/es/web/css/layout_cookbook/{index.html => index.md} | 0 files/es/web/css/layout_mode/{index.html => index.md} | 0 files/es/web/css/left/{index.html => index.md} | 0 files/es/web/css/length/{index.html => index.md} | 0 files/es/web/css/line-height/{index.html => index.md} | 0 files/es/web/css/list-style-image/{index.html => index.md} | 0 files/es/web/css/list-style-position/{index.html => index.md} | 0 files/es/web/css/list-style-type/{index.html => index.md} | 0 files/es/web/css/margin-block-start/{index.html => index.md} | 0 files/es/web/css/margin-block/{index.html => index.md} | 0 files/es/web/css/margin-bottom/{index.html => index.md} | 0 files/es/web/css/margin-inline-end/{index.html => index.md} | 0 files/es/web/css/margin-inline-start/{index.html => index.md} | 0 files/es/web/css/margin-inline/{index.html => index.md} | 0 files/es/web/css/margin-right/{index.html => index.md} | 0 files/es/web/css/margin/{index.html => index.md} | 0 files/es/web/css/mask-clip/{index.html => index.md} | 0 files/es/web/css/mask-image/{index.html => index.md} | 0 files/es/web/css/mask-origin/{index.html => index.md} | 0 files/es/web/css/mask-position/{index.html => index.md} | 0 files/es/web/css/mask-repeat/{index.html => index.md} | 0 files/es/web/css/mask/{index.html => index.md} | 0 files/es/web/css/max-height/{index.html => index.md} | 0 files/es/web/css/max-inline-size/{index.html => index.md} | 0 files/es/web/css/media_queries/{index.html => index.md} | 0 files/es/web/css/min-block-size/{index.html => index.md} | 0 files/es/web/css/min-height/{index.html => index.md} | 0 files/es/web/css/min-inline-size/{index.html => index.md} | 0 files/es/web/css/min-width/{index.html => index.md} | 0 files/es/web/css/min/{index.html => index.md} | 0 files/es/web/css/minmax/{index.html => index.md} | 0 files/es/web/css/mix-blend-mode/{index.html => index.md} | 0 files/es/web/css/mozilla_extensions/{index.html => index.md} | 0 files/es/web/css/number/{index.html => index.md} | 0 files/es/web/css/object-fit/{index.html => index.md} | 0 files/es/web/css/object-position/{index.html => index.md} | 0 files/es/web/css/opacity/{index.html => index.md} | 0 files/es/web/css/order/{index.html => index.md} | 0 files/es/web/css/outline-offset/{index.html => index.md} | 0 files/es/web/css/outline-width/{index.html => index.md} | 0 files/es/web/css/outline/{index.html => index.md} | 0 files/es/web/css/overflow/{index.html => index.md} | 0 files/es/web/css/padding-block-end/{index.html => index.md} | 0 files/es/web/css/padding-block-start/{index.html => index.md} | 0 files/es/web/css/padding-block/{index.html => index.md} | 0 files/es/web/css/padding-bottom/{index.html => index.md} | 0 files/es/web/css/padding-inline-end/{index.html => index.md} | 0 files/es/web/css/padding-inline-start/{index.html => index.md} | 0 files/es/web/css/padding-inline/{index.html => index.md} | 0 files/es/web/css/padding-top/{index.html => index.md} | 0 files/es/web/css/padding/{index.html => index.md} | 0 files/es/web/css/percentage/{index.html => index.md} | 0 files/es/web/css/print-color-adjust/{index.html => index.md} | 0 files/es/web/css/pseudo-classes/{index.html => index.md} | 0 files/es/web/css/pseudo-elements/{index.html => index.md} | 0 files/es/web/css/quotes/{index.html => index.md} | 0 files/es/web/css/reference/{index.html => index.md} | 0 files/es/web/css/repeat/{index.html => index.md} | 0 files/es/web/css/replaced_element/{index.html => index.md} | 0 files/es/web/css/resize/{index.html => index.md} | 0 files/es/web/css/resolution/{index.html => index.md} | 0 files/es/web/css/resolved_value/{index.html => index.md} | 0 files/es/web/css/right/{index.html => index.md} | 0 files/es/web/css/scroll-behavior/{index.html => index.md} | 0 files/es/web/css/specified_value/{index.html => index.md} | 0 files/es/web/css/syntax/{index.html => index.md} | 0 files/es/web/css/text-decoration-color/{index.html => index.md} | 0 files/es/web/css/text-decoration-style/{index.html => index.md} | 0 files/es/web/css/text-decoration/{index.html => index.md} | 0 files/es/web/css/text-emphasis-color/{index.html => index.md} | 0 files/es/web/css/text-emphasis/{index.html => index.md} | 0 files/es/web/css/text-orientation/{index.html => index.md} | 0 files/es/web/css/text-shadow/{index.html => index.md} | 0 files/es/web/css/time/{index.html => index.md} | 0 files/es/web/css/top/{index.html => index.md} | 0 .../es/web/css/transform-function/rotate/{index.html => index.md} | 0 .../es/web/css/transform-function/scale/{index.html => index.md} | 0 .../web/css/transform-function/translate/{index.html => index.md} | 0 .../css/transform-function/translatey/{index.html => index.md} | 0 .../css/transform-function/translatez/{index.html => index.md} | 0 files/es/web/css/transform-origin/{index.html => index.md} | 0 files/es/web/css/transform-style/{index.html => index.md} | 0 files/es/web/css/transition-delay/{index.html => index.md} | 0 files/es/web/css/transition-property/{index.html => index.md} | 0 files/es/web/css/transition/{index.html => index.md} | 0 files/es/web/css/tutorials/{index.html => index.md} | 0 files/es/web/css/type_selectors/{index.html => index.md} | 0 files/es/web/css/universal_selectors/{index.html => index.md} | 0 files/es/web/css/url/{index.html => index.md} | 0 files/es/web/css/user-modify/{index.html => index.md} | 0 .../web/css/using_css_custom_properties/{index.html => index.md} | 0 files/es/web/css/value_definition_syntax/{index.html => index.md} | 0 files/es/web/css/var/{index.html => index.md} | 0 files/es/web/css/vertical-align/{index.html => index.md} | 0 files/es/web/css/visibility/{index.html => index.md} | 0 files/es/web/css/white-space/{index.html => index.md} | 0 files/es/web/css/widows/{index.html => index.md} | 0 files/es/web/css/width/{index.html => index.md} | 0 files/es/web/css/writing-mode/{index.html => index.md} | 0 files/es/web/css/z-index/{index.html => index.md} | 0 files/es/web/demos/{index.html => index.md} | 0 files/es/web/exslt/exsl/node-set/{index.html => index.md} | 0 files/es/web/exslt/exsl/object-type/{index.html => index.md} | 0 files/es/web/exslt/{index.html => index.md} | 0 files/es/web/exslt/math/highest/{index.html => index.md} | 0 files/es/web/exslt/math/lowest/{index.html => index.md} | 0 files/es/web/exslt/math/max/{index.html => index.md} | 0 files/es/web/exslt/math/min/{index.html => index.md} | 0 files/es/web/exslt/regexp/match/{index.html => index.md} | 0 files/es/web/exslt/regexp/replace/{index.html => index.md} | 0 files/es/web/exslt/regexp/test/{index.html => index.md} | 0 files/es/web/exslt/set/difference/{index.html => index.md} | 0 files/es/web/exslt/set/distinct/{index.html => index.md} | 0 files/es/web/exslt/set/has-same-node/{index.html => index.md} | 0 files/es/web/exslt/set/intersection/{index.html => index.md} | 0 files/es/web/exslt/set/leading/{index.html => index.md} | 0 files/es/web/exslt/set/trailing/{index.html => index.md} | 0 files/es/web/exslt/str/concat/{index.html => index.md} | 0 files/es/web/exslt/str/split/{index.html => index.md} | 0 files/es/web/exslt/str/tokenize/{index.html => index.md} | 0 files/es/web/guide/ajax/community/{index.html => index.md} | 0 files/es/web/guide/ajax/getting_started/{index.html => index.md} | 0 files/es/web/guide/api/{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../guide/css/block_formatting_context/{index.html => index.md} | 0 .../es/web/guide/html/content_categories/{index.html => index.md} | 0 files/es/web/guide/mobile/{index.html => index.md} | 0 .../guide/parsing_and_serializing_xml/{index.html => index.md} | 0 files/es/web/guide/performance/{index.html => index.md} | 0 files/es/web/html/attributes/accept/{index.html => index.md} | 0 files/es/web/html/attributes/crossorigin/{index.html => index.md} | 0 files/es/web/html/attributes/minlength/{index.html => index.md} | 0 files/es/web/html/attributes/multiple/{index.html => index.md} | 0 files/es/web/html/block-level_elements/{index.html => index.md} | 0 files/es/web/html/cors_enabled_image/{index.html => index.md} | 0 files/es/web/html/element/abbr/{index.html => index.md} | 0 files/es/web/html/element/address/{index.html => index.md} | 0 files/es/web/html/element/article/{index.html => index.md} | 0 files/es/web/html/element/aside/{index.html => index.md} | 0 files/es/web/html/element/audio/{index.html => index.md} | 0 files/es/web/html/element/bdi/{index.html => index.md} | 0 files/es/web/html/element/blink/{index.html => index.md} | 0 files/es/web/html/element/br/{index.html => index.md} | 0 files/es/web/html/element/canvas/{index.html => index.md} | 0 files/es/web/html/element/data/{index.html => index.md} | 0 files/es/web/html/element/em/{index.html => index.md} | 0 files/es/web/html/element/embed/{index.html => index.md} | 0 files/es/web/html/element/figure/{index.html => index.md} | 0 files/es/web/html/element/head/{index.html => index.md} | 0 files/es/web/html/element/header/{index.html => index.md} | 0 .../es/web/html/element/heading_elements/{index.html => index.md} | 0 files/es/web/html/element/hgroup/{index.html => index.md} | 0 files/es/web/html/element/html/{index.html => index.md} | 0 files/es/web/html/element/image/{index.html => index.md} | 0 files/es/web/html/element/{index.html => index.md} | 0 files/es/web/html/element/input/color/{index.html => index.md} | 0 files/es/web/html/element/input/hidden/{index.html => index.md} | 0 files/es/web/html/element/link/{index.html => index.md} | 0 files/es/web/html/element/nav/{index.html => index.md} | 0 files/es/web/html/element/nobr/{index.html => index.md} | 0 files/es/web/html/element/option/{index.html => index.md} | 0 files/es/web/html/element/picture/{index.html => index.md} | 0 files/es/web/html/element/section/{index.html => index.md} | 0 files/es/web/html/element/small/{index.html => index.md} | 0 files/es/web/html/element/sub/{index.html => index.md} | 0 files/es/web/html/element/template/{index.html => index.md} | 0 files/es/web/html/element/textarea/{index.html => index.md} | 0 files/es/web/html/element/tr/{index.html => index.md} | 0 files/es/web/html/element/wbr/{index.html => index.md} | 0 files/es/web/html/element/xmp/{index.html => index.md} | 0 .../web/html/global_attributes/accesskey/{index.html => index.md} | 0 .../global_attributes/autocapitalize/{index.html => index.md} | 0 .../es/web/html/global_attributes/class/{index.html => index.md} | 0 .../global_attributes/contenteditable/{index.html => index.md} | 0 .../html/global_attributes/contextmenu/{index.html => index.md} | 0 .../html/global_attributes/data-_star_/{index.html => index.md} | 0 files/es/web/html/global_attributes/dir/{index.html => index.md} | 0 .../web/html/global_attributes/draggable/{index.html => index.md} | 0 .../es/web/html/global_attributes/hidden/{index.html => index.md} | 0 files/es/web/html/global_attributes/id/{index.html => index.md} | 0 files/es/web/html/global_attributes/{index.html => index.md} | 0 files/es/web/html/global_attributes/is/{index.html => index.md} | 0 .../web/html/global_attributes/itemprop/{index.html => index.md} | 0 .../web/html/global_attributes/itemscope/{index.html => index.md} | 0 files/es/web/html/global_attributes/lang/{index.html => index.md} | 0 files/es/web/html/global_attributes/slot/{index.html => index.md} | 0 .../html/global_attributes/spellcheck/{index.html => index.md} | 0 .../es/web/html/global_attributes/style/{index.html => index.md} | 0 .../web/html/global_attributes/tabindex/{index.html => index.md} | 0 .../es/web/html/global_attributes/title/{index.html => index.md} | 0 .../web/html/global_attributes/translate/{index.html => index.md} | 0 .../x-ms-acceleratorkey/{index.html => index.md} | 0 files/es/web/html/inline_elements/{index.html => index.md} | 0 .../html/quirks_mode_and_standards_mode/{index.html => index.md} | 0 files/es/web/http/authentication/{index.html => index.md} | 0 .../es/web/http/basics_of_http/data_urls/{index.html => index.md} | 0 .../basics_of_http/evolution_of_http/{index.html => index.md} | 0 .../identifying_resources_on_the_web/{index.html => index.md} | 0 files/es/web/http/basics_of_http/{index.html => index.md} | 0 .../mime_types/common_types/{index.html => index.md} | 0 .../web/http/basics_of_http/mime_types/{index.html => index.md} | 0 files/es/web/http/conditional_requests/{index.html => index.md} | 0 .../connection_management_in_http_1.x/{index.html => index.md} | 0 files/es/web/http/cookies/{index.html => index.md} | 0 .../cors/errors/corsmissingalloworigin/{index.html => index.md} | 0 .../errors/corspreflightdidnotsucceed/{index.html => index.md} | 0 .../http/cors/errors/corsrequestnothttp/{index.html => index.md} | 0 files/es/web/http/cors/errors/{index.html => index.md} | 0 files/es/web/http/headers/accept-ranges/{index.html => index.md} | 0 .../access-control-allow-credentials/{index.html => index.md} | 0 .../headers/access-control-allow-headers/{index.html => index.md} | 0 .../headers/access-control-allow-methods/{index.html => index.md} | 0 .../access-control-expose-headers/{index.html => index.md} | 0 files/es/web/http/headers/age/{index.html => index.md} | 0 files/es/web/http/headers/allow/{index.html => index.md} | 0 files/es/web/http/headers/authorization/{index.html => index.md} | 0 .../web/http/headers/content-disposition/{index.html => index.md} | 0 .../es/web/http/headers/content-encoding/{index.html => index.md} | 0 files/es/web/http/headers/content-length/{index.html => index.md} | 0 .../es/web/http/headers/content-location/{index.html => index.md} | 0 files/es/web/http/headers/content-type/{index.html => index.md} | 0 files/es/web/http/headers/cookie/{index.html => index.md} | 0 .../headers/cross-origin-resource-policy/{index.html => index.md} | 0 files/es/web/http/headers/digest/{index.html => index.md} | 0 files/es/web/http/headers/etag/{index.html => index.md} | 0 files/es/web/http/headers/expires/{index.html => index.md} | 0 files/es/web/http/headers/host/{index.html => index.md} | 0 files/es/web/http/headers/keep-alive/{index.html => index.md} | 0 files/es/web/http/headers/origin/{index.html => index.md} | 0 files/es/web/http/headers/referer/{index.html => index.md} | 0 files/es/web/http/headers/server/{index.html => index.md} | 0 .../headers/strict-transport-security/{index.html => index.md} | 0 .../web/http/headers/transfer-encoding/{index.html => index.md} | 0 .../web/http/headers/user-agent/firefox/{index.html => index.md} | 0 files/es/web/http/headers/vary/{index.html => index.md} | 0 .../es/web/http/headers/www-authenticate/{index.html => index.md} | 0 .../http/headers/x-content-type-options/{index.html => index.md} | 0 .../es/web/http/headers/x-forwarded-for/{index.html => index.md} | 0 .../es/web/http/headers/x-xss-protection/{index.html => index.md} | 0 files/es/web/http/messages/{index.html => index.md} | 0 files/es/web/http/methods/connect/{index.html => index.md} | 0 files/es/web/http/methods/get/{index.html => index.md} | 0 files/es/web/http/methods/{index.html => index.md} | 0 files/es/web/http/methods/post/{index.html => index.md} | 0 files/es/web/http/methods/trace/{index.html => index.md} | 0 files/es/web/http/overview/{index.html => index.md} | 0 .../web/http/protocol_upgrade_mechanism/{index.html => index.md} | 0 .../http/resources_and_specifications/{index.html => index.md} | 0 files/es/web/http/session/{index.html => index.md} | 0 files/es/web/http/status/100/{index.html => index.md} | 0 files/es/web/http/status/101/{index.html => index.md} | 0 files/es/web/http/status/200/{index.html => index.md} | 0 files/es/web/http/status/201/{index.html => index.md} | 0 files/es/web/http/status/202/{index.html => index.md} | 0 files/es/web/http/status/203/{index.html => index.md} | 0 files/es/web/http/status/302/{index.html => index.md} | 0 files/es/web/http/status/304/{index.html => index.md} | 0 files/es/web/http/status/400/{index.html => index.md} | 0 files/es/web/http/status/401/{index.html => index.md} | 0 files/es/web/http/status/404/{index.html => index.md} | 0 files/es/web/http/status/408/{index.html => index.md} | 0 files/es/web/http/status/413/{index.html => index.md} | 0 files/es/web/http/status/418/{index.html => index.md} | 0 files/es/web/http/status/500/{index.html => index.md} | 0 files/es/web/http/status/502/{index.html => index.md} | 0 files/es/web/http/status/503/{index.html => index.md} | 0 files/es/web/http/status/504/{index.html => index.md} | 0 files/es/web/http/status/505/{index.html => index.md} | 0 .../a_re-introduction_to_javascript/{index.html => index.md} | 0 files/es/web/javascript/about_javascript/{index.html => index.md} | 0 files/es/web/javascript/closures/{index.html => index.md} | 0 files/es/web/javascript/data_structures/{index.html => index.md} | 0 files/es/web/javascript/eventloop/{index.html => index.md} | 0 .../control_flow_and_error_handling/{index.html => index.md} | 0 .../guide/expressions_and_operators/{index.html => index.md} | 0 files/es/web/javascript/guide/functions/{index.html => index.md} | 0 .../javascript/guide/grammar_and_types/{index.html => index.md} | 0 .../javascript/guide/indexed_collections/{index.html => index.md} | 0 .../es/web/javascript/guide/introduction/{index.html => index.md} | 0 .../guide/iterators_and_generators/{index.html => index.md} | 0 .../javascript/guide/keyed_collections/{index.html => index.md} | 0 .../javascript/guide/loops_and_iteration/{index.html => index.md} | 0 files/es/web/javascript/guide/modules/{index.html => index.md} | 0 .../javascript/guide/numbers_and_dates/{index.html => index.md} | 0 .../javascript/guide/regular_expressions/{index.html => index.md} | 0 .../web/javascript/guide/using_promises/{index.html => index.md} | 0 .../guide/working_with_objects/{index.html => index.md} | 0 .../inheritance_and_the_prototype_chain/{index.html => index.md} | 0 .../javascript_technologies_overview/{index.html => index.md} | 0 .../es/web/javascript/memory_management/{index.html => index.md} | 0 files/es/web/javascript/reference/about/{index.html => index.md} | 0 .../reference/classes/constructor/{index.html => index.md} | 0 .../javascript/reference/classes/extends/{index.html => index.md} | 0 .../classes/private_class_fields/{index.html => index.md} | 0 .../classes/public_class_fields/{index.html => index.md} | 0 .../javascript/reference/classes/static/{index.html => index.md} | 0 .../deprecated_and_obsolete_features/{index.html => index.md} | 0 .../reference/errors/bad_octal/{index.html => index.md} | 0 .../reference/errors/bad_regexp_flag/{index.html => index.md} | 0 .../errors/deprecated_source_map_pragma/{index.html => index.md} | 0 .../reference/errors/illegal_character/{index.html => index.md} | 0 .../errors/in_operator_no_object/{index.html => index.md} | 0 files/es/web/javascript/reference/errors/{index.html => index.md} | 0 .../errors/malformed_formal_parameter/{index.html => index.md} | 0 .../missing_curly_after_property_list/{index.html => index.md} | 0 .../errors/missing_formal_parameter/{index.html => index.md} | 0 .../{index.html => index.md} | 0 .../missing_semicolon_before_statement/{index.html => index.md} | 0 .../errors/more_arguments_needed/{index.html => index.md} | 0 .../reference/errors/no_variable_name/{index.html => index.md} | 0 .../reference/errors/not_a_codepoint/{index.html => index.md} | 0 .../reference/errors/not_a_function/{index.html => index.md} | 0 .../reference/errors/not_defined/{index.html => index.md} | 0 .../errors/property_access_denied/{index.html => index.md} | 0 .../reference/errors/stmt_after_return/{index.html => index.md} | 0 .../errors/strict_non_simple_params/{index.html => index.md} | 0 .../reference/errors/too_much_recursion/{index.html => index.md} | 0 .../reference/errors/undefined_prop/{index.html => index.md} | 0 .../reference/errors/unexpected_token/{index.html => index.md} | 0 .../reference/errors/unexpected_type/{index.html => index.md} | 0 .../reference/functions/arguments/callee/{index.html => index.md} | 0 .../reference/functions/arguments/length/{index.html => index.md} | 0 .../javascript/reference/functions/get/{index.html => index.md} | 0 .../reference/functions/rest_parameters/{index.html => index.md} | 0 .../javascript/reference/functions/set/{index.html => index.md} | 0 .../global_objects/aggregateerror/{index.html => index.md} | 0 .../global_objects/array/@@iterator/{index.html => index.md} | 0 .../global_objects/array/@@species/{index.html => index.md} | 0 .../global_objects/array/@@unscopables/{index.html => index.md} | 0 .../global_objects/array/entries/{index.html => index.md} | 0 .../reference/global_objects/array/fill/{index.html => index.md} | 0 .../reference/global_objects/array/find/{index.html => index.md} | 0 .../global_objects/array/findindex/{index.html => index.md} | 0 .../reference/global_objects/array/from/{index.html => index.md} | 0 .../global_objects/array/includes/{index.html => index.md} | 0 .../reference/global_objects/array/{index.html => index.md} | 0 .../global_objects/array/indexof/{index.html => index.md} | 0 .../global_objects/array/isarray/{index.html => index.md} | 0 .../reference/global_objects/array/join/{index.html => index.md} | 0 .../reference/global_objects/array/keys/{index.html => index.md} | 0 .../global_objects/array/lastindexof/{index.html => index.md} | 0 .../global_objects/array/length/{index.html => index.md} | 0 .../reference/global_objects/array/of/{index.html => index.md} | 0 .../reference/global_objects/array/pop/{index.html => index.md} | 0 .../reference/global_objects/array/push/{index.html => index.md} | 0 .../global_objects/array/reduce/{index.html => index.md} | 0 .../global_objects/array/reduceright/{index.html => index.md} | 0 .../global_objects/array/reverse/{index.html => index.md} | 0 .../reference/global_objects/array/shift/{index.html => index.md} | 0 .../reference/global_objects/array/some/{index.html => index.md} | 0 .../reference/global_objects/array/sort/{index.html => index.md} | 0 .../global_objects/array/tolocalestring/{index.html => index.md} | 0 .../global_objects/array/tostring/{index.html => index.md} | 0 .../global_objects/array/unshift/{index.html => index.md} | 0 .../global_objects/array/values/{index.html => index.md} | 0 .../global_objects/arraybuffer/@@species/{index.html => index.md} | 0 .../arraybuffer/bytelength/{index.html => index.md} | 0 .../reference/global_objects/boolean/{index.html => index.md} | 0 .../global_objects/boolean/tostring/{index.html => index.md} | 0 .../global_objects/date/getdate/{index.html => index.md} | 0 .../reference/global_objects/date/getday/{index.html => index.md} | 0 .../global_objects/date/getfullyear/{index.html => index.md} | 0 .../global_objects/date/gethours/{index.html => index.md} | 0 .../global_objects/date/getmilliseconds/{index.html => index.md} | 0 .../global_objects/date/getminutes/{index.html => index.md} | 0 .../global_objects/date/getmonth/{index.html => index.md} | 0 .../global_objects/date/getseconds/{index.html => index.md} | 0 .../global_objects/date/gettime/{index.html => index.md} | 0 .../global_objects/date/getutcfullyear/{index.html => index.md} | 0 .../reference/global_objects/date/now/{index.html => index.md} | 0 .../reference/global_objects/date/parse/{index.html => index.md} | 0 .../global_objects/date/setfullyear/{index.html => index.md} | 0 .../global_objects/date/setmonth/{index.html => index.md} | 0 .../global_objects/date/todatestring/{index.html => index.md} | 0 .../global_objects/date/toisostring/{index.html => index.md} | 0 .../global_objects/date/tolocalestring/{index.html => index.md} | 0 .../date/tolocaletimestring/{index.html => index.md} | 0 .../global_objects/date/toutcstring/{index.html => index.md} | 0 .../reference/global_objects/date/utc/{index.html => index.md} | 0 .../reference/global_objects/decodeuri/{index.html => index.md} | 0 .../reference/global_objects/encodeuri/{index.html => index.md} | 0 .../reference/global_objects/error/error/{index.html => index.md} | 0 .../global_objects/error/filename/{index.html => index.md} | 0 .../reference/global_objects/error/{index.html => index.md} | 0 .../global_objects/error/message/{index.html => index.md} | 0 .../reference/global_objects/error/name/{index.html => index.md} | 0 .../global_objects/error/tostring/{index.html => index.md} | 0 .../reference/global_objects/escape/{index.html => index.md} | 0 .../global_objects/function/arguments/{index.html => index.md} | 0 .../global_objects/function/bind/{index.html => index.md} | 0 .../reference/global_objects/function/{index.html => index.md} | 0 .../global_objects/function/length/{index.html => index.md} | 0 .../global_objects/function/tostring/{index.html => index.md} | 0 .../reference/global_objects/generator/{index.html => index.md} | 0 .../global_objects/generator/next/{index.html => index.md} | 0 .../global_objects/generator/return/{index.html => index.md} | 0 .../global_objects/generator/throw/{index.html => index.md} | 0 .../reference/global_objects/infinity/{index.html => index.md} | 0 .../global_objects/internalerror/{index.html => index.md} | 0 .../internalerror/internalerror/{index.html => index.md} | 0 .../reference/global_objects/intl/{index.html => index.md} | 0 .../intl/numberformat/format/{index.html => index.md} | 0 .../reference/global_objects/isfinite/{index.html => index.md} | 0 .../reference/global_objects/isnan/{index.html => index.md} | 0 .../reference/global_objects/json/{index.html => index.md} | 0 .../reference/global_objects/json/parse/{index.html => index.md} | 0 .../global_objects/json/stringify/{index.html => index.md} | 0 .../reference/global_objects/math/acos/{index.html => index.md} | 0 .../reference/global_objects/math/acosh/{index.html => index.md} | 0 .../reference/global_objects/math/asin/{index.html => index.md} | 0 .../reference/global_objects/math/asinh/{index.html => index.md} | 0 .../reference/global_objects/math/atan2/{index.html => index.md} | 0 .../reference/global_objects/math/atanh/{index.html => index.md} | 0 .../reference/global_objects/math/ceil/{index.html => index.md} | 0 .../reference/global_objects/math/e/{index.html => index.md} | 0 .../reference/global_objects/math/exp/{index.html => index.md} | 0 .../reference/global_objects/math/floor/{index.html => index.md} | 0 .../reference/global_objects/math/hypot/{index.html => index.md} | 0 .../reference/global_objects/math/{index.html => index.md} | 0 .../reference/global_objects/math/ln10/{index.html => index.md} | 0 .../reference/global_objects/math/ln2/{index.html => index.md} | 0 .../reference/global_objects/math/log/{index.html => index.md} | 0 .../reference/global_objects/math/log10/{index.html => index.md} | 0 .../reference/global_objects/math/log10e/{index.html => index.md} | 0 .../reference/global_objects/math/log2/{index.html => index.md} | 0 .../reference/global_objects/math/log2e/{index.html => index.md} | 0 .../reference/global_objects/math/min/{index.html => index.md} | 0 .../reference/global_objects/math/pi/{index.html => index.md} | 0 .../reference/global_objects/math/pow/{index.html => index.md} | 0 .../reference/global_objects/math/sign/{index.html => index.md} | 0 .../reference/global_objects/math/sin/{index.html => index.md} | 0 .../reference/global_objects/math/sqrt/{index.html => index.md} | 0 .../global_objects/math/sqrt1_2/{index.html => index.md} | 0 .../reference/global_objects/math/sqrt2/{index.html => index.md} | 0 .../reference/global_objects/math/tanh/{index.html => index.md} | 0 .../reference/global_objects/math/trunc/{index.html => index.md} | 0 .../reference/global_objects/nan/{index.html => index.md} | 0 .../reference/global_objects/number/{index.html => index.md} | 0 .../global_objects/number/isfinite/{index.html => index.md} | 0 .../global_objects/number/isinteger/{index.html => index.md} | 0 .../global_objects/number/isnan/{index.html => index.md} | 0 .../global_objects/number/issafeinteger/{index.html => index.md} | 0 .../global_objects/number/max_value/{index.html => index.md} | 0 .../global_objects/number/min_value/{index.html => index.md} | 0 .../reference/global_objects/number/nan/{index.html => index.md} | 0 .../number/negative_infinity/{index.html => index.md} | 0 .../global_objects/number/parseint/{index.html => index.md} | 0 .../number/positive_infinity/{index.html => index.md} | 0 .../global_objects/number/tofixed/{index.html => index.md} | 0 .../global_objects/number/tolocalestring/{index.html => index.md} | 0 .../global_objects/number/toprecision/{index.html => index.md} | 0 .../global_objects/number/tostring/{index.html => index.md} | 0 .../global_objects/number/valueof/{index.html => index.md} | 0 .../global_objects/object/assign/{index.html => index.md} | 0 .../global_objects/object/constructor/{index.html => index.md} | 0 .../global_objects/object/create/{index.html => index.md} | 0 .../global_objects/object/defineproperty/{index.html => index.md} | 0 .../global_objects/object/entries/{index.html => index.md} | 0 .../global_objects/object/fromentries/{index.html => index.md} | 0 .../object/getownpropertydescriptor/{index.html => index.md} | 0 .../object/getownpropertydescriptors/{index.html => index.md} | 0 .../object/getownpropertynames/{index.html => index.md} | 0 .../object/getownpropertysymbols/{index.html => index.md} | 0 .../global_objects/object/getprototypeof/{index.html => index.md} | 0 .../global_objects/object/hasownproperty/{index.html => index.md} | 0 .../reference/global_objects/object/is/{index.html => index.md} | 0 .../global_objects/object/isextensible/{index.html => index.md} | 0 .../global_objects/object/isfrozen/{index.html => index.md} | 0 .../global_objects/object/isprototypeof/{index.html => index.md} | 0 .../global_objects/object/issealed/{index.html => index.md} | 0 .../reference/global_objects/object/keys/{index.html => index.md} | 0 .../object/preventextensions/{index.html => index.md} | 0 .../object/propertyisenumerable/{index.html => index.md} | 0 .../global_objects/object/proto/{index.html => index.md} | 0 .../reference/global_objects/object/seal/{index.html => index.md} | 0 .../global_objects/object/setprototypeof/{index.html => index.md} | 0 .../global_objects/object/tolocalestring/{index.html => index.md} | 0 .../global_objects/object/tostring/{index.html => index.md} | 0 .../global_objects/object/valueof/{index.html => index.md} | 0 .../global_objects/object/values/{index.html => index.md} | 0 .../reference/global_objects/parseint/{index.html => index.md} | 0 .../reference/global_objects/promise/all/{index.html => index.md} | 0 .../global_objects/promise/catch/{index.html => index.md} | 0 .../global_objects/promise/finally/{index.html => index.md} | 0 .../global_objects/promise/race/{index.html => index.md} | 0 .../global_objects/promise/then/{index.html => index.md} | 0 .../proxy/proxy/getownpropertydescriptor/{index.html => index.md} | 0 .../reference/global_objects/proxy/proxy/{index.html => index.md} | 0 .../global_objects/referenceerror/{index.html => index.md} | 0 .../reference/global_objects/reflect/{index.html => index.md} | 0 .../reference/global_objects/reflect/set/{index.html => index.md} | 0 .../global_objects/regexp/compile/{index.html => index.md} | 0 .../reference/global_objects/regexp/exec/{index.html => index.md} | 0 .../global_objects/regexp/ignorecase/{index.html => index.md} | 0 .../reference/global_objects/regexp/{index.html => index.md} | 0 .../global_objects/regexp/rightcontext/{index.html => index.md} | 0 .../reference/global_objects/regexp/test/{index.html => index.md} | 0 .../global_objects/regexp/tostring/{index.html => index.md} | 0 .../reference/global_objects/set/add/{index.html => index.md} | 0 .../reference/global_objects/set/clear/{index.html => index.md} | 0 .../reference/global_objects/set/delete/{index.html => index.md} | 0 .../reference/global_objects/set/has/{index.html => index.md} | 0 .../reference/global_objects/set/size/{index.html => index.md} | 0 .../reference/global_objects/set/values/{index.html => index.md} | 0 .../global_objects/string/anchor/{index.html => index.md} | 0 .../reference/global_objects/string/big/{index.html => index.md} | 0 .../global_objects/string/blink/{index.html => index.md} | 0 .../reference/global_objects/string/bold/{index.html => index.md} | 0 .../global_objects/string/charat/{index.html => index.md} | 0 .../global_objects/string/charcodeat/{index.html => index.md} | 0 .../global_objects/string/codepointat/{index.html => index.md} | 0 .../global_objects/string/concat/{index.html => index.md} | 0 .../global_objects/string/endswith/{index.html => index.md} | 0 .../global_objects/string/fixed/{index.html => index.md} | 0 .../global_objects/string/fontcolor/{index.html => index.md} | 0 .../global_objects/string/fontsize/{index.html => index.md} | 0 .../global_objects/string/fromcharcode/{index.html => index.md} | 0 .../global_objects/string/fromcodepoint/{index.html => index.md} | 0 .../global_objects/string/includes/{index.html => index.md} | 0 .../reference/global_objects/string/{index.html => index.md} | 0 .../global_objects/string/indexof/{index.html => index.md} | 0 .../global_objects/string/italics/{index.html => index.md} | 0 .../global_objects/string/lastindexof/{index.html => index.md} | 0 .../global_objects/string/length/{index.html => index.md} | 0 .../reference/global_objects/string/link/{index.html => index.md} | 0 .../global_objects/string/match/{index.html => index.md} | 0 .../global_objects/string/matchall/{index.html => index.md} | 0 .../global_objects/string/normalize/{index.html => index.md} | 0 .../global_objects/string/padstart/{index.html => index.md} | 0 .../reference/global_objects/string/raw/{index.html => index.md} | 0 .../global_objects/string/repeat/{index.html => index.md} | 0 .../global_objects/string/search/{index.html => index.md} | 0 .../global_objects/string/slice/{index.html => index.md} | 0 .../global_objects/string/small/{index.html => index.md} | 0 .../global_objects/string/startswith/{index.html => index.md} | 0 .../global_objects/string/strike/{index.html => index.md} | 0 .../reference/global_objects/string/sub/{index.html => index.md} | 0 .../global_objects/string/substr/{index.html => index.md} | 0 .../global_objects/string/substring/{index.html => index.md} | 0 .../reference/global_objects/string/sup/{index.html => index.md} | 0 .../string/tolocaleuppercase/{index.html => index.md} | 0 .../global_objects/string/tolowercase/{index.html => index.md} | 0 .../global_objects/string/tostring/{index.html => index.md} | 0 .../global_objects/string/touppercase/{index.html => index.md} | 0 .../reference/global_objects/string/trim/{index.html => index.md} | 0 .../global_objects/string/trimend/{index.html => index.md} | 0 .../global_objects/string/valueof/{index.html => index.md} | 0 .../global_objects/typedarray/buffer/{index.html => index.md} | 0 .../reference/global_objects/uint8array/{index.html => index.md} | 0 .../reference/global_objects/undefined/{index.html => index.md} | 0 .../reference/global_objects/unescape/{index.html => index.md} | 0 .../global_objects/weakmap/clear/{index.html => index.md} | 0 .../reference/global_objects/weakmap/get/{index.html => index.md} | 0 .../reference/global_objects/weakmap/has/{index.html => index.md} | 0 .../reference/global_objects/weakmap/set/{index.html => index.md} | 0 .../reference/global_objects/webassembly/{index.html => index.md} | 0 .../javascript/reference/lexical_grammar/{index.html => index.md} | 0 .../reference/operators/assignment/{index.html => index.md} | 0 .../reference/operators/async_function/{index.html => index.md} | 0 .../javascript/reference/operators/await/{index.html => index.md} | 0 .../javascript/reference/operators/class/{index.html => index.md} | 0 .../reference/operators/decrement/{index.html => index.md} | 0 .../reference/operators/division/{index.html => index.md} | 0 .../reference/operators/function/{index.html => index.md} | 0 .../reference/operators/grouping/{index.html => index.md} | 0 .../reference/operators/import.meta/{index.html => index.md} | 0 .../javascript/reference/operators/in/{index.html => index.md} | 0 .../web/javascript/reference/operators/{index.html => index.md} | 0 .../reference/operators/instanceof/{index.html => index.md} | 0 .../reference/operators/new.target/{index.html => index.md} | 0 .../javascript/reference/operators/new/{index.html => index.md} | 0 .../javascript/reference/operators/null/{index.html => index.md} | 0 .../operators/property_accessors/{index.html => index.md} | 0 .../reference/operators/subtraction/{index.html => index.md} | 0 .../javascript/reference/operators/super/{index.html => index.md} | 0 .../javascript/reference/operators/this/{index.html => index.md} | 0 .../javascript/reference/operators/void/{index.html => index.md} | 0 .../reference/operators/yield_star_/{index.html => index.md} | 0 .../reference/statements/block/{index.html => index.md} | 0 .../reference/statements/break/{index.html => index.md} | 0 .../reference/statements/class/{index.html => index.md} | 0 .../reference/statements/const/{index.html => index.md} | 0 .../reference/statements/continue/{index.html => index.md} | 0 .../reference/statements/debugger/{index.html => index.md} | 0 .../reference/statements/do...while/{index.html => index.md} | 0 .../reference/statements/empty/{index.html => index.md} | 0 .../reference/statements/export/{index.html => index.md} | 0 .../reference/statements/for...of/{index.html => index.md} | 0 .../javascript/reference/statements/for/{index.html => index.md} | 0 .../reference/statements/function/{index.html => index.md} | 0 .../reference/statements/function_star_/{index.html => index.md} | 0 .../reference/statements/if...else/{index.html => index.md} | 0 .../web/javascript/reference/statements/{index.html => index.md} | 0 .../reference/statements/label/{index.html => index.md} | 0 .../reference/statements/return/{index.html => index.md} | 0 .../reference/statements/switch/{index.html => index.md} | 0 .../reference/statements/throw/{index.html => index.md} | 0 .../reference/statements/try...catch/{index.html => index.md} | 0 .../javascript/reference/statements/var/{index.html => index.md} | 0 .../reference/statements/while/{index.html => index.md} | 0 .../web/javascript/reference/strict_mode/{index.html => index.md} | 0 .../reference/template_literals/{index.html => index.md} | 0 files/es/web/javascript/shells/{index.html => index.md} | 0 files/es/web/javascript/typed_arrays/{index.html => index.md} | 0 files/es/web/manifest/{index.html => index.md} | 0 files/es/web/mathml/attribute/{index.html => index.md} | 0 files/es/web/mathml/element/{index.html => index.md} | 0 files/es/web/mathml/element/math/{index.html => index.md} | 0 files/es/web/mathml/examples/{index.html => index.md} | 0 .../{index.html => index.md} | 0 files/es/web/performance/fundamentals/{index.html => index.md} | 0 .../optimizing_startup_performance/{index.html => index.md} | 0 .../progressive_web_apps/app_structure/{index.html => index.md} | 0 files/es/web/progressive_web_apps/{index.html => index.md} | 0 .../installable_pwas/{index.html => index.md} | 0 .../progressive_web_apps/introduction/{index.html => index.md} | 0 .../es/web/progressive_web_apps/loading/{index.html => index.md} | 0 .../offline_service_workers/{index.html => index.md} | 0 .../re-engageable_notifications_push/{index.html => index.md} | 0 files/es/web/security/{index.html => index.md} | 0 files/es/web/security/same-origin_policy/{index.html => index.md} | 0 files/es/web/security/securing_your_site/{index.html => index.md} | 0 .../turning_off_form_autocompletion/{index.html => index.md} | 0 files/es/web/svg/attribute/{index.html => index.md} | 0 files/es/web/svg/attribute/stop-color/{index.html => index.md} | 0 files/es/web/svg/attribute/transform/{index.html => index.md} | 0 files/es/web/svg/element/a/{index.html => index.md} | 0 files/es/web/svg/element/animate/{index.html => index.md} | 0 files/es/web/svg/element/circle/{index.html => index.md} | 0 files/es/web/svg/element/g/{index.html => index.md} | 0 files/es/web/svg/element/glyph/{index.html => index.md} | 0 files/es/web/svg/element/{index.html => index.md} | 0 files/es/web/svg/element/rect/{index.html => index.md} | 0 files/es/web/svg/element/style/{index.html => index.md} | 0 files/es/web/svg/element/svg/{index.html => index.md} | 0 files/es/web/svg/element/text/{index.html => index.md} | 0 files/es/web/svg/element/use/{index.html => index.md} | 0 .../es/web/svg/tutorial/getting_started/{index.html => index.md} | 0 files/es/web/svg/tutorial/{index.html => index.md} | 0 files/es/web/svg/tutorial/introduction/{index.html => index.md} | 0 files/es/web/svg/tutorial/tools_for_svg/{index.html => index.md} | 0 .../web_components/using_custom_elements/{index.html => index.md} | 0 .../using_templates_and_slots/{index.html => index.md} | 0 files/es/web/xml/{index.html => index.md} | 0 files/es/web/xml/xml_introduction/{index.html => index.md} | 0 files/es/web/xpath/axes/ancestor-or-self/{index.html => index.md} | 0 files/es/web/xpath/axes/ancestor/{index.html => index.md} | 0 files/es/web/xpath/axes/attribute/{index.html => index.md} | 0 files/es/web/xpath/axes/child/{index.html => index.md} | 0 .../es/web/xpath/axes/descendant-or-self/{index.html => index.md} | 0 files/es/web/xpath/axes/descendant/{index.html => index.md} | 0 .../es/web/xpath/axes/following-sibling/{index.html => index.md} | 0 files/es/web/xpath/axes/following/{index.html => index.md} | 0 files/es/web/xpath/axes/{index.html => index.md} | 0 files/es/web/xpath/axes/namespace/{index.html => index.md} | 0 files/es/web/xpath/axes/parent/{index.html => index.md} | 0 .../es/web/xpath/axes/preceding-sibling/{index.html => index.md} | 0 files/es/web/xpath/axes/preceding/{index.html => index.md} | 0 files/es/web/xpath/functions/contains/{index.html => index.md} | 0 files/es/web/xpath/functions/{index.html => index.md} | 0 files/es/web/xpath/functions/substring/{index.html => index.md} | 0 files/es/web/xpath/functions/true/{index.html => index.md} | 0 files/es/web/xslt/element/apply-imports/{index.html => index.md} | 0 .../es/web/xslt/element/apply-templates/{index.html => index.md} | 0 files/es/web/xslt/element/attribute-set/{index.html => index.md} | 0 files/es/web/xslt/element/attribute/{index.html => index.md} | 0 files/es/web/xslt/element/call-template/{index.html => index.md} | 0 files/es/web/xslt/element/choose/{index.html => index.md} | 0 files/es/web/xslt/element/comment/{index.html => index.md} | 0 files/es/web/xslt/element/copy-of/{index.html => index.md} | 0 files/es/web/xslt/element/copy/{index.html => index.md} | 0 files/es/web/xslt/element/decimal-format/{index.html => index.md} | 0 files/es/web/xslt/element/element/{index.html => index.md} | 0 files/es/web/xslt/element/fallback/{index.html => index.md} | 0 files/es/web/xslt/element/for-each/{index.html => index.md} | 0 files/es/web/xslt/element/if/{index.html => index.md} | 0 files/es/web/xslt/element/import/{index.html => index.md} | 0 files/es/web/xslt/element/include/{index.html => index.md} | 0 files/es/web/xslt/element/{index.html => index.md} | 0 files/es/web/xslt/element/key/{index.html => index.md} | 0 files/es/web/xslt/element/message/{index.html => index.md} | 0 .../es/web/xslt/element/namespace-alias/{index.html => index.md} | 0 files/es/web/xslt/element/otherwise/{index.html => index.md} | 0 files/es/web/xslt/element/when/{index.html => index.md} | 0 files/es/web/xslt/element/with-param/{index.html => index.md} | 0 .../web/xslt/transforming_xml_with_xslt/{index.html => index.md} | 0 files/es/webassembly/concepts/{index.html => index.md} | 0 files/es/webassembly/{index.html => index.md} | 0 files/es/webassembly/loading_and_running/{index.html => index.md} | 0 1470 files changed, 0 insertions(+), 0 deletions(-) rename files/es/web/accessibility/aria/aria_techniques/{index.html => index.md} (100%) rename files/es/web/accessibility/aria/aria_techniques/using_the_aria-label_attribute/{index.html => index.md} (100%) rename files/es/web/accessibility/aria/aria_techniques/using_the_aria-required_attribute/{index.html => index.md} (100%) rename files/es/web/accessibility/aria/forms/{index.html => index.md} (100%) rename files/es/web/accessibility/aria/roles/alert_role/{index.html => index.md} (100%) rename files/es/web/accessibility/aria/roles/alertdialog_role/{index.html => index.md} (100%) rename files/es/web/accessibility/community/{index.html => index.md} (100%) rename files/es/web/accessibility/understanding_wcag/{index.html => index.md} (100%) rename files/es/web/accessibility/understanding_wcag/keyboard/{index.html => index.md} (100%) rename files/es/web/accessibility/understanding_wcag/perceivable/color_contrast/{index.html => index.md} (100%) rename files/es/web/accessibility/understanding_wcag/text_labels_and_names/{index.html => index.md} (100%) rename files/es/web/api/analysernode/{index.html => index.md} (100%) rename files/es/web/api/animation/animation/{index.html => index.md} (100%) rename files/es/web/api/animation/cancel/{index.html => index.md} (100%) rename files/es/web/api/animation/cancel_event/{index.html => index.md} (100%) rename files/es/web/api/animation/currenttime/{index.html => index.md} (100%) rename files/es/web/api/animation/effect/{index.html => index.md} (100%) rename files/es/web/api/animation/finish/{index.html => index.md} (100%) rename files/es/web/api/animation/finish_event/{index.html => index.md} (100%) rename files/es/web/api/animation/finished/{index.html => index.md} (100%) rename files/es/web/api/animation/id/{index.html => index.md} (100%) rename files/es/web/api/animation/{index.html => index.md} (100%) rename files/es/web/api/animation/pause/{index.html => index.md} (100%) rename files/es/web/api/animation/play/{index.html => index.md} (100%) rename files/es/web/api/animation/playbackrate/{index.html => index.md} (100%) rename files/es/web/api/animation/playstate/{index.html => index.md} (100%) rename files/es/web/api/animation/ready/{index.html => index.md} (100%) rename files/es/web/api/animation/reverse/{index.html => index.md} (100%) rename files/es/web/api/animation/starttime/{index.html => index.md} (100%) rename files/es/web/api/animation/timeline/{index.html => index.md} (100%) rename files/es/web/api/animationevent/animationname/{index.html => index.md} (100%) rename files/es/web/api/animationevent/{index.html => index.md} (100%) rename files/es/web/api/atob/{index.html => index.md} (100%) rename files/es/web/api/baseaudiocontext/createbiquadfilter/{index.html => index.md} (100%) rename files/es/web/api/baseaudiocontext/{index.html => index.md} (100%) rename files/es/web/api/beforeunloadevent/{index.html => index.md} (100%) rename files/es/web/api/blob/blob/{index.html => index.md} (100%) rename files/es/web/api/blob/{index.html => index.md} (100%) rename files/es/web/api/blob/type/{index.html => index.md} (100%) rename files/es/web/api/blobbuilder/{index.html => index.md} (100%) rename files/es/web/api/caches/{index.html => index.md} (100%) rename files/es/web/api/cachestorage/{index.html => index.md} (100%) rename files/es/web/api/cachestorage/keys/{index.html => index.md} (100%) rename files/es/web/api/canvas_api/a_basic_ray-caster/{index.html => index.md} (100%) rename files/es/web/api/canvas_api/{index.html => index.md} (100%) rename files/es/web/api/canvas_api/manipulating_video_using_canvas/{index.html => index.md} (100%) rename files/es/web/api/canvas_api/tutorial/advanced_animations/{index.html => index.md} (100%) rename files/es/web/api/canvas_api/tutorial/basic_animations/{index.html => index.md} (100%) rename files/es/web/api/canvas_api/tutorial/basic_usage/{index.html => index.md} (100%) rename files/es/web/api/canvas_api/tutorial/compositing/example/{index.html => index.md} (100%) rename files/es/web/api/canvas_api/tutorial/drawing_shapes/{index.html => index.md} (100%) rename files/es/web/api/canvas_api/tutorial/drawing_text/{index.html => index.md} (100%) rename files/es/web/api/canvas_api/tutorial/{index.html => index.md} (100%) rename files/es/web/api/canvas_api/tutorial/optimizing_canvas/{index.html => index.md} (100%) rename files/es/web/api/canvasrenderingcontext2d/beginpath/{index.html => index.md} (100%) rename files/es/web/api/canvasrenderingcontext2d/drawimage/{index.html => index.md} (100%) rename files/es/web/api/canvasrenderingcontext2d/fillrect/{index.html => index.md} (100%) rename files/es/web/api/canvasrenderingcontext2d/getimagedata/{index.html => index.md} (100%) rename files/es/web/api/canvasrenderingcontext2d/linecap/{index.html => index.md} (100%) rename files/es/web/api/canvasrenderingcontext2d/rotate/{index.html => index.md} (100%) rename files/es/web/api/canvasrenderingcontext2d/save/{index.html => index.md} (100%) rename files/es/web/api/clearinterval/{index.html => index.md} (100%) rename files/es/web/api/cleartimeout/{index.html => index.md} (100%) rename files/es/web/api/clipboard_api/{index.html => index.md} (100%) rename files/es/web/api/clipboardevent/clipboarddata/{index.html => index.md} (100%) rename files/es/web/api/clipboardevent/{index.html => index.md} (100%) rename files/es/web/api/closeevent/{index.html => index.md} (100%) rename files/es/web/api/comment/{index.html => index.md} (100%) rename files/es/web/api/console/assert/{index.html => index.md} (100%) rename files/es/web/api/console/count/{index.html => index.md} (100%) rename files/es/web/api/console/dir/{index.html => index.md} (100%) rename files/es/web/api/console/dirxml/{index.html => index.md} (100%) rename files/es/web/api/console/error/{index.html => index.md} (100%) rename files/es/web/api/console/info/{index.html => index.md} (100%) rename files/es/web/api/console/log/{index.html => index.md} (100%) rename files/es/web/api/console/table/{index.html => index.md} (100%) rename files/es/web/api/console/time/{index.html => index.md} (100%) rename files/es/web/api/console/timeend/{index.html => index.md} (100%) rename files/es/web/api/console/trace/{index.html => index.md} (100%) rename files/es/web/api/console/warn/{index.html => index.md} (100%) rename files/es/web/api/createimagebitmap/{index.html => index.md} (100%) rename files/es/web/api/crypto/getrandomvalues/{index.html => index.md} (100%) rename files/es/web/api/crypto/{index.html => index.md} (100%) rename files/es/web/api/crypto/subtle/{index.html => index.md} (100%) rename files/es/web/api/css_object_model/{index.html => index.md} (100%) rename files/es/web/api/cssrule/csstext/{index.html => index.md} (100%) rename files/es/web/api/cssrule/{index.html => index.md} (100%) rename files/es/web/api/cssstyledeclaration/{index.html => index.md} (100%) rename files/es/web/api/cssstylerule/{index.html => index.md} (100%) rename files/es/web/api/cssstylerule/selectortext/{index.html => index.md} (100%) rename files/es/web/api/cssstylesheet/deleterule/{index.html => index.md} (100%) rename files/es/web/api/cssstylesheet/{index.html => index.md} (100%) rename files/es/web/api/cssstylesheet/insertrule/{index.html => index.md} (100%) rename files/es/web/api/cssstylesheet/ownerrule/{index.html => index.md} (100%) rename files/es/web/api/customelementregistry/define/{index.html => index.md} (100%) rename files/es/web/api/customelementregistry/{index.html => index.md} (100%) rename files/es/web/api/devicemotionevent/{index.html => index.md} (100%) rename files/es/web/api/document/adoptnode/{index.html => index.md} (100%) rename files/es/web/api/document/alinkcolor/{index.html => index.md} (100%) rename files/es/web/api/document/anchors/{index.html => index.md} (100%) rename files/es/web/api/document/applets/{index.html => index.md} (100%) rename files/es/web/api/document/bgcolor/{index.html => index.md} (100%) rename files/es/web/api/document/body/{index.html => index.md} (100%) rename files/es/web/api/document/characterset/{index.html => index.md} (100%) rename files/es/web/api/document/clear/{index.html => index.md} (100%) rename files/es/web/api/document/close/{index.html => index.md} (100%) rename files/es/web/api/document/contenttype/{index.html => index.md} (100%) rename files/es/web/api/document/createdocumentfragment/{index.html => index.md} (100%) rename files/es/web/api/document/createevent/{index.html => index.md} (100%) rename files/es/web/api/document/createrange/{index.html => index.md} (100%) rename files/es/web/api/document/createtextnode/{index.html => index.md} (100%) rename files/es/web/api/document/defaultview/{index.html => index.md} (100%) rename files/es/web/api/document/designmode/{index.html => index.md} (100%) rename files/es/web/api/document/dir/{index.html => index.md} (100%) rename files/es/web/api/document/doctype/{index.html => index.md} (100%) rename files/es/web/api/document/documentelement/{index.html => index.md} (100%) rename files/es/web/api/document/documenturi/{index.html => index.md} (100%) rename files/es/web/api/document/documenturiobject/{index.html => index.md} (100%) rename files/es/web/api/document/dragover_event/{index.html => index.md} (100%) rename files/es/web/api/document/embeds/{index.html => index.md} (100%) rename files/es/web/api/document/exitfullscreen/{index.html => index.md} (100%) rename files/es/web/api/document/getelementsbyclassname/{index.html => index.md} (100%) rename files/es/web/api/document/getelementsbyname/{index.html => index.md} (100%) rename files/es/web/api/document/getelementsbytagname/{index.html => index.md} (100%) rename files/es/web/api/document/getelementsbytagnamens/{index.html => index.md} (100%) rename files/es/web/api/document/getselection/{index.html => index.md} (100%) rename files/es/web/api/document/hasfocus/{index.html => index.md} (100%) rename files/es/web/api/document/head/{index.html => index.md} (100%) rename files/es/web/api/document/height/{index.html => index.md} (100%) rename files/es/web/api/document/hidden/{index.html => index.md} (100%) rename files/es/web/api/document/importnode/{index.html => index.md} (100%) rename files/es/web/api/document/open/{index.html => index.md} (100%) rename files/es/web/api/document/pointerlockchange_event/{index.html => index.md} (100%) rename files/es/web/api/document/pointerlockelement/{index.html => index.md} (100%) rename files/es/web/api/document/queryselectorall/{index.html => index.md} (100%) rename files/es/web/api/document/registerelement/{index.html => index.md} (100%) rename files/es/web/api/document/scripts/{index.html => index.md} (100%) rename files/es/web/api/document/stylesheets/{index.html => index.md} (100%) rename files/es/web/api/document/write/{index.html => index.md} (100%) rename files/es/web/api/document/writeln/{index.html => index.md} (100%) rename files/es/web/api/document_object_model/how_to_create_a_dom_tree/{index.html => index.md} (100%) rename files/es/web/api/document_object_model/{index.html => index.md} (100%) rename files/es/web/api/document_object_model/locating_dom_elements_using_selectors/{index.html => index.md} (100%) rename files/es/web/api/document_object_model/traversing_an_html_table_with_javascript_and_dom_interfaces/{index.html => index.md} (100%) rename files/es/web/api/document_object_model/using_the_w3c_dom_level_1_core/example/{index.html => index.md} (100%) rename files/es/web/api/document_object_model/using_the_w3c_dom_level_1_core/{index.html => index.md} (100%) rename files/es/web/api/documentfragment/{index.html => index.md} (100%) rename files/es/web/api/domerror/{index.html => index.md} (100%) rename files/es/web/api/domparser/{index.html => index.md} (100%) rename files/es/web/api/element/animationend_event/{index.html => index.md} (100%) rename files/es/web/api/element/attachshadow/{index.html => index.md} (100%) rename files/es/web/api/element/attributes/{index.html => index.md} (100%) rename files/es/web/api/element/blur_event/{index.html => index.md} (100%) rename files/es/web/api/element/classlist/{index.html => index.md} (100%) rename files/es/web/api/element/classname/{index.html => index.md} (100%) rename files/es/web/api/element/click_event/{index.html => index.md} (100%) rename files/es/web/api/element/clientheight/{index.html => index.md} (100%) rename files/es/web/api/element/clientwidth/{index.html => index.md} (100%) rename files/es/web/api/element/computedstylemap/{index.html => index.md} (100%) rename files/es/web/api/element/getattribute/{index.html => index.md} (100%) rename files/es/web/api/element/getattributenodens/{index.html => index.md} (100%) rename files/es/web/api/element/getboundingclientrect/{index.html => index.md} (100%) rename files/es/web/api/element/getclientrects/{index.html => index.md} (100%) rename files/es/web/api/element/getelementsbyclassname/{index.html => index.md} (100%) rename files/es/web/api/element/getelementsbytagname/{index.html => index.md} (100%) rename files/es/web/api/element/getelementsbytagnamens/{index.html => index.md} (100%) rename files/es/web/api/element/gotpointercapture_event/{index.html => index.md} (100%) rename files/es/web/api/element/hasattribute/{index.html => index.md} (100%) rename files/es/web/api/element/id/{index.html => index.md} (100%) rename files/es/web/api/element/{index.html => index.md} (100%) rename files/es/web/api/element/insertadjacentelement/{index.html => index.md} (100%) rename files/es/web/api/element/insertadjacenthtml/{index.html => index.md} (100%) rename files/es/web/api/element/localname/{index.html => index.md} (100%) rename files/es/web/api/element/lostpointercapture_event/{index.html => index.md} (100%) rename files/es/web/api/element/mousedown_event/{index.html => index.md} (100%) rename files/es/web/api/element/namespaceuri/{index.html => index.md} (100%) rename files/es/web/api/element/nextelementsibling/{index.html => index.md} (100%) rename files/es/web/api/element/outerhtml/{index.html => index.md} (100%) rename files/es/web/api/element/prefix/{index.html => index.md} (100%) rename files/es/web/api/element/queryselector/{index.html => index.md} (100%) rename files/es/web/api/element/removeattribute/{index.html => index.md} (100%) rename files/es/web/api/element/requestfullscreen/{index.html => index.md} (100%) rename files/es/web/api/element/scroll_event/{index.html => index.md} (100%) rename files/es/web/api/element/scrollheight/{index.html => index.md} (100%) rename files/es/web/api/element/scrolltop/{index.html => index.md} (100%) rename files/es/web/api/element/scrolltopmax/{index.html => index.md} (100%) rename files/es/web/api/element/scrollwidth/{index.html => index.md} (100%) rename files/es/web/api/element/setattribute/{index.html => index.md} (100%) rename files/es/web/api/element/setattributens/{index.html => index.md} (100%) rename files/es/web/api/element/setcapture/{index.html => index.md} (100%) rename files/es/web/api/element/tagname/{index.html => index.md} (100%) rename files/es/web/api/element/touchstart_event/{index.html => index.md} (100%) rename files/es/web/api/element/transitioncancel_event/{index.html => index.md} (100%) rename files/es/web/api/element/transitionend_event/{index.html => index.md} (100%) rename files/es/web/api/event/bubbles/{index.html => index.md} (100%) rename files/es/web/api/event/cancelable/{index.html => index.md} (100%) rename files/es/web/api/event/currenttarget/{index.html => index.md} (100%) rename files/es/web/api/event/defaultprevented/{index.html => index.md} (100%) rename files/es/web/api/event/{index.html => index.md} (100%) rename files/es/web/api/event/initevent/{index.html => index.md} (100%) rename files/es/web/api/event/preventdefault/{index.html => index.md} (100%) rename files/es/web/api/event/stoppropagation/{index.html => index.md} (100%) rename files/es/web/api/event/target/{index.html => index.md} (100%) rename files/es/web/api/event/type/{index.html => index.md} (100%) rename files/es/web/api/eventsource/open_event/{index.html => index.md} (100%) rename files/es/web/api/eventtarget/addeventlistener/{index.html => index.md} (100%) rename files/es/web/api/eventtarget/dispatchevent/{index.html => index.md} (100%) rename files/es/web/api/eventtarget/{index.html => index.md} (100%) rename files/es/web/api/fetch/{index.html => index.md} (100%) rename files/es/web/api/fetch_api/basic_concepts/{index.html => index.md} (100%) rename files/es/web/api/fetch_api/{index.html => index.md} (100%) rename files/es/web/api/fetch_api/using_fetch/{index.html => index.md} (100%) rename files/es/web/api/fetchevent/{index.html => index.md} (100%) rename files/es/web/api/file/lastmodifieddate/{index.html => index.md} (100%) rename files/es/web/api/file/name/{index.html => index.md} (100%) rename files/es/web/api/file/webkitrelativepath/{index.html => index.md} (100%) rename files/es/web/api/file_api/using_files_from_web_applications/{index.html => index.md} (100%) rename files/es/web/api/filereader/{index.html => index.md} (100%) rename files/es/web/api/filereader/load_event/{index.html => index.md} (100%) rename files/es/web/api/filereader/readastext/{index.html => index.md} (100%) rename files/es/web/api/filereader/result/{index.html => index.md} (100%) rename files/es/web/api/formdata/{index.html => index.md} (100%) rename files/es/web/api/formdata/using_formdata_objects/{index.html => index.md} (100%) rename files/es/web/api/fullscreen_api/{index.html => index.md} (100%) rename files/es/web/api/gamepad_api/{index.html => index.md} (100%) rename files/es/web/api/gamepadbutton/{index.html => index.md} (100%) rename files/es/web/api/geolocation/getcurrentposition/{index.html => index.md} (100%) rename files/es/web/api/geolocation/watchposition/{index.html => index.md} (100%) rename files/es/web/api/geolocationcoordinates/{index.html => index.md} (100%) rename files/es/web/api/geolocationcoordinates/latitude/{index.html => index.md} (100%) rename files/es/web/api/geolocationposition/{index.html => index.md} (100%) rename files/es/web/api/globaleventhandlers/{index.html => index.md} (100%) rename files/es/web/api/history/{index.html => index.md} (100%) rename files/es/web/api/history/length/{index.html => index.md} (100%) rename files/es/web/api/html_drag_and_drop_api/file_drag_and_drop/{index.html => index.md} (100%) rename files/es/web/api/html_drag_and_drop_api/{index.html => index.md} (100%) rename files/es/web/api/htmlaudioelement/{index.html => index.md} (100%) rename files/es/web/api/htmlcanvaselement/getcontext/{index.html => index.md} (100%) rename files/es/web/api/htmlcanvaselement/height/{index.html => index.md} (100%) rename files/es/web/api/htmlcanvaselement/width/{index.html => index.md} (100%) rename files/es/web/api/htmlcollection/{index.html => index.md} (100%) rename files/es/web/api/htmldivelement/{index.html => index.md} (100%) rename files/es/web/api/htmlelement/accesskey/{index.html => index.md} (100%) rename files/es/web/api/htmlelement/contenteditable/{index.html => index.md} (100%) rename files/es/web/api/htmlelement/{index.html => index.md} (100%) rename files/es/web/api/htmlelement/offsetheight/{index.html => index.md} (100%) rename files/es/web/api/htmlelement/offsetleft/{index.html => index.md} (100%) rename files/es/web/api/htmlelement/offsetparent/{index.html => index.md} (100%) rename files/es/web/api/htmlelement/offsettop/{index.html => index.md} (100%) rename files/es/web/api/htmlelement/offsetwidth/{index.html => index.md} (100%) rename files/es/web/api/htmlformelement/{index.html => index.md} (100%) rename files/es/web/api/htmlformelement/reset/{index.html => index.md} (100%) rename files/es/web/api/htmlheadelement/{index.html => index.md} (100%) rename files/es/web/api/htmlimageelement/{index.html => index.md} (100%) rename files/es/web/api/htmlinputelement/invalid_event/{index.html => index.md} (100%) rename files/es/web/api/htmlinputelement/select/{index.html => index.md} (100%) rename files/es/web/api/htmllabelelement/{index.html => index.md} (100%) rename files/es/web/api/htmllielement/{index.html => index.md} (100%) rename files/es/web/api/htmlmediaelement/canplay_event/{index.html => index.md} (100%) rename files/es/web/api/htmlmediaelement/{index.html => index.md} (100%) rename files/es/web/api/htmlmediaelement/loadeddata_event/{index.html => index.md} (100%) rename files/es/web/api/htmlmediaelement/pause/{index.html => index.md} (100%) rename files/es/web/api/htmlmediaelement/paused/{index.html => index.md} (100%) rename files/es/web/api/htmlmediaelement/play/{index.html => index.md} (100%) rename files/es/web/api/htmlmediaelement/timeupdate_event/{index.html => index.md} (100%) rename files/es/web/api/htmlselectelement/{index.html => index.md} (100%) rename files/es/web/api/htmlselectelement/setcustomvalidity/{index.html => index.md} (100%) rename files/es/web/api/htmlstyleelement/{index.html => index.md} (100%) rename files/es/web/api/htmltableelement/align/{index.html => index.md} (100%) rename files/es/web/api/htmltableelement/{index.html => index.md} (100%) rename files/es/web/api/htmltableelement/insertrow/{index.html => index.md} (100%) rename files/es/web/api/htmlvideoelement/{index.html => index.md} (100%) rename files/es/web/api/idbobjectstore/{index.html => index.md} (100%) rename files/es/web/api/imagebitmap/{index.html => index.md} (100%) rename files/es/web/api/imagebitmaprenderingcontext/{index.html => index.md} (100%) rename files/es/web/api/indexeddb_api/{index.html => index.md} (100%) rename files/es/web/api/indexeddb_api/using_indexeddb/{index.html => index.md} (100%) rename files/es/web/api/intersection_observer_api/{index.html => index.md} (100%) rename files/es/web/api/issecurecontext/{index.html => index.md} (100%) rename files/es/web/api/keyboardevent/metakey/{index.html => index.md} (100%) rename files/es/web/api/location/{index.html => index.md} (100%) rename files/es/web/api/location/origin/{index.html => index.md} (100%) rename files/es/web/api/location/reload/{index.html => index.md} (100%) rename files/es/web/api/media_capture_and_streams_api/taking_still_photos/{index.html => index.md} (100%) rename files/es/web/api/mediadevices/getusermedia/{index.html => index.md} (100%) rename files/es/web/api/mediadevices/{index.html => index.md} (100%) rename files/es/web/api/mediaquerylist/addlistener/{index.html => index.md} (100%) rename files/es/web/api/mediaquerylist/{index.html => index.md} (100%) rename files/es/web/api/mediaquerylist/matches/{index.html => index.md} (100%) rename files/es/web/api/mediaquerylist/removelistener/{index.html => index.md} (100%) rename files/es/web/api/messageevent/{index.html => index.md} (100%) rename files/es/web/api/mimetype/{index.html => index.md} (100%) rename files/es/web/api/mouseevent/{index.html => index.md} (100%) rename files/es/web/api/mouseevent/initmouseevent/{index.html => index.md} (100%) rename files/es/web/api/mouseevent/pagex/{index.html => index.md} (100%) rename files/es/web/api/mouseevent/shiftkey/{index.html => index.md} (100%) rename files/es/web/api/navigator/donottrack/{index.html => index.md} (100%) rename files/es/web/api/navigator/geolocation/{index.html => index.md} (100%) rename files/es/web/api/navigator/getusermedia/{index.html => index.md} (100%) rename files/es/web/api/navigator/registerprotocolhandler/{index.html => index.md} (100%) rename files/es/web/api/navigator/vibrate/{index.html => index.md} (100%) rename files/es/web/api/network_information_api/{index.html => index.md} (100%) rename files/es/web/api/node/appendchild/{index.html => index.md} (100%) rename files/es/web/api/node/childnodes/{index.html => index.md} (100%) rename files/es/web/api/node/clonenode/{index.html => index.md} (100%) rename files/es/web/api/node/contains/{index.html => index.md} (100%) rename files/es/web/api/node/haschildnodes/{index.html => index.md} (100%) rename files/es/web/api/node/issamenode/{index.html => index.md} (100%) rename files/es/web/api/node/lastchild/{index.html => index.md} (100%) rename files/es/web/api/node/nextsibling/{index.html => index.md} (100%) rename files/es/web/api/node/nodename/{index.html => index.md} (100%) rename files/es/web/api/node/nodetype/{index.html => index.md} (100%) rename files/es/web/api/node/nodevalue/{index.html => index.md} (100%) rename files/es/web/api/node/ownerdocument/{index.html => index.md} (100%) rename files/es/web/api/node/parentelement/{index.html => index.md} (100%) rename files/es/web/api/node/parentnode/{index.html => index.md} (100%) rename files/es/web/api/node/previoussibling/{index.html => index.md} (100%) rename files/es/web/api/node/replacechild/{index.html => index.md} (100%) rename files/es/web/api/notifications_api/{index.html => index.md} (100%) rename files/es/web/api/payment_request_api/{index.html => index.md} (100%) rename files/es/web/api/performance/memory/{index.html => index.md} (100%) rename files/es/web/api/performance/navigation/{index.html => index.md} (100%) rename files/es/web/api/performance/now/{index.html => index.md} (100%) rename files/es/web/api/performance/timeorigin/{index.html => index.md} (100%) rename files/es/web/api/performance/timing/{index.html => index.md} (100%) rename files/es/web/api/pointer_lock_api/{index.html => index.md} (100%) rename files/es/web/api/push_api/{index.html => index.md} (100%) rename files/es/web/api/pushmanager/{index.html => index.md} (100%) rename files/es/web/api/pushmanager/supportedcontentencodings/{index.html => index.md} (100%) rename files/es/web/api/range/collapsed/{index.html => index.md} (100%) rename files/es/web/api/range/commonancestorcontainer/{index.html => index.md} (100%) rename files/es/web/api/range/getclientrects/{index.html => index.md} (100%) rename files/es/web/api/range/{index.html => index.md} (100%) rename files/es/web/api/range/setstart/{index.html => index.md} (100%) rename files/es/web/api/request/headers/{index.html => index.md} (100%) rename files/es/web/api/request/{index.html => index.md} (100%) rename files/es/web/api/response/ok/{index.html => index.md} (100%) rename files/es/web/api/response/response/{index.html => index.md} (100%) rename files/es/web/api/response/status/{index.html => index.md} (100%) rename files/es/web/api/rtcpeerconnection/cantrickleicecandidates/{index.html => index.md} (100%) rename files/es/web/api/rtcrtpreceiver/{index.html => index.md} (100%) rename files/es/web/api/selection/addrange/{index.html => index.md} (100%) rename files/es/web/api/selection/anchornode/{index.html => index.md} (100%) rename files/es/web/api/selection/anchoroffset/{index.html => index.md} (100%) rename files/es/web/api/selection/collapse/{index.html => index.md} (100%) rename files/es/web/api/selection/collapsetoend/{index.html => index.md} (100%) rename files/es/web/api/selection/collapsetostart/{index.html => index.md} (100%) rename files/es/web/api/selection/deletefromdocument/{index.html => index.md} (100%) rename files/es/web/api/selection/extend/{index.html => index.md} (100%) rename files/es/web/api/selection/focusnode/{index.html => index.md} (100%) rename files/es/web/api/selection/focusoffset/{index.html => index.md} (100%) rename files/es/web/api/selection/getrangeat/{index.html => index.md} (100%) rename files/es/web/api/selection/{index.html => index.md} (100%) rename files/es/web/api/selection/iscollapsed/{index.html => index.md} (100%) rename files/es/web/api/selection/rangecount/{index.html => index.md} (100%) rename files/es/web/api/selection/removeallranges/{index.html => index.md} (100%) rename files/es/web/api/selection/removerange/{index.html => index.md} (100%) rename files/es/web/api/selection/selectallchildren/{index.html => index.md} (100%) rename files/es/web/api/selection/tostring/{index.html => index.md} (100%) rename files/es/web/api/server-sent_events/using_server-sent_events/{index.html => index.md} (100%) rename files/es/web/api/service_worker_api/{index.html => index.md} (100%) rename files/es/web/api/serviceworkercontainer/{index.html => index.md} (100%) rename files/es/web/api/serviceworkercontainer/register/{index.html => index.md} (100%) rename files/es/web/api/settimeout/{index.html => index.md} (100%) rename files/es/web/api/storage/clear/{index.html => index.md} (100%) rename files/es/web/api/storage/getitem/{index.html => index.md} (100%) rename files/es/web/api/storage/{index.html => index.md} (100%) rename files/es/web/api/storage/length/{index.html => index.md} (100%) rename files/es/web/api/storage/removeitem/{index.html => index.md} (100%) rename files/es/web/api/storage/setitem/{index.html => index.md} (100%) rename files/es/web/api/storagemanager/estimate/{index.html => index.md} (100%) rename files/es/web/api/storagemanager/{index.html => index.md} (100%) rename files/es/web/api/storagemanager/persist/{index.html => index.md} (100%) rename files/es/web/api/storagemanager/persisted/{index.html => index.md} (100%) rename files/es/web/api/stylesheet/disabled/{index.html => index.md} (100%) rename files/es/web/api/stylesheet/href/{index.html => index.md} (100%) rename files/es/web/api/stylesheet/{index.html => index.md} (100%) rename files/es/web/api/stylesheet/media/{index.html => index.md} (100%) rename files/es/web/api/stylesheet/parentstylesheet/{index.html => index.md} (100%) rename files/es/web/api/stylesheet/title/{index.html => index.md} (100%) rename files/es/web/api/stylesheet/type/{index.html => index.md} (100%) rename files/es/web/api/subtlecrypto/digest/{index.html => index.md} (100%) rename files/es/web/api/subtlecrypto/{index.html => index.md} (100%) rename files/es/web/api/svgpoint/{index.html => index.md} (100%) rename files/es/web/api/texttrack/cuechange_event/{index.html => index.md} (100%) rename files/es/web/api/touch_events/{index.html => index.md} (100%) rename files/es/web/api/touchevent/{index.html => index.md} (100%) rename files/es/web/api/uievent/which/{index.html => index.md} (100%) rename files/es/web/api/url/createobjecturl/{index.html => index.md} (100%) rename files/es/web/api/url/host/{index.html => index.md} (100%) rename files/es/web/api/url/{index.html => index.md} (100%) rename files/es/web/api/url/port/{index.html => index.md} (100%) rename files/es/web/api/url/url/{index.html => index.md} (100%) rename files/es/web/api/urlsearchparams/{index.html => index.md} (100%) rename files/es/web/api/urlsearchparams/urlsearchparams/{index.html => index.md} (100%) rename files/es/web/api/vibration_api/{index.html => index.md} (100%) rename files/es/web/api/web_audio_api/{index.html => index.md} (100%) rename files/es/web/api/web_crypto_api/{index.html => index.md} (100%) rename files/es/web/api/web_speech_api/{index.html => index.md} (100%) rename files/es/web/api/web_speech_api/using_the_web_speech_api/{index.html => index.md} (100%) rename files/es/web/api/web_storage_api/{index.html => index.md} (100%) rename files/es/web/api/web_storage_api/using_the_web_storage_api/{index.html => index.md} (100%) rename files/es/web/api/web_workers_api/{index.html => index.md} (100%) rename files/es/web/api/web_workers_api/using_web_workers/{index.html => index.md} (100%) rename files/es/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/{index.html => index.md} (100%) rename files/es/web/api/webgl_api/tutorial/animating_textures_in_webgl/{index.html => index.md} (100%) rename files/es/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/{index.html => index.md} (100%) rename files/es/web/api/webgl_api/tutorial/getting_started_with_webgl/{index.html => index.md} (100%) rename files/es/web/api/webgl_api/tutorial/{index.html => index.md} (100%) rename files/es/web/api/webgl_api/tutorial/using_shaders_to_apply_color_in_webgl/{index.html => index.md} (100%) rename files/es/web/api/webrtc_api/protocols/{index.html => index.md} (100%) rename files/es/web/api/webrtc_api/session_lifetime/{index.html => index.md} (100%) rename files/es/web/api/websocket/close_event/{index.html => index.md} (100%) rename files/es/web/api/websocket/error_event/{index.html => index.md} (100%) rename files/es/web/api/websockets_api/writing_websocket_client_applications/{index.html => index.md} (100%) rename files/es/web/api/websockets_api/writing_websocket_server/{index.html => index.md} (100%) rename files/es/web/api/websockets_api/writing_websocket_servers/{index.html => index.md} (100%) rename files/es/web/api/webvr_api/{index.html => index.md} (100%) rename files/es/web/api/webvr_api/using_the_webvr_api/{index.html => index.md} (100%) rename files/es/web/api/window/beforeunload_event/{index.html => index.md} (100%) rename files/es/web/api/window/cancelanimationframe/{index.html => index.md} (100%) rename files/es/web/api/window/close/{index.html => index.md} (100%) rename files/es/web/api/window/closed/{index.html => index.md} (100%) rename files/es/web/api/window/confirm/{index.html => index.md} (100%) rename files/es/web/api/window/devicepixelratio/{index.html => index.md} (100%) rename files/es/web/api/window/dialogarguments/{index.html => index.md} (100%) rename files/es/web/api/window/document/{index.html => index.md} (100%) rename files/es/web/api/window/error_event/{index.html => index.md} (100%) rename files/es/web/api/window/frameelement/{index.html => index.md} (100%) rename files/es/web/api/window/fullscreen/{index.html => index.md} (100%) rename files/es/web/api/window/getcomputedstyle/{index.html => index.md} (100%) rename files/es/web/api/window/getselection/{index.html => index.md} (100%) rename files/es/web/api/window/hashchange_event/{index.html => index.md} (100%) rename files/es/web/api/window/history/{index.html => index.md} (100%) rename files/es/web/api/window/innerheight/{index.html => index.md} (100%) rename files/es/web/api/window/localstorage/{index.html => index.md} (100%) rename files/es/web/api/window/location/{index.html => index.md} (100%) rename files/es/web/api/window/locationbar/{index.html => index.md} (100%) rename files/es/web/api/window/matchmedia/{index.html => index.md} (100%) rename files/es/web/api/window/menubar/{index.html => index.md} (100%) rename files/es/web/api/window/moveby/{index.html => index.md} (100%) rename files/es/web/api/window/navigator/{index.html => index.md} (100%) rename files/es/web/api/window/offline_event/{index.html => index.md} (100%) rename files/es/web/api/window/opener/{index.html => index.md} (100%) rename files/es/web/api/window/outerheight/{index.html => index.md} (100%) rename files/es/web/api/window/outerwidth/{index.html => index.md} (100%) rename files/es/web/api/window/popstate_event/{index.html => index.md} (100%) rename files/es/web/api/window/print/{index.html => index.md} (100%) rename files/es/web/api/window/prompt/{index.html => index.md} (100%) rename files/es/web/api/window/requestanimationframe/{index.html => index.md} (100%) rename files/es/web/api/window/scrollby/{index.html => index.md} (100%) rename files/es/web/api/window/scrollto/{index.html => index.md} (100%) rename files/es/web/api/window/scrollx/{index.html => index.md} (100%) rename files/es/web/api/window/scrolly/{index.html => index.md} (100%) rename files/es/web/api/window/sessionstorage/{index.html => index.md} (100%) rename files/es/web/api/window/showmodaldialog/{index.html => index.md} (100%) rename files/es/web/api/window/statusbar/{index.html => index.md} (100%) rename files/es/web/api/windoweventhandlers/{index.html => index.md} (100%) rename files/es/web/api/worker/{index.html => index.md} (100%) rename files/es/web/api/worker/terminate/{index.html => index.md} (100%) rename files/es/web/api/xmldocument/async/{index.html => index.md} (100%) rename files/es/web/api/xmlhttprequest/abort/{index.html => index.md} (100%) rename files/es/web/api/xmlhttprequest/loadend_event/{index.html => index.md} (100%) rename files/es/web/api/xmlhttprequest/readystatechange_event/{index.html => index.md} (100%) rename files/es/web/api/xmlhttprequest/responsetext/{index.html => index.md} (100%) rename files/es/web/css/--_star_/{index.html => index.md} (100%) rename files/es/web/css/-moz-context-properties/{index.html => index.md} (100%) rename files/es/web/css/-moz-image-rect/{index.html => index.md} (100%) rename files/es/web/css/-moz-image-region/{index.html => index.md} (100%) rename files/es/web/css/-moz-orient/{index.html => index.md} (100%) rename files/es/web/css/-moz-outline-radius-bottomleft/{index.html => index.md} (100%) rename files/es/web/css/-moz-outline-radius-bottomright/{index.html => index.md} (100%) rename files/es/web/css/-moz-outline-radius-topleft/{index.html => index.md} (100%) rename files/es/web/css/-moz-outline-radius-topright/{index.html => index.md} (100%) rename files/es/web/css/-moz-outline-radius/{index.html => index.md} (100%) rename files/es/web/css/-moz-user-focus/{index.html => index.md} (100%) rename files/es/web/css/-moz-user-input/{index.html => index.md} (100%) rename files/es/web/css/-webkit-border-before/{index.html => index.md} (100%) rename files/es/web/css/-webkit-box-reflect/{index.html => index.md} (100%) rename files/es/web/css/-webkit-mask-attachment/{index.html => index.md} (100%) rename files/es/web/css/-webkit-mask-box-image/{index.html => index.md} (100%) rename files/es/web/css/-webkit-mask-composite/{index.html => index.md} (100%) rename files/es/web/css/-webkit-mask-position-x/{index.html => index.md} (100%) rename files/es/web/css/-webkit-mask-position-y/{index.html => index.md} (100%) rename files/es/web/css/-webkit-mask-repeat-x/{index.html => index.md} (100%) rename files/es/web/css/-webkit-overflow-scrolling/{index.html => index.md} (100%) rename files/es/web/css/-webkit-tap-highlight-color/{index.html => index.md} (100%) rename files/es/web/css/-webkit-text-fill-color/{index.html => index.md} (100%) rename files/es/web/css/-webkit-text-stroke-color/{index.html => index.md} (100%) rename files/es/web/css/-webkit-text-stroke-width/{index.html => index.md} (100%) rename files/es/web/css/-webkit-text-stroke/{index.html => index.md} (100%) rename files/es/web/css/-webkit-touch-callout/{index.html => index.md} (100%) rename files/es/web/css/@charset/{index.html => index.md} (100%) rename files/es/web/css/@counter-style/additive-symbols/{index.html => index.md} (100%) rename files/es/web/css/@counter-style/{index.html => index.md} (100%) rename files/es/web/css/@counter-style/symbols/{index.html => index.md} (100%) rename files/es/web/css/@font-face/font-display/{index.html => index.md} (100%) rename files/es/web/css/@font-face/font-family/{index.html => index.md} (100%) rename files/es/web/css/@font-face/src/{index.html => index.md} (100%) rename files/es/web/css/@font-feature-values/{index.html => index.md} (100%) rename files/es/web/css/@keyframes/{index.html => index.md} (100%) rename files/es/web/css/@media/color/{index.html => index.md} (100%) rename files/es/web/css/@media/display-mode/{index.html => index.md} (100%) rename files/es/web/css/@media/height/{index.html => index.md} (100%) rename files/es/web/css/@media/hover/{index.html => index.md} (100%) rename files/es/web/css/@media/{index.html => index.md} (100%) rename files/es/web/css/@media/pointer/{index.html => index.md} (100%) rename files/es/web/css/@media/resolution/{index.html => index.md} (100%) rename files/es/web/css/@media/width/{index.html => index.md} (100%) rename files/es/web/css/@namespace/{index.html => index.md} (100%) rename files/es/web/css/@page/{index.html => index.md} (100%) rename files/es/web/css/@supports/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-broken/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-drag-over/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-first-node/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-focusring/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-handler-blocked/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-handler-crashed/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-handler-disabled/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-last-node/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-list-number/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-loading/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-locale-dir(ltr)/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-locale-dir(rtl)/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-only-whitespace/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-submit-invalid/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-suppressed/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-user-disabled/{index.html => index.md} (100%) rename files/es/web/css/_colon_-moz-window-inactive/{index.html => index.md} (100%) rename files/es/web/css/_colon_active/{index.html => index.md} (100%) rename files/es/web/css/_colon_any-link/{index.html => index.md} (100%) rename files/es/web/css/_colon_autofill/{index.html => index.md} (100%) rename files/es/web/css/_colon_blank/{index.html => index.md} (100%) rename files/es/web/css/_colon_checked/{index.html => index.md} (100%) rename files/es/web/css/_colon_default/{index.html => index.md} (100%) rename files/es/web/css/_colon_defined/{index.html => index.md} (100%) rename files/es/web/css/_colon_disabled/{index.html => index.md} (100%) rename files/es/web/css/_colon_empty/{index.html => index.md} (100%) rename files/es/web/css/_colon_enabled/{index.html => index.md} (100%) rename files/es/web/css/_colon_first-child/{index.html => index.md} (100%) rename files/es/web/css/_colon_first-of-type/{index.html => index.md} (100%) rename files/es/web/css/_colon_first/{index.html => index.md} (100%) rename files/es/web/css/_colon_focus-within/{index.html => index.md} (100%) rename files/es/web/css/_colon_focus/{index.html => index.md} (100%) rename files/es/web/css/_colon_fullscreen/{index.html => index.md} (100%) rename files/es/web/css/_colon_has/{index.html => index.md} (100%) rename files/es/web/css/_colon_host/{index.html => index.md} (100%) rename files/es/web/css/_colon_hover/{index.html => index.md} (100%) rename files/es/web/css/_colon_in-range/{index.html => index.md} (100%) rename files/es/web/css/_colon_invalid/{index.html => index.md} (100%) rename files/es/web/css/_colon_is/{index.html => index.md} (100%) rename files/es/web/css/_colon_lang/{index.html => index.md} (100%) rename files/es/web/css/_colon_last-child/{index.html => index.md} (100%) rename files/es/web/css/_colon_last-of-type/{index.html => index.md} (100%) rename files/es/web/css/_colon_left/{index.html => index.md} (100%) rename files/es/web/css/_colon_link/{index.html => index.md} (100%) rename files/es/web/css/_colon_not/{index.html => index.md} (100%) rename files/es/web/css/_colon_nth-child/{index.html => index.md} (100%) rename files/es/web/css/_colon_nth-last-child/{index.html => index.md} (100%) rename files/es/web/css/_colon_nth-last-of-type/{index.html => index.md} (100%) rename files/es/web/css/_colon_nth-of-type/{index.html => index.md} (100%) rename files/es/web/css/_colon_only-child/{index.html => index.md} (100%) rename files/es/web/css/_colon_only-of-type/{index.html => index.md} (100%) rename files/es/web/css/_colon_optional/{index.html => index.md} (100%) rename files/es/web/css/_colon_out-of-range/{index.html => index.md} (100%) rename files/es/web/css/_colon_placeholder-shown/{index.html => index.md} (100%) rename files/es/web/css/_colon_read-only/{index.html => index.md} (100%) rename files/es/web/css/_colon_read-write/{index.html => index.md} (100%) rename files/es/web/css/_colon_required/{index.html => index.md} (100%) rename files/es/web/css/_colon_right/{index.html => index.md} (100%) rename files/es/web/css/_colon_root/{index.html => index.md} (100%) rename files/es/web/css/_colon_target/{index.html => index.md} (100%) rename files/es/web/css/_colon_user-invalid/{index.html => index.md} (100%) rename files/es/web/css/_colon_valid/{index.html => index.md} (100%) rename files/es/web/css/_colon_visited/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-moz-color-swatch/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-moz-page-sequence/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-moz-page/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-moz-progress-bar/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-moz-range-progress/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-moz-range-thumb/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-moz-range-track/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-moz-scrolled-page-sequence/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-webkit-inner-spin-button/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-webkit-meter-bar/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-webkit-meter-even-less-good-value/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-webkit-meter-inner-element/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-webkit-meter-optimum-value/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-webkit-meter-suboptimum-value/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-webkit-outer-spin-button/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-webkit-progress-bar/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-webkit-progress-inner-element/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-webkit-progress-value/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-webkit-scrollbar/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-webkit-slider-runnable-track/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_-webkit-slider-thumb/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_after/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_backdrop/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_before/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_cue/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_first-letter/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_marker/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_placeholder/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_selection/{index.html => index.md} (100%) rename files/es/web/css/_doublecolon_spelling-error/{index.html => index.md} (100%) rename files/es/web/css/actual_value/{index.html => index.md} (100%) rename files/es/web/css/adjacent_sibling_combinator/{index.html => index.md} (100%) rename files/es/web/css/align-content/{index.html => index.md} (100%) rename files/es/web/css/align-self/{index.html => index.md} (100%) rename files/es/web/css/all/{index.html => index.md} (100%) rename files/es/web/css/animation-delay/{index.html => index.md} (100%) rename files/es/web/css/animation-direction/{index.html => index.md} (100%) rename files/es/web/css/animation-duration/{index.html => index.md} (100%) rename files/es/web/css/animation-fill-mode/{index.html => index.md} (100%) rename files/es/web/css/animation-iteration-count/{index.html => index.md} (100%) rename files/es/web/css/animation-name/{index.html => index.md} (100%) rename files/es/web/css/animation-play-state/{index.html => index.md} (100%) rename files/es/web/css/animation-timing-function/{index.html => index.md} (100%) rename files/es/web/css/animation/{index.html => index.md} (100%) rename files/es/web/css/at-rule/{index.html => index.md} (100%) rename files/es/web/css/attr/{index.html => index.md} (100%) rename files/es/web/css/attribute_selectors/{index.html => index.md} (100%) rename files/es/web/css/backdrop-filter/{index.html => index.md} (100%) rename files/es/web/css/backface-visibility/{index.html => index.md} (100%) rename files/es/web/css/background-attachment/{index.html => index.md} (100%) rename files/es/web/css/background-blend-mode/{index.html => index.md} (100%) rename files/es/web/css/background-color/{index.html => index.md} (100%) rename files/es/web/css/background-image/{index.html => index.md} (100%) rename files/es/web/css/background-position/{index.html => index.md} (100%) rename files/es/web/css/basic-shape/{index.html => index.md} (100%) rename files/es/web/css/blend-mode/{index.html => index.md} (100%) rename files/es/web/css/block-size/{index.html => index.md} (100%) rename files/es/web/css/border-block-color/{index.html => index.md} (100%) rename files/es/web/css/border-block-end-color/{index.html => index.md} (100%) rename files/es/web/css/border-block-end-style/{index.html => index.md} (100%) rename files/es/web/css/border-block-end-width/{index.html => index.md} (100%) rename files/es/web/css/border-block-end/{index.html => index.md} (100%) rename files/es/web/css/border-block-start-color/{index.html => index.md} (100%) rename files/es/web/css/border-block-start-style/{index.html => index.md} (100%) rename files/es/web/css/border-block-start-width/{index.html => index.md} (100%) rename files/es/web/css/border-block-start/{index.html => index.md} (100%) rename files/es/web/css/border-block-style/{index.html => index.md} (100%) rename files/es/web/css/border-block-width/{index.html => index.md} (100%) rename files/es/web/css/border-bottom-color/{index.html => index.md} (100%) rename files/es/web/css/border-bottom-style/{index.html => index.md} (100%) rename files/es/web/css/border-bottom-width/{index.html => index.md} (100%) rename files/es/web/css/border-bottom/{index.html => index.md} (100%) rename files/es/web/css/border-collapse/{index.html => index.md} (100%) rename files/es/web/css/border-color/{index.html => index.md} (100%) rename files/es/web/css/border-end-end-radius/{index.html => index.md} (100%) rename files/es/web/css/border-end-start-radius/{index.html => index.md} (100%) rename files/es/web/css/border-image-outset/{index.html => index.md} (100%) rename files/es/web/css/border-image-repeat/{index.html => index.md} (100%) rename files/es/web/css/border-image-slice/{index.html => index.md} (100%) rename files/es/web/css/border-image/{index.html => index.md} (100%) rename files/es/web/css/border-inline-color/{index.html => index.md} (100%) rename files/es/web/css/border-inline-end-color/{index.html => index.md} (100%) rename files/es/web/css/border-inline-end-style/{index.html => index.md} (100%) rename files/es/web/css/border-inline-end-width/{index.html => index.md} (100%) rename files/es/web/css/border-inline-end/{index.html => index.md} (100%) rename files/es/web/css/border-inline-start-color/{index.html => index.md} (100%) rename files/es/web/css/border-inline-start-style/{index.html => index.md} (100%) rename files/es/web/css/border-inline-start-width/{index.html => index.md} (100%) rename files/es/web/css/border-inline-start/{index.html => index.md} (100%) rename files/es/web/css/border-inline-style/{index.html => index.md} (100%) rename files/es/web/css/border-inline-width/{index.html => index.md} (100%) rename files/es/web/css/border-inline/{index.html => index.md} (100%) rename files/es/web/css/border-left-color/{index.html => index.md} (100%) rename files/es/web/css/border-left/{index.html => index.md} (100%) rename files/es/web/css/border-right/{index.html => index.md} (100%) rename files/es/web/css/border-spacing/{index.html => index.md} (100%) rename files/es/web/css/border-start-end-radius/{index.html => index.md} (100%) rename files/es/web/css/border-start-start-radius/{index.html => index.md} (100%) rename files/es/web/css/border-style/{index.html => index.md} (100%) rename files/es/web/css/border-top-color/{index.html => index.md} (100%) rename files/es/web/css/border-top-left-radius/{index.html => index.md} (100%) rename files/es/web/css/border-top/{index.html => index.md} (100%) rename files/es/web/css/border-width/{index.html => index.md} (100%) rename files/es/web/css/bottom/{index.html => index.md} (100%) rename files/es/web/css/box-flex/{index.html => index.md} (100%) rename files/es/web/css/box-ordinal-group/{index.html => index.md} (100%) rename files/es/web/css/box-pack/{index.html => index.md} (100%) rename files/es/web/css/calc/{index.html => index.md} (100%) rename files/es/web/css/caret-color/{index.html => index.md} (100%) rename files/es/web/css/child_combinator/{index.html => index.md} (100%) rename files/es/web/css/class_selectors/{index.html => index.md} (100%) rename files/es/web/css/clear/{index.html => index.md} (100%) rename files/es/web/css/color/{index.html => index.md} (100%) rename files/es/web/css/color_value/{index.html => index.md} (100%) rename files/es/web/css/column-count/{index.html => index.md} (100%) rename files/es/web/css/column-gap/{index.html => index.md} (100%) rename files/es/web/css/column-span/{index.html => index.md} (100%) rename files/es/web/css/comments/{index.html => index.md} (100%) rename files/es/web/css/computed_value/{index.html => index.md} (100%) rename files/es/web/css/content/{index.html => index.md} (100%) rename files/es/web/css/css_animations/detecting_css_animation_support/{index.html => index.md} (100%) rename files/es/web/css/css_animations/{index.html => index.md} (100%) rename files/es/web/css/css_animations/tips/{index.html => index.md} (100%) rename files/es/web/css/css_backgrounds_and_borders/border-image_generator/{index.html => index.md} (100%) rename files/es/web/css/css_backgrounds_and_borders/border-radius_generator/{index.html => index.md} (100%) rename files/es/web/css/css_backgrounds_and_borders/{index.html => index.md} (100%) rename files/es/web/css/css_backgrounds_and_borders/using_multiple_backgrounds/{index.html => index.md} (100%) rename files/es/web/css/css_box_model/{index.html => index.md} (100%) rename files/es/web/css/css_box_model/introduction_to_the_css_box_model/{index.html => index.md} (100%) rename files/es/web/css/css_box_model/mastering_margin_collapsing/{index.html => index.md} (100%) rename files/es/web/css/css_colors/color_picker_tool/{index.html => index.md} (100%) rename files/es/web/css/css_colors/{index.html => index.md} (100%) rename files/es/web/css/css_columns/{index.html => index.md} (100%) rename files/es/web/css/css_columns/using_multi-column_layouts/{index.html => index.md} (100%) rename files/es/web/css/css_conditional_rules/{index.html => index.md} (100%) rename files/es/web/css/css_containment/{index.html => index.md} (100%) rename files/es/web/css/css_flexible_box_layout/aligning_items_in_a_flex_container/{index.html => index.md} (100%) rename files/es/web/css/css_flexible_box_layout/backwards_compatibility_of_flexbox/{index.html => index.md} (100%) rename files/es/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/{index.html => index.md} (100%) rename files/es/web/css/css_flexible_box_layout/{index.html => index.md} (100%) rename files/es/web/css/css_flexible_box_layout/typical_use_cases_of_flexbox/{index.html => index.md} (100%) rename files/es/web/css/css_flow_layout/{index.html => index.md} (100%) rename files/es/web/css/css_grid_layout/auto-placement_in_css_grid_layout/{index.html => index.md} (100%) rename files/es/web/css/css_grid_layout/box_alignment_in_css_grid_layout/{index.html => index.md} (100%) rename files/es/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/{index.html => index.md} (100%) rename files/es/web/css/css_logical_properties/basic_concepts/{index.html => index.md} (100%) rename files/es/web/css/css_logical_properties/floating_and_positioning/{index.html => index.md} (100%) rename files/es/web/css/css_logical_properties/{index.html => index.md} (100%) rename files/es/web/css/css_logical_properties/margins_borders_padding/{index.html => index.md} (100%) rename files/es/web/css/css_logical_properties/sizing/{index.html => index.md} (100%) rename files/es/web/css/css_motion_path/{index.html => index.md} (100%) rename files/es/web/css/css_positioning/{index.html => index.md} (100%) rename files/es/web/css/css_positioning/understanding_z_index/adding_z-index/{index.html => index.md} (100%) rename files/es/web/css/css_positioning/understanding_z_index/{index.html => index.md} (100%) rename files/es/web/css/css_positioning/understanding_z_index/stacking_and_float/{index.html => index.md} (100%) rename files/es/web/css/css_positioning/understanding_z_index/stacking_context_example_2/{index.html => index.md} (100%) rename files/es/web/css/css_positioning/understanding_z_index/stacking_context_example_3/{index.html => index.md} (100%) rename files/es/web/css/css_positioning/understanding_z_index/stacking_without_z-index/{index.html => index.md} (100%) rename files/es/web/css/css_positioning/understanding_z_index/the_stacking_context/{index.html => index.md} (100%) rename files/es/web/css/css_properties_reference/{index.html => index.md} (100%) rename files/es/web/css/css_selectors/{index.html => index.md} (100%) rename files/es/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/{index.html => index.md} (100%) rename files/es/web/css/css_text/{index.html => index.md} (100%) rename files/es/web/css/css_transforms/{index.html => index.md} (100%) rename files/es/web/css/css_transitions/{index.html => index.md} (100%) rename files/es/web/css/css_types/{index.html => index.md} (100%) rename files/es/web/css/css_writing_modes/{index.html => index.md} (100%) rename files/es/web/css/cursor/{index.html => index.md} (100%) rename files/es/web/css/direction/{index.html => index.md} (100%) rename files/es/web/css/env/{index.html => index.md} (100%) rename files/es/web/css/filter-function/blur/{index.html => index.md} (100%) rename files/es/web/css/filter-function/{index.html => index.md} (100%) rename files/es/web/css/filter/{index.html => index.md} (100%) rename files/es/web/css/flex-grow/{index.html => index.md} (100%) rename files/es/web/css/flex-shrink/{index.html => index.md} (100%) rename files/es/web/css/font-family/{index.html => index.md} (100%) rename files/es/web/css/font-language-override/{index.html => index.md} (100%) rename files/es/web/css/font-size-adjust/{index.html => index.md} (100%) rename files/es/web/css/font-size/{index.html => index.md} (100%) rename files/es/web/css/font-style/{index.html => index.md} (100%) rename files/es/web/css/font-weight/{index.html => index.md} (100%) rename files/es/web/css/frequency/{index.html => index.md} (100%) rename files/es/web/css/gap/{index.html => index.md} (100%) rename files/es/web/css/gradient/{index.html => index.md} (100%) rename files/es/web/css/grid-template-areas/{index.html => index.md} (100%) rename files/es/web/css/grid/{index.html => index.md} (100%) rename files/es/web/css/hyphens/{index.html => index.md} (100%) rename files/es/web/css/id_selectors/{index.html => index.md} (100%) rename files/es/web/css/image-rendering/{index.html => index.md} (100%) rename files/es/web/css/image/{index.html => index.md} (100%) rename files/es/web/css/ime-mode/{index.html => index.md} (100%) rename files/es/web/css/inherit/{index.html => index.md} (100%) rename files/es/web/css/inheritance/{index.html => index.md} (100%) rename files/es/web/css/initial/{index.html => index.md} (100%) rename files/es/web/css/initial_value/{index.html => index.md} (100%) rename files/es/web/css/inline-size/{index.html => index.md} (100%) rename files/es/web/css/inset-block-end/{index.html => index.md} (100%) rename files/es/web/css/inset-block-start/{index.html => index.md} (100%) rename files/es/web/css/inset-block/{index.html => index.md} (100%) rename files/es/web/css/inset-inline-end/{index.html => index.md} (100%) rename files/es/web/css/inset-inline-start/{index.html => index.md} (100%) rename files/es/web/css/inset-inline/{index.html => index.md} (100%) rename files/es/web/css/inset/{index.html => index.md} (100%) rename files/es/web/css/integer/{index.html => index.md} (100%) rename files/es/web/css/isolation/{index.html => index.md} (100%) rename files/es/web/css/justify-content/{index.html => index.md} (100%) rename files/es/web/css/layout_cookbook/{index.html => index.md} (100%) rename files/es/web/css/layout_mode/{index.html => index.md} (100%) rename files/es/web/css/left/{index.html => index.md} (100%) rename files/es/web/css/length/{index.html => index.md} (100%) rename files/es/web/css/line-height/{index.html => index.md} (100%) rename files/es/web/css/list-style-image/{index.html => index.md} (100%) rename files/es/web/css/list-style-position/{index.html => index.md} (100%) rename files/es/web/css/list-style-type/{index.html => index.md} (100%) rename files/es/web/css/margin-block-start/{index.html => index.md} (100%) rename files/es/web/css/margin-block/{index.html => index.md} (100%) rename files/es/web/css/margin-bottom/{index.html => index.md} (100%) rename files/es/web/css/margin-inline-end/{index.html => index.md} (100%) rename files/es/web/css/margin-inline-start/{index.html => index.md} (100%) rename files/es/web/css/margin-inline/{index.html => index.md} (100%) rename files/es/web/css/margin-right/{index.html => index.md} (100%) rename files/es/web/css/margin/{index.html => index.md} (100%) rename files/es/web/css/mask-clip/{index.html => index.md} (100%) rename files/es/web/css/mask-image/{index.html => index.md} (100%) rename files/es/web/css/mask-origin/{index.html => index.md} (100%) rename files/es/web/css/mask-position/{index.html => index.md} (100%) rename files/es/web/css/mask-repeat/{index.html => index.md} (100%) rename files/es/web/css/mask/{index.html => index.md} (100%) rename files/es/web/css/max-height/{index.html => index.md} (100%) rename files/es/web/css/max-inline-size/{index.html => index.md} (100%) rename files/es/web/css/media_queries/{index.html => index.md} (100%) rename files/es/web/css/min-block-size/{index.html => index.md} (100%) rename files/es/web/css/min-height/{index.html => index.md} (100%) rename files/es/web/css/min-inline-size/{index.html => index.md} (100%) rename files/es/web/css/min-width/{index.html => index.md} (100%) rename files/es/web/css/min/{index.html => index.md} (100%) rename files/es/web/css/minmax/{index.html => index.md} (100%) rename files/es/web/css/mix-blend-mode/{index.html => index.md} (100%) rename files/es/web/css/mozilla_extensions/{index.html => index.md} (100%) rename files/es/web/css/number/{index.html => index.md} (100%) rename files/es/web/css/object-fit/{index.html => index.md} (100%) rename files/es/web/css/object-position/{index.html => index.md} (100%) rename files/es/web/css/opacity/{index.html => index.md} (100%) rename files/es/web/css/order/{index.html => index.md} (100%) rename files/es/web/css/outline-offset/{index.html => index.md} (100%) rename files/es/web/css/outline-width/{index.html => index.md} (100%) rename files/es/web/css/outline/{index.html => index.md} (100%) rename files/es/web/css/overflow/{index.html => index.md} (100%) rename files/es/web/css/padding-block-end/{index.html => index.md} (100%) rename files/es/web/css/padding-block-start/{index.html => index.md} (100%) rename files/es/web/css/padding-block/{index.html => index.md} (100%) rename files/es/web/css/padding-bottom/{index.html => index.md} (100%) rename files/es/web/css/padding-inline-end/{index.html => index.md} (100%) rename files/es/web/css/padding-inline-start/{index.html => index.md} (100%) rename files/es/web/css/padding-inline/{index.html => index.md} (100%) rename files/es/web/css/padding-top/{index.html => index.md} (100%) rename files/es/web/css/padding/{index.html => index.md} (100%) rename files/es/web/css/percentage/{index.html => index.md} (100%) rename files/es/web/css/print-color-adjust/{index.html => index.md} (100%) rename files/es/web/css/pseudo-classes/{index.html => index.md} (100%) rename files/es/web/css/pseudo-elements/{index.html => index.md} (100%) rename files/es/web/css/quotes/{index.html => index.md} (100%) rename files/es/web/css/reference/{index.html => index.md} (100%) rename files/es/web/css/repeat/{index.html => index.md} (100%) rename files/es/web/css/replaced_element/{index.html => index.md} (100%) rename files/es/web/css/resize/{index.html => index.md} (100%) rename files/es/web/css/resolution/{index.html => index.md} (100%) rename files/es/web/css/resolved_value/{index.html => index.md} (100%) rename files/es/web/css/right/{index.html => index.md} (100%) rename files/es/web/css/scroll-behavior/{index.html => index.md} (100%) rename files/es/web/css/specified_value/{index.html => index.md} (100%) rename files/es/web/css/syntax/{index.html => index.md} (100%) rename files/es/web/css/text-decoration-color/{index.html => index.md} (100%) rename files/es/web/css/text-decoration-style/{index.html => index.md} (100%) rename files/es/web/css/text-decoration/{index.html => index.md} (100%) rename files/es/web/css/text-emphasis-color/{index.html => index.md} (100%) rename files/es/web/css/text-emphasis/{index.html => index.md} (100%) rename files/es/web/css/text-orientation/{index.html => index.md} (100%) rename files/es/web/css/text-shadow/{index.html => index.md} (100%) rename files/es/web/css/time/{index.html => index.md} (100%) rename files/es/web/css/top/{index.html => index.md} (100%) rename files/es/web/css/transform-function/rotate/{index.html => index.md} (100%) rename files/es/web/css/transform-function/scale/{index.html => index.md} (100%) rename files/es/web/css/transform-function/translate/{index.html => index.md} (100%) rename files/es/web/css/transform-function/translatey/{index.html => index.md} (100%) rename files/es/web/css/transform-function/translatez/{index.html => index.md} (100%) rename files/es/web/css/transform-origin/{index.html => index.md} (100%) rename files/es/web/css/transform-style/{index.html => index.md} (100%) rename files/es/web/css/transition-delay/{index.html => index.md} (100%) rename files/es/web/css/transition-property/{index.html => index.md} (100%) rename files/es/web/css/transition/{index.html => index.md} (100%) rename files/es/web/css/tutorials/{index.html => index.md} (100%) rename files/es/web/css/type_selectors/{index.html => index.md} (100%) rename files/es/web/css/universal_selectors/{index.html => index.md} (100%) rename files/es/web/css/url/{index.html => index.md} (100%) rename files/es/web/css/user-modify/{index.html => index.md} (100%) rename files/es/web/css/using_css_custom_properties/{index.html => index.md} (100%) rename files/es/web/css/value_definition_syntax/{index.html => index.md} (100%) rename files/es/web/css/var/{index.html => index.md} (100%) rename files/es/web/css/vertical-align/{index.html => index.md} (100%) rename files/es/web/css/visibility/{index.html => index.md} (100%) rename files/es/web/css/white-space/{index.html => index.md} (100%) rename files/es/web/css/widows/{index.html => index.md} (100%) rename files/es/web/css/width/{index.html => index.md} (100%) rename files/es/web/css/writing-mode/{index.html => index.md} (100%) rename files/es/web/css/z-index/{index.html => index.md} (100%) rename files/es/web/demos/{index.html => index.md} (100%) rename files/es/web/exslt/exsl/node-set/{index.html => index.md} (100%) rename files/es/web/exslt/exsl/object-type/{index.html => index.md} (100%) rename files/es/web/exslt/{index.html => index.md} (100%) rename files/es/web/exslt/math/highest/{index.html => index.md} (100%) rename files/es/web/exslt/math/lowest/{index.html => index.md} (100%) rename files/es/web/exslt/math/max/{index.html => index.md} (100%) rename files/es/web/exslt/math/min/{index.html => index.md} (100%) rename files/es/web/exslt/regexp/match/{index.html => index.md} (100%) rename files/es/web/exslt/regexp/replace/{index.html => index.md} (100%) rename files/es/web/exslt/regexp/test/{index.html => index.md} (100%) rename files/es/web/exslt/set/difference/{index.html => index.md} (100%) rename files/es/web/exslt/set/distinct/{index.html => index.md} (100%) rename files/es/web/exslt/set/has-same-node/{index.html => index.md} (100%) rename files/es/web/exslt/set/intersection/{index.html => index.md} (100%) rename files/es/web/exslt/set/leading/{index.html => index.md} (100%) rename files/es/web/exslt/set/trailing/{index.html => index.md} (100%) rename files/es/web/exslt/str/concat/{index.html => index.md} (100%) rename files/es/web/exslt/str/split/{index.html => index.md} (100%) rename files/es/web/exslt/str/tokenize/{index.html => index.md} (100%) rename files/es/web/guide/ajax/community/{index.html => index.md} (100%) rename files/es/web/guide/ajax/getting_started/{index.html => index.md} (100%) rename files/es/web/guide/api/{index.html => index.md} (100%) rename files/es/web/guide/api/webrtc/peer-to-peer_communications_with_webrtc/{index.html => index.md} (100%) rename files/es/web/guide/css/block_formatting_context/{index.html => index.md} (100%) rename files/es/web/guide/html/content_categories/{index.html => index.md} (100%) rename files/es/web/guide/mobile/{index.html => index.md} (100%) rename files/es/web/guide/parsing_and_serializing_xml/{index.html => index.md} (100%) rename files/es/web/guide/performance/{index.html => index.md} (100%) rename files/es/web/html/attributes/accept/{index.html => index.md} (100%) rename files/es/web/html/attributes/crossorigin/{index.html => index.md} (100%) rename files/es/web/html/attributes/minlength/{index.html => index.md} (100%) rename files/es/web/html/attributes/multiple/{index.html => index.md} (100%) rename files/es/web/html/block-level_elements/{index.html => index.md} (100%) rename files/es/web/html/cors_enabled_image/{index.html => index.md} (100%) rename files/es/web/html/element/abbr/{index.html => index.md} (100%) rename files/es/web/html/element/address/{index.html => index.md} (100%) rename files/es/web/html/element/article/{index.html => index.md} (100%) rename files/es/web/html/element/aside/{index.html => index.md} (100%) rename files/es/web/html/element/audio/{index.html => index.md} (100%) rename files/es/web/html/element/bdi/{index.html => index.md} (100%) rename files/es/web/html/element/blink/{index.html => index.md} (100%) rename files/es/web/html/element/br/{index.html => index.md} (100%) rename files/es/web/html/element/canvas/{index.html => index.md} (100%) rename files/es/web/html/element/data/{index.html => index.md} (100%) rename files/es/web/html/element/em/{index.html => index.md} (100%) rename files/es/web/html/element/embed/{index.html => index.md} (100%) rename files/es/web/html/element/figure/{index.html => index.md} (100%) rename files/es/web/html/element/head/{index.html => index.md} (100%) rename files/es/web/html/element/header/{index.html => index.md} (100%) rename files/es/web/html/element/heading_elements/{index.html => index.md} (100%) rename files/es/web/html/element/hgroup/{index.html => index.md} (100%) rename files/es/web/html/element/html/{index.html => index.md} (100%) rename files/es/web/html/element/image/{index.html => index.md} (100%) rename files/es/web/html/element/{index.html => index.md} (100%) rename files/es/web/html/element/input/color/{index.html => index.md} (100%) rename files/es/web/html/element/input/hidden/{index.html => index.md} (100%) rename files/es/web/html/element/link/{index.html => index.md} (100%) rename files/es/web/html/element/nav/{index.html => index.md} (100%) rename files/es/web/html/element/nobr/{index.html => index.md} (100%) rename files/es/web/html/element/option/{index.html => index.md} (100%) rename files/es/web/html/element/picture/{index.html => index.md} (100%) rename files/es/web/html/element/section/{index.html => index.md} (100%) rename files/es/web/html/element/small/{index.html => index.md} (100%) rename files/es/web/html/element/sub/{index.html => index.md} (100%) rename files/es/web/html/element/template/{index.html => index.md} (100%) rename files/es/web/html/element/textarea/{index.html => index.md} (100%) rename files/es/web/html/element/tr/{index.html => index.md} (100%) rename files/es/web/html/element/wbr/{index.html => index.md} (100%) rename files/es/web/html/element/xmp/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/accesskey/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/autocapitalize/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/class/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/contenteditable/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/contextmenu/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/data-_star_/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/dir/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/draggable/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/hidden/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/id/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/is/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/itemprop/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/itemscope/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/lang/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/slot/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/spellcheck/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/style/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/tabindex/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/title/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/translate/{index.html => index.md} (100%) rename files/es/web/html/global_attributes/x-ms-acceleratorkey/{index.html => index.md} (100%) rename files/es/web/html/inline_elements/{index.html => index.md} (100%) rename files/es/web/html/quirks_mode_and_standards_mode/{index.html => index.md} (100%) rename files/es/web/http/authentication/{index.html => index.md} (100%) rename files/es/web/http/basics_of_http/data_urls/{index.html => index.md} (100%) rename files/es/web/http/basics_of_http/evolution_of_http/{index.html => index.md} (100%) rename files/es/web/http/basics_of_http/identifying_resources_on_the_web/{index.html => index.md} (100%) rename files/es/web/http/basics_of_http/{index.html => index.md} (100%) rename files/es/web/http/basics_of_http/mime_types/common_types/{index.html => index.md} (100%) rename files/es/web/http/basics_of_http/mime_types/{index.html => index.md} (100%) rename files/es/web/http/conditional_requests/{index.html => index.md} (100%) rename files/es/web/http/connection_management_in_http_1.x/{index.html => index.md} (100%) rename files/es/web/http/cookies/{index.html => index.md} (100%) rename files/es/web/http/cors/errors/corsmissingalloworigin/{index.html => index.md} (100%) rename files/es/web/http/cors/errors/corspreflightdidnotsucceed/{index.html => index.md} (100%) rename files/es/web/http/cors/errors/corsrequestnothttp/{index.html => index.md} (100%) rename files/es/web/http/cors/errors/{index.html => index.md} (100%) rename files/es/web/http/headers/accept-ranges/{index.html => index.md} (100%) rename files/es/web/http/headers/access-control-allow-credentials/{index.html => index.md} (100%) rename files/es/web/http/headers/access-control-allow-headers/{index.html => index.md} (100%) rename files/es/web/http/headers/access-control-allow-methods/{index.html => index.md} (100%) rename files/es/web/http/headers/access-control-expose-headers/{index.html => index.md} (100%) rename files/es/web/http/headers/age/{index.html => index.md} (100%) rename files/es/web/http/headers/allow/{index.html => index.md} (100%) rename files/es/web/http/headers/authorization/{index.html => index.md} (100%) rename files/es/web/http/headers/content-disposition/{index.html => index.md} (100%) rename files/es/web/http/headers/content-encoding/{index.html => index.md} (100%) rename files/es/web/http/headers/content-length/{index.html => index.md} (100%) rename files/es/web/http/headers/content-location/{index.html => index.md} (100%) rename files/es/web/http/headers/content-type/{index.html => index.md} (100%) rename files/es/web/http/headers/cookie/{index.html => index.md} (100%) rename files/es/web/http/headers/cross-origin-resource-policy/{index.html => index.md} (100%) rename files/es/web/http/headers/digest/{index.html => index.md} (100%) rename files/es/web/http/headers/etag/{index.html => index.md} (100%) rename files/es/web/http/headers/expires/{index.html => index.md} (100%) rename files/es/web/http/headers/host/{index.html => index.md} (100%) rename files/es/web/http/headers/keep-alive/{index.html => index.md} (100%) rename files/es/web/http/headers/origin/{index.html => index.md} (100%) rename files/es/web/http/headers/referer/{index.html => index.md} (100%) rename files/es/web/http/headers/server/{index.html => index.md} (100%) rename files/es/web/http/headers/strict-transport-security/{index.html => index.md} (100%) rename files/es/web/http/headers/transfer-encoding/{index.html => index.md} (100%) rename files/es/web/http/headers/user-agent/firefox/{index.html => index.md} (100%) rename files/es/web/http/headers/vary/{index.html => index.md} (100%) rename files/es/web/http/headers/www-authenticate/{index.html => index.md} (100%) rename files/es/web/http/headers/x-content-type-options/{index.html => index.md} (100%) rename files/es/web/http/headers/x-forwarded-for/{index.html => index.md} (100%) rename files/es/web/http/headers/x-xss-protection/{index.html => index.md} (100%) rename files/es/web/http/messages/{index.html => index.md} (100%) rename files/es/web/http/methods/connect/{index.html => index.md} (100%) rename files/es/web/http/methods/get/{index.html => index.md} (100%) rename files/es/web/http/methods/{index.html => index.md} (100%) rename files/es/web/http/methods/post/{index.html => index.md} (100%) rename files/es/web/http/methods/trace/{index.html => index.md} (100%) rename files/es/web/http/overview/{index.html => index.md} (100%) rename files/es/web/http/protocol_upgrade_mechanism/{index.html => index.md} (100%) rename files/es/web/http/resources_and_specifications/{index.html => index.md} (100%) rename files/es/web/http/session/{index.html => index.md} (100%) rename files/es/web/http/status/100/{index.html => index.md} (100%) rename files/es/web/http/status/101/{index.html => index.md} (100%) rename files/es/web/http/status/200/{index.html => index.md} (100%) rename files/es/web/http/status/201/{index.html => index.md} (100%) rename files/es/web/http/status/202/{index.html => index.md} (100%) rename files/es/web/http/status/203/{index.html => index.md} (100%) rename files/es/web/http/status/302/{index.html => index.md} (100%) rename files/es/web/http/status/304/{index.html => index.md} (100%) rename files/es/web/http/status/400/{index.html => index.md} (100%) rename files/es/web/http/status/401/{index.html => index.md} (100%) rename files/es/web/http/status/404/{index.html => index.md} (100%) rename files/es/web/http/status/408/{index.html => index.md} (100%) rename files/es/web/http/status/413/{index.html => index.md} (100%) rename files/es/web/http/status/418/{index.html => index.md} (100%) rename files/es/web/http/status/500/{index.html => index.md} (100%) rename files/es/web/http/status/502/{index.html => index.md} (100%) rename files/es/web/http/status/503/{index.html => index.md} (100%) rename files/es/web/http/status/504/{index.html => index.md} (100%) rename files/es/web/http/status/505/{index.html => index.md} (100%) rename files/es/web/javascript/a_re-introduction_to_javascript/{index.html => index.md} (100%) rename files/es/web/javascript/about_javascript/{index.html => index.md} (100%) rename files/es/web/javascript/closures/{index.html => index.md} (100%) rename files/es/web/javascript/data_structures/{index.html => index.md} (100%) rename files/es/web/javascript/eventloop/{index.html => index.md} (100%) rename files/es/web/javascript/guide/control_flow_and_error_handling/{index.html => index.md} (100%) rename files/es/web/javascript/guide/expressions_and_operators/{index.html => index.md} (100%) rename files/es/web/javascript/guide/functions/{index.html => index.md} (100%) rename files/es/web/javascript/guide/grammar_and_types/{index.html => index.md} (100%) rename files/es/web/javascript/guide/indexed_collections/{index.html => index.md} (100%) rename files/es/web/javascript/guide/introduction/{index.html => index.md} (100%) rename files/es/web/javascript/guide/iterators_and_generators/{index.html => index.md} (100%) rename files/es/web/javascript/guide/keyed_collections/{index.html => index.md} (100%) rename files/es/web/javascript/guide/loops_and_iteration/{index.html => index.md} (100%) rename files/es/web/javascript/guide/modules/{index.html => index.md} (100%) rename files/es/web/javascript/guide/numbers_and_dates/{index.html => index.md} (100%) rename files/es/web/javascript/guide/regular_expressions/{index.html => index.md} (100%) rename files/es/web/javascript/guide/using_promises/{index.html => index.md} (100%) rename files/es/web/javascript/guide/working_with_objects/{index.html => index.md} (100%) rename files/es/web/javascript/inheritance_and_the_prototype_chain/{index.html => index.md} (100%) rename files/es/web/javascript/javascript_technologies_overview/{index.html => index.md} (100%) rename files/es/web/javascript/memory_management/{index.html => index.md} (100%) rename files/es/web/javascript/reference/about/{index.html => index.md} (100%) rename files/es/web/javascript/reference/classes/constructor/{index.html => index.md} (100%) rename files/es/web/javascript/reference/classes/extends/{index.html => index.md} (100%) rename files/es/web/javascript/reference/classes/private_class_fields/{index.html => index.md} (100%) rename files/es/web/javascript/reference/classes/public_class_fields/{index.html => index.md} (100%) rename files/es/web/javascript/reference/classes/static/{index.html => index.md} (100%) rename files/es/web/javascript/reference/deprecated_and_obsolete_features/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/bad_octal/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/bad_regexp_flag/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/deprecated_source_map_pragma/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/illegal_character/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/in_operator_no_object/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/malformed_formal_parameter/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/missing_curly_after_property_list/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/missing_formal_parameter/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/missing_parenthesis_after_argument_list/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/missing_semicolon_before_statement/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/more_arguments_needed/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/no_variable_name/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/not_a_codepoint/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/not_a_function/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/not_defined/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/property_access_denied/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/stmt_after_return/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/strict_non_simple_params/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/too_much_recursion/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/undefined_prop/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/unexpected_token/{index.html => index.md} (100%) rename files/es/web/javascript/reference/errors/unexpected_type/{index.html => index.md} (100%) rename files/es/web/javascript/reference/functions/arguments/callee/{index.html => index.md} (100%) rename files/es/web/javascript/reference/functions/arguments/length/{index.html => index.md} (100%) rename files/es/web/javascript/reference/functions/get/{index.html => index.md} (100%) rename files/es/web/javascript/reference/functions/rest_parameters/{index.html => index.md} (100%) rename files/es/web/javascript/reference/functions/set/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/aggregateerror/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/@@iterator/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/@@species/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/@@unscopables/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/entries/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/fill/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/find/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/findindex/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/from/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/includes/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/indexof/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/isarray/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/join/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/keys/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/lastindexof/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/length/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/of/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/pop/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/push/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/reduce/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/reduceright/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/reverse/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/shift/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/some/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/sort/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/tolocalestring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/tostring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/unshift/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/array/values/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/arraybuffer/@@species/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/arraybuffer/bytelength/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/boolean/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/boolean/tostring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/getdate/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/getday/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/getfullyear/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/gethours/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/getmilliseconds/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/getminutes/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/getmonth/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/getseconds/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/gettime/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/getutcfullyear/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/now/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/parse/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/setfullyear/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/setmonth/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/todatestring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/toisostring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/tolocalestring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/tolocaletimestring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/toutcstring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/date/utc/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/decodeuri/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/encodeuri/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/error/error/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/error/filename/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/error/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/error/message/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/error/name/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/error/tostring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/escape/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/function/arguments/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/function/bind/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/function/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/function/length/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/function/tostring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/generator/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/generator/next/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/generator/return/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/generator/throw/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/infinity/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/internalerror/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/internalerror/internalerror/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/intl/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/intl/numberformat/format/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/isfinite/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/isnan/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/json/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/json/parse/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/json/stringify/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/acos/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/acosh/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/asin/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/asinh/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/atan2/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/atanh/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/ceil/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/e/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/exp/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/floor/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/hypot/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/ln10/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/ln2/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/log/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/log10/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/log10e/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/log2/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/log2e/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/min/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/pi/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/pow/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/sign/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/sin/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/sqrt/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/sqrt1_2/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/sqrt2/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/tanh/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/math/trunc/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/nan/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/isfinite/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/isinteger/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/isnan/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/issafeinteger/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/max_value/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/min_value/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/nan/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/negative_infinity/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/parseint/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/positive_infinity/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/tofixed/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/tolocalestring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/toprecision/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/tostring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/number/valueof/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/assign/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/constructor/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/create/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/defineproperty/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/entries/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/fromentries/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/getownpropertydescriptor/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/getownpropertydescriptors/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/getownpropertynames/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/getownpropertysymbols/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/getprototypeof/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/hasownproperty/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/is/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/isextensible/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/isfrozen/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/isprototypeof/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/issealed/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/keys/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/preventextensions/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/propertyisenumerable/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/proto/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/seal/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/setprototypeof/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/tolocalestring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/tostring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/valueof/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/object/values/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/parseint/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/promise/all/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/promise/catch/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/promise/finally/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/promise/race/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/promise/then/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/proxy/proxy/getownpropertydescriptor/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/proxy/proxy/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/referenceerror/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/reflect/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/reflect/set/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/regexp/compile/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/regexp/exec/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/regexp/ignorecase/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/regexp/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/regexp/rightcontext/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/regexp/test/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/regexp/tostring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/set/add/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/set/clear/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/set/delete/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/set/has/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/set/size/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/set/values/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/anchor/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/big/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/blink/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/bold/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/charat/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/charcodeat/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/codepointat/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/concat/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/endswith/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/fixed/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/fontcolor/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/fontsize/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/fromcharcode/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/fromcodepoint/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/includes/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/indexof/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/italics/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/lastindexof/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/length/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/link/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/match/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/matchall/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/normalize/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/padstart/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/raw/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/repeat/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/search/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/slice/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/small/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/startswith/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/strike/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/sub/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/substr/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/substring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/sup/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/tolocaleuppercase/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/tolowercase/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/tostring/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/touppercase/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/trim/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/trimend/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/string/valueof/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/typedarray/buffer/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/uint8array/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/undefined/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/unescape/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/weakmap/clear/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/weakmap/get/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/weakmap/has/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/weakmap/set/{index.html => index.md} (100%) rename files/es/web/javascript/reference/global_objects/webassembly/{index.html => index.md} (100%) rename files/es/web/javascript/reference/lexical_grammar/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/assignment/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/async_function/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/await/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/class/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/decrement/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/division/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/function/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/grouping/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/import.meta/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/in/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/instanceof/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/new.target/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/new/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/null/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/property_accessors/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/subtraction/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/super/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/this/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/void/{index.html => index.md} (100%) rename files/es/web/javascript/reference/operators/yield_star_/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/block/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/break/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/class/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/const/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/continue/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/debugger/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/do...while/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/empty/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/export/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/for...of/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/for/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/function/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/function_star_/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/if...else/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/label/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/return/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/switch/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/throw/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/try...catch/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/var/{index.html => index.md} (100%) rename files/es/web/javascript/reference/statements/while/{index.html => index.md} (100%) rename files/es/web/javascript/reference/strict_mode/{index.html => index.md} (100%) rename files/es/web/javascript/reference/template_literals/{index.html => index.md} (100%) rename files/es/web/javascript/shells/{index.html => index.md} (100%) rename files/es/web/javascript/typed_arrays/{index.html => index.md} (100%) rename files/es/web/manifest/{index.html => index.md} (100%) rename files/es/web/mathml/attribute/{index.html => index.md} (100%) rename files/es/web/mathml/element/{index.html => index.md} (100%) rename files/es/web/mathml/element/math/{index.html => index.md} (100%) rename files/es/web/mathml/examples/{index.html => index.md} (100%) rename files/es/web/media/dash_adaptive_streaming_for_html_5_video/{index.html => index.md} (100%) rename files/es/web/performance/fundamentals/{index.html => index.md} (100%) rename files/es/web/performance/optimizing_startup_performance/{index.html => index.md} (100%) rename files/es/web/progressive_web_apps/app_structure/{index.html => index.md} (100%) rename files/es/web/progressive_web_apps/{index.html => index.md} (100%) rename files/es/web/progressive_web_apps/installable_pwas/{index.html => index.md} (100%) rename files/es/web/progressive_web_apps/introduction/{index.html => index.md} (100%) rename files/es/web/progressive_web_apps/loading/{index.html => index.md} (100%) rename files/es/web/progressive_web_apps/offline_service_workers/{index.html => index.md} (100%) rename files/es/web/progressive_web_apps/re-engageable_notifications_push/{index.html => index.md} (100%) rename files/es/web/security/{index.html => index.md} (100%) rename files/es/web/security/same-origin_policy/{index.html => index.md} (100%) rename files/es/web/security/securing_your_site/{index.html => index.md} (100%) rename files/es/web/security/securing_your_site/turning_off_form_autocompletion/{index.html => index.md} (100%) rename files/es/web/svg/attribute/{index.html => index.md} (100%) rename files/es/web/svg/attribute/stop-color/{index.html => index.md} (100%) rename files/es/web/svg/attribute/transform/{index.html => index.md} (100%) rename files/es/web/svg/element/a/{index.html => index.md} (100%) rename files/es/web/svg/element/animate/{index.html => index.md} (100%) rename files/es/web/svg/element/circle/{index.html => index.md} (100%) rename files/es/web/svg/element/g/{index.html => index.md} (100%) rename files/es/web/svg/element/glyph/{index.html => index.md} (100%) rename files/es/web/svg/element/{index.html => index.md} (100%) rename files/es/web/svg/element/rect/{index.html => index.md} (100%) rename files/es/web/svg/element/style/{index.html => index.md} (100%) rename files/es/web/svg/element/svg/{index.html => index.md} (100%) rename files/es/web/svg/element/text/{index.html => index.md} (100%) rename files/es/web/svg/element/use/{index.html => index.md} (100%) rename files/es/web/svg/tutorial/getting_started/{index.html => index.md} (100%) rename files/es/web/svg/tutorial/{index.html => index.md} (100%) rename files/es/web/svg/tutorial/introduction/{index.html => index.md} (100%) rename files/es/web/svg/tutorial/tools_for_svg/{index.html => index.md} (100%) rename files/es/web/web_components/using_custom_elements/{index.html => index.md} (100%) rename files/es/web/web_components/using_templates_and_slots/{index.html => index.md} (100%) rename files/es/web/xml/{index.html => index.md} (100%) rename files/es/web/xml/xml_introduction/{index.html => index.md} (100%) rename files/es/web/xpath/axes/ancestor-or-self/{index.html => index.md} (100%) rename files/es/web/xpath/axes/ancestor/{index.html => index.md} (100%) rename files/es/web/xpath/axes/attribute/{index.html => index.md} (100%) rename files/es/web/xpath/axes/child/{index.html => index.md} (100%) rename files/es/web/xpath/axes/descendant-or-self/{index.html => index.md} (100%) rename files/es/web/xpath/axes/descendant/{index.html => index.md} (100%) rename files/es/web/xpath/axes/following-sibling/{index.html => index.md} (100%) rename files/es/web/xpath/axes/following/{index.html => index.md} (100%) rename files/es/web/xpath/axes/{index.html => index.md} (100%) rename files/es/web/xpath/axes/namespace/{index.html => index.md} (100%) rename files/es/web/xpath/axes/parent/{index.html => index.md} (100%) rename files/es/web/xpath/axes/preceding-sibling/{index.html => index.md} (100%) rename files/es/web/xpath/axes/preceding/{index.html => index.md} (100%) rename files/es/web/xpath/functions/contains/{index.html => index.md} (100%) rename files/es/web/xpath/functions/{index.html => index.md} (100%) rename files/es/web/xpath/functions/substring/{index.html => index.md} (100%) rename files/es/web/xpath/functions/true/{index.html => index.md} (100%) rename files/es/web/xslt/element/apply-imports/{index.html => index.md} (100%) rename files/es/web/xslt/element/apply-templates/{index.html => index.md} (100%) rename files/es/web/xslt/element/attribute-set/{index.html => index.md} (100%) rename files/es/web/xslt/element/attribute/{index.html => index.md} (100%) rename files/es/web/xslt/element/call-template/{index.html => index.md} (100%) rename files/es/web/xslt/element/choose/{index.html => index.md} (100%) rename files/es/web/xslt/element/comment/{index.html => index.md} (100%) rename files/es/web/xslt/element/copy-of/{index.html => index.md} (100%) rename files/es/web/xslt/element/copy/{index.html => index.md} (100%) rename files/es/web/xslt/element/decimal-format/{index.html => index.md} (100%) rename files/es/web/xslt/element/element/{index.html => index.md} (100%) rename files/es/web/xslt/element/fallback/{index.html => index.md} (100%) rename files/es/web/xslt/element/for-each/{index.html => index.md} (100%) rename files/es/web/xslt/element/if/{index.html => index.md} (100%) rename files/es/web/xslt/element/import/{index.html => index.md} (100%) rename files/es/web/xslt/element/include/{index.html => index.md} (100%) rename files/es/web/xslt/element/{index.html => index.md} (100%) rename files/es/web/xslt/element/key/{index.html => index.md} (100%) rename files/es/web/xslt/element/message/{index.html => index.md} (100%) rename files/es/web/xslt/element/namespace-alias/{index.html => index.md} (100%) rename files/es/web/xslt/element/otherwise/{index.html => index.md} (100%) rename files/es/web/xslt/element/when/{index.html => index.md} (100%) rename files/es/web/xslt/element/with-param/{index.html => index.md} (100%) rename files/es/web/xslt/transforming_xml_with_xslt/{index.html => index.md} (100%) rename files/es/webassembly/concepts/{index.html => index.md} (100%) rename files/es/webassembly/{index.html => index.md} (100%) rename files/es/webassembly/loading_and_running/{index.html => index.md} (100%) diff --git a/files/es/web/accessibility/aria/aria_techniques/index.html b/files/es/web/accessibility/aria/aria_techniques/index.md similarity index 100% rename from files/es/web/accessibility/aria/aria_techniques/index.html rename to files/es/web/accessibility/aria/aria_techniques/index.md diff --git a/files/es/web/accessibility/aria/aria_techniques/using_the_aria-label_attribute/index.html b/files/es/web/accessibility/aria/aria_techniques/using_the_aria-label_attribute/index.md similarity index 100% rename from files/es/web/accessibility/aria/aria_techniques/using_the_aria-label_attribute/index.html rename to files/es/web/accessibility/aria/aria_techniques/using_the_aria-label_attribute/index.md diff --git a/files/es/web/accessibility/aria/aria_techniques/using_the_aria-required_attribute/index.html b/files/es/web/accessibility/aria/aria_techniques/using_the_aria-required_attribute/index.md similarity index 100% rename from files/es/web/accessibility/aria/aria_techniques/using_the_aria-required_attribute/index.html rename to files/es/web/accessibility/aria/aria_techniques/using_the_aria-required_attribute/index.md diff --git a/files/es/web/accessibility/aria/forms/index.html b/files/es/web/accessibility/aria/forms/index.md similarity index 100% rename from files/es/web/accessibility/aria/forms/index.html rename to files/es/web/accessibility/aria/forms/index.md diff --git a/files/es/web/accessibility/aria/roles/alert_role/index.html b/files/es/web/accessibility/aria/roles/alert_role/index.md similarity index 100% rename from files/es/web/accessibility/aria/roles/alert_role/index.html rename to files/es/web/accessibility/aria/roles/alert_role/index.md diff --git a/files/es/web/accessibility/aria/roles/alertdialog_role/index.html b/files/es/web/accessibility/aria/roles/alertdialog_role/index.md similarity index 100% rename from files/es/web/accessibility/aria/roles/alertdialog_role/index.html rename to files/es/web/accessibility/aria/roles/alertdialog_role/index.md diff --git a/files/es/web/accessibility/community/index.html b/files/es/web/accessibility/community/index.md similarity index 100% rename from files/es/web/accessibility/community/index.html rename to files/es/web/accessibility/community/index.md diff --git a/files/es/web/accessibility/understanding_wcag/index.html b/files/es/web/accessibility/understanding_wcag/index.md similarity index 100% rename from files/es/web/accessibility/understanding_wcag/index.html rename to files/es/web/accessibility/understanding_wcag/index.md diff --git a/files/es/web/accessibility/understanding_wcag/keyboard/index.html b/files/es/web/accessibility/understanding_wcag/keyboard/index.md similarity index 100% rename from files/es/web/accessibility/understanding_wcag/keyboard/index.html rename to files/es/web/accessibility/understanding_wcag/keyboard/index.md diff --git a/files/es/web/accessibility/understanding_wcag/perceivable/color_contrast/index.html b/files/es/web/accessibility/understanding_wcag/perceivable/color_contrast/index.md similarity index 100% rename from files/es/web/accessibility/understanding_wcag/perceivable/color_contrast/index.html rename to files/es/web/accessibility/understanding_wcag/perceivable/color_contrast/index.md diff --git a/files/es/web/accessibility/understanding_wcag/text_labels_and_names/index.html b/files/es/web/accessibility/understanding_wcag/text_labels_and_names/index.md similarity index 100% rename from files/es/web/accessibility/understanding_wcag/text_labels_and_names/index.html rename to files/es/web/accessibility/understanding_wcag/text_labels_and_names/index.md diff --git a/files/es/web/api/analysernode/index.html b/files/es/web/api/analysernode/index.md similarity index 100% rename from files/es/web/api/analysernode/index.html rename to files/es/web/api/analysernode/index.md diff --git a/files/es/web/api/animation/animation/index.html b/files/es/web/api/animation/animation/index.md similarity index 100% rename from files/es/web/api/animation/animation/index.html rename to files/es/web/api/animation/animation/index.md diff --git a/files/es/web/api/animation/cancel/index.html b/files/es/web/api/animation/cancel/index.md similarity index 100% rename from files/es/web/api/animation/cancel/index.html rename to files/es/web/api/animation/cancel/index.md diff --git a/files/es/web/api/animation/cancel_event/index.html b/files/es/web/api/animation/cancel_event/index.md similarity index 100% rename from files/es/web/api/animation/cancel_event/index.html rename to files/es/web/api/animation/cancel_event/index.md diff --git a/files/es/web/api/animation/currenttime/index.html b/files/es/web/api/animation/currenttime/index.md similarity index 100% rename from files/es/web/api/animation/currenttime/index.html rename to files/es/web/api/animation/currenttime/index.md diff --git a/files/es/web/api/animation/effect/index.html b/files/es/web/api/animation/effect/index.md similarity index 100% rename from files/es/web/api/animation/effect/index.html rename to files/es/web/api/animation/effect/index.md diff --git a/files/es/web/api/animation/finish/index.html b/files/es/web/api/animation/finish/index.md similarity index 100% rename from files/es/web/api/animation/finish/index.html rename to files/es/web/api/animation/finish/index.md diff --git a/files/es/web/api/animation/finish_event/index.html b/files/es/web/api/animation/finish_event/index.md similarity index 100% rename from files/es/web/api/animation/finish_event/index.html rename to files/es/web/api/animation/finish_event/index.md diff --git a/files/es/web/api/animation/finished/index.html b/files/es/web/api/animation/finished/index.md similarity index 100% rename from files/es/web/api/animation/finished/index.html rename to files/es/web/api/animation/finished/index.md diff --git a/files/es/web/api/animation/id/index.html b/files/es/web/api/animation/id/index.md similarity index 100% rename from files/es/web/api/animation/id/index.html rename to files/es/web/api/animation/id/index.md diff --git a/files/es/web/api/animation/index.html b/files/es/web/api/animation/index.md similarity index 100% rename from files/es/web/api/animation/index.html rename to files/es/web/api/animation/index.md diff --git a/files/es/web/api/animation/pause/index.html b/files/es/web/api/animation/pause/index.md similarity index 100% rename from files/es/web/api/animation/pause/index.html rename to files/es/web/api/animation/pause/index.md diff --git a/files/es/web/api/animation/play/index.html b/files/es/web/api/animation/play/index.md similarity index 100% rename from files/es/web/api/animation/play/index.html rename to files/es/web/api/animation/play/index.md diff --git a/files/es/web/api/animation/playbackrate/index.html b/files/es/web/api/animation/playbackrate/index.md similarity index 100% rename from files/es/web/api/animation/playbackrate/index.html rename to files/es/web/api/animation/playbackrate/index.md diff --git a/files/es/web/api/animation/playstate/index.html b/files/es/web/api/animation/playstate/index.md similarity index 100% rename from files/es/web/api/animation/playstate/index.html rename to files/es/web/api/animation/playstate/index.md diff --git a/files/es/web/api/animation/ready/index.html b/files/es/web/api/animation/ready/index.md similarity index 100% rename from files/es/web/api/animation/ready/index.html rename to files/es/web/api/animation/ready/index.md diff --git a/files/es/web/api/animation/reverse/index.html b/files/es/web/api/animation/reverse/index.md similarity index 100% rename from files/es/web/api/animation/reverse/index.html rename to files/es/web/api/animation/reverse/index.md diff --git a/files/es/web/api/animation/starttime/index.html b/files/es/web/api/animation/starttime/index.md similarity index 100% rename from files/es/web/api/animation/starttime/index.html rename to files/es/web/api/animation/starttime/index.md diff --git a/files/es/web/api/animation/timeline/index.html b/files/es/web/api/animation/timeline/index.md similarity index 100% rename from files/es/web/api/animation/timeline/index.html rename to files/es/web/api/animation/timeline/index.md diff --git a/files/es/web/api/animationevent/animationname/index.html b/files/es/web/api/animationevent/animationname/index.md similarity index 100% rename from files/es/web/api/animationevent/animationname/index.html rename to files/es/web/api/animationevent/animationname/index.md diff --git a/files/es/web/api/animationevent/index.html b/files/es/web/api/animationevent/index.md similarity index 100% rename from files/es/web/api/animationevent/index.html rename to files/es/web/api/animationevent/index.md diff --git a/files/es/web/api/atob/index.html b/files/es/web/api/atob/index.md similarity index 100% rename from files/es/web/api/atob/index.html rename to files/es/web/api/atob/index.md diff --git a/files/es/web/api/baseaudiocontext/createbiquadfilter/index.html b/files/es/web/api/baseaudiocontext/createbiquadfilter/index.md similarity index 100% rename from files/es/web/api/baseaudiocontext/createbiquadfilter/index.html rename to files/es/web/api/baseaudiocontext/createbiquadfilter/index.md diff --git a/files/es/web/api/baseaudiocontext/index.html b/files/es/web/api/baseaudiocontext/index.md similarity index 100% rename from files/es/web/api/baseaudiocontext/index.html rename to files/es/web/api/baseaudiocontext/index.md diff --git a/files/es/web/api/beforeunloadevent/index.html b/files/es/web/api/beforeunloadevent/index.md similarity index 100% rename from files/es/web/api/beforeunloadevent/index.html rename to files/es/web/api/beforeunloadevent/index.md diff --git a/files/es/web/api/blob/blob/index.html b/files/es/web/api/blob/blob/index.md similarity index 100% rename from files/es/web/api/blob/blob/index.html rename to files/es/web/api/blob/blob/index.md diff --git a/files/es/web/api/blob/index.html b/files/es/web/api/blob/index.md similarity index 100% rename from files/es/web/api/blob/index.html rename to files/es/web/api/blob/index.md diff --git a/files/es/web/api/blob/type/index.html b/files/es/web/api/blob/type/index.md similarity index 100% rename from files/es/web/api/blob/type/index.html rename to files/es/web/api/blob/type/index.md diff --git a/files/es/web/api/blobbuilder/index.html b/files/es/web/api/blobbuilder/index.md similarity index 100% rename from files/es/web/api/blobbuilder/index.html rename to files/es/web/api/blobbuilder/index.md diff --git a/files/es/web/api/caches/index.html b/files/es/web/api/caches/index.md similarity index 100% rename from files/es/web/api/caches/index.html rename to files/es/web/api/caches/index.md diff --git a/files/es/web/api/cachestorage/index.html b/files/es/web/api/cachestorage/index.md similarity index 100% rename from files/es/web/api/cachestorage/index.html rename to files/es/web/api/cachestorage/index.md diff --git a/files/es/web/api/cachestorage/keys/index.html b/files/es/web/api/cachestorage/keys/index.md similarity index 100% rename from files/es/web/api/cachestorage/keys/index.html rename to files/es/web/api/cachestorage/keys/index.md diff --git a/files/es/web/api/canvas_api/a_basic_ray-caster/index.html b/files/es/web/api/canvas_api/a_basic_ray-caster/index.md similarity index 100% rename from files/es/web/api/canvas_api/a_basic_ray-caster/index.html rename to files/es/web/api/canvas_api/a_basic_ray-caster/index.md diff --git a/files/es/web/api/canvas_api/index.html b/files/es/web/api/canvas_api/index.md similarity index 100% rename from files/es/web/api/canvas_api/index.html rename to files/es/web/api/canvas_api/index.md diff --git a/files/es/web/api/canvas_api/manipulating_video_using_canvas/index.html b/files/es/web/api/canvas_api/manipulating_video_using_canvas/index.md similarity index 100% rename from files/es/web/api/canvas_api/manipulating_video_using_canvas/index.html rename to files/es/web/api/canvas_api/manipulating_video_using_canvas/index.md diff --git a/files/es/web/api/canvas_api/tutorial/advanced_animations/index.html b/files/es/web/api/canvas_api/tutorial/advanced_animations/index.md similarity index 100% rename from files/es/web/api/canvas_api/tutorial/advanced_animations/index.html rename to files/es/web/api/canvas_api/tutorial/advanced_animations/index.md diff --git a/files/es/web/api/canvas_api/tutorial/basic_animations/index.html b/files/es/web/api/canvas_api/tutorial/basic_animations/index.md similarity index 100% rename from files/es/web/api/canvas_api/tutorial/basic_animations/index.html rename to files/es/web/api/canvas_api/tutorial/basic_animations/index.md diff --git a/files/es/web/api/canvas_api/tutorial/basic_usage/index.html b/files/es/web/api/canvas_api/tutorial/basic_usage/index.md similarity index 100% rename from files/es/web/api/canvas_api/tutorial/basic_usage/index.html rename to files/es/web/api/canvas_api/tutorial/basic_usage/index.md diff --git a/files/es/web/api/canvas_api/tutorial/compositing/example/index.html b/files/es/web/api/canvas_api/tutorial/compositing/example/index.md similarity index 100% rename from files/es/web/api/canvas_api/tutorial/compositing/example/index.html rename to files/es/web/api/canvas_api/tutorial/compositing/example/index.md diff --git a/files/es/web/api/canvas_api/tutorial/drawing_shapes/index.html b/files/es/web/api/canvas_api/tutorial/drawing_shapes/index.md similarity index 100% rename from files/es/web/api/canvas_api/tutorial/drawing_shapes/index.html rename to files/es/web/api/canvas_api/tutorial/drawing_shapes/index.md diff --git a/files/es/web/api/canvas_api/tutorial/drawing_text/index.html b/files/es/web/api/canvas_api/tutorial/drawing_text/index.md similarity index 100% rename from files/es/web/api/canvas_api/tutorial/drawing_text/index.html rename to files/es/web/api/canvas_api/tutorial/drawing_text/index.md diff --git a/files/es/web/api/canvas_api/tutorial/index.html b/files/es/web/api/canvas_api/tutorial/index.md similarity index 100% rename from files/es/web/api/canvas_api/tutorial/index.html rename to files/es/web/api/canvas_api/tutorial/index.md diff --git a/files/es/web/api/canvas_api/tutorial/optimizing_canvas/index.html b/files/es/web/api/canvas_api/tutorial/optimizing_canvas/index.md similarity index 100% rename from files/es/web/api/canvas_api/tutorial/optimizing_canvas/index.html rename to files/es/web/api/canvas_api/tutorial/optimizing_canvas/index.md diff --git a/files/es/web/api/canvasrenderingcontext2d/beginpath/index.html b/files/es/web/api/canvasrenderingcontext2d/beginpath/index.md similarity index 100% rename from files/es/web/api/canvasrenderingcontext2d/beginpath/index.html rename to files/es/web/api/canvasrenderingcontext2d/beginpath/index.md diff --git a/files/es/web/api/canvasrenderingcontext2d/drawimage/index.html b/files/es/web/api/canvasrenderingcontext2d/drawimage/index.md similarity index 100% rename from files/es/web/api/canvasrenderingcontext2d/drawimage/index.html rename to files/es/web/api/canvasrenderingcontext2d/drawimage/index.md diff --git a/files/es/web/api/canvasrenderingcontext2d/fillrect/index.html b/files/es/web/api/canvasrenderingcontext2d/fillrect/index.md similarity index 100% rename from files/es/web/api/canvasrenderingcontext2d/fillrect/index.html rename to files/es/web/api/canvasrenderingcontext2d/fillrect/index.md diff --git a/files/es/web/api/canvasrenderingcontext2d/getimagedata/index.html b/files/es/web/api/canvasrenderingcontext2d/getimagedata/index.md similarity index 100% rename from files/es/web/api/canvasrenderingcontext2d/getimagedata/index.html rename to files/es/web/api/canvasrenderingcontext2d/getimagedata/index.md diff --git a/files/es/web/api/canvasrenderingcontext2d/linecap/index.html b/files/es/web/api/canvasrenderingcontext2d/linecap/index.md similarity index 100% rename from files/es/web/api/canvasrenderingcontext2d/linecap/index.html rename to files/es/web/api/canvasrenderingcontext2d/linecap/index.md diff --git a/files/es/web/api/canvasrenderingcontext2d/rotate/index.html b/files/es/web/api/canvasrenderingcontext2d/rotate/index.md similarity index 100% rename from files/es/web/api/canvasrenderingcontext2d/rotate/index.html rename to files/es/web/api/canvasrenderingcontext2d/rotate/index.md diff --git a/files/es/web/api/canvasrenderingcontext2d/save/index.html b/files/es/web/api/canvasrenderingcontext2d/save/index.md similarity index 100% rename from files/es/web/api/canvasrenderingcontext2d/save/index.html rename to files/es/web/api/canvasrenderingcontext2d/save/index.md diff --git a/files/es/web/api/clearinterval/index.html b/files/es/web/api/clearinterval/index.md similarity index 100% rename from files/es/web/api/clearinterval/index.html rename to files/es/web/api/clearinterval/index.md diff --git a/files/es/web/api/cleartimeout/index.html b/files/es/web/api/cleartimeout/index.md similarity index 100% rename from files/es/web/api/cleartimeout/index.html rename to files/es/web/api/cleartimeout/index.md diff --git a/files/es/web/api/clipboard_api/index.html b/files/es/web/api/clipboard_api/index.md similarity index 100% rename from files/es/web/api/clipboard_api/index.html rename to files/es/web/api/clipboard_api/index.md diff --git a/files/es/web/api/clipboardevent/clipboarddata/index.html b/files/es/web/api/clipboardevent/clipboarddata/index.md similarity index 100% rename from files/es/web/api/clipboardevent/clipboarddata/index.html rename to files/es/web/api/clipboardevent/clipboarddata/index.md diff --git a/files/es/web/api/clipboardevent/index.html b/files/es/web/api/clipboardevent/index.md similarity index 100% rename from files/es/web/api/clipboardevent/index.html rename to files/es/web/api/clipboardevent/index.md diff --git a/files/es/web/api/closeevent/index.html b/files/es/web/api/closeevent/index.md similarity index 100% rename from files/es/web/api/closeevent/index.html rename to files/es/web/api/closeevent/index.md diff --git a/files/es/web/api/comment/index.html b/files/es/web/api/comment/index.md similarity index 100% rename from files/es/web/api/comment/index.html rename to files/es/web/api/comment/index.md diff --git a/files/es/web/api/console/assert/index.html b/files/es/web/api/console/assert/index.md similarity index 100% rename from files/es/web/api/console/assert/index.html rename to files/es/web/api/console/assert/index.md diff --git a/files/es/web/api/console/count/index.html b/files/es/web/api/console/count/index.md similarity index 100% rename from files/es/web/api/console/count/index.html rename to files/es/web/api/console/count/index.md diff --git a/files/es/web/api/console/dir/index.html b/files/es/web/api/console/dir/index.md similarity index 100% rename from files/es/web/api/console/dir/index.html rename to files/es/web/api/console/dir/index.md diff --git a/files/es/web/api/console/dirxml/index.html b/files/es/web/api/console/dirxml/index.md similarity index 100% rename from files/es/web/api/console/dirxml/index.html rename to files/es/web/api/console/dirxml/index.md diff --git a/files/es/web/api/console/error/index.html b/files/es/web/api/console/error/index.md similarity index 100% rename from files/es/web/api/console/error/index.html rename to files/es/web/api/console/error/index.md diff --git a/files/es/web/api/console/info/index.html b/files/es/web/api/console/info/index.md similarity index 100% rename from files/es/web/api/console/info/index.html rename to files/es/web/api/console/info/index.md diff --git a/files/es/web/api/console/log/index.html b/files/es/web/api/console/log/index.md similarity index 100% rename from files/es/web/api/console/log/index.html rename to files/es/web/api/console/log/index.md diff --git a/files/es/web/api/console/table/index.html b/files/es/web/api/console/table/index.md similarity index 100% rename from files/es/web/api/console/table/index.html rename to files/es/web/api/console/table/index.md diff --git a/files/es/web/api/console/time/index.html b/files/es/web/api/console/time/index.md similarity index 100% rename from files/es/web/api/console/time/index.html rename to files/es/web/api/console/time/index.md diff --git a/files/es/web/api/console/timeend/index.html b/files/es/web/api/console/timeend/index.md similarity index 100% rename from files/es/web/api/console/timeend/index.html rename to files/es/web/api/console/timeend/index.md diff --git a/files/es/web/api/console/trace/index.html b/files/es/web/api/console/trace/index.md similarity index 100% rename from files/es/web/api/console/trace/index.html rename to files/es/web/api/console/trace/index.md diff --git a/files/es/web/api/console/warn/index.html b/files/es/web/api/console/warn/index.md similarity index 100% rename from files/es/web/api/console/warn/index.html rename to files/es/web/api/console/warn/index.md diff --git a/files/es/web/api/createimagebitmap/index.html b/files/es/web/api/createimagebitmap/index.md similarity index 100% rename from files/es/web/api/createimagebitmap/index.html rename to files/es/web/api/createimagebitmap/index.md diff --git a/files/es/web/api/crypto/getrandomvalues/index.html b/files/es/web/api/crypto/getrandomvalues/index.md similarity index 100% rename from files/es/web/api/crypto/getrandomvalues/index.html rename to files/es/web/api/crypto/getrandomvalues/index.md diff --git a/files/es/web/api/crypto/index.html b/files/es/web/api/crypto/index.md similarity index 100% rename from files/es/web/api/crypto/index.html rename to files/es/web/api/crypto/index.md diff --git a/files/es/web/api/crypto/subtle/index.html b/files/es/web/api/crypto/subtle/index.md similarity index 100% rename from files/es/web/api/crypto/subtle/index.html rename to files/es/web/api/crypto/subtle/index.md diff --git a/files/es/web/api/css_object_model/index.html b/files/es/web/api/css_object_model/index.md similarity index 100% rename from files/es/web/api/css_object_model/index.html rename to files/es/web/api/css_object_model/index.md diff --git a/files/es/web/api/cssrule/csstext/index.html b/files/es/web/api/cssrule/csstext/index.md similarity index 100% rename from files/es/web/api/cssrule/csstext/index.html rename to files/es/web/api/cssrule/csstext/index.md diff --git a/files/es/web/api/cssrule/index.html b/files/es/web/api/cssrule/index.md similarity index 100% rename from files/es/web/api/cssrule/index.html rename to files/es/web/api/cssrule/index.md diff --git a/files/es/web/api/cssstyledeclaration/index.html b/files/es/web/api/cssstyledeclaration/index.md similarity index 100% rename from files/es/web/api/cssstyledeclaration/index.html rename to files/es/web/api/cssstyledeclaration/index.md diff --git a/files/es/web/api/cssstylerule/index.html b/files/es/web/api/cssstylerule/index.md similarity index 100% rename from files/es/web/api/cssstylerule/index.html rename to files/es/web/api/cssstylerule/index.md diff --git a/files/es/web/api/cssstylerule/selectortext/index.html b/files/es/web/api/cssstylerule/selectortext/index.md similarity index 100% rename from files/es/web/api/cssstylerule/selectortext/index.html rename to files/es/web/api/cssstylerule/selectortext/index.md diff --git a/files/es/web/api/cssstylesheet/deleterule/index.html b/files/es/web/api/cssstylesheet/deleterule/index.md similarity index 100% rename from files/es/web/api/cssstylesheet/deleterule/index.html rename to files/es/web/api/cssstylesheet/deleterule/index.md diff --git a/files/es/web/api/cssstylesheet/index.html b/files/es/web/api/cssstylesheet/index.md similarity index 100% rename from files/es/web/api/cssstylesheet/index.html rename to files/es/web/api/cssstylesheet/index.md diff --git a/files/es/web/api/cssstylesheet/insertrule/index.html b/files/es/web/api/cssstylesheet/insertrule/index.md similarity index 100% rename from files/es/web/api/cssstylesheet/insertrule/index.html rename to files/es/web/api/cssstylesheet/insertrule/index.md diff --git a/files/es/web/api/cssstylesheet/ownerrule/index.html b/files/es/web/api/cssstylesheet/ownerrule/index.md similarity index 100% rename from files/es/web/api/cssstylesheet/ownerrule/index.html rename to files/es/web/api/cssstylesheet/ownerrule/index.md diff --git a/files/es/web/api/customelementregistry/define/index.html b/files/es/web/api/customelementregistry/define/index.md similarity index 100% rename from files/es/web/api/customelementregistry/define/index.html rename to files/es/web/api/customelementregistry/define/index.md diff --git a/files/es/web/api/customelementregistry/index.html b/files/es/web/api/customelementregistry/index.md similarity index 100% rename from files/es/web/api/customelementregistry/index.html rename to files/es/web/api/customelementregistry/index.md diff --git a/files/es/web/api/devicemotionevent/index.html b/files/es/web/api/devicemotionevent/index.md similarity index 100% rename from files/es/web/api/devicemotionevent/index.html rename to files/es/web/api/devicemotionevent/index.md diff --git a/files/es/web/api/document/adoptnode/index.html b/files/es/web/api/document/adoptnode/index.md similarity index 100% rename from files/es/web/api/document/adoptnode/index.html rename to files/es/web/api/document/adoptnode/index.md diff --git a/files/es/web/api/document/alinkcolor/index.html b/files/es/web/api/document/alinkcolor/index.md similarity index 100% rename from files/es/web/api/document/alinkcolor/index.html rename to files/es/web/api/document/alinkcolor/index.md diff --git a/files/es/web/api/document/anchors/index.html b/files/es/web/api/document/anchors/index.md similarity index 100% rename from files/es/web/api/document/anchors/index.html rename to files/es/web/api/document/anchors/index.md diff --git a/files/es/web/api/document/applets/index.html b/files/es/web/api/document/applets/index.md similarity index 100% rename from files/es/web/api/document/applets/index.html rename to files/es/web/api/document/applets/index.md diff --git a/files/es/web/api/document/bgcolor/index.html b/files/es/web/api/document/bgcolor/index.md similarity index 100% rename from files/es/web/api/document/bgcolor/index.html rename to files/es/web/api/document/bgcolor/index.md diff --git a/files/es/web/api/document/body/index.html b/files/es/web/api/document/body/index.md similarity index 100% rename from files/es/web/api/document/body/index.html rename to files/es/web/api/document/body/index.md diff --git a/files/es/web/api/document/characterset/index.html b/files/es/web/api/document/characterset/index.md similarity index 100% rename from files/es/web/api/document/characterset/index.html rename to files/es/web/api/document/characterset/index.md diff --git a/files/es/web/api/document/clear/index.html b/files/es/web/api/document/clear/index.md similarity index 100% rename from files/es/web/api/document/clear/index.html rename to files/es/web/api/document/clear/index.md diff --git a/files/es/web/api/document/close/index.html b/files/es/web/api/document/close/index.md similarity index 100% rename from files/es/web/api/document/close/index.html rename to files/es/web/api/document/close/index.md diff --git a/files/es/web/api/document/contenttype/index.html b/files/es/web/api/document/contenttype/index.md similarity index 100% rename from files/es/web/api/document/contenttype/index.html rename to files/es/web/api/document/contenttype/index.md diff --git a/files/es/web/api/document/createdocumentfragment/index.html b/files/es/web/api/document/createdocumentfragment/index.md similarity index 100% rename from files/es/web/api/document/createdocumentfragment/index.html rename to files/es/web/api/document/createdocumentfragment/index.md diff --git a/files/es/web/api/document/createevent/index.html b/files/es/web/api/document/createevent/index.md similarity index 100% rename from files/es/web/api/document/createevent/index.html rename to files/es/web/api/document/createevent/index.md diff --git a/files/es/web/api/document/createrange/index.html b/files/es/web/api/document/createrange/index.md similarity index 100% rename from files/es/web/api/document/createrange/index.html rename to files/es/web/api/document/createrange/index.md diff --git a/files/es/web/api/document/createtextnode/index.html b/files/es/web/api/document/createtextnode/index.md similarity index 100% rename from files/es/web/api/document/createtextnode/index.html rename to files/es/web/api/document/createtextnode/index.md diff --git a/files/es/web/api/document/defaultview/index.html b/files/es/web/api/document/defaultview/index.md similarity index 100% rename from files/es/web/api/document/defaultview/index.html rename to files/es/web/api/document/defaultview/index.md diff --git a/files/es/web/api/document/designmode/index.html b/files/es/web/api/document/designmode/index.md similarity index 100% rename from files/es/web/api/document/designmode/index.html rename to files/es/web/api/document/designmode/index.md diff --git a/files/es/web/api/document/dir/index.html b/files/es/web/api/document/dir/index.md similarity index 100% rename from files/es/web/api/document/dir/index.html rename to files/es/web/api/document/dir/index.md diff --git a/files/es/web/api/document/doctype/index.html b/files/es/web/api/document/doctype/index.md similarity index 100% rename from files/es/web/api/document/doctype/index.html rename to files/es/web/api/document/doctype/index.md diff --git a/files/es/web/api/document/documentelement/index.html b/files/es/web/api/document/documentelement/index.md similarity index 100% rename from files/es/web/api/document/documentelement/index.html rename to files/es/web/api/document/documentelement/index.md diff --git a/files/es/web/api/document/documenturi/index.html b/files/es/web/api/document/documenturi/index.md similarity index 100% rename from files/es/web/api/document/documenturi/index.html rename to files/es/web/api/document/documenturi/index.md diff --git a/files/es/web/api/document/documenturiobject/index.html b/files/es/web/api/document/documenturiobject/index.md similarity index 100% rename from files/es/web/api/document/documenturiobject/index.html rename to files/es/web/api/document/documenturiobject/index.md diff --git a/files/es/web/api/document/dragover_event/index.html b/files/es/web/api/document/dragover_event/index.md similarity index 100% rename from files/es/web/api/document/dragover_event/index.html rename to files/es/web/api/document/dragover_event/index.md diff --git a/files/es/web/api/document/embeds/index.html b/files/es/web/api/document/embeds/index.md similarity index 100% rename from files/es/web/api/document/embeds/index.html rename to files/es/web/api/document/embeds/index.md diff --git a/files/es/web/api/document/exitfullscreen/index.html b/files/es/web/api/document/exitfullscreen/index.md similarity index 100% rename from files/es/web/api/document/exitfullscreen/index.html rename to files/es/web/api/document/exitfullscreen/index.md diff --git a/files/es/web/api/document/getelementsbyclassname/index.html b/files/es/web/api/document/getelementsbyclassname/index.md similarity index 100% rename from files/es/web/api/document/getelementsbyclassname/index.html rename to files/es/web/api/document/getelementsbyclassname/index.md diff --git a/files/es/web/api/document/getelementsbyname/index.html b/files/es/web/api/document/getelementsbyname/index.md similarity index 100% rename from files/es/web/api/document/getelementsbyname/index.html rename to files/es/web/api/document/getelementsbyname/index.md diff --git a/files/es/web/api/document/getelementsbytagname/index.html b/files/es/web/api/document/getelementsbytagname/index.md similarity index 100% rename from files/es/web/api/document/getelementsbytagname/index.html rename to files/es/web/api/document/getelementsbytagname/index.md diff --git a/files/es/web/api/document/getelementsbytagnamens/index.html b/files/es/web/api/document/getelementsbytagnamens/index.md similarity index 100% rename from files/es/web/api/document/getelementsbytagnamens/index.html rename to files/es/web/api/document/getelementsbytagnamens/index.md diff --git a/files/es/web/api/document/getselection/index.html b/files/es/web/api/document/getselection/index.md similarity index 100% rename from files/es/web/api/document/getselection/index.html rename to files/es/web/api/document/getselection/index.md diff --git a/files/es/web/api/document/hasfocus/index.html b/files/es/web/api/document/hasfocus/index.md similarity index 100% rename from files/es/web/api/document/hasfocus/index.html rename to files/es/web/api/document/hasfocus/index.md diff --git a/files/es/web/api/document/head/index.html b/files/es/web/api/document/head/index.md similarity index 100% rename from files/es/web/api/document/head/index.html rename to files/es/web/api/document/head/index.md diff --git a/files/es/web/api/document/height/index.html b/files/es/web/api/document/height/index.md similarity index 100% rename from files/es/web/api/document/height/index.html rename to files/es/web/api/document/height/index.md diff --git a/files/es/web/api/document/hidden/index.html b/files/es/web/api/document/hidden/index.md similarity index 100% rename from files/es/web/api/document/hidden/index.html rename to files/es/web/api/document/hidden/index.md diff --git a/files/es/web/api/document/importnode/index.html b/files/es/web/api/document/importnode/index.md similarity index 100% rename from files/es/web/api/document/importnode/index.html rename to files/es/web/api/document/importnode/index.md diff --git a/files/es/web/api/document/open/index.html b/files/es/web/api/document/open/index.md similarity index 100% rename from files/es/web/api/document/open/index.html rename to files/es/web/api/document/open/index.md diff --git a/files/es/web/api/document/pointerlockchange_event/index.html b/files/es/web/api/document/pointerlockchange_event/index.md similarity index 100% rename from files/es/web/api/document/pointerlockchange_event/index.html rename to files/es/web/api/document/pointerlockchange_event/index.md diff --git a/files/es/web/api/document/pointerlockelement/index.html b/files/es/web/api/document/pointerlockelement/index.md similarity index 100% rename from files/es/web/api/document/pointerlockelement/index.html rename to files/es/web/api/document/pointerlockelement/index.md diff --git a/files/es/web/api/document/queryselectorall/index.html b/files/es/web/api/document/queryselectorall/index.md similarity index 100% rename from files/es/web/api/document/queryselectorall/index.html rename to files/es/web/api/document/queryselectorall/index.md diff --git a/files/es/web/api/document/registerelement/index.html b/files/es/web/api/document/registerelement/index.md similarity index 100% rename from files/es/web/api/document/registerelement/index.html rename to files/es/web/api/document/registerelement/index.md diff --git a/files/es/web/api/document/scripts/index.html b/files/es/web/api/document/scripts/index.md similarity index 100% rename from files/es/web/api/document/scripts/index.html rename to files/es/web/api/document/scripts/index.md diff --git a/files/es/web/api/document/stylesheets/index.html b/files/es/web/api/document/stylesheets/index.md similarity index 100% rename from files/es/web/api/document/stylesheets/index.html rename to files/es/web/api/document/stylesheets/index.md diff --git a/files/es/web/api/document/write/index.html b/files/es/web/api/document/write/index.md similarity index 100% rename from files/es/web/api/document/write/index.html rename to files/es/web/api/document/write/index.md diff --git a/files/es/web/api/document/writeln/index.html b/files/es/web/api/document/writeln/index.md similarity index 100% rename from files/es/web/api/document/writeln/index.html rename to files/es/web/api/document/writeln/index.md diff --git a/files/es/web/api/document_object_model/how_to_create_a_dom_tree/index.html b/files/es/web/api/document_object_model/how_to_create_a_dom_tree/index.md similarity index 100% rename from files/es/web/api/document_object_model/how_to_create_a_dom_tree/index.html rename to files/es/web/api/document_object_model/how_to_create_a_dom_tree/index.md diff --git a/files/es/web/api/document_object_model/index.html b/files/es/web/api/document_object_model/index.md similarity index 100% rename from files/es/web/api/document_object_model/index.html rename to files/es/web/api/document_object_model/index.md diff --git a/files/es/web/api/document_object_model/locating_dom_elements_using_selectors/index.html b/files/es/web/api/document_object_model/locating_dom_elements_using_selectors/index.md similarity index 100% rename from files/es/web/api/document_object_model/locating_dom_elements_using_selectors/index.html rename to files/es/web/api/document_object_model/locating_dom_elements_using_selectors/index.md diff --git a/files/es/web/api/document_object_model/traversing_an_html_table_with_javascript_and_dom_interfaces/index.html b/files/es/web/api/document_object_model/traversing_an_html_table_with_javascript_and_dom_interfaces/index.md similarity index 100% rename from files/es/web/api/document_object_model/traversing_an_html_table_with_javascript_and_dom_interfaces/index.html rename to files/es/web/api/document_object_model/traversing_an_html_table_with_javascript_and_dom_interfaces/index.md diff --git a/files/es/web/api/document_object_model/using_the_w3c_dom_level_1_core/example/index.html b/files/es/web/api/document_object_model/using_the_w3c_dom_level_1_core/example/index.md similarity index 100% rename from files/es/web/api/document_object_model/using_the_w3c_dom_level_1_core/example/index.html rename to files/es/web/api/document_object_model/using_the_w3c_dom_level_1_core/example/index.md diff --git a/files/es/web/api/document_object_model/using_the_w3c_dom_level_1_core/index.html b/files/es/web/api/document_object_model/using_the_w3c_dom_level_1_core/index.md similarity index 100% rename from files/es/web/api/document_object_model/using_the_w3c_dom_level_1_core/index.html rename to files/es/web/api/document_object_model/using_the_w3c_dom_level_1_core/index.md diff --git a/files/es/web/api/documentfragment/index.html b/files/es/web/api/documentfragment/index.md similarity index 100% rename from files/es/web/api/documentfragment/index.html rename to files/es/web/api/documentfragment/index.md diff --git a/files/es/web/api/domerror/index.html b/files/es/web/api/domerror/index.md similarity index 100% rename from files/es/web/api/domerror/index.html rename to files/es/web/api/domerror/index.md diff --git a/files/es/web/api/domparser/index.html b/files/es/web/api/domparser/index.md similarity index 100% rename from files/es/web/api/domparser/index.html rename to files/es/web/api/domparser/index.md diff --git a/files/es/web/api/element/animationend_event/index.html b/files/es/web/api/element/animationend_event/index.md similarity index 100% rename from files/es/web/api/element/animationend_event/index.html rename to files/es/web/api/element/animationend_event/index.md diff --git a/files/es/web/api/element/attachshadow/index.html b/files/es/web/api/element/attachshadow/index.md similarity index 100% rename from files/es/web/api/element/attachshadow/index.html rename to files/es/web/api/element/attachshadow/index.md diff --git a/files/es/web/api/element/attributes/index.html b/files/es/web/api/element/attributes/index.md similarity index 100% rename from files/es/web/api/element/attributes/index.html rename to files/es/web/api/element/attributes/index.md diff --git a/files/es/web/api/element/blur_event/index.html b/files/es/web/api/element/blur_event/index.md similarity index 100% rename from files/es/web/api/element/blur_event/index.html rename to files/es/web/api/element/blur_event/index.md diff --git a/files/es/web/api/element/classlist/index.html b/files/es/web/api/element/classlist/index.md similarity index 100% rename from files/es/web/api/element/classlist/index.html rename to files/es/web/api/element/classlist/index.md diff --git a/files/es/web/api/element/classname/index.html b/files/es/web/api/element/classname/index.md similarity index 100% rename from files/es/web/api/element/classname/index.html rename to files/es/web/api/element/classname/index.md diff --git a/files/es/web/api/element/click_event/index.html b/files/es/web/api/element/click_event/index.md similarity index 100% rename from files/es/web/api/element/click_event/index.html rename to files/es/web/api/element/click_event/index.md diff --git a/files/es/web/api/element/clientheight/index.html b/files/es/web/api/element/clientheight/index.md similarity index 100% rename from files/es/web/api/element/clientheight/index.html rename to files/es/web/api/element/clientheight/index.md diff --git a/files/es/web/api/element/clientwidth/index.html b/files/es/web/api/element/clientwidth/index.md similarity index 100% rename from files/es/web/api/element/clientwidth/index.html rename to files/es/web/api/element/clientwidth/index.md diff --git a/files/es/web/api/element/computedstylemap/index.html b/files/es/web/api/element/computedstylemap/index.md similarity index 100% rename from files/es/web/api/element/computedstylemap/index.html rename to files/es/web/api/element/computedstylemap/index.md diff --git a/files/es/web/api/element/getattribute/index.html b/files/es/web/api/element/getattribute/index.md similarity index 100% rename from files/es/web/api/element/getattribute/index.html rename to files/es/web/api/element/getattribute/index.md diff --git a/files/es/web/api/element/getattributenodens/index.html b/files/es/web/api/element/getattributenodens/index.md similarity index 100% rename from files/es/web/api/element/getattributenodens/index.html rename to files/es/web/api/element/getattributenodens/index.md diff --git a/files/es/web/api/element/getboundingclientrect/index.html b/files/es/web/api/element/getboundingclientrect/index.md similarity index 100% rename from files/es/web/api/element/getboundingclientrect/index.html rename to files/es/web/api/element/getboundingclientrect/index.md diff --git a/files/es/web/api/element/getclientrects/index.html b/files/es/web/api/element/getclientrects/index.md similarity index 100% rename from files/es/web/api/element/getclientrects/index.html rename to files/es/web/api/element/getclientrects/index.md diff --git a/files/es/web/api/element/getelementsbyclassname/index.html b/files/es/web/api/element/getelementsbyclassname/index.md similarity index 100% rename from files/es/web/api/element/getelementsbyclassname/index.html rename to files/es/web/api/element/getelementsbyclassname/index.md diff --git a/files/es/web/api/element/getelementsbytagname/index.html b/files/es/web/api/element/getelementsbytagname/index.md similarity index 100% rename from files/es/web/api/element/getelementsbytagname/index.html rename to files/es/web/api/element/getelementsbytagname/index.md diff --git a/files/es/web/api/element/getelementsbytagnamens/index.html b/files/es/web/api/element/getelementsbytagnamens/index.md similarity index 100% rename from files/es/web/api/element/getelementsbytagnamens/index.html rename to files/es/web/api/element/getelementsbytagnamens/index.md diff --git a/files/es/web/api/element/gotpointercapture_event/index.html b/files/es/web/api/element/gotpointercapture_event/index.md similarity index 100% rename from files/es/web/api/element/gotpointercapture_event/index.html rename to files/es/web/api/element/gotpointercapture_event/index.md diff --git a/files/es/web/api/element/hasattribute/index.html b/files/es/web/api/element/hasattribute/index.md similarity index 100% rename from files/es/web/api/element/hasattribute/index.html rename to files/es/web/api/element/hasattribute/index.md diff --git a/files/es/web/api/element/id/index.html b/files/es/web/api/element/id/index.md similarity index 100% rename from files/es/web/api/element/id/index.html rename to files/es/web/api/element/id/index.md diff --git a/files/es/web/api/element/index.html b/files/es/web/api/element/index.md similarity index 100% rename from files/es/web/api/element/index.html rename to files/es/web/api/element/index.md diff --git a/files/es/web/api/element/insertadjacentelement/index.html b/files/es/web/api/element/insertadjacentelement/index.md similarity index 100% rename from files/es/web/api/element/insertadjacentelement/index.html rename to files/es/web/api/element/insertadjacentelement/index.md diff --git a/files/es/web/api/element/insertadjacenthtml/index.html b/files/es/web/api/element/insertadjacenthtml/index.md similarity index 100% rename from files/es/web/api/element/insertadjacenthtml/index.html rename to files/es/web/api/element/insertadjacenthtml/index.md diff --git a/files/es/web/api/element/localname/index.html b/files/es/web/api/element/localname/index.md similarity index 100% rename from files/es/web/api/element/localname/index.html rename to files/es/web/api/element/localname/index.md diff --git a/files/es/web/api/element/lostpointercapture_event/index.html b/files/es/web/api/element/lostpointercapture_event/index.md similarity index 100% rename from files/es/web/api/element/lostpointercapture_event/index.html rename to files/es/web/api/element/lostpointercapture_event/index.md diff --git a/files/es/web/api/element/mousedown_event/index.html b/files/es/web/api/element/mousedown_event/index.md similarity index 100% rename from files/es/web/api/element/mousedown_event/index.html rename to files/es/web/api/element/mousedown_event/index.md diff --git a/files/es/web/api/element/namespaceuri/index.html b/files/es/web/api/element/namespaceuri/index.md similarity index 100% rename from files/es/web/api/element/namespaceuri/index.html rename to files/es/web/api/element/namespaceuri/index.md diff --git a/files/es/web/api/element/nextelementsibling/index.html b/files/es/web/api/element/nextelementsibling/index.md similarity index 100% rename from files/es/web/api/element/nextelementsibling/index.html rename to files/es/web/api/element/nextelementsibling/index.md diff --git a/files/es/web/api/element/outerhtml/index.html b/files/es/web/api/element/outerhtml/index.md similarity index 100% rename from files/es/web/api/element/outerhtml/index.html rename to files/es/web/api/element/outerhtml/index.md diff --git a/files/es/web/api/element/prefix/index.html b/files/es/web/api/element/prefix/index.md similarity index 100% rename from files/es/web/api/element/prefix/index.html rename to files/es/web/api/element/prefix/index.md diff --git a/files/es/web/api/element/queryselector/index.html b/files/es/web/api/element/queryselector/index.md similarity index 100% rename from files/es/web/api/element/queryselector/index.html rename to files/es/web/api/element/queryselector/index.md diff --git a/files/es/web/api/element/removeattribute/index.html b/files/es/web/api/element/removeattribute/index.md similarity index 100% rename from files/es/web/api/element/removeattribute/index.html rename to files/es/web/api/element/removeattribute/index.md diff --git a/files/es/web/api/element/requestfullscreen/index.html b/files/es/web/api/element/requestfullscreen/index.md similarity index 100% rename from files/es/web/api/element/requestfullscreen/index.html rename to files/es/web/api/element/requestfullscreen/index.md diff --git a/files/es/web/api/element/scroll_event/index.html b/files/es/web/api/element/scroll_event/index.md similarity index 100% rename from files/es/web/api/element/scroll_event/index.html rename to files/es/web/api/element/scroll_event/index.md diff --git a/files/es/web/api/element/scrollheight/index.html b/files/es/web/api/element/scrollheight/index.md similarity index 100% rename from files/es/web/api/element/scrollheight/index.html rename to files/es/web/api/element/scrollheight/index.md diff --git a/files/es/web/api/element/scrolltop/index.html b/files/es/web/api/element/scrolltop/index.md similarity index 100% rename from files/es/web/api/element/scrolltop/index.html rename to files/es/web/api/element/scrolltop/index.md diff --git a/files/es/web/api/element/scrolltopmax/index.html b/files/es/web/api/element/scrolltopmax/index.md similarity index 100% rename from files/es/web/api/element/scrolltopmax/index.html rename to files/es/web/api/element/scrolltopmax/index.md diff --git a/files/es/web/api/element/scrollwidth/index.html b/files/es/web/api/element/scrollwidth/index.md similarity index 100% rename from files/es/web/api/element/scrollwidth/index.html rename to files/es/web/api/element/scrollwidth/index.md diff --git a/files/es/web/api/element/setattribute/index.html b/files/es/web/api/element/setattribute/index.md similarity index 100% rename from files/es/web/api/element/setattribute/index.html rename to files/es/web/api/element/setattribute/index.md diff --git a/files/es/web/api/element/setattributens/index.html b/files/es/web/api/element/setattributens/index.md similarity index 100% rename from files/es/web/api/element/setattributens/index.html rename to files/es/web/api/element/setattributens/index.md diff --git a/files/es/web/api/element/setcapture/index.html b/files/es/web/api/element/setcapture/index.md similarity index 100% rename from files/es/web/api/element/setcapture/index.html rename to files/es/web/api/element/setcapture/index.md diff --git a/files/es/web/api/element/tagname/index.html b/files/es/web/api/element/tagname/index.md similarity index 100% rename from files/es/web/api/element/tagname/index.html rename to files/es/web/api/element/tagname/index.md diff --git a/files/es/web/api/element/touchstart_event/index.html b/files/es/web/api/element/touchstart_event/index.md similarity index 100% rename from files/es/web/api/element/touchstart_event/index.html rename to files/es/web/api/element/touchstart_event/index.md diff --git a/files/es/web/api/element/transitioncancel_event/index.html b/files/es/web/api/element/transitioncancel_event/index.md similarity index 100% rename from files/es/web/api/element/transitioncancel_event/index.html rename to files/es/web/api/element/transitioncancel_event/index.md diff --git a/files/es/web/api/element/transitionend_event/index.html b/files/es/web/api/element/transitionend_event/index.md similarity index 100% rename from files/es/web/api/element/transitionend_event/index.html rename to files/es/web/api/element/transitionend_event/index.md diff --git a/files/es/web/api/event/bubbles/index.html b/files/es/web/api/event/bubbles/index.md similarity index 100% rename from files/es/web/api/event/bubbles/index.html rename to files/es/web/api/event/bubbles/index.md diff --git a/files/es/web/api/event/cancelable/index.html b/files/es/web/api/event/cancelable/index.md similarity index 100% rename from files/es/web/api/event/cancelable/index.html rename to files/es/web/api/event/cancelable/index.md diff --git a/files/es/web/api/event/currenttarget/index.html b/files/es/web/api/event/currenttarget/index.md similarity index 100% rename from files/es/web/api/event/currenttarget/index.html rename to files/es/web/api/event/currenttarget/index.md diff --git a/files/es/web/api/event/defaultprevented/index.html b/files/es/web/api/event/defaultprevented/index.md similarity index 100% rename from files/es/web/api/event/defaultprevented/index.html rename to files/es/web/api/event/defaultprevented/index.md diff --git a/files/es/web/api/event/index.html b/files/es/web/api/event/index.md similarity index 100% rename from files/es/web/api/event/index.html rename to files/es/web/api/event/index.md diff --git a/files/es/web/api/event/initevent/index.html b/files/es/web/api/event/initevent/index.md similarity index 100% rename from files/es/web/api/event/initevent/index.html rename to files/es/web/api/event/initevent/index.md diff --git a/files/es/web/api/event/preventdefault/index.html b/files/es/web/api/event/preventdefault/index.md similarity index 100% rename from files/es/web/api/event/preventdefault/index.html rename to files/es/web/api/event/preventdefault/index.md diff --git a/files/es/web/api/event/stoppropagation/index.html b/files/es/web/api/event/stoppropagation/index.md similarity index 100% rename from files/es/web/api/event/stoppropagation/index.html rename to files/es/web/api/event/stoppropagation/index.md diff --git a/files/es/web/api/event/target/index.html b/files/es/web/api/event/target/index.md similarity index 100% rename from files/es/web/api/event/target/index.html rename to files/es/web/api/event/target/index.md diff --git a/files/es/web/api/event/type/index.html b/files/es/web/api/event/type/index.md similarity index 100% rename from files/es/web/api/event/type/index.html rename to files/es/web/api/event/type/index.md diff --git a/files/es/web/api/eventsource/open_event/index.html b/files/es/web/api/eventsource/open_event/index.md similarity index 100% rename from files/es/web/api/eventsource/open_event/index.html rename to files/es/web/api/eventsource/open_event/index.md diff --git a/files/es/web/api/eventtarget/addeventlistener/index.html b/files/es/web/api/eventtarget/addeventlistener/index.md similarity index 100% rename from files/es/web/api/eventtarget/addeventlistener/index.html rename to files/es/web/api/eventtarget/addeventlistener/index.md diff --git a/files/es/web/api/eventtarget/dispatchevent/index.html b/files/es/web/api/eventtarget/dispatchevent/index.md similarity index 100% rename from files/es/web/api/eventtarget/dispatchevent/index.html rename to files/es/web/api/eventtarget/dispatchevent/index.md diff --git a/files/es/web/api/eventtarget/index.html b/files/es/web/api/eventtarget/index.md similarity index 100% rename from files/es/web/api/eventtarget/index.html rename to files/es/web/api/eventtarget/index.md diff --git a/files/es/web/api/fetch/index.html b/files/es/web/api/fetch/index.md similarity index 100% rename from files/es/web/api/fetch/index.html rename to files/es/web/api/fetch/index.md diff --git a/files/es/web/api/fetch_api/basic_concepts/index.html b/files/es/web/api/fetch_api/basic_concepts/index.md similarity index 100% rename from files/es/web/api/fetch_api/basic_concepts/index.html rename to files/es/web/api/fetch_api/basic_concepts/index.md diff --git a/files/es/web/api/fetch_api/index.html b/files/es/web/api/fetch_api/index.md similarity index 100% rename from files/es/web/api/fetch_api/index.html rename to files/es/web/api/fetch_api/index.md diff --git a/files/es/web/api/fetch_api/using_fetch/index.html b/files/es/web/api/fetch_api/using_fetch/index.md similarity index 100% rename from files/es/web/api/fetch_api/using_fetch/index.html rename to files/es/web/api/fetch_api/using_fetch/index.md diff --git a/files/es/web/api/fetchevent/index.html b/files/es/web/api/fetchevent/index.md similarity index 100% rename from files/es/web/api/fetchevent/index.html rename to files/es/web/api/fetchevent/index.md diff --git a/files/es/web/api/file/lastmodifieddate/index.html b/files/es/web/api/file/lastmodifieddate/index.md similarity index 100% rename from files/es/web/api/file/lastmodifieddate/index.html rename to files/es/web/api/file/lastmodifieddate/index.md diff --git a/files/es/web/api/file/name/index.html b/files/es/web/api/file/name/index.md similarity index 100% rename from files/es/web/api/file/name/index.html rename to files/es/web/api/file/name/index.md diff --git a/files/es/web/api/file/webkitrelativepath/index.html b/files/es/web/api/file/webkitrelativepath/index.md similarity index 100% rename from files/es/web/api/file/webkitrelativepath/index.html rename to files/es/web/api/file/webkitrelativepath/index.md diff --git a/files/es/web/api/file_api/using_files_from_web_applications/index.html b/files/es/web/api/file_api/using_files_from_web_applications/index.md similarity index 100% rename from files/es/web/api/file_api/using_files_from_web_applications/index.html rename to files/es/web/api/file_api/using_files_from_web_applications/index.md diff --git a/files/es/web/api/filereader/index.html b/files/es/web/api/filereader/index.md similarity index 100% rename from files/es/web/api/filereader/index.html rename to files/es/web/api/filereader/index.md diff --git a/files/es/web/api/filereader/load_event/index.html b/files/es/web/api/filereader/load_event/index.md similarity index 100% rename from files/es/web/api/filereader/load_event/index.html rename to files/es/web/api/filereader/load_event/index.md diff --git a/files/es/web/api/filereader/readastext/index.html b/files/es/web/api/filereader/readastext/index.md similarity index 100% rename from files/es/web/api/filereader/readastext/index.html rename to files/es/web/api/filereader/readastext/index.md diff --git a/files/es/web/api/filereader/result/index.html b/files/es/web/api/filereader/result/index.md similarity index 100% rename from files/es/web/api/filereader/result/index.html rename to files/es/web/api/filereader/result/index.md diff --git a/files/es/web/api/formdata/index.html b/files/es/web/api/formdata/index.md similarity index 100% rename from files/es/web/api/formdata/index.html rename to files/es/web/api/formdata/index.md diff --git a/files/es/web/api/formdata/using_formdata_objects/index.html b/files/es/web/api/formdata/using_formdata_objects/index.md similarity index 100% rename from files/es/web/api/formdata/using_formdata_objects/index.html rename to files/es/web/api/formdata/using_formdata_objects/index.md diff --git a/files/es/web/api/fullscreen_api/index.html b/files/es/web/api/fullscreen_api/index.md similarity index 100% rename from files/es/web/api/fullscreen_api/index.html rename to files/es/web/api/fullscreen_api/index.md diff --git a/files/es/web/api/gamepad_api/index.html b/files/es/web/api/gamepad_api/index.md similarity index 100% rename from files/es/web/api/gamepad_api/index.html rename to files/es/web/api/gamepad_api/index.md diff --git a/files/es/web/api/gamepadbutton/index.html b/files/es/web/api/gamepadbutton/index.md similarity index 100% rename from files/es/web/api/gamepadbutton/index.html rename to files/es/web/api/gamepadbutton/index.md diff --git a/files/es/web/api/geolocation/getcurrentposition/index.html b/files/es/web/api/geolocation/getcurrentposition/index.md similarity index 100% rename from files/es/web/api/geolocation/getcurrentposition/index.html rename to files/es/web/api/geolocation/getcurrentposition/index.md diff --git a/files/es/web/api/geolocation/watchposition/index.html b/files/es/web/api/geolocation/watchposition/index.md similarity index 100% rename from files/es/web/api/geolocation/watchposition/index.html rename to files/es/web/api/geolocation/watchposition/index.md diff --git a/files/es/web/api/geolocationcoordinates/index.html b/files/es/web/api/geolocationcoordinates/index.md similarity index 100% rename from files/es/web/api/geolocationcoordinates/index.html rename to files/es/web/api/geolocationcoordinates/index.md diff --git a/files/es/web/api/geolocationcoordinates/latitude/index.html b/files/es/web/api/geolocationcoordinates/latitude/index.md similarity index 100% rename from files/es/web/api/geolocationcoordinates/latitude/index.html rename to files/es/web/api/geolocationcoordinates/latitude/index.md diff --git a/files/es/web/api/geolocationposition/index.html b/files/es/web/api/geolocationposition/index.md similarity index 100% rename from files/es/web/api/geolocationposition/index.html rename to files/es/web/api/geolocationposition/index.md diff --git a/files/es/web/api/globaleventhandlers/index.html b/files/es/web/api/globaleventhandlers/index.md similarity index 100% rename from files/es/web/api/globaleventhandlers/index.html rename to files/es/web/api/globaleventhandlers/index.md diff --git a/files/es/web/api/history/index.html b/files/es/web/api/history/index.md similarity index 100% rename from files/es/web/api/history/index.html rename to files/es/web/api/history/index.md diff --git a/files/es/web/api/history/length/index.html b/files/es/web/api/history/length/index.md similarity index 100% rename from files/es/web/api/history/length/index.html rename to files/es/web/api/history/length/index.md diff --git a/files/es/web/api/html_drag_and_drop_api/file_drag_and_drop/index.html b/files/es/web/api/html_drag_and_drop_api/file_drag_and_drop/index.md similarity index 100% rename from files/es/web/api/html_drag_and_drop_api/file_drag_and_drop/index.html rename to files/es/web/api/html_drag_and_drop_api/file_drag_and_drop/index.md diff --git a/files/es/web/api/html_drag_and_drop_api/index.html b/files/es/web/api/html_drag_and_drop_api/index.md similarity index 100% rename from files/es/web/api/html_drag_and_drop_api/index.html rename to files/es/web/api/html_drag_and_drop_api/index.md diff --git a/files/es/web/api/htmlaudioelement/index.html b/files/es/web/api/htmlaudioelement/index.md similarity index 100% rename from files/es/web/api/htmlaudioelement/index.html rename to files/es/web/api/htmlaudioelement/index.md diff --git a/files/es/web/api/htmlcanvaselement/getcontext/index.html b/files/es/web/api/htmlcanvaselement/getcontext/index.md similarity index 100% rename from files/es/web/api/htmlcanvaselement/getcontext/index.html rename to files/es/web/api/htmlcanvaselement/getcontext/index.md diff --git a/files/es/web/api/htmlcanvaselement/height/index.html b/files/es/web/api/htmlcanvaselement/height/index.md similarity index 100% rename from files/es/web/api/htmlcanvaselement/height/index.html rename to files/es/web/api/htmlcanvaselement/height/index.md diff --git a/files/es/web/api/htmlcanvaselement/width/index.html b/files/es/web/api/htmlcanvaselement/width/index.md similarity index 100% rename from files/es/web/api/htmlcanvaselement/width/index.html rename to files/es/web/api/htmlcanvaselement/width/index.md diff --git a/files/es/web/api/htmlcollection/index.html b/files/es/web/api/htmlcollection/index.md similarity index 100% rename from files/es/web/api/htmlcollection/index.html rename to files/es/web/api/htmlcollection/index.md diff --git a/files/es/web/api/htmldivelement/index.html b/files/es/web/api/htmldivelement/index.md similarity index 100% rename from files/es/web/api/htmldivelement/index.html rename to files/es/web/api/htmldivelement/index.md diff --git a/files/es/web/api/htmlelement/accesskey/index.html b/files/es/web/api/htmlelement/accesskey/index.md similarity index 100% rename from files/es/web/api/htmlelement/accesskey/index.html rename to files/es/web/api/htmlelement/accesskey/index.md diff --git a/files/es/web/api/htmlelement/contenteditable/index.html b/files/es/web/api/htmlelement/contenteditable/index.md similarity index 100% rename from files/es/web/api/htmlelement/contenteditable/index.html rename to files/es/web/api/htmlelement/contenteditable/index.md diff --git a/files/es/web/api/htmlelement/index.html b/files/es/web/api/htmlelement/index.md similarity index 100% rename from files/es/web/api/htmlelement/index.html rename to files/es/web/api/htmlelement/index.md diff --git a/files/es/web/api/htmlelement/offsetheight/index.html b/files/es/web/api/htmlelement/offsetheight/index.md similarity index 100% rename from files/es/web/api/htmlelement/offsetheight/index.html rename to files/es/web/api/htmlelement/offsetheight/index.md diff --git a/files/es/web/api/htmlelement/offsetleft/index.html b/files/es/web/api/htmlelement/offsetleft/index.md similarity index 100% rename from files/es/web/api/htmlelement/offsetleft/index.html rename to files/es/web/api/htmlelement/offsetleft/index.md diff --git a/files/es/web/api/htmlelement/offsetparent/index.html b/files/es/web/api/htmlelement/offsetparent/index.md similarity index 100% rename from files/es/web/api/htmlelement/offsetparent/index.html rename to files/es/web/api/htmlelement/offsetparent/index.md diff --git a/files/es/web/api/htmlelement/offsettop/index.html b/files/es/web/api/htmlelement/offsettop/index.md similarity index 100% rename from files/es/web/api/htmlelement/offsettop/index.html rename to files/es/web/api/htmlelement/offsettop/index.md diff --git a/files/es/web/api/htmlelement/offsetwidth/index.html b/files/es/web/api/htmlelement/offsetwidth/index.md similarity index 100% rename from files/es/web/api/htmlelement/offsetwidth/index.html rename to files/es/web/api/htmlelement/offsetwidth/index.md diff --git a/files/es/web/api/htmlformelement/index.html b/files/es/web/api/htmlformelement/index.md similarity index 100% rename from files/es/web/api/htmlformelement/index.html rename to files/es/web/api/htmlformelement/index.md diff --git a/files/es/web/api/htmlformelement/reset/index.html b/files/es/web/api/htmlformelement/reset/index.md similarity index 100% rename from files/es/web/api/htmlformelement/reset/index.html rename to files/es/web/api/htmlformelement/reset/index.md diff --git a/files/es/web/api/htmlheadelement/index.html b/files/es/web/api/htmlheadelement/index.md similarity index 100% rename from files/es/web/api/htmlheadelement/index.html rename to files/es/web/api/htmlheadelement/index.md diff --git a/files/es/web/api/htmlimageelement/index.html b/files/es/web/api/htmlimageelement/index.md similarity index 100% rename from files/es/web/api/htmlimageelement/index.html rename to files/es/web/api/htmlimageelement/index.md diff --git a/files/es/web/api/htmlinputelement/invalid_event/index.html b/files/es/web/api/htmlinputelement/invalid_event/index.md similarity index 100% rename from files/es/web/api/htmlinputelement/invalid_event/index.html rename to files/es/web/api/htmlinputelement/invalid_event/index.md diff --git a/files/es/web/api/htmlinputelement/select/index.html b/files/es/web/api/htmlinputelement/select/index.md similarity index 100% rename from files/es/web/api/htmlinputelement/select/index.html rename to files/es/web/api/htmlinputelement/select/index.md diff --git a/files/es/web/api/htmllabelelement/index.html b/files/es/web/api/htmllabelelement/index.md similarity index 100% rename from files/es/web/api/htmllabelelement/index.html rename to files/es/web/api/htmllabelelement/index.md diff --git a/files/es/web/api/htmllielement/index.html b/files/es/web/api/htmllielement/index.md similarity index 100% rename from files/es/web/api/htmllielement/index.html rename to files/es/web/api/htmllielement/index.md diff --git a/files/es/web/api/htmlmediaelement/canplay_event/index.html b/files/es/web/api/htmlmediaelement/canplay_event/index.md similarity index 100% rename from files/es/web/api/htmlmediaelement/canplay_event/index.html rename to files/es/web/api/htmlmediaelement/canplay_event/index.md diff --git a/files/es/web/api/htmlmediaelement/index.html b/files/es/web/api/htmlmediaelement/index.md similarity index 100% rename from files/es/web/api/htmlmediaelement/index.html rename to files/es/web/api/htmlmediaelement/index.md diff --git a/files/es/web/api/htmlmediaelement/loadeddata_event/index.html b/files/es/web/api/htmlmediaelement/loadeddata_event/index.md similarity index 100% rename from files/es/web/api/htmlmediaelement/loadeddata_event/index.html rename to files/es/web/api/htmlmediaelement/loadeddata_event/index.md diff --git a/files/es/web/api/htmlmediaelement/pause/index.html b/files/es/web/api/htmlmediaelement/pause/index.md similarity index 100% rename from files/es/web/api/htmlmediaelement/pause/index.html rename to files/es/web/api/htmlmediaelement/pause/index.md diff --git a/files/es/web/api/htmlmediaelement/paused/index.html b/files/es/web/api/htmlmediaelement/paused/index.md similarity index 100% rename from files/es/web/api/htmlmediaelement/paused/index.html rename to files/es/web/api/htmlmediaelement/paused/index.md diff --git a/files/es/web/api/htmlmediaelement/play/index.html b/files/es/web/api/htmlmediaelement/play/index.md similarity index 100% rename from files/es/web/api/htmlmediaelement/play/index.html rename to files/es/web/api/htmlmediaelement/play/index.md diff --git a/files/es/web/api/htmlmediaelement/timeupdate_event/index.html b/files/es/web/api/htmlmediaelement/timeupdate_event/index.md similarity index 100% rename from files/es/web/api/htmlmediaelement/timeupdate_event/index.html rename to files/es/web/api/htmlmediaelement/timeupdate_event/index.md diff --git a/files/es/web/api/htmlselectelement/index.html b/files/es/web/api/htmlselectelement/index.md similarity index 100% rename from files/es/web/api/htmlselectelement/index.html rename to files/es/web/api/htmlselectelement/index.md diff --git a/files/es/web/api/htmlselectelement/setcustomvalidity/index.html b/files/es/web/api/htmlselectelement/setcustomvalidity/index.md similarity index 100% rename from files/es/web/api/htmlselectelement/setcustomvalidity/index.html rename to files/es/web/api/htmlselectelement/setcustomvalidity/index.md diff --git a/files/es/web/api/htmlstyleelement/index.html b/files/es/web/api/htmlstyleelement/index.md similarity index 100% rename from files/es/web/api/htmlstyleelement/index.html rename to files/es/web/api/htmlstyleelement/index.md diff --git a/files/es/web/api/htmltableelement/align/index.html b/files/es/web/api/htmltableelement/align/index.md similarity index 100% rename from files/es/web/api/htmltableelement/align/index.html rename to files/es/web/api/htmltableelement/align/index.md diff --git a/files/es/web/api/htmltableelement/index.html b/files/es/web/api/htmltableelement/index.md similarity index 100% rename from files/es/web/api/htmltableelement/index.html rename to files/es/web/api/htmltableelement/index.md diff --git a/files/es/web/api/htmltableelement/insertrow/index.html b/files/es/web/api/htmltableelement/insertrow/index.md similarity index 100% rename from files/es/web/api/htmltableelement/insertrow/index.html rename to files/es/web/api/htmltableelement/insertrow/index.md diff --git a/files/es/web/api/htmlvideoelement/index.html b/files/es/web/api/htmlvideoelement/index.md similarity index 100% rename from files/es/web/api/htmlvideoelement/index.html rename to files/es/web/api/htmlvideoelement/index.md diff --git a/files/es/web/api/idbobjectstore/index.html b/files/es/web/api/idbobjectstore/index.md similarity index 100% rename from files/es/web/api/idbobjectstore/index.html rename to files/es/web/api/idbobjectstore/index.md diff --git a/files/es/web/api/imagebitmap/index.html b/files/es/web/api/imagebitmap/index.md similarity index 100% rename from files/es/web/api/imagebitmap/index.html rename to files/es/web/api/imagebitmap/index.md diff --git a/files/es/web/api/imagebitmaprenderingcontext/index.html b/files/es/web/api/imagebitmaprenderingcontext/index.md similarity index 100% rename from files/es/web/api/imagebitmaprenderingcontext/index.html rename to files/es/web/api/imagebitmaprenderingcontext/index.md diff --git a/files/es/web/api/indexeddb_api/index.html b/files/es/web/api/indexeddb_api/index.md similarity index 100% rename from files/es/web/api/indexeddb_api/index.html rename to files/es/web/api/indexeddb_api/index.md diff --git a/files/es/web/api/indexeddb_api/using_indexeddb/index.html b/files/es/web/api/indexeddb_api/using_indexeddb/index.md similarity index 100% rename from files/es/web/api/indexeddb_api/using_indexeddb/index.html rename to files/es/web/api/indexeddb_api/using_indexeddb/index.md diff --git a/files/es/web/api/intersection_observer_api/index.html b/files/es/web/api/intersection_observer_api/index.md similarity index 100% rename from files/es/web/api/intersection_observer_api/index.html rename to files/es/web/api/intersection_observer_api/index.md diff --git a/files/es/web/api/issecurecontext/index.html b/files/es/web/api/issecurecontext/index.md similarity index 100% rename from files/es/web/api/issecurecontext/index.html rename to files/es/web/api/issecurecontext/index.md diff --git a/files/es/web/api/keyboardevent/metakey/index.html b/files/es/web/api/keyboardevent/metakey/index.md similarity index 100% rename from files/es/web/api/keyboardevent/metakey/index.html rename to files/es/web/api/keyboardevent/metakey/index.md diff --git a/files/es/web/api/location/index.html b/files/es/web/api/location/index.md similarity index 100% rename from files/es/web/api/location/index.html rename to files/es/web/api/location/index.md diff --git a/files/es/web/api/location/origin/index.html b/files/es/web/api/location/origin/index.md similarity index 100% rename from files/es/web/api/location/origin/index.html rename to files/es/web/api/location/origin/index.md diff --git a/files/es/web/api/location/reload/index.html b/files/es/web/api/location/reload/index.md similarity index 100% rename from files/es/web/api/location/reload/index.html rename to files/es/web/api/location/reload/index.md diff --git a/files/es/web/api/media_capture_and_streams_api/taking_still_photos/index.html b/files/es/web/api/media_capture_and_streams_api/taking_still_photos/index.md similarity index 100% rename from files/es/web/api/media_capture_and_streams_api/taking_still_photos/index.html rename to files/es/web/api/media_capture_and_streams_api/taking_still_photos/index.md diff --git a/files/es/web/api/mediadevices/getusermedia/index.html b/files/es/web/api/mediadevices/getusermedia/index.md similarity index 100% rename from files/es/web/api/mediadevices/getusermedia/index.html rename to files/es/web/api/mediadevices/getusermedia/index.md diff --git a/files/es/web/api/mediadevices/index.html b/files/es/web/api/mediadevices/index.md similarity index 100% rename from files/es/web/api/mediadevices/index.html rename to files/es/web/api/mediadevices/index.md diff --git a/files/es/web/api/mediaquerylist/addlistener/index.html b/files/es/web/api/mediaquerylist/addlistener/index.md similarity index 100% rename from files/es/web/api/mediaquerylist/addlistener/index.html rename to files/es/web/api/mediaquerylist/addlistener/index.md diff --git a/files/es/web/api/mediaquerylist/index.html b/files/es/web/api/mediaquerylist/index.md similarity index 100% rename from files/es/web/api/mediaquerylist/index.html rename to files/es/web/api/mediaquerylist/index.md diff --git a/files/es/web/api/mediaquerylist/matches/index.html b/files/es/web/api/mediaquerylist/matches/index.md similarity index 100% rename from files/es/web/api/mediaquerylist/matches/index.html rename to files/es/web/api/mediaquerylist/matches/index.md diff --git a/files/es/web/api/mediaquerylist/removelistener/index.html b/files/es/web/api/mediaquerylist/removelistener/index.md similarity index 100% rename from files/es/web/api/mediaquerylist/removelistener/index.html rename to files/es/web/api/mediaquerylist/removelistener/index.md diff --git a/files/es/web/api/messageevent/index.html b/files/es/web/api/messageevent/index.md similarity index 100% rename from files/es/web/api/messageevent/index.html rename to files/es/web/api/messageevent/index.md diff --git a/files/es/web/api/mimetype/index.html b/files/es/web/api/mimetype/index.md similarity index 100% rename from files/es/web/api/mimetype/index.html rename to files/es/web/api/mimetype/index.md diff --git a/files/es/web/api/mouseevent/index.html b/files/es/web/api/mouseevent/index.md similarity index 100% rename from files/es/web/api/mouseevent/index.html rename to files/es/web/api/mouseevent/index.md diff --git a/files/es/web/api/mouseevent/initmouseevent/index.html b/files/es/web/api/mouseevent/initmouseevent/index.md similarity index 100% rename from files/es/web/api/mouseevent/initmouseevent/index.html rename to files/es/web/api/mouseevent/initmouseevent/index.md diff --git a/files/es/web/api/mouseevent/pagex/index.html b/files/es/web/api/mouseevent/pagex/index.md similarity index 100% rename from files/es/web/api/mouseevent/pagex/index.html rename to files/es/web/api/mouseevent/pagex/index.md diff --git a/files/es/web/api/mouseevent/shiftkey/index.html b/files/es/web/api/mouseevent/shiftkey/index.md similarity index 100% rename from files/es/web/api/mouseevent/shiftkey/index.html rename to files/es/web/api/mouseevent/shiftkey/index.md diff --git a/files/es/web/api/navigator/donottrack/index.html b/files/es/web/api/navigator/donottrack/index.md similarity index 100% rename from files/es/web/api/navigator/donottrack/index.html rename to files/es/web/api/navigator/donottrack/index.md diff --git a/files/es/web/api/navigator/geolocation/index.html b/files/es/web/api/navigator/geolocation/index.md similarity index 100% rename from files/es/web/api/navigator/geolocation/index.html rename to files/es/web/api/navigator/geolocation/index.md diff --git a/files/es/web/api/navigator/getusermedia/index.html b/files/es/web/api/navigator/getusermedia/index.md similarity index 100% rename from files/es/web/api/navigator/getusermedia/index.html rename to files/es/web/api/navigator/getusermedia/index.md diff --git a/files/es/web/api/navigator/registerprotocolhandler/index.html b/files/es/web/api/navigator/registerprotocolhandler/index.md similarity index 100% rename from files/es/web/api/navigator/registerprotocolhandler/index.html rename to files/es/web/api/navigator/registerprotocolhandler/index.md diff --git a/files/es/web/api/navigator/vibrate/index.html b/files/es/web/api/navigator/vibrate/index.md similarity index 100% rename from files/es/web/api/navigator/vibrate/index.html rename to files/es/web/api/navigator/vibrate/index.md diff --git a/files/es/web/api/network_information_api/index.html b/files/es/web/api/network_information_api/index.md similarity index 100% rename from files/es/web/api/network_information_api/index.html rename to files/es/web/api/network_information_api/index.md diff --git a/files/es/web/api/node/appendchild/index.html b/files/es/web/api/node/appendchild/index.md similarity index 100% rename from files/es/web/api/node/appendchild/index.html rename to files/es/web/api/node/appendchild/index.md diff --git a/files/es/web/api/node/childnodes/index.html b/files/es/web/api/node/childnodes/index.md similarity index 100% rename from files/es/web/api/node/childnodes/index.html rename to files/es/web/api/node/childnodes/index.md diff --git a/files/es/web/api/node/clonenode/index.html b/files/es/web/api/node/clonenode/index.md similarity index 100% rename from files/es/web/api/node/clonenode/index.html rename to files/es/web/api/node/clonenode/index.md diff --git a/files/es/web/api/node/contains/index.html b/files/es/web/api/node/contains/index.md similarity index 100% rename from files/es/web/api/node/contains/index.html rename to files/es/web/api/node/contains/index.md diff --git a/files/es/web/api/node/haschildnodes/index.html b/files/es/web/api/node/haschildnodes/index.md similarity index 100% rename from files/es/web/api/node/haschildnodes/index.html rename to files/es/web/api/node/haschildnodes/index.md diff --git a/files/es/web/api/node/issamenode/index.html b/files/es/web/api/node/issamenode/index.md similarity index 100% rename from files/es/web/api/node/issamenode/index.html rename to files/es/web/api/node/issamenode/index.md diff --git a/files/es/web/api/node/lastchild/index.html b/files/es/web/api/node/lastchild/index.md similarity index 100% rename from files/es/web/api/node/lastchild/index.html rename to files/es/web/api/node/lastchild/index.md diff --git a/files/es/web/api/node/nextsibling/index.html b/files/es/web/api/node/nextsibling/index.md similarity index 100% rename from files/es/web/api/node/nextsibling/index.html rename to files/es/web/api/node/nextsibling/index.md diff --git a/files/es/web/api/node/nodename/index.html b/files/es/web/api/node/nodename/index.md similarity index 100% rename from files/es/web/api/node/nodename/index.html rename to files/es/web/api/node/nodename/index.md diff --git a/files/es/web/api/node/nodetype/index.html b/files/es/web/api/node/nodetype/index.md similarity index 100% rename from files/es/web/api/node/nodetype/index.html rename to files/es/web/api/node/nodetype/index.md diff --git a/files/es/web/api/node/nodevalue/index.html b/files/es/web/api/node/nodevalue/index.md similarity index 100% rename from files/es/web/api/node/nodevalue/index.html rename to files/es/web/api/node/nodevalue/index.md diff --git a/files/es/web/api/node/ownerdocument/index.html b/files/es/web/api/node/ownerdocument/index.md similarity index 100% rename from files/es/web/api/node/ownerdocument/index.html rename to files/es/web/api/node/ownerdocument/index.md diff --git a/files/es/web/api/node/parentelement/index.html b/files/es/web/api/node/parentelement/index.md similarity index 100% rename from files/es/web/api/node/parentelement/index.html rename to files/es/web/api/node/parentelement/index.md diff --git a/files/es/web/api/node/parentnode/index.html b/files/es/web/api/node/parentnode/index.md similarity index 100% rename from files/es/web/api/node/parentnode/index.html rename to files/es/web/api/node/parentnode/index.md diff --git a/files/es/web/api/node/previoussibling/index.html b/files/es/web/api/node/previoussibling/index.md similarity index 100% rename from files/es/web/api/node/previoussibling/index.html rename to files/es/web/api/node/previoussibling/index.md diff --git a/files/es/web/api/node/replacechild/index.html b/files/es/web/api/node/replacechild/index.md similarity index 100% rename from files/es/web/api/node/replacechild/index.html rename to files/es/web/api/node/replacechild/index.md diff --git a/files/es/web/api/notifications_api/index.html b/files/es/web/api/notifications_api/index.md similarity index 100% rename from files/es/web/api/notifications_api/index.html rename to files/es/web/api/notifications_api/index.md diff --git a/files/es/web/api/payment_request_api/index.html b/files/es/web/api/payment_request_api/index.md similarity index 100% rename from files/es/web/api/payment_request_api/index.html rename to files/es/web/api/payment_request_api/index.md diff --git a/files/es/web/api/performance/memory/index.html b/files/es/web/api/performance/memory/index.md similarity index 100% rename from files/es/web/api/performance/memory/index.html rename to files/es/web/api/performance/memory/index.md diff --git a/files/es/web/api/performance/navigation/index.html b/files/es/web/api/performance/navigation/index.md similarity index 100% rename from files/es/web/api/performance/navigation/index.html rename to files/es/web/api/performance/navigation/index.md diff --git a/files/es/web/api/performance/now/index.html b/files/es/web/api/performance/now/index.md similarity index 100% rename from files/es/web/api/performance/now/index.html rename to files/es/web/api/performance/now/index.md diff --git a/files/es/web/api/performance/timeorigin/index.html b/files/es/web/api/performance/timeorigin/index.md similarity index 100% rename from files/es/web/api/performance/timeorigin/index.html rename to files/es/web/api/performance/timeorigin/index.md diff --git a/files/es/web/api/performance/timing/index.html b/files/es/web/api/performance/timing/index.md similarity index 100% rename from files/es/web/api/performance/timing/index.html rename to files/es/web/api/performance/timing/index.md diff --git a/files/es/web/api/pointer_lock_api/index.html b/files/es/web/api/pointer_lock_api/index.md similarity index 100% rename from files/es/web/api/pointer_lock_api/index.html rename to files/es/web/api/pointer_lock_api/index.md diff --git a/files/es/web/api/push_api/index.html b/files/es/web/api/push_api/index.md similarity index 100% rename from files/es/web/api/push_api/index.html rename to files/es/web/api/push_api/index.md diff --git a/files/es/web/api/pushmanager/index.html b/files/es/web/api/pushmanager/index.md similarity index 100% rename from files/es/web/api/pushmanager/index.html rename to files/es/web/api/pushmanager/index.md diff --git a/files/es/web/api/pushmanager/supportedcontentencodings/index.html b/files/es/web/api/pushmanager/supportedcontentencodings/index.md similarity index 100% rename from files/es/web/api/pushmanager/supportedcontentencodings/index.html rename to files/es/web/api/pushmanager/supportedcontentencodings/index.md diff --git a/files/es/web/api/range/collapsed/index.html b/files/es/web/api/range/collapsed/index.md similarity index 100% rename from files/es/web/api/range/collapsed/index.html rename to files/es/web/api/range/collapsed/index.md diff --git a/files/es/web/api/range/commonancestorcontainer/index.html b/files/es/web/api/range/commonancestorcontainer/index.md similarity index 100% rename from files/es/web/api/range/commonancestorcontainer/index.html rename to files/es/web/api/range/commonancestorcontainer/index.md diff --git a/files/es/web/api/range/getclientrects/index.html b/files/es/web/api/range/getclientrects/index.md similarity index 100% rename from files/es/web/api/range/getclientrects/index.html rename to files/es/web/api/range/getclientrects/index.md diff --git a/files/es/web/api/range/index.html b/files/es/web/api/range/index.md similarity index 100% rename from files/es/web/api/range/index.html rename to files/es/web/api/range/index.md diff --git a/files/es/web/api/range/setstart/index.html b/files/es/web/api/range/setstart/index.md similarity index 100% rename from files/es/web/api/range/setstart/index.html rename to files/es/web/api/range/setstart/index.md diff --git a/files/es/web/api/request/headers/index.html b/files/es/web/api/request/headers/index.md similarity index 100% rename from files/es/web/api/request/headers/index.html rename to files/es/web/api/request/headers/index.md diff --git a/files/es/web/api/request/index.html b/files/es/web/api/request/index.md similarity index 100% rename from files/es/web/api/request/index.html rename to files/es/web/api/request/index.md diff --git a/files/es/web/api/response/ok/index.html b/files/es/web/api/response/ok/index.md similarity index 100% rename from files/es/web/api/response/ok/index.html rename to files/es/web/api/response/ok/index.md diff --git a/files/es/web/api/response/response/index.html b/files/es/web/api/response/response/index.md similarity index 100% rename from files/es/web/api/response/response/index.html rename to files/es/web/api/response/response/index.md diff --git a/files/es/web/api/response/status/index.html b/files/es/web/api/response/status/index.md similarity index 100% rename from files/es/web/api/response/status/index.html rename to files/es/web/api/response/status/index.md diff --git a/files/es/web/api/rtcpeerconnection/cantrickleicecandidates/index.html b/files/es/web/api/rtcpeerconnection/cantrickleicecandidates/index.md similarity index 100% rename from files/es/web/api/rtcpeerconnection/cantrickleicecandidates/index.html rename to files/es/web/api/rtcpeerconnection/cantrickleicecandidates/index.md diff --git a/files/es/web/api/rtcrtpreceiver/index.html b/files/es/web/api/rtcrtpreceiver/index.md similarity index 100% rename from files/es/web/api/rtcrtpreceiver/index.html rename to files/es/web/api/rtcrtpreceiver/index.md diff --git a/files/es/web/api/selection/addrange/index.html b/files/es/web/api/selection/addrange/index.md similarity index 100% rename from files/es/web/api/selection/addrange/index.html rename to files/es/web/api/selection/addrange/index.md diff --git a/files/es/web/api/selection/anchornode/index.html b/files/es/web/api/selection/anchornode/index.md similarity index 100% rename from files/es/web/api/selection/anchornode/index.html rename to files/es/web/api/selection/anchornode/index.md diff --git a/files/es/web/api/selection/anchoroffset/index.html b/files/es/web/api/selection/anchoroffset/index.md similarity index 100% rename from files/es/web/api/selection/anchoroffset/index.html rename to files/es/web/api/selection/anchoroffset/index.md diff --git a/files/es/web/api/selection/collapse/index.html b/files/es/web/api/selection/collapse/index.md similarity index 100% rename from files/es/web/api/selection/collapse/index.html rename to files/es/web/api/selection/collapse/index.md diff --git a/files/es/web/api/selection/collapsetoend/index.html b/files/es/web/api/selection/collapsetoend/index.md similarity index 100% rename from files/es/web/api/selection/collapsetoend/index.html rename to files/es/web/api/selection/collapsetoend/index.md diff --git a/files/es/web/api/selection/collapsetostart/index.html b/files/es/web/api/selection/collapsetostart/index.md similarity index 100% rename from files/es/web/api/selection/collapsetostart/index.html rename to files/es/web/api/selection/collapsetostart/index.md diff --git a/files/es/web/api/selection/deletefromdocument/index.html b/files/es/web/api/selection/deletefromdocument/index.md similarity index 100% rename from files/es/web/api/selection/deletefromdocument/index.html rename to files/es/web/api/selection/deletefromdocument/index.md diff --git a/files/es/web/api/selection/extend/index.html b/files/es/web/api/selection/extend/index.md similarity index 100% rename from files/es/web/api/selection/extend/index.html rename to files/es/web/api/selection/extend/index.md diff --git a/files/es/web/api/selection/focusnode/index.html b/files/es/web/api/selection/focusnode/index.md similarity index 100% rename from files/es/web/api/selection/focusnode/index.html rename to files/es/web/api/selection/focusnode/index.md diff --git a/files/es/web/api/selection/focusoffset/index.html b/files/es/web/api/selection/focusoffset/index.md similarity index 100% rename from files/es/web/api/selection/focusoffset/index.html rename to files/es/web/api/selection/focusoffset/index.md diff --git a/files/es/web/api/selection/getrangeat/index.html b/files/es/web/api/selection/getrangeat/index.md similarity index 100% rename from files/es/web/api/selection/getrangeat/index.html rename to files/es/web/api/selection/getrangeat/index.md diff --git a/files/es/web/api/selection/index.html b/files/es/web/api/selection/index.md similarity index 100% rename from files/es/web/api/selection/index.html rename to files/es/web/api/selection/index.md diff --git a/files/es/web/api/selection/iscollapsed/index.html b/files/es/web/api/selection/iscollapsed/index.md similarity index 100% rename from files/es/web/api/selection/iscollapsed/index.html rename to files/es/web/api/selection/iscollapsed/index.md diff --git a/files/es/web/api/selection/rangecount/index.html b/files/es/web/api/selection/rangecount/index.md similarity index 100% rename from files/es/web/api/selection/rangecount/index.html rename to files/es/web/api/selection/rangecount/index.md diff --git a/files/es/web/api/selection/removeallranges/index.html b/files/es/web/api/selection/removeallranges/index.md similarity index 100% rename from files/es/web/api/selection/removeallranges/index.html rename to files/es/web/api/selection/removeallranges/index.md diff --git a/files/es/web/api/selection/removerange/index.html b/files/es/web/api/selection/removerange/index.md similarity index 100% rename from files/es/web/api/selection/removerange/index.html rename to files/es/web/api/selection/removerange/index.md diff --git a/files/es/web/api/selection/selectallchildren/index.html b/files/es/web/api/selection/selectallchildren/index.md similarity index 100% rename from files/es/web/api/selection/selectallchildren/index.html rename to files/es/web/api/selection/selectallchildren/index.md diff --git a/files/es/web/api/selection/tostring/index.html b/files/es/web/api/selection/tostring/index.md similarity index 100% rename from files/es/web/api/selection/tostring/index.html rename to files/es/web/api/selection/tostring/index.md diff --git a/files/es/web/api/server-sent_events/using_server-sent_events/index.html b/files/es/web/api/server-sent_events/using_server-sent_events/index.md similarity index 100% rename from files/es/web/api/server-sent_events/using_server-sent_events/index.html rename to files/es/web/api/server-sent_events/using_server-sent_events/index.md diff --git a/files/es/web/api/service_worker_api/index.html b/files/es/web/api/service_worker_api/index.md similarity index 100% rename from files/es/web/api/service_worker_api/index.html rename to files/es/web/api/service_worker_api/index.md diff --git a/files/es/web/api/serviceworkercontainer/index.html b/files/es/web/api/serviceworkercontainer/index.md similarity index 100% rename from files/es/web/api/serviceworkercontainer/index.html rename to files/es/web/api/serviceworkercontainer/index.md diff --git a/files/es/web/api/serviceworkercontainer/register/index.html b/files/es/web/api/serviceworkercontainer/register/index.md similarity index 100% rename from files/es/web/api/serviceworkercontainer/register/index.html rename to files/es/web/api/serviceworkercontainer/register/index.md diff --git a/files/es/web/api/settimeout/index.html b/files/es/web/api/settimeout/index.md similarity index 100% rename from files/es/web/api/settimeout/index.html rename to files/es/web/api/settimeout/index.md diff --git a/files/es/web/api/storage/clear/index.html b/files/es/web/api/storage/clear/index.md similarity index 100% rename from files/es/web/api/storage/clear/index.html rename to files/es/web/api/storage/clear/index.md diff --git a/files/es/web/api/storage/getitem/index.html b/files/es/web/api/storage/getitem/index.md similarity index 100% rename from files/es/web/api/storage/getitem/index.html rename to files/es/web/api/storage/getitem/index.md diff --git a/files/es/web/api/storage/index.html b/files/es/web/api/storage/index.md similarity index 100% rename from files/es/web/api/storage/index.html rename to files/es/web/api/storage/index.md diff --git a/files/es/web/api/storage/length/index.html b/files/es/web/api/storage/length/index.md similarity index 100% rename from files/es/web/api/storage/length/index.html rename to files/es/web/api/storage/length/index.md diff --git a/files/es/web/api/storage/removeitem/index.html b/files/es/web/api/storage/removeitem/index.md similarity index 100% rename from files/es/web/api/storage/removeitem/index.html rename to files/es/web/api/storage/removeitem/index.md diff --git a/files/es/web/api/storage/setitem/index.html b/files/es/web/api/storage/setitem/index.md similarity index 100% rename from files/es/web/api/storage/setitem/index.html rename to files/es/web/api/storage/setitem/index.md diff --git a/files/es/web/api/storagemanager/estimate/index.html b/files/es/web/api/storagemanager/estimate/index.md similarity index 100% rename from files/es/web/api/storagemanager/estimate/index.html rename to files/es/web/api/storagemanager/estimate/index.md diff --git a/files/es/web/api/storagemanager/index.html b/files/es/web/api/storagemanager/index.md similarity index 100% rename from files/es/web/api/storagemanager/index.html rename to files/es/web/api/storagemanager/index.md diff --git a/files/es/web/api/storagemanager/persist/index.html b/files/es/web/api/storagemanager/persist/index.md similarity index 100% rename from files/es/web/api/storagemanager/persist/index.html rename to files/es/web/api/storagemanager/persist/index.md diff --git a/files/es/web/api/storagemanager/persisted/index.html b/files/es/web/api/storagemanager/persisted/index.md similarity index 100% rename from files/es/web/api/storagemanager/persisted/index.html rename to files/es/web/api/storagemanager/persisted/index.md diff --git a/files/es/web/api/stylesheet/disabled/index.html b/files/es/web/api/stylesheet/disabled/index.md similarity index 100% rename from files/es/web/api/stylesheet/disabled/index.html rename to files/es/web/api/stylesheet/disabled/index.md diff --git a/files/es/web/api/stylesheet/href/index.html b/files/es/web/api/stylesheet/href/index.md similarity index 100% rename from files/es/web/api/stylesheet/href/index.html rename to files/es/web/api/stylesheet/href/index.md diff --git a/files/es/web/api/stylesheet/index.html b/files/es/web/api/stylesheet/index.md similarity index 100% rename from files/es/web/api/stylesheet/index.html rename to files/es/web/api/stylesheet/index.md diff --git a/files/es/web/api/stylesheet/media/index.html b/files/es/web/api/stylesheet/media/index.md similarity index 100% rename from files/es/web/api/stylesheet/media/index.html rename to files/es/web/api/stylesheet/media/index.md diff --git a/files/es/web/api/stylesheet/parentstylesheet/index.html b/files/es/web/api/stylesheet/parentstylesheet/index.md similarity index 100% rename from files/es/web/api/stylesheet/parentstylesheet/index.html rename to files/es/web/api/stylesheet/parentstylesheet/index.md diff --git a/files/es/web/api/stylesheet/title/index.html b/files/es/web/api/stylesheet/title/index.md similarity index 100% rename from files/es/web/api/stylesheet/title/index.html rename to files/es/web/api/stylesheet/title/index.md diff --git a/files/es/web/api/stylesheet/type/index.html b/files/es/web/api/stylesheet/type/index.md similarity index 100% rename from files/es/web/api/stylesheet/type/index.html rename to files/es/web/api/stylesheet/type/index.md diff --git a/files/es/web/api/subtlecrypto/digest/index.html b/files/es/web/api/subtlecrypto/digest/index.md similarity index 100% rename from files/es/web/api/subtlecrypto/digest/index.html rename to files/es/web/api/subtlecrypto/digest/index.md diff --git a/files/es/web/api/subtlecrypto/index.html b/files/es/web/api/subtlecrypto/index.md similarity index 100% rename from files/es/web/api/subtlecrypto/index.html rename to files/es/web/api/subtlecrypto/index.md diff --git a/files/es/web/api/svgpoint/index.html b/files/es/web/api/svgpoint/index.md similarity index 100% rename from files/es/web/api/svgpoint/index.html rename to files/es/web/api/svgpoint/index.md diff --git a/files/es/web/api/texttrack/cuechange_event/index.html b/files/es/web/api/texttrack/cuechange_event/index.md similarity index 100% rename from files/es/web/api/texttrack/cuechange_event/index.html rename to files/es/web/api/texttrack/cuechange_event/index.md diff --git a/files/es/web/api/touch_events/index.html b/files/es/web/api/touch_events/index.md similarity index 100% rename from files/es/web/api/touch_events/index.html rename to files/es/web/api/touch_events/index.md diff --git a/files/es/web/api/touchevent/index.html b/files/es/web/api/touchevent/index.md similarity index 100% rename from files/es/web/api/touchevent/index.html rename to files/es/web/api/touchevent/index.md diff --git a/files/es/web/api/uievent/which/index.html b/files/es/web/api/uievent/which/index.md similarity index 100% rename from files/es/web/api/uievent/which/index.html rename to files/es/web/api/uievent/which/index.md diff --git a/files/es/web/api/url/createobjecturl/index.html b/files/es/web/api/url/createobjecturl/index.md similarity index 100% rename from files/es/web/api/url/createobjecturl/index.html rename to files/es/web/api/url/createobjecturl/index.md diff --git a/files/es/web/api/url/host/index.html b/files/es/web/api/url/host/index.md similarity index 100% rename from files/es/web/api/url/host/index.html rename to files/es/web/api/url/host/index.md diff --git a/files/es/web/api/url/index.html b/files/es/web/api/url/index.md similarity index 100% rename from files/es/web/api/url/index.html rename to files/es/web/api/url/index.md diff --git a/files/es/web/api/url/port/index.html b/files/es/web/api/url/port/index.md similarity index 100% rename from files/es/web/api/url/port/index.html rename to files/es/web/api/url/port/index.md diff --git a/files/es/web/api/url/url/index.html b/files/es/web/api/url/url/index.md similarity index 100% rename from files/es/web/api/url/url/index.html rename to files/es/web/api/url/url/index.md diff --git a/files/es/web/api/urlsearchparams/index.html b/files/es/web/api/urlsearchparams/index.md similarity index 100% rename from files/es/web/api/urlsearchparams/index.html rename to files/es/web/api/urlsearchparams/index.md diff --git a/files/es/web/api/urlsearchparams/urlsearchparams/index.html b/files/es/web/api/urlsearchparams/urlsearchparams/index.md similarity index 100% rename from files/es/web/api/urlsearchparams/urlsearchparams/index.html rename to files/es/web/api/urlsearchparams/urlsearchparams/index.md diff --git a/files/es/web/api/vibration_api/index.html b/files/es/web/api/vibration_api/index.md similarity index 100% rename from files/es/web/api/vibration_api/index.html rename to files/es/web/api/vibration_api/index.md diff --git a/files/es/web/api/web_audio_api/index.html b/files/es/web/api/web_audio_api/index.md similarity index 100% rename from files/es/web/api/web_audio_api/index.html rename to files/es/web/api/web_audio_api/index.md diff --git a/files/es/web/api/web_crypto_api/index.html b/files/es/web/api/web_crypto_api/index.md similarity index 100% rename from files/es/web/api/web_crypto_api/index.html rename to files/es/web/api/web_crypto_api/index.md diff --git a/files/es/web/api/web_speech_api/index.html b/files/es/web/api/web_speech_api/index.md similarity index 100% rename from files/es/web/api/web_speech_api/index.html rename to files/es/web/api/web_speech_api/index.md diff --git a/files/es/web/api/web_speech_api/using_the_web_speech_api/index.html b/files/es/web/api/web_speech_api/using_the_web_speech_api/index.md similarity index 100% rename from files/es/web/api/web_speech_api/using_the_web_speech_api/index.html rename to files/es/web/api/web_speech_api/using_the_web_speech_api/index.md diff --git a/files/es/web/api/web_storage_api/index.html b/files/es/web/api/web_storage_api/index.md similarity index 100% rename from files/es/web/api/web_storage_api/index.html rename to files/es/web/api/web_storage_api/index.md diff --git a/files/es/web/api/web_storage_api/using_the_web_storage_api/index.html b/files/es/web/api/web_storage_api/using_the_web_storage_api/index.md similarity index 100% rename from files/es/web/api/web_storage_api/using_the_web_storage_api/index.html rename to files/es/web/api/web_storage_api/using_the_web_storage_api/index.md diff --git a/files/es/web/api/web_workers_api/index.html b/files/es/web/api/web_workers_api/index.md similarity index 100% rename from files/es/web/api/web_workers_api/index.html rename to files/es/web/api/web_workers_api/index.md diff --git a/files/es/web/api/web_workers_api/using_web_workers/index.html b/files/es/web/api/web_workers_api/using_web_workers/index.md similarity index 100% rename from files/es/web/api/web_workers_api/using_web_workers/index.html rename to files/es/web/api/web_workers_api/using_web_workers/index.md diff --git a/files/es/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.html b/files/es/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.md similarity index 100% rename from files/es/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.html rename to files/es/web/api/webgl_api/tutorial/adding_2d_content_to_a_webgl_context/index.md diff --git a/files/es/web/api/webgl_api/tutorial/animating_textures_in_webgl/index.html b/files/es/web/api/webgl_api/tutorial/animating_textures_in_webgl/index.md similarity index 100% rename from files/es/web/api/webgl_api/tutorial/animating_textures_in_webgl/index.html rename to files/es/web/api/webgl_api/tutorial/animating_textures_in_webgl/index.md diff --git a/files/es/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.html b/files/es/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.md similarity index 100% rename from files/es/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.html rename to files/es/web/api/webgl_api/tutorial/creating_3d_objects_using_webgl/index.md diff --git a/files/es/web/api/webgl_api/tutorial/getting_started_with_webgl/index.html b/files/es/web/api/webgl_api/tutorial/getting_started_with_webgl/index.md similarity index 100% rename from files/es/web/api/webgl_api/tutorial/getting_started_with_webgl/index.html rename to files/es/web/api/webgl_api/tutorial/getting_started_with_webgl/index.md diff --git a/files/es/web/api/webgl_api/tutorial/index.html b/files/es/web/api/webgl_api/tutorial/index.md similarity index 100% rename from files/es/web/api/webgl_api/tutorial/index.html rename to files/es/web/api/webgl_api/tutorial/index.md diff --git a/files/es/web/api/webgl_api/tutorial/using_shaders_to_apply_color_in_webgl/index.html b/files/es/web/api/webgl_api/tutorial/using_shaders_to_apply_color_in_webgl/index.md similarity index 100% rename from files/es/web/api/webgl_api/tutorial/using_shaders_to_apply_color_in_webgl/index.html rename to files/es/web/api/webgl_api/tutorial/using_shaders_to_apply_color_in_webgl/index.md diff --git a/files/es/web/api/webrtc_api/protocols/index.html b/files/es/web/api/webrtc_api/protocols/index.md similarity index 100% rename from files/es/web/api/webrtc_api/protocols/index.html rename to files/es/web/api/webrtc_api/protocols/index.md diff --git a/files/es/web/api/webrtc_api/session_lifetime/index.html b/files/es/web/api/webrtc_api/session_lifetime/index.md similarity index 100% rename from files/es/web/api/webrtc_api/session_lifetime/index.html rename to files/es/web/api/webrtc_api/session_lifetime/index.md diff --git a/files/es/web/api/websocket/close_event/index.html b/files/es/web/api/websocket/close_event/index.md similarity index 100% rename from files/es/web/api/websocket/close_event/index.html rename to files/es/web/api/websocket/close_event/index.md diff --git a/files/es/web/api/websocket/error_event/index.html b/files/es/web/api/websocket/error_event/index.md similarity index 100% rename from files/es/web/api/websocket/error_event/index.html rename to files/es/web/api/websocket/error_event/index.md diff --git a/files/es/web/api/websockets_api/writing_websocket_client_applications/index.html b/files/es/web/api/websockets_api/writing_websocket_client_applications/index.md similarity index 100% rename from files/es/web/api/websockets_api/writing_websocket_client_applications/index.html rename to files/es/web/api/websockets_api/writing_websocket_client_applications/index.md diff --git a/files/es/web/api/websockets_api/writing_websocket_server/index.html b/files/es/web/api/websockets_api/writing_websocket_server/index.md similarity index 100% rename from files/es/web/api/websockets_api/writing_websocket_server/index.html rename to files/es/web/api/websockets_api/writing_websocket_server/index.md diff --git a/files/es/web/api/websockets_api/writing_websocket_servers/index.html b/files/es/web/api/websockets_api/writing_websocket_servers/index.md similarity index 100% rename from files/es/web/api/websockets_api/writing_websocket_servers/index.html rename to files/es/web/api/websockets_api/writing_websocket_servers/index.md diff --git a/files/es/web/api/webvr_api/index.html b/files/es/web/api/webvr_api/index.md similarity index 100% rename from files/es/web/api/webvr_api/index.html rename to files/es/web/api/webvr_api/index.md diff --git a/files/es/web/api/webvr_api/using_the_webvr_api/index.html b/files/es/web/api/webvr_api/using_the_webvr_api/index.md similarity index 100% rename from files/es/web/api/webvr_api/using_the_webvr_api/index.html rename to files/es/web/api/webvr_api/using_the_webvr_api/index.md diff --git a/files/es/web/api/window/beforeunload_event/index.html b/files/es/web/api/window/beforeunload_event/index.md similarity index 100% rename from files/es/web/api/window/beforeunload_event/index.html rename to files/es/web/api/window/beforeunload_event/index.md diff --git a/files/es/web/api/window/cancelanimationframe/index.html b/files/es/web/api/window/cancelanimationframe/index.md similarity index 100% rename from files/es/web/api/window/cancelanimationframe/index.html rename to files/es/web/api/window/cancelanimationframe/index.md diff --git a/files/es/web/api/window/close/index.html b/files/es/web/api/window/close/index.md similarity index 100% rename from files/es/web/api/window/close/index.html rename to files/es/web/api/window/close/index.md diff --git a/files/es/web/api/window/closed/index.html b/files/es/web/api/window/closed/index.md similarity index 100% rename from files/es/web/api/window/closed/index.html rename to files/es/web/api/window/closed/index.md diff --git a/files/es/web/api/window/confirm/index.html b/files/es/web/api/window/confirm/index.md similarity index 100% rename from files/es/web/api/window/confirm/index.html rename to files/es/web/api/window/confirm/index.md diff --git a/files/es/web/api/window/devicepixelratio/index.html b/files/es/web/api/window/devicepixelratio/index.md similarity index 100% rename from files/es/web/api/window/devicepixelratio/index.html rename to files/es/web/api/window/devicepixelratio/index.md diff --git a/files/es/web/api/window/dialogarguments/index.html b/files/es/web/api/window/dialogarguments/index.md similarity index 100% rename from files/es/web/api/window/dialogarguments/index.html rename to files/es/web/api/window/dialogarguments/index.md diff --git a/files/es/web/api/window/document/index.html b/files/es/web/api/window/document/index.md similarity index 100% rename from files/es/web/api/window/document/index.html rename to files/es/web/api/window/document/index.md diff --git a/files/es/web/api/window/error_event/index.html b/files/es/web/api/window/error_event/index.md similarity index 100% rename from files/es/web/api/window/error_event/index.html rename to files/es/web/api/window/error_event/index.md diff --git a/files/es/web/api/window/frameelement/index.html b/files/es/web/api/window/frameelement/index.md similarity index 100% rename from files/es/web/api/window/frameelement/index.html rename to files/es/web/api/window/frameelement/index.md diff --git a/files/es/web/api/window/fullscreen/index.html b/files/es/web/api/window/fullscreen/index.md similarity index 100% rename from files/es/web/api/window/fullscreen/index.html rename to files/es/web/api/window/fullscreen/index.md diff --git a/files/es/web/api/window/getcomputedstyle/index.html b/files/es/web/api/window/getcomputedstyle/index.md similarity index 100% rename from files/es/web/api/window/getcomputedstyle/index.html rename to files/es/web/api/window/getcomputedstyle/index.md diff --git a/files/es/web/api/window/getselection/index.html b/files/es/web/api/window/getselection/index.md similarity index 100% rename from files/es/web/api/window/getselection/index.html rename to files/es/web/api/window/getselection/index.md diff --git a/files/es/web/api/window/hashchange_event/index.html b/files/es/web/api/window/hashchange_event/index.md similarity index 100% rename from files/es/web/api/window/hashchange_event/index.html rename to files/es/web/api/window/hashchange_event/index.md diff --git a/files/es/web/api/window/history/index.html b/files/es/web/api/window/history/index.md similarity index 100% rename from files/es/web/api/window/history/index.html rename to files/es/web/api/window/history/index.md diff --git a/files/es/web/api/window/innerheight/index.html b/files/es/web/api/window/innerheight/index.md similarity index 100% rename from files/es/web/api/window/innerheight/index.html rename to files/es/web/api/window/innerheight/index.md diff --git a/files/es/web/api/window/localstorage/index.html b/files/es/web/api/window/localstorage/index.md similarity index 100% rename from files/es/web/api/window/localstorage/index.html rename to files/es/web/api/window/localstorage/index.md diff --git a/files/es/web/api/window/location/index.html b/files/es/web/api/window/location/index.md similarity index 100% rename from files/es/web/api/window/location/index.html rename to files/es/web/api/window/location/index.md diff --git a/files/es/web/api/window/locationbar/index.html b/files/es/web/api/window/locationbar/index.md similarity index 100% rename from files/es/web/api/window/locationbar/index.html rename to files/es/web/api/window/locationbar/index.md diff --git a/files/es/web/api/window/matchmedia/index.html b/files/es/web/api/window/matchmedia/index.md similarity index 100% rename from files/es/web/api/window/matchmedia/index.html rename to files/es/web/api/window/matchmedia/index.md diff --git a/files/es/web/api/window/menubar/index.html b/files/es/web/api/window/menubar/index.md similarity index 100% rename from files/es/web/api/window/menubar/index.html rename to files/es/web/api/window/menubar/index.md diff --git a/files/es/web/api/window/moveby/index.html b/files/es/web/api/window/moveby/index.md similarity index 100% rename from files/es/web/api/window/moveby/index.html rename to files/es/web/api/window/moveby/index.md diff --git a/files/es/web/api/window/navigator/index.html b/files/es/web/api/window/navigator/index.md similarity index 100% rename from files/es/web/api/window/navigator/index.html rename to files/es/web/api/window/navigator/index.md diff --git a/files/es/web/api/window/offline_event/index.html b/files/es/web/api/window/offline_event/index.md similarity index 100% rename from files/es/web/api/window/offline_event/index.html rename to files/es/web/api/window/offline_event/index.md diff --git a/files/es/web/api/window/opener/index.html b/files/es/web/api/window/opener/index.md similarity index 100% rename from files/es/web/api/window/opener/index.html rename to files/es/web/api/window/opener/index.md diff --git a/files/es/web/api/window/outerheight/index.html b/files/es/web/api/window/outerheight/index.md similarity index 100% rename from files/es/web/api/window/outerheight/index.html rename to files/es/web/api/window/outerheight/index.md diff --git a/files/es/web/api/window/outerwidth/index.html b/files/es/web/api/window/outerwidth/index.md similarity index 100% rename from files/es/web/api/window/outerwidth/index.html rename to files/es/web/api/window/outerwidth/index.md diff --git a/files/es/web/api/window/popstate_event/index.html b/files/es/web/api/window/popstate_event/index.md similarity index 100% rename from files/es/web/api/window/popstate_event/index.html rename to files/es/web/api/window/popstate_event/index.md diff --git a/files/es/web/api/window/print/index.html b/files/es/web/api/window/print/index.md similarity index 100% rename from files/es/web/api/window/print/index.html rename to files/es/web/api/window/print/index.md diff --git a/files/es/web/api/window/prompt/index.html b/files/es/web/api/window/prompt/index.md similarity index 100% rename from files/es/web/api/window/prompt/index.html rename to files/es/web/api/window/prompt/index.md diff --git a/files/es/web/api/window/requestanimationframe/index.html b/files/es/web/api/window/requestanimationframe/index.md similarity index 100% rename from files/es/web/api/window/requestanimationframe/index.html rename to files/es/web/api/window/requestanimationframe/index.md diff --git a/files/es/web/api/window/scrollby/index.html b/files/es/web/api/window/scrollby/index.md similarity index 100% rename from files/es/web/api/window/scrollby/index.html rename to files/es/web/api/window/scrollby/index.md diff --git a/files/es/web/api/window/scrollto/index.html b/files/es/web/api/window/scrollto/index.md similarity index 100% rename from files/es/web/api/window/scrollto/index.html rename to files/es/web/api/window/scrollto/index.md diff --git a/files/es/web/api/window/scrollx/index.html b/files/es/web/api/window/scrollx/index.md similarity index 100% rename from files/es/web/api/window/scrollx/index.html rename to files/es/web/api/window/scrollx/index.md diff --git a/files/es/web/api/window/scrolly/index.html b/files/es/web/api/window/scrolly/index.md similarity index 100% rename from files/es/web/api/window/scrolly/index.html rename to files/es/web/api/window/scrolly/index.md diff --git a/files/es/web/api/window/sessionstorage/index.html b/files/es/web/api/window/sessionstorage/index.md similarity index 100% rename from files/es/web/api/window/sessionstorage/index.html rename to files/es/web/api/window/sessionstorage/index.md diff --git a/files/es/web/api/window/showmodaldialog/index.html b/files/es/web/api/window/showmodaldialog/index.md similarity index 100% rename from files/es/web/api/window/showmodaldialog/index.html rename to files/es/web/api/window/showmodaldialog/index.md diff --git a/files/es/web/api/window/statusbar/index.html b/files/es/web/api/window/statusbar/index.md similarity index 100% rename from files/es/web/api/window/statusbar/index.html rename to files/es/web/api/window/statusbar/index.md diff --git a/files/es/web/api/windoweventhandlers/index.html b/files/es/web/api/windoweventhandlers/index.md similarity index 100% rename from files/es/web/api/windoweventhandlers/index.html rename to files/es/web/api/windoweventhandlers/index.md diff --git a/files/es/web/api/worker/index.html b/files/es/web/api/worker/index.md similarity index 100% rename from files/es/web/api/worker/index.html rename to files/es/web/api/worker/index.md diff --git a/files/es/web/api/worker/terminate/index.html b/files/es/web/api/worker/terminate/index.md similarity index 100% rename from files/es/web/api/worker/terminate/index.html rename to files/es/web/api/worker/terminate/index.md diff --git a/files/es/web/api/xmldocument/async/index.html b/files/es/web/api/xmldocument/async/index.md similarity index 100% rename from files/es/web/api/xmldocument/async/index.html rename to files/es/web/api/xmldocument/async/index.md diff --git a/files/es/web/api/xmlhttprequest/abort/index.html b/files/es/web/api/xmlhttprequest/abort/index.md similarity index 100% rename from files/es/web/api/xmlhttprequest/abort/index.html rename to files/es/web/api/xmlhttprequest/abort/index.md diff --git a/files/es/web/api/xmlhttprequest/loadend_event/index.html b/files/es/web/api/xmlhttprequest/loadend_event/index.md similarity index 100% rename from files/es/web/api/xmlhttprequest/loadend_event/index.html rename to files/es/web/api/xmlhttprequest/loadend_event/index.md diff --git a/files/es/web/api/xmlhttprequest/readystatechange_event/index.html b/files/es/web/api/xmlhttprequest/readystatechange_event/index.md similarity index 100% rename from files/es/web/api/xmlhttprequest/readystatechange_event/index.html rename to files/es/web/api/xmlhttprequest/readystatechange_event/index.md diff --git a/files/es/web/api/xmlhttprequest/responsetext/index.html b/files/es/web/api/xmlhttprequest/responsetext/index.md similarity index 100% rename from files/es/web/api/xmlhttprequest/responsetext/index.html rename to files/es/web/api/xmlhttprequest/responsetext/index.md diff --git a/files/es/web/css/--_star_/index.html b/files/es/web/css/--_star_/index.md similarity index 100% rename from files/es/web/css/--_star_/index.html rename to files/es/web/css/--_star_/index.md diff --git a/files/es/web/css/-moz-context-properties/index.html b/files/es/web/css/-moz-context-properties/index.md similarity index 100% rename from files/es/web/css/-moz-context-properties/index.html rename to files/es/web/css/-moz-context-properties/index.md diff --git a/files/es/web/css/-moz-image-rect/index.html b/files/es/web/css/-moz-image-rect/index.md similarity index 100% rename from files/es/web/css/-moz-image-rect/index.html rename to files/es/web/css/-moz-image-rect/index.md diff --git a/files/es/web/css/-moz-image-region/index.html b/files/es/web/css/-moz-image-region/index.md similarity index 100% rename from files/es/web/css/-moz-image-region/index.html rename to files/es/web/css/-moz-image-region/index.md diff --git a/files/es/web/css/-moz-orient/index.html b/files/es/web/css/-moz-orient/index.md similarity index 100% rename from files/es/web/css/-moz-orient/index.html rename to files/es/web/css/-moz-orient/index.md diff --git a/files/es/web/css/-moz-outline-radius-bottomleft/index.html b/files/es/web/css/-moz-outline-radius-bottomleft/index.md similarity index 100% rename from files/es/web/css/-moz-outline-radius-bottomleft/index.html rename to files/es/web/css/-moz-outline-radius-bottomleft/index.md diff --git a/files/es/web/css/-moz-outline-radius-bottomright/index.html b/files/es/web/css/-moz-outline-radius-bottomright/index.md similarity index 100% rename from files/es/web/css/-moz-outline-radius-bottomright/index.html rename to files/es/web/css/-moz-outline-radius-bottomright/index.md diff --git a/files/es/web/css/-moz-outline-radius-topleft/index.html b/files/es/web/css/-moz-outline-radius-topleft/index.md similarity index 100% rename from files/es/web/css/-moz-outline-radius-topleft/index.html rename to files/es/web/css/-moz-outline-radius-topleft/index.md diff --git a/files/es/web/css/-moz-outline-radius-topright/index.html b/files/es/web/css/-moz-outline-radius-topright/index.md similarity index 100% rename from files/es/web/css/-moz-outline-radius-topright/index.html rename to files/es/web/css/-moz-outline-radius-topright/index.md diff --git a/files/es/web/css/-moz-outline-radius/index.html b/files/es/web/css/-moz-outline-radius/index.md similarity index 100% rename from files/es/web/css/-moz-outline-radius/index.html rename to files/es/web/css/-moz-outline-radius/index.md diff --git a/files/es/web/css/-moz-user-focus/index.html b/files/es/web/css/-moz-user-focus/index.md similarity index 100% rename from files/es/web/css/-moz-user-focus/index.html rename to files/es/web/css/-moz-user-focus/index.md diff --git a/files/es/web/css/-moz-user-input/index.html b/files/es/web/css/-moz-user-input/index.md similarity index 100% rename from files/es/web/css/-moz-user-input/index.html rename to files/es/web/css/-moz-user-input/index.md diff --git a/files/es/web/css/-webkit-border-before/index.html b/files/es/web/css/-webkit-border-before/index.md similarity index 100% rename from files/es/web/css/-webkit-border-before/index.html rename to files/es/web/css/-webkit-border-before/index.md diff --git a/files/es/web/css/-webkit-box-reflect/index.html b/files/es/web/css/-webkit-box-reflect/index.md similarity index 100% rename from files/es/web/css/-webkit-box-reflect/index.html rename to files/es/web/css/-webkit-box-reflect/index.md diff --git a/files/es/web/css/-webkit-mask-attachment/index.html b/files/es/web/css/-webkit-mask-attachment/index.md similarity index 100% rename from files/es/web/css/-webkit-mask-attachment/index.html rename to files/es/web/css/-webkit-mask-attachment/index.md diff --git a/files/es/web/css/-webkit-mask-box-image/index.html b/files/es/web/css/-webkit-mask-box-image/index.md similarity index 100% rename from files/es/web/css/-webkit-mask-box-image/index.html rename to files/es/web/css/-webkit-mask-box-image/index.md diff --git a/files/es/web/css/-webkit-mask-composite/index.html b/files/es/web/css/-webkit-mask-composite/index.md similarity index 100% rename from files/es/web/css/-webkit-mask-composite/index.html rename to files/es/web/css/-webkit-mask-composite/index.md diff --git a/files/es/web/css/-webkit-mask-position-x/index.html b/files/es/web/css/-webkit-mask-position-x/index.md similarity index 100% rename from files/es/web/css/-webkit-mask-position-x/index.html rename to files/es/web/css/-webkit-mask-position-x/index.md diff --git a/files/es/web/css/-webkit-mask-position-y/index.html b/files/es/web/css/-webkit-mask-position-y/index.md similarity index 100% rename from files/es/web/css/-webkit-mask-position-y/index.html rename to files/es/web/css/-webkit-mask-position-y/index.md diff --git a/files/es/web/css/-webkit-mask-repeat-x/index.html b/files/es/web/css/-webkit-mask-repeat-x/index.md similarity index 100% rename from files/es/web/css/-webkit-mask-repeat-x/index.html rename to files/es/web/css/-webkit-mask-repeat-x/index.md diff --git a/files/es/web/css/-webkit-overflow-scrolling/index.html b/files/es/web/css/-webkit-overflow-scrolling/index.md similarity index 100% rename from files/es/web/css/-webkit-overflow-scrolling/index.html rename to files/es/web/css/-webkit-overflow-scrolling/index.md diff --git a/files/es/web/css/-webkit-tap-highlight-color/index.html b/files/es/web/css/-webkit-tap-highlight-color/index.md similarity index 100% rename from files/es/web/css/-webkit-tap-highlight-color/index.html rename to files/es/web/css/-webkit-tap-highlight-color/index.md diff --git a/files/es/web/css/-webkit-text-fill-color/index.html b/files/es/web/css/-webkit-text-fill-color/index.md similarity index 100% rename from files/es/web/css/-webkit-text-fill-color/index.html rename to files/es/web/css/-webkit-text-fill-color/index.md diff --git a/files/es/web/css/-webkit-text-stroke-color/index.html b/files/es/web/css/-webkit-text-stroke-color/index.md similarity index 100% rename from files/es/web/css/-webkit-text-stroke-color/index.html rename to files/es/web/css/-webkit-text-stroke-color/index.md diff --git a/files/es/web/css/-webkit-text-stroke-width/index.html b/files/es/web/css/-webkit-text-stroke-width/index.md similarity index 100% rename from files/es/web/css/-webkit-text-stroke-width/index.html rename to files/es/web/css/-webkit-text-stroke-width/index.md diff --git a/files/es/web/css/-webkit-text-stroke/index.html b/files/es/web/css/-webkit-text-stroke/index.md similarity index 100% rename from files/es/web/css/-webkit-text-stroke/index.html rename to files/es/web/css/-webkit-text-stroke/index.md diff --git a/files/es/web/css/-webkit-touch-callout/index.html b/files/es/web/css/-webkit-touch-callout/index.md similarity index 100% rename from files/es/web/css/-webkit-touch-callout/index.html rename to files/es/web/css/-webkit-touch-callout/index.md diff --git a/files/es/web/css/@charset/index.html b/files/es/web/css/@charset/index.md similarity index 100% rename from files/es/web/css/@charset/index.html rename to files/es/web/css/@charset/index.md diff --git a/files/es/web/css/@counter-style/additive-symbols/index.html b/files/es/web/css/@counter-style/additive-symbols/index.md similarity index 100% rename from files/es/web/css/@counter-style/additive-symbols/index.html rename to files/es/web/css/@counter-style/additive-symbols/index.md diff --git a/files/es/web/css/@counter-style/index.html b/files/es/web/css/@counter-style/index.md similarity index 100% rename from files/es/web/css/@counter-style/index.html rename to files/es/web/css/@counter-style/index.md diff --git a/files/es/web/css/@counter-style/symbols/index.html b/files/es/web/css/@counter-style/symbols/index.md similarity index 100% rename from files/es/web/css/@counter-style/symbols/index.html rename to files/es/web/css/@counter-style/symbols/index.md diff --git a/files/es/web/css/@font-face/font-display/index.html b/files/es/web/css/@font-face/font-display/index.md similarity index 100% rename from files/es/web/css/@font-face/font-display/index.html rename to files/es/web/css/@font-face/font-display/index.md diff --git a/files/es/web/css/@font-face/font-family/index.html b/files/es/web/css/@font-face/font-family/index.md similarity index 100% rename from files/es/web/css/@font-face/font-family/index.html rename to files/es/web/css/@font-face/font-family/index.md diff --git a/files/es/web/css/@font-face/src/index.html b/files/es/web/css/@font-face/src/index.md similarity index 100% rename from files/es/web/css/@font-face/src/index.html rename to files/es/web/css/@font-face/src/index.md diff --git a/files/es/web/css/@font-feature-values/index.html b/files/es/web/css/@font-feature-values/index.md similarity index 100% rename from files/es/web/css/@font-feature-values/index.html rename to files/es/web/css/@font-feature-values/index.md diff --git a/files/es/web/css/@keyframes/index.html b/files/es/web/css/@keyframes/index.md similarity index 100% rename from files/es/web/css/@keyframes/index.html rename to files/es/web/css/@keyframes/index.md diff --git a/files/es/web/css/@media/color/index.html b/files/es/web/css/@media/color/index.md similarity index 100% rename from files/es/web/css/@media/color/index.html rename to files/es/web/css/@media/color/index.md diff --git a/files/es/web/css/@media/display-mode/index.html b/files/es/web/css/@media/display-mode/index.md similarity index 100% rename from files/es/web/css/@media/display-mode/index.html rename to files/es/web/css/@media/display-mode/index.md diff --git a/files/es/web/css/@media/height/index.html b/files/es/web/css/@media/height/index.md similarity index 100% rename from files/es/web/css/@media/height/index.html rename to files/es/web/css/@media/height/index.md diff --git a/files/es/web/css/@media/hover/index.html b/files/es/web/css/@media/hover/index.md similarity index 100% rename from files/es/web/css/@media/hover/index.html rename to files/es/web/css/@media/hover/index.md diff --git a/files/es/web/css/@media/index.html b/files/es/web/css/@media/index.md similarity index 100% rename from files/es/web/css/@media/index.html rename to files/es/web/css/@media/index.md diff --git a/files/es/web/css/@media/pointer/index.html b/files/es/web/css/@media/pointer/index.md similarity index 100% rename from files/es/web/css/@media/pointer/index.html rename to files/es/web/css/@media/pointer/index.md diff --git a/files/es/web/css/@media/resolution/index.html b/files/es/web/css/@media/resolution/index.md similarity index 100% rename from files/es/web/css/@media/resolution/index.html rename to files/es/web/css/@media/resolution/index.md diff --git a/files/es/web/css/@media/width/index.html b/files/es/web/css/@media/width/index.md similarity index 100% rename from files/es/web/css/@media/width/index.html rename to files/es/web/css/@media/width/index.md diff --git a/files/es/web/css/@namespace/index.html b/files/es/web/css/@namespace/index.md similarity index 100% rename from files/es/web/css/@namespace/index.html rename to files/es/web/css/@namespace/index.md diff --git a/files/es/web/css/@page/index.html b/files/es/web/css/@page/index.md similarity index 100% rename from files/es/web/css/@page/index.html rename to files/es/web/css/@page/index.md diff --git a/files/es/web/css/@supports/index.html b/files/es/web/css/@supports/index.md similarity index 100% rename from files/es/web/css/@supports/index.html rename to files/es/web/css/@supports/index.md diff --git a/files/es/web/css/_colon_-moz-broken/index.html b/files/es/web/css/_colon_-moz-broken/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-broken/index.html rename to files/es/web/css/_colon_-moz-broken/index.md diff --git a/files/es/web/css/_colon_-moz-drag-over/index.html b/files/es/web/css/_colon_-moz-drag-over/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-drag-over/index.html rename to files/es/web/css/_colon_-moz-drag-over/index.md diff --git a/files/es/web/css/_colon_-moz-first-node/index.html b/files/es/web/css/_colon_-moz-first-node/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-first-node/index.html rename to files/es/web/css/_colon_-moz-first-node/index.md diff --git a/files/es/web/css/_colon_-moz-focusring/index.html b/files/es/web/css/_colon_-moz-focusring/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-focusring/index.html rename to files/es/web/css/_colon_-moz-focusring/index.md diff --git a/files/es/web/css/_colon_-moz-handler-blocked/index.html b/files/es/web/css/_colon_-moz-handler-blocked/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-handler-blocked/index.html rename to files/es/web/css/_colon_-moz-handler-blocked/index.md diff --git a/files/es/web/css/_colon_-moz-handler-crashed/index.html b/files/es/web/css/_colon_-moz-handler-crashed/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-handler-crashed/index.html rename to files/es/web/css/_colon_-moz-handler-crashed/index.md diff --git a/files/es/web/css/_colon_-moz-handler-disabled/index.html b/files/es/web/css/_colon_-moz-handler-disabled/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-handler-disabled/index.html rename to files/es/web/css/_colon_-moz-handler-disabled/index.md diff --git a/files/es/web/css/_colon_-moz-last-node/index.html b/files/es/web/css/_colon_-moz-last-node/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-last-node/index.html rename to files/es/web/css/_colon_-moz-last-node/index.md diff --git a/files/es/web/css/_colon_-moz-list-number/index.html b/files/es/web/css/_colon_-moz-list-number/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-list-number/index.html rename to files/es/web/css/_colon_-moz-list-number/index.md diff --git a/files/es/web/css/_colon_-moz-loading/index.html b/files/es/web/css/_colon_-moz-loading/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-loading/index.html rename to files/es/web/css/_colon_-moz-loading/index.md diff --git a/files/es/web/css/_colon_-moz-locale-dir(ltr)/index.html b/files/es/web/css/_colon_-moz-locale-dir(ltr)/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-locale-dir(ltr)/index.html rename to files/es/web/css/_colon_-moz-locale-dir(ltr)/index.md diff --git a/files/es/web/css/_colon_-moz-locale-dir(rtl)/index.html b/files/es/web/css/_colon_-moz-locale-dir(rtl)/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-locale-dir(rtl)/index.html rename to files/es/web/css/_colon_-moz-locale-dir(rtl)/index.md diff --git a/files/es/web/css/_colon_-moz-only-whitespace/index.html b/files/es/web/css/_colon_-moz-only-whitespace/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-only-whitespace/index.html rename to files/es/web/css/_colon_-moz-only-whitespace/index.md diff --git a/files/es/web/css/_colon_-moz-submit-invalid/index.html b/files/es/web/css/_colon_-moz-submit-invalid/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-submit-invalid/index.html rename to files/es/web/css/_colon_-moz-submit-invalid/index.md diff --git a/files/es/web/css/_colon_-moz-suppressed/index.html b/files/es/web/css/_colon_-moz-suppressed/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-suppressed/index.html rename to files/es/web/css/_colon_-moz-suppressed/index.md diff --git a/files/es/web/css/_colon_-moz-user-disabled/index.html b/files/es/web/css/_colon_-moz-user-disabled/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-user-disabled/index.html rename to files/es/web/css/_colon_-moz-user-disabled/index.md diff --git a/files/es/web/css/_colon_-moz-window-inactive/index.html b/files/es/web/css/_colon_-moz-window-inactive/index.md similarity index 100% rename from files/es/web/css/_colon_-moz-window-inactive/index.html rename to files/es/web/css/_colon_-moz-window-inactive/index.md diff --git a/files/es/web/css/_colon_active/index.html b/files/es/web/css/_colon_active/index.md similarity index 100% rename from files/es/web/css/_colon_active/index.html rename to files/es/web/css/_colon_active/index.md diff --git a/files/es/web/css/_colon_any-link/index.html b/files/es/web/css/_colon_any-link/index.md similarity index 100% rename from files/es/web/css/_colon_any-link/index.html rename to files/es/web/css/_colon_any-link/index.md diff --git a/files/es/web/css/_colon_autofill/index.html b/files/es/web/css/_colon_autofill/index.md similarity index 100% rename from files/es/web/css/_colon_autofill/index.html rename to files/es/web/css/_colon_autofill/index.md diff --git a/files/es/web/css/_colon_blank/index.html b/files/es/web/css/_colon_blank/index.md similarity index 100% rename from files/es/web/css/_colon_blank/index.html rename to files/es/web/css/_colon_blank/index.md diff --git a/files/es/web/css/_colon_checked/index.html b/files/es/web/css/_colon_checked/index.md similarity index 100% rename from files/es/web/css/_colon_checked/index.html rename to files/es/web/css/_colon_checked/index.md diff --git a/files/es/web/css/_colon_default/index.html b/files/es/web/css/_colon_default/index.md similarity index 100% rename from files/es/web/css/_colon_default/index.html rename to files/es/web/css/_colon_default/index.md diff --git a/files/es/web/css/_colon_defined/index.html b/files/es/web/css/_colon_defined/index.md similarity index 100% rename from files/es/web/css/_colon_defined/index.html rename to files/es/web/css/_colon_defined/index.md diff --git a/files/es/web/css/_colon_disabled/index.html b/files/es/web/css/_colon_disabled/index.md similarity index 100% rename from files/es/web/css/_colon_disabled/index.html rename to files/es/web/css/_colon_disabled/index.md diff --git a/files/es/web/css/_colon_empty/index.html b/files/es/web/css/_colon_empty/index.md similarity index 100% rename from files/es/web/css/_colon_empty/index.html rename to files/es/web/css/_colon_empty/index.md diff --git a/files/es/web/css/_colon_enabled/index.html b/files/es/web/css/_colon_enabled/index.md similarity index 100% rename from files/es/web/css/_colon_enabled/index.html rename to files/es/web/css/_colon_enabled/index.md diff --git a/files/es/web/css/_colon_first-child/index.html b/files/es/web/css/_colon_first-child/index.md similarity index 100% rename from files/es/web/css/_colon_first-child/index.html rename to files/es/web/css/_colon_first-child/index.md diff --git a/files/es/web/css/_colon_first-of-type/index.html b/files/es/web/css/_colon_first-of-type/index.md similarity index 100% rename from files/es/web/css/_colon_first-of-type/index.html rename to files/es/web/css/_colon_first-of-type/index.md diff --git a/files/es/web/css/_colon_first/index.html b/files/es/web/css/_colon_first/index.md similarity index 100% rename from files/es/web/css/_colon_first/index.html rename to files/es/web/css/_colon_first/index.md diff --git a/files/es/web/css/_colon_focus-within/index.html b/files/es/web/css/_colon_focus-within/index.md similarity index 100% rename from files/es/web/css/_colon_focus-within/index.html rename to files/es/web/css/_colon_focus-within/index.md diff --git a/files/es/web/css/_colon_focus/index.html b/files/es/web/css/_colon_focus/index.md similarity index 100% rename from files/es/web/css/_colon_focus/index.html rename to files/es/web/css/_colon_focus/index.md diff --git a/files/es/web/css/_colon_fullscreen/index.html b/files/es/web/css/_colon_fullscreen/index.md similarity index 100% rename from files/es/web/css/_colon_fullscreen/index.html rename to files/es/web/css/_colon_fullscreen/index.md diff --git a/files/es/web/css/_colon_has/index.html b/files/es/web/css/_colon_has/index.md similarity index 100% rename from files/es/web/css/_colon_has/index.html rename to files/es/web/css/_colon_has/index.md diff --git a/files/es/web/css/_colon_host/index.html b/files/es/web/css/_colon_host/index.md similarity index 100% rename from files/es/web/css/_colon_host/index.html rename to files/es/web/css/_colon_host/index.md diff --git a/files/es/web/css/_colon_hover/index.html b/files/es/web/css/_colon_hover/index.md similarity index 100% rename from files/es/web/css/_colon_hover/index.html rename to files/es/web/css/_colon_hover/index.md diff --git a/files/es/web/css/_colon_in-range/index.html b/files/es/web/css/_colon_in-range/index.md similarity index 100% rename from files/es/web/css/_colon_in-range/index.html rename to files/es/web/css/_colon_in-range/index.md diff --git a/files/es/web/css/_colon_invalid/index.html b/files/es/web/css/_colon_invalid/index.md similarity index 100% rename from files/es/web/css/_colon_invalid/index.html rename to files/es/web/css/_colon_invalid/index.md diff --git a/files/es/web/css/_colon_is/index.html b/files/es/web/css/_colon_is/index.md similarity index 100% rename from files/es/web/css/_colon_is/index.html rename to files/es/web/css/_colon_is/index.md diff --git a/files/es/web/css/_colon_lang/index.html b/files/es/web/css/_colon_lang/index.md similarity index 100% rename from files/es/web/css/_colon_lang/index.html rename to files/es/web/css/_colon_lang/index.md diff --git a/files/es/web/css/_colon_last-child/index.html b/files/es/web/css/_colon_last-child/index.md similarity index 100% rename from files/es/web/css/_colon_last-child/index.html rename to files/es/web/css/_colon_last-child/index.md diff --git a/files/es/web/css/_colon_last-of-type/index.html b/files/es/web/css/_colon_last-of-type/index.md similarity index 100% rename from files/es/web/css/_colon_last-of-type/index.html rename to files/es/web/css/_colon_last-of-type/index.md diff --git a/files/es/web/css/_colon_left/index.html b/files/es/web/css/_colon_left/index.md similarity index 100% rename from files/es/web/css/_colon_left/index.html rename to files/es/web/css/_colon_left/index.md diff --git a/files/es/web/css/_colon_link/index.html b/files/es/web/css/_colon_link/index.md similarity index 100% rename from files/es/web/css/_colon_link/index.html rename to files/es/web/css/_colon_link/index.md diff --git a/files/es/web/css/_colon_not/index.html b/files/es/web/css/_colon_not/index.md similarity index 100% rename from files/es/web/css/_colon_not/index.html rename to files/es/web/css/_colon_not/index.md diff --git a/files/es/web/css/_colon_nth-child/index.html b/files/es/web/css/_colon_nth-child/index.md similarity index 100% rename from files/es/web/css/_colon_nth-child/index.html rename to files/es/web/css/_colon_nth-child/index.md diff --git a/files/es/web/css/_colon_nth-last-child/index.html b/files/es/web/css/_colon_nth-last-child/index.md similarity index 100% rename from files/es/web/css/_colon_nth-last-child/index.html rename to files/es/web/css/_colon_nth-last-child/index.md diff --git a/files/es/web/css/_colon_nth-last-of-type/index.html b/files/es/web/css/_colon_nth-last-of-type/index.md similarity index 100% rename from files/es/web/css/_colon_nth-last-of-type/index.html rename to files/es/web/css/_colon_nth-last-of-type/index.md diff --git a/files/es/web/css/_colon_nth-of-type/index.html b/files/es/web/css/_colon_nth-of-type/index.md similarity index 100% rename from files/es/web/css/_colon_nth-of-type/index.html rename to files/es/web/css/_colon_nth-of-type/index.md diff --git a/files/es/web/css/_colon_only-child/index.html b/files/es/web/css/_colon_only-child/index.md similarity index 100% rename from files/es/web/css/_colon_only-child/index.html rename to files/es/web/css/_colon_only-child/index.md diff --git a/files/es/web/css/_colon_only-of-type/index.html b/files/es/web/css/_colon_only-of-type/index.md similarity index 100% rename from files/es/web/css/_colon_only-of-type/index.html rename to files/es/web/css/_colon_only-of-type/index.md diff --git a/files/es/web/css/_colon_optional/index.html b/files/es/web/css/_colon_optional/index.md similarity index 100% rename from files/es/web/css/_colon_optional/index.html rename to files/es/web/css/_colon_optional/index.md diff --git a/files/es/web/css/_colon_out-of-range/index.html b/files/es/web/css/_colon_out-of-range/index.md similarity index 100% rename from files/es/web/css/_colon_out-of-range/index.html rename to files/es/web/css/_colon_out-of-range/index.md diff --git a/files/es/web/css/_colon_placeholder-shown/index.html b/files/es/web/css/_colon_placeholder-shown/index.md similarity index 100% rename from files/es/web/css/_colon_placeholder-shown/index.html rename to files/es/web/css/_colon_placeholder-shown/index.md diff --git a/files/es/web/css/_colon_read-only/index.html b/files/es/web/css/_colon_read-only/index.md similarity index 100% rename from files/es/web/css/_colon_read-only/index.html rename to files/es/web/css/_colon_read-only/index.md diff --git a/files/es/web/css/_colon_read-write/index.html b/files/es/web/css/_colon_read-write/index.md similarity index 100% rename from files/es/web/css/_colon_read-write/index.html rename to files/es/web/css/_colon_read-write/index.md diff --git a/files/es/web/css/_colon_required/index.html b/files/es/web/css/_colon_required/index.md similarity index 100% rename from files/es/web/css/_colon_required/index.html rename to files/es/web/css/_colon_required/index.md diff --git a/files/es/web/css/_colon_right/index.html b/files/es/web/css/_colon_right/index.md similarity index 100% rename from files/es/web/css/_colon_right/index.html rename to files/es/web/css/_colon_right/index.md diff --git a/files/es/web/css/_colon_root/index.html b/files/es/web/css/_colon_root/index.md similarity index 100% rename from files/es/web/css/_colon_root/index.html rename to files/es/web/css/_colon_root/index.md diff --git a/files/es/web/css/_colon_target/index.html b/files/es/web/css/_colon_target/index.md similarity index 100% rename from files/es/web/css/_colon_target/index.html rename to files/es/web/css/_colon_target/index.md diff --git a/files/es/web/css/_colon_user-invalid/index.html b/files/es/web/css/_colon_user-invalid/index.md similarity index 100% rename from files/es/web/css/_colon_user-invalid/index.html rename to files/es/web/css/_colon_user-invalid/index.md diff --git a/files/es/web/css/_colon_valid/index.html b/files/es/web/css/_colon_valid/index.md similarity index 100% rename from files/es/web/css/_colon_valid/index.html rename to files/es/web/css/_colon_valid/index.md diff --git a/files/es/web/css/_colon_visited/index.html b/files/es/web/css/_colon_visited/index.md similarity index 100% rename from files/es/web/css/_colon_visited/index.html rename to files/es/web/css/_colon_visited/index.md diff --git a/files/es/web/css/_doublecolon_-moz-color-swatch/index.html b/files/es/web/css/_doublecolon_-moz-color-swatch/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-moz-color-swatch/index.html rename to files/es/web/css/_doublecolon_-moz-color-swatch/index.md diff --git a/files/es/web/css/_doublecolon_-moz-page-sequence/index.html b/files/es/web/css/_doublecolon_-moz-page-sequence/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-moz-page-sequence/index.html rename to files/es/web/css/_doublecolon_-moz-page-sequence/index.md diff --git a/files/es/web/css/_doublecolon_-moz-page/index.html b/files/es/web/css/_doublecolon_-moz-page/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-moz-page/index.html rename to files/es/web/css/_doublecolon_-moz-page/index.md diff --git a/files/es/web/css/_doublecolon_-moz-progress-bar/index.html b/files/es/web/css/_doublecolon_-moz-progress-bar/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-moz-progress-bar/index.html rename to files/es/web/css/_doublecolon_-moz-progress-bar/index.md diff --git a/files/es/web/css/_doublecolon_-moz-range-progress/index.html b/files/es/web/css/_doublecolon_-moz-range-progress/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-moz-range-progress/index.html rename to files/es/web/css/_doublecolon_-moz-range-progress/index.md diff --git a/files/es/web/css/_doublecolon_-moz-range-thumb/index.html b/files/es/web/css/_doublecolon_-moz-range-thumb/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-moz-range-thumb/index.html rename to files/es/web/css/_doublecolon_-moz-range-thumb/index.md diff --git a/files/es/web/css/_doublecolon_-moz-range-track/index.html b/files/es/web/css/_doublecolon_-moz-range-track/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-moz-range-track/index.html rename to files/es/web/css/_doublecolon_-moz-range-track/index.md diff --git a/files/es/web/css/_doublecolon_-moz-scrolled-page-sequence/index.html b/files/es/web/css/_doublecolon_-moz-scrolled-page-sequence/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-moz-scrolled-page-sequence/index.html rename to files/es/web/css/_doublecolon_-moz-scrolled-page-sequence/index.md diff --git a/files/es/web/css/_doublecolon_-webkit-inner-spin-button/index.html b/files/es/web/css/_doublecolon_-webkit-inner-spin-button/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-webkit-inner-spin-button/index.html rename to files/es/web/css/_doublecolon_-webkit-inner-spin-button/index.md diff --git a/files/es/web/css/_doublecolon_-webkit-meter-bar/index.html b/files/es/web/css/_doublecolon_-webkit-meter-bar/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-webkit-meter-bar/index.html rename to files/es/web/css/_doublecolon_-webkit-meter-bar/index.md diff --git a/files/es/web/css/_doublecolon_-webkit-meter-even-less-good-value/index.html b/files/es/web/css/_doublecolon_-webkit-meter-even-less-good-value/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-webkit-meter-even-less-good-value/index.html rename to files/es/web/css/_doublecolon_-webkit-meter-even-less-good-value/index.md diff --git a/files/es/web/css/_doublecolon_-webkit-meter-inner-element/index.html b/files/es/web/css/_doublecolon_-webkit-meter-inner-element/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-webkit-meter-inner-element/index.html rename to files/es/web/css/_doublecolon_-webkit-meter-inner-element/index.md diff --git a/files/es/web/css/_doublecolon_-webkit-meter-optimum-value/index.html b/files/es/web/css/_doublecolon_-webkit-meter-optimum-value/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-webkit-meter-optimum-value/index.html rename to files/es/web/css/_doublecolon_-webkit-meter-optimum-value/index.md diff --git a/files/es/web/css/_doublecolon_-webkit-meter-suboptimum-value/index.html b/files/es/web/css/_doublecolon_-webkit-meter-suboptimum-value/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-webkit-meter-suboptimum-value/index.html rename to files/es/web/css/_doublecolon_-webkit-meter-suboptimum-value/index.md diff --git a/files/es/web/css/_doublecolon_-webkit-outer-spin-button/index.html b/files/es/web/css/_doublecolon_-webkit-outer-spin-button/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-webkit-outer-spin-button/index.html rename to files/es/web/css/_doublecolon_-webkit-outer-spin-button/index.md diff --git a/files/es/web/css/_doublecolon_-webkit-progress-bar/index.html b/files/es/web/css/_doublecolon_-webkit-progress-bar/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-webkit-progress-bar/index.html rename to files/es/web/css/_doublecolon_-webkit-progress-bar/index.md diff --git a/files/es/web/css/_doublecolon_-webkit-progress-inner-element/index.html b/files/es/web/css/_doublecolon_-webkit-progress-inner-element/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-webkit-progress-inner-element/index.html rename to files/es/web/css/_doublecolon_-webkit-progress-inner-element/index.md diff --git a/files/es/web/css/_doublecolon_-webkit-progress-value/index.html b/files/es/web/css/_doublecolon_-webkit-progress-value/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-webkit-progress-value/index.html rename to files/es/web/css/_doublecolon_-webkit-progress-value/index.md diff --git a/files/es/web/css/_doublecolon_-webkit-scrollbar/index.html b/files/es/web/css/_doublecolon_-webkit-scrollbar/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-webkit-scrollbar/index.html rename to files/es/web/css/_doublecolon_-webkit-scrollbar/index.md diff --git a/files/es/web/css/_doublecolon_-webkit-slider-runnable-track/index.html b/files/es/web/css/_doublecolon_-webkit-slider-runnable-track/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-webkit-slider-runnable-track/index.html rename to files/es/web/css/_doublecolon_-webkit-slider-runnable-track/index.md diff --git a/files/es/web/css/_doublecolon_-webkit-slider-thumb/index.html b/files/es/web/css/_doublecolon_-webkit-slider-thumb/index.md similarity index 100% rename from files/es/web/css/_doublecolon_-webkit-slider-thumb/index.html rename to files/es/web/css/_doublecolon_-webkit-slider-thumb/index.md diff --git a/files/es/web/css/_doublecolon_after/index.html b/files/es/web/css/_doublecolon_after/index.md similarity index 100% rename from files/es/web/css/_doublecolon_after/index.html rename to files/es/web/css/_doublecolon_after/index.md diff --git a/files/es/web/css/_doublecolon_backdrop/index.html b/files/es/web/css/_doublecolon_backdrop/index.md similarity index 100% rename from files/es/web/css/_doublecolon_backdrop/index.html rename to files/es/web/css/_doublecolon_backdrop/index.md diff --git a/files/es/web/css/_doublecolon_before/index.html b/files/es/web/css/_doublecolon_before/index.md similarity index 100% rename from files/es/web/css/_doublecolon_before/index.html rename to files/es/web/css/_doublecolon_before/index.md diff --git a/files/es/web/css/_doublecolon_cue/index.html b/files/es/web/css/_doublecolon_cue/index.md similarity index 100% rename from files/es/web/css/_doublecolon_cue/index.html rename to files/es/web/css/_doublecolon_cue/index.md diff --git a/files/es/web/css/_doublecolon_first-letter/index.html b/files/es/web/css/_doublecolon_first-letter/index.md similarity index 100% rename from files/es/web/css/_doublecolon_first-letter/index.html rename to files/es/web/css/_doublecolon_first-letter/index.md diff --git a/files/es/web/css/_doublecolon_marker/index.html b/files/es/web/css/_doublecolon_marker/index.md similarity index 100% rename from files/es/web/css/_doublecolon_marker/index.html rename to files/es/web/css/_doublecolon_marker/index.md diff --git a/files/es/web/css/_doublecolon_placeholder/index.html b/files/es/web/css/_doublecolon_placeholder/index.md similarity index 100% rename from files/es/web/css/_doublecolon_placeholder/index.html rename to files/es/web/css/_doublecolon_placeholder/index.md diff --git a/files/es/web/css/_doublecolon_selection/index.html b/files/es/web/css/_doublecolon_selection/index.md similarity index 100% rename from files/es/web/css/_doublecolon_selection/index.html rename to files/es/web/css/_doublecolon_selection/index.md diff --git a/files/es/web/css/_doublecolon_spelling-error/index.html b/files/es/web/css/_doublecolon_spelling-error/index.md similarity index 100% rename from files/es/web/css/_doublecolon_spelling-error/index.html rename to files/es/web/css/_doublecolon_spelling-error/index.md diff --git a/files/es/web/css/actual_value/index.html b/files/es/web/css/actual_value/index.md similarity index 100% rename from files/es/web/css/actual_value/index.html rename to files/es/web/css/actual_value/index.md diff --git a/files/es/web/css/adjacent_sibling_combinator/index.html b/files/es/web/css/adjacent_sibling_combinator/index.md similarity index 100% rename from files/es/web/css/adjacent_sibling_combinator/index.html rename to files/es/web/css/adjacent_sibling_combinator/index.md diff --git a/files/es/web/css/align-content/index.html b/files/es/web/css/align-content/index.md similarity index 100% rename from files/es/web/css/align-content/index.html rename to files/es/web/css/align-content/index.md diff --git a/files/es/web/css/align-self/index.html b/files/es/web/css/align-self/index.md similarity index 100% rename from files/es/web/css/align-self/index.html rename to files/es/web/css/align-self/index.md diff --git a/files/es/web/css/all/index.html b/files/es/web/css/all/index.md similarity index 100% rename from files/es/web/css/all/index.html rename to files/es/web/css/all/index.md diff --git a/files/es/web/css/animation-delay/index.html b/files/es/web/css/animation-delay/index.md similarity index 100% rename from files/es/web/css/animation-delay/index.html rename to files/es/web/css/animation-delay/index.md diff --git a/files/es/web/css/animation-direction/index.html b/files/es/web/css/animation-direction/index.md similarity index 100% rename from files/es/web/css/animation-direction/index.html rename to files/es/web/css/animation-direction/index.md diff --git a/files/es/web/css/animation-duration/index.html b/files/es/web/css/animation-duration/index.md similarity index 100% rename from files/es/web/css/animation-duration/index.html rename to files/es/web/css/animation-duration/index.md diff --git a/files/es/web/css/animation-fill-mode/index.html b/files/es/web/css/animation-fill-mode/index.md similarity index 100% rename from files/es/web/css/animation-fill-mode/index.html rename to files/es/web/css/animation-fill-mode/index.md diff --git a/files/es/web/css/animation-iteration-count/index.html b/files/es/web/css/animation-iteration-count/index.md similarity index 100% rename from files/es/web/css/animation-iteration-count/index.html rename to files/es/web/css/animation-iteration-count/index.md diff --git a/files/es/web/css/animation-name/index.html b/files/es/web/css/animation-name/index.md similarity index 100% rename from files/es/web/css/animation-name/index.html rename to files/es/web/css/animation-name/index.md diff --git a/files/es/web/css/animation-play-state/index.html b/files/es/web/css/animation-play-state/index.md similarity index 100% rename from files/es/web/css/animation-play-state/index.html rename to files/es/web/css/animation-play-state/index.md diff --git a/files/es/web/css/animation-timing-function/index.html b/files/es/web/css/animation-timing-function/index.md similarity index 100% rename from files/es/web/css/animation-timing-function/index.html rename to files/es/web/css/animation-timing-function/index.md diff --git a/files/es/web/css/animation/index.html b/files/es/web/css/animation/index.md similarity index 100% rename from files/es/web/css/animation/index.html rename to files/es/web/css/animation/index.md diff --git a/files/es/web/css/at-rule/index.html b/files/es/web/css/at-rule/index.md similarity index 100% rename from files/es/web/css/at-rule/index.html rename to files/es/web/css/at-rule/index.md diff --git a/files/es/web/css/attr/index.html b/files/es/web/css/attr/index.md similarity index 100% rename from files/es/web/css/attr/index.html rename to files/es/web/css/attr/index.md diff --git a/files/es/web/css/attribute_selectors/index.html b/files/es/web/css/attribute_selectors/index.md similarity index 100% rename from files/es/web/css/attribute_selectors/index.html rename to files/es/web/css/attribute_selectors/index.md diff --git a/files/es/web/css/backdrop-filter/index.html b/files/es/web/css/backdrop-filter/index.md similarity index 100% rename from files/es/web/css/backdrop-filter/index.html rename to files/es/web/css/backdrop-filter/index.md diff --git a/files/es/web/css/backface-visibility/index.html b/files/es/web/css/backface-visibility/index.md similarity index 100% rename from files/es/web/css/backface-visibility/index.html rename to files/es/web/css/backface-visibility/index.md diff --git a/files/es/web/css/background-attachment/index.html b/files/es/web/css/background-attachment/index.md similarity index 100% rename from files/es/web/css/background-attachment/index.html rename to files/es/web/css/background-attachment/index.md diff --git a/files/es/web/css/background-blend-mode/index.html b/files/es/web/css/background-blend-mode/index.md similarity index 100% rename from files/es/web/css/background-blend-mode/index.html rename to files/es/web/css/background-blend-mode/index.md diff --git a/files/es/web/css/background-color/index.html b/files/es/web/css/background-color/index.md similarity index 100% rename from files/es/web/css/background-color/index.html rename to files/es/web/css/background-color/index.md diff --git a/files/es/web/css/background-image/index.html b/files/es/web/css/background-image/index.md similarity index 100% rename from files/es/web/css/background-image/index.html rename to files/es/web/css/background-image/index.md diff --git a/files/es/web/css/background-position/index.html b/files/es/web/css/background-position/index.md similarity index 100% rename from files/es/web/css/background-position/index.html rename to files/es/web/css/background-position/index.md diff --git a/files/es/web/css/basic-shape/index.html b/files/es/web/css/basic-shape/index.md similarity index 100% rename from files/es/web/css/basic-shape/index.html rename to files/es/web/css/basic-shape/index.md diff --git a/files/es/web/css/blend-mode/index.html b/files/es/web/css/blend-mode/index.md similarity index 100% rename from files/es/web/css/blend-mode/index.html rename to files/es/web/css/blend-mode/index.md diff --git a/files/es/web/css/block-size/index.html b/files/es/web/css/block-size/index.md similarity index 100% rename from files/es/web/css/block-size/index.html rename to files/es/web/css/block-size/index.md diff --git a/files/es/web/css/border-block-color/index.html b/files/es/web/css/border-block-color/index.md similarity index 100% rename from files/es/web/css/border-block-color/index.html rename to files/es/web/css/border-block-color/index.md diff --git a/files/es/web/css/border-block-end-color/index.html b/files/es/web/css/border-block-end-color/index.md similarity index 100% rename from files/es/web/css/border-block-end-color/index.html rename to files/es/web/css/border-block-end-color/index.md diff --git a/files/es/web/css/border-block-end-style/index.html b/files/es/web/css/border-block-end-style/index.md similarity index 100% rename from files/es/web/css/border-block-end-style/index.html rename to files/es/web/css/border-block-end-style/index.md diff --git a/files/es/web/css/border-block-end-width/index.html b/files/es/web/css/border-block-end-width/index.md similarity index 100% rename from files/es/web/css/border-block-end-width/index.html rename to files/es/web/css/border-block-end-width/index.md diff --git a/files/es/web/css/border-block-end/index.html b/files/es/web/css/border-block-end/index.md similarity index 100% rename from files/es/web/css/border-block-end/index.html rename to files/es/web/css/border-block-end/index.md diff --git a/files/es/web/css/border-block-start-color/index.html b/files/es/web/css/border-block-start-color/index.md similarity index 100% rename from files/es/web/css/border-block-start-color/index.html rename to files/es/web/css/border-block-start-color/index.md diff --git a/files/es/web/css/border-block-start-style/index.html b/files/es/web/css/border-block-start-style/index.md similarity index 100% rename from files/es/web/css/border-block-start-style/index.html rename to files/es/web/css/border-block-start-style/index.md diff --git a/files/es/web/css/border-block-start-width/index.html b/files/es/web/css/border-block-start-width/index.md similarity index 100% rename from files/es/web/css/border-block-start-width/index.html rename to files/es/web/css/border-block-start-width/index.md diff --git a/files/es/web/css/border-block-start/index.html b/files/es/web/css/border-block-start/index.md similarity index 100% rename from files/es/web/css/border-block-start/index.html rename to files/es/web/css/border-block-start/index.md diff --git a/files/es/web/css/border-block-style/index.html b/files/es/web/css/border-block-style/index.md similarity index 100% rename from files/es/web/css/border-block-style/index.html rename to files/es/web/css/border-block-style/index.md diff --git a/files/es/web/css/border-block-width/index.html b/files/es/web/css/border-block-width/index.md similarity index 100% rename from files/es/web/css/border-block-width/index.html rename to files/es/web/css/border-block-width/index.md diff --git a/files/es/web/css/border-bottom-color/index.html b/files/es/web/css/border-bottom-color/index.md similarity index 100% rename from files/es/web/css/border-bottom-color/index.html rename to files/es/web/css/border-bottom-color/index.md diff --git a/files/es/web/css/border-bottom-style/index.html b/files/es/web/css/border-bottom-style/index.md similarity index 100% rename from files/es/web/css/border-bottom-style/index.html rename to files/es/web/css/border-bottom-style/index.md diff --git a/files/es/web/css/border-bottom-width/index.html b/files/es/web/css/border-bottom-width/index.md similarity index 100% rename from files/es/web/css/border-bottom-width/index.html rename to files/es/web/css/border-bottom-width/index.md diff --git a/files/es/web/css/border-bottom/index.html b/files/es/web/css/border-bottom/index.md similarity index 100% rename from files/es/web/css/border-bottom/index.html rename to files/es/web/css/border-bottom/index.md diff --git a/files/es/web/css/border-collapse/index.html b/files/es/web/css/border-collapse/index.md similarity index 100% rename from files/es/web/css/border-collapse/index.html rename to files/es/web/css/border-collapse/index.md diff --git a/files/es/web/css/border-color/index.html b/files/es/web/css/border-color/index.md similarity index 100% rename from files/es/web/css/border-color/index.html rename to files/es/web/css/border-color/index.md diff --git a/files/es/web/css/border-end-end-radius/index.html b/files/es/web/css/border-end-end-radius/index.md similarity index 100% rename from files/es/web/css/border-end-end-radius/index.html rename to files/es/web/css/border-end-end-radius/index.md diff --git a/files/es/web/css/border-end-start-radius/index.html b/files/es/web/css/border-end-start-radius/index.md similarity index 100% rename from files/es/web/css/border-end-start-radius/index.html rename to files/es/web/css/border-end-start-radius/index.md diff --git a/files/es/web/css/border-image-outset/index.html b/files/es/web/css/border-image-outset/index.md similarity index 100% rename from files/es/web/css/border-image-outset/index.html rename to files/es/web/css/border-image-outset/index.md diff --git a/files/es/web/css/border-image-repeat/index.html b/files/es/web/css/border-image-repeat/index.md similarity index 100% rename from files/es/web/css/border-image-repeat/index.html rename to files/es/web/css/border-image-repeat/index.md diff --git a/files/es/web/css/border-image-slice/index.html b/files/es/web/css/border-image-slice/index.md similarity index 100% rename from files/es/web/css/border-image-slice/index.html rename to files/es/web/css/border-image-slice/index.md diff --git a/files/es/web/css/border-image/index.html b/files/es/web/css/border-image/index.md similarity index 100% rename from files/es/web/css/border-image/index.html rename to files/es/web/css/border-image/index.md diff --git a/files/es/web/css/border-inline-color/index.html b/files/es/web/css/border-inline-color/index.md similarity index 100% rename from files/es/web/css/border-inline-color/index.html rename to files/es/web/css/border-inline-color/index.md diff --git a/files/es/web/css/border-inline-end-color/index.html b/files/es/web/css/border-inline-end-color/index.md similarity index 100% rename from files/es/web/css/border-inline-end-color/index.html rename to files/es/web/css/border-inline-end-color/index.md diff --git a/files/es/web/css/border-inline-end-style/index.html b/files/es/web/css/border-inline-end-style/index.md similarity index 100% rename from files/es/web/css/border-inline-end-style/index.html rename to files/es/web/css/border-inline-end-style/index.md diff --git a/files/es/web/css/border-inline-end-width/index.html b/files/es/web/css/border-inline-end-width/index.md similarity index 100% rename from files/es/web/css/border-inline-end-width/index.html rename to files/es/web/css/border-inline-end-width/index.md diff --git a/files/es/web/css/border-inline-end/index.html b/files/es/web/css/border-inline-end/index.md similarity index 100% rename from files/es/web/css/border-inline-end/index.html rename to files/es/web/css/border-inline-end/index.md diff --git a/files/es/web/css/border-inline-start-color/index.html b/files/es/web/css/border-inline-start-color/index.md similarity index 100% rename from files/es/web/css/border-inline-start-color/index.html rename to files/es/web/css/border-inline-start-color/index.md diff --git a/files/es/web/css/border-inline-start-style/index.html b/files/es/web/css/border-inline-start-style/index.md similarity index 100% rename from files/es/web/css/border-inline-start-style/index.html rename to files/es/web/css/border-inline-start-style/index.md diff --git a/files/es/web/css/border-inline-start-width/index.html b/files/es/web/css/border-inline-start-width/index.md similarity index 100% rename from files/es/web/css/border-inline-start-width/index.html rename to files/es/web/css/border-inline-start-width/index.md diff --git a/files/es/web/css/border-inline-start/index.html b/files/es/web/css/border-inline-start/index.md similarity index 100% rename from files/es/web/css/border-inline-start/index.html rename to files/es/web/css/border-inline-start/index.md diff --git a/files/es/web/css/border-inline-style/index.html b/files/es/web/css/border-inline-style/index.md similarity index 100% rename from files/es/web/css/border-inline-style/index.html rename to files/es/web/css/border-inline-style/index.md diff --git a/files/es/web/css/border-inline-width/index.html b/files/es/web/css/border-inline-width/index.md similarity index 100% rename from files/es/web/css/border-inline-width/index.html rename to files/es/web/css/border-inline-width/index.md diff --git a/files/es/web/css/border-inline/index.html b/files/es/web/css/border-inline/index.md similarity index 100% rename from files/es/web/css/border-inline/index.html rename to files/es/web/css/border-inline/index.md diff --git a/files/es/web/css/border-left-color/index.html b/files/es/web/css/border-left-color/index.md similarity index 100% rename from files/es/web/css/border-left-color/index.html rename to files/es/web/css/border-left-color/index.md diff --git a/files/es/web/css/border-left/index.html b/files/es/web/css/border-left/index.md similarity index 100% rename from files/es/web/css/border-left/index.html rename to files/es/web/css/border-left/index.md diff --git a/files/es/web/css/border-right/index.html b/files/es/web/css/border-right/index.md similarity index 100% rename from files/es/web/css/border-right/index.html rename to files/es/web/css/border-right/index.md diff --git a/files/es/web/css/border-spacing/index.html b/files/es/web/css/border-spacing/index.md similarity index 100% rename from files/es/web/css/border-spacing/index.html rename to files/es/web/css/border-spacing/index.md diff --git a/files/es/web/css/border-start-end-radius/index.html b/files/es/web/css/border-start-end-radius/index.md similarity index 100% rename from files/es/web/css/border-start-end-radius/index.html rename to files/es/web/css/border-start-end-radius/index.md diff --git a/files/es/web/css/border-start-start-radius/index.html b/files/es/web/css/border-start-start-radius/index.md similarity index 100% rename from files/es/web/css/border-start-start-radius/index.html rename to files/es/web/css/border-start-start-radius/index.md diff --git a/files/es/web/css/border-style/index.html b/files/es/web/css/border-style/index.md similarity index 100% rename from files/es/web/css/border-style/index.html rename to files/es/web/css/border-style/index.md diff --git a/files/es/web/css/border-top-color/index.html b/files/es/web/css/border-top-color/index.md similarity index 100% rename from files/es/web/css/border-top-color/index.html rename to files/es/web/css/border-top-color/index.md diff --git a/files/es/web/css/border-top-left-radius/index.html b/files/es/web/css/border-top-left-radius/index.md similarity index 100% rename from files/es/web/css/border-top-left-radius/index.html rename to files/es/web/css/border-top-left-radius/index.md diff --git a/files/es/web/css/border-top/index.html b/files/es/web/css/border-top/index.md similarity index 100% rename from files/es/web/css/border-top/index.html rename to files/es/web/css/border-top/index.md diff --git a/files/es/web/css/border-width/index.html b/files/es/web/css/border-width/index.md similarity index 100% rename from files/es/web/css/border-width/index.html rename to files/es/web/css/border-width/index.md diff --git a/files/es/web/css/bottom/index.html b/files/es/web/css/bottom/index.md similarity index 100% rename from files/es/web/css/bottom/index.html rename to files/es/web/css/bottom/index.md diff --git a/files/es/web/css/box-flex/index.html b/files/es/web/css/box-flex/index.md similarity index 100% rename from files/es/web/css/box-flex/index.html rename to files/es/web/css/box-flex/index.md diff --git a/files/es/web/css/box-ordinal-group/index.html b/files/es/web/css/box-ordinal-group/index.md similarity index 100% rename from files/es/web/css/box-ordinal-group/index.html rename to files/es/web/css/box-ordinal-group/index.md diff --git a/files/es/web/css/box-pack/index.html b/files/es/web/css/box-pack/index.md similarity index 100% rename from files/es/web/css/box-pack/index.html rename to files/es/web/css/box-pack/index.md diff --git a/files/es/web/css/calc/index.html b/files/es/web/css/calc/index.md similarity index 100% rename from files/es/web/css/calc/index.html rename to files/es/web/css/calc/index.md diff --git a/files/es/web/css/caret-color/index.html b/files/es/web/css/caret-color/index.md similarity index 100% rename from files/es/web/css/caret-color/index.html rename to files/es/web/css/caret-color/index.md diff --git a/files/es/web/css/child_combinator/index.html b/files/es/web/css/child_combinator/index.md similarity index 100% rename from files/es/web/css/child_combinator/index.html rename to files/es/web/css/child_combinator/index.md diff --git a/files/es/web/css/class_selectors/index.html b/files/es/web/css/class_selectors/index.md similarity index 100% rename from files/es/web/css/class_selectors/index.html rename to files/es/web/css/class_selectors/index.md diff --git a/files/es/web/css/clear/index.html b/files/es/web/css/clear/index.md similarity index 100% rename from files/es/web/css/clear/index.html rename to files/es/web/css/clear/index.md diff --git a/files/es/web/css/color/index.html b/files/es/web/css/color/index.md similarity index 100% rename from files/es/web/css/color/index.html rename to files/es/web/css/color/index.md diff --git a/files/es/web/css/color_value/index.html b/files/es/web/css/color_value/index.md similarity index 100% rename from files/es/web/css/color_value/index.html rename to files/es/web/css/color_value/index.md diff --git a/files/es/web/css/column-count/index.html b/files/es/web/css/column-count/index.md similarity index 100% rename from files/es/web/css/column-count/index.html rename to files/es/web/css/column-count/index.md diff --git a/files/es/web/css/column-gap/index.html b/files/es/web/css/column-gap/index.md similarity index 100% rename from files/es/web/css/column-gap/index.html rename to files/es/web/css/column-gap/index.md diff --git a/files/es/web/css/column-span/index.html b/files/es/web/css/column-span/index.md similarity index 100% rename from files/es/web/css/column-span/index.html rename to files/es/web/css/column-span/index.md diff --git a/files/es/web/css/comments/index.html b/files/es/web/css/comments/index.md similarity index 100% rename from files/es/web/css/comments/index.html rename to files/es/web/css/comments/index.md diff --git a/files/es/web/css/computed_value/index.html b/files/es/web/css/computed_value/index.md similarity index 100% rename from files/es/web/css/computed_value/index.html rename to files/es/web/css/computed_value/index.md diff --git a/files/es/web/css/content/index.html b/files/es/web/css/content/index.md similarity index 100% rename from files/es/web/css/content/index.html rename to files/es/web/css/content/index.md diff --git a/files/es/web/css/css_animations/detecting_css_animation_support/index.html b/files/es/web/css/css_animations/detecting_css_animation_support/index.md similarity index 100% rename from files/es/web/css/css_animations/detecting_css_animation_support/index.html rename to files/es/web/css/css_animations/detecting_css_animation_support/index.md diff --git a/files/es/web/css/css_animations/index.html b/files/es/web/css/css_animations/index.md similarity index 100% rename from files/es/web/css/css_animations/index.html rename to files/es/web/css/css_animations/index.md diff --git a/files/es/web/css/css_animations/tips/index.html b/files/es/web/css/css_animations/tips/index.md similarity index 100% rename from files/es/web/css/css_animations/tips/index.html rename to files/es/web/css/css_animations/tips/index.md diff --git a/files/es/web/css/css_backgrounds_and_borders/border-image_generator/index.html b/files/es/web/css/css_backgrounds_and_borders/border-image_generator/index.md similarity index 100% rename from files/es/web/css/css_backgrounds_and_borders/border-image_generator/index.html rename to files/es/web/css/css_backgrounds_and_borders/border-image_generator/index.md diff --git a/files/es/web/css/css_backgrounds_and_borders/border-radius_generator/index.html b/files/es/web/css/css_backgrounds_and_borders/border-radius_generator/index.md similarity index 100% rename from files/es/web/css/css_backgrounds_and_borders/border-radius_generator/index.html rename to files/es/web/css/css_backgrounds_and_borders/border-radius_generator/index.md diff --git a/files/es/web/css/css_backgrounds_and_borders/index.html b/files/es/web/css/css_backgrounds_and_borders/index.md similarity index 100% rename from files/es/web/css/css_backgrounds_and_borders/index.html rename to files/es/web/css/css_backgrounds_and_borders/index.md diff --git a/files/es/web/css/css_backgrounds_and_borders/using_multiple_backgrounds/index.html b/files/es/web/css/css_backgrounds_and_borders/using_multiple_backgrounds/index.md similarity index 100% rename from files/es/web/css/css_backgrounds_and_borders/using_multiple_backgrounds/index.html rename to files/es/web/css/css_backgrounds_and_borders/using_multiple_backgrounds/index.md diff --git a/files/es/web/css/css_box_model/index.html b/files/es/web/css/css_box_model/index.md similarity index 100% rename from files/es/web/css/css_box_model/index.html rename to files/es/web/css/css_box_model/index.md diff --git a/files/es/web/css/css_box_model/introduction_to_the_css_box_model/index.html b/files/es/web/css/css_box_model/introduction_to_the_css_box_model/index.md similarity index 100% rename from files/es/web/css/css_box_model/introduction_to_the_css_box_model/index.html rename to files/es/web/css/css_box_model/introduction_to_the_css_box_model/index.md diff --git a/files/es/web/css/css_box_model/mastering_margin_collapsing/index.html b/files/es/web/css/css_box_model/mastering_margin_collapsing/index.md similarity index 100% rename from files/es/web/css/css_box_model/mastering_margin_collapsing/index.html rename to files/es/web/css/css_box_model/mastering_margin_collapsing/index.md diff --git a/files/es/web/css/css_colors/color_picker_tool/index.html b/files/es/web/css/css_colors/color_picker_tool/index.md similarity index 100% rename from files/es/web/css/css_colors/color_picker_tool/index.html rename to files/es/web/css/css_colors/color_picker_tool/index.md diff --git a/files/es/web/css/css_colors/index.html b/files/es/web/css/css_colors/index.md similarity index 100% rename from files/es/web/css/css_colors/index.html rename to files/es/web/css/css_colors/index.md diff --git a/files/es/web/css/css_columns/index.html b/files/es/web/css/css_columns/index.md similarity index 100% rename from files/es/web/css/css_columns/index.html rename to files/es/web/css/css_columns/index.md diff --git a/files/es/web/css/css_columns/using_multi-column_layouts/index.html b/files/es/web/css/css_columns/using_multi-column_layouts/index.md similarity index 100% rename from files/es/web/css/css_columns/using_multi-column_layouts/index.html rename to files/es/web/css/css_columns/using_multi-column_layouts/index.md diff --git a/files/es/web/css/css_conditional_rules/index.html b/files/es/web/css/css_conditional_rules/index.md similarity index 100% rename from files/es/web/css/css_conditional_rules/index.html rename to files/es/web/css/css_conditional_rules/index.md diff --git a/files/es/web/css/css_containment/index.html b/files/es/web/css/css_containment/index.md similarity index 100% rename from files/es/web/css/css_containment/index.html rename to files/es/web/css/css_containment/index.md diff --git a/files/es/web/css/css_flexible_box_layout/aligning_items_in_a_flex_container/index.html b/files/es/web/css/css_flexible_box_layout/aligning_items_in_a_flex_container/index.md similarity index 100% rename from files/es/web/css/css_flexible_box_layout/aligning_items_in_a_flex_container/index.html rename to files/es/web/css/css_flexible_box_layout/aligning_items_in_a_flex_container/index.md diff --git a/files/es/web/css/css_flexible_box_layout/backwards_compatibility_of_flexbox/index.html b/files/es/web/css/css_flexible_box_layout/backwards_compatibility_of_flexbox/index.md similarity index 100% rename from files/es/web/css/css_flexible_box_layout/backwards_compatibility_of_flexbox/index.html rename to files/es/web/css/css_flexible_box_layout/backwards_compatibility_of_flexbox/index.md diff --git a/files/es/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.html b/files/es/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.md similarity index 100% rename from files/es/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.html rename to files/es/web/css/css_flexible_box_layout/basic_concepts_of_flexbox/index.md diff --git a/files/es/web/css/css_flexible_box_layout/index.html b/files/es/web/css/css_flexible_box_layout/index.md similarity index 100% rename from files/es/web/css/css_flexible_box_layout/index.html rename to files/es/web/css/css_flexible_box_layout/index.md diff --git a/files/es/web/css/css_flexible_box_layout/typical_use_cases_of_flexbox/index.html b/files/es/web/css/css_flexible_box_layout/typical_use_cases_of_flexbox/index.md similarity index 100% rename from files/es/web/css/css_flexible_box_layout/typical_use_cases_of_flexbox/index.html rename to files/es/web/css/css_flexible_box_layout/typical_use_cases_of_flexbox/index.md diff --git a/files/es/web/css/css_flow_layout/index.html b/files/es/web/css/css_flow_layout/index.md similarity index 100% rename from files/es/web/css/css_flow_layout/index.html rename to files/es/web/css/css_flow_layout/index.md diff --git a/files/es/web/css/css_grid_layout/auto-placement_in_css_grid_layout/index.html b/files/es/web/css/css_grid_layout/auto-placement_in_css_grid_layout/index.md similarity index 100% rename from files/es/web/css/css_grid_layout/auto-placement_in_css_grid_layout/index.html rename to files/es/web/css/css_grid_layout/auto-placement_in_css_grid_layout/index.md diff --git a/files/es/web/css/css_grid_layout/box_alignment_in_css_grid_layout/index.html b/files/es/web/css/css_grid_layout/box_alignment_in_css_grid_layout/index.md similarity index 100% rename from files/es/web/css/css_grid_layout/box_alignment_in_css_grid_layout/index.html rename to files/es/web/css/css_grid_layout/box_alignment_in_css_grid_layout/index.md diff --git a/files/es/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/index.html b/files/es/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/index.md similarity index 100% rename from files/es/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/index.html rename to files/es/web/css/css_grid_layout/realizing_common_layouts_using_css_grid_layout/index.md diff --git a/files/es/web/css/css_logical_properties/basic_concepts/index.html b/files/es/web/css/css_logical_properties/basic_concepts/index.md similarity index 100% rename from files/es/web/css/css_logical_properties/basic_concepts/index.html rename to files/es/web/css/css_logical_properties/basic_concepts/index.md diff --git a/files/es/web/css/css_logical_properties/floating_and_positioning/index.html b/files/es/web/css/css_logical_properties/floating_and_positioning/index.md similarity index 100% rename from files/es/web/css/css_logical_properties/floating_and_positioning/index.html rename to files/es/web/css/css_logical_properties/floating_and_positioning/index.md diff --git a/files/es/web/css/css_logical_properties/index.html b/files/es/web/css/css_logical_properties/index.md similarity index 100% rename from files/es/web/css/css_logical_properties/index.html rename to files/es/web/css/css_logical_properties/index.md diff --git a/files/es/web/css/css_logical_properties/margins_borders_padding/index.html b/files/es/web/css/css_logical_properties/margins_borders_padding/index.md similarity index 100% rename from files/es/web/css/css_logical_properties/margins_borders_padding/index.html rename to files/es/web/css/css_logical_properties/margins_borders_padding/index.md diff --git a/files/es/web/css/css_logical_properties/sizing/index.html b/files/es/web/css/css_logical_properties/sizing/index.md similarity index 100% rename from files/es/web/css/css_logical_properties/sizing/index.html rename to files/es/web/css/css_logical_properties/sizing/index.md diff --git a/files/es/web/css/css_motion_path/index.html b/files/es/web/css/css_motion_path/index.md similarity index 100% rename from files/es/web/css/css_motion_path/index.html rename to files/es/web/css/css_motion_path/index.md diff --git a/files/es/web/css/css_positioning/index.html b/files/es/web/css/css_positioning/index.md similarity index 100% rename from files/es/web/css/css_positioning/index.html rename to files/es/web/css/css_positioning/index.md diff --git a/files/es/web/css/css_positioning/understanding_z_index/adding_z-index/index.html b/files/es/web/css/css_positioning/understanding_z_index/adding_z-index/index.md similarity index 100% rename from files/es/web/css/css_positioning/understanding_z_index/adding_z-index/index.html rename to files/es/web/css/css_positioning/understanding_z_index/adding_z-index/index.md diff --git a/files/es/web/css/css_positioning/understanding_z_index/index.html b/files/es/web/css/css_positioning/understanding_z_index/index.md similarity index 100% rename from files/es/web/css/css_positioning/understanding_z_index/index.html rename to files/es/web/css/css_positioning/understanding_z_index/index.md diff --git a/files/es/web/css/css_positioning/understanding_z_index/stacking_and_float/index.html b/files/es/web/css/css_positioning/understanding_z_index/stacking_and_float/index.md similarity index 100% rename from files/es/web/css/css_positioning/understanding_z_index/stacking_and_float/index.html rename to files/es/web/css/css_positioning/understanding_z_index/stacking_and_float/index.md diff --git a/files/es/web/css/css_positioning/understanding_z_index/stacking_context_example_2/index.html b/files/es/web/css/css_positioning/understanding_z_index/stacking_context_example_2/index.md similarity index 100% rename from files/es/web/css/css_positioning/understanding_z_index/stacking_context_example_2/index.html rename to files/es/web/css/css_positioning/understanding_z_index/stacking_context_example_2/index.md diff --git a/files/es/web/css/css_positioning/understanding_z_index/stacking_context_example_3/index.html b/files/es/web/css/css_positioning/understanding_z_index/stacking_context_example_3/index.md similarity index 100% rename from files/es/web/css/css_positioning/understanding_z_index/stacking_context_example_3/index.html rename to files/es/web/css/css_positioning/understanding_z_index/stacking_context_example_3/index.md diff --git a/files/es/web/css/css_positioning/understanding_z_index/stacking_without_z-index/index.html b/files/es/web/css/css_positioning/understanding_z_index/stacking_without_z-index/index.md similarity index 100% rename from files/es/web/css/css_positioning/understanding_z_index/stacking_without_z-index/index.html rename to files/es/web/css/css_positioning/understanding_z_index/stacking_without_z-index/index.md diff --git a/files/es/web/css/css_positioning/understanding_z_index/the_stacking_context/index.html b/files/es/web/css/css_positioning/understanding_z_index/the_stacking_context/index.md similarity index 100% rename from files/es/web/css/css_positioning/understanding_z_index/the_stacking_context/index.html rename to files/es/web/css/css_positioning/understanding_z_index/the_stacking_context/index.md diff --git a/files/es/web/css/css_properties_reference/index.html b/files/es/web/css/css_properties_reference/index.md similarity index 100% rename from files/es/web/css/css_properties_reference/index.html rename to files/es/web/css/css_properties_reference/index.md diff --git a/files/es/web/css/css_selectors/index.html b/files/es/web/css/css_selectors/index.md similarity index 100% rename from files/es/web/css/css_selectors/index.html rename to files/es/web/css/css_selectors/index.md diff --git a/files/es/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.html b/files/es/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.md similarity index 100% rename from files/es/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.html rename to files/es/web/css/css_selectors/using_the__colon_target_pseudo-class_in_selectors/index.md diff --git a/files/es/web/css/css_text/index.html b/files/es/web/css/css_text/index.md similarity index 100% rename from files/es/web/css/css_text/index.html rename to files/es/web/css/css_text/index.md diff --git a/files/es/web/css/css_transforms/index.html b/files/es/web/css/css_transforms/index.md similarity index 100% rename from files/es/web/css/css_transforms/index.html rename to files/es/web/css/css_transforms/index.md diff --git a/files/es/web/css/css_transitions/index.html b/files/es/web/css/css_transitions/index.md similarity index 100% rename from files/es/web/css/css_transitions/index.html rename to files/es/web/css/css_transitions/index.md diff --git a/files/es/web/css/css_types/index.html b/files/es/web/css/css_types/index.md similarity index 100% rename from files/es/web/css/css_types/index.html rename to files/es/web/css/css_types/index.md diff --git a/files/es/web/css/css_writing_modes/index.html b/files/es/web/css/css_writing_modes/index.md similarity index 100% rename from files/es/web/css/css_writing_modes/index.html rename to files/es/web/css/css_writing_modes/index.md diff --git a/files/es/web/css/cursor/index.html b/files/es/web/css/cursor/index.md similarity index 100% rename from files/es/web/css/cursor/index.html rename to files/es/web/css/cursor/index.md diff --git a/files/es/web/css/direction/index.html b/files/es/web/css/direction/index.md similarity index 100% rename from files/es/web/css/direction/index.html rename to files/es/web/css/direction/index.md diff --git a/files/es/web/css/env/index.html b/files/es/web/css/env/index.md similarity index 100% rename from files/es/web/css/env/index.html rename to files/es/web/css/env/index.md diff --git a/files/es/web/css/filter-function/blur/index.html b/files/es/web/css/filter-function/blur/index.md similarity index 100% rename from files/es/web/css/filter-function/blur/index.html rename to files/es/web/css/filter-function/blur/index.md diff --git a/files/es/web/css/filter-function/index.html b/files/es/web/css/filter-function/index.md similarity index 100% rename from files/es/web/css/filter-function/index.html rename to files/es/web/css/filter-function/index.md diff --git a/files/es/web/css/filter/index.html b/files/es/web/css/filter/index.md similarity index 100% rename from files/es/web/css/filter/index.html rename to files/es/web/css/filter/index.md diff --git a/files/es/web/css/flex-grow/index.html b/files/es/web/css/flex-grow/index.md similarity index 100% rename from files/es/web/css/flex-grow/index.html rename to files/es/web/css/flex-grow/index.md diff --git a/files/es/web/css/flex-shrink/index.html b/files/es/web/css/flex-shrink/index.md similarity index 100% rename from files/es/web/css/flex-shrink/index.html rename to files/es/web/css/flex-shrink/index.md diff --git a/files/es/web/css/font-family/index.html b/files/es/web/css/font-family/index.md similarity index 100% rename from files/es/web/css/font-family/index.html rename to files/es/web/css/font-family/index.md diff --git a/files/es/web/css/font-language-override/index.html b/files/es/web/css/font-language-override/index.md similarity index 100% rename from files/es/web/css/font-language-override/index.html rename to files/es/web/css/font-language-override/index.md diff --git a/files/es/web/css/font-size-adjust/index.html b/files/es/web/css/font-size-adjust/index.md similarity index 100% rename from files/es/web/css/font-size-adjust/index.html rename to files/es/web/css/font-size-adjust/index.md diff --git a/files/es/web/css/font-size/index.html b/files/es/web/css/font-size/index.md similarity index 100% rename from files/es/web/css/font-size/index.html rename to files/es/web/css/font-size/index.md diff --git a/files/es/web/css/font-style/index.html b/files/es/web/css/font-style/index.md similarity index 100% rename from files/es/web/css/font-style/index.html rename to files/es/web/css/font-style/index.md diff --git a/files/es/web/css/font-weight/index.html b/files/es/web/css/font-weight/index.md similarity index 100% rename from files/es/web/css/font-weight/index.html rename to files/es/web/css/font-weight/index.md diff --git a/files/es/web/css/frequency/index.html b/files/es/web/css/frequency/index.md similarity index 100% rename from files/es/web/css/frequency/index.html rename to files/es/web/css/frequency/index.md diff --git a/files/es/web/css/gap/index.html b/files/es/web/css/gap/index.md similarity index 100% rename from files/es/web/css/gap/index.html rename to files/es/web/css/gap/index.md diff --git a/files/es/web/css/gradient/index.html b/files/es/web/css/gradient/index.md similarity index 100% rename from files/es/web/css/gradient/index.html rename to files/es/web/css/gradient/index.md diff --git a/files/es/web/css/grid-template-areas/index.html b/files/es/web/css/grid-template-areas/index.md similarity index 100% rename from files/es/web/css/grid-template-areas/index.html rename to files/es/web/css/grid-template-areas/index.md diff --git a/files/es/web/css/grid/index.html b/files/es/web/css/grid/index.md similarity index 100% rename from files/es/web/css/grid/index.html rename to files/es/web/css/grid/index.md diff --git a/files/es/web/css/hyphens/index.html b/files/es/web/css/hyphens/index.md similarity index 100% rename from files/es/web/css/hyphens/index.html rename to files/es/web/css/hyphens/index.md diff --git a/files/es/web/css/id_selectors/index.html b/files/es/web/css/id_selectors/index.md similarity index 100% rename from files/es/web/css/id_selectors/index.html rename to files/es/web/css/id_selectors/index.md diff --git a/files/es/web/css/image-rendering/index.html b/files/es/web/css/image-rendering/index.md similarity index 100% rename from files/es/web/css/image-rendering/index.html rename to files/es/web/css/image-rendering/index.md diff --git a/files/es/web/css/image/index.html b/files/es/web/css/image/index.md similarity index 100% rename from files/es/web/css/image/index.html rename to files/es/web/css/image/index.md diff --git a/files/es/web/css/ime-mode/index.html b/files/es/web/css/ime-mode/index.md similarity index 100% rename from files/es/web/css/ime-mode/index.html rename to files/es/web/css/ime-mode/index.md diff --git a/files/es/web/css/inherit/index.html b/files/es/web/css/inherit/index.md similarity index 100% rename from files/es/web/css/inherit/index.html rename to files/es/web/css/inherit/index.md diff --git a/files/es/web/css/inheritance/index.html b/files/es/web/css/inheritance/index.md similarity index 100% rename from files/es/web/css/inheritance/index.html rename to files/es/web/css/inheritance/index.md diff --git a/files/es/web/css/initial/index.html b/files/es/web/css/initial/index.md similarity index 100% rename from files/es/web/css/initial/index.html rename to files/es/web/css/initial/index.md diff --git a/files/es/web/css/initial_value/index.html b/files/es/web/css/initial_value/index.md similarity index 100% rename from files/es/web/css/initial_value/index.html rename to files/es/web/css/initial_value/index.md diff --git a/files/es/web/css/inline-size/index.html b/files/es/web/css/inline-size/index.md similarity index 100% rename from files/es/web/css/inline-size/index.html rename to files/es/web/css/inline-size/index.md diff --git a/files/es/web/css/inset-block-end/index.html b/files/es/web/css/inset-block-end/index.md similarity index 100% rename from files/es/web/css/inset-block-end/index.html rename to files/es/web/css/inset-block-end/index.md diff --git a/files/es/web/css/inset-block-start/index.html b/files/es/web/css/inset-block-start/index.md similarity index 100% rename from files/es/web/css/inset-block-start/index.html rename to files/es/web/css/inset-block-start/index.md diff --git a/files/es/web/css/inset-block/index.html b/files/es/web/css/inset-block/index.md similarity index 100% rename from files/es/web/css/inset-block/index.html rename to files/es/web/css/inset-block/index.md diff --git a/files/es/web/css/inset-inline-end/index.html b/files/es/web/css/inset-inline-end/index.md similarity index 100% rename from files/es/web/css/inset-inline-end/index.html rename to files/es/web/css/inset-inline-end/index.md diff --git a/files/es/web/css/inset-inline-start/index.html b/files/es/web/css/inset-inline-start/index.md similarity index 100% rename from files/es/web/css/inset-inline-start/index.html rename to files/es/web/css/inset-inline-start/index.md diff --git a/files/es/web/css/inset-inline/index.html b/files/es/web/css/inset-inline/index.md similarity index 100% rename from files/es/web/css/inset-inline/index.html rename to files/es/web/css/inset-inline/index.md diff --git a/files/es/web/css/inset/index.html b/files/es/web/css/inset/index.md similarity index 100% rename from files/es/web/css/inset/index.html rename to files/es/web/css/inset/index.md diff --git a/files/es/web/css/integer/index.html b/files/es/web/css/integer/index.md similarity index 100% rename from files/es/web/css/integer/index.html rename to files/es/web/css/integer/index.md diff --git a/files/es/web/css/isolation/index.html b/files/es/web/css/isolation/index.md similarity index 100% rename from files/es/web/css/isolation/index.html rename to files/es/web/css/isolation/index.md diff --git a/files/es/web/css/justify-content/index.html b/files/es/web/css/justify-content/index.md similarity index 100% rename from files/es/web/css/justify-content/index.html rename to files/es/web/css/justify-content/index.md diff --git a/files/es/web/css/layout_cookbook/index.html b/files/es/web/css/layout_cookbook/index.md similarity index 100% rename from files/es/web/css/layout_cookbook/index.html rename to files/es/web/css/layout_cookbook/index.md diff --git a/files/es/web/css/layout_mode/index.html b/files/es/web/css/layout_mode/index.md similarity index 100% rename from files/es/web/css/layout_mode/index.html rename to files/es/web/css/layout_mode/index.md diff --git a/files/es/web/css/left/index.html b/files/es/web/css/left/index.md similarity index 100% rename from files/es/web/css/left/index.html rename to files/es/web/css/left/index.md diff --git a/files/es/web/css/length/index.html b/files/es/web/css/length/index.md similarity index 100% rename from files/es/web/css/length/index.html rename to files/es/web/css/length/index.md diff --git a/files/es/web/css/line-height/index.html b/files/es/web/css/line-height/index.md similarity index 100% rename from files/es/web/css/line-height/index.html rename to files/es/web/css/line-height/index.md diff --git a/files/es/web/css/list-style-image/index.html b/files/es/web/css/list-style-image/index.md similarity index 100% rename from files/es/web/css/list-style-image/index.html rename to files/es/web/css/list-style-image/index.md diff --git a/files/es/web/css/list-style-position/index.html b/files/es/web/css/list-style-position/index.md similarity index 100% rename from files/es/web/css/list-style-position/index.html rename to files/es/web/css/list-style-position/index.md diff --git a/files/es/web/css/list-style-type/index.html b/files/es/web/css/list-style-type/index.md similarity index 100% rename from files/es/web/css/list-style-type/index.html rename to files/es/web/css/list-style-type/index.md diff --git a/files/es/web/css/margin-block-start/index.html b/files/es/web/css/margin-block-start/index.md similarity index 100% rename from files/es/web/css/margin-block-start/index.html rename to files/es/web/css/margin-block-start/index.md diff --git a/files/es/web/css/margin-block/index.html b/files/es/web/css/margin-block/index.md similarity index 100% rename from files/es/web/css/margin-block/index.html rename to files/es/web/css/margin-block/index.md diff --git a/files/es/web/css/margin-bottom/index.html b/files/es/web/css/margin-bottom/index.md similarity index 100% rename from files/es/web/css/margin-bottom/index.html rename to files/es/web/css/margin-bottom/index.md diff --git a/files/es/web/css/margin-inline-end/index.html b/files/es/web/css/margin-inline-end/index.md similarity index 100% rename from files/es/web/css/margin-inline-end/index.html rename to files/es/web/css/margin-inline-end/index.md diff --git a/files/es/web/css/margin-inline-start/index.html b/files/es/web/css/margin-inline-start/index.md similarity index 100% rename from files/es/web/css/margin-inline-start/index.html rename to files/es/web/css/margin-inline-start/index.md diff --git a/files/es/web/css/margin-inline/index.html b/files/es/web/css/margin-inline/index.md similarity index 100% rename from files/es/web/css/margin-inline/index.html rename to files/es/web/css/margin-inline/index.md diff --git a/files/es/web/css/margin-right/index.html b/files/es/web/css/margin-right/index.md similarity index 100% rename from files/es/web/css/margin-right/index.html rename to files/es/web/css/margin-right/index.md diff --git a/files/es/web/css/margin/index.html b/files/es/web/css/margin/index.md similarity index 100% rename from files/es/web/css/margin/index.html rename to files/es/web/css/margin/index.md diff --git a/files/es/web/css/mask-clip/index.html b/files/es/web/css/mask-clip/index.md similarity index 100% rename from files/es/web/css/mask-clip/index.html rename to files/es/web/css/mask-clip/index.md diff --git a/files/es/web/css/mask-image/index.html b/files/es/web/css/mask-image/index.md similarity index 100% rename from files/es/web/css/mask-image/index.html rename to files/es/web/css/mask-image/index.md diff --git a/files/es/web/css/mask-origin/index.html b/files/es/web/css/mask-origin/index.md similarity index 100% rename from files/es/web/css/mask-origin/index.html rename to files/es/web/css/mask-origin/index.md diff --git a/files/es/web/css/mask-position/index.html b/files/es/web/css/mask-position/index.md similarity index 100% rename from files/es/web/css/mask-position/index.html rename to files/es/web/css/mask-position/index.md diff --git a/files/es/web/css/mask-repeat/index.html b/files/es/web/css/mask-repeat/index.md similarity index 100% rename from files/es/web/css/mask-repeat/index.html rename to files/es/web/css/mask-repeat/index.md diff --git a/files/es/web/css/mask/index.html b/files/es/web/css/mask/index.md similarity index 100% rename from files/es/web/css/mask/index.html rename to files/es/web/css/mask/index.md diff --git a/files/es/web/css/max-height/index.html b/files/es/web/css/max-height/index.md similarity index 100% rename from files/es/web/css/max-height/index.html rename to files/es/web/css/max-height/index.md diff --git a/files/es/web/css/max-inline-size/index.html b/files/es/web/css/max-inline-size/index.md similarity index 100% rename from files/es/web/css/max-inline-size/index.html rename to files/es/web/css/max-inline-size/index.md diff --git a/files/es/web/css/media_queries/index.html b/files/es/web/css/media_queries/index.md similarity index 100% rename from files/es/web/css/media_queries/index.html rename to files/es/web/css/media_queries/index.md diff --git a/files/es/web/css/min-block-size/index.html b/files/es/web/css/min-block-size/index.md similarity index 100% rename from files/es/web/css/min-block-size/index.html rename to files/es/web/css/min-block-size/index.md diff --git a/files/es/web/css/min-height/index.html b/files/es/web/css/min-height/index.md similarity index 100% rename from files/es/web/css/min-height/index.html rename to files/es/web/css/min-height/index.md diff --git a/files/es/web/css/min-inline-size/index.html b/files/es/web/css/min-inline-size/index.md similarity index 100% rename from files/es/web/css/min-inline-size/index.html rename to files/es/web/css/min-inline-size/index.md diff --git a/files/es/web/css/min-width/index.html b/files/es/web/css/min-width/index.md similarity index 100% rename from files/es/web/css/min-width/index.html rename to files/es/web/css/min-width/index.md diff --git a/files/es/web/css/min/index.html b/files/es/web/css/min/index.md similarity index 100% rename from files/es/web/css/min/index.html rename to files/es/web/css/min/index.md diff --git a/files/es/web/css/minmax/index.html b/files/es/web/css/minmax/index.md similarity index 100% rename from files/es/web/css/minmax/index.html rename to files/es/web/css/minmax/index.md diff --git a/files/es/web/css/mix-blend-mode/index.html b/files/es/web/css/mix-blend-mode/index.md similarity index 100% rename from files/es/web/css/mix-blend-mode/index.html rename to files/es/web/css/mix-blend-mode/index.md diff --git a/files/es/web/css/mozilla_extensions/index.html b/files/es/web/css/mozilla_extensions/index.md similarity index 100% rename from files/es/web/css/mozilla_extensions/index.html rename to files/es/web/css/mozilla_extensions/index.md diff --git a/files/es/web/css/number/index.html b/files/es/web/css/number/index.md similarity index 100% rename from files/es/web/css/number/index.html rename to files/es/web/css/number/index.md diff --git a/files/es/web/css/object-fit/index.html b/files/es/web/css/object-fit/index.md similarity index 100% rename from files/es/web/css/object-fit/index.html rename to files/es/web/css/object-fit/index.md diff --git a/files/es/web/css/object-position/index.html b/files/es/web/css/object-position/index.md similarity index 100% rename from files/es/web/css/object-position/index.html rename to files/es/web/css/object-position/index.md diff --git a/files/es/web/css/opacity/index.html b/files/es/web/css/opacity/index.md similarity index 100% rename from files/es/web/css/opacity/index.html rename to files/es/web/css/opacity/index.md diff --git a/files/es/web/css/order/index.html b/files/es/web/css/order/index.md similarity index 100% rename from files/es/web/css/order/index.html rename to files/es/web/css/order/index.md diff --git a/files/es/web/css/outline-offset/index.html b/files/es/web/css/outline-offset/index.md similarity index 100% rename from files/es/web/css/outline-offset/index.html rename to files/es/web/css/outline-offset/index.md diff --git a/files/es/web/css/outline-width/index.html b/files/es/web/css/outline-width/index.md similarity index 100% rename from files/es/web/css/outline-width/index.html rename to files/es/web/css/outline-width/index.md diff --git a/files/es/web/css/outline/index.html b/files/es/web/css/outline/index.md similarity index 100% rename from files/es/web/css/outline/index.html rename to files/es/web/css/outline/index.md diff --git a/files/es/web/css/overflow/index.html b/files/es/web/css/overflow/index.md similarity index 100% rename from files/es/web/css/overflow/index.html rename to files/es/web/css/overflow/index.md diff --git a/files/es/web/css/padding-block-end/index.html b/files/es/web/css/padding-block-end/index.md similarity index 100% rename from files/es/web/css/padding-block-end/index.html rename to files/es/web/css/padding-block-end/index.md diff --git a/files/es/web/css/padding-block-start/index.html b/files/es/web/css/padding-block-start/index.md similarity index 100% rename from files/es/web/css/padding-block-start/index.html rename to files/es/web/css/padding-block-start/index.md diff --git a/files/es/web/css/padding-block/index.html b/files/es/web/css/padding-block/index.md similarity index 100% rename from files/es/web/css/padding-block/index.html rename to files/es/web/css/padding-block/index.md diff --git a/files/es/web/css/padding-bottom/index.html b/files/es/web/css/padding-bottom/index.md similarity index 100% rename from files/es/web/css/padding-bottom/index.html rename to files/es/web/css/padding-bottom/index.md diff --git a/files/es/web/css/padding-inline-end/index.html b/files/es/web/css/padding-inline-end/index.md similarity index 100% rename from files/es/web/css/padding-inline-end/index.html rename to files/es/web/css/padding-inline-end/index.md diff --git a/files/es/web/css/padding-inline-start/index.html b/files/es/web/css/padding-inline-start/index.md similarity index 100% rename from files/es/web/css/padding-inline-start/index.html rename to files/es/web/css/padding-inline-start/index.md diff --git a/files/es/web/css/padding-inline/index.html b/files/es/web/css/padding-inline/index.md similarity index 100% rename from files/es/web/css/padding-inline/index.html rename to files/es/web/css/padding-inline/index.md diff --git a/files/es/web/css/padding-top/index.html b/files/es/web/css/padding-top/index.md similarity index 100% rename from files/es/web/css/padding-top/index.html rename to files/es/web/css/padding-top/index.md diff --git a/files/es/web/css/padding/index.html b/files/es/web/css/padding/index.md similarity index 100% rename from files/es/web/css/padding/index.html rename to files/es/web/css/padding/index.md diff --git a/files/es/web/css/percentage/index.html b/files/es/web/css/percentage/index.md similarity index 100% rename from files/es/web/css/percentage/index.html rename to files/es/web/css/percentage/index.md diff --git a/files/es/web/css/print-color-adjust/index.html b/files/es/web/css/print-color-adjust/index.md similarity index 100% rename from files/es/web/css/print-color-adjust/index.html rename to files/es/web/css/print-color-adjust/index.md diff --git a/files/es/web/css/pseudo-classes/index.html b/files/es/web/css/pseudo-classes/index.md similarity index 100% rename from files/es/web/css/pseudo-classes/index.html rename to files/es/web/css/pseudo-classes/index.md diff --git a/files/es/web/css/pseudo-elements/index.html b/files/es/web/css/pseudo-elements/index.md similarity index 100% rename from files/es/web/css/pseudo-elements/index.html rename to files/es/web/css/pseudo-elements/index.md diff --git a/files/es/web/css/quotes/index.html b/files/es/web/css/quotes/index.md similarity index 100% rename from files/es/web/css/quotes/index.html rename to files/es/web/css/quotes/index.md diff --git a/files/es/web/css/reference/index.html b/files/es/web/css/reference/index.md similarity index 100% rename from files/es/web/css/reference/index.html rename to files/es/web/css/reference/index.md diff --git a/files/es/web/css/repeat/index.html b/files/es/web/css/repeat/index.md similarity index 100% rename from files/es/web/css/repeat/index.html rename to files/es/web/css/repeat/index.md diff --git a/files/es/web/css/replaced_element/index.html b/files/es/web/css/replaced_element/index.md similarity index 100% rename from files/es/web/css/replaced_element/index.html rename to files/es/web/css/replaced_element/index.md diff --git a/files/es/web/css/resize/index.html b/files/es/web/css/resize/index.md similarity index 100% rename from files/es/web/css/resize/index.html rename to files/es/web/css/resize/index.md diff --git a/files/es/web/css/resolution/index.html b/files/es/web/css/resolution/index.md similarity index 100% rename from files/es/web/css/resolution/index.html rename to files/es/web/css/resolution/index.md diff --git a/files/es/web/css/resolved_value/index.html b/files/es/web/css/resolved_value/index.md similarity index 100% rename from files/es/web/css/resolved_value/index.html rename to files/es/web/css/resolved_value/index.md diff --git a/files/es/web/css/right/index.html b/files/es/web/css/right/index.md similarity index 100% rename from files/es/web/css/right/index.html rename to files/es/web/css/right/index.md diff --git a/files/es/web/css/scroll-behavior/index.html b/files/es/web/css/scroll-behavior/index.md similarity index 100% rename from files/es/web/css/scroll-behavior/index.html rename to files/es/web/css/scroll-behavior/index.md diff --git a/files/es/web/css/specified_value/index.html b/files/es/web/css/specified_value/index.md similarity index 100% rename from files/es/web/css/specified_value/index.html rename to files/es/web/css/specified_value/index.md diff --git a/files/es/web/css/syntax/index.html b/files/es/web/css/syntax/index.md similarity index 100% rename from files/es/web/css/syntax/index.html rename to files/es/web/css/syntax/index.md diff --git a/files/es/web/css/text-decoration-color/index.html b/files/es/web/css/text-decoration-color/index.md similarity index 100% rename from files/es/web/css/text-decoration-color/index.html rename to files/es/web/css/text-decoration-color/index.md diff --git a/files/es/web/css/text-decoration-style/index.html b/files/es/web/css/text-decoration-style/index.md similarity index 100% rename from files/es/web/css/text-decoration-style/index.html rename to files/es/web/css/text-decoration-style/index.md diff --git a/files/es/web/css/text-decoration/index.html b/files/es/web/css/text-decoration/index.md similarity index 100% rename from files/es/web/css/text-decoration/index.html rename to files/es/web/css/text-decoration/index.md diff --git a/files/es/web/css/text-emphasis-color/index.html b/files/es/web/css/text-emphasis-color/index.md similarity index 100% rename from files/es/web/css/text-emphasis-color/index.html rename to files/es/web/css/text-emphasis-color/index.md diff --git a/files/es/web/css/text-emphasis/index.html b/files/es/web/css/text-emphasis/index.md similarity index 100% rename from files/es/web/css/text-emphasis/index.html rename to files/es/web/css/text-emphasis/index.md diff --git a/files/es/web/css/text-orientation/index.html b/files/es/web/css/text-orientation/index.md similarity index 100% rename from files/es/web/css/text-orientation/index.html rename to files/es/web/css/text-orientation/index.md diff --git a/files/es/web/css/text-shadow/index.html b/files/es/web/css/text-shadow/index.md similarity index 100% rename from files/es/web/css/text-shadow/index.html rename to files/es/web/css/text-shadow/index.md diff --git a/files/es/web/css/time/index.html b/files/es/web/css/time/index.md similarity index 100% rename from files/es/web/css/time/index.html rename to files/es/web/css/time/index.md diff --git a/files/es/web/css/top/index.html b/files/es/web/css/top/index.md similarity index 100% rename from files/es/web/css/top/index.html rename to files/es/web/css/top/index.md diff --git a/files/es/web/css/transform-function/rotate/index.html b/files/es/web/css/transform-function/rotate/index.md similarity index 100% rename from files/es/web/css/transform-function/rotate/index.html rename to files/es/web/css/transform-function/rotate/index.md diff --git a/files/es/web/css/transform-function/scale/index.html b/files/es/web/css/transform-function/scale/index.md similarity index 100% rename from files/es/web/css/transform-function/scale/index.html rename to files/es/web/css/transform-function/scale/index.md diff --git a/files/es/web/css/transform-function/translate/index.html b/files/es/web/css/transform-function/translate/index.md similarity index 100% rename from files/es/web/css/transform-function/translate/index.html rename to files/es/web/css/transform-function/translate/index.md diff --git a/files/es/web/css/transform-function/translatey/index.html b/files/es/web/css/transform-function/translatey/index.md similarity index 100% rename from files/es/web/css/transform-function/translatey/index.html rename to files/es/web/css/transform-function/translatey/index.md diff --git a/files/es/web/css/transform-function/translatez/index.html b/files/es/web/css/transform-function/translatez/index.md similarity index 100% rename from files/es/web/css/transform-function/translatez/index.html rename to files/es/web/css/transform-function/translatez/index.md diff --git a/files/es/web/css/transform-origin/index.html b/files/es/web/css/transform-origin/index.md similarity index 100% rename from files/es/web/css/transform-origin/index.html rename to files/es/web/css/transform-origin/index.md diff --git a/files/es/web/css/transform-style/index.html b/files/es/web/css/transform-style/index.md similarity index 100% rename from files/es/web/css/transform-style/index.html rename to files/es/web/css/transform-style/index.md diff --git a/files/es/web/css/transition-delay/index.html b/files/es/web/css/transition-delay/index.md similarity index 100% rename from files/es/web/css/transition-delay/index.html rename to files/es/web/css/transition-delay/index.md diff --git a/files/es/web/css/transition-property/index.html b/files/es/web/css/transition-property/index.md similarity index 100% rename from files/es/web/css/transition-property/index.html rename to files/es/web/css/transition-property/index.md diff --git a/files/es/web/css/transition/index.html b/files/es/web/css/transition/index.md similarity index 100% rename from files/es/web/css/transition/index.html rename to files/es/web/css/transition/index.md diff --git a/files/es/web/css/tutorials/index.html b/files/es/web/css/tutorials/index.md similarity index 100% rename from files/es/web/css/tutorials/index.html rename to files/es/web/css/tutorials/index.md diff --git a/files/es/web/css/type_selectors/index.html b/files/es/web/css/type_selectors/index.md similarity index 100% rename from files/es/web/css/type_selectors/index.html rename to files/es/web/css/type_selectors/index.md diff --git a/files/es/web/css/universal_selectors/index.html b/files/es/web/css/universal_selectors/index.md similarity index 100% rename from files/es/web/css/universal_selectors/index.html rename to files/es/web/css/universal_selectors/index.md diff --git a/files/es/web/css/url/index.html b/files/es/web/css/url/index.md similarity index 100% rename from files/es/web/css/url/index.html rename to files/es/web/css/url/index.md diff --git a/files/es/web/css/user-modify/index.html b/files/es/web/css/user-modify/index.md similarity index 100% rename from files/es/web/css/user-modify/index.html rename to files/es/web/css/user-modify/index.md diff --git a/files/es/web/css/using_css_custom_properties/index.html b/files/es/web/css/using_css_custom_properties/index.md similarity index 100% rename from files/es/web/css/using_css_custom_properties/index.html rename to files/es/web/css/using_css_custom_properties/index.md diff --git a/files/es/web/css/value_definition_syntax/index.html b/files/es/web/css/value_definition_syntax/index.md similarity index 100% rename from files/es/web/css/value_definition_syntax/index.html rename to files/es/web/css/value_definition_syntax/index.md diff --git a/files/es/web/css/var/index.html b/files/es/web/css/var/index.md similarity index 100% rename from files/es/web/css/var/index.html rename to files/es/web/css/var/index.md diff --git a/files/es/web/css/vertical-align/index.html b/files/es/web/css/vertical-align/index.md similarity index 100% rename from files/es/web/css/vertical-align/index.html rename to files/es/web/css/vertical-align/index.md diff --git a/files/es/web/css/visibility/index.html b/files/es/web/css/visibility/index.md similarity index 100% rename from files/es/web/css/visibility/index.html rename to files/es/web/css/visibility/index.md diff --git a/files/es/web/css/white-space/index.html b/files/es/web/css/white-space/index.md similarity index 100% rename from files/es/web/css/white-space/index.html rename to files/es/web/css/white-space/index.md diff --git a/files/es/web/css/widows/index.html b/files/es/web/css/widows/index.md similarity index 100% rename from files/es/web/css/widows/index.html rename to files/es/web/css/widows/index.md diff --git a/files/es/web/css/width/index.html b/files/es/web/css/width/index.md similarity index 100% rename from files/es/web/css/width/index.html rename to files/es/web/css/width/index.md diff --git a/files/es/web/css/writing-mode/index.html b/files/es/web/css/writing-mode/index.md similarity index 100% rename from files/es/web/css/writing-mode/index.html rename to files/es/web/css/writing-mode/index.md diff --git a/files/es/web/css/z-index/index.html b/files/es/web/css/z-index/index.md similarity index 100% rename from files/es/web/css/z-index/index.html rename to files/es/web/css/z-index/index.md diff --git a/files/es/web/demos/index.html b/files/es/web/demos/index.md similarity index 100% rename from files/es/web/demos/index.html rename to files/es/web/demos/index.md diff --git a/files/es/web/exslt/exsl/node-set/index.html b/files/es/web/exslt/exsl/node-set/index.md similarity index 100% rename from files/es/web/exslt/exsl/node-set/index.html rename to files/es/web/exslt/exsl/node-set/index.md diff --git a/files/es/web/exslt/exsl/object-type/index.html b/files/es/web/exslt/exsl/object-type/index.md similarity index 100% rename from files/es/web/exslt/exsl/object-type/index.html rename to files/es/web/exslt/exsl/object-type/index.md diff --git a/files/es/web/exslt/index.html b/files/es/web/exslt/index.md similarity index 100% rename from files/es/web/exslt/index.html rename to files/es/web/exslt/index.md diff --git a/files/es/web/exslt/math/highest/index.html b/files/es/web/exslt/math/highest/index.md similarity index 100% rename from files/es/web/exslt/math/highest/index.html rename to files/es/web/exslt/math/highest/index.md diff --git a/files/es/web/exslt/math/lowest/index.html b/files/es/web/exslt/math/lowest/index.md similarity index 100% rename from files/es/web/exslt/math/lowest/index.html rename to files/es/web/exslt/math/lowest/index.md diff --git a/files/es/web/exslt/math/max/index.html b/files/es/web/exslt/math/max/index.md similarity index 100% rename from files/es/web/exslt/math/max/index.html rename to files/es/web/exslt/math/max/index.md diff --git a/files/es/web/exslt/math/min/index.html b/files/es/web/exslt/math/min/index.md similarity index 100% rename from files/es/web/exslt/math/min/index.html rename to files/es/web/exslt/math/min/index.md diff --git a/files/es/web/exslt/regexp/match/index.html b/files/es/web/exslt/regexp/match/index.md similarity index 100% rename from files/es/web/exslt/regexp/match/index.html rename to files/es/web/exslt/regexp/match/index.md diff --git a/files/es/web/exslt/regexp/replace/index.html b/files/es/web/exslt/regexp/replace/index.md similarity index 100% rename from files/es/web/exslt/regexp/replace/index.html rename to files/es/web/exslt/regexp/replace/index.md diff --git a/files/es/web/exslt/regexp/test/index.html b/files/es/web/exslt/regexp/test/index.md similarity index 100% rename from files/es/web/exslt/regexp/test/index.html rename to files/es/web/exslt/regexp/test/index.md diff --git a/files/es/web/exslt/set/difference/index.html b/files/es/web/exslt/set/difference/index.md similarity index 100% rename from files/es/web/exslt/set/difference/index.html rename to files/es/web/exslt/set/difference/index.md diff --git a/files/es/web/exslt/set/distinct/index.html b/files/es/web/exslt/set/distinct/index.md similarity index 100% rename from files/es/web/exslt/set/distinct/index.html rename to files/es/web/exslt/set/distinct/index.md diff --git a/files/es/web/exslt/set/has-same-node/index.html b/files/es/web/exslt/set/has-same-node/index.md similarity index 100% rename from files/es/web/exslt/set/has-same-node/index.html rename to files/es/web/exslt/set/has-same-node/index.md diff --git a/files/es/web/exslt/set/intersection/index.html b/files/es/web/exslt/set/intersection/index.md similarity index 100% rename from files/es/web/exslt/set/intersection/index.html rename to files/es/web/exslt/set/intersection/index.md diff --git a/files/es/web/exslt/set/leading/index.html b/files/es/web/exslt/set/leading/index.md similarity index 100% rename from files/es/web/exslt/set/leading/index.html rename to files/es/web/exslt/set/leading/index.md diff --git a/files/es/web/exslt/set/trailing/index.html b/files/es/web/exslt/set/trailing/index.md similarity index 100% rename from files/es/web/exslt/set/trailing/index.html rename to files/es/web/exslt/set/trailing/index.md diff --git a/files/es/web/exslt/str/concat/index.html b/files/es/web/exslt/str/concat/index.md similarity index 100% rename from files/es/web/exslt/str/concat/index.html rename to files/es/web/exslt/str/concat/index.md diff --git a/files/es/web/exslt/str/split/index.html b/files/es/web/exslt/str/split/index.md similarity index 100% rename from files/es/web/exslt/str/split/index.html rename to files/es/web/exslt/str/split/index.md diff --git a/files/es/web/exslt/str/tokenize/index.html b/files/es/web/exslt/str/tokenize/index.md similarity index 100% rename from files/es/web/exslt/str/tokenize/index.html rename to files/es/web/exslt/str/tokenize/index.md diff --git a/files/es/web/guide/ajax/community/index.html b/files/es/web/guide/ajax/community/index.md similarity index 100% rename from files/es/web/guide/ajax/community/index.html rename to files/es/web/guide/ajax/community/index.md diff --git a/files/es/web/guide/ajax/getting_started/index.html b/files/es/web/guide/ajax/getting_started/index.md similarity index 100% rename from files/es/web/guide/ajax/getting_started/index.html rename to files/es/web/guide/ajax/getting_started/index.md diff --git a/files/es/web/guide/api/index.html b/files/es/web/guide/api/index.md similarity index 100% rename from files/es/web/guide/api/index.html rename to files/es/web/guide/api/index.md diff --git a/files/es/web/guide/api/webrtc/peer-to-peer_communications_with_webrtc/index.html b/files/es/web/guide/api/webrtc/peer-to-peer_communications_with_webrtc/index.md similarity index 100% rename from files/es/web/guide/api/webrtc/peer-to-peer_communications_with_webrtc/index.html rename to files/es/web/guide/api/webrtc/peer-to-peer_communications_with_webrtc/index.md diff --git a/files/es/web/guide/css/block_formatting_context/index.html b/files/es/web/guide/css/block_formatting_context/index.md similarity index 100% rename from files/es/web/guide/css/block_formatting_context/index.html rename to files/es/web/guide/css/block_formatting_context/index.md diff --git a/files/es/web/guide/html/content_categories/index.html b/files/es/web/guide/html/content_categories/index.md similarity index 100% rename from files/es/web/guide/html/content_categories/index.html rename to files/es/web/guide/html/content_categories/index.md diff --git a/files/es/web/guide/mobile/index.html b/files/es/web/guide/mobile/index.md similarity index 100% rename from files/es/web/guide/mobile/index.html rename to files/es/web/guide/mobile/index.md diff --git a/files/es/web/guide/parsing_and_serializing_xml/index.html b/files/es/web/guide/parsing_and_serializing_xml/index.md similarity index 100% rename from files/es/web/guide/parsing_and_serializing_xml/index.html rename to files/es/web/guide/parsing_and_serializing_xml/index.md diff --git a/files/es/web/guide/performance/index.html b/files/es/web/guide/performance/index.md similarity index 100% rename from files/es/web/guide/performance/index.html rename to files/es/web/guide/performance/index.md diff --git a/files/es/web/html/attributes/accept/index.html b/files/es/web/html/attributes/accept/index.md similarity index 100% rename from files/es/web/html/attributes/accept/index.html rename to files/es/web/html/attributes/accept/index.md diff --git a/files/es/web/html/attributes/crossorigin/index.html b/files/es/web/html/attributes/crossorigin/index.md similarity index 100% rename from files/es/web/html/attributes/crossorigin/index.html rename to files/es/web/html/attributes/crossorigin/index.md diff --git a/files/es/web/html/attributes/minlength/index.html b/files/es/web/html/attributes/minlength/index.md similarity index 100% rename from files/es/web/html/attributes/minlength/index.html rename to files/es/web/html/attributes/minlength/index.md diff --git a/files/es/web/html/attributes/multiple/index.html b/files/es/web/html/attributes/multiple/index.md similarity index 100% rename from files/es/web/html/attributes/multiple/index.html rename to files/es/web/html/attributes/multiple/index.md diff --git a/files/es/web/html/block-level_elements/index.html b/files/es/web/html/block-level_elements/index.md similarity index 100% rename from files/es/web/html/block-level_elements/index.html rename to files/es/web/html/block-level_elements/index.md diff --git a/files/es/web/html/cors_enabled_image/index.html b/files/es/web/html/cors_enabled_image/index.md similarity index 100% rename from files/es/web/html/cors_enabled_image/index.html rename to files/es/web/html/cors_enabled_image/index.md diff --git a/files/es/web/html/element/abbr/index.html b/files/es/web/html/element/abbr/index.md similarity index 100% rename from files/es/web/html/element/abbr/index.html rename to files/es/web/html/element/abbr/index.md diff --git a/files/es/web/html/element/address/index.html b/files/es/web/html/element/address/index.md similarity index 100% rename from files/es/web/html/element/address/index.html rename to files/es/web/html/element/address/index.md diff --git a/files/es/web/html/element/article/index.html b/files/es/web/html/element/article/index.md similarity index 100% rename from files/es/web/html/element/article/index.html rename to files/es/web/html/element/article/index.md diff --git a/files/es/web/html/element/aside/index.html b/files/es/web/html/element/aside/index.md similarity index 100% rename from files/es/web/html/element/aside/index.html rename to files/es/web/html/element/aside/index.md diff --git a/files/es/web/html/element/audio/index.html b/files/es/web/html/element/audio/index.md similarity index 100% rename from files/es/web/html/element/audio/index.html rename to files/es/web/html/element/audio/index.md diff --git a/files/es/web/html/element/bdi/index.html b/files/es/web/html/element/bdi/index.md similarity index 100% rename from files/es/web/html/element/bdi/index.html rename to files/es/web/html/element/bdi/index.md diff --git a/files/es/web/html/element/blink/index.html b/files/es/web/html/element/blink/index.md similarity index 100% rename from files/es/web/html/element/blink/index.html rename to files/es/web/html/element/blink/index.md diff --git a/files/es/web/html/element/br/index.html b/files/es/web/html/element/br/index.md similarity index 100% rename from files/es/web/html/element/br/index.html rename to files/es/web/html/element/br/index.md diff --git a/files/es/web/html/element/canvas/index.html b/files/es/web/html/element/canvas/index.md similarity index 100% rename from files/es/web/html/element/canvas/index.html rename to files/es/web/html/element/canvas/index.md diff --git a/files/es/web/html/element/data/index.html b/files/es/web/html/element/data/index.md similarity index 100% rename from files/es/web/html/element/data/index.html rename to files/es/web/html/element/data/index.md diff --git a/files/es/web/html/element/em/index.html b/files/es/web/html/element/em/index.md similarity index 100% rename from files/es/web/html/element/em/index.html rename to files/es/web/html/element/em/index.md diff --git a/files/es/web/html/element/embed/index.html b/files/es/web/html/element/embed/index.md similarity index 100% rename from files/es/web/html/element/embed/index.html rename to files/es/web/html/element/embed/index.md diff --git a/files/es/web/html/element/figure/index.html b/files/es/web/html/element/figure/index.md similarity index 100% rename from files/es/web/html/element/figure/index.html rename to files/es/web/html/element/figure/index.md diff --git a/files/es/web/html/element/head/index.html b/files/es/web/html/element/head/index.md similarity index 100% rename from files/es/web/html/element/head/index.html rename to files/es/web/html/element/head/index.md diff --git a/files/es/web/html/element/header/index.html b/files/es/web/html/element/header/index.md similarity index 100% rename from files/es/web/html/element/header/index.html rename to files/es/web/html/element/header/index.md diff --git a/files/es/web/html/element/heading_elements/index.html b/files/es/web/html/element/heading_elements/index.md similarity index 100% rename from files/es/web/html/element/heading_elements/index.html rename to files/es/web/html/element/heading_elements/index.md diff --git a/files/es/web/html/element/hgroup/index.html b/files/es/web/html/element/hgroup/index.md similarity index 100% rename from files/es/web/html/element/hgroup/index.html rename to files/es/web/html/element/hgroup/index.md diff --git a/files/es/web/html/element/html/index.html b/files/es/web/html/element/html/index.md similarity index 100% rename from files/es/web/html/element/html/index.html rename to files/es/web/html/element/html/index.md diff --git a/files/es/web/html/element/image/index.html b/files/es/web/html/element/image/index.md similarity index 100% rename from files/es/web/html/element/image/index.html rename to files/es/web/html/element/image/index.md diff --git a/files/es/web/html/element/index.html b/files/es/web/html/element/index.md similarity index 100% rename from files/es/web/html/element/index.html rename to files/es/web/html/element/index.md diff --git a/files/es/web/html/element/input/color/index.html b/files/es/web/html/element/input/color/index.md similarity index 100% rename from files/es/web/html/element/input/color/index.html rename to files/es/web/html/element/input/color/index.md diff --git a/files/es/web/html/element/input/hidden/index.html b/files/es/web/html/element/input/hidden/index.md similarity index 100% rename from files/es/web/html/element/input/hidden/index.html rename to files/es/web/html/element/input/hidden/index.md diff --git a/files/es/web/html/element/link/index.html b/files/es/web/html/element/link/index.md similarity index 100% rename from files/es/web/html/element/link/index.html rename to files/es/web/html/element/link/index.md diff --git a/files/es/web/html/element/nav/index.html b/files/es/web/html/element/nav/index.md similarity index 100% rename from files/es/web/html/element/nav/index.html rename to files/es/web/html/element/nav/index.md diff --git a/files/es/web/html/element/nobr/index.html b/files/es/web/html/element/nobr/index.md similarity index 100% rename from files/es/web/html/element/nobr/index.html rename to files/es/web/html/element/nobr/index.md diff --git a/files/es/web/html/element/option/index.html b/files/es/web/html/element/option/index.md similarity index 100% rename from files/es/web/html/element/option/index.html rename to files/es/web/html/element/option/index.md diff --git a/files/es/web/html/element/picture/index.html b/files/es/web/html/element/picture/index.md similarity index 100% rename from files/es/web/html/element/picture/index.html rename to files/es/web/html/element/picture/index.md diff --git a/files/es/web/html/element/section/index.html b/files/es/web/html/element/section/index.md similarity index 100% rename from files/es/web/html/element/section/index.html rename to files/es/web/html/element/section/index.md diff --git a/files/es/web/html/element/small/index.html b/files/es/web/html/element/small/index.md similarity index 100% rename from files/es/web/html/element/small/index.html rename to files/es/web/html/element/small/index.md diff --git a/files/es/web/html/element/sub/index.html b/files/es/web/html/element/sub/index.md similarity index 100% rename from files/es/web/html/element/sub/index.html rename to files/es/web/html/element/sub/index.md diff --git a/files/es/web/html/element/template/index.html b/files/es/web/html/element/template/index.md similarity index 100% rename from files/es/web/html/element/template/index.html rename to files/es/web/html/element/template/index.md diff --git a/files/es/web/html/element/textarea/index.html b/files/es/web/html/element/textarea/index.md similarity index 100% rename from files/es/web/html/element/textarea/index.html rename to files/es/web/html/element/textarea/index.md diff --git a/files/es/web/html/element/tr/index.html b/files/es/web/html/element/tr/index.md similarity index 100% rename from files/es/web/html/element/tr/index.html rename to files/es/web/html/element/tr/index.md diff --git a/files/es/web/html/element/wbr/index.html b/files/es/web/html/element/wbr/index.md similarity index 100% rename from files/es/web/html/element/wbr/index.html rename to files/es/web/html/element/wbr/index.md diff --git a/files/es/web/html/element/xmp/index.html b/files/es/web/html/element/xmp/index.md similarity index 100% rename from files/es/web/html/element/xmp/index.html rename to files/es/web/html/element/xmp/index.md diff --git a/files/es/web/html/global_attributes/accesskey/index.html b/files/es/web/html/global_attributes/accesskey/index.md similarity index 100% rename from files/es/web/html/global_attributes/accesskey/index.html rename to files/es/web/html/global_attributes/accesskey/index.md diff --git a/files/es/web/html/global_attributes/autocapitalize/index.html b/files/es/web/html/global_attributes/autocapitalize/index.md similarity index 100% rename from files/es/web/html/global_attributes/autocapitalize/index.html rename to files/es/web/html/global_attributes/autocapitalize/index.md diff --git a/files/es/web/html/global_attributes/class/index.html b/files/es/web/html/global_attributes/class/index.md similarity index 100% rename from files/es/web/html/global_attributes/class/index.html rename to files/es/web/html/global_attributes/class/index.md diff --git a/files/es/web/html/global_attributes/contenteditable/index.html b/files/es/web/html/global_attributes/contenteditable/index.md similarity index 100% rename from files/es/web/html/global_attributes/contenteditable/index.html rename to files/es/web/html/global_attributes/contenteditable/index.md diff --git a/files/es/web/html/global_attributes/contextmenu/index.html b/files/es/web/html/global_attributes/contextmenu/index.md similarity index 100% rename from files/es/web/html/global_attributes/contextmenu/index.html rename to files/es/web/html/global_attributes/contextmenu/index.md diff --git a/files/es/web/html/global_attributes/data-_star_/index.html b/files/es/web/html/global_attributes/data-_star_/index.md similarity index 100% rename from files/es/web/html/global_attributes/data-_star_/index.html rename to files/es/web/html/global_attributes/data-_star_/index.md diff --git a/files/es/web/html/global_attributes/dir/index.html b/files/es/web/html/global_attributes/dir/index.md similarity index 100% rename from files/es/web/html/global_attributes/dir/index.html rename to files/es/web/html/global_attributes/dir/index.md diff --git a/files/es/web/html/global_attributes/draggable/index.html b/files/es/web/html/global_attributes/draggable/index.md similarity index 100% rename from files/es/web/html/global_attributes/draggable/index.html rename to files/es/web/html/global_attributes/draggable/index.md diff --git a/files/es/web/html/global_attributes/hidden/index.html b/files/es/web/html/global_attributes/hidden/index.md similarity index 100% rename from files/es/web/html/global_attributes/hidden/index.html rename to files/es/web/html/global_attributes/hidden/index.md diff --git a/files/es/web/html/global_attributes/id/index.html b/files/es/web/html/global_attributes/id/index.md similarity index 100% rename from files/es/web/html/global_attributes/id/index.html rename to files/es/web/html/global_attributes/id/index.md diff --git a/files/es/web/html/global_attributes/index.html b/files/es/web/html/global_attributes/index.md similarity index 100% rename from files/es/web/html/global_attributes/index.html rename to files/es/web/html/global_attributes/index.md diff --git a/files/es/web/html/global_attributes/is/index.html b/files/es/web/html/global_attributes/is/index.md similarity index 100% rename from files/es/web/html/global_attributes/is/index.html rename to files/es/web/html/global_attributes/is/index.md diff --git a/files/es/web/html/global_attributes/itemprop/index.html b/files/es/web/html/global_attributes/itemprop/index.md similarity index 100% rename from files/es/web/html/global_attributes/itemprop/index.html rename to files/es/web/html/global_attributes/itemprop/index.md diff --git a/files/es/web/html/global_attributes/itemscope/index.html b/files/es/web/html/global_attributes/itemscope/index.md similarity index 100% rename from files/es/web/html/global_attributes/itemscope/index.html rename to files/es/web/html/global_attributes/itemscope/index.md diff --git a/files/es/web/html/global_attributes/lang/index.html b/files/es/web/html/global_attributes/lang/index.md similarity index 100% rename from files/es/web/html/global_attributes/lang/index.html rename to files/es/web/html/global_attributes/lang/index.md diff --git a/files/es/web/html/global_attributes/slot/index.html b/files/es/web/html/global_attributes/slot/index.md similarity index 100% rename from files/es/web/html/global_attributes/slot/index.html rename to files/es/web/html/global_attributes/slot/index.md diff --git a/files/es/web/html/global_attributes/spellcheck/index.html b/files/es/web/html/global_attributes/spellcheck/index.md similarity index 100% rename from files/es/web/html/global_attributes/spellcheck/index.html rename to files/es/web/html/global_attributes/spellcheck/index.md diff --git a/files/es/web/html/global_attributes/style/index.html b/files/es/web/html/global_attributes/style/index.md similarity index 100% rename from files/es/web/html/global_attributes/style/index.html rename to files/es/web/html/global_attributes/style/index.md diff --git a/files/es/web/html/global_attributes/tabindex/index.html b/files/es/web/html/global_attributes/tabindex/index.md similarity index 100% rename from files/es/web/html/global_attributes/tabindex/index.html rename to files/es/web/html/global_attributes/tabindex/index.md diff --git a/files/es/web/html/global_attributes/title/index.html b/files/es/web/html/global_attributes/title/index.md similarity index 100% rename from files/es/web/html/global_attributes/title/index.html rename to files/es/web/html/global_attributes/title/index.md diff --git a/files/es/web/html/global_attributes/translate/index.html b/files/es/web/html/global_attributes/translate/index.md similarity index 100% rename from files/es/web/html/global_attributes/translate/index.html rename to files/es/web/html/global_attributes/translate/index.md diff --git a/files/es/web/html/global_attributes/x-ms-acceleratorkey/index.html b/files/es/web/html/global_attributes/x-ms-acceleratorkey/index.md similarity index 100% rename from files/es/web/html/global_attributes/x-ms-acceleratorkey/index.html rename to files/es/web/html/global_attributes/x-ms-acceleratorkey/index.md diff --git a/files/es/web/html/inline_elements/index.html b/files/es/web/html/inline_elements/index.md similarity index 100% rename from files/es/web/html/inline_elements/index.html rename to files/es/web/html/inline_elements/index.md diff --git a/files/es/web/html/quirks_mode_and_standards_mode/index.html b/files/es/web/html/quirks_mode_and_standards_mode/index.md similarity index 100% rename from files/es/web/html/quirks_mode_and_standards_mode/index.html rename to files/es/web/html/quirks_mode_and_standards_mode/index.md diff --git a/files/es/web/http/authentication/index.html b/files/es/web/http/authentication/index.md similarity index 100% rename from files/es/web/http/authentication/index.html rename to files/es/web/http/authentication/index.md diff --git a/files/es/web/http/basics_of_http/data_urls/index.html b/files/es/web/http/basics_of_http/data_urls/index.md similarity index 100% rename from files/es/web/http/basics_of_http/data_urls/index.html rename to files/es/web/http/basics_of_http/data_urls/index.md diff --git a/files/es/web/http/basics_of_http/evolution_of_http/index.html b/files/es/web/http/basics_of_http/evolution_of_http/index.md similarity index 100% rename from files/es/web/http/basics_of_http/evolution_of_http/index.html rename to files/es/web/http/basics_of_http/evolution_of_http/index.md diff --git a/files/es/web/http/basics_of_http/identifying_resources_on_the_web/index.html b/files/es/web/http/basics_of_http/identifying_resources_on_the_web/index.md similarity index 100% rename from files/es/web/http/basics_of_http/identifying_resources_on_the_web/index.html rename to files/es/web/http/basics_of_http/identifying_resources_on_the_web/index.md diff --git a/files/es/web/http/basics_of_http/index.html b/files/es/web/http/basics_of_http/index.md similarity index 100% rename from files/es/web/http/basics_of_http/index.html rename to files/es/web/http/basics_of_http/index.md diff --git a/files/es/web/http/basics_of_http/mime_types/common_types/index.html b/files/es/web/http/basics_of_http/mime_types/common_types/index.md similarity index 100% rename from files/es/web/http/basics_of_http/mime_types/common_types/index.html rename to files/es/web/http/basics_of_http/mime_types/common_types/index.md diff --git a/files/es/web/http/basics_of_http/mime_types/index.html b/files/es/web/http/basics_of_http/mime_types/index.md similarity index 100% rename from files/es/web/http/basics_of_http/mime_types/index.html rename to files/es/web/http/basics_of_http/mime_types/index.md diff --git a/files/es/web/http/conditional_requests/index.html b/files/es/web/http/conditional_requests/index.md similarity index 100% rename from files/es/web/http/conditional_requests/index.html rename to files/es/web/http/conditional_requests/index.md diff --git a/files/es/web/http/connection_management_in_http_1.x/index.html b/files/es/web/http/connection_management_in_http_1.x/index.md similarity index 100% rename from files/es/web/http/connection_management_in_http_1.x/index.html rename to files/es/web/http/connection_management_in_http_1.x/index.md diff --git a/files/es/web/http/cookies/index.html b/files/es/web/http/cookies/index.md similarity index 100% rename from files/es/web/http/cookies/index.html rename to files/es/web/http/cookies/index.md diff --git a/files/es/web/http/cors/errors/corsmissingalloworigin/index.html b/files/es/web/http/cors/errors/corsmissingalloworigin/index.md similarity index 100% rename from files/es/web/http/cors/errors/corsmissingalloworigin/index.html rename to files/es/web/http/cors/errors/corsmissingalloworigin/index.md diff --git a/files/es/web/http/cors/errors/corspreflightdidnotsucceed/index.html b/files/es/web/http/cors/errors/corspreflightdidnotsucceed/index.md similarity index 100% rename from files/es/web/http/cors/errors/corspreflightdidnotsucceed/index.html rename to files/es/web/http/cors/errors/corspreflightdidnotsucceed/index.md diff --git a/files/es/web/http/cors/errors/corsrequestnothttp/index.html b/files/es/web/http/cors/errors/corsrequestnothttp/index.md similarity index 100% rename from files/es/web/http/cors/errors/corsrequestnothttp/index.html rename to files/es/web/http/cors/errors/corsrequestnothttp/index.md diff --git a/files/es/web/http/cors/errors/index.html b/files/es/web/http/cors/errors/index.md similarity index 100% rename from files/es/web/http/cors/errors/index.html rename to files/es/web/http/cors/errors/index.md diff --git a/files/es/web/http/headers/accept-ranges/index.html b/files/es/web/http/headers/accept-ranges/index.md similarity index 100% rename from files/es/web/http/headers/accept-ranges/index.html rename to files/es/web/http/headers/accept-ranges/index.md diff --git a/files/es/web/http/headers/access-control-allow-credentials/index.html b/files/es/web/http/headers/access-control-allow-credentials/index.md similarity index 100% rename from files/es/web/http/headers/access-control-allow-credentials/index.html rename to files/es/web/http/headers/access-control-allow-credentials/index.md diff --git a/files/es/web/http/headers/access-control-allow-headers/index.html b/files/es/web/http/headers/access-control-allow-headers/index.md similarity index 100% rename from files/es/web/http/headers/access-control-allow-headers/index.html rename to files/es/web/http/headers/access-control-allow-headers/index.md diff --git a/files/es/web/http/headers/access-control-allow-methods/index.html b/files/es/web/http/headers/access-control-allow-methods/index.md similarity index 100% rename from files/es/web/http/headers/access-control-allow-methods/index.html rename to files/es/web/http/headers/access-control-allow-methods/index.md diff --git a/files/es/web/http/headers/access-control-expose-headers/index.html b/files/es/web/http/headers/access-control-expose-headers/index.md similarity index 100% rename from files/es/web/http/headers/access-control-expose-headers/index.html rename to files/es/web/http/headers/access-control-expose-headers/index.md diff --git a/files/es/web/http/headers/age/index.html b/files/es/web/http/headers/age/index.md similarity index 100% rename from files/es/web/http/headers/age/index.html rename to files/es/web/http/headers/age/index.md diff --git a/files/es/web/http/headers/allow/index.html b/files/es/web/http/headers/allow/index.md similarity index 100% rename from files/es/web/http/headers/allow/index.html rename to files/es/web/http/headers/allow/index.md diff --git a/files/es/web/http/headers/authorization/index.html b/files/es/web/http/headers/authorization/index.md similarity index 100% rename from files/es/web/http/headers/authorization/index.html rename to files/es/web/http/headers/authorization/index.md diff --git a/files/es/web/http/headers/content-disposition/index.html b/files/es/web/http/headers/content-disposition/index.md similarity index 100% rename from files/es/web/http/headers/content-disposition/index.html rename to files/es/web/http/headers/content-disposition/index.md diff --git a/files/es/web/http/headers/content-encoding/index.html b/files/es/web/http/headers/content-encoding/index.md similarity index 100% rename from files/es/web/http/headers/content-encoding/index.html rename to files/es/web/http/headers/content-encoding/index.md diff --git a/files/es/web/http/headers/content-length/index.html b/files/es/web/http/headers/content-length/index.md similarity index 100% rename from files/es/web/http/headers/content-length/index.html rename to files/es/web/http/headers/content-length/index.md diff --git a/files/es/web/http/headers/content-location/index.html b/files/es/web/http/headers/content-location/index.md similarity index 100% rename from files/es/web/http/headers/content-location/index.html rename to files/es/web/http/headers/content-location/index.md diff --git a/files/es/web/http/headers/content-type/index.html b/files/es/web/http/headers/content-type/index.md similarity index 100% rename from files/es/web/http/headers/content-type/index.html rename to files/es/web/http/headers/content-type/index.md diff --git a/files/es/web/http/headers/cookie/index.html b/files/es/web/http/headers/cookie/index.md similarity index 100% rename from files/es/web/http/headers/cookie/index.html rename to files/es/web/http/headers/cookie/index.md diff --git a/files/es/web/http/headers/cross-origin-resource-policy/index.html b/files/es/web/http/headers/cross-origin-resource-policy/index.md similarity index 100% rename from files/es/web/http/headers/cross-origin-resource-policy/index.html rename to files/es/web/http/headers/cross-origin-resource-policy/index.md diff --git a/files/es/web/http/headers/digest/index.html b/files/es/web/http/headers/digest/index.md similarity index 100% rename from files/es/web/http/headers/digest/index.html rename to files/es/web/http/headers/digest/index.md diff --git a/files/es/web/http/headers/etag/index.html b/files/es/web/http/headers/etag/index.md similarity index 100% rename from files/es/web/http/headers/etag/index.html rename to files/es/web/http/headers/etag/index.md diff --git a/files/es/web/http/headers/expires/index.html b/files/es/web/http/headers/expires/index.md similarity index 100% rename from files/es/web/http/headers/expires/index.html rename to files/es/web/http/headers/expires/index.md diff --git a/files/es/web/http/headers/host/index.html b/files/es/web/http/headers/host/index.md similarity index 100% rename from files/es/web/http/headers/host/index.html rename to files/es/web/http/headers/host/index.md diff --git a/files/es/web/http/headers/keep-alive/index.html b/files/es/web/http/headers/keep-alive/index.md similarity index 100% rename from files/es/web/http/headers/keep-alive/index.html rename to files/es/web/http/headers/keep-alive/index.md diff --git a/files/es/web/http/headers/origin/index.html b/files/es/web/http/headers/origin/index.md similarity index 100% rename from files/es/web/http/headers/origin/index.html rename to files/es/web/http/headers/origin/index.md diff --git a/files/es/web/http/headers/referer/index.html b/files/es/web/http/headers/referer/index.md similarity index 100% rename from files/es/web/http/headers/referer/index.html rename to files/es/web/http/headers/referer/index.md diff --git a/files/es/web/http/headers/server/index.html b/files/es/web/http/headers/server/index.md similarity index 100% rename from files/es/web/http/headers/server/index.html rename to files/es/web/http/headers/server/index.md diff --git a/files/es/web/http/headers/strict-transport-security/index.html b/files/es/web/http/headers/strict-transport-security/index.md similarity index 100% rename from files/es/web/http/headers/strict-transport-security/index.html rename to files/es/web/http/headers/strict-transport-security/index.md diff --git a/files/es/web/http/headers/transfer-encoding/index.html b/files/es/web/http/headers/transfer-encoding/index.md similarity index 100% rename from files/es/web/http/headers/transfer-encoding/index.html rename to files/es/web/http/headers/transfer-encoding/index.md diff --git a/files/es/web/http/headers/user-agent/firefox/index.html b/files/es/web/http/headers/user-agent/firefox/index.md similarity index 100% rename from files/es/web/http/headers/user-agent/firefox/index.html rename to files/es/web/http/headers/user-agent/firefox/index.md diff --git a/files/es/web/http/headers/vary/index.html b/files/es/web/http/headers/vary/index.md similarity index 100% rename from files/es/web/http/headers/vary/index.html rename to files/es/web/http/headers/vary/index.md diff --git a/files/es/web/http/headers/www-authenticate/index.html b/files/es/web/http/headers/www-authenticate/index.md similarity index 100% rename from files/es/web/http/headers/www-authenticate/index.html rename to files/es/web/http/headers/www-authenticate/index.md diff --git a/files/es/web/http/headers/x-content-type-options/index.html b/files/es/web/http/headers/x-content-type-options/index.md similarity index 100% rename from files/es/web/http/headers/x-content-type-options/index.html rename to files/es/web/http/headers/x-content-type-options/index.md diff --git a/files/es/web/http/headers/x-forwarded-for/index.html b/files/es/web/http/headers/x-forwarded-for/index.md similarity index 100% rename from files/es/web/http/headers/x-forwarded-for/index.html rename to files/es/web/http/headers/x-forwarded-for/index.md diff --git a/files/es/web/http/headers/x-xss-protection/index.html b/files/es/web/http/headers/x-xss-protection/index.md similarity index 100% rename from files/es/web/http/headers/x-xss-protection/index.html rename to files/es/web/http/headers/x-xss-protection/index.md diff --git a/files/es/web/http/messages/index.html b/files/es/web/http/messages/index.md similarity index 100% rename from files/es/web/http/messages/index.html rename to files/es/web/http/messages/index.md diff --git a/files/es/web/http/methods/connect/index.html b/files/es/web/http/methods/connect/index.md similarity index 100% rename from files/es/web/http/methods/connect/index.html rename to files/es/web/http/methods/connect/index.md diff --git a/files/es/web/http/methods/get/index.html b/files/es/web/http/methods/get/index.md similarity index 100% rename from files/es/web/http/methods/get/index.html rename to files/es/web/http/methods/get/index.md diff --git a/files/es/web/http/methods/index.html b/files/es/web/http/methods/index.md similarity index 100% rename from files/es/web/http/methods/index.html rename to files/es/web/http/methods/index.md diff --git a/files/es/web/http/methods/post/index.html b/files/es/web/http/methods/post/index.md similarity index 100% rename from files/es/web/http/methods/post/index.html rename to files/es/web/http/methods/post/index.md diff --git a/files/es/web/http/methods/trace/index.html b/files/es/web/http/methods/trace/index.md similarity index 100% rename from files/es/web/http/methods/trace/index.html rename to files/es/web/http/methods/trace/index.md diff --git a/files/es/web/http/overview/index.html b/files/es/web/http/overview/index.md similarity index 100% rename from files/es/web/http/overview/index.html rename to files/es/web/http/overview/index.md diff --git a/files/es/web/http/protocol_upgrade_mechanism/index.html b/files/es/web/http/protocol_upgrade_mechanism/index.md similarity index 100% rename from files/es/web/http/protocol_upgrade_mechanism/index.html rename to files/es/web/http/protocol_upgrade_mechanism/index.md diff --git a/files/es/web/http/resources_and_specifications/index.html b/files/es/web/http/resources_and_specifications/index.md similarity index 100% rename from files/es/web/http/resources_and_specifications/index.html rename to files/es/web/http/resources_and_specifications/index.md diff --git a/files/es/web/http/session/index.html b/files/es/web/http/session/index.md similarity index 100% rename from files/es/web/http/session/index.html rename to files/es/web/http/session/index.md diff --git a/files/es/web/http/status/100/index.html b/files/es/web/http/status/100/index.md similarity index 100% rename from files/es/web/http/status/100/index.html rename to files/es/web/http/status/100/index.md diff --git a/files/es/web/http/status/101/index.html b/files/es/web/http/status/101/index.md similarity index 100% rename from files/es/web/http/status/101/index.html rename to files/es/web/http/status/101/index.md diff --git a/files/es/web/http/status/200/index.html b/files/es/web/http/status/200/index.md similarity index 100% rename from files/es/web/http/status/200/index.html rename to files/es/web/http/status/200/index.md diff --git a/files/es/web/http/status/201/index.html b/files/es/web/http/status/201/index.md similarity index 100% rename from files/es/web/http/status/201/index.html rename to files/es/web/http/status/201/index.md diff --git a/files/es/web/http/status/202/index.html b/files/es/web/http/status/202/index.md similarity index 100% rename from files/es/web/http/status/202/index.html rename to files/es/web/http/status/202/index.md diff --git a/files/es/web/http/status/203/index.html b/files/es/web/http/status/203/index.md similarity index 100% rename from files/es/web/http/status/203/index.html rename to files/es/web/http/status/203/index.md diff --git a/files/es/web/http/status/302/index.html b/files/es/web/http/status/302/index.md similarity index 100% rename from files/es/web/http/status/302/index.html rename to files/es/web/http/status/302/index.md diff --git a/files/es/web/http/status/304/index.html b/files/es/web/http/status/304/index.md similarity index 100% rename from files/es/web/http/status/304/index.html rename to files/es/web/http/status/304/index.md diff --git a/files/es/web/http/status/400/index.html b/files/es/web/http/status/400/index.md similarity index 100% rename from files/es/web/http/status/400/index.html rename to files/es/web/http/status/400/index.md diff --git a/files/es/web/http/status/401/index.html b/files/es/web/http/status/401/index.md similarity index 100% rename from files/es/web/http/status/401/index.html rename to files/es/web/http/status/401/index.md diff --git a/files/es/web/http/status/404/index.html b/files/es/web/http/status/404/index.md similarity index 100% rename from files/es/web/http/status/404/index.html rename to files/es/web/http/status/404/index.md diff --git a/files/es/web/http/status/408/index.html b/files/es/web/http/status/408/index.md similarity index 100% rename from files/es/web/http/status/408/index.html rename to files/es/web/http/status/408/index.md diff --git a/files/es/web/http/status/413/index.html b/files/es/web/http/status/413/index.md similarity index 100% rename from files/es/web/http/status/413/index.html rename to files/es/web/http/status/413/index.md diff --git a/files/es/web/http/status/418/index.html b/files/es/web/http/status/418/index.md similarity index 100% rename from files/es/web/http/status/418/index.html rename to files/es/web/http/status/418/index.md diff --git a/files/es/web/http/status/500/index.html b/files/es/web/http/status/500/index.md similarity index 100% rename from files/es/web/http/status/500/index.html rename to files/es/web/http/status/500/index.md diff --git a/files/es/web/http/status/502/index.html b/files/es/web/http/status/502/index.md similarity index 100% rename from files/es/web/http/status/502/index.html rename to files/es/web/http/status/502/index.md diff --git a/files/es/web/http/status/503/index.html b/files/es/web/http/status/503/index.md similarity index 100% rename from files/es/web/http/status/503/index.html rename to files/es/web/http/status/503/index.md diff --git a/files/es/web/http/status/504/index.html b/files/es/web/http/status/504/index.md similarity index 100% rename from files/es/web/http/status/504/index.html rename to files/es/web/http/status/504/index.md diff --git a/files/es/web/http/status/505/index.html b/files/es/web/http/status/505/index.md similarity index 100% rename from files/es/web/http/status/505/index.html rename to files/es/web/http/status/505/index.md diff --git a/files/es/web/javascript/a_re-introduction_to_javascript/index.html b/files/es/web/javascript/a_re-introduction_to_javascript/index.md similarity index 100% rename from files/es/web/javascript/a_re-introduction_to_javascript/index.html rename to files/es/web/javascript/a_re-introduction_to_javascript/index.md diff --git a/files/es/web/javascript/about_javascript/index.html b/files/es/web/javascript/about_javascript/index.md similarity index 100% rename from files/es/web/javascript/about_javascript/index.html rename to files/es/web/javascript/about_javascript/index.md diff --git a/files/es/web/javascript/closures/index.html b/files/es/web/javascript/closures/index.md similarity index 100% rename from files/es/web/javascript/closures/index.html rename to files/es/web/javascript/closures/index.md diff --git a/files/es/web/javascript/data_structures/index.html b/files/es/web/javascript/data_structures/index.md similarity index 100% rename from files/es/web/javascript/data_structures/index.html rename to files/es/web/javascript/data_structures/index.md diff --git a/files/es/web/javascript/eventloop/index.html b/files/es/web/javascript/eventloop/index.md similarity index 100% rename from files/es/web/javascript/eventloop/index.html rename to files/es/web/javascript/eventloop/index.md diff --git a/files/es/web/javascript/guide/control_flow_and_error_handling/index.html b/files/es/web/javascript/guide/control_flow_and_error_handling/index.md similarity index 100% rename from files/es/web/javascript/guide/control_flow_and_error_handling/index.html rename to files/es/web/javascript/guide/control_flow_and_error_handling/index.md diff --git a/files/es/web/javascript/guide/expressions_and_operators/index.html b/files/es/web/javascript/guide/expressions_and_operators/index.md similarity index 100% rename from files/es/web/javascript/guide/expressions_and_operators/index.html rename to files/es/web/javascript/guide/expressions_and_operators/index.md diff --git a/files/es/web/javascript/guide/functions/index.html b/files/es/web/javascript/guide/functions/index.md similarity index 100% rename from files/es/web/javascript/guide/functions/index.html rename to files/es/web/javascript/guide/functions/index.md diff --git a/files/es/web/javascript/guide/grammar_and_types/index.html b/files/es/web/javascript/guide/grammar_and_types/index.md similarity index 100% rename from files/es/web/javascript/guide/grammar_and_types/index.html rename to files/es/web/javascript/guide/grammar_and_types/index.md diff --git a/files/es/web/javascript/guide/indexed_collections/index.html b/files/es/web/javascript/guide/indexed_collections/index.md similarity index 100% rename from files/es/web/javascript/guide/indexed_collections/index.html rename to files/es/web/javascript/guide/indexed_collections/index.md diff --git a/files/es/web/javascript/guide/introduction/index.html b/files/es/web/javascript/guide/introduction/index.md similarity index 100% rename from files/es/web/javascript/guide/introduction/index.html rename to files/es/web/javascript/guide/introduction/index.md diff --git a/files/es/web/javascript/guide/iterators_and_generators/index.html b/files/es/web/javascript/guide/iterators_and_generators/index.md similarity index 100% rename from files/es/web/javascript/guide/iterators_and_generators/index.html rename to files/es/web/javascript/guide/iterators_and_generators/index.md diff --git a/files/es/web/javascript/guide/keyed_collections/index.html b/files/es/web/javascript/guide/keyed_collections/index.md similarity index 100% rename from files/es/web/javascript/guide/keyed_collections/index.html rename to files/es/web/javascript/guide/keyed_collections/index.md diff --git a/files/es/web/javascript/guide/loops_and_iteration/index.html b/files/es/web/javascript/guide/loops_and_iteration/index.md similarity index 100% rename from files/es/web/javascript/guide/loops_and_iteration/index.html rename to files/es/web/javascript/guide/loops_and_iteration/index.md diff --git a/files/es/web/javascript/guide/modules/index.html b/files/es/web/javascript/guide/modules/index.md similarity index 100% rename from files/es/web/javascript/guide/modules/index.html rename to files/es/web/javascript/guide/modules/index.md diff --git a/files/es/web/javascript/guide/numbers_and_dates/index.html b/files/es/web/javascript/guide/numbers_and_dates/index.md similarity index 100% rename from files/es/web/javascript/guide/numbers_and_dates/index.html rename to files/es/web/javascript/guide/numbers_and_dates/index.md diff --git a/files/es/web/javascript/guide/regular_expressions/index.html b/files/es/web/javascript/guide/regular_expressions/index.md similarity index 100% rename from files/es/web/javascript/guide/regular_expressions/index.html rename to files/es/web/javascript/guide/regular_expressions/index.md diff --git a/files/es/web/javascript/guide/using_promises/index.html b/files/es/web/javascript/guide/using_promises/index.md similarity index 100% rename from files/es/web/javascript/guide/using_promises/index.html rename to files/es/web/javascript/guide/using_promises/index.md diff --git a/files/es/web/javascript/guide/working_with_objects/index.html b/files/es/web/javascript/guide/working_with_objects/index.md similarity index 100% rename from files/es/web/javascript/guide/working_with_objects/index.html rename to files/es/web/javascript/guide/working_with_objects/index.md diff --git a/files/es/web/javascript/inheritance_and_the_prototype_chain/index.html b/files/es/web/javascript/inheritance_and_the_prototype_chain/index.md similarity index 100% rename from files/es/web/javascript/inheritance_and_the_prototype_chain/index.html rename to files/es/web/javascript/inheritance_and_the_prototype_chain/index.md diff --git a/files/es/web/javascript/javascript_technologies_overview/index.html b/files/es/web/javascript/javascript_technologies_overview/index.md similarity index 100% rename from files/es/web/javascript/javascript_technologies_overview/index.html rename to files/es/web/javascript/javascript_technologies_overview/index.md diff --git a/files/es/web/javascript/memory_management/index.html b/files/es/web/javascript/memory_management/index.md similarity index 100% rename from files/es/web/javascript/memory_management/index.html rename to files/es/web/javascript/memory_management/index.md diff --git a/files/es/web/javascript/reference/about/index.html b/files/es/web/javascript/reference/about/index.md similarity index 100% rename from files/es/web/javascript/reference/about/index.html rename to files/es/web/javascript/reference/about/index.md diff --git a/files/es/web/javascript/reference/classes/constructor/index.html b/files/es/web/javascript/reference/classes/constructor/index.md similarity index 100% rename from files/es/web/javascript/reference/classes/constructor/index.html rename to files/es/web/javascript/reference/classes/constructor/index.md diff --git a/files/es/web/javascript/reference/classes/extends/index.html b/files/es/web/javascript/reference/classes/extends/index.md similarity index 100% rename from files/es/web/javascript/reference/classes/extends/index.html rename to files/es/web/javascript/reference/classes/extends/index.md diff --git a/files/es/web/javascript/reference/classes/private_class_fields/index.html b/files/es/web/javascript/reference/classes/private_class_fields/index.md similarity index 100% rename from files/es/web/javascript/reference/classes/private_class_fields/index.html rename to files/es/web/javascript/reference/classes/private_class_fields/index.md diff --git a/files/es/web/javascript/reference/classes/public_class_fields/index.html b/files/es/web/javascript/reference/classes/public_class_fields/index.md similarity index 100% rename from files/es/web/javascript/reference/classes/public_class_fields/index.html rename to files/es/web/javascript/reference/classes/public_class_fields/index.md diff --git a/files/es/web/javascript/reference/classes/static/index.html b/files/es/web/javascript/reference/classes/static/index.md similarity index 100% rename from files/es/web/javascript/reference/classes/static/index.html rename to files/es/web/javascript/reference/classes/static/index.md diff --git a/files/es/web/javascript/reference/deprecated_and_obsolete_features/index.html b/files/es/web/javascript/reference/deprecated_and_obsolete_features/index.md similarity index 100% rename from files/es/web/javascript/reference/deprecated_and_obsolete_features/index.html rename to files/es/web/javascript/reference/deprecated_and_obsolete_features/index.md diff --git a/files/es/web/javascript/reference/errors/bad_octal/index.html b/files/es/web/javascript/reference/errors/bad_octal/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/bad_octal/index.html rename to files/es/web/javascript/reference/errors/bad_octal/index.md diff --git a/files/es/web/javascript/reference/errors/bad_regexp_flag/index.html b/files/es/web/javascript/reference/errors/bad_regexp_flag/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/bad_regexp_flag/index.html rename to files/es/web/javascript/reference/errors/bad_regexp_flag/index.md diff --git a/files/es/web/javascript/reference/errors/deprecated_source_map_pragma/index.html b/files/es/web/javascript/reference/errors/deprecated_source_map_pragma/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/deprecated_source_map_pragma/index.html rename to files/es/web/javascript/reference/errors/deprecated_source_map_pragma/index.md diff --git a/files/es/web/javascript/reference/errors/illegal_character/index.html b/files/es/web/javascript/reference/errors/illegal_character/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/illegal_character/index.html rename to files/es/web/javascript/reference/errors/illegal_character/index.md diff --git a/files/es/web/javascript/reference/errors/in_operator_no_object/index.html b/files/es/web/javascript/reference/errors/in_operator_no_object/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/in_operator_no_object/index.html rename to files/es/web/javascript/reference/errors/in_operator_no_object/index.md diff --git a/files/es/web/javascript/reference/errors/index.html b/files/es/web/javascript/reference/errors/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/index.html rename to files/es/web/javascript/reference/errors/index.md diff --git a/files/es/web/javascript/reference/errors/malformed_formal_parameter/index.html b/files/es/web/javascript/reference/errors/malformed_formal_parameter/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/malformed_formal_parameter/index.html rename to files/es/web/javascript/reference/errors/malformed_formal_parameter/index.md diff --git a/files/es/web/javascript/reference/errors/missing_curly_after_property_list/index.html b/files/es/web/javascript/reference/errors/missing_curly_after_property_list/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/missing_curly_after_property_list/index.html rename to files/es/web/javascript/reference/errors/missing_curly_after_property_list/index.md diff --git a/files/es/web/javascript/reference/errors/missing_formal_parameter/index.html b/files/es/web/javascript/reference/errors/missing_formal_parameter/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/missing_formal_parameter/index.html rename to files/es/web/javascript/reference/errors/missing_formal_parameter/index.md diff --git a/files/es/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html b/files/es/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.html rename to files/es/web/javascript/reference/errors/missing_parenthesis_after_argument_list/index.md diff --git a/files/es/web/javascript/reference/errors/missing_semicolon_before_statement/index.html b/files/es/web/javascript/reference/errors/missing_semicolon_before_statement/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/missing_semicolon_before_statement/index.html rename to files/es/web/javascript/reference/errors/missing_semicolon_before_statement/index.md diff --git a/files/es/web/javascript/reference/errors/more_arguments_needed/index.html b/files/es/web/javascript/reference/errors/more_arguments_needed/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/more_arguments_needed/index.html rename to files/es/web/javascript/reference/errors/more_arguments_needed/index.md diff --git a/files/es/web/javascript/reference/errors/no_variable_name/index.html b/files/es/web/javascript/reference/errors/no_variable_name/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/no_variable_name/index.html rename to files/es/web/javascript/reference/errors/no_variable_name/index.md diff --git a/files/es/web/javascript/reference/errors/not_a_codepoint/index.html b/files/es/web/javascript/reference/errors/not_a_codepoint/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/not_a_codepoint/index.html rename to files/es/web/javascript/reference/errors/not_a_codepoint/index.md diff --git a/files/es/web/javascript/reference/errors/not_a_function/index.html b/files/es/web/javascript/reference/errors/not_a_function/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/not_a_function/index.html rename to files/es/web/javascript/reference/errors/not_a_function/index.md diff --git a/files/es/web/javascript/reference/errors/not_defined/index.html b/files/es/web/javascript/reference/errors/not_defined/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/not_defined/index.html rename to files/es/web/javascript/reference/errors/not_defined/index.md diff --git a/files/es/web/javascript/reference/errors/property_access_denied/index.html b/files/es/web/javascript/reference/errors/property_access_denied/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/property_access_denied/index.html rename to files/es/web/javascript/reference/errors/property_access_denied/index.md diff --git a/files/es/web/javascript/reference/errors/stmt_after_return/index.html b/files/es/web/javascript/reference/errors/stmt_after_return/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/stmt_after_return/index.html rename to files/es/web/javascript/reference/errors/stmt_after_return/index.md diff --git a/files/es/web/javascript/reference/errors/strict_non_simple_params/index.html b/files/es/web/javascript/reference/errors/strict_non_simple_params/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/strict_non_simple_params/index.html rename to files/es/web/javascript/reference/errors/strict_non_simple_params/index.md diff --git a/files/es/web/javascript/reference/errors/too_much_recursion/index.html b/files/es/web/javascript/reference/errors/too_much_recursion/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/too_much_recursion/index.html rename to files/es/web/javascript/reference/errors/too_much_recursion/index.md diff --git a/files/es/web/javascript/reference/errors/undefined_prop/index.html b/files/es/web/javascript/reference/errors/undefined_prop/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/undefined_prop/index.html rename to files/es/web/javascript/reference/errors/undefined_prop/index.md diff --git a/files/es/web/javascript/reference/errors/unexpected_token/index.html b/files/es/web/javascript/reference/errors/unexpected_token/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/unexpected_token/index.html rename to files/es/web/javascript/reference/errors/unexpected_token/index.md diff --git a/files/es/web/javascript/reference/errors/unexpected_type/index.html b/files/es/web/javascript/reference/errors/unexpected_type/index.md similarity index 100% rename from files/es/web/javascript/reference/errors/unexpected_type/index.html rename to files/es/web/javascript/reference/errors/unexpected_type/index.md diff --git a/files/es/web/javascript/reference/functions/arguments/callee/index.html b/files/es/web/javascript/reference/functions/arguments/callee/index.md similarity index 100% rename from files/es/web/javascript/reference/functions/arguments/callee/index.html rename to files/es/web/javascript/reference/functions/arguments/callee/index.md diff --git a/files/es/web/javascript/reference/functions/arguments/length/index.html b/files/es/web/javascript/reference/functions/arguments/length/index.md similarity index 100% rename from files/es/web/javascript/reference/functions/arguments/length/index.html rename to files/es/web/javascript/reference/functions/arguments/length/index.md diff --git a/files/es/web/javascript/reference/functions/get/index.html b/files/es/web/javascript/reference/functions/get/index.md similarity index 100% rename from files/es/web/javascript/reference/functions/get/index.html rename to files/es/web/javascript/reference/functions/get/index.md diff --git a/files/es/web/javascript/reference/functions/rest_parameters/index.html b/files/es/web/javascript/reference/functions/rest_parameters/index.md similarity index 100% rename from files/es/web/javascript/reference/functions/rest_parameters/index.html rename to files/es/web/javascript/reference/functions/rest_parameters/index.md diff --git a/files/es/web/javascript/reference/functions/set/index.html b/files/es/web/javascript/reference/functions/set/index.md similarity index 100% rename from files/es/web/javascript/reference/functions/set/index.html rename to files/es/web/javascript/reference/functions/set/index.md diff --git a/files/es/web/javascript/reference/global_objects/aggregateerror/index.html b/files/es/web/javascript/reference/global_objects/aggregateerror/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/aggregateerror/index.html rename to files/es/web/javascript/reference/global_objects/aggregateerror/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/@@iterator/index.html b/files/es/web/javascript/reference/global_objects/array/@@iterator/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/@@iterator/index.html rename to files/es/web/javascript/reference/global_objects/array/@@iterator/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/@@species/index.html b/files/es/web/javascript/reference/global_objects/array/@@species/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/@@species/index.html rename to files/es/web/javascript/reference/global_objects/array/@@species/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/@@unscopables/index.html b/files/es/web/javascript/reference/global_objects/array/@@unscopables/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/@@unscopables/index.html rename to files/es/web/javascript/reference/global_objects/array/@@unscopables/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/entries/index.html b/files/es/web/javascript/reference/global_objects/array/entries/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/entries/index.html rename to files/es/web/javascript/reference/global_objects/array/entries/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/fill/index.html b/files/es/web/javascript/reference/global_objects/array/fill/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/fill/index.html rename to files/es/web/javascript/reference/global_objects/array/fill/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/find/index.html b/files/es/web/javascript/reference/global_objects/array/find/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/find/index.html rename to files/es/web/javascript/reference/global_objects/array/find/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/findindex/index.html b/files/es/web/javascript/reference/global_objects/array/findindex/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/findindex/index.html rename to files/es/web/javascript/reference/global_objects/array/findindex/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/from/index.html b/files/es/web/javascript/reference/global_objects/array/from/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/from/index.html rename to files/es/web/javascript/reference/global_objects/array/from/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/includes/index.html b/files/es/web/javascript/reference/global_objects/array/includes/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/includes/index.html rename to files/es/web/javascript/reference/global_objects/array/includes/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/index.html b/files/es/web/javascript/reference/global_objects/array/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/index.html rename to files/es/web/javascript/reference/global_objects/array/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/indexof/index.html b/files/es/web/javascript/reference/global_objects/array/indexof/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/indexof/index.html rename to files/es/web/javascript/reference/global_objects/array/indexof/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/isarray/index.html b/files/es/web/javascript/reference/global_objects/array/isarray/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/isarray/index.html rename to files/es/web/javascript/reference/global_objects/array/isarray/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/join/index.html b/files/es/web/javascript/reference/global_objects/array/join/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/join/index.html rename to files/es/web/javascript/reference/global_objects/array/join/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/keys/index.html b/files/es/web/javascript/reference/global_objects/array/keys/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/keys/index.html rename to files/es/web/javascript/reference/global_objects/array/keys/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/lastindexof/index.html b/files/es/web/javascript/reference/global_objects/array/lastindexof/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/lastindexof/index.html rename to files/es/web/javascript/reference/global_objects/array/lastindexof/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/length/index.html b/files/es/web/javascript/reference/global_objects/array/length/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/length/index.html rename to files/es/web/javascript/reference/global_objects/array/length/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/of/index.html b/files/es/web/javascript/reference/global_objects/array/of/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/of/index.html rename to files/es/web/javascript/reference/global_objects/array/of/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/pop/index.html b/files/es/web/javascript/reference/global_objects/array/pop/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/pop/index.html rename to files/es/web/javascript/reference/global_objects/array/pop/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/push/index.html b/files/es/web/javascript/reference/global_objects/array/push/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/push/index.html rename to files/es/web/javascript/reference/global_objects/array/push/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/reduce/index.html b/files/es/web/javascript/reference/global_objects/array/reduce/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/reduce/index.html rename to files/es/web/javascript/reference/global_objects/array/reduce/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/reduceright/index.html b/files/es/web/javascript/reference/global_objects/array/reduceright/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/reduceright/index.html rename to files/es/web/javascript/reference/global_objects/array/reduceright/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/reverse/index.html b/files/es/web/javascript/reference/global_objects/array/reverse/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/reverse/index.html rename to files/es/web/javascript/reference/global_objects/array/reverse/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/shift/index.html b/files/es/web/javascript/reference/global_objects/array/shift/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/shift/index.html rename to files/es/web/javascript/reference/global_objects/array/shift/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/some/index.html b/files/es/web/javascript/reference/global_objects/array/some/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/some/index.html rename to files/es/web/javascript/reference/global_objects/array/some/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/sort/index.html b/files/es/web/javascript/reference/global_objects/array/sort/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/sort/index.html rename to files/es/web/javascript/reference/global_objects/array/sort/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/tolocalestring/index.html b/files/es/web/javascript/reference/global_objects/array/tolocalestring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/tolocalestring/index.html rename to files/es/web/javascript/reference/global_objects/array/tolocalestring/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/tostring/index.html b/files/es/web/javascript/reference/global_objects/array/tostring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/tostring/index.html rename to files/es/web/javascript/reference/global_objects/array/tostring/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/unshift/index.html b/files/es/web/javascript/reference/global_objects/array/unshift/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/unshift/index.html rename to files/es/web/javascript/reference/global_objects/array/unshift/index.md diff --git a/files/es/web/javascript/reference/global_objects/array/values/index.html b/files/es/web/javascript/reference/global_objects/array/values/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/array/values/index.html rename to files/es/web/javascript/reference/global_objects/array/values/index.md diff --git a/files/es/web/javascript/reference/global_objects/arraybuffer/@@species/index.html b/files/es/web/javascript/reference/global_objects/arraybuffer/@@species/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/arraybuffer/@@species/index.html rename to files/es/web/javascript/reference/global_objects/arraybuffer/@@species/index.md diff --git a/files/es/web/javascript/reference/global_objects/arraybuffer/bytelength/index.html b/files/es/web/javascript/reference/global_objects/arraybuffer/bytelength/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/arraybuffer/bytelength/index.html rename to files/es/web/javascript/reference/global_objects/arraybuffer/bytelength/index.md diff --git a/files/es/web/javascript/reference/global_objects/boolean/index.html b/files/es/web/javascript/reference/global_objects/boolean/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/boolean/index.html rename to files/es/web/javascript/reference/global_objects/boolean/index.md diff --git a/files/es/web/javascript/reference/global_objects/boolean/tostring/index.html b/files/es/web/javascript/reference/global_objects/boolean/tostring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/boolean/tostring/index.html rename to files/es/web/javascript/reference/global_objects/boolean/tostring/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/getdate/index.html b/files/es/web/javascript/reference/global_objects/date/getdate/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/getdate/index.html rename to files/es/web/javascript/reference/global_objects/date/getdate/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/getday/index.html b/files/es/web/javascript/reference/global_objects/date/getday/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/getday/index.html rename to files/es/web/javascript/reference/global_objects/date/getday/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/getfullyear/index.html b/files/es/web/javascript/reference/global_objects/date/getfullyear/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/getfullyear/index.html rename to files/es/web/javascript/reference/global_objects/date/getfullyear/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/gethours/index.html b/files/es/web/javascript/reference/global_objects/date/gethours/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/gethours/index.html rename to files/es/web/javascript/reference/global_objects/date/gethours/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/getmilliseconds/index.html b/files/es/web/javascript/reference/global_objects/date/getmilliseconds/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/getmilliseconds/index.html rename to files/es/web/javascript/reference/global_objects/date/getmilliseconds/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/getminutes/index.html b/files/es/web/javascript/reference/global_objects/date/getminutes/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/getminutes/index.html rename to files/es/web/javascript/reference/global_objects/date/getminutes/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/getmonth/index.html b/files/es/web/javascript/reference/global_objects/date/getmonth/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/getmonth/index.html rename to files/es/web/javascript/reference/global_objects/date/getmonth/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/getseconds/index.html b/files/es/web/javascript/reference/global_objects/date/getseconds/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/getseconds/index.html rename to files/es/web/javascript/reference/global_objects/date/getseconds/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/gettime/index.html b/files/es/web/javascript/reference/global_objects/date/gettime/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/gettime/index.html rename to files/es/web/javascript/reference/global_objects/date/gettime/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/getutcfullyear/index.html b/files/es/web/javascript/reference/global_objects/date/getutcfullyear/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/getutcfullyear/index.html rename to files/es/web/javascript/reference/global_objects/date/getutcfullyear/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/now/index.html b/files/es/web/javascript/reference/global_objects/date/now/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/now/index.html rename to files/es/web/javascript/reference/global_objects/date/now/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/parse/index.html b/files/es/web/javascript/reference/global_objects/date/parse/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/parse/index.html rename to files/es/web/javascript/reference/global_objects/date/parse/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/setfullyear/index.html b/files/es/web/javascript/reference/global_objects/date/setfullyear/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/setfullyear/index.html rename to files/es/web/javascript/reference/global_objects/date/setfullyear/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/setmonth/index.html b/files/es/web/javascript/reference/global_objects/date/setmonth/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/setmonth/index.html rename to files/es/web/javascript/reference/global_objects/date/setmonth/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/todatestring/index.html b/files/es/web/javascript/reference/global_objects/date/todatestring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/todatestring/index.html rename to files/es/web/javascript/reference/global_objects/date/todatestring/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/toisostring/index.html b/files/es/web/javascript/reference/global_objects/date/toisostring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/toisostring/index.html rename to files/es/web/javascript/reference/global_objects/date/toisostring/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/tolocalestring/index.html b/files/es/web/javascript/reference/global_objects/date/tolocalestring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/tolocalestring/index.html rename to files/es/web/javascript/reference/global_objects/date/tolocalestring/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/tolocaletimestring/index.html b/files/es/web/javascript/reference/global_objects/date/tolocaletimestring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/tolocaletimestring/index.html rename to files/es/web/javascript/reference/global_objects/date/tolocaletimestring/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/toutcstring/index.html b/files/es/web/javascript/reference/global_objects/date/toutcstring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/toutcstring/index.html rename to files/es/web/javascript/reference/global_objects/date/toutcstring/index.md diff --git a/files/es/web/javascript/reference/global_objects/date/utc/index.html b/files/es/web/javascript/reference/global_objects/date/utc/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/date/utc/index.html rename to files/es/web/javascript/reference/global_objects/date/utc/index.md diff --git a/files/es/web/javascript/reference/global_objects/decodeuri/index.html b/files/es/web/javascript/reference/global_objects/decodeuri/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/decodeuri/index.html rename to files/es/web/javascript/reference/global_objects/decodeuri/index.md diff --git a/files/es/web/javascript/reference/global_objects/encodeuri/index.html b/files/es/web/javascript/reference/global_objects/encodeuri/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/encodeuri/index.html rename to files/es/web/javascript/reference/global_objects/encodeuri/index.md diff --git a/files/es/web/javascript/reference/global_objects/error/error/index.html b/files/es/web/javascript/reference/global_objects/error/error/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/error/error/index.html rename to files/es/web/javascript/reference/global_objects/error/error/index.md diff --git a/files/es/web/javascript/reference/global_objects/error/filename/index.html b/files/es/web/javascript/reference/global_objects/error/filename/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/error/filename/index.html rename to files/es/web/javascript/reference/global_objects/error/filename/index.md diff --git a/files/es/web/javascript/reference/global_objects/error/index.html b/files/es/web/javascript/reference/global_objects/error/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/error/index.html rename to files/es/web/javascript/reference/global_objects/error/index.md diff --git a/files/es/web/javascript/reference/global_objects/error/message/index.html b/files/es/web/javascript/reference/global_objects/error/message/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/error/message/index.html rename to files/es/web/javascript/reference/global_objects/error/message/index.md diff --git a/files/es/web/javascript/reference/global_objects/error/name/index.html b/files/es/web/javascript/reference/global_objects/error/name/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/error/name/index.html rename to files/es/web/javascript/reference/global_objects/error/name/index.md diff --git a/files/es/web/javascript/reference/global_objects/error/tostring/index.html b/files/es/web/javascript/reference/global_objects/error/tostring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/error/tostring/index.html rename to files/es/web/javascript/reference/global_objects/error/tostring/index.md diff --git a/files/es/web/javascript/reference/global_objects/escape/index.html b/files/es/web/javascript/reference/global_objects/escape/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/escape/index.html rename to files/es/web/javascript/reference/global_objects/escape/index.md diff --git a/files/es/web/javascript/reference/global_objects/function/arguments/index.html b/files/es/web/javascript/reference/global_objects/function/arguments/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/function/arguments/index.html rename to files/es/web/javascript/reference/global_objects/function/arguments/index.md diff --git a/files/es/web/javascript/reference/global_objects/function/bind/index.html b/files/es/web/javascript/reference/global_objects/function/bind/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/function/bind/index.html rename to files/es/web/javascript/reference/global_objects/function/bind/index.md diff --git a/files/es/web/javascript/reference/global_objects/function/index.html b/files/es/web/javascript/reference/global_objects/function/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/function/index.html rename to files/es/web/javascript/reference/global_objects/function/index.md diff --git a/files/es/web/javascript/reference/global_objects/function/length/index.html b/files/es/web/javascript/reference/global_objects/function/length/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/function/length/index.html rename to files/es/web/javascript/reference/global_objects/function/length/index.md diff --git a/files/es/web/javascript/reference/global_objects/function/tostring/index.html b/files/es/web/javascript/reference/global_objects/function/tostring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/function/tostring/index.html rename to files/es/web/javascript/reference/global_objects/function/tostring/index.md diff --git a/files/es/web/javascript/reference/global_objects/generator/index.html b/files/es/web/javascript/reference/global_objects/generator/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/generator/index.html rename to files/es/web/javascript/reference/global_objects/generator/index.md diff --git a/files/es/web/javascript/reference/global_objects/generator/next/index.html b/files/es/web/javascript/reference/global_objects/generator/next/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/generator/next/index.html rename to files/es/web/javascript/reference/global_objects/generator/next/index.md diff --git a/files/es/web/javascript/reference/global_objects/generator/return/index.html b/files/es/web/javascript/reference/global_objects/generator/return/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/generator/return/index.html rename to files/es/web/javascript/reference/global_objects/generator/return/index.md diff --git a/files/es/web/javascript/reference/global_objects/generator/throw/index.html b/files/es/web/javascript/reference/global_objects/generator/throw/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/generator/throw/index.html rename to files/es/web/javascript/reference/global_objects/generator/throw/index.md diff --git a/files/es/web/javascript/reference/global_objects/infinity/index.html b/files/es/web/javascript/reference/global_objects/infinity/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/infinity/index.html rename to files/es/web/javascript/reference/global_objects/infinity/index.md diff --git a/files/es/web/javascript/reference/global_objects/internalerror/index.html b/files/es/web/javascript/reference/global_objects/internalerror/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/internalerror/index.html rename to files/es/web/javascript/reference/global_objects/internalerror/index.md diff --git a/files/es/web/javascript/reference/global_objects/internalerror/internalerror/index.html b/files/es/web/javascript/reference/global_objects/internalerror/internalerror/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/internalerror/internalerror/index.html rename to files/es/web/javascript/reference/global_objects/internalerror/internalerror/index.md diff --git a/files/es/web/javascript/reference/global_objects/intl/index.html b/files/es/web/javascript/reference/global_objects/intl/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/intl/index.html rename to files/es/web/javascript/reference/global_objects/intl/index.md diff --git a/files/es/web/javascript/reference/global_objects/intl/numberformat/format/index.html b/files/es/web/javascript/reference/global_objects/intl/numberformat/format/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/intl/numberformat/format/index.html rename to files/es/web/javascript/reference/global_objects/intl/numberformat/format/index.md diff --git a/files/es/web/javascript/reference/global_objects/isfinite/index.html b/files/es/web/javascript/reference/global_objects/isfinite/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/isfinite/index.html rename to files/es/web/javascript/reference/global_objects/isfinite/index.md diff --git a/files/es/web/javascript/reference/global_objects/isnan/index.html b/files/es/web/javascript/reference/global_objects/isnan/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/isnan/index.html rename to files/es/web/javascript/reference/global_objects/isnan/index.md diff --git a/files/es/web/javascript/reference/global_objects/json/index.html b/files/es/web/javascript/reference/global_objects/json/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/json/index.html rename to files/es/web/javascript/reference/global_objects/json/index.md diff --git a/files/es/web/javascript/reference/global_objects/json/parse/index.html b/files/es/web/javascript/reference/global_objects/json/parse/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/json/parse/index.html rename to files/es/web/javascript/reference/global_objects/json/parse/index.md diff --git a/files/es/web/javascript/reference/global_objects/json/stringify/index.html b/files/es/web/javascript/reference/global_objects/json/stringify/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/json/stringify/index.html rename to files/es/web/javascript/reference/global_objects/json/stringify/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/acos/index.html b/files/es/web/javascript/reference/global_objects/math/acos/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/acos/index.html rename to files/es/web/javascript/reference/global_objects/math/acos/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/acosh/index.html b/files/es/web/javascript/reference/global_objects/math/acosh/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/acosh/index.html rename to files/es/web/javascript/reference/global_objects/math/acosh/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/asin/index.html b/files/es/web/javascript/reference/global_objects/math/asin/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/asin/index.html rename to files/es/web/javascript/reference/global_objects/math/asin/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/asinh/index.html b/files/es/web/javascript/reference/global_objects/math/asinh/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/asinh/index.html rename to files/es/web/javascript/reference/global_objects/math/asinh/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/atan2/index.html b/files/es/web/javascript/reference/global_objects/math/atan2/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/atan2/index.html rename to files/es/web/javascript/reference/global_objects/math/atan2/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/atanh/index.html b/files/es/web/javascript/reference/global_objects/math/atanh/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/atanh/index.html rename to files/es/web/javascript/reference/global_objects/math/atanh/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/ceil/index.html b/files/es/web/javascript/reference/global_objects/math/ceil/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/ceil/index.html rename to files/es/web/javascript/reference/global_objects/math/ceil/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/e/index.html b/files/es/web/javascript/reference/global_objects/math/e/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/e/index.html rename to files/es/web/javascript/reference/global_objects/math/e/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/exp/index.html b/files/es/web/javascript/reference/global_objects/math/exp/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/exp/index.html rename to files/es/web/javascript/reference/global_objects/math/exp/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/floor/index.html b/files/es/web/javascript/reference/global_objects/math/floor/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/floor/index.html rename to files/es/web/javascript/reference/global_objects/math/floor/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/hypot/index.html b/files/es/web/javascript/reference/global_objects/math/hypot/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/hypot/index.html rename to files/es/web/javascript/reference/global_objects/math/hypot/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/index.html b/files/es/web/javascript/reference/global_objects/math/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/index.html rename to files/es/web/javascript/reference/global_objects/math/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/ln10/index.html b/files/es/web/javascript/reference/global_objects/math/ln10/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/ln10/index.html rename to files/es/web/javascript/reference/global_objects/math/ln10/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/ln2/index.html b/files/es/web/javascript/reference/global_objects/math/ln2/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/ln2/index.html rename to files/es/web/javascript/reference/global_objects/math/ln2/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/log/index.html b/files/es/web/javascript/reference/global_objects/math/log/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/log/index.html rename to files/es/web/javascript/reference/global_objects/math/log/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/log10/index.html b/files/es/web/javascript/reference/global_objects/math/log10/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/log10/index.html rename to files/es/web/javascript/reference/global_objects/math/log10/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/log10e/index.html b/files/es/web/javascript/reference/global_objects/math/log10e/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/log10e/index.html rename to files/es/web/javascript/reference/global_objects/math/log10e/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/log2/index.html b/files/es/web/javascript/reference/global_objects/math/log2/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/log2/index.html rename to files/es/web/javascript/reference/global_objects/math/log2/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/log2e/index.html b/files/es/web/javascript/reference/global_objects/math/log2e/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/log2e/index.html rename to files/es/web/javascript/reference/global_objects/math/log2e/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/min/index.html b/files/es/web/javascript/reference/global_objects/math/min/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/min/index.html rename to files/es/web/javascript/reference/global_objects/math/min/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/pi/index.html b/files/es/web/javascript/reference/global_objects/math/pi/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/pi/index.html rename to files/es/web/javascript/reference/global_objects/math/pi/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/pow/index.html b/files/es/web/javascript/reference/global_objects/math/pow/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/pow/index.html rename to files/es/web/javascript/reference/global_objects/math/pow/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/sign/index.html b/files/es/web/javascript/reference/global_objects/math/sign/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/sign/index.html rename to files/es/web/javascript/reference/global_objects/math/sign/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/sin/index.html b/files/es/web/javascript/reference/global_objects/math/sin/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/sin/index.html rename to files/es/web/javascript/reference/global_objects/math/sin/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/sqrt/index.html b/files/es/web/javascript/reference/global_objects/math/sqrt/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/sqrt/index.html rename to files/es/web/javascript/reference/global_objects/math/sqrt/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/sqrt1_2/index.html b/files/es/web/javascript/reference/global_objects/math/sqrt1_2/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/sqrt1_2/index.html rename to files/es/web/javascript/reference/global_objects/math/sqrt1_2/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/sqrt2/index.html b/files/es/web/javascript/reference/global_objects/math/sqrt2/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/sqrt2/index.html rename to files/es/web/javascript/reference/global_objects/math/sqrt2/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/tanh/index.html b/files/es/web/javascript/reference/global_objects/math/tanh/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/tanh/index.html rename to files/es/web/javascript/reference/global_objects/math/tanh/index.md diff --git a/files/es/web/javascript/reference/global_objects/math/trunc/index.html b/files/es/web/javascript/reference/global_objects/math/trunc/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/math/trunc/index.html rename to files/es/web/javascript/reference/global_objects/math/trunc/index.md diff --git a/files/es/web/javascript/reference/global_objects/nan/index.html b/files/es/web/javascript/reference/global_objects/nan/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/nan/index.html rename to files/es/web/javascript/reference/global_objects/nan/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/index.html b/files/es/web/javascript/reference/global_objects/number/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/index.html rename to files/es/web/javascript/reference/global_objects/number/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/isfinite/index.html b/files/es/web/javascript/reference/global_objects/number/isfinite/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/isfinite/index.html rename to files/es/web/javascript/reference/global_objects/number/isfinite/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/isinteger/index.html b/files/es/web/javascript/reference/global_objects/number/isinteger/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/isinteger/index.html rename to files/es/web/javascript/reference/global_objects/number/isinteger/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/isnan/index.html b/files/es/web/javascript/reference/global_objects/number/isnan/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/isnan/index.html rename to files/es/web/javascript/reference/global_objects/number/isnan/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/issafeinteger/index.html b/files/es/web/javascript/reference/global_objects/number/issafeinteger/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/issafeinteger/index.html rename to files/es/web/javascript/reference/global_objects/number/issafeinteger/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/max_value/index.html b/files/es/web/javascript/reference/global_objects/number/max_value/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/max_value/index.html rename to files/es/web/javascript/reference/global_objects/number/max_value/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/min_value/index.html b/files/es/web/javascript/reference/global_objects/number/min_value/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/min_value/index.html rename to files/es/web/javascript/reference/global_objects/number/min_value/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/nan/index.html b/files/es/web/javascript/reference/global_objects/number/nan/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/nan/index.html rename to files/es/web/javascript/reference/global_objects/number/nan/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/negative_infinity/index.html b/files/es/web/javascript/reference/global_objects/number/negative_infinity/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/negative_infinity/index.html rename to files/es/web/javascript/reference/global_objects/number/negative_infinity/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/parseint/index.html b/files/es/web/javascript/reference/global_objects/number/parseint/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/parseint/index.html rename to files/es/web/javascript/reference/global_objects/number/parseint/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/positive_infinity/index.html b/files/es/web/javascript/reference/global_objects/number/positive_infinity/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/positive_infinity/index.html rename to files/es/web/javascript/reference/global_objects/number/positive_infinity/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/tofixed/index.html b/files/es/web/javascript/reference/global_objects/number/tofixed/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/tofixed/index.html rename to files/es/web/javascript/reference/global_objects/number/tofixed/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/tolocalestring/index.html b/files/es/web/javascript/reference/global_objects/number/tolocalestring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/tolocalestring/index.html rename to files/es/web/javascript/reference/global_objects/number/tolocalestring/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/toprecision/index.html b/files/es/web/javascript/reference/global_objects/number/toprecision/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/toprecision/index.html rename to files/es/web/javascript/reference/global_objects/number/toprecision/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/tostring/index.html b/files/es/web/javascript/reference/global_objects/number/tostring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/tostring/index.html rename to files/es/web/javascript/reference/global_objects/number/tostring/index.md diff --git a/files/es/web/javascript/reference/global_objects/number/valueof/index.html b/files/es/web/javascript/reference/global_objects/number/valueof/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/number/valueof/index.html rename to files/es/web/javascript/reference/global_objects/number/valueof/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/assign/index.html b/files/es/web/javascript/reference/global_objects/object/assign/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/assign/index.html rename to files/es/web/javascript/reference/global_objects/object/assign/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/constructor/index.html b/files/es/web/javascript/reference/global_objects/object/constructor/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/constructor/index.html rename to files/es/web/javascript/reference/global_objects/object/constructor/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/create/index.html b/files/es/web/javascript/reference/global_objects/object/create/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/create/index.html rename to files/es/web/javascript/reference/global_objects/object/create/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/defineproperty/index.html b/files/es/web/javascript/reference/global_objects/object/defineproperty/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/defineproperty/index.html rename to files/es/web/javascript/reference/global_objects/object/defineproperty/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/entries/index.html b/files/es/web/javascript/reference/global_objects/object/entries/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/entries/index.html rename to files/es/web/javascript/reference/global_objects/object/entries/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/fromentries/index.html b/files/es/web/javascript/reference/global_objects/object/fromentries/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/fromentries/index.html rename to files/es/web/javascript/reference/global_objects/object/fromentries/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html b/files/es/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.html rename to files/es/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.html b/files/es/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.html rename to files/es/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/getownpropertynames/index.html b/files/es/web/javascript/reference/global_objects/object/getownpropertynames/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/getownpropertynames/index.html rename to files/es/web/javascript/reference/global_objects/object/getownpropertynames/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/getownpropertysymbols/index.html b/files/es/web/javascript/reference/global_objects/object/getownpropertysymbols/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/getownpropertysymbols/index.html rename to files/es/web/javascript/reference/global_objects/object/getownpropertysymbols/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/getprototypeof/index.html b/files/es/web/javascript/reference/global_objects/object/getprototypeof/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/getprototypeof/index.html rename to files/es/web/javascript/reference/global_objects/object/getprototypeof/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/hasownproperty/index.html b/files/es/web/javascript/reference/global_objects/object/hasownproperty/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/hasownproperty/index.html rename to files/es/web/javascript/reference/global_objects/object/hasownproperty/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/is/index.html b/files/es/web/javascript/reference/global_objects/object/is/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/is/index.html rename to files/es/web/javascript/reference/global_objects/object/is/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/isextensible/index.html b/files/es/web/javascript/reference/global_objects/object/isextensible/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/isextensible/index.html rename to files/es/web/javascript/reference/global_objects/object/isextensible/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/isfrozen/index.html b/files/es/web/javascript/reference/global_objects/object/isfrozen/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/isfrozen/index.html rename to files/es/web/javascript/reference/global_objects/object/isfrozen/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/isprototypeof/index.html b/files/es/web/javascript/reference/global_objects/object/isprototypeof/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/isprototypeof/index.html rename to files/es/web/javascript/reference/global_objects/object/isprototypeof/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/issealed/index.html b/files/es/web/javascript/reference/global_objects/object/issealed/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/issealed/index.html rename to files/es/web/javascript/reference/global_objects/object/issealed/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/keys/index.html b/files/es/web/javascript/reference/global_objects/object/keys/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/keys/index.html rename to files/es/web/javascript/reference/global_objects/object/keys/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/preventextensions/index.html b/files/es/web/javascript/reference/global_objects/object/preventextensions/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/preventextensions/index.html rename to files/es/web/javascript/reference/global_objects/object/preventextensions/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/propertyisenumerable/index.html b/files/es/web/javascript/reference/global_objects/object/propertyisenumerable/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/propertyisenumerable/index.html rename to files/es/web/javascript/reference/global_objects/object/propertyisenumerable/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/proto/index.html b/files/es/web/javascript/reference/global_objects/object/proto/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/proto/index.html rename to files/es/web/javascript/reference/global_objects/object/proto/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/seal/index.html b/files/es/web/javascript/reference/global_objects/object/seal/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/seal/index.html rename to files/es/web/javascript/reference/global_objects/object/seal/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/setprototypeof/index.html b/files/es/web/javascript/reference/global_objects/object/setprototypeof/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/setprototypeof/index.html rename to files/es/web/javascript/reference/global_objects/object/setprototypeof/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/tolocalestring/index.html b/files/es/web/javascript/reference/global_objects/object/tolocalestring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/tolocalestring/index.html rename to files/es/web/javascript/reference/global_objects/object/tolocalestring/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/tostring/index.html b/files/es/web/javascript/reference/global_objects/object/tostring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/tostring/index.html rename to files/es/web/javascript/reference/global_objects/object/tostring/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/valueof/index.html b/files/es/web/javascript/reference/global_objects/object/valueof/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/valueof/index.html rename to files/es/web/javascript/reference/global_objects/object/valueof/index.md diff --git a/files/es/web/javascript/reference/global_objects/object/values/index.html b/files/es/web/javascript/reference/global_objects/object/values/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/object/values/index.html rename to files/es/web/javascript/reference/global_objects/object/values/index.md diff --git a/files/es/web/javascript/reference/global_objects/parseint/index.html b/files/es/web/javascript/reference/global_objects/parseint/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/parseint/index.html rename to files/es/web/javascript/reference/global_objects/parseint/index.md diff --git a/files/es/web/javascript/reference/global_objects/promise/all/index.html b/files/es/web/javascript/reference/global_objects/promise/all/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/promise/all/index.html rename to files/es/web/javascript/reference/global_objects/promise/all/index.md diff --git a/files/es/web/javascript/reference/global_objects/promise/catch/index.html b/files/es/web/javascript/reference/global_objects/promise/catch/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/promise/catch/index.html rename to files/es/web/javascript/reference/global_objects/promise/catch/index.md diff --git a/files/es/web/javascript/reference/global_objects/promise/finally/index.html b/files/es/web/javascript/reference/global_objects/promise/finally/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/promise/finally/index.html rename to files/es/web/javascript/reference/global_objects/promise/finally/index.md diff --git a/files/es/web/javascript/reference/global_objects/promise/race/index.html b/files/es/web/javascript/reference/global_objects/promise/race/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/promise/race/index.html rename to files/es/web/javascript/reference/global_objects/promise/race/index.md diff --git a/files/es/web/javascript/reference/global_objects/promise/then/index.html b/files/es/web/javascript/reference/global_objects/promise/then/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/promise/then/index.html rename to files/es/web/javascript/reference/global_objects/promise/then/index.md diff --git a/files/es/web/javascript/reference/global_objects/proxy/proxy/getownpropertydescriptor/index.html b/files/es/web/javascript/reference/global_objects/proxy/proxy/getownpropertydescriptor/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/proxy/proxy/getownpropertydescriptor/index.html rename to files/es/web/javascript/reference/global_objects/proxy/proxy/getownpropertydescriptor/index.md diff --git a/files/es/web/javascript/reference/global_objects/proxy/proxy/index.html b/files/es/web/javascript/reference/global_objects/proxy/proxy/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/proxy/proxy/index.html rename to files/es/web/javascript/reference/global_objects/proxy/proxy/index.md diff --git a/files/es/web/javascript/reference/global_objects/referenceerror/index.html b/files/es/web/javascript/reference/global_objects/referenceerror/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/referenceerror/index.html rename to files/es/web/javascript/reference/global_objects/referenceerror/index.md diff --git a/files/es/web/javascript/reference/global_objects/reflect/index.html b/files/es/web/javascript/reference/global_objects/reflect/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/reflect/index.html rename to files/es/web/javascript/reference/global_objects/reflect/index.md diff --git a/files/es/web/javascript/reference/global_objects/reflect/set/index.html b/files/es/web/javascript/reference/global_objects/reflect/set/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/reflect/set/index.html rename to files/es/web/javascript/reference/global_objects/reflect/set/index.md diff --git a/files/es/web/javascript/reference/global_objects/regexp/compile/index.html b/files/es/web/javascript/reference/global_objects/regexp/compile/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/regexp/compile/index.html rename to files/es/web/javascript/reference/global_objects/regexp/compile/index.md diff --git a/files/es/web/javascript/reference/global_objects/regexp/exec/index.html b/files/es/web/javascript/reference/global_objects/regexp/exec/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/regexp/exec/index.html rename to files/es/web/javascript/reference/global_objects/regexp/exec/index.md diff --git a/files/es/web/javascript/reference/global_objects/regexp/ignorecase/index.html b/files/es/web/javascript/reference/global_objects/regexp/ignorecase/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/regexp/ignorecase/index.html rename to files/es/web/javascript/reference/global_objects/regexp/ignorecase/index.md diff --git a/files/es/web/javascript/reference/global_objects/regexp/index.html b/files/es/web/javascript/reference/global_objects/regexp/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/regexp/index.html rename to files/es/web/javascript/reference/global_objects/regexp/index.md diff --git a/files/es/web/javascript/reference/global_objects/regexp/rightcontext/index.html b/files/es/web/javascript/reference/global_objects/regexp/rightcontext/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/regexp/rightcontext/index.html rename to files/es/web/javascript/reference/global_objects/regexp/rightcontext/index.md diff --git a/files/es/web/javascript/reference/global_objects/regexp/test/index.html b/files/es/web/javascript/reference/global_objects/regexp/test/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/regexp/test/index.html rename to files/es/web/javascript/reference/global_objects/regexp/test/index.md diff --git a/files/es/web/javascript/reference/global_objects/regexp/tostring/index.html b/files/es/web/javascript/reference/global_objects/regexp/tostring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/regexp/tostring/index.html rename to files/es/web/javascript/reference/global_objects/regexp/tostring/index.md diff --git a/files/es/web/javascript/reference/global_objects/set/add/index.html b/files/es/web/javascript/reference/global_objects/set/add/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/set/add/index.html rename to files/es/web/javascript/reference/global_objects/set/add/index.md diff --git a/files/es/web/javascript/reference/global_objects/set/clear/index.html b/files/es/web/javascript/reference/global_objects/set/clear/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/set/clear/index.html rename to files/es/web/javascript/reference/global_objects/set/clear/index.md diff --git a/files/es/web/javascript/reference/global_objects/set/delete/index.html b/files/es/web/javascript/reference/global_objects/set/delete/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/set/delete/index.html rename to files/es/web/javascript/reference/global_objects/set/delete/index.md diff --git a/files/es/web/javascript/reference/global_objects/set/has/index.html b/files/es/web/javascript/reference/global_objects/set/has/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/set/has/index.html rename to files/es/web/javascript/reference/global_objects/set/has/index.md diff --git a/files/es/web/javascript/reference/global_objects/set/size/index.html b/files/es/web/javascript/reference/global_objects/set/size/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/set/size/index.html rename to files/es/web/javascript/reference/global_objects/set/size/index.md diff --git a/files/es/web/javascript/reference/global_objects/set/values/index.html b/files/es/web/javascript/reference/global_objects/set/values/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/set/values/index.html rename to files/es/web/javascript/reference/global_objects/set/values/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/anchor/index.html b/files/es/web/javascript/reference/global_objects/string/anchor/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/anchor/index.html rename to files/es/web/javascript/reference/global_objects/string/anchor/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/big/index.html b/files/es/web/javascript/reference/global_objects/string/big/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/big/index.html rename to files/es/web/javascript/reference/global_objects/string/big/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/blink/index.html b/files/es/web/javascript/reference/global_objects/string/blink/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/blink/index.html rename to files/es/web/javascript/reference/global_objects/string/blink/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/bold/index.html b/files/es/web/javascript/reference/global_objects/string/bold/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/bold/index.html rename to files/es/web/javascript/reference/global_objects/string/bold/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/charat/index.html b/files/es/web/javascript/reference/global_objects/string/charat/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/charat/index.html rename to files/es/web/javascript/reference/global_objects/string/charat/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/charcodeat/index.html b/files/es/web/javascript/reference/global_objects/string/charcodeat/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/charcodeat/index.html rename to files/es/web/javascript/reference/global_objects/string/charcodeat/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/codepointat/index.html b/files/es/web/javascript/reference/global_objects/string/codepointat/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/codepointat/index.html rename to files/es/web/javascript/reference/global_objects/string/codepointat/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/concat/index.html b/files/es/web/javascript/reference/global_objects/string/concat/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/concat/index.html rename to files/es/web/javascript/reference/global_objects/string/concat/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/endswith/index.html b/files/es/web/javascript/reference/global_objects/string/endswith/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/endswith/index.html rename to files/es/web/javascript/reference/global_objects/string/endswith/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/fixed/index.html b/files/es/web/javascript/reference/global_objects/string/fixed/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/fixed/index.html rename to files/es/web/javascript/reference/global_objects/string/fixed/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/fontcolor/index.html b/files/es/web/javascript/reference/global_objects/string/fontcolor/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/fontcolor/index.html rename to files/es/web/javascript/reference/global_objects/string/fontcolor/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/fontsize/index.html b/files/es/web/javascript/reference/global_objects/string/fontsize/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/fontsize/index.html rename to files/es/web/javascript/reference/global_objects/string/fontsize/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/fromcharcode/index.html b/files/es/web/javascript/reference/global_objects/string/fromcharcode/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/fromcharcode/index.html rename to files/es/web/javascript/reference/global_objects/string/fromcharcode/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/fromcodepoint/index.html b/files/es/web/javascript/reference/global_objects/string/fromcodepoint/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/fromcodepoint/index.html rename to files/es/web/javascript/reference/global_objects/string/fromcodepoint/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/includes/index.html b/files/es/web/javascript/reference/global_objects/string/includes/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/includes/index.html rename to files/es/web/javascript/reference/global_objects/string/includes/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/index.html b/files/es/web/javascript/reference/global_objects/string/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/index.html rename to files/es/web/javascript/reference/global_objects/string/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/indexof/index.html b/files/es/web/javascript/reference/global_objects/string/indexof/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/indexof/index.html rename to files/es/web/javascript/reference/global_objects/string/indexof/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/italics/index.html b/files/es/web/javascript/reference/global_objects/string/italics/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/italics/index.html rename to files/es/web/javascript/reference/global_objects/string/italics/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/lastindexof/index.html b/files/es/web/javascript/reference/global_objects/string/lastindexof/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/lastindexof/index.html rename to files/es/web/javascript/reference/global_objects/string/lastindexof/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/length/index.html b/files/es/web/javascript/reference/global_objects/string/length/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/length/index.html rename to files/es/web/javascript/reference/global_objects/string/length/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/link/index.html b/files/es/web/javascript/reference/global_objects/string/link/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/link/index.html rename to files/es/web/javascript/reference/global_objects/string/link/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/match/index.html b/files/es/web/javascript/reference/global_objects/string/match/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/match/index.html rename to files/es/web/javascript/reference/global_objects/string/match/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/matchall/index.html b/files/es/web/javascript/reference/global_objects/string/matchall/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/matchall/index.html rename to files/es/web/javascript/reference/global_objects/string/matchall/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/normalize/index.html b/files/es/web/javascript/reference/global_objects/string/normalize/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/normalize/index.html rename to files/es/web/javascript/reference/global_objects/string/normalize/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/padstart/index.html b/files/es/web/javascript/reference/global_objects/string/padstart/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/padstart/index.html rename to files/es/web/javascript/reference/global_objects/string/padstart/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/raw/index.html b/files/es/web/javascript/reference/global_objects/string/raw/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/raw/index.html rename to files/es/web/javascript/reference/global_objects/string/raw/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/repeat/index.html b/files/es/web/javascript/reference/global_objects/string/repeat/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/repeat/index.html rename to files/es/web/javascript/reference/global_objects/string/repeat/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/search/index.html b/files/es/web/javascript/reference/global_objects/string/search/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/search/index.html rename to files/es/web/javascript/reference/global_objects/string/search/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/slice/index.html b/files/es/web/javascript/reference/global_objects/string/slice/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/slice/index.html rename to files/es/web/javascript/reference/global_objects/string/slice/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/small/index.html b/files/es/web/javascript/reference/global_objects/string/small/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/small/index.html rename to files/es/web/javascript/reference/global_objects/string/small/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/startswith/index.html b/files/es/web/javascript/reference/global_objects/string/startswith/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/startswith/index.html rename to files/es/web/javascript/reference/global_objects/string/startswith/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/strike/index.html b/files/es/web/javascript/reference/global_objects/string/strike/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/strike/index.html rename to files/es/web/javascript/reference/global_objects/string/strike/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/sub/index.html b/files/es/web/javascript/reference/global_objects/string/sub/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/sub/index.html rename to files/es/web/javascript/reference/global_objects/string/sub/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/substr/index.html b/files/es/web/javascript/reference/global_objects/string/substr/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/substr/index.html rename to files/es/web/javascript/reference/global_objects/string/substr/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/substring/index.html b/files/es/web/javascript/reference/global_objects/string/substring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/substring/index.html rename to files/es/web/javascript/reference/global_objects/string/substring/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/sup/index.html b/files/es/web/javascript/reference/global_objects/string/sup/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/sup/index.html rename to files/es/web/javascript/reference/global_objects/string/sup/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/tolocaleuppercase/index.html b/files/es/web/javascript/reference/global_objects/string/tolocaleuppercase/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/tolocaleuppercase/index.html rename to files/es/web/javascript/reference/global_objects/string/tolocaleuppercase/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/tolowercase/index.html b/files/es/web/javascript/reference/global_objects/string/tolowercase/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/tolowercase/index.html rename to files/es/web/javascript/reference/global_objects/string/tolowercase/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/tostring/index.html b/files/es/web/javascript/reference/global_objects/string/tostring/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/tostring/index.html rename to files/es/web/javascript/reference/global_objects/string/tostring/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/touppercase/index.html b/files/es/web/javascript/reference/global_objects/string/touppercase/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/touppercase/index.html rename to files/es/web/javascript/reference/global_objects/string/touppercase/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/trim/index.html b/files/es/web/javascript/reference/global_objects/string/trim/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/trim/index.html rename to files/es/web/javascript/reference/global_objects/string/trim/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/trimend/index.html b/files/es/web/javascript/reference/global_objects/string/trimend/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/trimend/index.html rename to files/es/web/javascript/reference/global_objects/string/trimend/index.md diff --git a/files/es/web/javascript/reference/global_objects/string/valueof/index.html b/files/es/web/javascript/reference/global_objects/string/valueof/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/string/valueof/index.html rename to files/es/web/javascript/reference/global_objects/string/valueof/index.md diff --git a/files/es/web/javascript/reference/global_objects/typedarray/buffer/index.html b/files/es/web/javascript/reference/global_objects/typedarray/buffer/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/typedarray/buffer/index.html rename to files/es/web/javascript/reference/global_objects/typedarray/buffer/index.md diff --git a/files/es/web/javascript/reference/global_objects/uint8array/index.html b/files/es/web/javascript/reference/global_objects/uint8array/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/uint8array/index.html rename to files/es/web/javascript/reference/global_objects/uint8array/index.md diff --git a/files/es/web/javascript/reference/global_objects/undefined/index.html b/files/es/web/javascript/reference/global_objects/undefined/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/undefined/index.html rename to files/es/web/javascript/reference/global_objects/undefined/index.md diff --git a/files/es/web/javascript/reference/global_objects/unescape/index.html b/files/es/web/javascript/reference/global_objects/unescape/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/unescape/index.html rename to files/es/web/javascript/reference/global_objects/unescape/index.md diff --git a/files/es/web/javascript/reference/global_objects/weakmap/clear/index.html b/files/es/web/javascript/reference/global_objects/weakmap/clear/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/weakmap/clear/index.html rename to files/es/web/javascript/reference/global_objects/weakmap/clear/index.md diff --git a/files/es/web/javascript/reference/global_objects/weakmap/get/index.html b/files/es/web/javascript/reference/global_objects/weakmap/get/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/weakmap/get/index.html rename to files/es/web/javascript/reference/global_objects/weakmap/get/index.md diff --git a/files/es/web/javascript/reference/global_objects/weakmap/has/index.html b/files/es/web/javascript/reference/global_objects/weakmap/has/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/weakmap/has/index.html rename to files/es/web/javascript/reference/global_objects/weakmap/has/index.md diff --git a/files/es/web/javascript/reference/global_objects/weakmap/set/index.html b/files/es/web/javascript/reference/global_objects/weakmap/set/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/weakmap/set/index.html rename to files/es/web/javascript/reference/global_objects/weakmap/set/index.md diff --git a/files/es/web/javascript/reference/global_objects/webassembly/index.html b/files/es/web/javascript/reference/global_objects/webassembly/index.md similarity index 100% rename from files/es/web/javascript/reference/global_objects/webassembly/index.html rename to files/es/web/javascript/reference/global_objects/webassembly/index.md diff --git a/files/es/web/javascript/reference/lexical_grammar/index.html b/files/es/web/javascript/reference/lexical_grammar/index.md similarity index 100% rename from files/es/web/javascript/reference/lexical_grammar/index.html rename to files/es/web/javascript/reference/lexical_grammar/index.md diff --git a/files/es/web/javascript/reference/operators/assignment/index.html b/files/es/web/javascript/reference/operators/assignment/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/assignment/index.html rename to files/es/web/javascript/reference/operators/assignment/index.md diff --git a/files/es/web/javascript/reference/operators/async_function/index.html b/files/es/web/javascript/reference/operators/async_function/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/async_function/index.html rename to files/es/web/javascript/reference/operators/async_function/index.md diff --git a/files/es/web/javascript/reference/operators/await/index.html b/files/es/web/javascript/reference/operators/await/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/await/index.html rename to files/es/web/javascript/reference/operators/await/index.md diff --git a/files/es/web/javascript/reference/operators/class/index.html b/files/es/web/javascript/reference/operators/class/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/class/index.html rename to files/es/web/javascript/reference/operators/class/index.md diff --git a/files/es/web/javascript/reference/operators/decrement/index.html b/files/es/web/javascript/reference/operators/decrement/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/decrement/index.html rename to files/es/web/javascript/reference/operators/decrement/index.md diff --git a/files/es/web/javascript/reference/operators/division/index.html b/files/es/web/javascript/reference/operators/division/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/division/index.html rename to files/es/web/javascript/reference/operators/division/index.md diff --git a/files/es/web/javascript/reference/operators/function/index.html b/files/es/web/javascript/reference/operators/function/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/function/index.html rename to files/es/web/javascript/reference/operators/function/index.md diff --git a/files/es/web/javascript/reference/operators/grouping/index.html b/files/es/web/javascript/reference/operators/grouping/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/grouping/index.html rename to files/es/web/javascript/reference/operators/grouping/index.md diff --git a/files/es/web/javascript/reference/operators/import.meta/index.html b/files/es/web/javascript/reference/operators/import.meta/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/import.meta/index.html rename to files/es/web/javascript/reference/operators/import.meta/index.md diff --git a/files/es/web/javascript/reference/operators/in/index.html b/files/es/web/javascript/reference/operators/in/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/in/index.html rename to files/es/web/javascript/reference/operators/in/index.md diff --git a/files/es/web/javascript/reference/operators/index.html b/files/es/web/javascript/reference/operators/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/index.html rename to files/es/web/javascript/reference/operators/index.md diff --git a/files/es/web/javascript/reference/operators/instanceof/index.html b/files/es/web/javascript/reference/operators/instanceof/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/instanceof/index.html rename to files/es/web/javascript/reference/operators/instanceof/index.md diff --git a/files/es/web/javascript/reference/operators/new.target/index.html b/files/es/web/javascript/reference/operators/new.target/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/new.target/index.html rename to files/es/web/javascript/reference/operators/new.target/index.md diff --git a/files/es/web/javascript/reference/operators/new/index.html b/files/es/web/javascript/reference/operators/new/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/new/index.html rename to files/es/web/javascript/reference/operators/new/index.md diff --git a/files/es/web/javascript/reference/operators/null/index.html b/files/es/web/javascript/reference/operators/null/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/null/index.html rename to files/es/web/javascript/reference/operators/null/index.md diff --git a/files/es/web/javascript/reference/operators/property_accessors/index.html b/files/es/web/javascript/reference/operators/property_accessors/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/property_accessors/index.html rename to files/es/web/javascript/reference/operators/property_accessors/index.md diff --git a/files/es/web/javascript/reference/operators/subtraction/index.html b/files/es/web/javascript/reference/operators/subtraction/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/subtraction/index.html rename to files/es/web/javascript/reference/operators/subtraction/index.md diff --git a/files/es/web/javascript/reference/operators/super/index.html b/files/es/web/javascript/reference/operators/super/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/super/index.html rename to files/es/web/javascript/reference/operators/super/index.md diff --git a/files/es/web/javascript/reference/operators/this/index.html b/files/es/web/javascript/reference/operators/this/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/this/index.html rename to files/es/web/javascript/reference/operators/this/index.md diff --git a/files/es/web/javascript/reference/operators/void/index.html b/files/es/web/javascript/reference/operators/void/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/void/index.html rename to files/es/web/javascript/reference/operators/void/index.md diff --git a/files/es/web/javascript/reference/operators/yield_star_/index.html b/files/es/web/javascript/reference/operators/yield_star_/index.md similarity index 100% rename from files/es/web/javascript/reference/operators/yield_star_/index.html rename to files/es/web/javascript/reference/operators/yield_star_/index.md diff --git a/files/es/web/javascript/reference/statements/block/index.html b/files/es/web/javascript/reference/statements/block/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/block/index.html rename to files/es/web/javascript/reference/statements/block/index.md diff --git a/files/es/web/javascript/reference/statements/break/index.html b/files/es/web/javascript/reference/statements/break/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/break/index.html rename to files/es/web/javascript/reference/statements/break/index.md diff --git a/files/es/web/javascript/reference/statements/class/index.html b/files/es/web/javascript/reference/statements/class/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/class/index.html rename to files/es/web/javascript/reference/statements/class/index.md diff --git a/files/es/web/javascript/reference/statements/const/index.html b/files/es/web/javascript/reference/statements/const/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/const/index.html rename to files/es/web/javascript/reference/statements/const/index.md diff --git a/files/es/web/javascript/reference/statements/continue/index.html b/files/es/web/javascript/reference/statements/continue/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/continue/index.html rename to files/es/web/javascript/reference/statements/continue/index.md diff --git a/files/es/web/javascript/reference/statements/debugger/index.html b/files/es/web/javascript/reference/statements/debugger/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/debugger/index.html rename to files/es/web/javascript/reference/statements/debugger/index.md diff --git a/files/es/web/javascript/reference/statements/do...while/index.html b/files/es/web/javascript/reference/statements/do...while/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/do...while/index.html rename to files/es/web/javascript/reference/statements/do...while/index.md diff --git a/files/es/web/javascript/reference/statements/empty/index.html b/files/es/web/javascript/reference/statements/empty/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/empty/index.html rename to files/es/web/javascript/reference/statements/empty/index.md diff --git a/files/es/web/javascript/reference/statements/export/index.html b/files/es/web/javascript/reference/statements/export/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/export/index.html rename to files/es/web/javascript/reference/statements/export/index.md diff --git a/files/es/web/javascript/reference/statements/for...of/index.html b/files/es/web/javascript/reference/statements/for...of/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/for...of/index.html rename to files/es/web/javascript/reference/statements/for...of/index.md diff --git a/files/es/web/javascript/reference/statements/for/index.html b/files/es/web/javascript/reference/statements/for/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/for/index.html rename to files/es/web/javascript/reference/statements/for/index.md diff --git a/files/es/web/javascript/reference/statements/function/index.html b/files/es/web/javascript/reference/statements/function/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/function/index.html rename to files/es/web/javascript/reference/statements/function/index.md diff --git a/files/es/web/javascript/reference/statements/function_star_/index.html b/files/es/web/javascript/reference/statements/function_star_/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/function_star_/index.html rename to files/es/web/javascript/reference/statements/function_star_/index.md diff --git a/files/es/web/javascript/reference/statements/if...else/index.html b/files/es/web/javascript/reference/statements/if...else/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/if...else/index.html rename to files/es/web/javascript/reference/statements/if...else/index.md diff --git a/files/es/web/javascript/reference/statements/index.html b/files/es/web/javascript/reference/statements/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/index.html rename to files/es/web/javascript/reference/statements/index.md diff --git a/files/es/web/javascript/reference/statements/label/index.html b/files/es/web/javascript/reference/statements/label/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/label/index.html rename to files/es/web/javascript/reference/statements/label/index.md diff --git a/files/es/web/javascript/reference/statements/return/index.html b/files/es/web/javascript/reference/statements/return/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/return/index.html rename to files/es/web/javascript/reference/statements/return/index.md diff --git a/files/es/web/javascript/reference/statements/switch/index.html b/files/es/web/javascript/reference/statements/switch/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/switch/index.html rename to files/es/web/javascript/reference/statements/switch/index.md diff --git a/files/es/web/javascript/reference/statements/throw/index.html b/files/es/web/javascript/reference/statements/throw/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/throw/index.html rename to files/es/web/javascript/reference/statements/throw/index.md diff --git a/files/es/web/javascript/reference/statements/try...catch/index.html b/files/es/web/javascript/reference/statements/try...catch/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/try...catch/index.html rename to files/es/web/javascript/reference/statements/try...catch/index.md diff --git a/files/es/web/javascript/reference/statements/var/index.html b/files/es/web/javascript/reference/statements/var/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/var/index.html rename to files/es/web/javascript/reference/statements/var/index.md diff --git a/files/es/web/javascript/reference/statements/while/index.html b/files/es/web/javascript/reference/statements/while/index.md similarity index 100% rename from files/es/web/javascript/reference/statements/while/index.html rename to files/es/web/javascript/reference/statements/while/index.md diff --git a/files/es/web/javascript/reference/strict_mode/index.html b/files/es/web/javascript/reference/strict_mode/index.md similarity index 100% rename from files/es/web/javascript/reference/strict_mode/index.html rename to files/es/web/javascript/reference/strict_mode/index.md diff --git a/files/es/web/javascript/reference/template_literals/index.html b/files/es/web/javascript/reference/template_literals/index.md similarity index 100% rename from files/es/web/javascript/reference/template_literals/index.html rename to files/es/web/javascript/reference/template_literals/index.md diff --git a/files/es/web/javascript/shells/index.html b/files/es/web/javascript/shells/index.md similarity index 100% rename from files/es/web/javascript/shells/index.html rename to files/es/web/javascript/shells/index.md diff --git a/files/es/web/javascript/typed_arrays/index.html b/files/es/web/javascript/typed_arrays/index.md similarity index 100% rename from files/es/web/javascript/typed_arrays/index.html rename to files/es/web/javascript/typed_arrays/index.md diff --git a/files/es/web/manifest/index.html b/files/es/web/manifest/index.md similarity index 100% rename from files/es/web/manifest/index.html rename to files/es/web/manifest/index.md diff --git a/files/es/web/mathml/attribute/index.html b/files/es/web/mathml/attribute/index.md similarity index 100% rename from files/es/web/mathml/attribute/index.html rename to files/es/web/mathml/attribute/index.md diff --git a/files/es/web/mathml/element/index.html b/files/es/web/mathml/element/index.md similarity index 100% rename from files/es/web/mathml/element/index.html rename to files/es/web/mathml/element/index.md diff --git a/files/es/web/mathml/element/math/index.html b/files/es/web/mathml/element/math/index.md similarity index 100% rename from files/es/web/mathml/element/math/index.html rename to files/es/web/mathml/element/math/index.md diff --git a/files/es/web/mathml/examples/index.html b/files/es/web/mathml/examples/index.md similarity index 100% rename from files/es/web/mathml/examples/index.html rename to files/es/web/mathml/examples/index.md diff --git a/files/es/web/media/dash_adaptive_streaming_for_html_5_video/index.html b/files/es/web/media/dash_adaptive_streaming_for_html_5_video/index.md similarity index 100% rename from files/es/web/media/dash_adaptive_streaming_for_html_5_video/index.html rename to files/es/web/media/dash_adaptive_streaming_for_html_5_video/index.md diff --git a/files/es/web/performance/fundamentals/index.html b/files/es/web/performance/fundamentals/index.md similarity index 100% rename from files/es/web/performance/fundamentals/index.html rename to files/es/web/performance/fundamentals/index.md diff --git a/files/es/web/performance/optimizing_startup_performance/index.html b/files/es/web/performance/optimizing_startup_performance/index.md similarity index 100% rename from files/es/web/performance/optimizing_startup_performance/index.html rename to files/es/web/performance/optimizing_startup_performance/index.md diff --git a/files/es/web/progressive_web_apps/app_structure/index.html b/files/es/web/progressive_web_apps/app_structure/index.md similarity index 100% rename from files/es/web/progressive_web_apps/app_structure/index.html rename to files/es/web/progressive_web_apps/app_structure/index.md diff --git a/files/es/web/progressive_web_apps/index.html b/files/es/web/progressive_web_apps/index.md similarity index 100% rename from files/es/web/progressive_web_apps/index.html rename to files/es/web/progressive_web_apps/index.md diff --git a/files/es/web/progressive_web_apps/installable_pwas/index.html b/files/es/web/progressive_web_apps/installable_pwas/index.md similarity index 100% rename from files/es/web/progressive_web_apps/installable_pwas/index.html rename to files/es/web/progressive_web_apps/installable_pwas/index.md diff --git a/files/es/web/progressive_web_apps/introduction/index.html b/files/es/web/progressive_web_apps/introduction/index.md similarity index 100% rename from files/es/web/progressive_web_apps/introduction/index.html rename to files/es/web/progressive_web_apps/introduction/index.md diff --git a/files/es/web/progressive_web_apps/loading/index.html b/files/es/web/progressive_web_apps/loading/index.md similarity index 100% rename from files/es/web/progressive_web_apps/loading/index.html rename to files/es/web/progressive_web_apps/loading/index.md diff --git a/files/es/web/progressive_web_apps/offline_service_workers/index.html b/files/es/web/progressive_web_apps/offline_service_workers/index.md similarity index 100% rename from files/es/web/progressive_web_apps/offline_service_workers/index.html rename to files/es/web/progressive_web_apps/offline_service_workers/index.md diff --git a/files/es/web/progressive_web_apps/re-engageable_notifications_push/index.html b/files/es/web/progressive_web_apps/re-engageable_notifications_push/index.md similarity index 100% rename from files/es/web/progressive_web_apps/re-engageable_notifications_push/index.html rename to files/es/web/progressive_web_apps/re-engageable_notifications_push/index.md diff --git a/files/es/web/security/index.html b/files/es/web/security/index.md similarity index 100% rename from files/es/web/security/index.html rename to files/es/web/security/index.md diff --git a/files/es/web/security/same-origin_policy/index.html b/files/es/web/security/same-origin_policy/index.md similarity index 100% rename from files/es/web/security/same-origin_policy/index.html rename to files/es/web/security/same-origin_policy/index.md diff --git a/files/es/web/security/securing_your_site/index.html b/files/es/web/security/securing_your_site/index.md similarity index 100% rename from files/es/web/security/securing_your_site/index.html rename to files/es/web/security/securing_your_site/index.md diff --git a/files/es/web/security/securing_your_site/turning_off_form_autocompletion/index.html b/files/es/web/security/securing_your_site/turning_off_form_autocompletion/index.md similarity index 100% rename from files/es/web/security/securing_your_site/turning_off_form_autocompletion/index.html rename to files/es/web/security/securing_your_site/turning_off_form_autocompletion/index.md diff --git a/files/es/web/svg/attribute/index.html b/files/es/web/svg/attribute/index.md similarity index 100% rename from files/es/web/svg/attribute/index.html rename to files/es/web/svg/attribute/index.md diff --git a/files/es/web/svg/attribute/stop-color/index.html b/files/es/web/svg/attribute/stop-color/index.md similarity index 100% rename from files/es/web/svg/attribute/stop-color/index.html rename to files/es/web/svg/attribute/stop-color/index.md diff --git a/files/es/web/svg/attribute/transform/index.html b/files/es/web/svg/attribute/transform/index.md similarity index 100% rename from files/es/web/svg/attribute/transform/index.html rename to files/es/web/svg/attribute/transform/index.md diff --git a/files/es/web/svg/element/a/index.html b/files/es/web/svg/element/a/index.md similarity index 100% rename from files/es/web/svg/element/a/index.html rename to files/es/web/svg/element/a/index.md diff --git a/files/es/web/svg/element/animate/index.html b/files/es/web/svg/element/animate/index.md similarity index 100% rename from files/es/web/svg/element/animate/index.html rename to files/es/web/svg/element/animate/index.md diff --git a/files/es/web/svg/element/circle/index.html b/files/es/web/svg/element/circle/index.md similarity index 100% rename from files/es/web/svg/element/circle/index.html rename to files/es/web/svg/element/circle/index.md diff --git a/files/es/web/svg/element/g/index.html b/files/es/web/svg/element/g/index.md similarity index 100% rename from files/es/web/svg/element/g/index.html rename to files/es/web/svg/element/g/index.md diff --git a/files/es/web/svg/element/glyph/index.html b/files/es/web/svg/element/glyph/index.md similarity index 100% rename from files/es/web/svg/element/glyph/index.html rename to files/es/web/svg/element/glyph/index.md diff --git a/files/es/web/svg/element/index.html b/files/es/web/svg/element/index.md similarity index 100% rename from files/es/web/svg/element/index.html rename to files/es/web/svg/element/index.md diff --git a/files/es/web/svg/element/rect/index.html b/files/es/web/svg/element/rect/index.md similarity index 100% rename from files/es/web/svg/element/rect/index.html rename to files/es/web/svg/element/rect/index.md diff --git a/files/es/web/svg/element/style/index.html b/files/es/web/svg/element/style/index.md similarity index 100% rename from files/es/web/svg/element/style/index.html rename to files/es/web/svg/element/style/index.md diff --git a/files/es/web/svg/element/svg/index.html b/files/es/web/svg/element/svg/index.md similarity index 100% rename from files/es/web/svg/element/svg/index.html rename to files/es/web/svg/element/svg/index.md diff --git a/files/es/web/svg/element/text/index.html b/files/es/web/svg/element/text/index.md similarity index 100% rename from files/es/web/svg/element/text/index.html rename to files/es/web/svg/element/text/index.md diff --git a/files/es/web/svg/element/use/index.html b/files/es/web/svg/element/use/index.md similarity index 100% rename from files/es/web/svg/element/use/index.html rename to files/es/web/svg/element/use/index.md diff --git a/files/es/web/svg/tutorial/getting_started/index.html b/files/es/web/svg/tutorial/getting_started/index.md similarity index 100% rename from files/es/web/svg/tutorial/getting_started/index.html rename to files/es/web/svg/tutorial/getting_started/index.md diff --git a/files/es/web/svg/tutorial/index.html b/files/es/web/svg/tutorial/index.md similarity index 100% rename from files/es/web/svg/tutorial/index.html rename to files/es/web/svg/tutorial/index.md diff --git a/files/es/web/svg/tutorial/introduction/index.html b/files/es/web/svg/tutorial/introduction/index.md similarity index 100% rename from files/es/web/svg/tutorial/introduction/index.html rename to files/es/web/svg/tutorial/introduction/index.md diff --git a/files/es/web/svg/tutorial/tools_for_svg/index.html b/files/es/web/svg/tutorial/tools_for_svg/index.md similarity index 100% rename from files/es/web/svg/tutorial/tools_for_svg/index.html rename to files/es/web/svg/tutorial/tools_for_svg/index.md diff --git a/files/es/web/web_components/using_custom_elements/index.html b/files/es/web/web_components/using_custom_elements/index.md similarity index 100% rename from files/es/web/web_components/using_custom_elements/index.html rename to files/es/web/web_components/using_custom_elements/index.md diff --git a/files/es/web/web_components/using_templates_and_slots/index.html b/files/es/web/web_components/using_templates_and_slots/index.md similarity index 100% rename from files/es/web/web_components/using_templates_and_slots/index.html rename to files/es/web/web_components/using_templates_and_slots/index.md diff --git a/files/es/web/xml/index.html b/files/es/web/xml/index.md similarity index 100% rename from files/es/web/xml/index.html rename to files/es/web/xml/index.md diff --git a/files/es/web/xml/xml_introduction/index.html b/files/es/web/xml/xml_introduction/index.md similarity index 100% rename from files/es/web/xml/xml_introduction/index.html rename to files/es/web/xml/xml_introduction/index.md diff --git a/files/es/web/xpath/axes/ancestor-or-self/index.html b/files/es/web/xpath/axes/ancestor-or-self/index.md similarity index 100% rename from files/es/web/xpath/axes/ancestor-or-self/index.html rename to files/es/web/xpath/axes/ancestor-or-self/index.md diff --git a/files/es/web/xpath/axes/ancestor/index.html b/files/es/web/xpath/axes/ancestor/index.md similarity index 100% rename from files/es/web/xpath/axes/ancestor/index.html rename to files/es/web/xpath/axes/ancestor/index.md diff --git a/files/es/web/xpath/axes/attribute/index.html b/files/es/web/xpath/axes/attribute/index.md similarity index 100% rename from files/es/web/xpath/axes/attribute/index.html rename to files/es/web/xpath/axes/attribute/index.md diff --git a/files/es/web/xpath/axes/child/index.html b/files/es/web/xpath/axes/child/index.md similarity index 100% rename from files/es/web/xpath/axes/child/index.html rename to files/es/web/xpath/axes/child/index.md diff --git a/files/es/web/xpath/axes/descendant-or-self/index.html b/files/es/web/xpath/axes/descendant-or-self/index.md similarity index 100% rename from files/es/web/xpath/axes/descendant-or-self/index.html rename to files/es/web/xpath/axes/descendant-or-self/index.md diff --git a/files/es/web/xpath/axes/descendant/index.html b/files/es/web/xpath/axes/descendant/index.md similarity index 100% rename from files/es/web/xpath/axes/descendant/index.html rename to files/es/web/xpath/axes/descendant/index.md diff --git a/files/es/web/xpath/axes/following-sibling/index.html b/files/es/web/xpath/axes/following-sibling/index.md similarity index 100% rename from files/es/web/xpath/axes/following-sibling/index.html rename to files/es/web/xpath/axes/following-sibling/index.md diff --git a/files/es/web/xpath/axes/following/index.html b/files/es/web/xpath/axes/following/index.md similarity index 100% rename from files/es/web/xpath/axes/following/index.html rename to files/es/web/xpath/axes/following/index.md diff --git a/files/es/web/xpath/axes/index.html b/files/es/web/xpath/axes/index.md similarity index 100% rename from files/es/web/xpath/axes/index.html rename to files/es/web/xpath/axes/index.md diff --git a/files/es/web/xpath/axes/namespace/index.html b/files/es/web/xpath/axes/namespace/index.md similarity index 100% rename from files/es/web/xpath/axes/namespace/index.html rename to files/es/web/xpath/axes/namespace/index.md diff --git a/files/es/web/xpath/axes/parent/index.html b/files/es/web/xpath/axes/parent/index.md similarity index 100% rename from files/es/web/xpath/axes/parent/index.html rename to files/es/web/xpath/axes/parent/index.md diff --git a/files/es/web/xpath/axes/preceding-sibling/index.html b/files/es/web/xpath/axes/preceding-sibling/index.md similarity index 100% rename from files/es/web/xpath/axes/preceding-sibling/index.html rename to files/es/web/xpath/axes/preceding-sibling/index.md diff --git a/files/es/web/xpath/axes/preceding/index.html b/files/es/web/xpath/axes/preceding/index.md similarity index 100% rename from files/es/web/xpath/axes/preceding/index.html rename to files/es/web/xpath/axes/preceding/index.md diff --git a/files/es/web/xpath/functions/contains/index.html b/files/es/web/xpath/functions/contains/index.md similarity index 100% rename from files/es/web/xpath/functions/contains/index.html rename to files/es/web/xpath/functions/contains/index.md diff --git a/files/es/web/xpath/functions/index.html b/files/es/web/xpath/functions/index.md similarity index 100% rename from files/es/web/xpath/functions/index.html rename to files/es/web/xpath/functions/index.md diff --git a/files/es/web/xpath/functions/substring/index.html b/files/es/web/xpath/functions/substring/index.md similarity index 100% rename from files/es/web/xpath/functions/substring/index.html rename to files/es/web/xpath/functions/substring/index.md diff --git a/files/es/web/xpath/functions/true/index.html b/files/es/web/xpath/functions/true/index.md similarity index 100% rename from files/es/web/xpath/functions/true/index.html rename to files/es/web/xpath/functions/true/index.md diff --git a/files/es/web/xslt/element/apply-imports/index.html b/files/es/web/xslt/element/apply-imports/index.md similarity index 100% rename from files/es/web/xslt/element/apply-imports/index.html rename to files/es/web/xslt/element/apply-imports/index.md diff --git a/files/es/web/xslt/element/apply-templates/index.html b/files/es/web/xslt/element/apply-templates/index.md similarity index 100% rename from files/es/web/xslt/element/apply-templates/index.html rename to files/es/web/xslt/element/apply-templates/index.md diff --git a/files/es/web/xslt/element/attribute-set/index.html b/files/es/web/xslt/element/attribute-set/index.md similarity index 100% rename from files/es/web/xslt/element/attribute-set/index.html rename to files/es/web/xslt/element/attribute-set/index.md diff --git a/files/es/web/xslt/element/attribute/index.html b/files/es/web/xslt/element/attribute/index.md similarity index 100% rename from files/es/web/xslt/element/attribute/index.html rename to files/es/web/xslt/element/attribute/index.md diff --git a/files/es/web/xslt/element/call-template/index.html b/files/es/web/xslt/element/call-template/index.md similarity index 100% rename from files/es/web/xslt/element/call-template/index.html rename to files/es/web/xslt/element/call-template/index.md diff --git a/files/es/web/xslt/element/choose/index.html b/files/es/web/xslt/element/choose/index.md similarity index 100% rename from files/es/web/xslt/element/choose/index.html rename to files/es/web/xslt/element/choose/index.md diff --git a/files/es/web/xslt/element/comment/index.html b/files/es/web/xslt/element/comment/index.md similarity index 100% rename from files/es/web/xslt/element/comment/index.html rename to files/es/web/xslt/element/comment/index.md diff --git a/files/es/web/xslt/element/copy-of/index.html b/files/es/web/xslt/element/copy-of/index.md similarity index 100% rename from files/es/web/xslt/element/copy-of/index.html rename to files/es/web/xslt/element/copy-of/index.md diff --git a/files/es/web/xslt/element/copy/index.html b/files/es/web/xslt/element/copy/index.md similarity index 100% rename from files/es/web/xslt/element/copy/index.html rename to files/es/web/xslt/element/copy/index.md diff --git a/files/es/web/xslt/element/decimal-format/index.html b/files/es/web/xslt/element/decimal-format/index.md similarity index 100% rename from files/es/web/xslt/element/decimal-format/index.html rename to files/es/web/xslt/element/decimal-format/index.md diff --git a/files/es/web/xslt/element/element/index.html b/files/es/web/xslt/element/element/index.md similarity index 100% rename from files/es/web/xslt/element/element/index.html rename to files/es/web/xslt/element/element/index.md diff --git a/files/es/web/xslt/element/fallback/index.html b/files/es/web/xslt/element/fallback/index.md similarity index 100% rename from files/es/web/xslt/element/fallback/index.html rename to files/es/web/xslt/element/fallback/index.md diff --git a/files/es/web/xslt/element/for-each/index.html b/files/es/web/xslt/element/for-each/index.md similarity index 100% rename from files/es/web/xslt/element/for-each/index.html rename to files/es/web/xslt/element/for-each/index.md diff --git a/files/es/web/xslt/element/if/index.html b/files/es/web/xslt/element/if/index.md similarity index 100% rename from files/es/web/xslt/element/if/index.html rename to files/es/web/xslt/element/if/index.md diff --git a/files/es/web/xslt/element/import/index.html b/files/es/web/xslt/element/import/index.md similarity index 100% rename from files/es/web/xslt/element/import/index.html rename to files/es/web/xslt/element/import/index.md diff --git a/files/es/web/xslt/element/include/index.html b/files/es/web/xslt/element/include/index.md similarity index 100% rename from files/es/web/xslt/element/include/index.html rename to files/es/web/xslt/element/include/index.md diff --git a/files/es/web/xslt/element/index.html b/files/es/web/xslt/element/index.md similarity index 100% rename from files/es/web/xslt/element/index.html rename to files/es/web/xslt/element/index.md diff --git a/files/es/web/xslt/element/key/index.html b/files/es/web/xslt/element/key/index.md similarity index 100% rename from files/es/web/xslt/element/key/index.html rename to files/es/web/xslt/element/key/index.md diff --git a/files/es/web/xslt/element/message/index.html b/files/es/web/xslt/element/message/index.md similarity index 100% rename from files/es/web/xslt/element/message/index.html rename to files/es/web/xslt/element/message/index.md diff --git a/files/es/web/xslt/element/namespace-alias/index.html b/files/es/web/xslt/element/namespace-alias/index.md similarity index 100% rename from files/es/web/xslt/element/namespace-alias/index.html rename to files/es/web/xslt/element/namespace-alias/index.md diff --git a/files/es/web/xslt/element/otherwise/index.html b/files/es/web/xslt/element/otherwise/index.md similarity index 100% rename from files/es/web/xslt/element/otherwise/index.html rename to files/es/web/xslt/element/otherwise/index.md diff --git a/files/es/web/xslt/element/when/index.html b/files/es/web/xslt/element/when/index.md similarity index 100% rename from files/es/web/xslt/element/when/index.html rename to files/es/web/xslt/element/when/index.md diff --git a/files/es/web/xslt/element/with-param/index.html b/files/es/web/xslt/element/with-param/index.md similarity index 100% rename from files/es/web/xslt/element/with-param/index.html rename to files/es/web/xslt/element/with-param/index.md diff --git a/files/es/web/xslt/transforming_xml_with_xslt/index.html b/files/es/web/xslt/transforming_xml_with_xslt/index.md similarity index 100% rename from files/es/web/xslt/transforming_xml_with_xslt/index.html rename to files/es/web/xslt/transforming_xml_with_xslt/index.md diff --git a/files/es/webassembly/concepts/index.html b/files/es/webassembly/concepts/index.md similarity index 100% rename from files/es/webassembly/concepts/index.html rename to files/es/webassembly/concepts/index.md diff --git a/files/es/webassembly/index.html b/files/es/webassembly/index.md similarity index 100% rename from files/es/webassembly/index.html rename to files/es/webassembly/index.md diff --git a/files/es/webassembly/loading_and_running/index.html b/files/es/webassembly/loading_and_running/index.md similarity index 100% rename from files/es/webassembly/loading_and_running/index.html rename to files/es/webassembly/loading_and_running/index.md From d135e54b5f35d61331bf8d762ddd0e837523ca0c Mon Sep 17 00:00:00 2001 From: "Queen Vinyl Da.i'gyu-Kazotetsu" Date: Fri, 12 Aug 2022 22:58:29 -0700 Subject: [PATCH 2/9] Convert es/web/ folder to Markdown (non-problematic files only) --- .../aria/aria_techniques/index.md | 238 +- .../using_the_aria-label_attribute/index.md | 52 +- .../index.md | 85 +- .../es/web/accessibility/aria/forms/index.md | 12 +- .../aria/roles/alert_role/index.md | 137 +- .../aria/roles/alertdialog_role/index.md | 90 +- files/es/web/accessibility/community/index.md | 69 +- .../accessibility/understanding_wcag/index.md | 65 +- .../understanding_wcag/keyboard/index.md | 92 +- .../perceivable/color_contrast/index.md | 170 +- .../text_labels_and_names/index.md | 318 +-- files/es/web/api/analysernode/index.md | 185 +- files/es/web/api/animation/animation/index.md | 58 +- files/es/web/api/animation/cancel/index.md | 62 +- .../web/api/animation/cancel_event/index.md | 60 +- .../es/web/api/animation/currenttime/index.md | 69 +- files/es/web/api/animation/effect/index.md | 43 +- files/es/web/api/animation/finish/index.md | 84 +- .../web/api/animation/finish_event/index.md | 63 +- files/es/web/api/animation/finished/index.md | 58 +- files/es/web/api/animation/id/index.md | 55 +- files/es/web/api/animation/index.md | 243 +- files/es/web/api/animation/pause/index.md | 96 +- files/es/web/api/animation/play/index.md | 69 +- .../web/api/animation/playbackrate/index.md | 90 +- files/es/web/api/animation/playstate/index.md | 85 +- files/es/web/api/animation/ready/index.md | 69 +- files/es/web/api/animation/reverse/index.md | 74 +- files/es/web/api/animation/starttime/index.md | 68 +- files/es/web/api/animation/timeline/index.md | 58 +- .../api/animationevent/animationname/index.md | 43 +- files/es/web/api/animationevent/index.md | 73 +- files/es/web/api/atob/index.md | 83 +- .../createbiquadfilter/index.md | 61 +- files/es/web/api/baseaudiocontext/index.md | 214 +- files/es/web/api/beforeunloadevent/index.md | 69 +- files/es/web/api/blob/blob/index.md | 76 +- files/es/web/api/blob/index.md | 122 +- files/es/web/api/blob/type/index.md | 58 +- files/es/web/api/blobbuilder/index.md | 136 +- files/es/web/api/caches/index.md | 62 +- files/es/web/api/cachestorage/index.md | 115 +- files/es/web/api/cachestorage/keys/index.md | 84 +- .../canvas_api/a_basic_ray-caster/index.md | 46 +- files/es/web/api/canvas_api/index.md | 215 +- .../manipulating_video_using_canvas/index.md | 175 +- .../tutorial/advanced_animations/index.md | 179 +- .../tutorial/basic_animations/index.md | 155 +- .../canvas_api/tutorial/basic_usage/index.md | 148 +- .../tutorial/compositing/example/index.md | 55 +- .../tutorial/drawing_shapes/index.md | 406 ++- .../canvas_api/tutorial/drawing_text/index.md | 120 +- files/es/web/api/canvas_api/tutorial/index.md | 100 +- .../tutorial/optimizing_canvas/index.md | 29 +- .../beginpath/index.md | 88 +- .../drawimage/index.md | 206 +- .../fillrect/index.md | 112 +- .../getimagedata/index.md | 102 +- .../canvasrenderingcontext2d/linecap/index.md | 117 +- .../canvasrenderingcontext2d/rotate/index.md | 112 +- .../canvasrenderingcontext2d/save/index.md | 79 +- files/es/web/api/clearinterval/index.md | 45 +- files/es/web/api/cleartimeout/index.md | 49 +- files/es/web/api/clipboard_api/index.md | 83 +- .../api/clipboardevent/clipboarddata/index.md | 51 +- files/es/web/api/clipboardevent/index.md | 59 +- files/es/web/api/closeevent/index.md | 205 +- files/es/web/api/comment/index.md | 73 +- files/es/web/api/console/assert/index.md | 74 +- files/es/web/api/console/count/index.md | 87 +- files/es/web/api/console/dir/index.md | 56 +- files/es/web/api/console/dirxml/index.md | 25 +- files/es/web/api/console/error/index.md | 74 +- files/es/web/api/console/info/index.md | 64 +- files/es/web/api/console/log/index.md | 88 +- files/es/web/api/console/table/index.md | 118 +- files/es/web/api/console/time/index.md | 54 +- files/es/web/api/console/timeend/index.md | 56 +- files/es/web/api/console/trace/index.md | 67 +- files/es/web/api/console/warn/index.md | 66 +- files/es/web/api/createimagebitmap/index.md | 100 +- .../web/api/crypto/getrandomvalues/index.md | 66 +- files/es/web/api/crypto/index.md | 61 +- files/es/web/api/crypto/subtle/index.md | 45 +- files/es/web/api/css_object_model/index.md | 167 +- files/es/web/api/cssrule/csstext/index.md | 37 +- files/es/web/api/cssrule/index.md | 141 +- files/es/web/api/cssstyledeclaration/index.md | 86 +- files/es/web/api/cssstylerule/index.md | 79 +- .../api/cssstylerule/selectortext/index.md | 44 +- .../web/api/cssstylesheet/deleterule/index.md | 39 +- files/es/web/api/cssstylesheet/index.md | 102 +- .../web/api/cssstylesheet/insertrule/index.md | 72 +- .../web/api/cssstylesheet/ownerrule/index.md | 38 +- .../api/customelementregistry/define/index.md | 170 +- .../es/web/api/customelementregistry/index.md | 63 +- files/es/web/api/devicemotionevent/index.md | 85 +- files/es/web/api/document/adoptnode/index.md | 50 +- files/es/web/api/document/alinkcolor/index.md | 33 +- files/es/web/api/document/anchors/index.md | 136 +- files/es/web/api/document/applets/index.md | 29 +- files/es/web/api/document/bgcolor/index.md | 38 +- files/es/web/api/document/body/index.md | 42 +- .../es/web/api/document/characterset/index.md | 34 +- files/es/web/api/document/clear/index.md | 17 +- files/es/web/api/document/close/index.md | 28 +- .../es/web/api/document/contenttype/index.md | 21 +- .../document/createdocumentfragment/index.md | 77 +- .../es/web/api/document/createevent/index.md | 26 +- .../es/web/api/document/createrange/index.md | 36 +- .../web/api/document/createtextnode/index.md | 77 +- .../es/web/api/document/defaultview/index.md | 26 +- files/es/web/api/document/designmode/index.md | 52 +- files/es/web/api/document/dir/index.md | 23 +- files/es/web/api/document/doctype/index.md | 54 +- .../web/api/document/documentelement/index.md | 42 +- .../es/web/api/document/documenturi/index.md | 44 +- .../api/document/documenturiobject/index.md | 38 +- .../web/api/document/dragover_event/index.md | 271 +- files/es/web/api/document/embeds/index.md | 40 +- .../web/api/document/exitfullscreen/index.md | 90 +- .../document/getelementsbyclassname/index.md | 54 +- .../api/document/getelementsbyname/index.md | 109 +- .../document/getelementsbytagname/index.md | 124 +- .../document/getelementsbytagnamens/index.md | 128 +- .../es/web/api/document/getselection/index.md | 4 +- files/es/web/api/document/hasfocus/index.md | 17 +- files/es/web/api/document/head/index.md | 28 +- files/es/web/api/document/height/index.md | 45 +- files/es/web/api/document/hidden/index.md | 40 +- files/es/web/api/document/importnode/index.md | 87 +- files/es/web/api/document/open/index.md | 118 +- .../document/pointerlockchange_event/index.md | 100 +- .../api/document/pointerlockelement/index.md | 44 +- .../api/document/queryselectorall/index.md | 205 +- .../web/api/document/registerelement/index.md | 79 +- files/es/web/api/document/scripts/index.md | 30 +- .../es/web/api/document/stylesheets/index.md | 38 +- files/es/web/api/document/write/index.md | 77 +- files/es/web/api/document/writeln/index.md | 36 +- .../how_to_create_a_dom_tree/index.md | 90 +- .../es/web/api/document_object_model/index.md | 174 +- .../index.md | 50 +- .../index.md | 335 +-- .../example/index.md | 63 +- .../using_the_w3c_dom_level_1_core/index.md | 86 +- files/es/web/api/documentfragment/index.md | 153 +- files/es/web/api/domerror/index.md | 149 +- files/es/web/api/domparser/index.md | 101 +- .../api/element/animationend_event/index.md | 113 +- .../es/web/api/element/attachshadow/index.md | 188 +- files/es/web/api/element/attributes/index.md | 122 +- files/es/web/api/element/blur_event/index.md | 139 +- files/es/web/api/element/classlist/index.md | 110 +- files/es/web/api/element/classname/index.md | 89 +- files/es/web/api/element/click_event/index.md | 277 +- .../es/web/api/element/clientheight/index.md | 60 +- files/es/web/api/element/clientwidth/index.md | 61 +- .../web/api/element/computedstylemap/index.md | 81 +- .../es/web/api/element/getattribute/index.md | 43 +- .../api/element/getattributenodens/index.md | 31 +- .../element/getboundingclientrect/index.md | 86 +- .../web/api/element/getclientrects/index.md | 45 +- .../element/getelementsbyclassname/index.md | 73 +- .../api/element/getelementsbytagname/index.md | 52 +- .../element/getelementsbytagnamens/index.md | 67 +- .../element/gotpointercapture_event/index.md | 69 +- .../es/web/api/element/hasattribute/index.md | 74 +- files/es/web/api/element/id/index.md | 64 +- files/es/web/api/element/index.md | 705 ++--- .../element/insertadjacentelement/index.md | 165 +- .../api/element/insertadjacenthtml/index.md | 103 +- files/es/web/api/element/localname/index.md | 125 +- .../element/lostpointercapture_event/index.md | 69 +- .../web/api/element/mousedown_event/index.md | 185 +- .../es/web/api/element/namespaceuri/index.md | 71 +- .../api/element/nextelementsibling/index.md | 99 +- files/es/web/api/element/outerhtml/index.md | 97 +- files/es/web/api/element/prefix/index.md | 61 +- .../es/web/api/element/queryselector/index.md | 171 +- .../web/api/element/removeattribute/index.md | 34 +- .../api/element/requestfullscreen/index.md | 58 +- .../es/web/api/element/scroll_event/index.md | 72 +- .../es/web/api/element/scrollheight/index.md | 125 +- files/es/web/api/element/scrolltop/index.md | 79 +- .../es/web/api/element/scrolltopmax/index.md | 20 +- files/es/web/api/element/scrollwidth/index.md | 98 +- .../es/web/api/element/setattribute/index.md | 82 +- .../web/api/element/setattributens/index.md | 32 +- files/es/web/api/element/setcapture/index.md | 66 +- files/es/web/api/element/tagname/index.md | 39 +- .../web/api/element/touchstart_event/index.md | 79 +- .../element/transitioncancel_event/index.md | 126 +- .../api/element/transitionend_event/index.md | 129 +- files/es/web/api/event/bubbles/index.md | 44 +- files/es/web/api/event/cancelable/index.md | 33 +- files/es/web/api/event/currenttarget/index.md | 64 +- .../web/api/event/defaultprevented/index.md | 23 +- files/es/web/api/event/index.md | 331 ++- files/es/web/api/event/initevent/index.md | 45 +- .../es/web/api/event/preventdefault/index.md | 113 +- .../es/web/api/event/stoppropagation/index.md | 51 +- files/es/web/api/event/target/index.md | 77 +- files/es/web/api/event/type/index.md | 81 +- .../web/api/eventsource/open_event/index.md | 58 +- .../api/eventtarget/addeventlistener/index.md | 227 +- .../api/eventtarget/dispatchevent/index.md | 31 +- files/es/web/api/eventtarget/index.md | 67 +- files/es/web/api/fetch/index.md | 214 +- .../web/api/fetch_api/basic_concepts/index.md | 97 +- files/es/web/api/fetch_api/index.md | 93 +- .../es/web/api/fetch_api/using_fetch/index.md | 398 +-- files/es/web/api/fetchevent/index.md | 93 +- .../es/web/api/file/lastmodifieddate/index.md | 36 +- files/es/web/api/file/name/index.md | 66 +- .../web/api/file/webkitrelativepath/index.md | 74 +- .../index.md | 496 ++-- files/es/web/api/filereader/index.md | 180 +- .../es/web/api/filereader/load_event/index.md | 11 +- .../es/web/api/filereader/readastext/index.md | 47 +- files/es/web/api/filereader/result/index.md | 97 +- files/es/web/api/formdata/index.md | 97 +- .../formdata/using_formdata_objects/index.md | 133 +- files/es/web/api/fullscreen_api/index.md | 255 +- files/es/web/api/gamepad_api/index.md | 103 +- files/es/web/api/gamepadbutton/index.md | 67 +- .../geolocation/getcurrentposition/index.md | 72 +- .../api/geolocation/watchposition/index.md | 76 +- .../web/api/geolocationcoordinates/index.md | 91 +- .../geolocationcoordinates/latitude/index.md | 42 +- files/es/web/api/geolocationposition/index.md | 57 +- files/es/web/api/globaleventhandlers/index.md | 477 ++-- files/es/web/api/history/index.md | 91 +- files/es/web/api/history/length/index.md | 46 +- .../file_drag_and_drop/index.md | 88 +- .../web/api/html_drag_and_drop_api/index.md | 93 +- files/es/web/api/htmlaudioelement/index.md | 76 +- .../api/htmlcanvaselement/getcontext/index.md | 180 +- .../web/api/htmlcanvaselement/height/index.md | 74 +- .../web/api/htmlcanvaselement/width/index.md | 74 +- files/es/web/api/htmlcollection/index.md | 97 +- files/es/web/api/htmldivelement/index.md | 69 +- .../es/web/api/htmlelement/accesskey/index.md | 14 +- .../api/htmlelement/contenteditable/index.md | 60 +- files/es/web/api/htmlelement/index.md | 270 +- .../web/api/htmlelement/offsetheight/index.md | 63 +- .../web/api/htmlelement/offsetleft/index.md | 93 +- .../web/api/htmlelement/offsetparent/index.md | 44 +- .../es/web/api/htmlelement/offsettop/index.md | 59 +- .../web/api/htmlelement/offsetwidth/index.md | 63 +- files/es/web/api/htmlformelement/index.md | 195 +- .../es/web/api/htmlformelement/reset/index.md | 51 +- files/es/web/api/htmlheadelement/index.md | 75 +- files/es/web/api/htmlimageelement/index.md | 203 +- .../htmlinputelement/invalid_event/index.md | 145 +- .../web/api/htmlinputelement/select/index.md | 45 +- files/es/web/api/htmllabelelement/index.md | 84 +- files/es/web/api/htmllielement/index.md | 69 +- .../htmlmediaelement/canplay_event/index.md | 149 +- files/es/web/api/htmlmediaelement/index.md | 401 ++- .../loadeddata_event/index.md | 184 +- .../web/api/htmlmediaelement/pause/index.md | 51 +- .../web/api/htmlmediaelement/paused/index.md | 56 +- .../es/web/api/htmlmediaelement/play/index.md | 111 +- .../timeupdate_event/index.md | 111 +- files/es/web/api/htmlselectelement/index.md | 226 +- .../setcustomvalidity/index.md | 49 +- files/es/web/api/htmlstyleelement/index.md | 156 +- .../web/api/htmltableelement/align/index.md | 42 +- files/es/web/api/htmltableelement/index.md | 106 +- .../api/htmltableelement/insertrow/index.md | 96 +- files/es/web/api/htmlvideoelement/index.md | 145 +- files/es/web/api/idbobjectstore/index.md | 167 +- files/es/web/api/imagebitmap/index.md | 65 +- .../api/imagebitmaprenderingcontext/index.md | 34 +- files/es/web/api/indexeddb_api/index.md | 94 +- .../indexeddb_api/using_indexeddb/index.md | 805 +++--- .../api/intersection_observer_api/index.md | 482 ++-- files/es/web/api/issecurecontext/index.md | 34 +- .../es/web/api/keyboardevent/metakey/index.md | 73 +- files/es/web/api/location/index.md | 118 +- files/es/web/api/location/origin/index.md | 51 +- files/es/web/api/location/reload/index.md | 83 +- .../taking_still_photos/index.md | 144 +- .../api/mediadevices/getusermedia/index.md | 205 +- files/es/web/api/mediadevices/index.md | 65 +- .../api/mediaquerylist/addlistener/index.md | 68 +- files/es/web/api/mediaquerylist/index.md | 96 +- .../web/api/mediaquerylist/matches/index.md | 60 +- .../mediaquerylist/removelistener/index.md | 70 +- files/es/web/api/messageevent/index.md | 136 +- files/es/web/api/mimetype/index.md | 45 +- files/es/web/api/mouseevent/index.md | 272 +- .../api/mouseevent/initmouseevent/index.md | 99 +- files/es/web/api/mouseevent/pagex/index.md | 194 +- files/es/web/api/mouseevent/shiftkey/index.md | 81 +- .../es/web/api/navigator/donottrack/index.md | 53 +- .../es/web/api/navigator/geolocation/index.md | 74 +- .../web/api/navigator/getusermedia/index.md | 151 +- .../registerprotocolhandler/index.md | 51 +- files/es/web/api/navigator/vibrate/index.md | 61 +- .../web/api/network_information_api/index.md | 84 +- files/es/web/api/node/appendchild/index.md | 131 +- files/es/web/api/node/childnodes/index.md | 116 +- files/es/web/api/node/clonenode/index.md | 115 +- files/es/web/api/node/contains/index.md | 64 +- files/es/web/api/node/haschildnodes/index.md | 66 +- files/es/web/api/node/issamenode/index.md | 85 +- files/es/web/api/node/lastchild/index.md | 61 +- files/es/web/api/node/nextsibling/index.md | 63 +- files/es/web/api/node/nodename/index.md | 155 +- files/es/web/api/node/nodetype/index.md | 106 +- files/es/web/api/node/nodevalue/index.md | 94 +- files/es/web/api/node/ownerdocument/index.md | 54 +- files/es/web/api/node/parentelement/index.md | 38 +- files/es/web/api/node/parentnode/index.md | 56 +- .../es/web/api/node/previoussibling/index.md | 65 +- files/es/web/api/node/replacechild/index.md | 52 +- files/es/web/api/notifications_api/index.md | 87 +- files/es/web/api/payment_request_api/index.md | 204 +- files/es/web/api/performance/memory/index.md | 42 +- .../web/api/performance/navigation/index.md | 47 +- files/es/web/api/performance/now/index.md | 60 +- .../web/api/performance/timeorigin/index.md | 39 +- files/es/web/api/performance/timing/index.md | 47 +- files/es/web/api/pointer_lock_api/index.md | 147 +- files/es/web/api/push_api/index.md | 107 +- files/es/web/api/pushmanager/index.md | 95 +- .../supportedcontentencodings/index.md | 41 +- files/es/web/api/range/collapsed/index.md | 34 +- .../range/commonancestorcontainer/index.md | 34 +- .../es/web/api/range/getclientrects/index.md | 49 +- files/es/web/api/range/index.md | 190 +- files/es/web/api/range/setstart/index.md | 75 +- files/es/web/api/request/headers/index.md | 65 +- files/es/web/api/request/index.md | 223 +- files/es/web/api/response/ok/index.md | 61 +- files/es/web/api/response/response/index.md | 87 +- files/es/web/api/response/status/index.md | 59 +- .../cantrickleicecandidates/index.md | 80 +- files/es/web/api/rtcrtpreceiver/index.md | 87 +- files/es/web/api/selection/addrange/index.md | 50 +- .../es/web/api/selection/anchornode/index.md | 21 +- .../web/api/selection/anchoroffset/index.md | 21 +- files/es/web/api/selection/collapse/index.md | 52 +- .../web/api/selection/collapsetoend/index.md | 21 +- .../api/selection/collapsetostart/index.md | 23 +- .../api/selection/deletefromdocument/index.md | 25 +- files/es/web/api/selection/extend/index.md | 41 +- files/es/web/api/selection/focusnode/index.md | 19 +- .../es/web/api/selection/focusoffset/index.md | 21 +- .../es/web/api/selection/getrangeat/index.md | 56 +- files/es/web/api/selection/index.md | 176 +- .../es/web/api/selection/iscollapsed/index.md | 19 +- .../es/web/api/selection/rangecount/index.md | 26 +- .../api/selection/removeallranges/index.md | 21 +- .../es/web/api/selection/removerange/index.md | 48 +- .../api/selection/selectallchildren/index.md | 47 +- files/es/web/api/selection/tostring/index.md | 44 +- .../using_server-sent_events/index.md | 160 +- files/es/web/api/service_worker_api/index.md | 259 +- .../web/api/serviceworkercontainer/index.md | 117 +- .../serviceworkercontainer/register/index.md | 80 +- files/es/web/api/settimeout/index.md | 216 +- files/es/web/api/storage/clear/index.md | 69 +- files/es/web/api/storage/getitem/index.md | 68 +- files/es/web/api/storage/index.md | 89 +- files/es/web/api/storage/length/index.md | 59 +- files/es/web/api/storage/removeitem/index.md | 75 +- files/es/web/api/storage/setitem/index.md | 77 +- .../web/api/storagemanager/estimate/index.md | 83 +- files/es/web/api/storagemanager/index.md | 45 +- .../web/api/storagemanager/persist/index.md | 49 +- .../web/api/storagemanager/persisted/index.md | 49 +- files/es/web/api/stylesheet/disabled/index.md | 37 +- files/es/web/api/stylesheet/href/index.md | 73 +- files/es/web/api/stylesheet/index.md | 86 +- files/es/web/api/stylesheet/media/index.md | 47 +- .../api/stylesheet/parentstylesheet/index.md | 47 +- files/es/web/api/stylesheet/title/index.md | 23 +- files/es/web/api/stylesheet/type/index.md | 31 +- files/es/web/api/subtlecrypto/digest/index.md | 124 +- files/es/web/api/subtlecrypto/index.md | 371 +-- files/es/web/api/svgpoint/index.md | 4 +- .../api/texttrack/cuechange_event/index.md | 124 +- files/es/web/api/touch_events/index.md | 171 +- files/es/web/api/touchevent/index.md | 149 +- files/es/web/api/uievent/which/index.md | 111 +- files/es/web/api/url/createobjecturl/index.md | 69 +- files/es/web/api/url/host/index.md | 55 +- files/es/web/api/url/index.md | 161 +- files/es/web/api/url/port/index.md | 65 +- files/es/web/api/url/url/index.md | 118 +- files/es/web/api/urlsearchparams/index.md | 141 +- .../urlsearchparams/urlsearchparams/index.md | 70 +- files/es/web/api/vibration_api/index.md | 127 +- files/es/web/api/web_audio_api/index.md | 503 ++-- files/es/web/api/web_crypto_api/index.md | 90 +- files/es/web/api/web_speech_api/index.md | 137 +- .../using_the_web_speech_api/index.md | 311 ++- files/es/web/api/web_storage_api/index.md | 91 +- .../using_the_web_storage_api/index.md | 191 +- files/es/web/api/web_workers_api/index.md | 161 +- .../using_web_workers/index.md | 365 +-- .../index.md | 102 +- .../animating_textures_in_webgl/index.md | 105 +- .../creating_3d_objects_using_webgl/index.md | 58 +- .../getting_started_with_webgl/index.md | 80 +- files/es/web/api/webgl_api/tutorial/index.md | 50 +- .../index.md | 69 +- .../es/web/api/webrtc_api/protocols/index.md | 34 +- .../api/webrtc_api/session_lifetime/index.md | 37 +- .../es/web/api/websocket/close_event/index.md | 103 +- .../es/web/api/websocket/error_event/index.md | 43 +- .../index.md | 174 +- .../writing_websocket_server/index.md | 252 +- .../writing_websocket_servers/index.md | 287 +- files/es/web/api/webvr_api/index.md | 257 +- .../webvr_api/using_the_webvr_api/index.md | 372 +-- .../api/window/beforeunload_event/index.md | 179 +- .../api/window/cancelanimationframe/index.md | 48 +- files/es/web/api/window/close/index.md | 88 +- files/es/web/api/window/closed/index.md | 54 +- files/es/web/api/window/confirm/index.md | 66 +- .../web/api/window/devicepixelratio/index.md | 42 +- .../web/api/window/dialogarguments/index.md | 10 +- files/es/web/api/window/document/index.md | 49 +- files/es/web/api/window/error_event/index.md | 49 +- files/es/web/api/window/frameelement/index.md | 61 +- files/es/web/api/window/fullscreen/index.md | 40 +- .../web/api/window/getcomputedstyle/index.md | 51 +- files/es/web/api/window/getselection/index.md | 52 +- .../web/api/window/hashchange_event/index.md | 137 +- files/es/web/api/window/history/index.md | 36 +- files/es/web/api/window/innerheight/index.md | 71 +- files/es/web/api/window/localstorage/index.md | 94 +- files/es/web/api/window/location/index.md | 212 +- files/es/web/api/window/locationbar/index.md | 75 +- files/es/web/api/window/matchmedia/index.md | 61 +- files/es/web/api/window/menubar/index.md | 48 +- files/es/web/api/window/moveby/index.md | 72 +- files/es/web/api/window/navigator/index.md | 70 +- .../es/web/api/window/offline_event/index.md | 77 +- files/es/web/api/window/opener/index.md | 24 +- files/es/web/api/window/outerheight/index.md | 70 +- files/es/web/api/window/outerwidth/index.md | 58 +- .../es/web/api/window/popstate_event/index.md | 67 +- files/es/web/api/window/print/index.md | 50 +- files/es/web/api/window/prompt/index.md | 74 +- .../api/window/requestanimationframe/index.md | 67 +- files/es/web/api/window/scrollby/index.md | 85 +- files/es/web/api/window/scrollto/index.md | 51 +- files/es/web/api/window/scrollx/index.md | 75 +- files/es/web/api/window/scrolly/index.md | 49 +- .../es/web/api/window/sessionstorage/index.md | 67 +- .../web/api/window/showmodaldialog/index.md | 140 +- files/es/web/api/window/statusbar/index.md | 95 +- files/es/web/api/windoweventhandlers/index.md | 113 +- files/es/web/api/worker/index.md | 111 +- files/es/web/api/worker/terminate/index.md | 64 +- files/es/web/api/xmldocument/async/index.md | 26 +- .../es/web/api/xmlhttprequest/abort/index.md | 56 +- .../api/xmlhttprequest/loadend_event/index.md | 125 +- .../readystatechange_event/index.md | 59 +- .../api/xmlhttprequest/responsetext/index.md | 40 +- files/es/web/css/--_star_/index.md | 92 +- .../web/css/-moz-context-properties/index.md | 79 +- files/es/web/css/-moz-image-rect/index.md | 122 +- files/es/web/css/-moz-image-region/index.md | 22 +- files/es/web/css/-moz-orient/index.md | 70 +- .../-moz-outline-radius-bottomleft/index.md | 10 +- .../-moz-outline-radius-bottomright/index.md | 12 +- .../css/-moz-outline-radius-topleft/index.md | 10 +- .../css/-moz-outline-radius-topright/index.md | 10 +- files/es/web/css/-moz-outline-radius/index.md | 98 +- files/es/web/css/-moz-user-focus/index.md | 71 +- files/es/web/css/-moz-user-input/index.md | 54 +- .../es/web/css/-webkit-border-before/index.md | 78 +- files/es/web/css/-webkit-box-reflect/index.md | 51 +- .../web/css/-webkit-mask-attachment/index.md | 35 +- .../web/css/-webkit-mask-box-image/index.md | 120 +- .../web/css/-webkit-mask-composite/index.md | 92 +- .../web/css/-webkit-mask-position-x/index.md | 62 +- .../web/css/-webkit-mask-position-y/index.md | 62 +- .../es/web/css/-webkit-mask-repeat-x/index.md | 61 +- .../css/-webkit-overflow-scrolling/index.md | 69 +- .../css/-webkit-tap-highlight-color/index.md | 31 +- .../web/css/-webkit-text-fill-color/index.md | 60 +- .../css/-webkit-text-stroke-color/index.md | 81 +- .../css/-webkit-text-stroke-width/index.md | 69 +- files/es/web/css/-webkit-text-stroke/index.md | 99 +- .../es/web/css/-webkit-touch-callout/index.md | 45 +- files/es/web/css/@charset/index.md | 75 +- .../@counter-style/additive-symbols/index.md | 80 +- files/es/web/css/@counter-style/index.md | 202 +- .../web/css/@counter-style/symbols/index.md | 96 +- .../web/css/@font-face/font-display/index.md | 99 +- .../web/css/@font-face/font-family/index.md | 106 +- files/es/web/css/@font-face/src/index.md | 69 +- .../es/web/css/@font-feature-values/index.md | 78 +- files/es/web/css/@keyframes/index.md | 143 +- files/es/web/css/@media/color/index.md | 25 +- files/es/web/css/@media/display-mode/index.md | 82 +- files/es/web/css/@media/height/index.md | 60 +- files/es/web/css/@media/hover/index.md | 65 +- files/es/web/css/@media/index.md | 306 +-- files/es/web/css/@media/pointer/index.md | 83 +- files/es/web/css/@media/resolution/index.md | 25 +- files/es/web/css/@media/width/index.md | 66 +- files/es/web/css/@namespace/index.md | 71 +- files/es/web/css/@page/index.md | 101 +- files/es/web/css/@supports/index.md | 157 +- files/es/web/css/_colon_-moz-broken/index.md | 20 +- .../es/web/css/_colon_-moz-drag-over/index.md | 43 +- .../web/css/_colon_-moz-first-node/index.md | 49 +- .../es/web/css/_colon_-moz-focusring/index.md | 35 +- .../css/_colon_-moz-handler-blocked/index.md | 20 +- .../css/_colon_-moz-handler-crashed/index.md | 20 +- .../css/_colon_-moz-handler-disabled/index.md | 20 +- .../es/web/css/_colon_-moz-last-node/index.md | 49 +- .../web/css/_colon_-moz-list-number/index.md | 45 +- files/es/web/css/_colon_-moz-loading/index.md | 12 +- .../css/_colon_-moz-locale-dir(ltr)/index.md | 20 +- .../css/_colon_-moz-locale-dir(rtl)/index.md | 26 +- .../css/_colon_-moz-only-whitespace/index.md | 34 +- .../css/_colon_-moz-submit-invalid/index.md | 26 +- .../web/css/_colon_-moz-suppressed/index.md | 12 +- .../css/_colon_-moz-user-disabled/index.md | 12 +- .../css/_colon_-moz-window-inactive/index.md | 41 +- files/es/web/css/_colon_active/index.md | 113 +- files/es/web/css/_colon_any-link/index.md | 69 +- files/es/web/css/_colon_autofill/index.md | 24 +- files/es/web/css/_colon_blank/index.md | 49 +- files/es/web/css/_colon_checked/index.md | 190 +- files/es/web/css/_colon_default/index.md | 113 +- files/es/web/css/_colon_defined/index.md | 88 +- files/es/web/css/_colon_disabled/index.md | 165 +- files/es/web/css/_colon_empty/index.md | 126 +- files/es/web/css/_colon_enabled/index.md | 122 +- files/es/web/css/_colon_first-child/index.md | 149 +- .../es/web/css/_colon_first-of-type/index.md | 124 +- files/es/web/css/_colon_first/index.md | 113 +- files/es/web/css/_colon_focus-within/index.md | 90 +- files/es/web/css/_colon_focus/index.md | 139 +- files/es/web/css/_colon_fullscreen/index.md | 123 +- files/es/web/css/_colon_has/index.md | 44 +- files/es/web/css/_colon_host/index.md | 82 +- files/es/web/css/_colon_hover/index.md | 125 +- files/es/web/css/_colon_in-range/index.md | 117 +- files/es/web/css/_colon_invalid/index.md | 145 +- files/es/web/css/_colon_is/index.md | 91 +- files/es/web/css/_colon_lang/index.md | 111 +- files/es/web/css/_colon_last-child/index.md | 143 +- files/es/web/css/_colon_last-of-type/index.md | 122 +- files/es/web/css/_colon_left/index.md | 76 +- files/es/web/css/_colon_link/index.md | 123 +- files/es/web/css/_colon_not/index.md | 111 +- files/es/web/css/_colon_nth-child/index.md | 261 +- .../es/web/css/_colon_nth-last-child/index.md | 242 +- .../web/css/_colon_nth-last-of-type/index.md | 107 +- files/es/web/css/_colon_nth-of-type/index.md | 105 +- files/es/web/css/_colon_only-child/index.md | 172 +- files/es/web/css/_colon_only-of-type/index.md | 123 +- files/es/web/css/_colon_optional/index.md | 113 +- files/es/web/css/_colon_out-of-range/index.md | 117 +- .../web/css/_colon_placeholder-shown/index.md | 99 +- files/es/web/css/_colon_read-only/index.md | 108 +- files/es/web/css/_colon_read-write/index.md | 108 +- files/es/web/css/_colon_required/index.md | 113 +- files/es/web/css/_colon_right/index.md | 74 +- files/es/web/css/_colon_root/index.md | 60 +- files/es/web/css/_colon_target/index.md | 188 +- files/es/web/css/_colon_user-invalid/index.md | 40 +- files/es/web/css/_colon_valid/index.md | 102 +- files/es/web/css/_colon_visited/index.md | 135 +- .../_doublecolon_-moz-color-swatch/index.md | 54 +- .../_doublecolon_-moz-page-sequence/index.md | 28 +- .../web/css/_doublecolon_-moz-page/index.md | 22 +- .../_doublecolon_-moz-progress-bar/index.md | 50 +- .../_doublecolon_-moz-range-progress/index.md | 69 +- .../_doublecolon_-moz-range-thumb/index.md | 78 +- .../_doublecolon_-moz-range-track/index.md | 78 +- .../index.md | 24 +- .../index.md | 45 +- .../_doublecolon_-webkit-meter-bar/index.md | 48 +- .../index.md | 48 +- .../index.md | 51 +- .../index.md | 50 +- .../index.md | 48 +- .../index.md | 45 +- .../index.md | 65 +- .../index.md | 65 +- .../index.md | 66 +- .../_doublecolon_-webkit-scrollbar/index.md | 30 +- .../index.md | 37 +- .../index.md | 35 +- files/es/web/css/_doublecolon_after/index.md | 255 +- .../es/web/css/_doublecolon_backdrop/index.md | 43 +- files/es/web/css/_doublecolon_before/index.md | 269 +- files/es/web/css/_doublecolon_cue/index.md | 159 +- .../css/_doublecolon_first-letter/index.md | 177 +- files/es/web/css/_doublecolon_marker/index.md | 103 +- .../web/css/_doublecolon_placeholder/index.md | 161 +- .../web/css/_doublecolon_selection/index.md | 42 +- .../css/_doublecolon_spelling-error/index.md | 75 +- files/es/web/css/actual_value/index.md | 35 +- .../css/adjacent_sibling_combinator/index.md | 99 +- files/es/web/css/align-content/index.md | 224 +- files/es/web/css/align-self/index.md | 86 +- files/es/web/css/all/index.md | 181 +- files/es/web/css/animation-delay/index.md | 73 +- files/es/web/css/animation-direction/index.md | 87 +- files/es/web/css/animation-duration/index.md | 75 +- files/es/web/css/animation-fill-mode/index.md | 222 +- .../css/animation-iteration-count/index.md | 73 +- files/es/web/css/animation-name/index.md | 86 +- .../es/web/css/animation-play-state/index.md | 73 +- .../css/animation-timing-function/index.md | 68 +- files/es/web/css/animation/index.md | 76 +- files/es/web/css/at-rule/index.md | 89 +- files/es/web/css/attr/index.md | 231 +- files/es/web/css/attribute_selectors/index.md | 251 +- files/es/web/css/backdrop-filter/index.md | 90 +- files/es/web/css/backface-visibility/index.md | 173 +- .../es/web/css/background-attachment/index.md | 146 +- .../es/web/css/background-blend-mode/index.md | 126 +- files/es/web/css/background-color/index.md | 166 +- files/es/web/css/background-image/index.md | 140 +- files/es/web/css/background-position/index.md | 223 +- files/es/web/css/basic-shape/index.md | 133 +- files/es/web/css/blend-mode/index.md | 419 ++- files/es/web/css/block-size/index.md | 87 +- files/es/web/css/border-block-color/index.md | 83 +- .../web/css/border-block-end-color/index.md | 87 +- .../web/css/border-block-end-style/index.md | 87 +- .../web/css/border-block-end-width/index.md | 87 +- files/es/web/css/border-block-end/index.md | 97 +- .../web/css/border-block-start-color/index.md | 87 +- .../web/css/border-block-start-style/index.md | 87 +- .../web/css/border-block-start-width/index.md | 87 +- files/es/web/css/border-block-start/index.md | 99 +- files/es/web/css/border-block-style/index.md | 85 +- files/es/web/css/border-block-width/index.md | 83 +- files/es/web/css/border-bottom-color/index.md | 184 +- files/es/web/css/border-bottom-style/index.md | 128 +- files/es/web/css/border-bottom-width/index.md | 176 +- files/es/web/css/border-bottom/index.md | 132 +- files/es/web/css/border-collapse/index.md | 102 +- files/es/web/css/border-color/index.md | 180 +- .../es/web/css/border-end-end-radius/index.md | 83 +- .../web/css/border-end-start-radius/index.md | 83 +- files/es/web/css/border-image-outset/index.md | 100 +- files/es/web/css/border-image-repeat/index.md | 137 +- files/es/web/css/border-image-slice/index.md | 110 +- files/es/web/css/border-image/index.md | 92 +- files/es/web/css/border-inline-color/index.md | 83 +- .../web/css/border-inline-end-color/index.md | 87 +- .../web/css/border-inline-end-style/index.md | 87 +- .../web/css/border-inline-end-width/index.md | 87 +- files/es/web/css/border-inline-end/index.md | 99 +- .../css/border-inline-start-color/index.md | 87 +- .../css/border-inline-start-style/index.md | 87 +- .../css/border-inline-start-width/index.md | 87 +- files/es/web/css/border-inline-start/index.md | 99 +- files/es/web/css/border-inline-style/index.md | 85 +- files/es/web/css/border-inline-width/index.md | 83 +- files/es/web/css/border-inline/index.md | 95 +- files/es/web/css/border-left-color/index.md | 90 +- files/es/web/css/border-left/index.md | 77 +- files/es/web/css/border-right/index.md | 117 +- files/es/web/css/border-spacing/index.md | 113 +- .../web/css/border-start-end-radius/index.md | 83 +- .../css/border-start-start-radius/index.md | 83 +- files/es/web/css/border-style/index.md | 243 +- files/es/web/css/border-top-color/index.md | 96 +- .../web/css/border-top-left-radius/index.md | 185 +- files/es/web/css/border-top/index.md | 113 +- files/es/web/css/border-width/index.md | 158 +- files/es/web/css/bottom/index.md | 176 +- files/es/web/css/box-flex/index.md | 94 +- files/es/web/css/box-ordinal-group/index.md | 35 +- files/es/web/css/box-pack/index.md | 102 +- files/es/web/css/calc/index.md | 141 +- files/es/web/css/caret-color/index.md | 90 +- files/es/web/css/child_combinator/index.md | 70 +- files/es/web/css/class_selectors/index.md | 73 +- files/es/web/css/clear/index.md | 216 +- files/es/web/css/color/index.md | 208 +- files/es/web/css/color_value/index.md | 2443 ++++++++--------- files/es/web/css/column-count/index.md | 87 +- files/es/web/css/column-gap/index.md | 209 +- files/es/web/css/column-span/index.md | 90 +- files/es/web/css/comments/index.md | 37 +- files/es/web/css/computed_value/index.md | 49 +- files/es/web/css/content/index.md | 104 +- .../detecting_css_animation_support/index.md | 52 +- files/es/web/css/css_animations/index.md | 83 +- files/es/web/css/css_animations/tips/index.md | 117 +- .../border-image_generator/index.md | 468 ++-- .../border-radius_generator/index.md | 267 +- .../css/css_backgrounds_and_borders/index.md | 143 +- .../using_multiple_backgrounds/index.md | 45 +- files/es/web/css/css_box_model/index.md | 165 +- .../index.md | 61 +- .../mastering_margin_collapsing/index.md | 99 +- .../css/css_colors/color_picker_tool/index.md | 230 +- files/es/web/css/css_colors/index.md | 95 +- files/es/web/css/css_columns/index.md | 81 +- .../using_multi-column_layouts/index.md | 142 +- .../es/web/css/css_conditional_rules/index.md | 57 +- files/es/web/css/css_containment/index.md | 150 +- .../index.md | 234 +- .../index.md | 112 +- .../basic_concepts_of_flexbox/index.md | 244 +- .../web/css/css_flexible_box_layout/index.md | 189 +- .../typical_use_cases_of_flexbox/index.md | 123 +- files/es/web/css/css_flow_layout/index.md | 44 +- .../index.md | 626 ++--- .../box_alignment_in_css_grid_layout/index.md | 569 ++-- .../index.md | 589 ++-- .../basic_concepts/index.md | 70 +- .../floating_and_positioning/index.md | 269 +- .../web/css/css_logical_properties/index.md | 283 +- .../margins_borders_padding/index.md | 376 +-- .../css_logical_properties/sizing/index.md | 92 +- files/es/web/css/css_motion_path/index.md | 72 +- files/es/web/css/css_positioning/index.md | 69 +- .../adding_z-index/index.md | 186 +- .../understanding_z_index/index.md | 44 +- .../stacking_and_float/index.md | 113 +- .../stacking_context_example_2/index.md | 127 +- .../stacking_context_example_3/index.md | 183 +- .../stacking_without_z-index/index.md | 113 +- .../the_stacking_context/index.md | 287 +- .../web/css/css_properties_reference/index.md | 378 +-- files/es/web/css/css_selectors/index.md | 149 +- .../index.md | 67 +- files/es/web/css/css_text/index.md | 85 +- files/es/web/css/css_transforms/index.md | 69 +- files/es/web/css/css_transitions/index.md | 77 +- files/es/web/css/css_types/index.md | 79 +- files/es/web/css/css_writing_modes/index.md | 57 +- files/es/web/css/cursor/index.md | 505 ++-- files/es/web/css/direction/index.md | 96 +- files/es/web/css/env/index.md | 16 +- .../es/web/css/filter-function/blur/index.md | 34 +- files/es/web/css/filter-function/index.md | 93 +- files/es/web/css/filter/index.md | 1165 ++++---- files/es/web/css/flex-grow/index.md | 100 +- files/es/web/css/flex-shrink/index.md | 142 +- files/es/web/css/font-family/index.md | 62 +- .../web/css/font-language-override/index.md | 2 +- files/es/web/css/font-size-adjust/index.md | 60 +- files/es/web/css/font-size/index.md | 77 +- files/es/web/css/font-style/index.md | 101 +- files/es/web/css/font-weight/index.md | 119 +- files/es/web/css/frequency/index.md | 114 +- files/es/web/css/gap/index.md | 219 +- files/es/web/css/gradient/index.md | 123 +- files/es/web/css/grid-template-areas/index.md | 205 +- files/es/web/css/grid/index.md | 224 +- files/es/web/css/hyphens/index.md | 142 +- files/es/web/css/id_selectors/index.md | 101 +- files/es/web/css/image-rendering/index.md | 106 +- files/es/web/css/image/index.md | 174 +- files/es/web/css/ime-mode/index.md | 105 +- files/es/web/css/inherit/index.md | 60 +- files/es/web/css/inheritance/index.md | 59 +- files/es/web/css/initial/index.md | 77 +- files/es/web/css/initial_value/index.md | 38 +- files/es/web/css/inline-size/index.md | 81 +- files/es/web/css/inset-block-end/index.md | 93 +- files/es/web/css/inset-block-start/index.md | 93 +- files/es/web/css/inset-block/index.md | 81 +- files/es/web/css/inset-inline-end/index.md | 93 +- files/es/web/css/inset-inline-start/index.md | 93 +- files/es/web/css/inset-inline/index.md | 81 +- files/es/web/css/inset/index.md | 80 +- files/es/web/css/integer/index.md | 12 +- files/es/web/css/isolation/index.md | 103 +- files/es/web/css/justify-content/index.md | 178 +- files/es/web/css/layout_cookbook/index.md | 83 +- files/es/web/css/layout_mode/index.md | 28 +- files/es/web/css/left/index.md | 108 +- files/es/web/css/length/index.md | 212 +- files/es/web/css/line-height/index.md | 147 +- files/es/web/css/list-style-image/index.md | 80 +- files/es/web/css/list-style-position/index.md | 125 +- files/es/web/css/list-style-type/index.md | 176 +- files/es/web/css/margin-block-start/index.md | 85 +- files/es/web/css/margin-block/index.md | 93 +- files/es/web/css/margin-bottom/index.md | 101 +- files/es/web/css/margin-inline-end/index.md | 85 +- files/es/web/css/margin-inline-start/index.md | 85 +- files/es/web/css/margin-inline/index.md | 81 +- files/es/web/css/margin-right/index.md | 44 +- files/es/web/css/margin/index.md | 151 +- files/es/web/css/mask-clip/index.md | 51 +- files/es/web/css/mask-image/index.md | 48 +- files/es/web/css/mask-origin/index.md | 42 +- files/es/web/css/mask-position/index.md | 79 +- files/es/web/css/mask-repeat/index.md | 61 +- files/es/web/css/mask/index.md | 66 +- files/es/web/css/max-height/index.md | 99 +- files/es/web/css/max-inline-size/index.md | 79 +- files/es/web/css/media_queries/index.md | 117 +- files/es/web/css/min-block-size/index.md | 81 +- files/es/web/css/min-height/index.md | 68 +- files/es/web/css/min-inline-size/index.md | 81 +- files/es/web/css/min-width/index.md | 88 +- files/es/web/css/min/index.md | 109 +- files/es/web/css/minmax/index.md | 265 +- files/es/web/css/mix-blend-mode/index.md | 923 +++---- files/es/web/css/mozilla_extensions/index.md | 1198 ++++---- files/es/web/css/number/index.md | 4 +- files/es/web/css/object-fit/index.md | 146 +- files/es/web/css/object-position/index.md | 94 +- files/es/web/css/opacity/index.md | 193 +- files/es/web/css/order/index.md | 114 +- files/es/web/css/outline-offset/index.md | 77 +- files/es/web/css/outline-width/index.md | 109 +- files/es/web/css/outline/index.md | 143 +- files/es/web/css/overflow/index.md | 164 +- files/es/web/css/padding-block-end/index.md | 85 +- files/es/web/css/padding-block-start/index.md | 85 +- files/es/web/css/padding-block/index.md | 81 +- files/es/web/css/padding-bottom/index.md | 87 +- files/es/web/css/padding-inline-end/index.md | 85 +- .../es/web/css/padding-inline-start/index.md | 85 +- files/es/web/css/padding-inline/index.md | 81 +- files/es/web/css/padding-top/index.md | 85 +- files/es/web/css/padding/index.md | 144 +- files/es/web/css/percentage/index.md | 93 +- files/es/web/css/print-color-adjust/index.md | 43 +- files/es/web/css/pseudo-classes/index.md | 175 +- files/es/web/css/pseudo-elements/index.md | 122 +- files/es/web/css/quotes/index.md | 73 +- files/es/web/css/reference/index.md | 405 ++- files/es/web/css/repeat/index.md | 141 +- files/es/web/css/replaced_element/index.md | 23 +- files/es/web/css/resize/index.md | 129 +- files/es/web/css/resolution/index.md | 113 +- files/es/web/css/resolved_value/index.md | 35 +- files/es/web/css/right/index.md | 139 +- files/es/web/css/scroll-behavior/index.md | 99 +- files/es/web/css/specified_value/index.md | 41 +- files/es/web/css/syntax/index.md | 76 +- .../es/web/css/text-decoration-color/index.md | 92 +- .../es/web/css/text-decoration-style/index.md | 139 +- files/es/web/css/text-decoration/index.md | 102 +- files/es/web/css/text-emphasis-color/index.md | 87 +- files/es/web/css/text-emphasis/index.md | 128 +- files/es/web/css/text-orientation/index.md | 98 +- files/es/web/css/text-shadow/index.md | 134 +- files/es/web/css/time/index.md | 95 +- files/es/web/css/top/index.md | 226 +- .../css/transform-function/rotate/index.md | 127 +- .../web/css/transform-function/scale/index.md | 183 +- .../css/transform-function/translate/index.md | 192 +- .../transform-function/translatey/index.md | 166 +- .../transform-function/translatez/index.md | 180 +- files/es/web/css/transform-origin/index.md | 265 +- files/es/web/css/transform-style/index.md | 68 +- files/es/web/css/transition-delay/index.md | 187 +- files/es/web/css/transition-property/index.md | 76 +- files/es/web/css/transition/index.md | 58 +- files/es/web/css/tutorials/index.md | 94 +- files/es/web/css/type_selectors/index.md | 87 +- files/es/web/css/universal_selectors/index.md | 110 +- files/es/web/css/url/index.md | 28 +- files/es/web/css/user-modify/index.md | 69 +- .../css/using_css_custom_properties/index.md | 202 +- .../web/css/value_definition_syntax/index.md | 530 ++-- files/es/web/css/var/index.md | 67 +- files/es/web/css/vertical-align/index.md | 144 +- files/es/web/css/visibility/index.md | 86 +- files/es/web/css/white-space/index.md | 335 +-- files/es/web/css/widows/index.md | 110 +- files/es/web/css/width/index.md | 213 +- files/es/web/css/writing-mode/index.md | 209 +- files/es/web/css/z-index/index.md | 76 +- files/es/web/demos/index.md | 262 +- files/es/web/exslt/exsl/node-set/index.md | 32 +- files/es/web/exslt/exsl/object-type/index.md | 48 +- files/es/web/exslt/index.md | 127 +- files/es/web/exslt/math/highest/index.md | 31 +- files/es/web/exslt/math/lowest/index.md | 31 +- files/es/web/exslt/math/max/index.md | 31 +- files/es/web/exslt/math/min/index.md | 32 +- files/es/web/exslt/regexp/match/index.md | 74 +- files/es/web/exslt/regexp/replace/index.md | 54 +- files/es/web/exslt/regexp/test/index.md | 50 +- files/es/web/exslt/set/difference/index.md | 36 +- files/es/web/exslt/set/distinct/index.md | 30 +- files/es/web/exslt/set/has-same-node/index.md | 34 +- files/es/web/exslt/set/intersection/index.md | 34 +- files/es/web/exslt/set/leading/index.md | 36 +- files/es/web/exslt/set/trailing/index.md | 36 +- files/es/web/exslt/str/concat/index.md | 30 +- files/es/web/exslt/str/split/index.md | 50 +- files/es/web/exslt/str/tokenize/index.md | 54 +- files/es/web/guide/ajax/community/index.md | 66 +- .../web/guide/ajax/getting_started/index.md | 283 +- files/es/web/guide/api/index.md | 17 +- .../index.md | 53 +- .../css/block_formatting_context/index.md | 42 +- .../guide/html/content_categories/index.md | 200 +- files/es/web/guide/mobile/index.md | 72 +- .../parsing_and_serializing_xml/index.md | 130 +- files/es/web/guide/performance/index.md | 4 +- files/es/web/html/attributes/accept/index.md | 216 +- .../web/html/attributes/crossorigin/index.md | 67 +- .../es/web/html/attributes/minlength/index.md | 64 +- .../es/web/html/attributes/multiple/index.md | 277 +- .../es/web/html/block-level_elements/index.md | 229 +- files/es/web/html/cors_enabled_image/index.md | 48 +- files/es/web/html/element/abbr/index.md | 124 +- files/es/web/html/element/address/index.md | 153 +- files/es/web/html/element/article/index.md | 82 +- files/es/web/html/element/aside/index.md | 63 +- files/es/web/html/element/audio/index.md | 167 +- files/es/web/html/element/bdi/index.md | 118 +- files/es/web/html/element/blink/index.md | 43 +- files/es/web/html/element/br/index.md | 146 +- files/es/web/html/element/canvas/index.md | 94 +- files/es/web/html/element/data/index.md | 100 +- files/es/web/html/element/em/index.md | 78 +- files/es/web/html/element/embed/index.md | 71 +- files/es/web/html/element/figure/index.md | 75 +- files/es/web/html/element/head/index.md | 106 +- files/es/web/html/element/header/index.md | 71 +- .../html/element/heading_elements/index.md | 298 +- files/es/web/html/element/hgroup/index.md | 72 +- files/es/web/html/element/html/index.md | 118 +- files/es/web/html/element/image/index.md | 12 +- files/es/web/html/element/index.md | 96 +- .../es/web/html/element/input/color/index.md | 225 +- .../es/web/html/element/input/hidden/index.md | 195 +- files/es/web/html/element/link/index.md | 315 +-- files/es/web/html/element/nav/index.md | 117 +- files/es/web/html/element/nobr/index.md | 20 +- files/es/web/html/element/option/index.md | 105 +- files/es/web/html/element/picture/index.md | 158 +- files/es/web/html/element/section/index.md | 118 +- files/es/web/html/element/small/index.md | 12 +- files/es/web/html/element/sub/index.md | 135 +- files/es/web/html/element/template/index.md | 151 +- files/es/web/html/element/textarea/index.md | 274 +- files/es/web/html/element/tr/index.md | 179 +- files/es/web/html/element/wbr/index.md | 62 +- files/es/web/html/element/xmp/index.md | 41 +- .../html/global_attributes/accesskey/index.md | 141 +- .../global_attributes/autocapitalize/index.md | 45 +- .../web/html/global_attributes/class/index.md | 51 +- .../contenteditable/index.md | 69 +- .../global_attributes/contextmenu/index.md | 102 +- .../global_attributes/data-_star_/index.md | 75 +- .../web/html/global_attributes/dir/index.md | 41 +- .../html/global_attributes/draggable/index.md | 28 +- .../html/global_attributes/hidden/index.md | 67 +- .../es/web/html/global_attributes/id/index.md | 59 +- files/es/web/html/global_attributes/index.md | 292 +- .../es/web/html/global_attributes/is/index.md | 53 +- .../html/global_attributes/itemprop/index.md | 20 +- .../html/global_attributes/itemscope/index.md | 468 ++-- .../web/html/global_attributes/lang/index.md | 67 +- .../web/html/global_attributes/slot/index.md | 41 +- .../global_attributes/spellcheck/index.md | 318 ++- .../web/html/global_attributes/style/index.md | 59 +- .../html/global_attributes/tabindex/index.md | 73 +- .../web/html/global_attributes/title/index.md | 74 +- .../html/global_attributes/translate/index.md | 59 +- .../x-ms-acceleratorkey/index.md | 30 +- files/es/web/html/inline_elements/index.md | 51 +- .../quirks_mode_and_standards_mode/index.md | 52 +- files/es/web/http/authentication/index.md | 127 +- .../http/basics_of_http/data_urls/index.md | 128 +- .../basics_of_http/evolution_of_http/index.md | 254 +- .../identifying_resources_on_the_web/index.md | 263 +- files/es/web/http/basics_of_http/index.md | 75 +- .../mime_types/common_types/index.md | 363 +-- .../http/basics_of_http/mime_types/index.md | 478 ++-- .../es/web/http/conditional_requests/index.md | 152 +- .../index.md | 85 +- files/es/web/http/cookies/index.md | 266 +- .../errors/corsmissingalloworigin/index.md | 44 +- .../corspreflightdidnotsucceed/index.md | 26 +- .../cors/errors/corsrequestnothttp/index.md | 24 +- files/es/web/http/cors/errors/index.md | 82 +- .../web/http/headers/accept-ranges/index.md | 73 +- .../access-control-allow-credentials/index.md | 107 +- .../access-control-allow-headers/index.md | 131 +- .../access-control-allow-methods/index.md | 119 +- .../access-control-expose-headers/index.md | 126 +- files/es/web/http/headers/age/index.md | 73 +- files/es/web/http/headers/allow/index.md | 89 +- .../web/http/headers/authorization/index.md | 96 +- .../http/headers/content-disposition/index.md | 167 +- .../http/headers/content-encoding/index.md | 110 +- .../web/http/headers/content-length/index.md | 61 +- .../http/headers/content-location/index.md | 178 +- .../es/web/http/headers/content-type/index.md | 179 +- files/es/web/http/headers/cookie/index.md | 74 +- .../cross-origin-resource-policy/index.md | 62 +- files/es/web/http/headers/digest/index.md | 124 +- files/es/web/http/headers/etag/index.md | 105 +- files/es/web/http/headers/expires/index.md | 108 +- files/es/web/http/headers/host/index.md | 73 +- files/es/web/http/headers/keep-alive/index.md | 131 +- files/es/web/http/headers/origin/index.md | 86 +- files/es/web/http/headers/referer/index.md | 81 +- files/es/web/http/headers/server/index.md | 67 +- .../strict-transport-security/index.md | 121 +- .../http/headers/transfer-encoding/index.md | 172 +- .../http/headers/user-agent/firefox/index.md | 89 +- files/es/web/http/headers/vary/index.md | 85 +- .../http/headers/www-authenticate/index.md | 131 +- .../headers/x-content-type-options/index.md | 81 +- .../web/http/headers/x-forwarded-for/index.md | 79 +- .../http/headers/x-xss-protection/index.md | 100 +- files/es/web/http/messages/index.md | 162 +- files/es/web/http/methods/connect/index.md | 87 +- files/es/web/http/methods/get/index.md | 73 +- files/es/web/http/methods/index.md | 101 +- files/es/web/http/methods/post/index.md | 135 +- files/es/web/http/methods/trace/index.md | 77 +- files/es/web/http/overview/index.md | 206 +- .../http/protocol_upgrade_mechanism/index.md | 286 +- .../resources_and_specifications/index.md | 305 +- files/es/web/http/session/index.md | 204 +- files/es/web/http/status/100/index.md | 39 +- files/es/web/http/status/101/index.md | 51 +- files/es/web/http/status/200/index.md | 51 +- files/es/web/http/status/201/index.md | 39 +- files/es/web/http/status/202/index.md | 31 +- files/es/web/http/status/203/index.md | 39 +- files/es/web/http/status/302/index.md | 43 +- files/es/web/http/status/304/index.md | 53 +- files/es/web/http/status/400/index.md | 31 +- files/es/web/http/status/401/index.md | 59 +- files/es/web/http/status/404/index.md | 59 +- files/es/web/http/status/408/index.md | 41 +- files/es/web/http/status/413/index.md | 33 +- files/es/web/http/status/418/index.md | 39 +- files/es/web/http/status/500/index.md | 33 +- files/es/web/http/status/502/index.md | 41 +- files/es/web/http/status/503/index.md | 47 +- files/es/web/http/status/504/index.md | 43 +- files/es/web/http/status/505/index.md | 31 +- .../a_re-introduction_to_javascript/index.md | 891 +++--- .../web/javascript/about_javascript/index.md | 64 +- files/es/web/javascript/closures/index.md | 195 +- .../web/javascript/data_structures/index.md | 588 ++-- files/es/web/javascript/eventloop/index.md | 76 +- .../control_flow_and_error_handling/index.md | 391 ++- .../guide/expressions_and_operators/index.md | 1121 +++----- .../web/javascript/guide/functions/index.md | 598 ++-- .../guide/grammar_and_types/index.md | 765 +++--- .../guide/indexed_collections/index.md | 614 ++--- .../javascript/guide/introduction/index.md | 157 +- .../guide/iterators_and_generators/index.md | 115 +- .../guide/keyed_collections/index.md | 127 +- .../guide/loops_and_iteration/index.md | 314 ++- .../es/web/javascript/guide/modules/index.md | 497 ++-- .../guide/numbers_and_dates/index.md | 502 ++-- .../guide/regular_expressions/index.md | 543 ++-- .../javascript/guide/using_promises/index.md | 348 +-- .../guide/working_with_objects/index.md | 402 +-- .../index.md | 273 +- .../javascript_technologies_overview/index.md | 96 +- .../web/javascript/memory_management/index.md | 131 +- .../web/javascript/reference/about/index.md | 247 +- .../reference/classes/constructor/index.md | 104 +- .../reference/classes/extends/index.md | 87 +- .../classes/private_class_fields/index.md | 131 +- .../classes/public_class_fields/index.md | 256 +- .../reference/classes/static/index.md | 61 +- .../deprecated_and_obsolete_features/index.md | 426 +-- .../reference/errors/bad_octal/index.md | 44 +- .../reference/errors/bad_regexp_flag/index.md | 148 +- .../deprecated_source_map_pragma/index.md | 54 +- .../errors/illegal_character/index.md | 85 +- .../errors/in_operator_no_object/index.md | 67 +- .../web/javascript/reference/errors/index.md | 18 +- .../malformed_formal_parameter/index.md | 51 +- .../index.md | 39 +- .../errors/missing_formal_parameter/index.md | 59 +- .../index.md | 55 +- .../index.md | 64 +- .../errors/more_arguments_needed/index.md | 44 +- .../errors/no_variable_name/index.md | 82 +- .../reference/errors/not_a_codepoint/index.md | 44 +- .../reference/errors/not_a_function/index.md | 96 +- .../reference/errors/not_defined/index.md | 61 +- .../errors/property_access_denied/index.md | 44 +- .../errors/stmt_after_return/index.md | 59 +- .../errors/strict_non_simple_params/index.md | 113 +- .../errors/too_much_recursion/index.md | 45 +- .../reference/errors/undefined_prop/index.md | 44 +- .../errors/unexpected_token/index.md | 49 +- .../reference/errors/unexpected_type/index.md | 54 +- .../functions/arguments/callee/index.md | 35 +- .../functions/arguments/length/index.md | 84 +- .../reference/functions/get/index.md | 82 +- .../functions/rest_parameters/index.md | 176 +- .../reference/functions/set/index.md | 156 +- .../global_objects/aggregateerror/index.md | 73 +- .../global_objects/array/@@iterator/index.md | 89 +- .../global_objects/array/@@species/index.md | 86 +- .../array/@@unscopables/index.md | 79 +- .../global_objects/array/entries/index.md | 79 +- .../global_objects/array/fill/index.md | 123 +- .../global_objects/array/find/index.md | 180 +- .../global_objects/array/findindex/index.md | 145 +- .../global_objects/array/from/index.md | 174 +- .../global_objects/array/includes/index.md | 158 +- .../reference/global_objects/array/index.md | 645 +++-- .../global_objects/array/indexof/index.md | 180 +- .../global_objects/array/isarray/index.md | 109 +- .../global_objects/array/join/index.md | 116 +- .../global_objects/array/keys/index.md | 83 +- .../global_objects/array/lastindexof/index.md | 146 +- .../global_objects/array/length/index.md | 127 +- .../global_objects/array/of/index.md | 105 +- .../global_objects/array/pop/index.md | 103 +- .../global_objects/array/push/index.md | 134 +- .../global_objects/array/reduce/index.md | 158 +- .../global_objects/array/reduceright/index.md | 93 +- .../global_objects/array/reverse/index.md | 93 +- .../global_objects/array/shift/index.md | 75 +- .../global_objects/array/some/index.md | 188 +- .../global_objects/array/sort/index.md | 221 +- .../array/tolocalestring/index.md | 126 +- .../global_objects/array/tostring/index.md | 77 +- .../global_objects/array/unshift/index.md | 104 +- .../global_objects/array/values/index.md | 94 +- .../arraybuffer/@@species/index.md | 82 +- .../arraybuffer/bytelength/index.md | 66 +- .../reference/global_objects/boolean/index.md | 115 +- .../global_objects/boolean/tostring/index.md | 54 +- .../global_objects/date/getdate/index.md | 76 +- .../global_objects/date/getday/index.md | 76 +- .../global_objects/date/getfullyear/index.md | 74 +- .../global_objects/date/gethours/index.md | 76 +- .../date/getmilliseconds/index.md | 78 +- .../global_objects/date/getminutes/index.md | 74 +- .../global_objects/date/getmonth/index.md | 76 +- .../global_objects/date/getseconds/index.md | 88 +- .../global_objects/date/gettime/index.md | 88 +- .../date/getutcfullyear/index.md | 80 +- .../global_objects/date/now/index.md | 50 +- .../global_objects/date/parse/index.md | 62 +- .../global_objects/date/setfullyear/index.md | 98 +- .../global_objects/date/setmonth/index.md | 76 +- .../global_objects/date/todatestring/index.md | 98 +- .../global_objects/date/toisostring/index.md | 78 +- .../date/tolocalestring/index.md | 119 +- .../date/tolocaletimestring/index.md | 106 +- .../global_objects/date/toutcstring/index.md | 104 +- .../global_objects/date/utc/index.md | 141 +- .../global_objects/decodeuri/index.md | 34 +- .../global_objects/encodeuri/index.md | 61 +- .../global_objects/error/error/index.md | 69 +- .../global_objects/error/filename/index.md | 41 +- .../reference/global_objects/error/index.md | 225 +- .../global_objects/error/message/index.md | 66 +- .../global_objects/error/name/index.md | 50 +- .../global_objects/error/tostring/index.md | 61 +- .../reference/global_objects/escape/index.md | 104 +- .../function/arguments/index.md | 50 +- .../global_objects/function/bind/index.md | 184 +- .../global_objects/function/index.md | 118 +- .../global_objects/function/length/index.md | 82 +- .../global_objects/function/tostring/index.md | 88 +- .../global_objects/generator/index.md | 190 +- .../global_objects/generator/next/index.md | 107 +- .../global_objects/generator/return/index.md | 89 +- .../global_objects/generator/throw/index.md | 96 +- .../global_objects/infinity/index.md | 78 +- .../global_objects/internalerror/index.md | 102 +- .../internalerror/internalerror/index.md | 53 +- .../reference/global_objects/intl/index.md | 196 +- .../intl/numberformat/format/index.md | 103 +- .../global_objects/isfinite/index.md | 106 +- .../reference/global_objects/isnan/index.md | 104 +- .../reference/global_objects/json/index.md | 257 +- .../global_objects/json/parse/index.md | 112 +- .../global_objects/json/stringify/index.md | 264 +- .../global_objects/math/acos/index.md | 110 +- .../global_objects/math/acosh/index.md | 103 +- .../global_objects/math/asin/index.md | 102 +- .../global_objects/math/asinh/index.md | 105 +- .../global_objects/math/atan2/index.md | 106 +- .../global_objects/math/atanh/index.md | 99 +- .../global_objects/math/ceil/index.md | 113 +- .../reference/global_objects/math/e/index.md | 93 +- .../global_objects/math/exp/index.md | 102 +- .../global_objects/math/floor/index.md | 57 +- .../global_objects/math/hypot/index.md | 126 +- .../reference/global_objects/math/index.md | 325 +-- .../global_objects/math/ln10/index.md | 90 +- .../global_objects/math/ln2/index.md | 91 +- .../global_objects/math/log/index.md | 129 +- .../global_objects/math/log10/index.md | 95 +- .../global_objects/math/log10e/index.md | 76 +- .../global_objects/math/log2/index.md | 107 +- .../global_objects/math/log2e/index.md | 43 +- .../global_objects/math/min/index.md | 112 +- .../reference/global_objects/math/pi/index.md | 70 +- .../global_objects/math/pow/index.md | 88 +- .../global_objects/math/sign/index.md | 94 +- .../global_objects/math/sin/index.md | 88 +- .../global_objects/math/sqrt/index.md | 92 +- .../global_objects/math/sqrt1_2/index.md | 68 +- .../global_objects/math/sqrt2/index.md | 80 +- .../global_objects/math/tanh/index.md | 105 +- .../global_objects/math/trunc/index.md | 95 +- .../reference/global_objects/nan/index.md | 40 +- .../reference/global_objects/number/index.md | 242 +- .../global_objects/number/isfinite/index.md | 93 +- .../global_objects/number/isinteger/index.md | 91 +- .../global_objects/number/isnan/index.md | 79 +- .../number/issafeinteger/index.md | 104 +- .../global_objects/number/max_value/index.md | 78 +- .../global_objects/number/min_value/index.md | 76 +- .../global_objects/number/nan/index.md | 51 +- .../number/negative_infinity/index.md | 109 +- .../global_objects/number/parseint/index.md | 82 +- .../number/positive_infinity/index.md | 108 +- .../global_objects/number/tofixed/index.md | 102 +- .../number/tolocalestring/index.md | 110 +- .../number/toprecision/index.md | 104 +- .../global_objects/number/tostring/index.md | 51 +- .../global_objects/number/valueof/index.md | 86 +- .../global_objects/object/assign/index.md | 180 +- .../object/constructor/index.md | 103 +- .../global_objects/object/create/index.md | 293 +- .../object/defineproperty/index.md | 272 +- .../global_objects/object/entries/index.md | 100 +- .../object/fromentries/index.md | 103 +- .../object/getownpropertydescriptor/index.md | 113 +- .../object/getownpropertydescriptors/index.md | 129 +- .../object/getownpropertynames/index.md | 124 +- .../object/getownpropertysymbols/index.md | 64 +- .../object/getprototypeof/index.md | 87 +- .../object/hasownproperty/index.md | 120 +- .../global_objects/object/is/index.md | 111 +- .../object/isextensible/index.md | 85 +- .../global_objects/object/isfrozen/index.md | 85 +- .../object/isprototypeof/index.md | 105 +- .../global_objects/object/issealed/index.md | 109 +- .../global_objects/object/keys/index.md | 133 +- .../object/preventextensions/index.md | 89 +- .../object/propertyisenumerable/index.md | 102 +- .../global_objects/object/proto/index.md | 72 +- .../global_objects/object/seal/index.md | 93 +- .../object/setprototypeof/index.md | 121 +- .../object/tolocalestring/index.md | 111 +- .../global_objects/object/tostring/index.md | 59 +- .../global_objects/object/valueof/index.md | 112 +- .../global_objects/object/values/index.md | 100 +- .../global_objects/parseint/index.md | 95 +- .../global_objects/promise/all/index.md | 113 +- .../global_objects/promise/catch/index.md | 128 +- .../global_objects/promise/finally/index.md | 94 +- .../global_objects/promise/race/index.md | 102 +- .../global_objects/promise/then/index.md | 273 +- .../proxy/getownpropertydescriptor/index.md | 134 +- .../global_objects/proxy/proxy/index.md | 101 +- .../global_objects/referenceerror/index.md | 85 +- .../reference/global_objects/reflect/index.md | 101 +- .../global_objects/reflect/set/index.md | 91 +- .../global_objects/regexp/compile/index.md | 106 +- .../global_objects/regexp/exec/index.md | 251 +- .../global_objects/regexp/ignorecase/index.md | 74 +- .../reference/global_objects/regexp/index.md | 301 +- .../regexp/rightcontext/index.md | 54 +- .../global_objects/regexp/test/index.md | 97 +- .../global_objects/regexp/tostring/index.md | 87 +- .../reference/global_objects/set/add/index.md | 78 +- .../global_objects/set/clear/index.md | 62 +- .../global_objects/set/delete/index.md | 70 +- .../reference/global_objects/set/has/index.md | 76 +- .../global_objects/set/size/index.md | 56 +- .../global_objects/set/values/index.md | 66 +- .../global_objects/string/anchor/index.md | 50 +- .../global_objects/string/big/index.md | 48 +- .../global_objects/string/blink/index.md | 65 +- .../global_objects/string/bold/index.md | 66 +- .../global_objects/string/charat/index.md | 105 +- .../global_objects/string/charcodeat/index.md | 59 +- .../string/codepointat/index.md | 105 +- .../global_objects/string/concat/index.md | 75 +- .../global_objects/string/endswith/index.md | 81 +- .../global_objects/string/fixed/index.md | 59 +- .../global_objects/string/fontcolor/index.md | 73 +- .../global_objects/string/fontsize/index.md | 79 +- .../string/fromcharcode/index.md | 81 +- .../string/fromcodepoint/index.md | 106 +- .../global_objects/string/includes/index.md | 108 +- .../reference/global_objects/string/index.md | 554 ++-- .../global_objects/string/indexof/index.md | 93 +- .../global_objects/string/italics/index.md | 37 +- .../string/lastindexof/index.md | 75 +- .../global_objects/string/length/index.md | 94 +- .../global_objects/string/link/index.md | 50 +- .../global_objects/string/match/index.md | 68 +- .../global_objects/string/matchall/index.md | 117 +- .../global_objects/string/normalize/index.md | 102 +- .../global_objects/string/padstart/index.md | 43 +- .../global_objects/string/raw/index.md | 104 +- .../global_objects/string/repeat/index.md | 98 +- .../global_objects/string/search/index.md | 102 +- .../global_objects/string/slice/index.md | 133 +- .../global_objects/string/small/index.md | 58 +- .../global_objects/string/startswith/index.md | 97 +- .../global_objects/string/strike/index.md | 65 +- .../global_objects/string/sub/index.md | 54 +- .../global_objects/string/substr/index.md | 81 +- .../global_objects/string/substring/index.md | 68 +- .../global_objects/string/sup/index.md | 54 +- .../string/tolocaleuppercase/index.md | 115 +- .../string/tolowercase/index.md | 33 +- .../global_objects/string/tostring/index.md | 45 +- .../string/touppercase/index.md | 33 +- .../global_objects/string/trim/index.md | 79 +- .../global_objects/string/trimend/index.md | 70 +- .../global_objects/string/valueof/index.md | 45 +- .../global_objects/typedarray/buffer/index.md | 62 +- .../global_objects/uint8array/index.md | 292 +- .../global_objects/undefined/index.md | 135 +- .../global_objects/unescape/index.md | 82 +- .../global_objects/weakmap/clear/index.md | 33 +- .../global_objects/weakmap/get/index.md | 86 +- .../global_objects/weakmap/has/index.md | 90 +- .../global_objects/weakmap/set/index.md | 85 +- .../global_objects/webassembly/index.md | 171 +- .../reference/lexical_grammar/index.md | 801 +++--- .../reference/operators/assignment/index.md | 52 +- .../operators/async_function/index.md | 88 +- .../reference/operators/await/index.md | 108 +- .../reference/operators/class/index.md | 86 +- .../reference/operators/decrement/index.md | 80 +- .../reference/operators/division/index.md | 75 +- .../reference/operators/function/index.md | 73 +- .../reference/operators/grouping/index.md | 70 +- .../reference/operators/import.meta/index.md | 96 +- .../reference/operators/in/index.md | 143 +- .../javascript/reference/operators/index.md | 495 ++-- .../reference/operators/instanceof/index.md | 100 +- .../reference/operators/new.target/index.md | 79 +- .../reference/operators/new/index.md | 170 +- .../reference/operators/null/index.md | 81 +- .../operators/property_accessors/index.md | 88 +- .../reference/operators/subtraction/index.md | 74 +- .../reference/operators/super/index.md | 107 +- .../reference/operators/this/index.md | 150 +- .../reference/operators/void/index.md | 34 +- .../reference/operators/yield_star_/index.md | 126 +- .../reference/statements/block/index.md | 85 +- .../reference/statements/break/index.md | 59 +- .../reference/statements/class/index.md | 76 +- .../reference/statements/const/index.md | 73 +- .../reference/statements/continue/index.md | 115 +- .../reference/statements/debugger/index.md | 75 +- .../reference/statements/do...while/index.md | 50 +- .../reference/statements/empty/index.md | 102 +- .../reference/statements/export/index.md | 198 +- .../reference/statements/for...of/index.md | 207 +- .../reference/statements/for/index.md | 97 +- .../reference/statements/function/index.md | 92 +- .../statements/function_star_/index.md | 131 +- .../reference/statements/if...else/index.md | 122 +- .../javascript/reference/statements/index.md | 225 +- .../reference/statements/label/index.md | 55 +- .../reference/statements/return/index.md | 79 +- .../reference/statements/switch/index.md | 250 +- .../reference/statements/throw/index.md | 77 +- .../reference/statements/try...catch/index.md | 386 +-- .../reference/statements/var/index.md | 220 +- .../reference/statements/while/index.md | 58 +- .../javascript/reference/strict_mode/index.md | 288 +- .../reference/template_literals/index.md | 282 +- files/es/web/javascript/shells/index.md | 68 +- files/es/web/javascript/typed_arrays/index.md | 331 +-- files/es/web/manifest/index.md | 327 +-- files/es/web/mathml/attribute/index.md | 577 +--- files/es/web/mathml/element/index.md | 184 +- files/es/web/mathml/element/math/index.md | 284 +- files/es/web/mathml/examples/index.md | 23 +- .../index.md | 88 +- .../es/web/performance/fundamentals/index.md | 236 +- .../optimizing_startup_performance/index.md | 102 +- .../app_structure/index.md | 266 +- files/es/web/progressive_web_apps/index.md | 169 +- .../installable_pwas/index.md | 111 +- .../introduction/index.md | 166 +- .../web/progressive_web_apps/loading/index.md | 149 +- .../offline_service_workers/index.md | 182 +- .../re-engageable_notifications_push/index.md | 179 +- files/es/web/security/index.md | 8 +- .../web/security/same-origin_policy/index.md | 396 +-- .../web/security/securing_your_site/index.md | 58 +- .../turning_off_form_autocompletion/index.md | 83 +- files/es/web/svg/attribute/index.md | 796 +++--- .../es/web/svg/attribute/stop-color/index.md | 58 +- files/es/web/svg/attribute/transform/index.md | 202 +- files/es/web/svg/element/a/index.md | 217 +- files/es/web/svg/element/animate/index.md | 133 +- files/es/web/svg/element/circle/index.md | 72 +- files/es/web/svg/element/g/index.md | 67 +- files/es/web/svg/element/glyph/index.md | 151 +- files/es/web/svg/element/index.md | 376 ++- files/es/web/svg/element/rect/index.md | 102 +- files/es/web/svg/element/style/index.md | 63 +- files/es/web/svg/element/svg/index.md | 181 +- files/es/web/svg/element/text/index.md | 132 +- files/es/web/svg/element/use/index.md | 109 +- .../web/svg/tutorial/getting_started/index.md | 118 +- files/es/web/svg/tutorial/index.md | 60 +- .../es/web/svg/tutorial/introduction/index.md | 42 +- .../web/svg/tutorial/tools_for_svg/index.md | 70 +- .../using_custom_elements/index.md | 253 +- .../using_templates_and_slots/index.md | 397 ++- files/es/web/xml/index.md | 6 +- files/es/web/xml/xml_introduction/index.md | 180 +- .../web/xpath/axes/ancestor-or-self/index.md | 6 +- files/es/web/xpath/axes/ancestor/index.md | 6 +- files/es/web/xpath/axes/attribute/index.md | 6 +- files/es/web/xpath/axes/child/index.md | 6 +- .../xpath/axes/descendant-or-self/index.md | 6 +- files/es/web/xpath/axes/descendant/index.md | 6 +- .../web/xpath/axes/following-sibling/index.md | 6 +- files/es/web/xpath/axes/following/index.md | 6 +- files/es/web/xpath/axes/index.md | 64 +- files/es/web/xpath/axes/namespace/index.md | 9 +- files/es/web/xpath/axes/parent/index.md | 6 +- .../web/xpath/axes/preceding-sibling/index.md | 6 +- files/es/web/xpath/axes/preceding/index.md | 6 +- .../es/web/xpath/functions/contains/index.md | 54 +- files/es/web/xpath/functions/index.md | 80 +- .../es/web/xpath/functions/substring/index.md | 68 +- files/es/web/xpath/functions/true/index.md | 22 +- .../web/xslt/element/apply-imports/index.md | 29 +- .../web/xslt/element/apply-templates/index.md | 42 +- .../web/xslt/element/attribute-set/index.md | 40 +- files/es/web/xslt/element/attribute/index.md | 40 +- .../web/xslt/element/call-template/index.md | 36 +- files/es/web/xslt/element/choose/index.md | 34 +- files/es/web/xslt/element/comment/index.md | 32 +- files/es/web/xslt/element/copy-of/index.md | 32 +- files/es/web/xslt/element/copy/index.md | 36 +- .../web/xslt/element/decimal-format/index.md | 134 +- files/es/web/xslt/element/element/index.md | 45 +- files/es/web/xslt/element/fallback/index.md | 33 +- files/es/web/xslt/element/for-each/index.md | 39 +- files/es/web/xslt/element/if/index.md | 36 +- files/es/web/xslt/element/import/index.md | 33 +- files/es/web/xslt/element/include/index.md | 33 +- files/es/web/xslt/element/index.md | 94 +- files/es/web/xslt/element/key/index.md | 43 +- files/es/web/xslt/element/message/index.md | 36 +- .../web/xslt/element/namespace-alias/index.md | 38 +- files/es/web/xslt/element/otherwise/index.md | 32 +- files/es/web/xslt/element/when/index.md | 36 +- files/es/web/xslt/element/with-param/index.md | 40 +- .../xslt/transforming_xml_with_xslt/index.md | 231 +- files/es/webassembly/concepts/index.md | 166 +- files/es/webassembly/index.md | 189 +- .../webassembly/loading_and_running/index.md | 102 +- 1470 files changed, 71514 insertions(+), 96607 deletions(-) diff --git a/files/es/web/accessibility/aria/aria_techniques/index.md b/files/es/web/accessibility/aria/aria_techniques/index.md index 43004b536ad0c2..d46936ac700f50 100644 --- a/files/es/web/accessibility/aria/aria_techniques/index.md +++ b/files/es/web/accessibility/aria/aria_techniques/index.md @@ -8,130 +8,114 @@ tags: - TopicStub translation_of: Web/Accessibility/ARIA/ARIA_Techniques --- -

Roles

- -

Widget roles

- - - -

Composite roles

- -

The techniques below describes each composite role as well as their required and optional child roles.

- - - -

Document structure roles

- - - -

Landmark roles

- - - -

States and properties

- -

Widget attributes

- - - -

Live region attributes

- - - -

Drag & drop attributes

- - - -

Relationship attributes

- - +### Roles + +#### Widget roles + +- [Alert](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_alert_role "Using the alert role") +- [Alertdialog](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_alertdialog_role "Using the alertdialog role") +- [Button](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_button_role "en/ARIA/ARIA_Techniques/Using_the_button_role") +- [Checkbox](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_checkbox_role "en/ARIA/ARIA_Techniques/Using_the_checkbox_role") +- [Dialog](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_dialog_role "Using the dialog role") +- [Link](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_link_role "en/ARIA/ARIA_Techniques/Using_the_link_role") +- [Log](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_log_role "en/ARIA/ARIA_Techniques/Using_the_log_role") +- Marquee +- [Progressbar](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_progressbar_role "en/ARIA/ARIA_Techniques/Using_the_progressbar_role") +- [Radio](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_radio_role "en/ARIA/ARIA_Techniques/Using_the_radio_role") +- Scrollbar +- [Slider](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_slider_role "en/ARIA/ARIA_Techniques/Using_the_slider_role") +- Spinbutton +- [status](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_status_role "Using the link role") +- [switch](/es/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_switch_role) +- [textbox](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_textbox_role "en/ARIA/ARIA_Techniques/Using_the_textbox_role") +- Timer +- Tooltip + +#### Composite roles + +The techniques below describes each composite role as well as their required and optional child roles. + +- Grid (including row, gridcell, rowheader, columnheader roles) +- Menubar / Menu (including menuitem, menuitemcheckbox, menuitemradio) +- [Listbox](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_listbox_role "en/ARIA/ARIA_Techniques/Using_the_listbox_role") (including option role) +- Tablist (including tab and tabpanel roles) +- Tree (including group and treeitem roles) +- [Radiogroup (see radio role)](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_radio_role "en/ARIA/ARIA_Techniques/Using_the_radio_role") +- Treegrid + +#### Document structure roles + +- [Article](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_article_role "en/Accessibility/ARIA/ARIA_Techniques/Using_the_article_role") +- Definition +- Directory +- Document +- [Group](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_group_role "en/ARIA/ARIA_Techniques/Using_the_group_role") +- Heading +- Img +- List, listitem +- Math +- Note +- [Presentation](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_presentation_role "en/ARIA/ARIA_Techniques/Using_the_presentation_role") +- Region +- Separator +- [Toolbar](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_toolbar_role "en/ARIA/ARIA_Techniques/Using_the_toolbar_role") + +#### Landmark roles + +- Application +- [Banner](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_banner_role "en/ARIA/ARIA_Techniques/Using_the_banner_role") +- Complementary +- Contentinfo +- Form +- Main +- Navigation +- Search + +### States and properties + +#### Widget attributes + +- aria-autocomplete +- aria-checked +- aria-disabled +- aria-expanded +- aria-haspopup +- aria-hidden +- [aria-invalid](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-invalid_attribute "Using the aria-invalid attribute") +- [aria-label](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute "Using the aria-labelledby attribute") +- aria-level +- aria-multiline +- aria-multiselectable +- [aria-orientation](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-orientation_attribute "en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-orientation_attribute") +- aria-pressed +- aria-readonly +- [aria-required](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-required_attribute "Using the aria-required property") +- aria-selected +- aria-sort +- [aria-valuemax](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuemax_attribute "Using the aria-required attribute") +- [aria-valuemin](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuemin_attribute "en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuemin_attribute") +- [aria-valuenow](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuenow_attribute "en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuenow_attribute") +- [aria-valuetext](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuetext_attribute "en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-valuetext_attribute") + +#### Live region attributes + +- aria-live +- aria-relevant +- aria-atomic +- aria-busy + +#### Drag & drop attributes + +- aria-dropeffect +- aria-dragged + +#### Relationship attributes + +- [aria-activedescendant](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-activedescendant_attribute "Role") +- aria-controls +- [aria-describedby](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-describedby_attribute "Using the aria-labelledby attribute") +- aria-flowto +- [aria-labelledby](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute "en/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute") +- aria-owns +- aria-posinset +- aria-setsize diff --git a/files/es/web/accessibility/aria/aria_techniques/using_the_aria-label_attribute/index.md b/files/es/web/accessibility/aria/aria_techniques/using_the_aria-label_attribute/index.md index 34c88f2b2762c1..7ee9828dc5e7fc 100644 --- a/files/es/web/accessibility/aria/aria_techniques/using_the_aria-label_attribute/index.md +++ b/files/es/web/accessibility/aria/aria_techniques/using_the_aria-label_attribute/index.md @@ -7,53 +7,43 @@ tags: - agente translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute --- +El atributo [`aria-label`](https://www.w3.org/TR/wai-aria/#aria-label) se utiliza para definir una cadena que etiqueta el elemento actual. Úselo en los casos en que no haya una etiqueta de texto visible en pantalla. Si hay texto visible etiquetando el elemento, utilice [aria-labelledby](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute "Using the aria-labelledby attribute") en su lugar. -

El atributo aria-label se utiliza para definir una cadena que etiqueta el elemento actual. Úselo en los casos en que no haya una etiqueta de texto visible en pantalla. Si hay texto visible etiquetando el elemento, utilice aria-labelledby en su lugar.

+Este atributo puede ser utilizado con cualquier elemento HTML típico; no se limita a los elementos que tienen un papel ARIA asignado. -

Este atributo puede ser utilizado con cualquier elemento HTML típico; no se limita a los elementos que tienen un papel ARIA asignado.

+### Valor -

Valor

+string -

string

+### Posibles efectos sobre los agentes de usuario y la tecnología de asistencia -

Posibles efectos sobre los agentes de usuario y la tecnología de asistencia

+> **Nota:** Las opiniones pueden diferir en cómo la tecnología asistencial debe manejar esta técnica. La información proporcionada más arriba es una de esas opiniones y por lo tanto no normativa. -
Nota: Las opiniones pueden diferir en cómo la tecnología asistencial debe manejar esta técnica. La información proporcionada más arriba es una de esas opiniones y por lo tanto no normativa.
+## Ejemplos -

Ejemplos

+#### Ejemplo 1: Varias etiquetas -
-

Ejemplo 1: Varias etiquetas

+En el siguiente ejemplo se aplica estilo a un botón para que parezca un típico botón "cerrar", con una X en medio. Al no haber nada que indique que el propósito del botón es cerrar el diálogo, se usa el atributo `aria-label` para proporcionar una etiqueta a cualquier tecnología de asistencia. -

En el siguiente ejemplo se aplica estilo a un botón para que parezca un típico botón "cerrar", con una X en medio. Al no haber nada que indique que el propósito del botón es cerrar el diálogo, se usa el atributo aria-label para proporcionar una etiqueta a cualquier tecnología de asistencia.

-
+ -
<button aria-label="Close" onclick="myDialog.close()">X</button>
-
+### Notas -

Notas

+- La API de accesibilidad más común para mapear una etiqueta es la propiedad accessible name. +- Los atributos, incluyedo las declaraciones `aria-label`, son ignoradas por la mayoría de servicios de traducción - +### Used by ARIA roles -

Used by ARIA roles

+Todos los elementos del DOM -

Todos los elementos del DOM

+### Técnicas ARIA relacionadas -

Técnicas ARIA relacionadas

+- [Usando el atributo aria-labelledby](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute "en/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute") - +### Compatibilidad -

Compatibilidad

+Pendiente: añadir información de soporte para combinaciones de producto comunes a UA y AT. -

Pendiente: añadir información de soporte para combinaciones de producto comunes a UA y AT.

+### Recursos adicionales -

Recursos adicionales

- - +- [Especificación WAI-ARIA para aria-label](https://www.w3.org/TR/WCAG20-TECHS/ARIA14.html) diff --git a/files/es/web/accessibility/aria/aria_techniques/using_the_aria-required_attribute/index.md b/files/es/web/accessibility/aria/aria_techniques/using_the_aria-required_attribute/index.md index 83e5170b11998d..915abf18db873a 100644 --- a/files/es/web/accessibility/aria/aria_techniques/using_the_aria-required_attribute/index.md +++ b/files/es/web/accessibility/aria/aria_techniques/using_the_aria-required_attribute/index.md @@ -6,68 +6,63 @@ tags: translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-required_attribute original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Usando_el_atributo_aria-required --- -

Descripción

+### Descripción -

El atributo aria-required es usado para indicar al usuario que un input es requerido en un elemento antes de que un form pueda ser enviado. Este atributo puede ser usado en un form con cualquier elemento HTML típico; no se limita a elementosque tengan un role ARIA asignado.

+El atributo [`aria-required`](http://www.w3.org/TR/wai-aria/states_and_properties#aria-required) es usado para indicar al usuario que un input es requerido en un elemento antes de que un form pueda ser enviado. Este atributo puede ser usado en un form con cualquier elemento HTML típico; no se limita a elementosque tengan un `role` ARIA asignado. -

{{ HTMLVersionInline("5") }} ahora tiene el atributo required, pero aria-required todavía es útil para un agente de usuario que no soporta HTML5.

+{{ HTMLVersionInline("5") }} ahora tiene el atributo `required`, pero aria-required todavía es útil para un agente de usuario que no soporta HTML5. -

Value

+### Value -

true o false (Default: false)

+`true` o `false` (Default: `false`) -

Posibles efectos en agentes de usuario y tecnología asistente.

+### Posibles efectos en agentes de usuario y tecnología asistente. -

Los lectores de pantalla deben anunciar el campo como requerido.

+Los lectores de pantalla deben anunciar el campo como requerido. -

Nota que este atributo no cambiará automáticamente la presentación del campo.

+Nota que este atributo no cambiará automáticamente la presentación del campo. -
Nota: Las opiniones pueden diferir en cuanto a cómo esta técnica debería ser manejada por la tecnología asistente. La información prevista arribaes una de esas opciones y por lo tanto no es normativa.
+> **Nota:** Las opiniones pueden diferir en cuanto a cómo esta técnica debería ser manejada por la tecnología asistente. La información prevista arribaes una de esas opciones y por lo tanto no es normativa. -

Ejemplos

+### Ejemplos -

Ejemplo 1: Un formulario sencillo

+#### Ejemplo 1: Un formulario sencillo -
 <form action="post">
-     <label for="firstName">First name:</label>
-     <input id="firstName" type="text" aria-required="true" />
-     <br/>
-     <label for="lastName">Last name:</label>
-     <input id="lastName" type="text" aria-required="true" />
-     <br/>
-     <label for="streetAddress">Street address:</label>
-     <input id="streetAddress" type="text" />
- </form>
-
+```html +
+ + +
+ + +
+ + +
+``` -

Notas

+### Notas -

Usan ARIA roles

+### Usan ARIA roles - +- Combobox +- Gridcell +- Listbox +- Radiogroup +- Spinbutton +- [Textbox](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_textbox_role "Usando el role textbox") +- Tree -

Técnicas relacionadas con ARIA

+### Técnicas relacionadas con ARIA - +- [Utilizando el atributo aria-invalid](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-invalid_attribute "Usando la propiedad aria-invalid ") -

Compatibilidad

+### Compatibilidad -

Por determinar: Agregar información de soporte para combinaciones comunes de productos UA y AT.

+Por determinar: Agregar información de soporte para combinaciones comunes de productos UA y AT. -

Recursos adicionales

+### Recursos adicionales - +- [Especificación WAI-ARIA para `aria-required`](http://www.w3.org/TR/wai-aria/states_and_properties#aria-required) +- [WAI-ARIA Authoring Practices for forms](http://www.w3.org/TR/wai-aria-practices/#ariaform) +- [Constraint validation](/en/HTML/HTML5/Constraint_validation "Constraint validation") in {{ HTMLVersionInline("5") }} diff --git a/files/es/web/accessibility/aria/forms/index.md b/files/es/web/accessibility/aria/forms/index.md index 995232842e6700..9eef6cd58bbb24 100644 --- a/files/es/web/accessibility/aria/forms/index.md +++ b/files/es/web/accessibility/aria/forms/index.md @@ -6,12 +6,10 @@ tags: - Accesibilidad translation_of: Web/Accessibility/ARIA/forms --- -

Las siguientes páginas proporcionan diversas técnicas para mejorar la accesibilidad de los formularios web:

+Las siguientes páginas proporcionan diversas técnicas para mejorar la accesibilidad de los formularios web: - +- [Consejos básicos para formularios](/es/Accessibility/ARIA/Basic_form_hints "Consejos básicos para formularios"): Añadir consejos y descripciones para campos erróneos u obligatorios +- [Alertas](/es/Accessibility/ARIA/forms/alerts "alertas"): uso de alertas para proporcionar mensajes de error de validación del lado del cliente +- [Etiquetas complejas](/es/Accessibility/ARIA/forms/Multipart_labels "https://developer.mozilla.org/es/aria/forms/Multipart_labels"): Habilitación de etiquetas complejas con elementos en su interior -

Consulta también el artículo de Yahoo! sobre validación de formularios y ARIA (recuperado desde archive.org), que abarca gran parte del mismo contenido.

+Consulta también [el artículo de Yahoo! sobre validación de formularios y ARIA](https://web.archive.org/web/20120801225355/http://yaccessibilityblog.com/library/aria-invalid-form-inputs.html) (recuperado desde archive.org), que abarca gran parte del mismo contenido. diff --git a/files/es/web/accessibility/aria/roles/alert_role/index.md b/files/es/web/accessibility/aria/roles/alert_role/index.md index 827d811f5d9aaf..c4a2ac3bfa77e0 100644 --- a/files/es/web/accessibility/aria/roles/alert_role/index.md +++ b/files/es/web/accessibility/aria/roles/alert_role/index.md @@ -13,120 +13,113 @@ tags: translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_alert_role original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_alert_role --- -

Descripción

+### Descripción -
-

Esta técnica demuestra como usar el rol alert y describe el efecto que tiene en los navegadores y tecnologías de asistencia.

-
+Esta técnica demuestra como usar el rol [alert](https://www.w3.org/TR/wai-aria-1.1/#alert) y describe el efecto que tiene en los navegadores y tecnologías de asistencia. -

El rol de alerta es utilizado para comunicar un mensaje importante y normalmente urgente para el usuario. Cuando este rol es añadido a un elemento, el navegador envía un evento de alerta accesible a los productos de tecnología asistencial que notificarán al usuario sobre ésta. El rol de alerta es más útil para información que requiere la atención inmediata del usuario, por ejemplo:

+El rol de alerta es utilizado para comunicar un mensaje importante y normalmente urgente para el usuario. Cuando este rol es añadido a un elemento, el navegador envía un evento de alerta accesible a los productos de tecnología asistencial que notificarán al usuario sobre ésta. El rol de alerta es más útil para información que requiere la atención inmediata del usuario, por ejemplo: - +- Un valor inválido ingresado en un formulario +- La sesión de inicio de sesión del usuario esta por expirar +- La conexión al servidor se perdió, cambios locales no fueron guardados -

Debido a su naturaleza intrusiva, el rol de alerta debe ser utilizada de forma limitada y sólo en situaciones donde la inmediata atención del usuario es requerida. Cambios dinámicos que son menos urgentes deberían usar un método menos agresivo, como, aria-live="polite" u otros roles de región en vivo.

+Debido a su naturaleza intrusiva, el rol de alerta debe ser utilizada de forma limitada y sólo en situaciones donde la inmediata atención del usuario es requerida. Cambios dinámicos que son menos urgentes deberían usar un método menos agresivo, como, `aria-live="polite"` u otros roles de región en vivo. -

Posibles efectos en agentes de usuario y tecnología asistencial

+### Posibles efectos en agentes de usuario y tecnología asistencial -

Cuando el rol de alerta es añadido a un elemento, o dicho elemento se vuelve visible, el agente de usuario debe hacer lo siguiente:

+Cuando el rol de alerta es añadido a un elemento, o dicho elemento se vuelve visible, el agente de usuario debe hacer lo siguiente: - +- Exponer que el elemento tiene un rol de alerta en la API de accesibilidad del sistema operativo. +- Disparar un evento de alerta accesible utilizando la API de accesibilidad del sistema operativo si lo soporta. -

Productos de tecnología asistencial deben escuchar por dicho evento y notificar al usuario consecuentemente:

+Productos de tecnología asistencial deben escuchar por dicho evento y notificar al usuario consecuentemente: - +- Lectores de pantalla pueden interrumpir la entrada actual (sea por voz o braile) e inmediatamente anunciar o desplegar el mensaje de alerta. +- Lupas de pantalla pueden indicar visualmente que una alerta ha ocurrido y que texto tuvo la alerta. -
Nota: Opiniones pueden diferir en como tecnologías de asistencia deben manejar esta técnica. La información proveida anteriormente es una de estas opiniones y por lo tanto no es normativa.
+> **Nota:** Opiniones pueden diferir en como tecnologías de asistencia deben manejar esta técnica. La información proveida anteriormente es una de estas opiniones y por lo tanto no es normativa. -

Ejemplos

+### Ejemplos -

Ejemplo 1: Agregar el role en el código HTML

+#### Ejemplo 1: Agregar el role en el código HTML -

The snippet below shows how the alert role is added directly into the html source code. The moment the element finishes loading the screen reader should be notified of the alert. If the element was already in the original source code when the page loaded, the screen reader will announce the error immediately after announcing the page title.

+The snippet below shows how the alert role is added directly into the html source code. The moment the element finishes loading the screen reader should be notified of the alert. If the element was already in the original source code when the page loaded, the screen reader will announce the error immediately after announcing the page title. -
<h2 role="alert">Your form could not be submitted because of 3 validation errors.</h2>
+```html +

Your form could not be submitted because of 3 validation errors.

+``` -

Ejemplo 2: Dinámicamente añadir un elemento con el rol de alerta

+#### Ejemplo 2: Dinámicamente añadir un elemento con el rol de alerta -

This snippet dynamically creates an element with an alert role and adds it to the document structure.

+This snippet dynamically creates an element with an alert role and adds it to the document structure. -
var myAlert = document.createElement("p");
+```js
+var myAlert = document.createElement("p");
 myAlert.setAttribute("role", "alert");
 var myAlertText = document.createTextNode("You must agree with our terms of service to create an account.");
 myAlert.appendChild(myAlertText);
 document.body.appendChild(myAlert);
-
+``` -

Note: The same result can be achieved with less code when using a script library like jQuery:

+**Note:** The same result can be achieved with less code when using a script library like jQuery: -
$("<p role='alert'>You must agree with our terms of service to create an account.</p>").appendTo(document.body);
-
+```js +$("

You must agree with our terms of service to create an account.

").appendTo(document.body); +``` -

Ejemplo 3: Añadir un rol de alerta a un elemento ya existente

+#### Ejemplo 3: Añadir un rol de alerta a un elemento ya existente -

Sometimes it's useful to add an alert role to an element that is already visible on the page rather than creating a new element. This allows the developer to reiterate information that has become more relevant or urgent to the user. For example, a form control may have instruction about the expected value. If a different value is entered, role="alert can be added to the instruction text so that the screen reader announces it as an alert. The pseudo code snippet below illustrates this approach:

+Sometimes it's useful to add an alert role to an element that is already visible on the page rather than creating a new element. This allows the developer to reiterate information that has become more relevant or urgent to the user. For example, a form control may have instruction about the expected value. If a different value is entered, `role="alert` can be added to the instruction text so that the screen reader announces it as an alert. The pseudo code snippet below illustrates this approach: -
<p id="formInstruction">You must select at least 3 options</p>
-
+```html +

You must select at least 3 options

+``` -
// When the user tries to submit the form with less than 3 checkboxes selected:
-document.getElementById("formInstruction").setAttribute("role", "alert");
+```js +// When the user tries to submit the form with less than 3 checkboxes selected: +document.getElementById("formInstruction").setAttribute("role", "alert"); +``` -

Ejemplo 4: Hacer un elemento con un rol de alerta visible

+#### Ejemplo 4: Hacer un elemento con un rol de alerta visible -

If an element already has role="alert" and is initially hidden using CSS, making it visible will cause the alert to fire as if it was just added to the page. This means that an existing alert can be "reused" multiple times.

+If an element already has `role="alert" `and is initially hidden using CSS, making it visible will cause the alert to fire as if it was just added to the page. This means that an existing alert can be "reused" multiple times. -

Note: In most cases this approach is not recommended, because it's not ideal to hide error or alert text that is currently not applicable. Users of older assistive technology may still be able to perceive the alert text even when the alert does not currently applies, causing users to incorrectly believe that there is a problem.

+**Note:** In most cases this approach is not recommended, because it's not ideal to hide error or alert text that is currently not applicable. Users of older assistive technology may still be able to perceive the alert text even when the alert does not currently applies, causing users to incorrectly believe that there is a problem. -
.hidden {
+```css
+.hidden {
   display:none;
 }
-
+``` -
<p id="expirationWarning" role="alert" class="hidden">Your log in session will expire in 2 minutes</p>
-
+```html + +``` -
// removing the 'hidden' class makes the element visible, which will make the screen reader announce the alert:
-document.getElementById("expirationWarning").className = ""; 
+```js +// removing the 'hidden' class makes the element visible, which will make the screen reader announce the alert: +document.getElementById("expirationWarning").className = ""; +``` -

Notas

+### Notas - +- Usar el rol de alerta en un elemento implica que ese elemento tiene `aria-live="assertive"`. +- El rol de alerta solo debería ser utilizada para contenido de texto estático. El elemento que en el que el rol de alerta es utilizado no debe ser capaz de recibir el foco, pues lectores de pantalla automáticamente anunciarán la alerta sin importar donde el foco del teclado esta actualmente localizado. +- Si una alerta también provee controles interactivos (como controles del formulario que permitan al usuario rectificar un problema, o un boton de "OK" que descarte la alerta) el rol de [alertdialog](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_alertdialog_role "Using the alert role") debe ser utilizado en lugar de éste. -

Atributos ARIA utilizados

+### Atributos ARIA utilizados - +- [alert](https://www.w3.org/TR/wai-aria-1.1/#alert) -

Técnicas ARIA relacionadas

+### Técnicas ARIA relacionadas - +- [Utilizando el rol alertdialog](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_alertdialog_role "en/ARIA/ARIA_Techniques/Using_the_alertdialog_role") +- [Utilizando la propiedad aria-invalid](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-invalid_property "Using the aria-invalid property") -

Compatibilidad

+### Compatibilidad -

Pendiente. Add support information for common UA and AT product combinations

+Pendiente. Add support information for common UA and AT product combinations -

Recursos adicionales

+### Recursos adicionales - - -

+- Las mejores practicas de ARIA - Rol de Alerta diff --git a/files/es/web/accessibility/aria/roles/alertdialog_role/index.md b/files/es/web/accessibility/aria/roles/alertdialog_role/index.md index 31b5b29647edda..6375a16c716e94 100644 --- a/files/es/web/accessibility/aria/roles/alertdialog_role/index.md +++ b/files/es/web/accessibility/aria/roles/alertdialog_role/index.md @@ -13,78 +13,70 @@ tags: translation_of: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_alertdialog_role original_slug: Web/Accessibility/ARIA/ARIA_Techniques/Using_the_alertdialog_role --- -

Descripción

+### Descripción -
-

Esta técnica demuestra como usar el rol alertdialog.

-
+Esta técnica demuestra como usar el rol [`alertdialog`](http://www.w3.org/TR/2009/WD-wai-aria-20091215/roles#alertdialog). -

El rol alertdialog es utilizado para notificar al usuario información urgente que demanden la atención inmediata del usuario. Como el nombre implica, alertdialog es un tipo de díalogo. Esto significa que la mayoría de las instrucciones proveidas en la técnica de ''usando el rol dialog' son aplicables al rol alertdialog también:

+El rol `alertdialog` es utilizado para notificar al usuario información urgente que demanden la atención inmediata del usuario. Como el nombre implica, `alertdialog` es un tipo de díalogo. Esto significa que la mayoría de las instrucciones proveidas en la técnica de ''[usando el rol `dialog`](/es/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_dialog_role "Using the alert role")' son aplicables al rol `alertdialog` también: -
    -
  • El díalogo de alerta debe siempre recibir un nombre accesible (a través de aria-labelledby o aria-label), y en la mayoría de los casos el texto de alerta debe ser marcado como la descripción accesible del díalogo de alerta (utilizando aria-describedby).
  • -
  • A diferencia de alertas regulares, un díalogo de alerta debe tener al menos un control enfocable y el foco debe moverse a ese control cuando el díalogo de alerta aparece. Generalmente los díalogos de alerta tienen al menos un botón de Confirmación, Cerrar o Cancelar que pueder ser usado para moverl el foco. Adicionalmente, díalogos de alerta pueder tener otros controles interactivos tales como campos de texto, pestañas o checkboxes. El enfoque de control al que se debe desplazar depende del propósito del diálogo.
  • -
  • El orden de la pestaña dentro del díalogo de alerta debe ajustarse.
  • -
+- El díalogo de alerta debe siempre recibir un nombre accesible (a través de `aria-labelledby` o `aria-label`), y en la mayoría de los casos el texto de alerta debe ser marcado como la descripción accesible del díalogo de alerta (utilizando `aria-describedby`). +- A diferencia de alertas regulares, un díalogo de alerta debe tener al menos un control enfocable y el foco debe moverse a ese control cuando el díalogo de alerta aparece. Generalmente los díalogos de alerta tienen al menos un botón de Confirmación, Cerrar o Cancelar que pueder ser usado para moverl el foco. Adicionalmente, díalogos de alerta pueder tener otros controles interactivos tales como campos de texto, pestañas o checkboxes. El enfoque de control al que se debe desplazar depende del propósito del diálogo. +- El orden de la pestaña dentro del díalogo de alerta debe ajustarse. -

La diferencia con díalogos normales es que el rol de alertdialog debe ser utilizado únicamente cuando una alerta, error, o advertencia ocurre. En otras palabras, cuando la información o controles de un díalogo requieren la inmediata atención del usuario debe usarse alertdialog en lugar de dialog. Sin embargo, depende del desarrollador hacer esta distinción.

+La diferencia con díalogos normales es que el rol de `alertdialog` debe ser utilizado únicamente cuando una alerta, error, o advertencia ocurre. En otras palabras, cuando la información o controles de un díalogo requieren la inmediata atención del usuario debe usarse `alertdialog` en lugar de `dialog.` Sin embargo, depende del desarrollador hacer esta distinción. -

Debido a su carácter urgente los díalogos de alerta deben ser siempre modales.

+Debido a su carácter urgente los díalogos de alerta deben ser siempre modales. -
Nota: Este rol solo debe ser usado para mensajes de alerta que tienen controles interactivos asociado. Si un díalogo de alerta solo contiene contenido estático y no tiene controles interactivos, alertdialog es probablemente el rol incorrecto para ser utilizado.. El rol alert debe ser usado en su lugar en éste caso (como se describe en la técnica de Utilizando el rol alert).
+> **Nota:**Este rol solo debe ser usado para mensajes de alerta que tienen controles interactivos asociado. Si un díalogo de alerta solo contiene contenido estático y no tiene controles interactivos, `alertdialog` es probablemente el rol incorrecto para ser utilizado.. El rol `alert` debe ser usado en su lugar en éste caso (como se describe en la técnica de [Utilizando el rol `alert`](/en/ARIA/ARIA_Techniques/Using_the_alert_role "Using the alert role")). -

Posibles efectos de agentes de usuario y tecnología de asistencia

+### Posibles efectos de agentes de usuario y tecnología de asistencia -

Cuando un rol alertdialog es utilizado, el agente de usuario debería hacer lo siguiente:

+Cuando un rol `alertdialog` es utilizado, el agente de usuario debería hacer lo siguiente: -
    -
  • Exponer el elemento como un díalogo a la API de accesibilidad del sistema operativo.
  • -
  • Disparar un evento de alerta accesible usando la API de accesibilidad del sistema operativo si lo soporta.
  • -
+- Exponer el elemento como un díalogo a la API de accesibilidad del sistema operativo. +- Disparar un evento de alerta accesible usando la API de accesibilidad del sistema operativo si lo soporta. -

Cuando la aleta de díalogo aparece, los lectores de pantalla deberían anunciar la alerta.

+Cuando la aleta de díalogo aparece, los lectores de pantalla deberían anunciar la alerta. -

Cuando el díalogo de alerta es etiquetado correctamente y el foco es movido de un control a el interior del díalogo, los lectores de pantalla deberían anunciar el rol accesible del díalogo así como su nombre y su descriipción antes de anunciar el elemento enfocado.

+Cuando el díalogo de alerta es etiquetado correctamente y el foco es movido de un control a el interior del díalogo, los lectores de pantalla deberían anunciar el rol accesible del díalogo así como su nombre y su descriipción antes de anunciar el elemento enfocado. -
Nota: Opiniones pueden diferir en como tecnología de asistencia debe manejar esta técnica. La información proveída arriba es una de éstas opiniones y por lo tanto no es normativa.
+> **Nota:** Opiniones pueden diferir en como tecnología de asistencia debe manejar esta técnica. La información proveída arriba es una de éstas opiniones y por lo tanto no es normativa. -

Ejemplos

+### Ejemplos -

Ejemplos 1: Un díalogo de alerta básico

+#### Ejemplos 1: Un díalogo de alerta básico -

El fragmento de código siguiente muestra como marcar un díalogo de alerta que solo provee un mensaje y un botón de OK.

+El fragmento de código siguiente muestra como marcar un díalogo de alerta que solo provee un mensaje y un botón de OK. -
<div role="alertdialog" aria-labelledby="tituloDialogo1" aria-describedby="descrDialogo1">
-  <div role="document" tabindex="0">
-    <h2 id="tituloDialogo1">Tu sesión esta apunto de expirar</h2>
-    <p id="descrDialogo1">Para extender tu sesión de clic en el botón OK</p>
-    <button>OK</button>
-  </div>
-</div>
+```html +
+
+

Tu sesión esta apunto de expirar

+

Para extender tu sesión de clic en el botón OK

+ +
+
+``` -

Ejemplos en funcionamiento:

+#### Ejemplos en funcionamiento: -

Pendiente

+Pendiente -

Notas

+### Notas -

Atributos ARIA utilizados

+### Atributos ARIA utilizados - +- [alertdialog](https://www.w3.org/TR/wai-aria-1.1/#dialog) +- [aria-labelledby](https://www.w3.org/TR/wai-aria-1.1/#aria-labelledby) +- [aria-describedby](https://www.w3.org/TR/wai-aria-1.1/#aria-describedby) -

Técnicas ARIA relacionadas

+### Técnicas ARIA relacionadas - +- [usando el rol `dialog`](/es/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_dialog_role "Using the dialog role") +- [usando el rol `alert`](/es/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_alert_role "Using the alert role") -

Compatibilidad

+### Compatibilidad -

Pendiente: Add support information for common UA and AT product combinations

+Pendiente: _Add support information for common UA and AT product combinations_ -

Recursos adicionales

+### Recursos adicionales diff --git a/files/es/web/accessibility/community/index.md b/files/es/web/accessibility/community/index.md index 78ce168d7b9baf..c1d4bf9f441ac3 100644 --- a/files/es/web/accessibility/community/index.md +++ b/files/es/web/accessibility/community/index.md @@ -7,39 +7,36 @@ tags: translation_of: Web/Accessibility/Community original_slug: Web/Accesibilidad/Comunidad --- -

-

Si conoces alguna lista de correo, grupo de noticias, foro, o comunidad relacionada con la - - accesibilidad - que pueda ser de interés. Por favor, pon aquí un enlace.

-

Mozilla

-
    -
  • La - - Accesibilidad - en la comunidad Mozilla... en inglés
  • -
-

{{ DiscussionList("support-accessibility", "mozilla.support.accessibility") }}

-

Listas de correo

-
    -
  • Accesoweb Lista en castellano sobre problemas y soluciones de diseño accesible para la Red de la Fundación Sidar.
  • -
-

Foros

-
    -
  • -
-

-

Bitácoras

- -

Wikis

-
    -
  • -
-

-

Otros Sitios

- -

categorías

+Si conoces alguna lista de correo, grupo de noticias, foro, o comunidad relacionada con la +_accesibilidad_ +que pueda ser de interés. Por favor, pon aquí un enlace. + +### Mozilla + +- La + _Accesibilidad_ + en la comunidad Mozilla... en inglés + +{{ DiscussionList("support-accessibility", "mozilla.support.accessibility") }} + +### Listas de correo + +- [Accesoweb](http://es.groups.yahoo.com/group/accesoweb) Lista en castellano sobre problemas y soluciones de diseño accesible para la Red de la **Fundación Sidar**. + +### Foros + +- + +### Bitácoras + +- [Accesibilidad, Usabilidad y Estándares Web](http://accesibilidadweb.blogspot.com/) Este es un blog dedicado a todos los temas relacionados con la accesibilidad web, usabilidad y estándares web. + +### Wikis + +- + +### Otros Sitios + +- [El sitio del WAI (en)](http://www.w3.org/WAI/) + +categorías diff --git a/files/es/web/accessibility/understanding_wcag/index.md b/files/es/web/accessibility/understanding_wcag/index.md index b8172e56351b04..c392c5db094721 100644 --- a/files/es/web/accessibility/understanding_wcag/index.md +++ b/files/es/web/accessibility/understanding_wcag/index.md @@ -4,54 +4,47 @@ slug: Web/Accessibility/Understanding_WCAG translation_of: Web/Accessibility/Understanding_WCAG original_slug: Web/Accesibilidad/Understanding_WCAG --- -

Esto es parte de un grupo de artículos que explican rápidamente los pasos necesario para cumplir con la normativa de W3C Web Content Accessibility Guides 2.0 o 2.1 (también conocida como WCAG).

+Esto es parte de un grupo de artículos que explican rápidamente los pasos necesario para cumplir con la normativa de W3C Web Content Accessibility Guides 2.0 o 2.1 (también conocida como WCAG). -

La norma WCAG 2.0 y 2.1 provee unas guías detalladas para lograr que el contenido de nuestro sitio sea accesible para personas con distintos tipos de discapacidades. Es exhaustivo y muy detallado, por lo que cuesta comprenderlo rápidamente. Por esta razón, hemos resumido los pasos a seguir para que puedas cumplir con las diferentes recomendaciones e incluimos links al pie para más detalles en los lugares necesarios.

+La norma WCAG 2.0 y 2.1 provee unas guías detalladas para lograr que el contenido de nuestro sitio sea accesible para personas con distintos tipos de discapacidades. Es exhaustivo y muy detallado, por lo que cuesta comprenderlo rápidamente. Por esta razón, hemos resumido los pasos a seguir para que puedas cumplir con las diferentes recomendaciones e incluimos links al pie para más detalles en los lugares necesarios. -

Los cuatro principios

+## Los cuatro principios -

La normativa WCAG tiene cuatro secciones, cuatro categorías en las cuales el contenido debe ser accesible (para más información puedes referirte a Understanding the Four Principles of Accessibility (inglés)).

+La normativa WCAG tiene cuatro secciones, cuatro categorías en las cuales el contenido **debe** ser accesible (para más información puedes referirte a [Understanding the Four Principles of Accessibility (inglés)](https://www.w3.org/TR/UNDERSTANDING-WCAG20/intro.html#introduction-fourprincs-head)). -

Cada uno de los siguientes enlaces te llevarán a páginas en las que podrás expandir tu conocimiento en cada una de las áreas de WCAG 2.0 y 2.1.

+Cada uno de los siguientes enlaces te llevarán a páginas en las que podrás expandir tu conocimiento en cada una de las áreas de WCAG 2.0 y 2.1. -
    -
  • Perceptible: Los usuarios deben poder percibir el contenido de alguna forma, a través de alguno de sus sentidos.
  • -
  • Operable: Los usuarios deben poder controlar los elementos de interfaz (por ejemplo, se deben poder cliquear botones de alguna forma, ya sea utilizando el ratón, teclado o comando de voz).
  • -
  • Comprensible: El contenido debe ser comprensible para los usuarios.
  • -
  • Robusto: El contenido debe ser desarrollado utilizando estándares actuales que funcionarán en todos los navegadores del momento, hoy y en el futuro.
  • -
+- [Perceptible:](/es/docs/user:chrisdavidmills/Understanding_WCAG/Perceivable) Los usuarios deben poder percibir el contenido de alguna forma, a través de alguno de sus sentidos. +- [Operable](/es/docs/user:chrisdavidmills/Understanding_WCAG/Operable): Los usuarios deben poder controlar los elementos de interfaz (por ejemplo, se deben poder cliquear botones de alguna forma, ya sea utilizando el ratón, teclado o comando de voz). +- [Comprensible](/es/docs/user:chrisdavidmills/Understanding_WCAG/Understandable): El contenido debe ser comprensible para los usuarios. +- [Robusto](/es/docs/user:chrisdavidmills/Understanding_WCAG/Robust): El contenido debe ser desarrollado utilizando estándares actuales que funcionarán en todos los navegadores del momento, hoy y en el futuro. -

Debo usar WCAG 2.0 o 2.1?

+## Debo usar WCAG 2.0 o 2.1? -

WCAG 2.1 es el estándar más reciente y relevante. Utilízalo para mejorar la calidad de navegación de los usuarios con discapacidades y para reducir las posibles acciones legales a los dueños del sitio web.

+WCAG 2.1 es el estándar más reciente y relevante. Utilízalo para mejorar la calidad de navegación de los usuarios con discapacidades y para reducir las posibles acciones legales a los dueños del sitio web. -

Al momento de asignar recursos, ten como objetivo WCAG 2.0, luego sube a 2.1.

+Al momento de asignar recursos, ten como objetivo WCAG 2.0, luego sube a 2.1. -

¿Qué es WCAG 2.1?

+### ¿Qué es WCAG 2.1? -

WCAG 2.1 fue publicado el 5 de junio de 2018 como recomendación oficial. La Unión Europea (EU) lo adoptó como estándar en septiembre de ese mismo año. La W3C publicó un anuncio de prensa al respecto.

+WCAG 2.1 fue publicado el 5 de junio de 2018 como recomendación oficial. La Unión Europea (EU) lo adoptó como estándar en septiembre de ese mismo año. La W3C publicó un [anuncio de prensa al respecto](https://www.w3.org/blog/2018/09/wcag-2-1-adoption-in-europe/). -

WCAG 2.1 incluye:

+WCAG 2.1 incluye: - +- Toda la normativa WCAG 2.0 (literal, palabra-por-palabra) +- 17 nuevos Criterios de Conformidad en los niveles A / AA / AAA que se enfocan principalmente en las siguientes necesidades: - + - Accessbilidad móvil + - Baja visión + - Cognitivas -

Esta guía tiene como objetivo proveer información para que puedas construir mejores sitios, más accesibles. Sin embargo, no somos abogados y nada de esto es un asesoramiento legal. Si estás preocupado/a por las implicaciones legales de la accesibilidad web recomendamos que investigues la legislación de tu país o que consultes a un abogado calificado.

+- Lee más sobre WCAG 2.1 (en inglés): -

¿Qué es la accesibilidad? y guías de accesibilidad y sobre la ley proveen más información al respecto (en inglés).

+ - Deque: [WCAG 2.1: What is Next for Accessibility Guidelines](https://www.deque.com/blog/wcag-2-1-what-is-next-for-accessibility-guidelines/) + - TPG: [Web Content Accessibilituy Guidelines (WCAG) 2.1](https://developer.paciellogroup.com/blog/2018/06/web-content-accessibility-guidelines-wcag-2-1/) + +## Legal + +Esta guía tiene como objetivo proveer información para que puedas construir mejores sitios, más accesibles. Sin embargo, no somos abogados y nada de esto es un asesoramiento legal. Si estás preocupado/a por las implicaciones legales de la accesibilidad web recomendamos que investigues la legislación de tu país o que consultes a un abogado calificado. + +[¿Qué es la accesibilidad?](/es/docs/Learn/Accessibility/What_is_accessibility) y [guías de accesibilidad y sobre la ley](/es/docs/Learn/Accessibility/What_is_accessibility#Accessibility_guidelines_and_the_law) proveen más información al respecto (en inglés). diff --git a/files/es/web/accessibility/understanding_wcag/keyboard/index.md b/files/es/web/accessibility/understanding_wcag/keyboard/index.md index b3f2792fb401cd..72d8ce137e3881 100644 --- a/files/es/web/accessibility/understanding_wcag/keyboard/index.md +++ b/files/es/web/accessibility/understanding_wcag/keyboard/index.md @@ -7,87 +7,73 @@ tags: translation_of: Web/Accessibility/Understanding_WCAG/Keyboard original_slug: Web/Accesibilidad/Understanding_WCAG/Teclado --- -
Para ser completamente accesible, una página web debe ser operable por alguién utilizando únicamente un teclado para acceder y controlarla. Esto incluye usuarios de lectores de pantalla, pero también puede incluir a quienes tienen dificultades utilizando un dispositivo apuntador como un ratón o una bola de rastreo, o aquellos cuyo ratón no esta funcionando temporalmente, o la gente que simplemente prefiere usar un teclado como entrada siempre que les sea posible.
+Para ser completamente accesible, una página web debe ser operable por alguién utilizando únicamente un teclado para acceder y controlarla. Esto incluye usuarios de lectores de pantalla, pero también puede incluir a quienes tienen dificultades utilizando un dispositivo apuntador como un ratón o una bola de rastreo, o aquellos cuyo ratón no esta funcionando temporalmente, o la gente que simplemente prefiere usar un teclado como entrada siempre que les sea posible. -

Los elementos enfocables deben tener una semántica interactiva

+## Los elementos enfocables deben tener una semántica interactiva -

Si un elemento puede ser enfocado utilizando un teclado, entonces debería ser interactivo, es decir, el usuario debería ser capaz de hacer algo y producir un cambio de algún tipo (por ejemplo, activar un enlace o cambiar una opción).

+Si un elemento puede ser enfocado utilizando un teclado, entonces debería ser interactivo, es decir, el usuario debería ser capaz de hacer algo y producir un cambio de algún tipo (por ejemplo, activar un enlace o cambiar una opción). -
-

Nota: Una excepción importante a esta regla es si el elemento tiene aplicado role="document", dentro un contexto interactivo (como un role="application"). En tal caso, enfocar el documento anidado es la única forma de devolver la tecnología de asistencia a un estado de no interactividad (comúnmente llamado "modo navegador").

-
+> **Nota:**Una excepción importante a esta regla es si el elemento tiene aplicado `role="document"`, **dentro** un contexto interactivo (como un `role="application"`). En tal caso, enfocar el documento anidado es la única forma de devolver la tecnología de asistencia a un estado de no interactividad (comúnmente llamado "modo navegador"). -

La mayoría de los elementos son enfocables por defecto, y se puede hacer que un elemento sea enfocable al añadir el atributo tabindex=0. Sin embargo, sólo se debería añadir tabindex si el elemento también se hace interactivo, por ejemplo, definiendo los eventos de teclado apropiados para los manejadores de eventos.

+La mayoría de los elementos son enfocables por defecto, y se puede hacer que un elemento sea enfocable al añadir el atributo `tabindex=0`. Sin embargo, sólo se debería añadir `tabindex` si el elemento también se hace interactivo, por ejemplo, definiendo los eventos de teclado apropiados para los manejadores de eventos. -

Ver también

+### Ver también - +- Atributo HTML global [tabindex](/es/docs/Web/HTML/Global_attributes/tabindex) +- Manejador de evento global: [onkeydown](/es/docs/Web/API/GlobalEventHandlers/onkeydown) +- Manejador de evento global: [onkeyup](/es/docs/Web/API/GlobalEventHandlers/onkeyup) -

Evitar usar el atributo tabindex con un valor mayor a cero

+## Evitar usar el atributo `tabindex` con un valor mayor a cero -

El atributo tabindex indica que un elemento es enfocable utilizando el teclado. Un valor de cero indica que el elemento es parte del orden de enfoque normal, que está basado en el orden de los elementos en el documento HTML. Un valor positivo pone al elemento adelante de aquellos con el orden normal; elementos con valores positivos son enfocados en el orden del valor de tabindex (1, luego 2, después 3, etc.).

+El atributo `tabindex` indica que un elemento es enfocable utilizando el teclado. Un valor de cero indica que el elemento es parte del orden de enfoque normal, que está basado en el orden de los elementos en el documento HTML. Un valor positivo pone al elemento adelante de aquellos con el orden normal; elementos con valores positivos son enfocados en el orden del valor de `tabindex` (1, luego 2, después 3, etc.). -

Esto genera una confusión para usuarios que solo usen el teclado cuando el orden del enfoque difiera al orden lógico de la página. Una mejor estrategia es estructurar el documento HTML para que los elementos enfocables estén es un orden lógico, sin la necesidad de reordenarlos con un valor positivo de tabindex.

+Esto genera una confusión para usuarios que solo usen el teclado cuando el orden del enfoque difiera al orden lógico de la página. Una mejor estrategia es estructurar el documento HTML para que los elementos enfocables estén es un orden lógico, sin la necesidad de reordenarlos con un valor positivo de `tabindex`. -

Ver también

+### Ver también - +- Atributo HTML globlal [tabindex](/es/docs/Web/HTML/Global_attributes/tabindex) +- [Entendiento el orden del enfoque](https://www.w3.org/WAI/WCAG21/Understanding/focus-order.html) +- [No use un tabindex mayor que 0](http://adrianroselli.com/2014/11/dont-use-tabindex-greater-than-0.html) -

Los elementos a los que se les puede hacer click deben ser enfocables y deberían tener semánticas interactivas

+## Los elementos a los que se les puede hacer click deben ser enfocables y deberían tener semánticas interactivas -

Si a un elemento se le puede hacer click con un dispositivo apuntador, como un ratón, entonces también debería enfocable utilizando el teclado, y el usuario debería ser capaz de hacer algo al interactuar con este.

+Si a un elemento se le puede hacer click con un dispositivo apuntador, como un ratón, entonces también debería enfocable utilizando el teclado, y el usuario debería ser capaz de hacer algo al interactuar con este. -

A un elemento se le puede hacer click si tiene in manejador de evento onclick definido. Se puede hacer enfocable al añadir un atributo-valor tabindex=0. Se puede hacer que se opere con un teclado al definir un manejador de evento onkeydown; en la mayoría de los casos, la acción tomada por el manejador de eventos debería ser la misma para los dos tipos de eventos

+A un elemento se le puede hacer click si tiene in manejador de evento` onclick` definido. Se puede hacer enfocable al añadir un atributo-valor `tabindex=0`. Se puede hacer que se opere con un teclado al definir un manejador de evento `onkeydown`; en la mayoría de los casos, la acción tomada por el manejador de eventos debería ser la misma para los dos tipos de eventos -

Ver también

+### Ver también - +- El atributo global HTML [tabindex](/es/docs/Web/HTML/Global_attributes/tabindex) +- Manejador de evento global: [onkeydown](/es/docs/Web/API/GlobalEventHandlers/onkeydown) +- Manejador de evento global: [onkeyup](/es/docs/Web/API/GlobalEventHandlers/onkeyup) -

Los elementos interactivos deben ser capaz de ser activos utilizando un teclado

+## Los elementos interactivos deben ser capaz de ser activos utilizando un teclado -

Si el usuario puede interactuar con un elemento utilizando el tacto o un dispositivo apuntador, entonces el elemento debería ser también capaz de interactuar con el teclado, Es decir, si hay manejadores de evento definidos para los eventos al tacto y al hacer click, también debería haber manejadores de eventos para el teclado. Los manejadores de eventos para el teclado deberían realizar la misma interacción que sus contrapartes con el tacto y al hacer click.

+Si el usuario puede interactuar con un elemento utilizando el tacto o un dispositivo apuntador, entonces el elemento debería ser también capaz de interactuar con el teclado, Es decir, si hay manejadores de evento definidos para los eventos al tacto y al hacer click, también debería haber manejadores de eventos para el teclado. Los manejadores de eventos para el teclado deberían realizar la misma interacción que sus contrapartes con el tacto y al hacer click. -

Ver también

+### Ver también -
    -
  • Manejador de evento global: onkeydown
  • -
  • Manejador de evento global: onkeyup
  • -
+- Manejador de evento global: [onkeydown](/es/docs/Web/API/GlobalEventHandlers/onkeydown) +- Manejador de evento global: [onkeyup](/es/docs/Web/API/GlobalEventHandlers/onkeyup) -

Los elementos interactivos deben ser enfocables

+## Los elementos interactivos deben ser enfocables -

Si el usuario puede interactuar con un elemento (por ejemplo, usando el tacto o con un dispositivo apuntador) entonces debería ser enfocable utilizando el teclado. Puede hacerse enfocable al añadirle el atributo-valor tabindex=0. Eso añadirá el elemento a la lista de elementos que pueden ser enfocados al presionar la tecla Tab, en la secuencia en que dichos elementos se encuentran definidos en el documento HTML.

+Si el usuario puede interactuar con un elemento (por ejemplo, usando el tacto o con un dispositivo apuntador) entonces debería ser enfocable utilizando el teclado. Puede hacerse enfocable al añadirle el atributo-valor` tabindex=0`. Eso añadirá el elemento a la lista de elementos que pueden ser enfocados al presionar la tecla Tab, en la secuencia en que dichos elementos se encuentran definidos en el documento HTML. -

Ver también

+### Ver también - +- Atributo global HTML [tabindex](/es/docs/Web/HTML/Global_attributes/tabindex) -

Elementos enfocables deben tener un estilo al estar enfocados

+## Elementos enfocables deben tener un estilo al estar enfocados -

Cualquier elemento que pueda recibir el enfoque desde el teclado, debería tener un estilo visible que indique cuando el elemento esta enfocado. Se puede hacer esto con la pseudo-clase de CSS :focus.

+Cualquier elemento que pueda recibir el enfoque desde el teclado, debería tener un estilo visible que indique cuando el elemento esta enfocado. Se puede hacer esto con la pseudo-clase de CSS [`:focus`](/en-US/docs/Web/CSS/:focus). -

Elementos enfocables estándar como enlaces y los campos de entrada reciben un estilo especial por parte del navegador de forma predeterminada, por lo que podría no ser necesario especificar un estilo de enfoque para éstos, a menos que se quiera que el estilo de enfoque sea más distintivo.

+Elementos enfocables estándar como enlaces y los campos de entrada reciben un estilo especial por parte del navegador de forma predeterminada, por lo que podría no ser necesario especificar un estilo de enfoque para éstos, a menos que se quiera que el estilo de enfoque sea más distintivo. -

Si se crean componentes enfocables, se debe estar seguro de que también se defina el estilo de enfoque para éstos.

+Si se crean componentes enfocables, se debe estar seguro de que también se defina el estilo de enfoque para éstos. -

If you create your own focusable components, be sure that you also define focus styling for them.

+If you create your own focusable components, be sure that you also define focus styling for them. -

Ver también

+### Ver también - +- [Utilizando CSS para cambiar la presentación de un componente UI cuando reciba el enfoque](https://www.w3.org/WAI/WCAG21/Techniques/css/C15.html) diff --git a/files/es/web/accessibility/understanding_wcag/perceivable/color_contrast/index.md b/files/es/web/accessibility/understanding_wcag/perceivable/color_contrast/index.md index f694c0b3883af1..4f91128ea32560 100644 --- a/files/es/web/accessibility/understanding_wcag/perceivable/color_contrast/index.md +++ b/files/es/web/accessibility/understanding_wcag/perceivable/color_contrast/index.md @@ -8,53 +8,35 @@ tags: translation_of: Web/Accessibility/Understanding_WCAG/Perceivable/Color_contrast original_slug: Web/Accesibilidad/Understanding_WCAG/Perceivable/Color_contraste --- -

El contraste del color entre el fondo y el contenido del primer plano (que suele ser texto) debe ser lo suficientemente alto como para garantizar la legibilidad.

- -

Al diseñar interfaces legibles para diferentes capacidades de visión, las directrices de la WCAG recomiendan las siguientes relaciones de contraste:

- - - - - - - - - - - - - - - - - - - - - - - - - - -
Tipo de contenidoRelación mínima (nivel AA)Relación mejorada (nivel AAA)
Cuerpo de texto4.5 : 17 : 1
Texto a gran escala (120-150% mayor que el cuerpo de texto)3 : 14.5 : 1
Componentes activos de la interfaz de usuario y objetos gráficos como iconos y gráficos3 : 1No definido
- -

Estas proporciones no se aplican al texto "incidental", como controles inactivos, logotipos o texto puramente decorativo.

- -

Consulta la sección Solución a continuación para obtener más información.

- -

Tener un buen contraste de color en tu sitio web beneficia a todos tus usuarios, pero es particularmente beneficioso para los que tienen cierto tipo de ceguera al color y otras afecciones similares, como los que experimentan una baja sensibilidad al contraste y tienen dificultades para diferenciar colores parecidos. Esto se debe a que no distinguen las áreas brillantes y oscuras con tanta facilidad como las personas que no tienen esa discapacidad, y por lo tanto tienen problemas para ver los bordes y otros detalles.

- -

Es bueno tener un diseño atractivo en tu sitio web, pero el diseño es inútil si tus usuarios no pueden leer el contenido.

- -

Ejemplos

- -

Veamos algunos ejemplos simples con código HTML y CSS:

- -
<div class="good">Buen contraste</div>
-<div class="bad">Mal contraste</div>
- -
div {
+El [contraste del color](https://www.w3.org/TR/WCAG21/#dfn-contrast-ratio) entre el fondo y el contenido del primer plano (que suele ser texto) debe ser lo suficientemente alto como para garantizar la legibilidad.
+
+Al diseñar interfaces legibles para diferentes capacidades de visión, las directrices de la WCAG recomiendan las siguientes relaciones de contraste:
+
+| Tipo de contenido                                                                       | Relación mínima (nivel AA) | Relación mejorada (nivel AAA) |
+| --------------------------------------------------------------------------------------- | -------------------------- | ----------------------------- |
+| Cuerpo de texto                                                                         | 4.5 : 1                    | 7 : 1                         |
+| Texto a gran escala (120-150% mayor que el cuerpo de texto)                             | 3 : 1                      | 4.5 : 1                       |
+| Componentes activos de la interfaz de usuario y objetos gráficos como iconos y gráficos | 3 : 1                      | No definido                   |
+
+Estas proporciones no se aplican al texto "incidental", como controles inactivos, logotipos o texto puramente decorativo.
+
+Consulta la sección [Solución](#solución) a continuación para obtener más información.
+
+Tener un buen contraste de color en tu sitio web beneficia a todos tus usuarios, pero es particularmente beneficioso para los que tienen cierto tipo de ceguera al color y otras afecciones similares, como los que experimentan una baja sensibilidad al contraste y tienen dificultades para diferenciar colores parecidos. Esto se debe a que no distinguen las áreas brillantes y oscuras con tanta facilidad como las personas que no tienen esa discapacidad, y por lo tanto tienen problemas para ver los bordes y otros detalles.
+
+Es bueno tener un diseño atractivo en tu sitio web, pero el diseño es inútil si tus usuarios no pueden leer el contenido.
+
+## Ejemplos
+
+Veamos algunos ejemplos simples con código HTML y CSS:
+
+```html
+
Buen contraste
+
Mal contraste
+``` + +```css +div { /* General div styles here */ } @@ -64,18 +46,19 @@ original_slug: Web/Accesibilidad/Understanding_WCAG/Perceivable/Color_contraste .bad { background-color: #400064; -}
- -

Ambos fragmentos de texto tienen color negro por defecto. El <div> "good" tiene un color de fondo púrpura claro, lo que hace que el texto sea fácil de leer:

+} +``` - - -

{{EmbedLiveSample('example1', '100%', '100')}}

+} +``` -

El <div> "bad", por otro lado, tiene un color de fondo púrpura muy oscuro, lo que hace que el texto sea mucho más difícil de leer:

+{{EmbedLiveSample('example1', '100%', '100')}} - - -

{{EmbedLiveSample('example2', '100%', '100')}}

+} +``` -
-
+{{EmbedLiveSample('example2', '100%', '100')}} -

Solución

+## Solución -

Al elegir un esquema de color para tu sitio web, selecciona colores de primer plano y de fondo que tengan un buen contraste. Haz que el contraste de color sea lo mejor posible dentro de las limitaciones de tu diseño — preferiblemente elige el nivel AAA (ver 1.4.6 más abajo), pero al menos cumple con el nivel AA (ver 1.4.3 más abajo).

+Al elegir un esquema de color para tu sitio web, selecciona colores de primer plano y de fondo que tengan un buen contraste. Haz que el contraste de color sea lo mejor posible dentro de las limitaciones de tu diseño — preferiblemente elige el nivel AAA (ver 1.4.6 más abajo), pero al menos cumple con el nivel AA (ver 1.4.3 más abajo). -

Si incluyes contenido no textual, como vídeo o animación, debes seguir 1.4.11 (nuevamente, ver más abajo).

+Si incluyes contenido no textual, como vídeo o animación, debes seguir 1.4.11 (nuevamente, ver más abajo). -

Para verificar el contraste a medida que seleccionas los colores puedes utlizar una herramienta como Color Contrast Checker de WebAIM.

+Para verificar el contraste a medida que seleccionas los colores puedes utlizar una herramienta como [Color Contrast Checker](http://webaim.org/resources/contrastchecker/) de WebAIM. -

También puedes comprobar el contraste de color sobre la marcha utilizando las herramientas para desarrolladores de Firefox— ver nuestra guía Accessibility inspector, y en particular la sección Check for accessibility issues. Prueba a usarlo en los ejemplos en vivo en la sección de descripción.

+También puedes comprobar el contraste de color sobre la marcha utilizando las herramientas para desarrolladores de Firefox— ver nuestra guía [Accessibility inspector](/es/docs/Tools/Accessibility_inspector), y en particular la sección [Check for accessibility issues](/es/docs/Tools/Accessibility_inspector#Check_for_accessibility_issues). Prueba a usarlo en los ejemplos en vivo en la sección de descripción. -

Criterios de conformidad relacionados con WCAG

+## Criterios de conformidad relacionados con WCAG -
-
1.4.3 Contraste mínimo (AA)
-
El contraste de color entre el fondo y el contenido del primer plano debe tener un nivel mínimo para garantizar la legibilidad: -
    -
  • El texto y el fondo deben tener una relación de contraste de al menos 4.5:1.
  • -
  • Los encabezados (o simplemente el texto más grande) deben tener una relación de contraste de al menos 3:1. El texto más grande se define como de al menos 18pt, o 14pt en negrita.
  • -
-
-
1.4.6 Contraste mejorado (AAA)
-
Esto sigue y se basa en el criterio 1.4.3. -
    -
  • El texto y el fondo deben tener una relación de contraste de al menos 7:1.
  • -
  • Los encabezados (o simplemente el texto más grande) deben tener una relación de contraste de al menos 4.5:1.
  • -
-
-
1.4.11 Contraste no textual (AA) (añadido en 2.1)
-
Debe haber una relación mínima de contraste de color de 3 a 1 para los componentes de la interfaz de usuario y los objetos gráficos.
-
+- [1.4.3 Contraste mínimo (AA)](https://www.w3.org/TR/WCAG21/#contrast-minimum) + - : El contraste de color entre el fondo y el contenido del primer plano debe tener un nivel mínimo para garantizar la legibilidad:\* El texto y el fondo deben tener una relación de contraste de al menos 4.5:1. + - Los encabezados (o simplemente el texto más grande) deben tener una relación de contraste de al menos 3:1. El texto más grande se define como de al menos 18pt, o 14pt en negrita. +- [1.4.6 Contraste mejorado (AAA)](https://www.w3.org/TR/WCAG21/#contrast-enhanced) + - : Esto sigue y se basa en el criterio 1.4.3.\* El texto y el fondo deben tener una relación de contraste de al menos 7:1. + - Los encabezados (o simplemente el texto más grande) deben tener una relación de contraste de al menos 4.5:1. +- [1.4.11 Contraste no textual (AA)](https://www.w3.org/TR/WCAG21/#non-text-contrast) (añadido en 2.1) + - : Debe haber una relación mínima de contraste de color de 3 a 1 para los componentes de la interfaz de usuario y los objetos gráficos. -

Ver también

+## Ver también - +- [Color and color contrast](/es/docs/Learn/Accessibility/CSS_and_JavaScript#Color_and_color_contrast) +- [Multiple labels](/es/docs/Learn/HTML/Forms/How_to_structure_an_HTML_form#Multiple_labels) +- [Understanding Non-Text Contrast](https://www.w3.org/WAI/WCAG21/Understanding/non-text-contrast.html) diff --git a/files/es/web/accessibility/understanding_wcag/text_labels_and_names/index.md b/files/es/web/accessibility/understanding_wcag/text_labels_and_names/index.md index 6a56f8b76e26b3..924fbab7b228fa 100644 --- a/files/es/web/accessibility/understanding_wcag/text_labels_and_names/index.md +++ b/files/es/web/accessibility/understanding_wcag/text_labels_and_names/index.md @@ -8,260 +8,244 @@ tags: translation_of: Web/Accessibility/Understanding_WCAG/Text_labels_and_names original_slug: Web/Accesibilidad/Understanding_WCAG/Etiquetas_de_texto_y_nombres --- -

Hay muchas situaciones en las cuales un control, dialogo o cualquier otra característica de un sitio web deberían recibir un nombre o etiqueta descriptiva para permitir a los usuarios de técnologías asistivas entender cual es su propósito y ser capaz de entenderlo y operarlo correctamente. Hay un número de diferentes tipos de problemas en esta categoría, dependientes del contexto, y cada uno tiene su propia solución. Los diferentes problemas y soluciones son discutidas en las secciones posteriores.

+Hay muchas situaciones en las cuales un control, dialogo o cualquier otra característica de un sitio web deberían recibir un nombre o etiqueta descriptiva para permitir a los usuarios de técnologías asistivas entender cual es su propósito y ser capaz de entenderlo y operarlo correctamente. Hay un número de diferentes tipos de problemas en esta categoría, dependientes del contexto, y cada uno tiene su propia solución. Los diferentes problemas y soluciones son discutidas en las secciones posteriores. -

Utilizar el atributo alt para etiquetar elementos que ocupen un área que tiene el atributo href

+## Utilizar el atributo alt para etiquetar elementos que ocupen un área que tiene el atributo href -

En mapas de imágenes, cada elemento {{htmlelement("area")}} con un atributo alt definiendo un nombre que describa el recurso al que enlaza el area. Fallar al hacer eso provoca que un mapa de imagen sea difícil de usar para usuarios que usen tecnología asistiva — ellos necesitan texto alternativo para ser capaces de entender el propósito de una imagen.

+En mapas de imágenes, cada elemento {{htmlelement("area")}} con un atributo `alt` definiendo un nombre que describa el recurso al que enlaza el area. Fallar al hacer eso provoca que un mapa de imagen sea difícil de usar para usuarios que usen tecnología asistiva — ellos necesitan texto alternativo para ser capaces de entender el propósito de una imagen. -

Ejemplos

+### Ejemplos -

El siguiente ejemplo muestra un simple mapa de imagen (tomada de H24: Providing text alternatives for the area elements of image maps):

+El siguiente ejemplo muestra un simple mapa de imagen (tomada de [H24: Providing text alternatives for the area elements of image maps](https://www.w3.org/TR/WCAG20-TECHS/H24.html)): -
<img src="welcome.gif" usemap="#map1"
-    alt="Areas in the library. Select an area for
-more information on that area." />
-<map id="map1" name="map1">
-  <area shape="rect" coords="0,0,30,30"
-    href="reference.html" alt="Reference" />
-  <area shape="rect" coords="34,34,100,100"
-    href="media.html" alt="Audio visual lab" />
-</map>
+ Areas in the library. Select an area for
+    more information on that area. + + Reference + Audio visual lab + -

Ver la página de referencia del elemento <area> para unu ejemplo interactivo.

+Ver la [página de referencia del elemento](/es/docs/Web/HTML/Element/area) [``](/es/docs/Web/HTML/Element/area) para unu ejemplo interactivo. -

Ver también

+### Ver también - +- {{htmlelement("area")}} +- [H24: Providing text alternatives for the area elements of image maps](https://www.w3.org/TR/WCAG20-TECHS/H24.html) -

Los diálogos deberían ser etiquetados

+## Los diálogos deberían ser etiquetados -

Para cualquier contenedor cuyo contenido actue como una caja de diálogo (por ejemplo, un modal preguntando al usuario realizar una elección o responder a una acción siendo tomada), debe tener una etiqueta descriptiva o nombre, para que la tecnología asistiva le permita al usuario descrubir fácilmente cual es su propósito.

+Para cualquier contenedor cuyo contenido actue como una caja de diálogo (por ejemplo, un modal preguntando al usuario realizar una elección o responder a una acción siendo tomada), debe tener una etiqueta descriptiva o nombre, para que la tecnología asistiva le permita al usuario descrubir fácilmente cual es su propósito. -

Una caja de diálogo es generalmente denominada con un ARIA role="dialog" o role="alertdialog"; se puede usar tanto el atributo aria-label o aria-labelledby para proporcionar una etiqueta.

+Una caja de diálogo es generalmente denominada con un ARIA [`role="dialog"`](/en-US/docs/Web/Accessibility/ARIA/Roles/dialog_role) o [`role="alertdialog"`](/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_alertdialog_role); se puede usar tanto el atributo [`aria-label`](/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute) o [`aria-labelledby`](/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute) para proporcionar una etiqueta. -

Ejemplos

+### Ejemplos -

El siguiente ejemplo muestra una caja de dialogo sencilla, definida como role="dialog" y etiquetada con aria-labelledby.

+El siguiente ejemplo muestra una caja de dialogo sencilla, definida como `role="dialog"` y etiquetada con `aria-labelledby`. -
<div role="dialog" aria-labelledby="dialog1Title" aria-describedby="dialog1Desc">
-  <h2 id="dialog1Title">Your personal details were successfully updated</h2>
-  <p id="dialog1Desc">You can change your details at any time in the user account section.</p>
-  <button>Close</button>
-</div>
+
+

Your personal details were successfully updated

+

You can change your details at any time in the user account section.

+ +
-

Si la caja de diálogo no tiene un encabezado, se puede usar aria-label para contener la etiqueta de texto:

+Si la caja de diálogo no tiene un encabezado, se puede usar `aria-label` para contener la etiqueta de texto: -
<div role="dialog" aria-label="Personal details updated confirmation">
-  <p>Your personal details were successfully updated. You can
-    change your details at any time in the user account section.</p>
-  <button>Close</button>
-</div>
+
+

Your personal details were successfully updated. You can + change your details at any time in the user account section.

+ +
-

Ver también

+### Ver también - +- [`role="dialog"`](/en-US/docs/Web/Accessibility/ARIA/Roles/dialog_role) +- [`role="alertdialog"`](/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_alertdialog_role) +- [`aria-label`](/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-label_attribute) +- [`aria-labelledby`](/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute) +- [WAI-ARIA: dialog role](https://www.w3.org/TR/wai-aria-1.2/#dialog) +- [Dialog authoring practices](https://www.w3.org/TR/wai-aria-practices/#dialog_roles_states_props) -

Los documentos deben tener un título

+## Los documentos deben tener un título -

Es importante que cada documento HTML, incluya un elemento {{htmlelement("title")}} que describa el propósito de la página. Una técnica común de navegación para usuarios que usan tecnologías asistivas es inferir el contenido de la página leyendo su título. Si no hay título disponible, tienen que navegar por la página para determinar su contenido, lo cual puede ser un proceso largo y confuso.

+Es importante que cada documento HTML, incluya un elemento {{htmlelement("title")}} que describa el propósito de la página. Una técnica común de navegación para usuarios que usan tecnologías asistivas es inferir el contenido de la página leyendo su título. Si no hay título disponible, tienen que navegar por la página para determinar su contenido, lo cual puede ser un proceso largo y confuso. -

Ejemplos

+### Ejemplos -

El título para el artículo de refencia sobre el elemento {{htmlelement("title")}} es como sigue:

+El título para el artículo de refencia sobre el elemento {{htmlelement("title")}} es como sigue: -
<title>&lt;title&gt;: The Document Title element - HTML: Hypertext Markup Language | MDN</title>
+ <title>: The Document Title element - HTML: Hypertext Markup Language | MDN -

Otro ejemplo podría ser:

+Otro ejemplo podría ser: -
<title>Fill in your details to register — myGov services</title>
+ Fill in your details to register — myGov services -

Para ayudar al usuario, se puede actualizar el titulo de la página para reflejar cambios significativos al estado de la página (como problemas en la validación de un formulario):

+Para ayudar al usuario, se puede actualizar el titulo de la página para reflejar cambios significativos al estado de la página (como problemas en la validación de un formulario): -
<title>2 errors — Fill in your details to register — myGov services</title>
+ 2 errors — Fill in your details to register — myGov services -

Ver también

+### Ver también -
    -
  • {{htmlelement("title")}}
  • -
+- {{htmlelement("title")}} -

Contenido incrustado debe ser etiquetado

+## Contenido incrustado debe ser etiquetado -

Asegurarse que elementos que incrusten contenido tengan un atributo título que describa el contenido incrustado. Esto incluye al elemento {{htmlelement("embed")}} y al elemento {{htmlelement("object")}}. Estos elementos son usualmente definidos por un contenido gráfico, similar a un elemento {{HTMLelement("img")}}. Un título descriptivo ayuda a los usuarios de tecnologías asistivas entender que muestra el elemento.

+Asegurarse que elementos que incrusten contenido tengan un atributo título que describa el contenido incrustado. Esto incluye al elemento {{htmlelement("embed")}} y al elemento {{htmlelement("object")}}. Estos elementos son usualmente definidos por un contenido gráfico, similar a un elemento {{HTMLelement("img")}}. Un título descriptivo ayuda a los usuarios de tecnologías asistivas entender que muestra el elemento. -

Figuras con leyendas opcionales deberían ser etiquetadas

+## Figuras con leyendas opcionales deberían ser etiquetadas -

Para una mejor accesibilidad, incluir un {{HTMLElement("figcaption")}} dentro de un elemento {{HTMLElement("figure")}}, incluso si hacerlo es opcional técnicamente. La leyenda es adicional a cualquier texto alternativo en las imágenes dentro de la figura. La leyenda describe el proósito de una figura en el documento, que puede ser diferente de una descripción sencilla de un elemento visual, tal como lo proporciona el texto alternativo.

+Para una mejor accesibilidad, incluir un {{HTMLElement("figcaption")}} dentro de un elemento {{HTMLElement("figure")}}, incluso si hacerlo es opcional técnicamente. La leyenda es adicional a cualquier texto alternativo en las imágenes dentro de la figura. La leyenda describe el proósito de una figura en el documento, que puede ser diferente de una descripción sencilla de un elemento visual, tal como lo proporciona el texto alternativo. -

Ejemplo

+### Ejemplo -

El siguiente ejemplo muestra código para una figura con un pie de página. El atributo alt del elemento {{htmlelement("img")}} describe la apariencia de la imagen; el elemento {{htmlelement("figcaption")}} lo describe desde una perspectiva funcional (en este caso, el nombre en latín de la flor de la imagen).

+El siguiente ejemplo muestra código para una figura con un pie de página. El atributo `alt` del elemento {{htmlelement("img")}} describe la apariencia de la imagen; el elemento {{htmlelement("figcaption")}} lo describe desde una perspectiva funcional (en este caso, el nombre en latín de la flor de la imagen). -
<figure>
-  <img src="milkweed.jpg"
-      alt="Black and white close-up photo of milkweed flowers">
- <figcaption>Asclepias verticillata</figcaption>
-</figure>
-
+
+ Black and white close-up photo of milkweed flowers +
Asclepias verticillata
+
-

Los elementos de un conjuto campos deben ser etiquetados

+## Los elementos de un conjuto campos deben ser etiquetados -

Los elementos de un conjunto de campos (fieldset) deben tener un texto descriptivo, similar a otros elementos del formulario. Utilice el elemento {{htmlelement("legend")}} para describir el propósito de un conjunto de campos (fieldset).

+Los elementos de un conjunto de campos (fieldset) deben tener un texto descriptivo, similar a otros elementos del formulario. Utilice el elemento {{htmlelement("legend")}} para describir el propósito de un conjunto de campos (fieldset). -

Utilizar una leyenda para etiquetar un conjunto de campos

+## Utilizar una leyenda para etiquetar un conjunto de campos -

Al agrupar un conjunto de elementos de un formulario con un elemento {{htmlelement("fieldset")}}, se debería incluir un elemento {{htmlelement("legend")}} anidado dento de éste, conteninedo una clara descripción del grupo.

+Al agrupar un conjunto de elementos de un formulario con un elemento {{htmlelement("fieldset")}}, se debería incluir un elemento {{htmlelement("legend")}} anidado dento de éste, conteninedo una clara descripción del grupo. -

Usuarios de tecnologías asistivas encuentras esta descripción útil cuando tratan de entender el propósito del grupo. Sin la leyenda, tienen que navegar individualmente por todos los controles del formulario en el grupo para inferir una idea del propósito general, lo que puede resultar confuso.

+Usuarios de tecnologías asistivas encuentras esta descripción útil cuando tratan de entender el propósito del grupo. Sin la leyenda, tienen que navegar individualmente por todos los controles del formulario en el grupo para inferir una idea del propósito general, lo que puede resultar confuso. -

Ejemplo

+### Ejemplo -
<form>
-  <fieldset>
-    <legend>Choose your favorite monster</legend>
+    
+
+ Choose your favorite monster - <input type="radio" id="kraken" name="monster"> - <label for="kraken">Kraken</label><br/> + +
- <input type="radio" id="sasquatch" name="monster"> - <label for="sasquatch">Sasquatch</label><br/> + +
- <input type="radio" id="mothman" name="monster"> - <label for="mothman">Mothman</label> - </fieldset> -</form>
+ + + + -

Puede ver un ejemplo interactivo en la página de referencia de <fieldset>.

+Puede ver un ejemplo interactivo en la [página de referencia de `
`](/es/docs/Web/HTML/Element/fieldset). -

Ver también

+### Ver también -
    -
  • {{htmlelement("fieldset")}}
  • -
  • {{htmlelement("legend")}}
  • -
+- {{htmlelement("fieldset")}} +- {{htmlelement("legend")}} -

Los elementos de un formulario deben estar etiquetados

+## Los elementos de un formulario deben estar etiquetados -

Todos los elementos dentro de un formulario deben tener un elemento {{htmlelement("label")}} que identifique su propósito. Esto aplica a todos los tipos de elementos {{htmlelement("input")}}, como también para elementos {{htmlelement("button")}}, {{htmlelement("output")}}, {{htmlelement("select")}}, {{htmlelement("textarea")}}, {{htmlelement("progress")}} y {{htmlelement("meter")}}, como para cualquier elemento con el ARIA role switch.

+Todos los elementos dentro de un formulario deben tener un elemento {{htmlelement("label")}} que identifique su propósito. Esto aplica a todos los tipos de elementos {{htmlelement("input")}}, como también para elementos {{htmlelement("button")}}, {{htmlelement("output")}}, {{htmlelement("select")}}, {{htmlelement("textarea")}}, {{htmlelement("progress")}} y {{htmlelement("meter")}}, como para cualquier elemento con el [ARIA role](/es/docs/Web/Accessibility/ARIA/Roles/Switch_role) [`switch`](/es/docs/Web/Accessibility/ARIA/Roles/Switch_role). -

El elemento del formulario puede ser puesto dentro de un elemento {{htmlelement("label")}}, en cuyo caso la asociación entre el elemento del formulario y la etiqueta es obvia por la estructura. O, se puede crear una asociación entre un {{htmlelement("label")}} y el elemento del formulario al especificar el valor id del elemento del formulario y el valor del atributo for de la etiqueta.

+El elemento del formulario puede ser puesto dentro de un elemento {{htmlelement("label")}}, en cuyo caso la asociación entre el elemento del formulario y la etiqueta es obvia por la estructura. O, se puede crear una asociación entre un {{htmlelement("label")}} y el elemento del formulario al especificar el valor `id` del elemento del formulario y el valor del atributo `for` de la etiqueta. -

Ejemplos

+### Ejemplos -
<label>I agree to the terms and conditions.
-  <input type="checkbox" id="terms">
-</label>
+    
 
-<input type="checkbox" id="emailoptin">
-<label for="emailoptin">Yes, please send me news about this product.</label>
-
+ + -

Los elementos de un formulario deberían tener una etiqueta de texto visible

+## Los elementos de un formulario deberían tener una etiqueta de texto visible -

En adición a tener un elemento {{htmlelement("label")}} para cada elemento del formulario, estas etiquetas deberían ser visibles, no ocultarse. Las etiquetas visbles ayudan a todos los usuarios entender el propósito de un elemento de formulario. No dependa de un texto temporal porque éste desaparece tan pronto como el usuario empieza a escribir.

+En adición a tener un elemento {{htmlelement("label")}} para cada elemento del formulario, estas etiquetas deberían ser visibles, no ocultarse. Las etiquetas visbles ayudan a _todos_ los usuarios entender el propósito de un elemento de formulario. No dependa de un texto temporal porque éste desaparece tan pronto como el usuario empieza a escribir. -

Los elementos marco ('frame') deben estar etiquetados

+## Los elementos marco ('frame') deben estar etiquetados -

Los elementos marco ('frame'), tanto {{htmlelement("iframe")}} como el obsoleto y antiguo {{htmlelement("frame")}}, deben tener un título para describir el contenido del marco. Utilice el atributo title para etiquetar un elemento 'frame'. Sin un título, los usuarios que usen una tecnología asistiva tienen que navegar dentro del marco para entender que contiene, lo que puede ser difícil y confuso.

+Los elementos marco ('frame'), tanto {{htmlelement("iframe")}} como el obsoleto y antiguo {{htmlelement("frame")}}, deben tener un título para describir el contenido del marco. Utilice el atributo `title` para etiquetar un elemento 'frame'. Sin un título, los usuarios que usen una tecnología asistiva tienen que navegar dentro del marco para entender que contiene, lo que puede ser difícil y confuso. -

El elemento <frame> ya no forma parte de la especificación HTML en la versión HTML5. El soporte podría ser abandonado por los navegadores en el futuro. Además, es difícil para los lectores de pantalla el navegar páginas con elementos <frame>. Para una mejor accesibilidad y mantenimiento futuro, se debe rediseñar cualquier página que use marcos y reemplazarlos con el uso de CSS para lograr un diseño similar.

+El elemento `` ya no forma parte de la especificación HTML en la versión HTML5. El soporte podría ser abandonado por los navegadores en el futuro. Además, es difícil para los lectores de pantalla el navegar páginas con elementos ``. Para una mejor accesibilidad y mantenimiento futuro, se debe rediseñar cualquier página que use marcos y reemplazarlos con el uso de CSS para lograr un diseño similar. -

Como una mejor práctica, también proporcionar un {{htmlelement("title")}} para el documento que esta encapsulado en el marco, con un contenido identico al atributo title del marco. (Esto asumiendo que el documento encapsulado esta en control de uno, si no, tratar de coincidir el atributo title del marco con el título del documento.) Algunos lectores de pantalla reemplazan el contenido del atributo title con el contenido del {{htmlelement("title")}} del documento encapsulado. Es más seguro y más accesible el proporcionar el mismo título en ambos lugares.

+Como una mejor práctica, también proporcionar un {{htmlelement("title")}} para el documento que esta encapsulado en el marco, con un contenido identico al atributo `title` del marco. (Esto asumiendo que el documento encapsulado esta en control de uno, si no, tratar de coincidir el atributo `title` del marco con el título del documento.) Algunos lectores de pantalla reemplazan el contenido del atributo `title` con el contenido del {{htmlelement("title")}} del documento encapsulado. Es más seguro y más accesible el proporcionar el mismo título en ambos lugares. -

Ejemplos

+### Ejemplos -
<iframe
-    title="MDN Web docs"
-    width="300"
-    height="200"
-    src="https://developer.mozilla.org">
-</iframe>
+    
 
-
+## Usar el atributo alt para etiquetar elementos mglyph -

Usar el atributo alt para etiquetar elementos mglyph

+Al escribir ecuaciones con MathML, a cada elemento {{mathmlelement("mglyph")}} se le debe asignar el atributo `alt` conteniendo un nombre que describa el símbolo. Puesto que los elementos `mglyph` son usados para símbolos no estándar sin definiciones Unicode, los lectores de pantalla no serán capaces de automáticamente nombrarlos. El texto alternativo ayuda a los usuarios de lectores de pantalla entender el símbolo. -

Al escribir ecuaciones con MathML, a cada elemento {{mathmlelement("mglyph")}} se le debe asignar el atributo alt conteniendo un nombre que describa el símbolo. Puesto que los elementos mglyph son usados para símbolos no estándar sin definiciones Unicode, los lectores de pantalla no serán capaces de automáticamente nombrarlos. El texto alternativo ayuda a los usuarios de lectores de pantalla entender el símbolo.

+## Los encabezados deben ser etiquetados -

Los encabezados deben ser etiquetados

+Asegurarse que los encabezados tengan un contenido no vacío y no estén ocultos como con el CSS `display:none` o `aria-hidden=true`. Los usuarios de lectores de pantalla confían en los encabezados para entender la estructura y el contenido de un documento. -

Asegurarse que los encabezados tengan un contenido no vacío y no estén ocultos como con el CSS display:none o aria-hidden=true. Los usuarios de lectores de pantalla confían en los encabezados para entender la estructura y el contenido de un documento.

+Además, es importante usar los [elementos de encabezado](/es/docs/Web/HTML/Element/Heading_Elements) sólo para los encabezados de sección reales, y no como una forma rápida de hacer que el texto se destaque. Los lectores de pantalla suelen "hojear" los encabezados de una página, de manera muy parecida a los usuarios con visión, el texto que no sea encabezado que se marca con elementos de encabezamiento puede causar confusión. -

Además, es importante usar los elementos de encabezado sólo para los encabezados de sección reales, y no como una forma rápida de hacer que el texto se destaque. Los lectores de pantalla suelen "hojear" los encabezados de una página, de manera muy parecida a los usuarios con visión, el texto que no sea encabezado que se marca con elementos de encabezamiento puede causar confusión.

+## Los encabezados deberían tener contenido de texto visible -

Los encabezados deberían tener contenido de texto visible

+Asegurarse que los encabezados tengan un contenido no vacío y no estén ocultos como con el CSS `display:none` or `aria-hidden=true`. Los usuarios de lectores de pantalla confían en los encabezados para entender la estructura y el contenido de un documento. No use encabezados para marcar imágenes u otro contenido gráfico. -

Asegurarse que los encabezados tengan un contenido no vacío y no estén ocultos como con el CSS display:none or aria-hidden=true. Los usuarios de lectores de pantalla confían en los encabezados para entender la estructura y el contenido de un documento. No use encabezados para marcar imágenes u otro contenido gráfico.

+## Utilizar el atributo title para describir el contenido de un \ + + + + +``` -

Véase también

+## Véase también - +- {{HTMLElement("iframe")}} +- [Política del mismo origen](/es/docs/Web/Security/Same-origin_policy) diff --git a/files/es/web/javascript/reference/errors/stmt_after_return/index.md b/files/es/web/javascript/reference/errors/stmt_after_return/index.md index 1dd135c3ec08ac..9726c2e8793fa8 100644 --- a/files/es/web/javascript/reference/errors/stmt_after_return/index.md +++ b/files/es/web/javascript/reference/errors/stmt_after_return/index.md @@ -3,44 +3,40 @@ title: 'Advertencia: codigo inaccesible despues de sentencia de retorno' slug: Web/JavaScript/Reference/Errors/Stmt_after_return translation_of: Web/JavaScript/Reference/Errors/Stmt_after_return --- -
{{jsSidebar("Errors")}}
+{{jsSidebar("Errors")}} -

Mensaje

+## Mensaje -
Advertencia: código inaccesible después de sentencia de retorno (Firefox)
-
+ Advertencia: código inaccesible después de sentencia de retorno (Firefox) -

Tipo de error

+## Tipo de error -

Advertencia

+Advertencia -

Qué va mal?

+## Qué va mal? -

Código inalcanzable después de una sentencia de retorno puede ocurrir en estas situaciones:

+Código inalcanzable después de una sentencia de retorno puede ocurrir en estas situaciones: -
    -
  • Cuando se usa una expresión despues de una sentencia {{jsxref("Statements/return", "return")}}
  • -
  • Cuando se usa una sentencia de retorno sin punto y coma pero inluye una expresion directamente despues.
  • -
+- Cuando se usa una expresión despues de una sentencia {{jsxref("Statements/return", "return")}} +- Cuando se usa una sentencia de retorno sin punto y coma pero inluye una expresion directamente despues. -

Cuando una expresion existe después de una sentencia de retorno válida, se da una advertencia para indicar que el código después de la sentencia de retorno es inalcanzable, lo que significa que nunca será ejecutado.

+Cuando una expresion existe después de una sentencia de retorno válida, se da una advertencia para indicar que el código después de la sentencia de retorno es inalcanzable, lo que significa que nunca será ejecutado. -

¿Porqué deberia tener un punto y coma despues de la sentencia de retorno? En el caso de sentencias sin punto y coma, estas pueden no ser claras, puede que el desarrollador intentara retornar el resultado de la sentencia en la siguiente línea, o detener la ejecución y retornar. La advertencia indica que hay una ambiguedad en la forma en la que la sentencia de retorno está escrita.

+¿Porqué deberia tener un punto y coma despues de la sentencia de retorno? En el caso de sentencias sin punto y coma, estas pueden no ser claras, puede que el desarrollador intentara retornar el resultado de la sentencia en la siguiente línea, o detener la ejecución y retornar. La advertencia indica que hay una ambiguedad en la forma en la que la sentencia de retorno está escrita. -

Advertencias no seran mostradas por retornos sin punto y coma si la sentencia lo sigue:

+Advertencias no seran mostradas por retornos sin punto y coma si la sentencia lo sigue: -
    -
  • {{jsxref("Statements/throw", "throw")}}
  • -
  • {{jsxref("Statements/break", "break")}}
  • -
  • {{jsxref("Statements/var", "var")}}
  • -
  • {{jsxref("Statements/function", "function")}}
  • -
+- {{jsxref("Statements/throw", "throw")}} +- {{jsxref("Statements/break", "break")}} +- {{jsxref("Statements/var", "var")}} +- {{jsxref("Statements/function", "function")}} -

Ejemplos

+## Ejemplos -

Casos invalidos

+### Casos invalidos -
function f() {
+```js example-bad
+function f() {
   var x = 3;
   x += 4;
   return x;   // return sale de la funcion inmediatamente
@@ -51,11 +47,12 @@ function f() {
   return     // es tratado como `return;`
     3 + 4;   //la funcion regresa, y esta linea nunca es alcanzada
 }
-
+``` -

Casos validos

+### Casos validos -
function f() {
+```js example-good
+function f() {
   var x = 3;
   x += 4;
   x -= 3;
@@ -65,10 +62,8 @@ function f() {
 function f() {
   return 3 + 4  // OK: sin punto y coma regresa la expresion en la misma linea
 }
-
+``` -

Ve tambien

+## Ve tambien -
    -
  • {{jsxref("Statements/return", "Automatic Semicolon Insertion", "#Automatic_Semicolon_Insertion", 1)}}
  • -
+- {{jsxref("Statements/return", "Automatic Semicolon Insertion", "#Automatic_Semicolon_Insertion", 1)}} diff --git a/files/es/web/javascript/reference/errors/strict_non_simple_params/index.md b/files/es/web/javascript/reference/errors/strict_non_simple_params/index.md index caf2c3980ab1c5..8d3f89520fd1ec 100644 --- a/files/es/web/javascript/reference/errors/strict_non_simple_params/index.md +++ b/files/es/web/javascript/reference/errors/strict_non_simple_params/index.md @@ -9,110 +9,111 @@ tags: translation_of: Web/JavaScript/Reference/Errors/Strict_Non_Simple_Params original_slug: Web/JavaScript/Reference/Errors/Strict_y_parámetros_complejos --- -
{{jsSidebar("Errors", "Errores")}}
+{{jsSidebar("Errors", "Errores")}} -

La excepción de JavaScript: "'use strict' no permitida en función" ocurre cuando se usa una directiva "use strict" en la parte superior de una función con {{jsxref("Functions/Default_parameters", "parámetros predeterminados", "", 1)}}, {{jsxref("Functions/rest_parameters", "parámetros rest", "", 1)}} o {{jsxref("Operators/Destructuring_assignment" , "Desestructuración de parámetros", "", 1)}}.

+La excepción de JavaScript: "`'use strict' no permitida en función`" ocurre cuando se usa una directiva `"use strict"` en la parte superior de una función con {{jsxref("Functions/Default_parameters", "parámetros predeterminados", "", 1)}}, {{jsxref("Functions/rest_parameters", "parámetros rest", "", 1)}} o {{jsxref("Operators/Destructuring_assignment" , "Desestructuración de parámetros", "", 1)}}. -

Mensaje

+## Mensaje -
Edge:
-No se puede aplicar el modo estricto en funciones con una lista de parámetros complejos
+    Edge:
+    No se puede aplicar el modo estricto en funciones con una lista de parámetros complejos
 
-Firefox:
-SyntaxError: "use strict" no permitido en la función con parámetro predeterminado
-SyntaxError: "use strict" no permitido en la función con parámetro rest
-SyntaxError: "use strict" no permitido en la función con parámetro de desestructuración
+    Firefox:
+    SyntaxError: "use strict" no permitido en la función con parámetro predeterminado
+    SyntaxError: "use strict" no permitido en la función con parámetro rest
+    SyntaxError: "use strict" no permitido en la función con parámetro de desestructuración
 
-Chrome:
-SyntaxError: directiva ilegal 'use strict' en función con una lista de parámetros complejos
-
+ Chrome: + SyntaxError: directiva ilegal 'use strict' en función con una lista de parámetros complejos -

Tipo Error

+## Tipo `Error` -

{{jsxref("SyntaxError")}}.

+{{jsxref("SyntaxError")}}. -

¿Qué salió mal?

+## ¿Qué salió mal? -

Se escribió una directiva "use strict" en la parte superior de una función que tiene uno de los siguientes parámetros:

+Se escribió una directiva `"use strict"` en la parte superior de una función que tiene uno de los siguientes parámetros: -
    -
  • {{jsxref("Functions/Default_parameters", "Parámetros predeterminados", "", 1)}}
  • -
  • {{jsxref("Functions/rest_parameters", "Parámetros rest", "", 1)}}
  • -
  • {{jsxref("Operators/Destructuring_assignment", "Desestructuración de parámetros", "", 1)}}
  • -
+- {{jsxref("Functions/Default_parameters", "Parámetros predeterminados", "", 1)}} +- {{jsxref("Functions/rest_parameters", "Parámetros rest", "", 1)}} +- {{jsxref("Operators/Destructuring_assignment", "Desestructuración de parámetros", "", 1)}} -

No está permitida una directiva "use strict" en la parte superior de dichas funciones según la especificación ECMAScript.

+No está permitida una directiva `"use strict"` en la parte superior de dichas funciones según la especificación ECMAScript. -

Ejemplos

+## Ejemplos -

Declaración de función

+### Declaración de función -

En este caso, la función sum tiene los parámetros predeterminados a = 1 y b = 2:

+En este caso, la función `sum` tiene los parámetros predeterminados `a = 1` y `b = 2`: -
function sum(a = 1, b = 2) {
+```js example-bad
+function sum(a = 1, b = 2) {
   SyntaxError: 'use strict' no permitida en la función con parámetros predeterminados
   'use strict';
   return a + b;
 }
-
+``` -

Si la función debe estar en modo estricto, y todo el script o la función adjunta también está bien que esté en modo estricto, puedes mover la directiva "use strict" fuera de la función:

+Si la función debe estar en [modo estricto](/es/docs/Web/JavaScript/Reference/Strict_mode), y todo el script o la función adjunta también está bien que esté en modo estricto, puedes mover la directiva `"use strict"` fuera de la función: -
'use strict';
+```js example-good
+'use strict';
 function sum(a = 1, b = 2) {
   return a + b;
 }
-
+``` -

Expresión Function

+### Expresión `Function` -

Una expresión function puede usar otra solución alternativa:

+Una expresión `function` puede usar otra solución alternativa: -
var sum = function sum([a, b]) {
+```js example-bad
+var sum = function sum([a, b]) {
   // SyntaxError: "use strict" no permitido en función con parámetros de desestructuración
   'use strict';
   return a + b;
 };
-
+``` -

Esta se puede convertir a la siguiente expresión:

+Esta se puede convertir a la siguiente expresión: -
var sum = (function() {
+```js example-good
+var sum = (function() {
   'use strict';
   return function sum([a, b]) {
     return a + b;
   };
 })();
-
+``` -

Función de flecha

+### Función de flecha -

Si una función de flecha necesita acceder a la variable this, puedes usar la función de flecha como función circundante:

+Si una función de flecha necesita acceder a la variable `this`, puedes usar la función de flecha como función circundante: -
var callback = (...args) => {
+```js example-bad
+var callback = (...args) => {
   SyntaxError: "use strict" no permitido en la función con parámetro rest
   'use strict';
   return this.run(args);
 };
-
+``` -

Esta se puede convertir a la siguiente expresión:

+Esta se puede convertir a la siguiente expresión: -
var callback = (() => {
+```js example-good
+var callback = (() => {
   'use strict';
-  return (...args) => {
+  return (...args) => {
     return this.run(args);
   };
 })();
-
- -

Ve también

- -
    -
  • {{jsxref("Strict_mode", "Modo estricto", "", 1)}}
  • -
  • {{jsxref("Statements/function", "Declaración de función", "", 1)}}
  • -
  • {{jsxref("Operators/function", "Expresión function", "", 1)}}
  • -
  • {{jsxref("Functions/Default_parameters", "Parámetros predeterminados", "", 1)}}
  • -
  • {{jsxref("Functions/rest_parameters", "Parámetros rest", "", 1)}}
  • -
  • {{jsxref("Operators/Destructuring_assignment", "Desestructuración de parámetros", "", 1)}}
  • -
+``` + +## Ve también + +- {{jsxref("Strict_mode", "Modo estricto", "", 1)}} +- {{jsxref("Statements/function", "Declaración de función", "", 1)}} +- {{jsxref("Operators/function", "Expresión function", "", 1)}} +- {{jsxref("Functions/Default_parameters", "Parámetros predeterminados", "", 1)}} +- {{jsxref("Functions/rest_parameters", "Parámetros rest", "", 1)}} +- {{jsxref("Operators/Destructuring_assignment", "Desestructuración de parámetros", "", 1)}} diff --git a/files/es/web/javascript/reference/errors/too_much_recursion/index.md b/files/es/web/javascript/reference/errors/too_much_recursion/index.md index 21f582eaf216a2..77bd3288fb4744 100644 --- a/files/es/web/javascript/reference/errors/too_much_recursion/index.md +++ b/files/es/web/javascript/reference/errors/too_much_recursion/index.md @@ -10,48 +10,49 @@ tags: - Recursión(2) translation_of: Web/JavaScript/Reference/Errors/Too_much_recursion --- -
{{jsSidebar("Errors")}}
+{{jsSidebar("Errors")}} -

Mensaje

+## Mensaje -
InternalError: too much recursion
-
+ InternalError: too much recursion -

Tipo de error

+## Tipo de error -

{{jsxref("InternalError")}}.

+{{jsxref("InternalError")}}. -

¿Qué ha ido mal?

+## ¿Qué ha ido mal? -

Una función que se llama a sí misma es una función recursiva. Podemos decir que la recursión es análoga a un bucle. Ambos ejecutan el mismo código varias veces y ambos requieren de una condición de fin (para evitar un bucle infinito o recursión infinita). Cuando hay recursión infinita o mucha recursión, JavaScript lanza este error.

+Una función que se llama a sí misma es una función recursiva. Podemos decir que la recursión es análoga a un bucle. Ambos ejecutan el mismo código varias veces y ambos requieren de una condición de fin (para evitar un bucle infinito o recursión infinita). Cuando hay recursión infinita o mucha recursión, JavaScript lanza este error. -

Ejemplos

+## Ejemplos -

Esta función recursiva se ejecuta 10 veces, debido a la condición de salida.

+Esta función recursiva se ejecuta 10 veces, debido a la condición de salida. -
function loop(x) {
-  if (x >= 10) // "x >= 10" es la condición de salida
+```js
+function loop(x) {
+  if (x >= 10) // "x >= 10" es la condición de salida
     return;
   // hacer cosas
   loop(x + 1); // llamada recursiva
 }
-loop(0);
+loop(0); +``` -

Si establecemos esta condición para un valor muy alto, no funcionará:

+Si establecemos esta condición para un valor muy alto, no funcionará: -
function loop(x) {
-  if (x >= 1000000000000)
+```js example-bad
+function loop(x) {
+  if (x >= 1000000000000)
     return;
   // hacer cosas
   loop(x + 1);
 }
 loop(0);
 
-// InternalError: too much recursion (demasiada recursión)
+// InternalError: too much recursion (demasiada recursión) +``` -

See also

+## See also - +- {{Glossary("Recursion")}} +- [Recursive functions](/es/docs/Web/JavaScript/Guide/Functions#Recursion) diff --git a/files/es/web/javascript/reference/errors/undefined_prop/index.md b/files/es/web/javascript/reference/errors/undefined_prop/index.md index 96f7e050dea978..614f8386cead26 100644 --- a/files/es/web/javascript/reference/errors/undefined_prop/index.md +++ b/files/es/web/javascript/reference/errors/undefined_prop/index.md @@ -8,40 +8,41 @@ tags: - errores translation_of: Web/JavaScript/Reference/Errors/Undefined_prop --- -
{{jsSidebar("Errors")}}
+{{jsSidebar("Errors")}} -

Mensaje

+## Mensaje -
ReferenceError: reference to undefined property "x" (Firefox)
-
+ ReferenceError: reference to undefined property "x" (Firefox) -

Tipo de error

+## Tipo de error -

Advertencia {{jsxref("ReferenceError")}} únicamente en modo estricto.

+Advertencia {{jsxref("ReferenceError")}} únicamente en [modo estricto](/es/docs/Web/JavaScript/Referencia/Modo_estricto). -

¿Qué salió mal?

+## ¿Qué salió mal? -

El script intentó acceder a una propiedad no definida en un objeto. Hay dos formas de acceder a las propiedades; vea la página operadores de miembros para aprender más sobre ellas.

+El script intentó acceder a una propiedad no definida en un objeto. Hay dos formas de acceder a las propiedades; vea la página [operadores de miembros](/es/docs/Web/JavaScript/Referencia/Operadores/Miembros) para aprender más sobre ellas. -

Los errores sobre referencias a propiedades no definidas ocurren únicamente en el modo de código estricto. En el modo no estricto, estos intentos de obtener propiedades no definidas son silenciosamente ignorados.

+Los errores sobre referencias a propiedades no definidas ocurren únicamente en el [modo de código estricto](/es/docs/Web/JavaScript/Referencia/Modo_estricto). En el modo no estricto, estos intentos de obtener propiedades no definidas son silenciosamente ignorados. -

Ejemplos

+## Ejemplos -

Casos inválidos

+### Casos inválidos -

En este caso, la propiedad bar no está definida, produciéndose un ReferenceError.

+En este caso, la propiedad `bar` no está definida, produciéndose un `ReferenceError`. -
'use strict';
+```js example-bad
+'use strict';
 
 var foo = {};
 foo.bar; // ReferenceError: reference to undefined property "bar"
-
+``` -

Casos válidos

+### Casos válidos -

Para evitar este error, es necesario ya sea definir la propiedad bar en el objeto o verificar su existencia antes de leerla; una manera de hacerlo es usar el método {{jsxref("Object.prototype.hasOwnProperty()")}}, como en el siguiente ejemplo:

+Para evitar este error, es necesario ya sea definir la propiedad `bar` en el objeto o verificar su existencia antes de leerla; una manera de hacerlo es usar el método {{jsxref("Object.prototype.hasOwnProperty()")}}, como en el siguiente ejemplo: -
'use strict';
+```js example-good
+'use strict';
 
 var foo = {};
 
@@ -54,10 +55,9 @@ console.log(foo.bar); // "luna"
 
 if (foo.hasOwnProperty('bar')) {
   console.log(foo.bar);
-}
+} +``` -

Vea también

+## Vea también - +- [Modo estricto](/es/docs/Web/JavaScript/Referencia/Modo_estricto) diff --git a/files/es/web/javascript/reference/errors/unexpected_token/index.md b/files/es/web/javascript/reference/errors/unexpected_token/index.md index 02cad6eb2f4fb4..f59a0210b26110 100644 --- a/files/es/web/javascript/reference/errors/unexpected_token/index.md +++ b/files/es/web/javascript/reference/errors/unexpected_token/index.md @@ -7,44 +7,43 @@ tags: - errores translation_of: Web/JavaScript/Reference/Errors/Unexpected_token --- -
{{jsSidebar("Errors")}}
+{{jsSidebar("Errors")}} -

Mensaje

+## Mensaje -
SyntaxError: expected expression, got "x"
-SyntaxError: expected property name, got "x"
-SyntaxError: expected target, got "x"
-SyntaxError: expected rest argument name, got "x"
-SyntaxError: expected closing parenthesis, got "x"
-SyntaxError: expected '=>' after argument list, got "x"
-
+ SyntaxError: expected expression, got "x" + SyntaxError: expected property name, got "x" + SyntaxError: expected target, got "x" + SyntaxError: expected rest argument name, got "x" + SyntaxError: expected closing parenthesis, got "x" + SyntaxError: expected '=>' after argument list, got "x" -

Tipo de error

+## Tipo de error -

{{jsxref("SyntaxError")}}

+{{jsxref("SyntaxError")}} -

¿Que significa el error?

+## ¿Que significa el error? -

Se esperaba un constructor específico de JavaScript pero se recibió algo diferente. Puede ser un simple error de tipeo.

+Se esperaba un constructor específico de JavaScript pero se recibió algo diferente. Puede ser un simple error de tipeo. -

Ejemplos

+## Ejemplos -

Se espera expresión

+### Se espera expresión -

Cuando se llama a una función, no se permiten comas al final de los argumentos. JavaScript espera un argumento que puede ser en realidad cualquier tipo de expresión.

+Cuando se llama a una función, no se permiten comas al final de los argumentos. JavaScript espera un argumento que puede ser en realidad cualquier tipo de expresión. -
Math.max(2, 42,);
+```js example-bad
+Math.max(2, 42,);
 // SyntaxError: expected expression, got ')'
-
+``` -

El error se corrije omitiendo la coma o agregando otro argumento:

+El error se corrije omitiendo la coma o agregando otro argumento: -
Math.max(2, 42);
+```js example-good
+Math.max(2, 42);
 Math.max(2, 42, 13 + 37);
-
+``` -

See also

+## See also -
    -
  • {{jsxref("Math.max()")}}
  • -
+- {{jsxref("Math.max()")}} diff --git a/files/es/web/javascript/reference/errors/unexpected_type/index.md b/files/es/web/javascript/reference/errors/unexpected_type/index.md index 03e357df5dea36..92d1adc08de1cd 100644 --- a/files/es/web/javascript/reference/errors/unexpected_type/index.md +++ b/files/es/web/javascript/reference/errors/unexpected_type/index.md @@ -3,33 +3,33 @@ title: 'TypeError: "x" is (not) "y"' slug: Web/JavaScript/Reference/Errors/Unexpected_type translation_of: Web/JavaScript/Reference/Errors/Unexpected_type --- -
{{jsSidebar("Errors")}}
+{{jsSidebar("Errors")}} -

Mensaje

+## Mensaje -
TypeError: "x" is (not) "y"
+    TypeError: "x" is (not) "y"
 
-Examples:
-TypeError: "x" is undefined
-TypeError: "x" is null
-TypeError: "undefined" is not an object
-TypeError: "x" is not an object or null
-TypeError: "x" is not a symbol
-
+ Examples: + TypeError: "x" is undefined + TypeError: "x" is null + TypeError: "undefined" is not an object + TypeError: "x" is not an object or null + TypeError: "x" is not a symbol -

Tipo de error

+## Tipo de error -

{{jsxref("TypeError")}}.

+{{jsxref("TypeError")}}. -

¿Qué salió mal?

+## ¿Qué salió mal? -

Tipo inesperado. Esto ocurre amenudo con valores {{jsxref("undefined")}} o {{jsxref("null")}} .

+Tipo inesperado. Esto ocurre amenudo con valores {{jsxref("undefined")}} o {{jsxref("null")}} . -

Además, ciertos métodos, como {{jsxref ("Object.create ()")}} o {{jsxref("Symbol.keyFor()")}}, requieren de un tipo específico, que debe ser proporcionado, ejemplos

+Además, ciertos métodos, como {{jsxref ("Object.create ()")}} o {{jsxref("Symbol.keyFor()")}}, requieren de un tipo específico, que debe ser proporcionado, ejemplos -

Casos inválidos

+### Casos inválidos -
// undefined and null cases on which the substring method won't work
+```js example-bad
+// undefined and null cases on which the substring method won't work
 var foo = undefined;
 foo.substring(1); // TypeError: foo is undefined
 
@@ -43,19 +43,19 @@ Symbol.keyFor(foo); // TypeError: foo is not a symbol
 
 var foo = 'bar'
 Object.create(foo); // TypeError: "foo" is not an object or null
-
+``` -

Cómo solucionar el problema

+### Cómo solucionar el problema -

Para fijar un puntero nulo a indefinidos o valores nulos, puede utilizar el operador typeof, por ejemplo

+Para fijar un puntero nulo a indefinidos o valores nulos, puede utilizar el operador typeof, por ejemplo -
if (typeof foo !== 'undefined') {
+```js
+if (typeof foo !== 'undefined') {
   // Ahora sabemos que foo está definido, ahora podemos continuar.
-}
+} +``` -

Ver también

+## Ver también -
    -
  • {{jsxref("undefined")}}
  • -
  • {{jsxref("null")}}
  • -
+- {{jsxref("undefined")}} +- {{jsxref("null")}} diff --git a/files/es/web/javascript/reference/functions/arguments/callee/index.md b/files/es/web/javascript/reference/functions/arguments/callee/index.md index 4a1c628bd30f7e..492ea481c807ba 100644 --- a/files/es/web/javascript/reference/functions/arguments/callee/index.md +++ b/files/es/web/javascript/reference/functions/arguments/callee/index.md @@ -8,42 +8,39 @@ tags: translation_of: Web/JavaScript/Reference/Functions/arguments/callee original_slug: Web/JavaScript/Referencia/Funciones/arguments/callee --- -
-
{{jsSidebar("Functions")}}
-
+{{jsSidebar("Functions")}} -

Resumen

+## Resumen -

Especifica la función que se está ejecutando actualmente.

+Especifica la función que se está ejecutando actualmente. -

Descripción

+## Descripción -

callee es una propiedad de la variable local arguments disponible dentro de todos los objetos function; callee como una propiedad de {{jsxref("Funciones/arguments", "Function.arguments")}} ya no se utiliza. (Function.arguments en sí mismo está también desaconsejado.)

+`callee` es una propiedad de la variable local `arguments` disponible dentro de todos los objetos function; `callee` como una propiedad de {{jsxref("Funciones/arguments", "Function.arguments")}} ya no se utiliza. (`Function.arguments` en sí mismo está también desaconsejado.) -

arguments.callee permite a funciones anónimas referirse a ellas mismas, lo cual es necesario en funciones anónimas recursivas.

+`arguments.callee` permite a funciones anónimas referirse a ellas mismas, lo cual es necesario en funciones anónimas recursivas. -

La palabra clave this no se refiere a la función que se ejecuta actualmente. Use la propiedad callee para referirse a la función dentro del cuerpo de la función.

+La palabra clave `this` no se refiere a la función que se ejecuta actualmente. Use la propiedad `callee` para referirse a la función dentro del cuerpo de la función. -

Ejemplos

+## Ejemplos -

Ejemplo: Usando arguments.callee en funciones anónimas recursivas

+### Ejemplo: Usando `arguments.callee` en funciones anónimas recursivas -

Una función recursiva debe ser capaz de referirse a sí misma. Típicamente, una función se refiere a sí misma por su nombre. Sin embargo, una función anónima no tiene nombre y por tanto es una variable de referencia para ella, es decir, si la función no está asignada a ninguna variable, la función no puede referirse a sí misma. (Se pueden crear funciones anónimas mediante una expresión {{jsxref("Operadores/function", "function")}} o el constructor {{jsxref("Function")}}.) Aquí es donde entra arguments.callee.

+Una función recursiva debe ser capaz de referirse a sí misma. Típicamente, una función se refiere a sí misma por su nombre. Sin embargo, una función anónima no tiene nombre y por tanto es una variable de referencia para ella, es decir, si la función no está asignada a ninguna variable, la función no puede referirse a sí misma. (Se pueden crear funciones anónimas mediante una expresión {{jsxref("Operadores/function", "function")}} o el constructor {{jsxref("Function")}}.) Aquí es donde entra `arguments.callee`. -

El siguiente ejemplo define una función, la cuál, en cada turno, define y devuelve una función factorial.

+El siguiente ejemplo define una función, la cuál, en cada turno, define y devuelve una función factorial. -
function makeFactorialFunc() {
+```js
+function makeFactorialFunc() {
    alert('making a factorial function!');
    return function(x) {
-      if (x <= 1)
+      if (x <= 1)
          return 1;
       return x * arguments.callee(x - 1);
    };
 }
 
 var result = makeFactorialFunc()(5); // returns 120 (5 * 4 * 3 * 2 * 1)
-
+``` -

this example isn't very practical, but then again, there are few practical cases where arguments.callee is necessary, and most of the those cases involve closures

- -

+this example isn't very practical, but then again, there are few practical cases where arguments.callee is necessary, and most of the those cases involve closures diff --git a/files/es/web/javascript/reference/functions/arguments/length/index.md b/files/es/web/javascript/reference/functions/arguments/length/index.md index f3421ee6c77cf1..af7f64a0a287f8 100644 --- a/files/es/web/javascript/reference/functions/arguments/length/index.md +++ b/files/es/web/javascript/reference/functions/arguments/length/index.md @@ -9,76 +9,50 @@ tags: translation_of: Web/JavaScript/Reference/Functions/arguments/length original_slug: Web/JavaScript/Referencia/Funciones/arguments/length --- -
{{jsSidebar("Functions")}}
+{{jsSidebar("Functions")}} -

La propiedad arguments.length contiene el número de argumentos pasados a una función.

+La propiedad **`arguments.length`** contiene el número de argumentos pasados a una función. -

Sintaxis

+## Sintaxis -
arguments.length
+ arguments.length -

Descripción

+## Descripción -

La propiedad arguments.length devuelve el número total de argumentos pasados a una función. Esto puede ser más o menos que el número de parametros definidos. (Véase {{jsxref("Function.length")}}).

+La propiedad arguments.length devuelve el número total de argumentos pasados a una función. Esto puede ser más o menos que el número de parametros definidos. (Véase {{jsxref("Function.length")}}). -

Ejemplos

+## Ejemplos -

Usando arguments.length

+### Usando `arguments.length` -

En este ejemplo definimos una función que puede sumar dos o más números.

+En este ejemplo definimos una función que puede sumar dos o más números. -
function adder(base /*, n2, ... */) {
+```js
+function adder(base /*, n2, ... */) {
   base = Number(base);
-  for (var i = 1; i < arguments.length; i++) {
+  for (var i = 1; i < arguments.length; i++) {
     base += Number(arguments[i]);
   }
   return base;
 }
-
- -
-

Tenga en cuenta la diferencia entre {{jsxref("Function.length")}} y arguments.length

-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.1
{{SpecName('ES5.1', '#sec-10.6', 'Arguments Object')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-arguments-exotic-objects', 'Arguments Exotic Objects')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-arguments-exotic-objects', 'Arguments Exotic Objects')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con los navegadores

+``` + +> **Nota:** Tenga en cuenta la diferencia entre {{jsxref("Function.length")}} y arguments.length + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.1 | +| {{SpecName('ES5.1', '#sec-10.6', 'Arguments Object')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-arguments-exotic-objects', 'Arguments Exotic Objects')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-arguments-exotic-objects', 'Arguments Exotic Objects')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con los navegadores {{Compat("javascript.functions.arguments.length")}} -

Véase también

+## Véase también -
    -
  • {{jsxref("Function")}}
  • -
  • {{jsxref("Function.length")}}
  • -
+- {{jsxref("Function")}} +- {{jsxref("Function.length")}} diff --git a/files/es/web/javascript/reference/functions/get/index.md b/files/es/web/javascript/reference/functions/get/index.md index c8e5a1022d41d5..e202b4763d2594 100644 --- a/files/es/web/javascript/reference/functions/get/index.md +++ b/files/es/web/javascript/reference/functions/get/index.md @@ -8,44 +8,41 @@ tags: translation_of: Web/JavaScript/Reference/Functions/get original_slug: Web/JavaScript/Referencia/Funciones/get --- -
{{jsSidebar("Funciones")}}
+{{jsSidebar("Funciones")}} -

Enlaza la propiedad de un objeto con una función que será llamada cuando la propiedad es buscada.

+Enlaza la propiedad de un objeto con una función que será llamada cuando la propiedad es buscada. -

Sintaxis

+## Sintaxis -

{get prop() { . . . } }

+`{get prop() { . . . } }` -

Parámetros

+## Parámetros -
-
prop
-
el nombre de la propiedad a unir con la función dada
-
+- `prop` + - : el nombre de la propiedad a unir con la función dada -

Descripción

+## Descripción -

A veces es deseable permitir acceso a una propiedad que retorna un valor dinámicamente calculado, o si desea mostrar el estado de alguna variable interna sin requerir el uso de llamadas a métodos explícitos. En JavaScript, esto se puede lograr con el uso de un getter (captador). No es posible tener simultáneamente un getter ligado a una propiedad y que dicha propiedad tenga actualmente un valor, aunque es posible usar un getter junto con un setter para crear un tipo de pseudo-propiedad.

+A veces es deseable permitir acceso a una propiedad que retorna un valor dinámicamente calculado, o si desea mostrar el estado de alguna variable interna sin requerir el uso de llamadas a métodos explícitos. En JavaScript, esto se puede lograr con el uso de un getter (captador). No es posible tener simultáneamente un getter ligado a una propiedad y que dicha propiedad tenga actualmente un valor, aunque es posible usar un getter junto con un setter para crear un tipo de pseudo-propiedad. -

Tenga en cuenta lo siguiente al trabajar con la sintaxis get:

+Tenga en cuenta lo siguiente al trabajar con la sintaxis `get`: - +- Puede tener un identificador que sea un número o una cadena. +- Debe tener exactamente cero parametros (ver [Cambio ES5 incompatible: las funciones getter y setter literal deben tener ahora exactamente cero o un argumento ](http://whereswalden.com/2010/08/22/incompatible-es5-change-literal-getter-and-setter-functions-must-now-have-exactly-zero-or-one-arguments/)para mas información); +- No debe haber múltiples getters para una misma propiedad (`{ get x() { }, get x() { } }` y `{ x: ..., get x() { } }` están prohibidos). -

El getter puede ser removido usando el operador {{jsxref("Operadores/delete", "delete")}}.

+El getter puede ser removido usando el operador {{jsxref("Operadores/delete", "delete")}}. -

Ejemplos

+## Ejemplos -

Definir un getter con el operador get

+### Definir un getter con el operador `get` -

Esto creará una pseudo-propiedad latest (ver ejemplo) del objecto o que podría retornar la más reciente entrada dentro de o.log:

+Esto creará una pseudo-propiedad `latest` (ver ejemplo) del objecto `o` que podría retornar la más reciente entrada dentro de `o.log`: -
var o = {
+```js
+var o = {
   get latest () {
-    if (this.log.length > 0) {
+    if (this.log.length > 0) {
       return this.log[this.log.length - 1];
     }
     else {
@@ -54,36 +51,29 @@ original_slug: Web/JavaScript/Referencia/Funciones/get
   },
   log: []
 }
-
+``` -

Note que intentar asignar un valor a latest no lo cambiará.

+Note que intentar asignar un valor a `latest` no lo cambiará. -

Borrar un getter usando el operador delete

+### Borrar un getter usando el operador `delete` -
delete o.latest;
-
+```js +delete o.latest; +``` -

Compatibilidad de navegadores

+## Compatibilidad de navegadores -

Basado en la página de página de Robert Nyman

+Basado en la página de [página de Robert Nyman](http://robertnyman.com/javascript/javascript-getters-setters.html#regular-getters-and-setters) -

Sin soporte (notablemente en IE6-8) significa que el script lanzará un error de sintaxis.

+Sin soporte (notablemente en IE6-8) significa que el script lanzará un error de sintaxis. {{Compat("javascript.functions.get")}} -

Consulta también

+## Consulta también -
    -
  • {{jsxref("Operators/delete", "delete")}}
  • -
  • {{jsxref("Operators/set", "set")}}
  • -
  • {{jsxref("Object.defineProperty()")}}
  • -
  • {{jsxref("Object.defineGetter", "__defineGetter__")}}
  • -
  • {{jsxref("Object.defineSetter", "__defineSetter__")}}
  • -
  • Defining Getters and Setters in JavaScript Guide
  • -
- -
-

-
- -

+- {{jsxref("Operators/delete", "delete")}} +- {{jsxref("Operators/set", "set")}} +- {{jsxref("Object.defineProperty()")}} +- {{jsxref("Object.defineGetter", "__defineGetter__")}} +- {{jsxref("Object.defineSetter", "__defineSetter__")}} +- [Defining Getters and Setters](/es/JavaScript/Guide/Working_with_Objects#Defining_Getters_and_Setters "en/JavaScript/Guide/Working with Objects#Defining Getters and Setters") in JavaScript Guide diff --git a/files/es/web/javascript/reference/functions/rest_parameters/index.md b/files/es/web/javascript/reference/functions/rest_parameters/index.md index 54f24a10f2d3c0..4f72d4351c06f3 100644 --- a/files/es/web/javascript/reference/functions/rest_parameters/index.md +++ b/files/es/web/javascript/reference/functions/rest_parameters/index.md @@ -8,28 +8,30 @@ tags: translation_of: Web/JavaScript/Reference/Functions/rest_parameters original_slug: Web/JavaScript/Referencia/Funciones/parametros_rest --- -
{{jsSidebar("Functions")}}
+{{jsSidebar("Functions")}} -

La sintaxis de los parámetros rest nos permiten representar un número indefinido de argumentos como un array.

+La sintaxis de los **parámetros rest** nos permiten representar un número indefinido de argumentos como un array. -

{{EmbedInteractiveExample("pages/js/functions-restparameters.html")}}

+{{EmbedInteractiveExample("pages/js/functions-restparameters.html")}} -

La fuente interactiva de este ejemplo es almacenado en un repositorio de GitHub. Si a ti te gustaría contribuir al proyecto de ejemplos interactivos, por favor clona este repositorio https://github.com/mdn/interactive-examples y envíanos un pull-request.

+La fuente interactiva de este ejemplo es almacenado en un repositorio de GitHub. Si a ti te gustaría contribuir al proyecto de ejemplos interactivos, por favor clona este repositorio y envíanos un pull-request. -

Sintaxis

+## Sintaxis -
function(a, b, ...theArgs) {
+```js
+function(a, b, ...theArgs) {
   // ...
 }
-
+``` -

Descripción

+## Descripción -

El último parámetro de una función se puede prefijar con ..., lo que hará que todos los argumentos restantes (suministrados por el usuario) se coloquen dentro de un array de javascript "estándar".

+El último parámetro de una función se puede prefijar con `...`, lo que hará que todos los argumentos restantes (suministrados por el usuario) se coloquen dentro de un array de javascript "estándar". -

Sólo el último parámetro puede ser un "parámetro rest".

+Sólo el último parámetro puede ser un "parámetro rest". -
function myFun(a, b, ...manyMoreArgs) {
+```js
+function myFun(a, b, ...manyMoreArgs) {
   console.log("a", a);
   console.log("b", b);
   console.log("manyMoreArgs", manyMoreArgs);
@@ -41,23 +43,22 @@ myFun("one", "two", "three", "four", "five", "six");
 // a, one
 // b, two
 // manyMoreArgs, [three, four, five, six]
-
+``` -

Diferencia entre los parámetros rest y el objeto arguments

+### Diferencia entre los parámetros rest y el objeto `arguments` -

Hay tres principales diferencias entre los parámetros rest y el objeto arguments:

+Hay tres principales diferencias entre los parámetros rest y el objeto [`arguments`](/es/docs/Web/JavaScript/Reference/Functions/arguments "arguments"): -
    -
  • los parámetros rest son sólo aquellos a los que no se les ha asignado un nombre, mientras que el objeto arguments contiene todos los argumentos que se le han pasado a la función;
  • -
  • el objeto arguments no es un array real, mientras que los parámetros rest son instancias de Array , lo que significa que lo los métodos como sort, map, forEach o pop pueden aplicarse directamente;
  • -
  • el objeto arguments tiene una funcionalidad adicional específica para sí mismo (como la propiedad callee).
  • -
+- los parámetros rest son sólo aquellos a los que no se les ha asignado un nombre, mientras que el objeto `arguments` contiene todos los argumentos que se le han pasado a la función; +- el objeto `arguments` no es un array real, mientras que los parámetros rest son instancias de [`Array`](/es/docs/Web/JavaScript/Reference/Global_Objects/Array "Array") , lo que significa que lo los métodos como [`sort`](/es/docs/Web/JavaScript/Reference/Global_Objects/Array/sort "Array sort method"), [`map`](/es/docs/Web/JavaScript/Reference/Global_Objects/Array/map "Array map method"), [`forEach`](/es/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach "Array forEach method") o [`pop`](/es/docs/Web/JavaScript/Reference/Global_Objects/Array/pop "Array pop method") pueden aplicarse directamente; +- el objeto `arguments` tiene una funcionalidad adicional específica para sí mismo (como la propiedad `callee`). -

De argumentos a array

+### De argumentos a array -

Los parámetros rest han sido agregados para reducir el código repetitivo que se usaba en los parámetros.

+Los parámetros rest han sido agregados para reducir el código repetitivo que se usaba en los parámetros. -
// Antes de los parámetros rest, "arguments" se podía convertir en un array usando:
+```js
+// Antes de los parámetros rest, "arguments" se podía convertir en un array usando:
 
 function f(a, b) {
 
@@ -76,29 +77,31 @@ function f(a, b) {
 function f(...args) {
   let normalArray = args
   let first = normalArray.shift() // OK, gives the first argument
-}
+} +``` -

Desestructuración de los parametros rest

+### Desestructuración de los parametros rest -

Los parámetros rest pueden ser desestructurados, eso significa que sus datos pueden ser desempaquetados dentro de distintas variables. Ver Destructuring assignment.

+Los parámetros rest pueden ser desestructurados, eso significa que sus datos pueden ser desempaquetados dentro de distintas variables. Ver [Destructuring assignment](/es/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment). -
function f(...[a, b, c]) {
-  return a + b + c;
-}
+    function f(...[a, b, c]) {
+      return a + b + c;
+    }
 
-f(1)          // NaN (b y c son indefinidos)
-f(1, 2, 3)    // 6
-f(1, 2, 3, 4) // 6 (el cuarto parámetro no está desestructurado)
+ f(1) // NaN (b y c son indefinidos) + f(1, 2, 3) // 6 + f(1, 2, 3, 4) // 6 (el cuarto parámetro no está desestructurado) -

Ejemplos

+## Ejemplos -

Usando parámetros rest

+### Usando parámetros rest -

En este ejemplo, el primer argumento es mapeado con 'a' y el segundo con 'b', entonces, esos argumentos nombrados, son usados normalmente

+En este ejemplo, el primer argumento es mapeado con 'a' y el segundo con 'b', entonces, esos argumentos nombrados, son usados normalmente -

De todas formas, el tercer argumento, manyMoreArgs, será un array que contendrá tantos argumentos como el usuario incluya (3er, 4to, 5to ...).

+De todas formas, el tercer argumento, `manyMoreArgs`, será un array que contendrá tantos argumentos como el usuario incluya (3er, 4to, 5to ...). -
function myFun(a, b, ...manyMoreArgs) {
+```js
+function myFun(a, b, ...manyMoreArgs) {
   console.log("a", a)
   console.log("b", b)
   console.log("manyMoreArgs", manyMoreArgs)
@@ -108,45 +111,52 @@ myFun("one", "two", "three", "four", "five", "six")
 
 // a, one
 // b, two
-// manyMoreArgs, [three, four, five, six]
+// manyMoreArgs, [three, four, five, six] +``` -

Debajo... incluso si hay solo un valor, el ultimo argumento seguirá siendo colocado dentro de un array.

+Debajo... incluso si hay solo un valor, el ultimo argumento seguirá siendo colocado dentro de un array. -
// usando la misma definición de función del ejemplo anterior
+```js
+// usando la misma definición de función del ejemplo anterior
 myFun("one", "two", "three")
 
 // a, one
 // b, two
-// manyMoreArgs, [three]
+// manyMoreArgs, [three] +``` -

Debajo, el tercer argumento no esta provisto, pero manyMoreArgs continúa siendo un array (aunque uno vacío).

+Debajo, el tercer argumento no esta provisto, pero `manyMoreArgs` continúa siendo un array (aunque uno vacío). -
//usando la misma definición de función del ejemplo anterior
+```js
+//usando la misma definición de función del ejemplo anterior
 
 myFun("one", "two")
 
 // a, one
 // b, two
-// manyMoreArgs, []
+// manyMoreArgs, [] +``` -

Argument length

+### Argument length -

Puesto que theArgs es un array, su tamaño (un conteo de sus elementos) es dado por la propiedad length :

+Puesto que `theArgs` es un array, su tamaño (un conteo de sus elementos) es dado por la propiedad `length` : -
function fun1(...theArgs) {
+```js
+function fun1(...theArgs) {
   console.log(theArgs.length);
 }
 
 fun1();  // 0
 fun1(5); // 1
 fun1(5, 6, 7); // 3
-
+``` -

Ordinary parameter and rest parameters

+### Ordinary parameter and rest parameters -

En el siguiente ejemplo, se usa un parámetro rest para agrupar dentro de un array a todos los argumentos despues del primero. Luego cada uno es multiplicado por el primero y el arreglo es retornado:

+En el siguiente ejemplo, se usa un parámetro rest para agrupar dentro de un array a todos los argumentos despues del primero. Luego cada uno es multiplicado por el primero y el arreglo es retornado: -
function multiply(multiplier, ...theArgs) {
+```js
+function multiply(multiplier, ...theArgs) {
   return theArgs.map(function (element) {
     return multiplier * element;
   });
@@ -154,11 +164,12 @@ fun1(5, 6, 7); // 3
 
 let arr = multiply(2, 1, 2, 3);
 console.log(arr); // [2, 4, 6]
-
+``` -

El siguiente ejemplo muestra que se puede usar los métodos de Array en los parámetros rest , pero no en el objeto arguments:

+El siguiente ejemplo muestra que se puede usar los métodos de `Array` en los parámetros rest , pero no en el objeto `arguments`: -
function sortRestArgs(...theArgs) {
+```js
+function sortRestArgs(...theArgs) {
   var sortedArgs = theArgs.sort();
   return sortedArgs;
 }
@@ -172,44 +183,27 @@ function sortArguments() {
 
 // lanza un TypeError: arguments.sort is not a function
 console.log(sortArguments(5,3,7,1));
-
- -

Para poder usar los métodos de Array en el objeto arguments, se debe convertir a un Array primero.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-function-definitions', 'Function Definitions')}}{{Spec2('ES6')}}definción inicial.
{{SpecName('ESDraft', '#sec-function-definitions', 'Function Definitions')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en Navegadores

+``` + +Para poder usar los métodos de `Array` en el objeto `arguments`, se debe convertir a un `Array` primero. + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------ | +| {{SpecName('ES6', '#sec-function-definitions', 'Function Definitions')}} | {{Spec2('ES6')}} | definción inicial. | +| {{SpecName('ESDraft', '#sec-function-definitions', 'Function Definitions')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en Navegadores {{Compat("javascript.functions.rest_parameters")}} -

Ver también

- - +## Ver también + +- [Spread Operator](/es/docs/Web/JavaScript/Reference/Operators/Spread_operator "spread operator") +- [Arguments object](/es/docs/Web/JavaScript/Reference/Functions/arguments "arguments") +- [Array](/es/docs/Web/JavaScript/Reference/Global_Objects/Array "Arreglos") +- [Functions](/es/docs/Web/JavaScript/Reference/Functions "Functions and function scope") +- [Original proposal at ecmascript.org](http://wiki.ecmascript.org/doku.php?id=harmony:rest_parameters) +- [JavaScript arguments object and beyond](http://javascriptweblog.wordpress.com/2011/01/18/javascripts-arguments-object-and-beyond/) +- [Destructuring assignment](/es/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment) diff --git a/files/es/web/javascript/reference/functions/set/index.md b/files/es/web/javascript/reference/functions/set/index.md index 811a57670d1ed2..21a72fcca873cf 100644 --- a/files/es/web/javascript/reference/functions/set/index.md +++ b/files/es/web/javascript/reference/functions/set/index.md @@ -4,51 +4,46 @@ slug: Web/JavaScript/Reference/Functions/set translation_of: Web/JavaScript/Reference/Functions/set original_slug: Web/JavaScript/Referencia/Funciones/set --- -
{{jsSidebar("Funciones")}}
+{{jsSidebar("Funciones")}} -

La sintaxis set asocia la propiedad de un objeto a una función que será llamada cuando haya un intento de asignar valor a esa propiedad.

+La sintaxis **`set`** asocia la propiedad de un objeto a una función que será llamada cuando haya un intento de asignar valor a esa propiedad. -

Sintaxis

+## Sintaxis -
{set prop(val) { . . . }}
-{set [expression](val) { . . . }}
+ {set prop(val) { . . . }} + {set [expression](val) { . . . }} -

Parámetros

+### Parámetros -
-
prop
-
El nombre de la propiedad a asociar con la función dada.
-
+- _`prop`_ + - : El nombre de la propiedad a asociar con la función dada. -
-
val
-
Un alias para la variable que contiene el valor a asignar a la propiedad.
-
expression
-
A partir de ECMAScript 2015, se puede también usar expresiones para nombres de propiedades computados para asociar a la función dada.
-
+ -

Descripción

+- _`val`_ + - : Un alias para la variable que contiene el valor a asignar a la propiedad. +- _`expression`_ + - : A partir de ECMAScript 2015, se puede también usar expresiones para nombres de propiedades computados para asociar a la función dada. -

En JavaScript, un setter puede ser usado para ejecutar una función donde sea que una propiedad se intente cambiar. Los setters son regularmente usados en conjunto con getters para crear un tipo de pseudo-propiedad. No es posible tener simultáneamente un setter en una propiedad que ya tiene un valor.

+## Descripción -

Tenga en cuenta lo siguiente al trabajar con setters:

+En JavaScript, un setter puede ser usado para ejecutar una función donde sea que una propiedad se intente cambiar. Los setters son regularmente usados en conjunto con getters para crear un tipo de pseudo-propiedad. No es posible tener simultáneamente un setter en una propiedad que ya tiene un valor. -
- -
+Tenga en cuenta lo siguiente al trabajar con setters: -

Ejemplos

+- Puede tener un identificador ya sea number o string; +- Debe tener exactamente un parámentro (ver [Incompatible ES5 change: literal getter and setter functions must now have exactly zero or one arguments](http://whereswalden.com/2010/08/22/incompatible-es5-change-literal-getter-and-setter-functions-must-now-have-exactly-zero-or-one-arguments/) para más información); +- No debe aparecer en un objeto de notación literal con otro `set` o con otra entrada de datos con la misma propiedad. + ( `{ set x(v) { }, set x(v) { } }` y `{ x: ..., set x(v) { } }` están prohibidos ) -

Definiendo un setter en el inicializador de nuevos objetos

+## Ejemplos -

En el siguiente ejemplo definimos una pseudo-propiedad actual al objeto lenguaje. Cuando se le asigne un valor a actual, actualiza log con ese valor:

+### Definiendo un setter en el inicializador de nuevos objetos -
var lenguaje = {
+En el siguiente ejemplo definimos una pseudo-propiedad `actual` al objeto `lenguaje`. Cuando se le asigne un valor a `actual`, actualiza `log` con ese valor:
+
+```js
+var lenguaje = {
   set actual(mensaje) {
     this.log.push(mensaje);
   },
@@ -59,39 +54,39 @@ console.log(lenguaje.log); // ['ES']
 
 lenguaje.actual='FR';
 console.log(lenguaje.log); // ['ES', 'FR']
-
- - +``` -

Note que actual no está definido y cualquier intento de accederlo devolverá undefined.

+Note que `actual` no está definido y cualquier intento de accederlo devolverá `undefined`. -

Eliminando un setter con el operador delete

+### Eliminando un setter con el operador `delete` -

Si desea eliminar el setter, puede simplemente aplicar delete en él:

+Si desea eliminar el setter, puede simplemente aplicar [`delete`](/es/docs/Web/JavaScript/Referencia/Operadores/delete "en-US/docs/JavaScript/Reference/Operators/Special/delete") en él: -
delete lenguaje.actual;
-
+```js +delete lenguaje.actual; +``` -

Definiendo un setter en un objecto existente usando defineProperty

+### Definiendo un setter en un objecto existente usando `defineProperty` -

Para añadir un setter a un objeto existente, use {{jsxref("Object.defineProperty()")}}

+Para añadir un setter a un objeto _existente_,\_ \_use {{jsxref("Object.defineProperty()")}} -
consr o = {a: 0};
+```js
+consr o = {a: 0};
 
 Object.defineProperty(o, 'b', {
   set: function (x) { this.a = x / 2; }
 });
 
 o.b = 10; // Ejecuta el setter, el cual asigna 10 / 2 (5) a la propiedad 'a'
-console.log(o.a) // 5
+console.log(o.a) // 5 +``` -

Usando un nombre de propiedad computado

+### Usando un nombre de propiedad computado -
-

Nota: Propiedades computadas son 'experimental technology', parte de la propuesta para ECMAScript 6, y no está soportado en todos los navegadores. Dará error de sintaxis en entornos no soportados.

-
+> **Nota:** Propiedades computadas son 'experimental technology'_,_ parte de la propuesta para ECMAScript 6, y no está soportado en todos los navegadores. Dará error de sintaxis en entornos no soportados. -
const expr = 'foo';
+```js
+const expr = 'foo';
 
 var obj = {
   baz: 'bar',
@@ -101,53 +96,30 @@ var obj = {
 console.log(obj.baz); // "bar"
 obj.foo = "baz";      // ejecuta el setter
 console.log(obj.baz); // "baz"
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-11.1.5', 'Object Initializer')}}{{Spec2('ES5.1')}}Definición inicial.
{{SpecName('ES6', '#sec-method-definitions', 'Method definitions')}}{{Spec2('ES6')}}Se añaden las propiedades computadas.
{{SpecName('ESDraft', '#sec-method-definitions', 'Method definitions')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Specification | Status | Comment | +| ------------------------------------------------------------------------------------------------ | ---------------------------- | ------------------------------------- | +| {{SpecName('ES5.1', '#sec-11.1.5', 'Object Initializer')}} | {{Spec2('ES5.1')}} | Definición inicial. | +| {{SpecName('ES6', '#sec-method-definitions', 'Method definitions')}} | {{Spec2('ES6')}} | Se añaden las propiedades computadas. | +| {{SpecName('ESDraft', '#sec-method-definitions', 'Method definitions')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.functions.set")}} -

Notas específicas para SpiderMonkey-specific

+## Notas específicas para SpiderMonkey-specific -
    -
  • Comenzando con JavaScript 1.8.1, los setters ya no son llamados cuando se definen las propiedades en los inicializadores de objetos y arrays.
  • -
  • De SpiderMonkey 38 en adelante, un setter con un {{jsxref("Functions/rest_parameters", "rest parameter", "", 1)}} es un {{jsxref("SyntaxError")}} conforme a la especificación ES6.
  • -
+- Comenzando con[ JavaScript 1.8.1](/es/docs/Web/JavaScript/New_in_JavaScript/1.8.1), los setters ya no son llamados cuando se definen las propiedades en los inicializadores de objetos y arrays. +- De SpiderMonkey 38 en adelante, un setter con un {{jsxref("Functions/rest_parameters", "rest parameter", "", 1)}} es un {{jsxref("SyntaxError")}} conforme a la especificación ES6. -

Ver también

+## Ver también -
    -
  • getter
  • -
  • {{jsxref("Operators/delete", "delete")}}
  • -
  • {{jsxref("Object.defineProperty()")}}
  • -
  • {{jsxref("Object.defineGetter", "__defineGetter__")}}
  • -
  • {{jsxref("Object.defineSetter", "__defineSetter__")}}
  • -
  • Definiendo Getters y Setters en la Guía JavaScript
  • -
+- [getter](/es/docs/Web/JavaScript/Reference/Functions/get) +- {{jsxref("Operators/delete", "delete")}} +- {{jsxref("Object.defineProperty()")}} +- {{jsxref("Object.defineGetter", "__defineGetter__")}} +- {{jsxref("Object.defineSetter", "__defineSetter__")}} +- [Definiendo Getters y Setters](/es/docs/Web/JavaScript/Guide/Working_with_Objects#Defining_getters_and_setters) en la Guía JavaScript diff --git a/files/es/web/javascript/reference/global_objects/aggregateerror/index.md b/files/es/web/javascript/reference/global_objects/aggregateerror/index.md index 35d70202d14395..0c32008fd8b902 100644 --- a/files/es/web/javascript/reference/global_objects/aggregateerror/index.md +++ b/files/es/web/javascript/reference/global_objects/aggregateerror/index.md @@ -10,43 +10,41 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/AggregateError original_slug: Web/JavaScript/Referencia/Objetos_globales/AggregateError --- -
{{JSRef}}
+{{JSRef}} -

El objeto AggregateError representa un error cuando se deben agrupar varios errores en un solo error. Se lanza cuando una operación necesita informar de varios errores, por ejemplo, {{JSxRef("Promise.any()")}}, cuando todas las promesas que se le pasan son rechazadas.

+El objeto **`AggregateError`** representa un error cuando se deben agrupar varios errores en un solo error. Se lanza cuando una operación necesita informar de varios errores, por ejemplo, {{JSxRef("Promise.any()")}}, cuando todas las promesas que se le pasan son rechazadas. -

Constructor

+## Constructor -
-
{{JSxRef("Global_Objects/AggregateError/AggregateError", "AggregateError()")}}
-
Crea un nuevo objeto AggregateError.
-
+- {{JSxRef("Global_Objects/AggregateError/AggregateError", "AggregateError()")}} + - : Crea un nuevo objeto `AggregateError`. -

Propiedades de la instancia

+## Propiedades de la instancia -
-
{{JSxRef("Error.prototype.message", "AggregateError.prototype.message")}}
-
Mensaje de error, el valor predeterminado es "" (la cadena vacía).
-
{{JSxRef("Error.prototype.name", "AggregateError.prototype.name")}}
-
Nombre del error, el valor predeterminado es AggregateError.
-
+- {{JSxRef("Error.prototype.message", "AggregateError.prototype.message")}} + - : Mensaje de error, el valor predeterminado es `""` (la cadena vacía). +- {{JSxRef("Error.prototype.name", "AggregateError.prototype.name")}} + - : Nombre del error, el valor predeterminado es `AggregateError`. -

Ejemplos

+## Ejemplos -

Capturar un error agregado

+### Capturar un error agregado -
Promise.any([
+```js
+Promise.any([
   Promise.reject(new Error("algún error")),
-]).catch(e => {
+]).catch(e => {
   console.log(e instanceof AggregateError); // true
   console.log(e.message);                   // "Todas las promesas rechazadas"
   console.log(e.name);                      // "AggregateError"
   console.log(e.errors);                    // [ Error: "algún error" ]
 });
-
+``` -

Crear un AggregateError

+### Crear un `AggregateError` -
try {
+```js
+try {
   throw new AggregateError([
     new Error("algún error"),
   ], 'Hola');
@@ -56,33 +54,18 @@ original_slug: Web/JavaScript/Referencia/Objetos_globales/AggregateError
   console.log(e.name);                      // "AggregateError"
   console.log(e.errors);                    // [ Error: "algún error" ]
 }
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - -
Especificación
{{SpecName('Promise.any', '#sec-aggregate-error-objects', 'AggregateError')}}
+| Especificación | +| -------------------------------------------------------------------------------------------------------- | +| {{SpecName('Promise.any', '#sec-aggregate-error-objects', 'AggregateError')}} | -

Compatibilidad del navegador

+## Compatibilidad del navegador -
+{{Compat("javascript.builtins.AggregateError")}} +## Ve también -

{{Compat("javascript.builtins.AggregateError")}}

-
- -

Ve también

- -
    -
  • {{JSxRef("Error")}}
  • -
+- {{JSxRef("Error")}} diff --git a/files/es/web/javascript/reference/global_objects/array/@@iterator/index.md b/files/es/web/javascript/reference/global_objects/array/@@iterator/index.md index 29fe137a593b30..85c675bda25596 100644 --- a/files/es/web/javascript/reference/global_objects/array/@@iterator/index.md +++ b/files/es/web/javascript/reference/global_objects/array/@@iterator/index.md @@ -12,79 +12,60 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/@@iterator original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/@@iterator --- -
{{JSRef}}
+{{JSRef}} -

El valor inicial de la propiedad @@iterator es el mismo objeto de función que el valor inicial de la propiedad {{jsxref("Array.prototype.values()", "values()")}}.

+El valor inicial de la propiedad **`@@iterator`** es el mismo objeto de función que el valor inicial de la propiedad {{jsxref("Array.prototype.values()", "values()")}}. -

Sintaxis

+## Sintaxis -
arr[Symbol.iterator]()
+ arr[Symbol.iterator]() -

Valor de retorno

+### Valor de retorno -

El valor inicial dado por el iterador {{jsxref("Array.prototype.values()", "values()")}}. Por defecto, usar arr[Symbol.iterator] devolverá la función {{jsxref("Array.prototype.values()", "values()")}}.

+El valor inicial dado por el **iterador** {{jsxref("Array.prototype.values()", "values()")}}. Por defecto, usar `arr[Symbol.iterator]` devolverá la función {{jsxref("Array.prototype.values()", "values()")}}. -

Ejemplos

+## Ejemplos -

Iteración usando el bucle for...of

+### Iteración usando el bucle `for...of` -
var arr = ['w', 'y', 'k', 'o', 'p'];
+```js
+var arr = ['w', 'y', 'k', 'o', 'p'];
 var eArr = arr[Symbol.iterator]();
 // nuestro navegador debe ser compatible con el bucle for..of
 // y variables let-scoped en bucles for
 for (let letter of eArr) {
   console.log(letter);
 }
-
+``` -

Iteración alternativa

+### Iteración alternativa -
var arr = ['w', 'y', 'k', 'o', 'p'];
+```js
+var arr = ['w', 'y', 'k', 'o', 'p'];
 var eArr = arr[Symbol.iterator]();
 console.log(eArr.next().value); // w
 console.log(eArr.next().value); // y
 console.log(eArr.next().value); // k
 console.log(eArr.next().value); // o
 console.log(eArr.next().value); // p
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES2015', '#sec-array.prototype-@@iterator', 'Array.prototype[@@iterator]()')}}{{Spec2('ES2015')}}Definición inicial..
{{SpecName('ESDraft', '#sec-array.prototype-@@iterator', 'Array.prototype[@@iterator]()')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
- - -

{{Compat("javascript.builtins.Array.@@iterator")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Array.prototype.keys()")}}
  • -
  • {{jsxref("Array.prototype.entries()")}}
  • -
  • {{jsxref("Array.prototype.forEach()")}}
  • -
  • {{jsxref("Array.prototype.every()")}}
  • -
  • {{jsxref("Array.prototype.some()")}}
  • -
  • {{jsxref("Array.prototype.values()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------------------ | ---------------------------- | -------------------- | +| {{SpecName('ES2015', '#sec-array.prototype-@@iterator', 'Array.prototype[@@iterator]()')}} | {{Spec2('ES2015')}} | Definición inicial.. | +| {{SpecName('ESDraft', '#sec-array.prototype-@@iterator', 'Array.prototype[@@iterator]()')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.@@iterator")}} + +## Ver también + +- {{jsxref("Array.prototype.keys()")}} +- {{jsxref("Array.prototype.entries()")}} +- {{jsxref("Array.prototype.forEach()")}} +- {{jsxref("Array.prototype.every()")}} +- {{jsxref("Array.prototype.some()")}} +- {{jsxref("Array.prototype.values()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/@@species/index.md b/files/es/web/javascript/reference/global_objects/array/@@species/index.md index 64d64a517370fa..2c8a78740351f6 100644 --- a/files/es/web/javascript/reference/global_objects/array/@@species/index.md +++ b/files/es/web/javascript/reference/global_objects/array/@@species/index.md @@ -9,69 +9,51 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/@@species original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/@@species --- -
{{JSRef}}
+{{JSRef}} -

La propiedad de acceso Array[@@species] devuelve el constructor de Array.

+La propiedad de acceso **`Array[@@species]`** devuelve el constructor de `Array`. -

Sintaxis

+## Sintaxis -
Array[Symbol.species]
-
+ Array[Symbol.species] -

Valor de retorno

+### Valor de retorno -

El constructor {{jsxref("Array")}}.

+El constructor {{jsxref("Array")}}. -

Descripción

+## Descripción -

La propiedad de acceso species devuelve el constructor predeterminado para objetos Array. Los constructores de subclase pueden anularlo para cambiar la asignación del constructor.

+La propiedad de acceso `species` devuelve el constructor predeterminado para objetos `Array`. Los constructores de subclase pueden anularlo para cambiar la asignación del constructor. -

Ejemplos

+## Ejemplos -

La propiedad species devuelve la función de constructor predeterminada, que es el constructor Array para objetos Array:

+La propiedad `species` devuelve la función de constructor predeterminada, que es el constructor `Array` para objetos `Array`: -
Array[Symbol.species]; // function Array()
+```js +Array[Symbol.species]; // function Array() +``` -

In a derived collection object (e.g. your custom array MyArray), the MyArray species is the MyArray constructor. However, you might want to overwrite this, in order to return parent Array objects in your derived class methods:

+In a derived collection object (e.g. your custom array `MyArray`), the `MyArray` species is the `MyArray` constructor. However, you might want to overwrite this, in order to return parent `Array` objects in your derived class methods: -
class MyArray extends Array {
+```js
+class MyArray extends Array {
   // Overwrite MyArray species to the parent Array constructor
   static get [Symbol.species]() { return Array; }
-}
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-get-array-@@species', 'get Array [ @@species ]')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-get-array-@@species', 'get Array [ @@species ]')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
- - -

{{Compat("javascript.builtins.Array.@@species")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Array")}}
  • -
  • {{jsxref("Symbol.species")}}
  • -
+} +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-get-array-@@species', 'get Array [ @@species ]')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-get-array-@@species', 'get Array [ @@species ]')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.@@species")}} + +## Ver también + +- {{jsxref("Array")}} +- {{jsxref("Symbol.species")}} diff --git a/files/es/web/javascript/reference/global_objects/array/@@unscopables/index.md b/files/es/web/javascript/reference/global_objects/array/@@unscopables/index.md index d838049fdfcfef..350a396411d341 100644 --- a/files/es/web/javascript/reference/global_objects/array/@@unscopables/index.md +++ b/files/es/web/javascript/reference/global_objects/array/@@unscopables/index.md @@ -10,29 +10,28 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/@@unscopables original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/@@unscopables --- -
{{JSRef}}
+{{JSRef}} -

La propiedad de símbolo @@unscopable contiene nombres de propiedad que no se incluyeron en el estándar ECMAScript antes de la versión ES2015. Estas propiedades se excluyen de los enlaces de declaración with.

+La propiedad de símbolo **`@@unscopable`** contiene nombres de propiedad que no se incluyeron en el estándar ECMAScript antes de la versión ES2015. Estas propiedades se excluyen de los enlaces de declaración [`with`](/es/docs/Web/JavaScript/Reference/Statements/with). -

Sintaxis

+## Sintaxis -
arr[Symbol.unscopables]
+ arr[Symbol.unscopables] -

Descripción

+## Descripción -

+Las propiedades de matriz predeterminadas que se excluyen de los enlaces `with` son: copyWithin, entries, fill, find, findIndex, includes, keys, y values. -

Las propiedades de matriz predeterminadas que se excluyen de los enlaces with son: copyWithin, entries, fill, find, findIndex, includes, keys, y values.

+Consulte {{jsxref("Symbol.unscopables")}} para saber cómo configurar `unscopables` para sus propios objetos. -

Consulte {{jsxref("Symbol.unscopables")}} para saber cómo configurar unscopables para sus propios objetos.

+{{js_property_attributes(0,0,1)}} -

{{js_property_attributes(0,0,1)}}

+## Ejemplos -

Ejemplos

+El siguiente código funciona bien en ES5 y más abajo. Sin embargo, en ECMAScript 2015 y posterior, se introdujo el método {{jsxref("Array.prototype.keys()")}}. Eso significa que dentro de los entornos `with`, las "keys" ahora serían el método y no la variable. Aquí es donde entra en juego la propiedad de símbolo `@@unscopables` `Array.prototype[@@unscopables]` incorporada y evita que algunos de los métodos Array tengan un alcance en la instrucción `with`. -

El siguiente código funciona bien en ES5 y más abajo. Sin embargo, en ECMAScript 2015 y posterior, se introdujo el método {{jsxref("Array.prototype.keys()")}}. Eso significa que dentro de los entornos with, las "keys" ahora serían el método y no la variable. Aquí es donde entra en juego la propiedad de símbolo @@unscopables Array.prototype[@@unscopables] incorporada y evita que algunos de los métodos Array tengan un alcance en la instrucción with.

- -
var keys = [];
+```js
+var keys = [];
 
 with (Array.prototype) {
   keys.push('something');
@@ -40,40 +39,20 @@ with (Array.prototype) {
 
 Object.keys(Array.prototype[Symbol.unscopables]);
 // ["copyWithin", "entries", "fill", "find", "findIndex",
-//  "includes", "keys", "values"]
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES2015', '#sec-array.prototype-@@unscopables', 'Array.prototype[@@unscopables]')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-array.prototype-@@unscopables', 'Array.prototype[@@unscopables]')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
- - -

{{Compat("javascript.builtins.Array.@@unscopables")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Symbol.unscopables")}}
  • -
+// "includes", "keys", "values"] +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-array.prototype-@@unscopables', 'Array.prototype[@@unscopables]')}} | {{Spec2('ES2015')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-array.prototype-@@unscopables', 'Array.prototype[@@unscopables]')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.@@unscopables")}} + +## Ver también + +- {{jsxref("Symbol.unscopables")}} diff --git a/files/es/web/javascript/reference/global_objects/array/entries/index.md b/files/es/web/javascript/reference/global_objects/array/entries/index.md index 2d7878f2b2ad0b..1f4bc53658f067 100644 --- a/files/es/web/javascript/reference/global_objects/array/entries/index.md +++ b/files/es/web/javascript/reference/global_objects/array/entries/index.md @@ -12,29 +12,24 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/entries original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/entries --- -
{{JSRef}}
+{{JSRef}}El método **`entries()`** retorna un nuevo objeto **`Array Iterator`** que contiene los pares clave/valor para cada índice de la matriz. -
El método entries() retorna un nuevo objeto Array Iterator que contiene los pares clave/valor para cada índice de la matriz.
+{{EmbedInteractiveExample("pages/js/array-entries.html")}} -
+## Sintaxis -
-

{{EmbedInteractiveExample("pages/js/array-entries.html")}}

-
+ arr.entries() -

Sintaxis

+### Valor de retorno -
arr.entries()
+Un nuevo objeto iterador {{jsxref("Array")}}. -

Valor de retorno

+## Ejemplos -

Un nuevo objeto iterador {{jsxref("Array")}}.

+### Usando un bucle [for…of](/es/docs/Web/JavaScript/Reference/Statements/for...of) -

Ejemplos

- -

Usando un bucle for…of

- -
var a = ['a', 'b', 'c'];
+```js
+var a = ['a', 'b', 'c'];
 var iterator = a.entries();
 
 for (let e of iterator) {
@@ -42,46 +37,26 @@ for (let e of iterator) {
 }
 // [0, 'a']
 // [1, 'b']
-// [2, 'c']
- -

Especificaciones

+// [2, 'c'] +``` - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
{{SpecName('ES6', '#sec-array.prototype.entries', 'Array.prototype.entries')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-array.prototype.entries', 'Array.prototype.entries')}}{{Spec2('ESDraft')}}
+## Especificaciones -

Compatibilidad con navegadores

+| Especificación | Estado | Comentarios | +| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-array.prototype.entries', 'Array.prototype.entries')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-array.prototype.entries', 'Array.prototype.entries')}} | {{Spec2('ESDraft')}} | | -
-

{{Compat("javascript.builtins.Array.entries")}}

-
+## Compatibilidad con navegadores -
+{{Compat("javascript.builtins.Array.entries")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Array.prototype.keys()")}}
  • -
  • {{jsxref("Array.prototype.values()")}}
  • -
  • {{jsxref("Array.prototype.forEach()")}}
  • -
  • {{jsxref("Array.prototype.every()")}}
  • -
  • {{jsxref("Array.prototype.some()")}}
  • -
  • for...of
  • -
  • Protocolos de iteración
  • -
+- {{jsxref("Array.prototype.keys()")}} +- {{jsxref("Array.prototype.values()")}} +- {{jsxref("Array.prototype.forEach()")}} +- {{jsxref("Array.prototype.every()")}} +- {{jsxref("Array.prototype.some()")}} +- [for...of](/es/docs/Web/JavaScript/Reference/Statements/for...of) +- [Protocolos de iteración](/es/docs/Web/JavaScript/Reference/Iteration_protocols) diff --git a/files/es/web/javascript/reference/global_objects/array/fill/index.md b/files/es/web/javascript/reference/global_objects/array/fill/index.md index 7b57f7209e57c4..87b044de8cc4a3 100644 --- a/files/es/web/javascript/reference/global_objects/array/fill/index.md +++ b/files/es/web/javascript/reference/global_objects/array/fill/index.md @@ -11,44 +11,41 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/fill original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/fill --- -
{{JSRef}}
+{{JSRef}} -

El método fill() cambia todos los elementos en un arreglo por un valor estático, desde el índice start (por defecto 0) hasta el índice end (por defecto array.length). Devuelve el arreglo modificado.

+El método **`fill()`** cambia todos los elementos en un arreglo por un valor estático, desde el índice start (por defecto 0) hasta el índice end (por defecto `array.length`). Devuelve el arreglo modificado. -

{{EmbedInteractiveExample("pages/js/array-fill.html")}}

+{{EmbedInteractiveExample("pages/js/array-fill.html")}} -

Sintaxis

+## Sintaxis -
arr.fill(value[, start = 0[, end = this.length]])
+ arr.fill(value[, start = 0[, end = this.length]]) -

Parámetros

+### Parámetros -
-
value
-
Valor con el que se va a rellenar el arreglo. (Nótese que todos los elementos en el arreglo tendrán este mismo valor).
-
start {{optional_inline}}
-
Índice inicial, por defecto 0.
-
end {{optional_inline}}
-
Índice final, por defecto this.length.
-
+- `value` + - : Valor con el que se va a rellenar el arreglo. (Nótese que todos los elementos en el arreglo tendrán este mismo valor). +- `start` {{optional_inline}} + - : Índice inicial, por defecto 0. +- `end` {{optional_inline}} + - : Índice final, por defecto `this.length`. -

Valor de retorno

+### Valor de retorno -

El arreglo modificado, rellenado con valor.

+El arreglo modificado, rellenado con `valor`. -

Descripción

+## Descripción -
    -
  • Si start es negativo, se interpreta como array.length + start.
  • -
  • Si end es negativo, se interpreta como array.length + end.
  • -
  • fill es genérico de forma intencional: no requiere que su valor this sea un objeto Array.
  • -
  • fill es un método mutador: modifica el arreglo sobre el que se invoca; no devuelve una copia de éste.
  • -
  • Si el primer parámetro es un objeto, copia su referencia y rellena el arreglo con referencias a dicho objeto.
  • -
+- Si `start` es negativo, se interpreta como `array.length + start`. +- Si `end` es negativo, se interpreta como `array.length + end`. +- `fill` es genérico de forma intencional: no requiere que su valor `this` sea un objeto `Array`. +- `fill` es un método mutador: modifica el arreglo sobre el que se invoca; no devuelve una copia de éste. +- Si el primer parámetro es un objeto, copia su referencia y rellena el arreglo con referencias a dicho objeto. -

Ejemplos

+## Ejemplos -
[1, 2, 3].fill(4);               // [4, 4, 4]
+```js
+[1, 2, 3].fill(4);               // [4, 4, 4]
 [1, 2, 3].fill(4, 1);            // [1, 4, 4]
 [1, 2, 3].fill(4, 1, 2);         // [1, 4, 3]
 [1, 2, 3].fill(4, 1, 1);         // [1, 2, 3]
@@ -61,11 +58,13 @@ Array(3).fill(4);                // [4, 4, 4]
 
 // Objects by reference.
 var arr = Array(3).fill({}) // [{}, {}, {}];
-arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]
+arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }] +``` -

Polyfill

+## Polyfill -
if (!Array.prototype.fill) {
+```js
+if (!Array.prototype.fill) {
   Object.defineProperty(Array.prototype, 'fill', {
     value: function(value) {
 
@@ -77,29 +76,29 @@ arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }]
var O = Object(this); // Pasos 3-5. - var len = O.length >>> 0; + var len = O.length >>> 0; // Pasos 6-7. var start = arguments[1]; - var relativeStart = start >> 0; + var relativeStart = start >> 0; // Paso 8. - var k = relativeStart < 0 ? + var k = relativeStart < 0 ? Math.max(len + relativeStart, 0) : Math.min(relativeStart, len); // Pasos 9-10. var end = arguments[2]; var relativeEnd = end === undefined ? - len : end >> 0; + len : end >> 0; // Paso 11. - var final = relativeEnd < 0 ? + var final = relativeEnd < 0 ? Math.max(len + relativeEnd, 0) : Math.min(relativeEnd, len); // Paso 12. - while (k < final) { + while (k < final) { O[k] = value; k++; } @@ -108,39 +107,21 @@ arr[0].hi = "hi"; // [{ hi: "hi" }, { hi: "hi" }, { hi: "hi" }] return O; } }); -} - -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-array.prototype.fill', 'Array.prototype.fill')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-array.prototype.fill', 'Array.prototype.fill')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
-

{{Compat("javascript.builtins.Array.fill")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Array")}}
  • -
  • {{jsxref("TypedArray.prototype.fill()")}}
  • -
+} +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-array.prototype.fill', 'Array.prototype.fill')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-array.prototype.fill', 'Array.prototype.fill')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.fill")}} + +## Ver también + +- {{jsxref("Array")}} +- {{jsxref("TypedArray.prototype.fill()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/find/index.md b/files/es/web/javascript/reference/global_objects/array/find/index.md index 063f36dc9d389c..1253f25d8158e4 100644 --- a/files/es/web/javascript/reference/global_objects/array/find/index.md +++ b/files/es/web/javascript/reference/global_objects/array/find/index.md @@ -12,68 +12,57 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/find original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/find --- -
{{JSRef}}
+{{JSRef}} -

El método find() devuelve el valor del primer elemento del array que cumple la función de prueba proporcionada.

+El método **`find()`** devuelve el **valor** del **primer elemento** del array que cumple la función de prueba proporcionada. -
{{EmbedInteractiveExample("pages/js/array-find.html","shorter")}}
+{{EmbedInteractiveExample("pages/js/array-find.html","shorter")}} +- Si necesitas el **índice** del elemento encontrado en el array, utiliza {{jsxref("Array.findIndex", "findIndex()")}}. +- Si necesitas encontrar el **índice de un elemento**, {{jsxref("Array.prototype.indexOf()")}}. (Es similar a {{jsxref("Array.findIndex", "findIndex()")}}, pero comprueba la igualdad de cada elemento con el valor en lugar de usar una función de prueba.) +- Si necesitas encontrar si un valor **existe** en un array, utiliza {{jsxref("Array.prototype.includes()")}}. +- Si necesitas encontrar si algún elemento cumple la función de prueba proporcionada, usa {{jsxref("Array.prototype.some()")}}. +## Sintaxis -
    -
  • Si necesitas el índice del elemento encontrado en el array, utiliza {{jsxref("Array.findIndex", "findIndex()")}}.
  • -
  • Si necesitas encontrar el índice de un elemento, {{jsxref("Array.prototype.indexOf()")}}. (Es similar a {{jsxref("Array.findIndex", "findIndex()")}}, pero comprueba la igualdad de cada elemento con el valor en lugar de usar una función de prueba.)
  • -
  • Si necesitas encontrar si un valor existe en un array, utiliza {{jsxref("Array.prototype.includes()")}}.
  • -
  • Si necesitas encontrar si algún elemento cumple la función de prueba proporcionada, usa {{jsxref("Array.prototype.some()")}}.
  • -
+ arr.find(callback(element[, index[, array]])[, thisArg]) -

Sintaxis

+### Parámetros -
arr.find(callback(element[, index[, array]])[, thisArg])
+- `callback` + - : Función que se ejecuta sobre cada valor en el array, tomando tres argumentos:_ `element` + _ : El elemento actual que se está procesando en el array. + - `index` {{optional_inline}} + - : El índice (posición) del elemento actual que se está procesando en el array. + - `array` {{optional_inline}} + - : El array desde el que se llama al método `find`. +- `thisArg` {{optional_inline}} + - : Objeto a usar como [`this`](/es/docs/Web/JavaScript/Referencia/Operadores/this) cuando se ejecuta `callback`. -

Parámetros

+### Valor devuelto -
-
callback
-
Función que se ejecuta sobre cada valor en el array, tomando tres argumentos: -
-
element
-
El elemento actual que se está procesando en el array.
-
index {{optional_inline}}
-
El índice (posición) del elemento actual que se está procesando en el array.
-
array {{optional_inline}}
-
El array desde el que se llama al método find.
-
-
-
thisArg {{optional_inline}}
-
Objeto a usar como this cuando se ejecuta callback.
-
+El **valor** del **primer elemento** del array que cumple la función de prueba proporcionada; de lo contrario, devuelve {{jsxref("undefined")}}. -

Valor devuelto

+## Descripción -

El valor del primer elemento del array que cumple la función de prueba proporcionada; de lo contrario, devuelve {{jsxref("undefined")}}.

+El método `find` ejecuta la función `callback` una vez por cada índice del array hasta que encuentre uno en el que el `callback` devuelva un valor [verdadero](/es/docs/Glossary/Truthy). Si es así, `find` devuelve inmediatamente el valor del elemento. En caso contrario, `find` devuelve {{jsxref("undefined")}}. -

Descripción

+`callback` se invoca con tres argumentos: el valor del elemento, el índice del elemento y el objeto `Array` que está siendo recorrido. -

El método find ejecuta la función callback una vez por cada índice del array hasta que encuentre uno en el que el callback devuelva un valor verdadero. Si es así, find devuelve inmediatamente el valor del elemento. En caso contrario, find devuelve {{jsxref("undefined")}}.

+Si un parámetro `thisArg` es proporcionado al método `find`, este será utilizado como `this` para cada invocación del callback. Si no se proporciona el parámetro, entonces se utiliza {{jsxref("undefined")}}. -

callback se invoca con tres argumentos: el valor del elemento, el índice del elemento y el objeto Array que está siendo recorrido.

+El método `find` no transforma el array desde el cual es llamado, pero la función proporcionada en `callback` sí. En ese caso, los elementos procesados por `find` son establecidos _antes_ de la primera invocación de `callback`. Por lo tanto: -

Si un parámetro thisArg es proporcionado al método find, este será utilizado como this para cada invocación del callback. Si no se proporciona el parámetro, entonces se utiliza {{jsxref("undefined")}}.

+- `callback` no visitará ningún elemento añadido al array después de que comience la llamada a `find`. +- Si un elemento existente no visitado del array es modificado por `callback`, su valor que se pasa al `callback` que lo visita será el valor en el momento en que `find` visita ese índice del elemento. +- Los elementos que sean {{jsxref("delete", "deleted")}} (eliminados) aún se visitan. -

El método find no transforma el array desde el cual es llamado, pero la función proporcionada en callback sí. En ese caso, los elementos procesados por find son establecidos antes de la primera invocación de callback. Por lo tanto:

+## Ejemplos -
    -
  • callback no visitará ningún elemento añadido al array después de que comience la llamada a find.
  • -
  • Si un elemento existente no visitado del array es modificado por callback, su valor que se pasa al callback que lo visita será el valor en el momento en que find visita ese índice del elemento.
  • -
  • Los elementos que sean {{jsxref("delete", "deleted")}} (eliminados) aún se visitan.
  • -
+### Encontrar un objeto en un array por una de sus propiedades -

Ejemplos

- -

Encontrar un objeto en un array por una de sus propiedades

- -
const inventario = [
+```js
+const inventario = [
     {nombre: 'manzanas', cantidad: 2},
     {nombre: 'bananas', cantidad: 0},
     {nombre: 'cerezas', cantidad: 5}
@@ -84,41 +73,46 @@ function esCereza(fruta) {
 }
 
 console.log(inventario.find(esCereza));
-// { nombre: 'cerezas', cantidad: 5 }
+// { nombre: 'cerezas', cantidad: 5 } +``` -

Utilizando funciones flecha y destructuring

+#### Utilizando funciones flecha y destructuring -
const inventario = [
+```js
+const inventario = [
     {nombre: 'manzanas', cantidad: 2},
     {nombre: 'bananas', cantidad: 0},
     {nombre: 'cerezas', cantidad: 5}
 ];
 
-const resultado = inventario.find( fruta => fruta.nombre === 'cerezas' );
+const resultado = inventario.find( fruta => fruta.nombre === 'cerezas' );
 
-console.log(resultado); // { nombre: 'cerezas', cantidad: 5 }
+console.log(resultado); // { nombre: 'cerezas', cantidad: 5 } +``` -

Encontrar un número primo en un array

+### Encontrar un número primo en un array -

El siguiente ejemplo encuentra un elemento en un array que sea un número primo (o devuelve {{jsxref("undefined")}} si no hay un número primo).

+El siguiente ejemplo encuentra un elemento en un array que sea un número primo (o devuelve {{jsxref("undefined")}} si no hay un número primo). -
function isPrime(element, index, array) {
+```js
+function isPrime(element, index, array) {
   let start = 2;
-  while (start <= Math.sqrt(element)) {
-    if (element % start++ < 1) {
+  while (start <= Math.sqrt(element)) {
+    if (element % start++ < 1) {
       return false;
     }
   }
-  return element > 1;
+  return element > 1;
 }
 
 console.log([4, 6, 8, 12].find(isPrime)); // undefined, no encontrado
 console.log([4, 5, 8, 12].find(isPrime)); // 5
-
+``` -

Los siguientes ejemplos muestran cómo elementos no existentes o eliminados son visitados y el valor pasado a callback es su valor cuando son visitados.

+Los siguientes ejemplos muestran cómo elementos no existentes o eliminados son visitados y el valor pasado a `callback` es su valor cuando son visitados. -
// Declarar un array sin elementos en los índices 2, 3 y 4
+```js
+// Declarar un array sin elementos en los índices 2, 3 y 4
 const array = [0,1,,,,5,6];
 
 // Muestra todos los índices, no sólo aquellos que tienen valores asignados
@@ -146,13 +140,14 @@ array.find(function(value, index) {
 // Visited index 4 with value undefined
 // Visited index 5 with value undefined
 // Visited index 6 with value 6
-
+``` -

Polyfill

+## Polyfill -

Este método ha sido añadido a la espeficicación ECMAScript 2015 y puede no estar disponible en todas las implementaciones de JavaScript aún. Sin embargo, puedes utilizar el siguiente polyfill de Array.prototype.find:

+Este método ha sido añadido a la espeficicación ECMAScript 2015 y puede no estar disponible en todas las implementaciones de JavaScript aún. Sin embargo, puedes utilizar el siguiente polyfill de `Array.prototype.find`: -
// https://tc39.github.io/ecma262/#sec-array.prototype.find
+```js
+// https://tc39.github.io/ecma262/#sec-array.prototype.find
 if (!Array.prototype.find) {
   Object.defineProperty(Array.prototype, 'find', {
     value: function(predicate) {
@@ -164,7 +159,7 @@ if (!Array.prototype.find) {
       var o = Object(this);
 
       // 2. Let len be ? ToLength(? Get(O, "length")).
-      var len = o.length >>> 0;
+      var len = o.length >>> 0;
 
       // 3. If IsCallable(predicate) is false, throw a TypeError exception.
       if (typeof predicate !== 'function') {
@@ -177,8 +172,8 @@ if (!Array.prototype.find) {
       // 5. Let k be 0.
       var k = 0;
 
-      // 6. Repeat, while k < len
-      while (k < len) {
+      // 6. Repeat, while k < len
+      while (k < len) {
         // a. Let Pk be ! ToString(k).
         // b. Let kValue be ? Get(O, Pk).
         // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
@@ -198,37 +193,24 @@ if (!Array.prototype.find) {
     writable: true
   });
 }
-
- -

Si necesitas dar soporte a motores de JavaScript realmente obsoletos que no soportan Object.defineProperty, es mejor no utilizar el polyfill para los métodos Array.prototype, ya que no podrás hacerlos no enumerables.

- -

Especificaciones

- - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-array.prototype.find', 'Array.prototype.find')}}
- -

Compatibilidad en navegadores

- -
-

{{Compat("javascript.builtins.Array.find")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Array.prototype.findIndex()")}} – encuentra y devuelve un índice
  • -
  • {{jsxref("Array.prototype.includes()")}} – comprueba que un valor existe en el array
  • -
  • {{jsxref("Array.prototype.filter()")}} – elimina todos los elementos que no coincidan
  • -
  • {{jsxref("Array.prototype.every()")}} – comprueba todos los elementos
  • -
  • {{jsxref("Array.prototype.some()")}} – comprueba hasta que un elemento coincide
  • -
+``` + +Si necesitas dar soporte a motores de JavaScript realmente obsoletos que no soportan [`Object.defineProperty`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty), es mejor no utilizar el polyfill para los métodos `Array.prototype`, ya que no podrás hacerlos no enumerables. + +## Especificaciones + +| Especificación | +| ---------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-array.prototype.find', 'Array.prototype.find')}} | + +## Compatibilidad en navegadores + +{{Compat("javascript.builtins.Array.find")}} + +## Ver también + +- {{jsxref("Array.prototype.findIndex()")}} – encuentra y devuelve un índice +- {{jsxref("Array.prototype.includes()")}} – comprueba que un valor existe en el array +- {{jsxref("Array.prototype.filter()")}} – elimina todos los elementos que no coincidan +- {{jsxref("Array.prototype.every()")}} – comprueba todos los elementos +- {{jsxref("Array.prototype.some()")}} – comprueba hasta que un elemento coincide diff --git a/files/es/web/javascript/reference/global_objects/array/findindex/index.md b/files/es/web/javascript/reference/global_objects/array/findindex/index.md index bcdb7925e4edc6..9e0f56614ce839 100644 --- a/files/es/web/javascript/reference/global_objects/array/findindex/index.md +++ b/files/es/web/javascript/reference/global_objects/array/findindex/index.md @@ -12,106 +12,94 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/findIndex original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/findIndex --- -
{{JSRef}}
+{{JSRef}} -

El método findIndex() devuelve el índice del primer elemento de un array que cumpla con la función de prueba proporcionada. En caso contrario devuelve -1.

+El método **`findIndex()`** devuelve el **índice** del **primer elemento** de un array que cumpla con la función de prueba proporcionada. En caso contrario devuelve -1. -
{{EmbedInteractiveExample("pages/js/array-findindex.html","shorter")}}
+{{EmbedInteractiveExample("pages/js/array-findindex.html","shorter")}} -

Vea también el método {{jsxref("Array.find", "find()")}}, que devuelve el valor de un elemento encontrado en el array en lugar de su índice.

+Vea también el método {{jsxref("Array.find", "find()")}}, que devuelve el **valor** de un elemento encontrado en el array en lugar de su índice. -

Sintaxis

+## Sintaxis -
arr.findIndex(callback( element[, index[, array]] )[, thisArg])
-
+ arr.findIndex(callback( element[, index[, array]] )[, thisArg]) -

Parámetros

+### Parámetros -
-
callback
-
-

Función a ejecutar en cada uno de los valores del array hasta que devuelve true, indicando que el elemento que la cumple fue encontrado.

+- `callback` + - : Función a ejecutar en cada uno de los valores del array hasta que devuelve `true`, indicando que el elemento que la cumple fue encontrado.Recibe tres argumentos:_ `element` + _ : El elemento actual siendo procesado en el array. + - `index` {{optional_inline}} + - : El índice del elemento actual que está siendo procesado en el array. + - `array` {{optional_inline}} + - : El array `findIndex()` de donde fue llamado. +- `thisArg` {{optional_inline}} + - : Objeto opcional para usar como `this` cuando se ejecuta el `callback`. -

Recibe tres argumentos:

+### Valor devuelto -
-
element
-
El elemento actual siendo procesado en el array.
-
index {{optional_inline}}
-
El índice del elemento actual que está siendo procesado en el array.
-
array {{optional_inline}}
-
El array findIndex() de donde fue llamado.
-
-
-
thisArg {{optional_inline}}
-
Objeto opcional para usar como this cuando se ejecuta el callback.
-
+Un índice en el array si un elemento pasa la prueba; en caso contrario, `-1`. -

Valor devuelto

+## Descripción -

Un índice en el array si un elemento pasa la prueba; en caso contrario, -1.

+El método `findIndex()` ejecuta la función de _`callback`_ una vez por cada índice del array hasta que encuentre uno donde _`callback`_ devuelva un valor verdadero (eso es, un valor que [fuerza](/es/docs/Glossary/Type_Conversion) un `true`). -

Descripción

+Si dicho elemento es encontrado, `findIndex()` inmediatamente devuelve el índice del elemento. Si la función _`callback`_ nunca devuelve un valor verdadero (o el tamaño del array es 0), `findIndex` devuelve `-1`. -

El método findIndex() ejecuta la función de callback una vez por cada índice del array hasta que encuentre uno donde callback devuelva un valor verdadero (eso es, un valor que fuerza un true).

+> **Nota:** **Alerta de Edge Case:** A diferencia de otros métodos de arrays como {{jsxref("Array.some()")}}, `callback` se ejecuta incluso en índices sin valores asignados. -

Si dicho elemento es encontrado, findIndex() inmediatamente devuelve el índice del elemento. Si la función callback nunca devuelve un valor verdadero (o el tamaño del array es 0), findIndex devuelve -1.

+_`callback`_ se invoca con tres argumentos: -
-

Alerta de Edge Case: A diferencia de otros métodos de arrays como {{jsxref("Array.some()")}}, callback se ejecuta incluso en índices sin valores asignados.

-
+1. El valor del elemento +2. El índice del elemento +3. El Array que será recorrido. -

callback se invoca con tres argumentos:

+Si el parámetro `thisArg` es provisto a findIndex, entonces será usado como el this para cada invocación del `callback`. Si no es provisto, entonces {{jsxref("undefined")}} será utilizado. -
    -
  1. El valor del elemento
  2. -
  3. El índice del elemento
  4. -
  5. El Array que será recorrido.
  6. -
+El rango de elementos procesados por `findIndex()` se establece antes de la primera invocación de la función _`callback`_. Los elementos añadidos al array después de que la llamada a `findIndex()` comience no serán visitados por el `callback`. Si un elemento existente que no ha sido visitado en el array es modificado por el _`callback`_, el valor pasado al _`callback`_ que lo visite será el valor en el momento en que `findIndex()` visite el índice del elemento. -

Si el parámetro thisArg es provisto a findIndex, entonces será usado como el this para cada invocación del callback. Si no es provisto, entonces {{jsxref("undefined")}} será utilizado.

+Los elementos [eliminados](/es/docs/Web/JavaScript/Referencia/Operadores/delete) aún son visitados. -

El rango de elementos procesados por findIndex() se establece antes de la primera invocación de la función callback. Los elementos añadidos al array después de que la llamada a findIndex() comience no serán visitados por el callback. Si un elemento existente que no ha sido visitado en el array es modificado por el callback, el valor pasado al callback que lo visite será el valor en el momento en que findIndex() visite el índice del elemento.

+## Ejemplos -

Los elementos eliminados aún son visitados.

+### Encontrar el índice de un número primo en un array -

Ejemplos

+El siguiente ejemplo encuentra el índice de un elemento en el array que sea número primo (o devuelve `-1` si no hay ningún número primo). -

Encontrar el índice de un número primo en un array

- -

El siguiente ejemplo encuentra el índice de un elemento en el array que sea número primo (o devuelve -1 si no hay ningún número primo).

- -
function isPrime(element, index, array) {
+```js
+function isPrime(element, index, array) {
   var start = 2;
-  while (start <= Math.sqrt(element)) {
-    if (element % start < 1) {
+  while (start <= Math.sqrt(element)) {
+    if (element % start < 1) {
       return false;
     } else {
       start++;
     }
   }
-  return element > 1;
+  return element > 1;
 }
 
 console.log([4, 6, 8, 12].findIndex(isPrime)); // -1, no encontrado
 console.log([4, 6, 7, 12].findIndex(isPrime)); // 2
-
+``` -

Encontrar un índice utilizando funciones flecha

+### Encontrar un índice utilizando funciones flecha -

El siguiente ejemplo encuentra el índice de una fruta utilizando funciones flecha.

+El siguiente ejemplo encuentra el índice de una fruta utilizando funciones flecha. -
const fruits = ["apple", "banana", "cantaloupe", "blueberries", "grapefruit"];
+```js
+const fruits = ["apple", "banana", "cantaloupe", "blueberries", "grapefruit"];
 
-const index = fruits.findIndex(fruit => fruit === "blueberries");
+const index = fruits.findIndex(fruit => fruit === "blueberries");
 
 console.log(index); // 3
 console.log(fruits[index]); // blueberries
-
+``` -

Polyfill

+## Polyfill -
// https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
+```js
+// https://tc39.github.io/ecma262/#sec-array.prototype.findIndex
 if (!Array.prototype.findIndex) {
   Object.defineProperty(Array.prototype, 'findIndex', {
     value: function(predicate) {
@@ -123,7 +111,7 @@ if (!Array.prototype.findIndex) {
       var o = Object(this);
 
       // 2. Let len be ? ToLength(? Get(O, "length")).
-      var len = o.length >>> 0;
+      var len = o.length >>> 0;
 
       // 3. If IsCallable(predicate) is false, throw a TypeError exception.
       if (typeof predicate !== 'function') {
@@ -136,8 +124,8 @@ if (!Array.prototype.findIndex) {
       // 5. Let k be 0.
       var k = 0;
 
-      // 6. Repeat, while k < len
-      while (k < len) {
+      // 6. Repeat, while k < len
+      while (k < len) {
         // a. Let Pk be ! ToString(k).
         // b. Let kValue be ? Get(O, Pk).
         // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
@@ -157,32 +145,21 @@ if (!Array.prototype.findIndex) {
     writable: true
   });
 }
-
+``` -

Si necesita soporte para motores de JavaScript obsoletos que no soportan Object.defineProperty es mejor no emplear polyfills para métodos Array.prototype, ya que no puede hacerlos no-enumerables.

+Si necesita soporte para motores de JavaScript obsoletos que no soportan [`Object.defineProperty`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Object/defineProperty) es mejor no emplear polyfills para métodos `Array.prototype`, ya que no puede hacerlos no-enumerables. -

Especificaciones

+## Especificaciones - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-array.prototype.findindex', 'Array.prototype.findIndex')}}
+| Specification | +| -------------------------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-array.prototype.findindex', 'Array.prototype.findIndex')}} | -

Compatibilidad en navegadores

+## Compatibilidad en navegadores -
-

{{Compat("javascript.builtins.Array.findIndex")}}

-
+{{Compat("javascript.builtins.Array.findIndex")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Array.prototype.find()")}}
  • -
  • {{jsxref("Array.prototype.indexOf()")}}
  • -
+- {{jsxref("Array.prototype.find()")}} +- {{jsxref("Array.prototype.indexOf()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/from/index.md b/files/es/web/javascript/reference/global_objects/array/from/index.md index a1b7a7257cdf9a..75db1ed2ff63c7 100644 --- a/files/es/web/javascript/reference/global_objects/array/from/index.md +++ b/files/es/web/javascript/reference/global_objects/array/from/index.md @@ -11,63 +11,63 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/from original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/from --- -
{{JSRef}}
+{{JSRef}} -

El método Array.from() crea una nueva instancia de Array a partir de un objeto iterable.

+El método **`Array.from()`** crea una nueva instancia de `Array` a partir de un objeto iterable. -

{{EmbedInteractiveExample("pages/js/array-from.html")}}

+{{EmbedInteractiveExample("pages/js/array-from.html")}} -

Sintaxis

+## Sintaxis -
Array.from(arrayLike[, mapFn[, thisArg]])
-
+ Array.from(arrayLike[, mapFn[, thisArg]]) -

Parámetros

+### Parámetros -
-
arrayLike
-
Objeto iterable para convertirlo en un array.
-
mapFn{{Optional_inline}}
-
Función de mapa para llamar a cada elemento de la matriz.
-
thisArg{{Optional_inline}}
-
Valor para usar como this al ejecutar mapFn.
-
+- `arrayLike` + - : Objeto iterable para convertirlo en un array. +- `mapFn`{{Optional_inline}} + - : Función de mapa para llamar a cada elemento de la matriz. +- `thisArg`{{Optional_inline}} + - : Valor para usar como `this` al ejecutar `mapFn`. -

Valor de retorno

+### Valor de retorno -

Una nueva instancia de {{jsxref("Array")}}.

+Una nueva instancia de {{jsxref("Array")}}. -

Descripción

+## Descripción -

Array.from() permite crear Arrays de:

+`Array.from()` permite crear `Arrays` de: -
    -
  • Objetos array-like (objetos con propiedad length o elementos indexados).
  • -
  • Objetos iterables (objetos de los cuales se pueden obtener sus elementos como {{jsxref("Map")}} y {{jsxref("Set")}}).
  • -
+- Objetos array-like (objetos con propiedad `length` o elementos indexados). +- [Objetos iterables](/es/docs/Web/JavaScript/Referencia/Iteration_protocols) (objetos de los cuales se pueden obtener sus elementos como {{jsxref("Map")}} y {{jsxref("Set")}}). -

Array.from() tiene un parámetro opcional mapFn, que te permite ejecutar una función {{jsxref("Array.prototype.map", "map")}} a cada elemento del array (o a la subclase del objeto) que se ha creado. Para aclararlo, Array.from(obj, mapFn, thisArg) es igual que Array.from(obj).map(mapFn, thisArg), excepto en que éste no crea un array intermedio. Esto es importante para ciertas subclases de array, vectores tipados, ya que el vector intermedio necesitaría tener valores truncados para trabajar con el tipo adecuado.

+`Array.from()` tiene un parámetro opcional `mapFn`, que te permite ejecutar una función {{jsxref("Array.prototype.map", "map")}} a cada elemento del array (o a la subclase del objeto) que se ha creado. Para aclararlo, `Array.from(obj, mapFn, thisArg)` es igual que `Array.from(obj).map(mapFn, thisArg)`, excepto en que éste no crea un array intermedio. Esto es importante para ciertas subclases de array, [vectores tipados](/es/docs/Web/JavaScript/Vectores_tipados), ya que el vector intermedio necesitaría tener valores truncados para trabajar con el tipo adecuado. -

La propiedad length del método from() es 1.

+La propiedad `length` del método `from()` es 1. -

En ES2015, la sintaxis de clase permite la subclasificación de clases integradas y definidas por el usuario; como resultado, los métodos estáticos como Array.from son "heredados" por subclases de Array y crean nuevas instancias de la subclase, no Array.

+En ES2015, la sintaxis de clase permite la subclasificación de clases integradas y definidas por el usuario; como resultado, los métodos estáticos como `Array.from` son "heredados" por subclases de `Array` y crean nuevas instancias de la subclase, no `Array`. -

Ejemplos

+## Ejemplos -

Array desde un String

+### Array desde un `String` -
Array.from('foo');
-// [ "f", "o", "o" ]
+```js +Array.from('foo'); +// [ "f", "o", "o" ] +``` -

Array desde un Set

+### Array desde un `Set` -
const set = new Set(['foo', 'bar', 'baz', 'foo']);
+```js
+const set = new Set(['foo', 'bar', 'baz', 'foo']);
 Array.from(set);
-// [ "foo", "bar", "baz" ]
+// [ "foo", "bar", "baz" ] +``` -

Array desde un Map

+### Array desde un `Map` -
const map = new Map([[1, 2], [2, 4], [4, 8]]);
+```js
+const map = new Map([[1, 2], [2, 4], [4, 8]]);
 Array.from(map);
 // [[1, 2], [2, 4], [4, 8]]
 
@@ -77,37 +77,41 @@ Array.from(mapper.values());
 
 Array.from(mapper.keys());
 // ['1', '2'];
-
+``` -

Array desde un objeto Array-like (argumentos)

+### Array desde un objeto Array-like (argumentos) -
function f() {
+```js
+function f() {
   return Array.from(arguments);
 }
 
 f(1, 2, 3);
 
-// [ 1, 2, 3 ]
+// [ 1, 2, 3 ] +``` -

Usando una función de flecha y Array.from

+### Usando una función de flecha y `Array.from` -
// Usando una función de flecha como función
+```js
+// Usando una función de flecha como función
 // para manipular los elementos
-Array.from([1, 2, 3], x => x + x);
+Array.from([1, 2, 3], x => x + x);
 // [2, 4, 6]
 
 
 // Generar secuencia de números
 // Puesto que el array se inicializa con `undefined` en cada posición,
 // el valor de `v` a continuación será `undefined`
-Array.from({length: 5}, (v, i) => i);
+Array.from({length: 5}, (v, i) => i);
 // [0, 1, 2, 3, 4]
-
+``` -

Generador de secuencia (rango)

+### Generador de secuencia (rango) -
// Función generadora de secuencia (comúnmente llamado "rango", ej. Clojure, PHP, etc.)
-const range = (start, stop, step) => Array.from({ length: (stop - start) / step + 1}, (_, i) => start + (i * step));
+```js
+// Función generadora de secuencia (comúnmente llamado "rango", ej. Clojure, PHP, etc.)
+const range = (start, stop, step) => Array.from({ length: (stop - start) / step + 1}, (_, i) => start + (i * step));
 
 // Genera un rango de números entre 0..4
 range(0, 4, 1);
@@ -118,15 +122,16 @@ range(1, 10, 2);
 // [1, 3, 5, 7, 9]
 
 // Generar el abecedario utilizando Array.from haciendo uso de que se ordena como secuencia
-range('A'.charCodeAt(0), 'Z'.charCodeAt(0), 1).map(x => String.fromCharCode(x));
+range('A'.charCodeAt(0), 'Z'.charCodeAt(0), 1).map(x => String.fromCharCode(x));
 // ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
-
+``` -

Polyfill

+## Polyfill -

Array.from fue añadido en el estándar ECMA-262 en la 6ta edición (ES2015); así que no puede estar presente en otras implementaciones del estándar. Puedes usarlo insertando este código al comienzo de sus scripts, permitiendo el uso de Array.from en implementaciones que no lo soportan. Este algoritmo es el mismo especificado en ECMA-262, 6ta edición, suponiendo que Object y TypeError tengan sus valores originales y callback.call evalúa el valor original de {{jsxref("Function.prototype.call")}}. Adicionalmente, ya que verdaderos iterables pueden no ser polyficados, esta implementación no soporta iterables genéricos como definidos en la 6ta edición de ECMA-262.

+`Array.from` fue añadido en el estándar ECMA-262 en la 6ta edición (ES2015); así que no puede estar presente en otras implementaciones del estándar. Puedes usarlo insertando este código al comienzo de sus scripts, permitiendo el uso de `Array.from` en implementaciones que no lo soportan. Este algoritmo es el mismo especificado en ECMA-262, 6ta edición, suponiendo que `Object` y `TypeError` tengan sus valores originales y `callback.call` evalúa el valor original de {{jsxref("Function.prototype.call")}}. Adicionalmente, ya que verdaderos iterables pueden no ser polyficados, esta implementación no soporta iterables genéricos como definidos en la 6ta edición de ECMA-262. -
// Pasos de producción de ECMA-262, Edición 6, 22.1.2.1
+```js
+// Pasos de producción de ECMA-262, Edición 6, 22.1.2.1
 // Referencia: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from
 if (!Array.from) {
   Array.from = (function () {
@@ -138,7 +143,7 @@ if (!Array.from) {
       var number = Number(value);
       if (isNaN(number)) { return 0; }
       if (number === 0 || !isFinite(number)) { return number; }
-      return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
+      return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
     };
     var maxSafeInteger = Math.pow(2, 53) - 1;
     var toLength = function (value) {
@@ -160,7 +165,7 @@ if (!Array.from) {
       }
 
       // 4. Si mapfn no está definida, entonces deja que sea false.
-      var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
+      var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
       var T;
       if (typeof mapFn !== 'undefined') {
         // 5. si no
@@ -170,7 +175,7 @@ if (!Array.from) {
         }
 
         // 5. b. Si thisArg se suministró, deje que T sea thisArg; si no, deje que T esté indefinido.
-        if (arguments.length > 2) {
+        if (arguments.length > 2) {
           T = arguments[2];
         }
       }
@@ -186,9 +191,9 @@ if (!Array.from) {
 
       // 16. Let k be 0.
       var k = 0;
-      // 17. Repeat, while k < len… (also steps a - h)
+      // 17. Repeat, while k < len… (also steps a - h)
       var kValue;
-      while (k < len) {
+      while (k < len) {
         kValue = items[k];
         if (mapFn) {
           A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);
@@ -204,40 +209,21 @@ if (!Array.from) {
     };
   }());
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-array.from', 'Array.from')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-array.from', 'Array.from')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
-

{{Compat("javascript.builtins.Array.from")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Array")}}
  • -
  • {{jsxref("Array.prototype.map()")}}
  • -
  • {{jsxref("TypedArray.from()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-array.from', 'Array.from')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-array.from', 'Array.from')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.from")}} + +## Ver también + +- {{jsxref("Array")}} +- {{jsxref("Array.prototype.map()")}} +- {{jsxref("TypedArray.from()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/includes/index.md b/files/es/web/javascript/reference/global_objects/array/includes/index.md index bf8776cde6bf01..0a0ca8f7da37f3 100644 --- a/files/es/web/javascript/reference/global_objects/array/includes/index.md +++ b/files/es/web/javascript/reference/global_objects/array/includes/index.md @@ -11,62 +11,56 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/includes original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/includes --- -
{{JSRef}}
+{{JSRef}} -

El método includes() determina si una matriz incluye un determinado elemento, devuelve true o false según corresponda.

+El método **`includes()`** determina si una matriz incluye un determinado elemento, devuelve `true` o `false` según corresponda. -

{{EmbedInteractiveExample("pages/js/array-includes.html")}}

+{{EmbedInteractiveExample("pages/js/array-includes.html")}} -

Sintaxis

+## Sintaxis -
arr.includes(searchElement[, fromIndex])
+ arr.includes(searchElement[, fromIndex]) -

Parámetros

+### Parámetros -
-
valueToFind
-
-

El valor a buscar.

+- `valueToFind` + - : El valor a buscar.> **Nota:**Al comparar cadenas de texto y caracteres, `includes()` **distingue mayúsculas y minúsculas**. +- `fromIndex` {{optional_inline}} + - : Posición en la matriz en la cuál se debe comenzar a buscar `valueToFind`; el primer caracter a buscar se encuentra en `fromIndex`. Un valor negativo inicia la búsqueda desde array.length + fromIndex en adelante. El valor por defecto es 0. -
-

Nota: Al comparar cadenas de texto y caracteres, includes() distingue mayúsculas y minúsculas.

-
-
-
fromIndex {{optional_inline}}
-
Posición en la matriz en la cuál se debe comenzar a buscar valueToFind; el primer caracter a buscar se encuentra en fromIndex. Un valor negativo inicia la búsqueda desde array.length + fromIndex en adelante. El valor por defecto es 0.
-
+### Valor devuelto -

Valor devuelto

+Un {{jsxref ("Boolean")}} que es `true` si el valor `valueToFind` se encuentra dentro de la matriz (o la parte de la matriz indicada por el índice `fromIndex`, si se especifica). Todos los valores de cero se consideran iguales independientemente del signo (es decir, -0 se considera igual a 0 y +0), pero `false` no se considera igual a 0. -

Un {{jsxref ("Boolean")}} que es true si el valor valueToFind se encuentra dentro de la matriz (o la parte de la matriz indicada por el índice fromIndex, si se especifica). Todos los valores de cero se consideran iguales independientemente del signo (es decir, -0 se considera igual a 0 y +0), pero false no se considera igual a 0.

+> **Nota:** Técnicamente hablando, `include()` usa el algoritmo [`sameValueZero`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Equality_comparisons_and_sameness#Same-value-zero_equality) para determinar si se encuentra el elemento dado -
-

Note: Técnicamente hablando, include() usa el algoritmo sameValueZero para determinar si se encuentra el elemento dado

-
+## Ejemplos -

Ejemplos

- -
[1, 2, 3].includes(2);     // true
+```js
+[1, 2, 3].includes(2);     // true
 [1, 2, 3].includes(4);     // false
 [1, 2, 3].includes(3, 3);  // false
 [1, 2, 3].includes(3, -1); // true
 [1, 2, NaN].includes(NaN); // true
-
+``` -

fromIndex es mayor o igual que la longitud de la matriz

+### `fromIndex` es mayor o igual que la longitud de la matriz -

Si fromIndex es mayor o igual que la longitud de la matriz, se devuelve false. No se buscará en la matriz.

+Si `fromIndex` es mayor o igual que la longitud de la matriz, se devuelve `false`. No se buscará en la matriz. -
var arr = ['a', 'b', 'c'];
+```js
+var arr = ['a', 'b', 'c'];
 
 arr.includes('c', 3);   // false
-arr.includes('c', 100); // false
+arr.includes('c', 100); // false +``` -

El índice calculado es menor que 0

+### El índice calculado es menor que 0 -

Si fromIndex es negativo, el índice calculado se calcula para usarse como una posición en la matriz en la cual comenzar a buscar searchElement. Si el índice calculado es menor que 0, se buscará la matriz completa.

+Si `fromIndex` es negativo, el índice calculado se calcula para usarse como una posición en la matriz en la cual comenzar a buscar `searchElement`. Si el índice calculado es menor que 0, se buscará la matriz completa. -
// la longitud de la matriz es 3
+```js
+// la longitud de la matriz es 3
 // fromIndex es -100
 // el índice calculado es 3 + (-100) = -97
 
@@ -74,20 +68,24 @@ var arr = ['a', 'b', 'c'];
 
 arr.includes('a', -100); // true
 arr.includes('b', -100); // true
-arr.includes('c', -100); // true
+arr.includes('c', -100); // true +``` -

includes() utilizado como método genérico

+### `includes()` utilizado como método genérico -

El método includes() es intencionalmente genérico. No requiere que este valor sea un objeto Array, por lo que se puede aplicar a otros tipos de objetos (por ejemplo, objetos tipo array). El siguiente ejemplo ilustra el método includes() llamado en el objeto de argumentos de la función.

+El método `includes()` es intencionalmente genérico. No requiere que este valor sea un objeto Array, por lo que se puede aplicar a otros tipos de objetos (por ejemplo, objetos tipo array). El siguiente ejemplo ilustra el método `includes()` llamado en el objeto de argumentos de la función. -
(function() {
+```js
+(function() {
   console.log([].includes.call(arguments, 'a')); // true
   console.log([].includes.call(arguments, 'd')); // false
-})('a','b','c');
+})('a','b','c'); +``` -

Polyfill

+## Polyfill -
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
+```js
+// https://tc39.github.io/ecma262/#sec-array.prototype.includes
 if (!Array.prototype.includes) {
   Object.defineProperty(Array.prototype, 'includes', {
     value: function(searchElement, fromIndex) {
@@ -100,7 +98,7 @@ if (!Array.prototype.includes) {
       var o = Object(this);
 
       // 2. Dejar que len sea ? ToLength(? Get(O, "length")).
-      var len = o.length >>> 0;
+      var len = o.length >>> 0;
 
       // 3. Si len es 0, devuelve false.
       if (len === 0) {
@@ -113,17 +111,17 @@ if (!Array.prototype.includes) {
 
       // 5. Si n ≥ 0, entonces
       //  a. Dejar que k sea n.
-      // 6. Else n < 0,
+      // 6. Else n < 0,
       //  a. Dejar que k sea len + n.
-      //  b. Si k < 0, Dejar que k sea 0.
-      var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
+      //  b. Si k < 0, Dejar que k sea 0.
+      var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
 
       function sameValueZero(x, y) {
-        return x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y));
+        return x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y));
       }
 
-      // 7. Repite, mientras k < len
-      while (k < len) {
+      // 7. Repite, mientras k < len
+      while (k < len) {
         // a. Dejar que elementK sea el resultado de ? Get(O, ! ToString(k)).
         // b. Si SameValueZero(searchElement, elementK) es true, devuelve true.
         if (sameValueZero(o[k], searchElement)) {
@@ -137,46 +135,26 @@ if (!Array.prototype.includes) {
       return false;
     }
   });
-}
- -

Si necesita admitir motores de JavaScript realmente obsoletos que no son compatibles con Object.defineProperty, es mejor no rellenar los métodos Array.prototype, ya que no puede hacerlos no enumerables.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
{{SpecName('ES7', '#sec-array.prototype.includes', 'Array.prototype.includes')}}{{Spec2('ES7')}}Definición inicial.
{{SpecName('ESDraft', '#sec-array.prototype.includes', 'Array.prototype.includes')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
-

{{Compat("javascript.builtins.Array.includes")}}

-
- -
- -

Ver también

- -
    -
  • {{jsxref("TypedArray.prototype.includes()")}}
  • -
  • {{jsxref("String.prototype.includes()")}}
  • -
  • {{jsxref("Array.prototype.indexOf()")}}
  • -
  • {{jsxref("Array.prototype.find()")}}
  • -
  • {{jsxref("Array.prototype.findIndex()")}}
  • -
+} +``` + +Si necesita admitir motores de JavaScript realmente obsoletos que no son compatibles con [`Object.defineProperty`](/es/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty), es mejor no rellenar los métodos `Array.prototype`, ya que no puede hacerlos no enumerables. + +## Especificaciones + +| Especificación | Estado | Comentarios | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES7', '#sec-array.prototype.includes', 'Array.prototype.includes')}} | {{Spec2('ES7')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-array.prototype.includes', 'Array.prototype.includes')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.includes")}} + +## Ver también + +- {{jsxref("TypedArray.prototype.includes()")}} +- {{jsxref("String.prototype.includes()")}} +- {{jsxref("Array.prototype.indexOf()")}} +- {{jsxref("Array.prototype.find()")}} +- {{jsxref("Array.prototype.findIndex()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/index.md b/files/es/web/javascript/reference/global_objects/array/index.md index 384e909248cf00..4b11a0cd81609d 100644 --- a/files/es/web/javascript/reference/global_objects/array/index.md +++ b/files/es/web/javascript/reference/global_objects/array/index.md @@ -10,441 +10,414 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array original_slug: Web/JavaScript/Referencia/Objetos_globales/Array --- -

{{JSRef}}
- El objeto Array de JavaScript es un objeto global que es usado en la construcción de arrays, que son objetos tipo lista de alto nivel.

+{{JSRef}} +El objeto **`Array` **de JavaScript es un objeto global que es usado en la construcción de _arrays_, que son objetos tipo lista de alto nivel. -

Descripción

+## Descripción -

Los arrays son objetos similares a una lista cuyo prototipo proporciona métodos para efectuar operaciones de recorrido y de mutación. Tanto la longitud como el tipo de los elementos de un array son variables. Dado que la longitud de un array puede cambiar en cualquier momento, y los datos se pueden almacenar en ubicaciones no contiguas, no hay garantía de que los arrays de JavaScript sean densos; esto depende de cómo el programador elija usarlos. En general estas características son cómodas, pero si, en su caso particular, no resultan deseables, puede considerar el uso de arrays con tipo.

+Los _arrays_ son objetos similares a una lista cuyo prototipo proporciona métodos para efectuar operaciones de recorrido y de mutación. Tanto la longitud como el tipo de los elementos de un _array_ son variables. Dado que la longitud de un _array_ puede cambiar en cualquier momento, y los datos se pueden almacenar en ubicaciones no contiguas, no hay garantía de que los _arrays_ de JavaScript sean densos; esto depende de cómo el programador elija usarlos. En general estas características son cómodas, pero si, en su caso particular, no resultan deseables, puede considerar el uso de _arrays_ con tipo. -

Operaciones habituales

+### Operaciones habituales -

Crear un Array

+**Crear un Array** -
let frutas = ["Manzana", "Banana"]
+```js
+let frutas = ["Manzana", "Banana"]
 
 console.log(frutas.length)
 // 2
-
+``` -

Acceder a un elemento de Array mediante su índice

+**Acceder a un elemento de Array mediante su índice** -
let primero = frutas[0]
+```js
+let primero = frutas[0]
 // Manzana
 
 let ultimo = frutas[frutas.length - 1]
-// Banana
+// Banana +``` -

Recorrer un Array

+**Recorrer un Array** -
frutas.forEach(function(elemento, indice, array) {
+```js
+frutas.forEach(function(elemento, indice, array) {
     console.log(elemento, indice);
 })
 // Manzana 0
-// Banana 1
+// Banana 1 +``` -

Añadir un elemento al final de un Array

+**Añadir un elemento al final de un Array** -
let nuevaLongitud = frutas.push('Naranja') // Añade "Naranja" al final
-// ["Manzana", "Banana", "Naranja"]
+```js +let nuevaLongitud = frutas.push('Naranja') // Añade "Naranja" al final +// ["Manzana", "Banana", "Naranja"] +``` -

Eliminar el último elemento de un Array

+**Eliminar el último elemento de un Array** -
let ultimo = frutas.pop() // Elimina "Naranja" del final
-// ["Manzana", "Banana"]
+```js +let ultimo = frutas.pop() // Elimina "Naranja" del final +// ["Manzana", "Banana"] +``` -

Añadir un elemento al principio de un Array

+**Añadir un elemento al principio de un Array** -
let nuevaLongitud = frutas.unshift('Fresa') // Añade "Fresa" al inicio
+```js
+let nuevaLongitud = frutas.unshift('Fresa') // Añade "Fresa" al inicio
 // ["Fresa" ,"Manzana", "Banana"]
-
+``` -

Eliminar el primer elemento de un Array

+**Eliminar el primer elemento de un Array** -
let primero = frutas.shift() // Elimina "Fresa" del inicio
+```js
+let primero = frutas.shift() // Elimina "Fresa" del inicio
 // ["Manzana", "Banana"]
-
+``` -

Encontrar el índice de un elemento del Array

+**Encontrar el índice de un elemento del Array** -
frutas.push('Fresa')
+```js
+frutas.push('Fresa')
 // ["Manzana", "Banana", "Fresa"]
 
-let pos = frutas.indexOf('Banana') // (pos) es la posición para abreviar
-// 1
+let pos = frutas.indexOf('Banana') // (pos) es la posición para abreviar +// 1 +``` -

Eliminar un único elemento mediante su posición

+**Eliminar un único elemento mediante su posición** -
-
Ejemplo:
-
Eliminamos "Banana" del array pasándole dos parámetros: la posición del primer elemento que se elimina y el número de elementos que queremos eliminar. De esta forma, .splice(pos, 1) empieza en la posición que nos indica el valor de la variable pos y elimina 1 elemento. En este caso, como pos vale 1, elimina un elemento comenzando en la posición 1 del array, es decir "Banana".
-
+- Ejemplo: + - : Eliminamos "Banana" del _array_ pasándole dos parámetros: la posición del primer elemento que se elimina y el número de elementos que queremos eliminar. De esta forma, `.splice(pos, 1)` empieza en la posición que nos indica el valor de la variable `pos` y elimina 1 elemento. En este caso, como `pos` vale 1, elimina un elemento comenzando en la posición 1 del _array,_ es decir "Banana". -
let elementoEliminado = frutas.splice(pos, 1)
-// ["Manzana", "Fresa"]
+```js +let elementoEliminado = frutas.splice(pos, 1) +// ["Manzana", "Fresa"] +``` -

Eliminar varios elementos a partir de una posición

+**Eliminar varios elementos a partir de una posición** -
-
Nota:
-
Con .splice() no solo se puede eliminar elementos del array, si no que también podemos extraerlos guardándolo en un nuevo array. ¡Ojo! que al hacer esto estaríamos modificando el array de origen.
-
+- Nota: + - : Con `.splice()` no solo se puede eliminar elementos del array, si no que también podemos extraerlos guardándolo en un nuevo array. ¡Ojo! que al hacer esto estaríamos modificando el array de origen. -
let vegetales = ['Repollo', 'Nabo', 'Rábano', 'Zanahoria']
+```js
+let vegetales = ['Repollo', 'Nabo', 'Rábano', 'Zanahoria']
 console.log(vegetales)
 // ["Repollo", "Nabo", "Rábano", "Zanahoria"]
 
 let pos = 1, numElementos = 2
 
-let elementosEliminados = vegetales.splice(pos, numElementos)
-// ["Nabo", "Rábano"] ==> Lo que se ha guardado en "elementosEliminados"
+let elementosEliminados = vegetales.splice(pos, numElementos)
+// ["Nabo", "Rábano"] ==> Lo que se ha guardado en "elementosEliminados"
 
 console.log(vegetales)
-// ["Repollo", "Zanahoria"] ==> Lo que actualmente tiene "vegetales" 
+// ["Repollo", "Zanahoria"] ==> Lo que actualmente tiene "vegetales" +``` -

Copiar un Array

+**Copiar un Array** -
let copiaArray = vegetales.slice();
-// ["Repollo", "Zanahoria"]; ==> Copiado en "copiaArray"
+```js +let copiaArray = vegetales.slice(); +// ["Repollo", "Zanahoria"]; ==> Copiado en "copiaArray" +``` -

Acceso a elementos de un array

+### Acceso a elementos de un _array_ -

Los índices de los arrays de JavaScript comienzan en cero, es decir, el índice del primer elemento de un array es 0, y el del último elemento es igual al valor de la propiedad length del array restándole 1.

+Los índices de los _arrays_ de JavaScript comienzan en cero, es decir, el índice del primer elemento de un _array_ es `0`, y el del último elemento es igual al valor de la propiedad `length` del _array_ restándole 1. -

Si se utiliza un número de índice no válido, se obtendrá undefined.

+Si se utiliza un número de índice no válido, se obtendrá `undefined`. -
let arr = ['este es el primer elemento', 'este es el segundo elemento', 'este es el último elemento']
+```js
+let arr = ['este es el primer elemento', 'este es el segundo elemento', 'este es el último elemento']
 console.log(arr[0])              // escribe en consola 'este es el primer elemento'
 console.log(arr[1])              // escribe en consola 'este es el segundo elemento'
 console.log(arr[arr.length - 1]) // escribe en consola 'este es el último elemento'
-
+``` -

Los elementos de un array pueden considerarse propiedades del objeto tanto como toString (sin embargo, para ser precisos, toString() es un método). Sin embargo, se obtendrá un error de sintaxis si se intenta acceder a un elemento de un array de la forma siguiente, ya que el nombre de la propiedad no sería válido:

+Los elementos de un _array_ pueden considerarse propiedades del objeto tanto como `toString` (sin embargo, para ser precisos, `toString()` es un método). Sin embargo, se obtendrá un error de sintaxis si se intenta acceder a un elemento de un _array_ de la forma siguiente, ya que el nombre de la propiedad no sería válido: -
console.log(arr.0) // error de sintaxis
+```js +console.log(arr.0) // error de sintaxis +``` -

No hay nada especial ni en los arrays de JavaScript ni en sus propiedades que ocasione esto. En JavaScript, las propiedades cuyo nombre comienza con un dígito no pueden referenciarse con la notación punto y debe accederse a ellas mediante la notación corchete.

+No hay nada especial ni en los _arrays_ de JavaScript ni en sus propiedades que ocasione esto. En JavaScript, las propiedades cuyo nombre comienza con un dígito no pueden referenciarse con la notación punto y debe accederse a ellas mediante la notación corchete. -

Por ejemplo, dado un objeto con una propiedad de nombre '3d', sólo podría accederse a dicha propiedad con la notación corchete.

+Por ejemplo, dado un objeto con una propiedad de nombre `'3d'`, sólo podría accederse a dicha propiedad con la notación corchete. -
let decadas = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
+```js
+let decadas = [1950, 1960, 1970, 1980, 1990, 2000, 2010]
 console.log(decadas.0)  // error de sintaxis
 console.log(decadas[0]) // funciona correctamente
-
+``` -
renderizador.3d.usarTextura(modelo, 'personaje.png')
-renderizador['3d'].usarTextura(modelo, 'personaje.png')
+```js +renderizador.3d.usarTextura(modelo, 'personaje.png') +renderizador['3d'].usarTextura(modelo, 'personaje.png') +``` -

Obsérvese que, en el último ejemplo, ha sido necesario poner '3d' entre comillas. Es posible usar también comillas con los índices del los arrays de JavaScript (p. ej., decadas['2'] en vez de decadas[2]), aunque no es necesario.

+Obsérvese que, en el último ejemplo, ha sido necesario poner `'3d'` entre comillas. Es posible usar también comillas con los índices del los _arrays_ de JavaScript (p. ej., `decadas['2']` en vez de `decadas[2]`), aunque no es necesario. -

El motor de JavaScript transforma en un string el 2 de decadas[2] a través de una conversión implícita mediante toString. Por tanto, '2' y '02' harían referencia a dos posiciones diferentes en el objeto decadas, y el siguiente ejemplo podría dar true como resultado:

+El motor de JavaScript transforma en un string el 2 de `decadas[2]` a través de una conversión implícita mediante `toString`. Por tanto, `'2'` y `'02'` harían referencia a dos posiciones diferentes en el objeto `decadas`, y el siguiente ejemplo podría dar `true` como resultado: -
console.log(decadas['2'] != decadas['02'])
+```js +console.log(decadas['2'] != decadas['02']) +``` -

Relación entre length y las propiedades numéricas

+### Relación entre `length` y las propiedades numéricas -

La propiedad length de un array de JavaScript está conectada con algunas otras de sus propiedades numéricas.

+La propiedad `length` de un _array_ de JavaScript está conectada con algunas otras de sus propiedades numéricas. -

Varios de los métodos propios de un array (p. ej., join(), slice(), indexOf(), etc.) tienen en cuenta el valor de la propiedad length de un array cuando se les llama.

+Varios de los métodos propios de un _array_ (p. ej., `join()`, `slice()`, `indexOf()`, etc.) tienen en cuenta el valor de la propiedad `length` de un array cuando se les llama. -

Otros métodos (p. ej., push(), splice(), etc.) modifican la propiedad length de un array.

+Otros métodos (p. ej., `push()`, `splice()`, etc.) modifican la propiedad `length` de un array. -
const frutas = []
+```js
+const frutas = []
 frutas.push('banana', 'manzana', 'pera')
 
 console.log(frutas.length) // 3
-
+``` -

Cuando se le da a una propiedad de un array JavaScript un valor que corresponda a un índice válido para el array pero que se encuentre fuera de sus límites, el motor actualizará el valor de la propiedad length como corresponda:

+Cuando se le da a una propiedad de un _array_ JavaScript un valor que corresponda a un índice válido para el _array_ pero que se encuentre fuera de sus límites, el motor actualizará el valor de la propiedad `length` como corresponda: -
frutas[5] = 'fresa'
+```js
+frutas[5] = 'fresa'
 console.log(frutas[5])           // 'fresa'
 console.log(Object.keys(frutas)) // ['0', '1', '2', '5']
 console.log(frutas.length)       // 6
-
+``` -

Si se aumenta el valor de length:

+Si se aumenta el valor de `length`: -
frutas.length = 10
-console.log(frutas)              // ['banana', 'manzana', 'pera', <2 empty items>, 'fresa', <4 empty items>]
+```js
+frutas.length = 10
+console.log(frutas)              // ['banana', 'manzana', 'pera', <2 empty items>, 'fresa', <4 empty items>]
 console.log(Object.keys(frutas)) // ['0', '1', '2', '5']
 console.log(frutas.length)       // 10
 console.log(frutas[8])           // undefined
-
+``` -

Si se disminuye el valor de la propiedad length pueden eliminarse elementos:

+Si se disminuye el valor de la propiedad `length` pueden eliminarse elementos: -
frutas.length = 2
+```js
+frutas.length = 2
 console.log(Object.keys(frutas)) // ['0', '1']
 console.log(frutas.length)       // 2
-
+``` -

Hay más información sobre este tema en la página sobre Array.length.

+Hay más información sobre este tema en la página sobre [`Array.length`](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/length). -

Creación de un array a partir de una expresión regular

+### Creación de un _array_ a partir de una expresión regular -

El resultado de una búsqueda con una RegExp en un string puede crear un array de JavaScript. Este array tendrá propiedades y elementos que proporcionan información sobre la correspondencia encontrada. Para obtener un array de esta forma puede utilizarse RegExp.exec(), String.match() o String.replace().

+El resultado de una búsqueda con una `RegExp` en un string puede crear un _array_ de JavaScript. Este array tendrá propiedades y elementos que proporcionan información sobre la correspondencia encontrada. Para obtener un _array_ de esta forma puede utilizarse `RegExp.exec()`, `String.match()` o `String.replace()`. -

El siguiente ejemplo, y la tabla que le sigue, pueden ayudar a comprender mejor las propiedades y elementos a los que nos referimos:

+El siguiente ejemplo, y la tabla que le sigue, pueden ayudar a comprender mejor las propiedades y elementos a los que nos referimos: -
// Buscar una d seguida de una o más b y, al final, de otra d
+```js
+// Buscar una d seguida de una o más b y, al final, de otra d
 // Recordar las b y la d final
 // No distinguir mayúsculas y minúsculas
 
 const miRe = /d(b+)(d)/i
-const miArray = miRe.exec('cdbBdbsbz')
- -

Las propiedades y elementos que se obtienen de esta búsqueda son los siguientes:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Propiedad/ElementoDescripciónEjemplo
input
- {{ReadOnlyInline}}
El string original sobre el que se ha realizado la búsqueda con la expresión regular"cdbBdbsbz"
index
- {{ReadOnlyInline}}
El índice de la correspondencia en el string, siendo cero el de la primera posición.1
[0]
- {{ReadOnlyInline}}
Los últimos caracteres que cumplen la correspondencia"dbBd"
[1], ...[n]
- {{ReadOnlyInline}}
Elementos que indican las correspondencias de substrings entre paréntesis (si se han incluido) de la expresión regular. No hay límite al número de substrings entre paréntesis que se puedan utilizar.[1]: "bB"
- [2]: "d"
- -

Constructor

- -
-
Array()
-
Crea un nuevo objeto Array.
-
- -

Propiedades estáticas

- -
-
get Array[@@species]
-
La función del constructor se utiliza para crear objetos derivados.
-
- -

Métodos estáticos

- -
-
Array.from()
-
Crea una nueva instancia de Array a partir de similarAUnArray, un objeto iterable o parecido a un array.
-
Array.isArray()
-
Devuelve true si valor es un array, y false en caso contrario.
-
Array.of()
-
Crea una nueva instancia de Array con un número variable de parámetros, independientemente del número y del tipo de dichos parámetros.
-
- -

Propiedades de instancia

- -
-
Array.prototype.length
-
Indica el número de elementos de un array.
-
Array.prototype[@@unscopables]
-
Símbolo que contiene todos los nombres de las propiedades que se excluyen de un ámbito de enlace with.
-
- -

Métodos de instancia

- -
-
Array.prototype.concat()
-
Devuelve un nuevo array que es la concatenación de aquél sobre el que se invoca, seguido de otros array(s) o valor(es).
-
Array.prototype.copyWithin()
-
Copia una secuencia de elementos de un array dentro del propio array.
-
Array.prototype.entries()
-
Devuelve un nuevo objeto Array Iterator que contiene los pares clave/valor para cada índice del array.
-
Array.prototype.every()
-
Devuelve true si todos los elementos del array cumplen el predicado que recibe como parámetro.
-
Array.prototype.fill()
-
Asigna un valor estático a todos los elementos del array entre las posiciones inicio y fin.
-
Array.prototype.filter()
-
Devuelve un nuevo array que contiene todos los elementos de aquél para el cual se llama que cumplan el predicado que se le pasa como parámetro.
-
Array.prototype.find()
-
Devuelve el primer elemento del array que cumpla el predicado que se pasa como parámetro, o undefined si ninguno lo cumple.
-
Array.prototype.findIndex()
-
Devuelve el índice del primer elemento del array que cumpla el predicado que se pasa como parámetro, o -1 si nunguno lo cumple.
-
Array.prototype.forEach()
-
Llama a la función pasada como parámetro para todos los elementos del array.
-
Array.prototype.includes()
-
Determina si el array contiene el valorBuscado y devuelve true o false según sea el caso.
-
Array.prototype.indexOf()
-
Devuelve el índice del primer elemento del array que sea igual a elementoBuscado, o -1 si no existe.
-
Array.prototype.join()
-
Concatena en un string todos los elementos de un array.
-
Array.prototype.keys()
-
Devuelve un nuevo Array Iterator que contiene las claves de cada índice del array.
-
Array.prototype.lastIndexOf()
-
Devuelve el índice del último elemento del array que sea igual a elementoBuscado, o -1 si no existe.
-
Array.prototype.map()
-
Devuelve un nuevo array que contiene el resultado de llamar a la función pasada como parámetro a todos los elementos del array sobre el que se invoca.
-
Array.prototype.pop()
-
Elimina el último elemento de un array, y devuelve dicho elemento.
-
Array.prototype.push()
-
Añade uno o más elementos al final de un array y devuelve el nuevo valor de su propiedad length.
-
Array.prototype.reduce()
-
Aplica la función pasada como parámetro a un acumulador y a cada valor del array, que se recorre de izquierda a derecha, para reducirlo a un único valor.
-
Array.prototype.reduceRight()
-
Aplica la función pasada como parámetro a un acumulador y a cada valor del array, que se recorre de derecha a izquierda, para reducirlo a un único valor.
-
Array.prototype.reverse()
-
Invierte el orden de los elementos de un array (el primero pasa a ser el último y el último a ser el primero) en el propio array. Este método modifica el array.
-
Array.prototype.shift()
-
Elimina el primer elemento de un array, y devuelve dicho elemento.
-
Array.prototype.slice()
-
Extrae una porción del array sobre el que se llama y devuelve un nuevo array.
-
Array.prototype.some()
-
Devuelve true si al menos un elemento del array cumple con el predicado que se pasa como parámetro.
-
Array.prototype.sort()
-
Ordena los elementos de un array, modificando éste, y devuelve el array ordenado.
-
Array.prototype.splice()
-
Añade, borra o modifica elementos de un array.
-
Array.prototype.toLocaleString()
-
Devuelve un string adaptado a la configuración regional que representa el array y sus elementos. Redefine el método Object.prototype.toLocaleString().
-
Array.prototype.toString()
-
Devuelve un string que representa el array y sus elementos. Redefine el método Object.prototype.toString().
-
Array.prototype.unshift()
-
Añada uno o más elementos al inicio de un array y devuelve el nuevo valor de length para el array resultante.
-
Array.prototype.values()
-
Devuelve un nuevo objeto Array Iterator que contiene los valores para cada índice del array.
-
Array.prototype[@@iterator]()
-
Devuelve un nuevo objeto Array Iterator que contiene los valores para cada índice del array.
-
- -

Ejemplos

- -

Creación de una matriz unidimensional

- -

El siguiente ejemplo crea un array mensajes con una longitud de 0, y luego asigna valores a mensajes[0] y a mensajes[99], con lo que la longitud del array pasa a ser 100.

- -
let mensajes = [];
+const miArray = miRe.exec('cdbBdbsbz')
+```
+
+Las propiedades y elementos que se obtienen de esta búsqueda son los siguientes:
+
+| Propiedad/Elemento                     | Descripción                                                                                                                                                                                            | Ejemplo              |
+| -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------- |
+| `input` {{ReadOnlyInline}}       | El string original sobre el que se ha realizado la búsqueda con la expresión regular                                                                                                                   | `"cdbBdbsbz"`        |
+| `index` {{ReadOnlyInline}}       | El índice de la correspondencia en el string, siendo cero el de la primera posición.                                                                                                                   | `1`                  |
+| `[0]` {{ReadOnlyInline}}         | Los últimos caracteres que cumplen la correspondencia                                                                                                                                                  | `"dbBd"`             |
+| `[1], ...[n]` {{ReadOnlyInline}} | Elementos que indican las correspondencias de substrings entre paréntesis (si se han incluido) de la expresión regular. No hay límite al número de substrings entre paréntesis que se puedan utilizar. | `[1]: "bB" [2]: "d"` |
+
+## Constructor
+
+- **[`Array()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array)**
+  - : Crea un nuevo objeto `Array`.
+
+## Propiedades estáticas
+
+- [`get Array[@@species]`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/@@species)
+  - : La función del constructor se utiliza para crear objetos derivados.
+
+## Métodos estáticos
+
+- [`Array.from()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/from)
+  - : Crea una nueva instancia de `Array` a partir de `similarAUnArray`, un objeto iterable o parecido a un _array._
+- [`Array.isArray()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/isArray)
+  - : Devuelve `true` si `valor` es un _array_, y `false` en caso contrario.
+- [`Array.of()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/of)
+  - : Crea una nueva instancia de `Array` con un número variable de parámetros, independientemente del número y del tipo de dichos parámetros.
+
+## Propiedades de instancia
+
+- [`Array.prototype.length`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/length)
+  - : Indica el número de elementos de un _array_.
+- [`Array.prototype[@@unscopables]`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/@@unscopables)
+  - : Símbolo que contiene todos los nombres de las propiedades que se excluyen de un ámbito de enlace [`with`](/es/docs/Web/JavaScript/Referencia/Sentencias/with).
+
+## Métodos de instancia
+
+- [`Array.prototype.concat()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/concat)
+  - : Devuelve un nuevo _array_ que es la concatenación de aquél sobre el que se invoca, seguido de otros _array(s)_ o valor(es).
+- [`Array.prototype.copyWithin()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/copyWithin)
+  - : Copia una secuencia de elementos de un _array_ dentro del propio _array_.
+- [`Array.prototype.entries()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/entries)
+  - : Devuelve un nuevo objeto `Array Iterator` que contiene los pares clave/valor para cada índice del _array_.
+- [`Array.prototype.every()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/every)
+  - : Devuelve `true` si todos los elementos del _array_ cumplen el predicado que recibe como parámetro.
+- [`Array.prototype.fill()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/fill)
+  - : Asigna un _`valor`_ estático a todos los elementos del _array_ entre las posiciones `inicio` y `fin`.
+- [`Array.prototype.filter()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/filter)
+  - : Devuelve un nuevo _array_ que contiene todos los elementos de aquél para el cual se llama que cumplan el predicado que se le pasa como parámetro.
+- [`Array.prototype.find()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/find)
+  - : Devuelve el primer _`elemento`_ del _array_ que cumpla el predicado que se pasa como parámetro, o `undefined` si ninguno lo cumple.
+- [`Array.prototype.findIndex()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/findIndex)
+  - : Devuelve el índice del primer elemento del _array_ que cumpla el predicado que se pasa como parámetro, o `-1` si nunguno lo cumple.
+- [`Array.prototype.forEach()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/forEach)
+  - : Llama a la función pasada como parámetro para todos los elementos del _array._
+- [`Array.prototype.includes()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/includes)
+  - : Determina si el _array_ contiene el `valorBuscado` y devuelve `true` o `false` según sea el caso.
+- [`Array.prototype.indexOf()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/indexOf)
+  - : Devuelve el índice del primer elemento del _array_ que sea igual a `elementoBuscado`, o `-1` si no existe.
+- [`Array.prototype.join()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/join)
+  - : Concatena en un string todos los elementos de un _array._
+- [`Array.prototype.keys()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/keys)
+  - : Devuelve un nuevo `Array Iterator` que contiene las claves de cada índice del _array._
+- [`Array.prototype.lastIndexOf()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/lastIndexOf)
+  - : Devuelve el índice del último elemento del _array_ que sea igual a `elementoBuscado`, o `-1` si no existe.
+- [`Array.prototype.map()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/map)
+  - : Devuelve un nuevo _array_ que contiene el resultado de llamar a la función pasada como parámetro a todos los elementos del _array_ sobre el que se invoca.
+- [`Array.prototype.pop()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/pop)
+  - : Elimina el último elemento de un _array_, y devuelve dicho elemento.
+- [`Array.prototype.push()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/push)
+  - : Añade uno o más elementos al final de un _array_ y devuelve el nuevo valor de su propiedad `length`.
+- [`Array.prototype.reduce()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/reduce)
+  - : Aplica la función pasada como parámetro a un `acumulador` y a cada valor del _array_, que se recorre de izquierda a derecha, para reducirlo a un único valor.
+- [`Array.prototype.reduceRight()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/reduceRight)
+  - : Aplica la función pasada como parámetro a un _`acumulador`_ y a cada valor del _array_, que se recorre de derecha a izquierda, para reducirlo a un único valor.
+- [`Array.prototype.reverse()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/reverse)
+  - : Invierte el orden de los elementos de un _array_ (el primero pasa a ser el último y el último a ser el primero) en el propio _array._ Este método modifica el array.
+- [`Array.prototype.shift()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/shift)
+  - : Elimina el primer elemento de un _array_, y devuelve dicho elemento.
+- [`Array.prototype.slice()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/slice)
+  - : Extrae una porción del _array_ sobre el que se llama y devuelve un nuevo _array_.
+- [`Array.prototype.some()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/some)
+  - : Devuelve `true` si al menos un elemento del _array_ cumple con el predicado que se pasa como parámetro.
+- [`Array.prototype.sort()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/sort)
+  - : Ordena los elementos de un _array_, modificando éste, y devuelve el array ordenado.
+- [`Array.prototype.splice()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/splice)
+  - : Añade, borra o modifica elementos de un _array_.
+- [`Array.prototype.toLocaleString()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/toLocaleString)
+  - : Devuelve un string adaptado a la configuración regional que representa el _array_ y sus elementos. Redefine el método [`Object.prototype.toLocaleString()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Object/toLocaleString).
+- [`Array.prototype.toString()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/toString)
+  - : Devuelve un string que representa el _array_ y sus elementos. Redefine el método [`Object.prototype.toString()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Object/toString).
+- [`Array.prototype.unshift()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/unshift)
+  - : Añada uno o más elementos al inicio de un _array_ y devuelve el nuevo valor de `length` para el _array_ resultante.
+- [`Array.prototype.values()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/values)
+  - : Devuelve un nuevo objeto `Array Iterator` que contiene los valores para cada índice del _array_.
+- [`Array.prototype[@@iterator]()`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/@@iterator)
+  - : Devuelve un nuevo objeto `Array Iterator` que contiene los valores para cada índice del _array_.
+
+Ejemplos
+
+### Creación de una matriz unidimensional
+
+El siguiente ejemplo crea un _array_ `mensajes` con una longitud de 0, y luego asigna valores a `mensajes[0]` y a `mensajes[99]`, con lo que la longitud del _array_ pasa a ser 100.
+
+```js
+let mensajes = [];
 mensajes[0] = "Hola";
 mensajes[99] = "mundo";
 
 if (mensajes.length === 100) {
    console.log("La longitud es de 100.");
 }
-
- -

Creación de una matriz de dos dimensiones

- -

El siguiente ejemplo crea una matriz bidimensional que representa un tablero de ajedrez. El primer movimiento se realiza copiando la 'p' de tablero[6][4] en tablero[4][4]. La posición [6][4] se limpia.

- -
let tablero = [
-  ['T','C','A','D','R','A','C','T'],
-  ['P','P','P','P','P','P','P','P'],
-  [' ',' ',' ',' ',' ',' ',' ',' '],
-  [' ',' ',' ',' ',' ',' ',' ',' '],
-  [' ',' ',' ',' ',' ',' ',' ',' '],
-  [' ',' ',' ',' ',' ',' ',' ',' '],
-  ['p','p','p','p','p','p','p','p'],
-  ['t','c','a','d','r','a','c','t'] ]
-
-console.log(tablero.join('\n') + '\n\n')
-
-// Adelantar dos posiciones el peón de rey
-tablero[4][4] = tablero[6][4]
-tablero[6][4] = ' '
-console.log(tablero.join('\n'))
- -

Este es el resultado:

- -
T,C,A,D,R,A,C,T
-P,P,P,P,P,P,P,P
- , , , , , , ,
- , , , , , , ,
- , , , , , , ,
- , , , , , , ,
-p,p,p,p,p,p,p,p
-t,c,a,d,r,a,c,t
-
-P,P,P,P,P,P,P,P
- , , , , , , ,
- , , , , , , ,
- , , , ,p, , ,
- , , , , , , ,
-p,p,p,p, ,p,p,p
-t,c,a,d,r,a,c,t
-
- -

Uso de un array para tabular un conjunto de valores

- -
valores = []
-for (let x = 0; x < 10; x++){
- valores.push([
-  2 ** x,
-  2 * x ** 2
- ])
-}
-console.table(valores)
- -

da como resultado:

- -
0	1	0
-1	2	2
-2	4	8
-3	8	18
-4	16	32
-5	32	50
-6	64	72
-7	128	98
-8	256	128
-9	512	162
- -

(La primera columna es el índice).

- -

Especificaciones

- - - - - - - - - - - - - - -
EspecificaciónPublicación inicial
{{SpecName('ESDraft', '#sec-array-objects', 'Array')}}ECMAScript 1
- -

Compatibilidad con navegadores

- - - -

{{Compat("javascript.builtins.Array")}}

- -

Ver también

- - +``` + +### Creación de una matriz de dos dimensiones + +El siguiente ejemplo crea una matriz bidimensional que representa un tablero de ajedrez. El primer movimiento se realiza copiando la `'p'` de `tablero[6][4]` en `tablero[4][4]`. La posición `[6][4]` se limpia. + + let tablero = [ + ['T','C','A','D','R','A','C','T'], + ['P','P','P','P','P','P','P','P'], + [' ',' ',' ',' ',' ',' ',' ',' '], + [' ',' ',' ',' ',' ',' ',' ',' '], + [' ',' ',' ',' ',' ',' ',' ',' '], + [' ',' ',' ',' ',' ',' ',' ',' '], + ['p','p','p','p','p','p','p','p'], + ['t','c','a','d','r','a','c','t'] ] + + console.log(tablero.join('\n') + '\n\n') + + // Adelantar dos posiciones el peón de rey + tablero[4][4] = tablero[6][4] + tablero[6][4] = ' ' + console.log(tablero.join('\n')) + +Este es el resultado: + + T,C,A,D,R,A,C,T + P,P,P,P,P,P,P,P + , , , , , , , + , , , , , , , + , , , , , , , + , , , , , , , + p,p,p,p,p,p,p,p + t,c,a,d,r,a,c,t + + P,P,P,P,P,P,P,P + , , , , , , , + , , , , , , , + , , , ,p, , , + , , , , , , , + p,p,p,p, ,p,p,p + t,c,a,d,r,a,c,t + +### Uso de un _array_ para tabular un conjunto de valores + + valores = [] + for (let x = 0; x < 10; x++){ + valores.push([ + 2 ** x, + 2 * x ** 2 + ]) + } + console.table(valores) + +da como resultado: + + 0 1 0 + 1 2 2 + 2 4 8 + 3 8 18 + 4 16 32 + 5 32 50 + 6 64 72 + 7 128 98 + 8 256 128 + 9 512 162 + +(La primera columna es el índice). + +## Especificaciones + +| Especificación | Publicación inicial | +| ------------------------------------------------------------------------ | ------------------- | +| {{SpecName('ESDraft', '#sec-array-objects', 'Array')}} | ECMAScript 1 | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array")}} + +## Ver también + +- En la Guía de JavaScript: + + - ["Propiedades indexadas de un objeto"](/es/docs/Web/JavaScript/Guide/Working_with_Objects#Indexing_object_properties) + - ["Colecciones con índice: objeto Array"](/es/docs/Web/JavaScript/Guide/Indexed_collections#Array_object) + +- [Arrays tipados](/es/docs/JavaScript_typed_arrays) diff --git a/files/es/web/javascript/reference/global_objects/array/indexof/index.md b/files/es/web/javascript/reference/global_objects/array/indexof/index.md index fbbb4366409bb6..c443587708b529 100644 --- a/files/es/web/javascript/reference/global_objects/array/indexof/index.md +++ b/files/es/web/javascript/reference/global_objects/array/indexof/index.md @@ -11,51 +11,50 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/indexOf original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/indexOf --- -
{{JSRef}}
+{{JSRef}} -

El método indexOf() retorna el primer índice en el que se puede encontrar un elemento dado en el array, ó retorna -1 si el elemento no esta presente.

+El método **indexOf()** retorna el primer índice en el que se puede encontrar un elemento dado en el array, ó retorna -1 si el elemento no esta presente. -
-

Nota: Para el método String, ver {{jsxref("String.prototype.indexOf()")}}.

-
+> **Nota:** Para el método String, ver {{jsxref("String.prototype.indexOf()")}}. -

Sintaxis

+## Sintaxis -
array.indexOf(searchElement[, fromIndex])
+ array.indexOf(searchElement[, fromIndex]) -

Parámetros

+### Parámetros -
-
searchElement
-
Elemento a encontrar en el array.
-
fromIndex {{optional_inline}}
-
Indica el índice por el que se comienza la búsqueda. Por defecto es 0, por lo que se busca en todo el array. Si el índice es mayor o igual a la longitud del array, devuelve -1, ya que no se buscaría en el array. Si el valor es negativo, se toma restando posiciones desde el final del array. Hay que tener en cuenta que aunque el índice sea negativo, la búsqueda seguirá realizándose en un orden incremental. Si el índice calculado es menor de 0, la búsqueda se realizará por todo el array.
-
+- `searchElement` + - : Elemento a encontrar en el array. +- `fromIndex` {{optional_inline}} + - : Indica el índice por el que se comienza la búsqueda. Por defecto es 0, por lo que se busca en todo el array. Si el índice es mayor o igual a la longitud del array, devuelve -1, ya que no se buscaría en el array. Si el valor es negativo, se toma restando posiciones desde el final del array. Hay que tener en cuenta que aunque el índice sea negativo, la búsqueda seguirá realizándose en un orden incremental. Si el índice calculado es menor de 0, la búsqueda se realizará por todo el array. -

Valor de retorno

+### Valor de retorno -

El primer índice del elemento en la matriz; -1 si no se encuentra.

+El primer índice del elemento en la matriz; -1 si no se encuentra. -

Descripción

+## Descripción -

indexOf() compara searchElement con los elementos del array usando igualdad estricta (el mismo método que cuando se usa ===, o el operador igualdad-triple).

+`indexOf()` compara `searchElement` con los elementos del array usando [igualdad estricta](/es/docs/Web/JavaScript/Referencia/Operadores/Comparison_Operators#Using_the_Equality_Operators "JavaScript/Reference/Operators/Comparison_Operators#Using_the_Equality_Operators") (el mismo método que cuando se usa ===, o el operador igualdad-triple). -

Ejemplos

+## Ejemplos -

Usando indexOf()

+### Usando `indexOf()` -

El siguiente ejemplo usa indexof() para localizar valores en un array

+El siguiente ejemplo usa `indexof()` para localizar valores en un array -
var array = [2, 9, 9];
+```js
+var array = [2, 9, 9];
 array.indexOf(2);     // 0
 array.indexOf(7);     // -1
 array.indexOf(9, 2);  // 2
 array.indexOf(2, -1); // -1
-array.indexOf(2, -3); // 0
+array.indexOf(2, -3); // 0 +``` -

Encontrar todas las apariciones de un elemento

+### Encontrar todas las apariciones de un elemento -
var indices = [];
+```js
+var indices = [];
 var array = ['a', 'b', 'a', 'c', 'a', 'd'];
 var element = 'a';
 var idx = array.indexOf(element);
@@ -64,15 +63,17 @@ while (idx != -1) {
   idx = array.indexOf(element, idx + 1);
 }
 console.log(indices);
-// [0, 2, 4]
+// [0, 2, 4] +``` -

Encontrar si un elemento existe en la matriz o no y actualizar la matriz

+### Encontrar si un elemento existe en la matriz o no y actualizar la matriz -
function updateVegetablesCollection (veggies, veggie) {
+```js
+function updateVegetablesCollection (veggies, veggie) {
     if (veggies.indexOf(veggie) === -1) {
         veggies.push(veggie);
         console.log('La nueva colección de vegetales es: ' + veggies);
-    } else if (veggies.indexOf(veggie) > -1) {
+    } else if (veggies.indexOf(veggie) > -1) {
         console.log(veggie + ' ya existe en la colección de verduras.');
     }
 }
@@ -82,16 +83,15 @@ var veggies = ['patata', 'tomate', 'chiles', 'pimientoverde'];
 updateVegetablesCollection(veggies, 'espinaca');
 // La nueva colección de verduras es : patata, tomate, chiles, pimientoverde, espinaca
 updateVegetablesCollection(veggies, 'espinaca');
-// La espinaca ya existe en la colección de verduras.
+// La espinaca ya existe en la colección de verduras. +``` -

+## Polyfill -

Polyfill

+`indexOf()` se agregó al estándar ECMA-262 en la 5a edición; por tanto no está implementado en todos los navegadores. Puedes hacerlo funcionar insertando el siguiente código al comienzo de tus scripts, permitiendo usar `indexOf()` en implementaciones que no lo soporten de forma nativa. Este algoritmo es exáctamente el especificado en ECMA-262, 5ª edición, suponiendo que {{jsxref("Global_Objects/TypeError", "TypeError")}} y {{jsxref("Math.abs()")}} tienen sus valores originales. -

indexOf() se agregó al estándar ECMA-262 en la 5a edición; por tanto no está implementado en todos los navegadores. Puedes hacerlo funcionar insertando el siguiente código al comienzo de tus scripts, permitiendo usar indexOf() en implementaciones que no lo soporten de forma nativa. Este algoritmo es exáctamente el especificado en ECMA-262, 5ª edición, suponiendo que {{jsxref("Global_Objects/TypeError", "TypeError")}} y {{jsxref("Math.abs()")}} tienen sus valores originales.

- - -
if (!Array.prototype.indexOf) {
+```js
+if (!Array.prototype.indexOf) {
   Array.prototype.indexOf = function indexOf(member, startFrom) {
     /*
     En el modo no estricto, si la variable `this` es null o indefinida, entonces se establece
@@ -107,11 +107,11 @@ updateVegetablesCollection(veggies, 'espinaca');
       that = this instanceof Object ? this : new Object(this),
       length = isFinite(that.length) ? Math.floor(that.length) : 0;
 
-    if (index >= length) {
+    if (index >= length) {
       return -1;
     }
 
-    if (index < 0) {
+    if (index < 0) {
       index = Math.max(length + index, 0);
     }
 
@@ -121,25 +121,27 @@ updateVegetablesCollection(veggies, 'espinaca');
         como `member` y, por lo tanto, es necesario verificarlas.
       */
       do {
-        if (index in that && that[index] === undefined) {
+        if (index in that && that[index] === undefined) {
           return index;
         }
-      } while (++index < length);
+      } while (++index < length);
     } else {
       do {
         if (that[index] === member) {
           return index;
         }
-      } while (++index < length);
+      } while (++index < length);
     }
 
     return -1;
   };
-}
+} +``` -

Sin embargo, si está más interesado en todos los pequeños trozos técnicos definidos por el estándar ECMA, y está menos preocupado por el rendimiento o la concisión, entonces usted puede encontrar esta polyfill más descriptivo que sea más útil.

+Sin embargo, si está más interesado en todos los pequeños trozos técnicos definidos por el estándar ECMA, y está menos preocupado por el rendimiento o la concisión, entonces usted puede encontrar esta polyfill más descriptivo que sea más útil. -
// Pasos de producción de ECMA-262, Edición 5, 15.4.4.14
+```js
+// Pasos de producción de ECMA-262, Edición 5, 15.4.4.14
 // Referencia: http://es5.github.io/#x15.4.4.14
 if (!Array.prototype.indexOf) {
   Array.prototype.indexOf = function(searchElement, fromIndex) {
@@ -157,7 +159,7 @@ if (!Array.prototype.indexOf) {
     // 2. Dejar que `lenValue` sea el resultado de llamar al método interno
     //    de `o` con el argumento "length".
     // 3. Dejar que len sea ToUint32(lenValue).
-    var len = o.length >>> 0;
+    var len = o.length >>> 0;
 
     // 4. Si `len` es 0, devolver -1.
     if (len === 0) {
@@ -168,18 +170,18 @@ if (!Array.prototype.indexOf) {
     //    ToInteger(fromIndex); si no, que `n` sea 0.
     var n = fromIndex | 0;
 
-    // 6. Si n >= len, devolver -1.
-    if (n >= len) {
+    // 6. Si n >= len, devolver -1.
+    if (n >= len) {
       return -1;
     }
 
-    // 7. Si n >= 0, entonces deja que `k` sea `n`.
-    // 8. Si no, n<0, deja que `k` sea `len - abs(n)`.
+    // 7. Si n >= 0, entonces deja que `k` sea `n`.
+    // 8. Si no, n<0, deja que `k` sea `len - abs(n)`.
     //    Si `k` es menor que 0, entonces deja que `k` sea 0.
-    k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
+    k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
 
-    // 9. Repite, mientras k < len
-    while (k < len) {
+    // 9. Repite, mientras k < len
+    while (k < len) {
       // a. Dejar que `Pk` sea ToString(k).
       //   Esto está implícito para los operandos LHS del operador in
       // b. Dejar que kPresent sea el resultado de llamar al método
@@ -192,58 +194,34 @@ if (!Array.prototype.indexOf) {
       //        Algoritmo de comparación de igualdad estricta a
       //        searchElement y elementK.
       //  iii.  Si `same` es true, devuelve `k`.
-      if (k in o && o[k] === searchElement) {
+      if (k in o && o[k] === searchElement) {
         return k;
       }
       k++;
     }
     return -1;
   };
-}
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES5.1', '#sec-15.4.4.14', 'Array.prototype.indexOf')}}{{Spec2('ES5.1')}}Definición inicial. Implementado en JavaScript 1.6.
{{SpecName('ES6', '#sec-array.prototype.indexof', 'Array.prototype.indexOf')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.prototype.indexof', 'Array.prototype.indexOf')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -

{{Compat("javascript.builtins.Array.indexOf")}}

- -

Notas de compatibilidad

- -
    -
  • Comenzando con Firefox 47 {{geckoRelease(47)}}, este método ya no devolverá -0. Por ejemplo, [0] .indexOf (0, -0) siempre devolverá +0 ({{bug(1242043)}}).
  • -
- -
- -

Ver también

- -
    -
  • {{jsxref("Array.prototype.lastIndexOf()")}}
  • -
  • {{jsxref("TypedArray.prototype.indexOf()")}}
  • -
  • {{jsxref("String.prototype.indexOf()")}}
  • -
+} +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.4.4.14', 'Array.prototype.indexOf')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementado en JavaScript 1.6. | +| {{SpecName('ES6', '#sec-array.prototype.indexof', 'Array.prototype.indexOf')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-array.prototype.indexof', 'Array.prototype.indexOf')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.indexOf")}} + +## Notas de compatibilidad + +- Comenzando con Firefox 47 {{geckoRelease(47)}}, este método ya no devolverá `-0`. Por ejemplo, `[0] .indexOf (0, -0)` siempre devolverá `+0` ({{bug(1242043)}}). + +## Ver también + +- {{jsxref("Array.prototype.lastIndexOf()")}} +- {{jsxref("TypedArray.prototype.indexOf()")}} +- {{jsxref("String.prototype.indexOf()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/isarray/index.md b/files/es/web/javascript/reference/global_objects/array/isarray/index.md index b977753b13d933..de415d58581d72 100644 --- a/files/es/web/javascript/reference/global_objects/array/isarray/index.md +++ b/files/es/web/javascript/reference/global_objects/array/isarray/index.md @@ -11,40 +11,40 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/isArray original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/isArray --- -
{{JSRef}}
+{{JSRef}} -

El método Array.isArray() determina si el valor pasado es un {{jsxref("Array")}}.

+El método **`Array.isArray()`** determina si el valor pasado es un {{jsxref("Array")}}. -
Array.isArray([1, 2, 3]);  // true
+```js
+Array.isArray([1, 2, 3]);  // true
 Array.isArray({foo: 123}); // false
 Array.isArray('foobar');   // false
 Array.isArray(undefined);  // false
-
+``` -

Sintaxis

+## Sintaxis -
Array.isArray(obj)
+ Array.isArray(obj) -

Parámetros

+### Parámetros -
-
obj
-
El objeto a evaluar.
-
+- `obj` + - : El objeto a evaluar. -

Valor de retorno

+### Valor de retorno -

true si el objeto es un {{jsxref("Array")}}; en caso contrario, false.

+`true` si el objeto es un {{jsxref("Array")}}; en caso contrario, `false`. -

Descripción

+## Descripción -

Si el objeto es un {{jsxref("Array")}}, devuelve true; false, en cualquier otro caso.

+Si el objeto es un {{jsxref("Array")}}, devuelve `true`; `false`, en cualquier otro caso. -

Vea el artículo “Determining with absolute accuracy whether or not a JavaScript object is an array” para más detalles.

+Vea el artículo [“Determining with absolute accuracy whether or not a JavaScript object is an array”](http://web.mit.edu/jwalden/www/isArray.html) para más detalles. -

Ejemplos

+## Ejemplos -
// las siguientes llamadas devuelven true
+```js
+// las siguientes llamadas devuelven true
 Array.isArray([]);
 Array.isArray([1]);
 Array.isArray(new Array());
@@ -63,13 +63,14 @@ Array.isArray('Array');
 Array.isArray(true);
 Array.isArray(false);
 Array.isArray({ __proto__: Array.prototype });
-
+``` -

instanceof vs isArray

+### `instanceof` vs `isArray` -

Al comprobar una instancia Array, Array.isArray es más recomendado que instanceof porque funciona a través de iframes.

+Al comprobar una instancia `Array`, `Array.isArray` es más recomendado que `instanceof` porque funciona a través de `iframes`. -
var iframe = document.createElement('iframe');
+```js
+var iframe = document.createElement('iframe');
 document.body.appendChild(iframe);
 xArray = window.frames[window.frames.length - 1].Array;
 var arr = new xArray(1,2,3); // [1,2,3]
@@ -78,52 +79,32 @@ var arr = new xArray(1,2,3); // [1,2,3]
 Array.isArray(arr);  // true
 // Considerado peligroso, porque no funciona a través de iframes
 arr instanceof Array; // false
-
+``` -

Polyfill

+## Polyfill -

Ejecutar el siguiente código antes de cualquier otro código creará un Array.isArray() si no está disponible de forma nativa.

+Ejecutar el siguiente código antes de cualquier otro código creará un `Array.isArray()` si no está disponible de forma nativa. -
if (!Array.isArray) {
+```js
+if (!Array.isArray) {
   Array.isArray = function(arg) {
     return Object.prototype.toString.call(arg) === '[object Array]';
   };
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES5.1', '#sec-15.4.3.2', 'Array.isArray')}}{{Spec2('ES5.1')}}Definición inicial. Implementado en JavaScript 1.8.5.
{{SpecName('ES6', '#sec-array.isarray', 'Array.isArray')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.isarray', 'Array.isArray')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
{{Compat("javascript.builtins.Array.isArray")}}
- -

Vea también

- -
    -
  • {{jsxref("Array")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------ | ---------------------------- | ----------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.4.3.2', 'Array.isArray')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementado en JavaScript 1.8.5. | +| {{SpecName('ES6', '#sec-array.isarray', 'Array.isArray')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-array.isarray', 'Array.isArray')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.isArray")}} + +## Vea también + +- {{jsxref("Array")}} diff --git a/files/es/web/javascript/reference/global_objects/array/join/index.md b/files/es/web/javascript/reference/global_objects/array/join/index.md index 1274b28407717f..993dbd48562321 100644 --- a/files/es/web/javascript/reference/global_objects/array/join/index.md +++ b/files/es/web/javascript/reference/global_objects/array/join/index.md @@ -11,101 +11,73 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/join original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/join --- -
{{JSRef}}
+{{JSRef}} -

El método join() une todos los elementos de una matriz (o un objeto similar a una matriz) en una cadena y devuelve esta cadena.

+El método **`join()`** une todos los elementos de una matriz (o un [objeto similar a una matriz](/es/docs/Web/JavaScript/Guide/Indexed_collections#Working_with_array-like_objects)) en una cadena y devuelve esta cadena. -

{{EmbedInteractiveExample("pages/js/array-join.html")}}

+{{EmbedInteractiveExample("pages/js/array-join.html")}} -

Sintaxis

+## Sintaxis -
arr.join([separator])
+ arr.join([separator]) -

Parámetros

+### Parámetros -
-
separador {{optional_inline}}
-
Es una cadena usada para separar cada uno de los elementos del arreglo. El separador es convertido a una cadena si es necesario. Si este se omite, los elementos del arreglo son separados con una coma (","). Si el separador es una cadena vacía todos los elementos son unidos sin ningún carácter entre ellos.
-
+- `separador` {{optional_inline}} + - : Es una `cadena` usada para separar cada uno de los elementos del arreglo. El separador es convertido a una `cadena` si es necesario. Si este se omite, los elementos del arreglo son separados con una coma (","). Si el `separador` es una `cadena` vacía todos los elementos son unidos sin ningún carácter entre ellos. -

Valor de retorno

+### Valor de retorno -

Una cadena con todos los elementos de la matriz unidos. Si arr.length es 0, se devuelve la cadena vacía.

+Una cadena con todos los elementos de la matriz unidos. Si `arr.length` es `0`, se devuelve la cadena vacía. -

Descripción

+## Descripción -

Las conversiones de cadena de todos los elementos de la matriz se unen en una cadena.

+Las conversiones de cadena de todos los elementos de la matriz se unen en una cadena. -
-

Si un elemento no está definido o es nulo, se convierte en la cadena vacía.

-
+> **Advertencia:** Si un elemento `no está definido` o es `nulo`, se convierte en la cadena vacía. -

Ejemplos

+## Ejemplos -

Uniendo un arreglo cuatro veces en diferentes formas

+### Uniendo un arreglo cuatro veces en diferentes formas -

El siguiente ejemplo crea un arreglo a con tres elementos para luego unir el arreglo cuatro veces: usando el separador predeterminado, luego una coma y un espacio, luego un signo de suma, y finalmente una cadena vacío.

+El siguiente ejemplo crea un arreglo `a` con tres elementos para luego unir el arreglo cuatro veces: usando el separador predeterminado, luego una coma y un espacio, luego un signo de suma, y finalmente una cadena vacío. -
var a = ['Viento', 'Lluvia', 'Fuego'];
+```js
+var a = ['Viento', 'Lluvia', 'Fuego'];
 var miVar1 = a.join();      // asigna 'Viento,Lluvia,Fuego' a miVar1
 var miVar2 = a.join(', ');  // asigna 'Viento, Lluvia, Fuego' a miVar2
 var miVar3 = a.join(' + '); // asigna 'Viento + Lluvia + Fuego' a miVar3
 var miVar4 = a.join('');    // asigna 'VientoLluviaFuego' a miVar4
-
+``` -

Unirse a un objeto tipo matriz

+### Unirse a un objeto tipo matriz -

El siguiente ejemplo une un objeto parecido a una matriz (argumentos), llamando a {{jsxref("Function.prototype.call")}} en Array.prototype.join.

+El siguiente ejemplo une un objeto parecido a una matriz ([`argumentos`](/es/docs/Web/JavaScript/Reference/Functions/arguments)), llamando a {{jsxref("Function.prototype.call")}} en `Array.prototype.join`. -
function f(a, b, c) {
+```js
+function f(a, b, c) {
   var s = Array.prototype.join.call(arguments);
   console.log(s); // '1,a,true'
 }
 f(1, 'a', true);
-//resultado esperado: "1,a,true"
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
ECMAScript 1st EditionEstándarDefinición inicial. Implementado en JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.4.4.5', 'Array.prototype.join')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-array.prototype.join', 'Array.prototype.join')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.prototype.join', 'Array.prototype.join')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
{{Compat("javascript.builtins.Array.join")}}
- -
- -

Ver también

- -
    -
  • {{jsxref("String.prototype.split()")}}
  • -
  • {{jsxref("Array.prototype.toString()")}}
  • -
  • {{jsxref("TypedArray.prototype.join()")}}
  • -
+//resultado esperado: "1,a,true" +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| ECMAScript 1st Edition | Estándar | Definición inicial. Implementado en JavaScript 1.1. | +| {{SpecName('ES5.1', '#sec-15.4.4.5', 'Array.prototype.join')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-array.prototype.join', 'Array.prototype.join')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-array.prototype.join', 'Array.prototype.join')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.join")}} + +## Ver también + +- {{jsxref("String.prototype.split()")}} +- {{jsxref("Array.prototype.toString()")}} +- {{jsxref("TypedArray.prototype.join()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/keys/index.md b/files/es/web/javascript/reference/global_objects/array/keys/index.md index 21e0f96d1b4aa0..e8731f0fe09d90 100644 --- a/files/es/web/javascript/reference/global_objects/array/keys/index.md +++ b/files/es/web/javascript/reference/global_objects/array/keys/index.md @@ -12,74 +12,57 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/keys original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/keys --- -
{{JSRef}}
+{{JSRef}} -

El método keys() devuelve un nuevo objeto Array Iterator que contiene las claves de índice con las que acceder a cada elemento en el array.

+El método **`keys()`** devuelve un nuevo objeto **`Array Iterator`** que contiene las claves de índice con las que acceder a cada elemento en el array. -

{{EmbedInteractiveExample("pages/js/array-keys.html")}}

+{{EmbedInteractiveExample("pages/js/array-keys.html")}} -

Sintaxis

+## Sintaxis -
arr.keys()
+ arr.keys() -

Valor de retorno

+### Valor de retorno -

Un nuevo objeto iterador {{jsxref("Array")}}.

+Un nuevo objeto iterador {{jsxref("Array")}}. -

Ejemplos

+## Ejemplos -

Uso básico

+### Uso básico -
var arr = ['a', 'b', 'c'];
+```js
+var arr = ['a', 'b', 'c'];
 var iterator = arr.keys();
 
 console.log(iterator.next()); // { value: 0, done: false }
 console.log(iterator.next()); // { value: 1, done: false }
 console.log(iterator.next()); // { value: 2, done: false }
 console.log(iterator.next()); // { value: undefined, done: true }
-
+``` -

El iterador no ignora los huecos

+### El iterador no ignora los huecos -
var arr = ['a', , 'c'];
+```js
+var arr = ['a', , 'c'];
 var sparseKeys = Object.keys(arr);
 var denseKeys = [...arr.keys()];
 console.log(sparseKeys); // ['0', '2']
 console.log(denseKeys);  // [0, 1, 2]
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-array.prototype.keys', 'Array.prototype.keys')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-array.prototype.keys', 'Array.prototype.keys')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
{{Compat("javascript.builtins.Array.keys")}}
- -
- -

Ver también

- - +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-array.prototype.keys', 'Array.prototype.keys')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-array.prototype.keys', 'Array.prototype.keys')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.keys")}} + +## Ver también + +- {{jsxref("Array.prototype.values()")}} +- {{jsxref("Array.prototype.entries()")}} +- [Protocolos de iteración](/es/docs/Web/JavaScript/Reference/Iteration_protocols) diff --git a/files/es/web/javascript/reference/global_objects/array/lastindexof/index.md b/files/es/web/javascript/reference/global_objects/array/lastindexof/index.md index 0375ef786a88c9..656fca78fc570f 100644 --- a/files/es/web/javascript/reference/global_objects/array/lastindexof/index.md +++ b/files/es/web/javascript/reference/global_objects/array/lastindexof/index.md @@ -13,72 +13,73 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/lastIndexOf original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/lastIndexOf --- -
{{JSRef}}
+{{JSRef}} -

El método lastIndexOf() devuelve el último índice en el que un cierto elemento puede encontrarse en el arreglo, ó -1 si el elemento no se encontrara. El arreglo es recorrido en sentido contrario, empezando por el índice fromIndex.

+El método **`lastIndexOf()`** devuelve el último índice en el que un cierto elemento puede encontrarse en el arreglo, ó `-1` si el elemento no se encontrara. El arreglo es recorrido en sentido contrario, empezando por el índice `fromIndex`. -

{{EmbedInteractiveExample("pages/js/array-lastindexof.html")}}

+{{EmbedInteractiveExample("pages/js/array-lastindexof.html")}} -

Sintaxis

+## Sintaxis -
arr.lastIndexOf(searchElement) arr.lastIndexOf(searchElement, fromIndex)
+ arr.lastIndexOf(searchElement) arr.lastIndexOf(searchElement, fromIndex) -

Parámetros

+### Parámetros -
-
searchElement
-
Elemento a encontrar en el arreglo.
-
fromIndex {{optional_inline}}
-
El índice en el que empieza la búsqueda en sentido contrario. Por defecto la longitud del arreglo menos uno (arr.length - 1), es decir, todo el arreglo será recorrido. Si el índice es mayor o igual que la longitud del arreglo, todo el arreglo será recorrido. Si es un valor negatigo, se usará como inicio del desplazamiento el final del arreglo. Darse cuenta que aún cuando el índice es negativo, el arreglo todavía será recorrido desde atrás hacia delante. Si el índice calculado es menor de 0, se devolverá -1, es decir, el arreglo no será recorrido.
-
+- `searchElement` + - : Elemento a encontrar en el arreglo. +- `fromIndex` {{optional_inline}} + - : El índice en el que empieza la búsqueda en sentido contrario. Por defecto la longitud del arreglo menos uno (`arr.length - 1`), es decir, todo el arreglo será recorrido. Si el índice es mayor o igual que la longitud del arreglo, todo el arreglo será recorrido. Si es un valor negatigo, se usará como inicio del desplazamiento el final del arreglo. Darse cuenta que aún cuando el índice es negativo, el arreglo todavía será recorrido desde atrás hacia delante. Si el índice calculado es menor de `0`, se devolverá `-1`, es decir, el arreglo no será recorrido. -

Valor de retorno

+### Valor de retorno -

El último índice del elemento en el arreglo; -1 si no se encuentra.

+El último índice del elemento en el arreglo; `-1` si no se encuentra. -

Descripción

+## Descripción -

lastIndexOf compara searchElement con los elementos del arreglo usando igualdad estricta (el mismo método es usado para la ===, operador triple igualdad).

+`lastIndexOf` compara `searchElement` con los elementos del arreglo usando [igualdad estricta](/es/docs/Web/JavaScript/Reference/Operators/Comparison_Operators#Using_the_Equality_Operators) (el mismo método es usado para la ===, operador triple igualdad). -

Ejemplos

+## Ejemplos -

Usando lastIndexOf

+### Usando `lastIndexOf` -

El siguiente ejemplo usa lastIndexOf para encontrar valores en un arreglo.

+El siguiente ejemplo usa `lastIndexOf` para encontrar valores en un arreglo. -
var array = [2, 5, 9, 2];
+```js
+var array = [2, 5, 9, 2];
 array.lastIndexOf(2);     // 3
 array.lastIndexOf(7);     // -1
 array.lastIndexOf(2, 3);  // 3
 array.lastIndexOf(2, 2);  // 0
 array.lastIndexOf(2, -2); // 0
 array.lastIndexOf(2, -1); // 3
-
+``` -

Encontrar todas las apariciones de un elemento

+### Encontrar todas las apariciones de un elemento -

El siguiente ejemplo uses lastIndexOf encuentra todos los índices de un elemento en un arreglo dado, usando {{jsxref("Array.prototype.push", "push")}} añadiéndolos a otro arreglo como elementos encontrados.

+El siguiente ejemplo uses `lastIndexOf` encuentra todos los índices de un elemento en un arreglo dado, usando {{jsxref("Array.prototype.push", "push")}} añadiéndolos a otro arreglo como elementos encontrados. -
var indices = [];
+```js
+var indices = [];
 var array = ['a', 'b', 'a', 'c', 'a', 'd'];
 var element = 'a';
 var idx = array.lastIndexOf(element);
 while (idx != -1) {
   indices.push(idx);
-  idx = (idx > 0 ? array.lastIndexOf(element, idx - 1) : -1);
+  idx = (idx > 0 ? array.lastIndexOf(element, idx - 1) : -1);
 }
 
 console.log(indices);
 // [4, 2, 0]
-
+``` -

Darse cuenta que en este caso tenemos que tratar idx == 0 de forma separada por que el elemento siempre será encontrado independiemente del valor del parámetro fromIndex si este es el primer elemento del arreglo. Diferente de como se trata en el método {{jsxref("Array.prototype.indexOf", "indexOf")}}.

+Darse cuenta que en este caso tenemos que tratar `idx == 0` de forma separada por que el elemento siempre será encontrado independiemente del valor del parámetro `fromIndex` si este es el primer elemento del arreglo. Diferente de como se trata en el método {{jsxref("Array.prototype.indexOf", "indexOf")}}. -

Polyfill

+## Polyfill -

lastIndexOf fue añadido al estándar ECMA-262 en la 5ª edición; por tanto puede que no este presente en otras implementaciones del estándar. Puedes solucionarlo escribiendo el siguiente código al principio de tus scripts, pudiendo usar lastIndexOf en implementaciones que no tiene soporte de forma nativa. Este algoritmo es exactamente el especificado en ECMA-262, 5ª edición, suponiendo que {{jsxref("Object")}}, {{jsxref("TypeError")}}, {{jsxref("Number")}}, {{jsxref("Math.floor")}}, {{jsxref("Math.abs")}}, y {{jsxref("Math.min")}} tienen sus valores originales.

+`lastIndexOf` fue añadido al estándar ECMA-262 en la 5ª edición; por tanto puede que no este presente en otras implementaciones del estándar. Puedes solucionarlo escribiendo el siguiente código al principio de tus scripts, pudiendo usar `lastIndexOf` en implementaciones que no tiene soporte de forma nativa. Este algoritmo es exactamente el especificado en ECMA-262, 5ª edición, suponiendo que {{jsxref("Object")}}, {{jsxref("TypeError")}}, {{jsxref("Number")}}, {{jsxref("Math.floor")}}, {{jsxref("Math.abs")}}, y {{jsxref("Math.min")}} tienen sus valores originales. -
// Pasos de producción de ECMA-262, Edición 5, 15.4.4.15
+```js
+// Pasos de producción de ECMA-262, Edición 5, 15.4.4.15
 // Referencia: http://es5.github.io/#x15.4.4.15
 if (!Array.prototype.lastIndexOf) {
   Array.prototype.lastIndexOf = function(searchElement /*, fromIndex*/) {
@@ -90,76 +91,51 @@ if (!Array.prototype.lastIndexOf) {
 
     var n, k,
       t = Object(this),
-      len = t.length >>> 0;
+      len = t.length >>> 0;
     if (len === 0) {
       return -1;
     }
 
     n = len - 1;
-    if (arguments.length > 1) {
+    if (arguments.length > 1) {
       n = Number(arguments[1]);
       if (n != n) {
         n = 0;
       }
-      else if (n != 0 && n != (1 / 0) && n != -(1 / 0)) {
-        n = (n > 0 || -1) * Math.floor(Math.abs(n));
+      else if (n != 0 && n != (1 / 0) && n != -(1 / 0)) {
+        n = (n > 0 || -1) * Math.floor(Math.abs(n));
       }
     }
 
-    for (k = n >= 0 ? Math.min(n, len - 1) : len - Math.abs(n); k >= 0; k--) {
-      if (k in t && t[k] === searchElement) {
+    for (k = n >= 0 ? Math.min(n, len - 1) : len - Math.abs(n); k >= 0; k--) {
+      if (k in t && t[k] === searchElement) {
         return k;
       }
     }
     return -1;
   };
 }
-
- -

De nuevo, darse cuenta que esta implementación tiene como objeto la completa compatibilidad con lastIndexOf en Firefox y el motor SpiderMonkey JavaScript, en particular en varios casos que son posiblemente extremos. Si pretendes usar esta funcionalidad en aplicaciones reales, es posible que puedes calcular from con código menos complejo si ignoras estos casos.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES5.1', '#sec-15.4.4.15', 'Array.prototype.lastIndexOf')}}{{Spec2('ES5.1')}}Definición inicial. Implementado en JavaScript 1.6.
{{SpecName('ES6', '#sec-array.prototype.lastindexof', 'Array.prototype.lastIndexOf')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.prototype.lastindexof', 'Array.prototype.lastIndexOf')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
{{Compat("javascript.builtins.Array.lastIndexOf")}}
- -
- -

Notas de compatibilidad

- -
    -
  • Desde Firefox 47 {{geckoRelease(47)}}, el método ya no devolverá -0. Por ejemplo, [0].lastIndexOf(0, -0) siempre devolverá +0 ({{bug(1242043)}}).
  • -
- -

Ver también

- -
    -
  • {{jsxref("Array.prototype.indexOf()")}}
  • -
  • {{jsxref("TypedArray.prototype.lastIndexOf()")}}
  • -
+``` + +De nuevo, darse cuenta que esta implementación tiene como objeto la completa compatibilidad con `lastIndexOf` en Firefox y el motor SpiderMonkey JavaScript, en particular en varios casos que son posiblemente extremos. Si pretendes usar esta funcionalidad en aplicaciones reales, es posible que puedes calcular `from` con código menos complejo si ignoras estos casos. + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------------------ | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.4.4.15', 'Array.prototype.lastIndexOf')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementado en JavaScript 1.6. | +| {{SpecName('ES6', '#sec-array.prototype.lastindexof', 'Array.prototype.lastIndexOf')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-array.prototype.lastindexof', 'Array.prototype.lastIndexOf')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.lastIndexOf")}} + +## Notas de compatibilidad + +- Desde Firefox 47 {{geckoRelease(47)}}, el método ya no devolverá `-0`. Por ejemplo, `[0].lastIndexOf(0, -0)` siempre devolverá `+0` ({{bug(1242043)}}). + +## Ver también + +- {{jsxref("Array.prototype.indexOf()")}} +- {{jsxref("TypedArray.prototype.lastIndexOf()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/length/index.md b/files/es/web/javascript/reference/global_objects/array/length/index.md index a7951ab8f9d3d9..b231103828ffba 100644 --- a/files/es/web/javascript/reference/global_objects/array/length/index.md +++ b/files/es/web/javascript/reference/global_objects/array/length/index.md @@ -10,19 +10,18 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/length original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/length --- -
{{JSRef}}
+{{JSRef}} -

La propiedad length de un objeto que es una instancia de tipo Array establece o devuelve la cantidad de elementos en esa matriz. El valor es un entero sin signo de 32 bits que siempre es numéricamente mayor que el índice más alto en la matriz.

+La propiedad **`length`** de un objeto que es una instancia de tipo Array establece o devuelve la cantidad de elementos en esa matriz. El valor es un entero sin signo de 32 bits que siempre es numéricamente mayor que el índice más alto en la matriz. -
-

{{EmbedInteractiveExample("pages/js/array-length.html")}}

-
+{{EmbedInteractiveExample("pages/js/array-length.html")}} -

Descripción

+## Descripción -

El valor de la propiedad length es un número entero con un signo positivo y un valor menor que 2 a la 32a potencia (232).

+El valor de la propiedad `length` es un número entero con un signo positivo y un valor menor que 2 a la 32a potencia (232). -
var namelistA = new Array(4294967296); //2 a la 32a potencia = 4294967296
+```js
+var namelistA = new Array(4294967296); //2 a la 32a potencia = 4294967296
 var namelistC = new Array(-100) //signo negativo
 
 console.log(namelistA.length); //RangeError: longitud de la matriz inválida
@@ -34,11 +33,13 @@ var namelistB = [];
 namelistB.length = Math.pow(2,32)-1; //establecer una longitud de la matriz menor que 2 a la 32ª potencia
 console.log(namelistB.length);
 
-//4294967295
+//4294967295 +``` -

Puedes establecer la propiedad length para truncar una matriz unidimensional en cualquier momento. Cuando extiende una matriz cambiando su propiedad length, el número de elementos reales aumenta; por ejemplo, si se establece length en 3 cuando actualmente es 2, la matriz ahora contiene 3 elementos, lo que hace que el tercer elemento sea undefined.

+Puedes establecer la propiedad `length` para truncar una matriz unidimensional en cualquier momento. Cuando extiende una matriz cambiando su propiedad `length`, el número de elementos reales aumenta; por ejemplo, si se establece `length` en 3 cuando actualmente es 2, la matriz ahora contiene 3 elementos, lo que hace que el tercer elemento sea `undefined`. -
var arr = [1, 2, 3];
+```js
+var arr = [1, 2, 3];
 printEntries(arr);
 
 arr.length = 5; // establecer la longitud de la matriz en 5 mientras que actualmente es 3.
@@ -46,7 +47,7 @@ printEntries(arr);
 
 function printEntries(arr) {
   var length = arr.length;
-  for (var i = 0; i < length; i++) {
+  for (var i = 0; i < length; i++) {
     console.log(arr[i]);
   }
   console.log('=== printed ===');
@@ -61,84 +62,60 @@ function printEntries(arr) {
 // 3
 // undefined
 // undefined
-// === impreso ===
+// === impreso === +``` -

Pero, la propiedad length no necesariamente indica el número de valores definidos en la matriz. Ver también Relación entre length y las propiedades numéricas.

+Pero, la propiedad `length` no necesariamente indica el número de valores definidos en la matriz. Ver también [Relación entre `length` y las propiedades numéricas](/es/docs/Web/JavaScript/Reference/Global_Objects/Array#Relationship_between_length_and_numerical_properties "Relationship between length and numerical properties"). -

{{js_property_attributes(1, 0, 0)}}

+{{js_property_attributes(1, 0, 0)}} -
    -
  • Sobrescribir: si este atributo se establece en false, el valor de la propiedad no se puede cambiar.
  • -
  • Configurable: si este atributo se establece en false, cualquier intento de eliminar la propiedad o cambiar sus atributos (Sobrescribir, Configurable o Numerable) fallará.
  • -
  • Numerable: si este atributo se establece en true, la propiedad se repetirá durante los bucles for o for..in.
  • -
+- `Sobrescribir`: si este atributo se establece en `false`, el valor de la propiedad no se puede cambiar. +- `Configurable`: si este atributo se establece en `false`, cualquier intento de eliminar la propiedad o cambiar sus atributos (`Sobrescribir`, `Configurable `o `Numerable`) fallará. +- `Numerable`: si este atributo se establece en `true`, la propiedad se repetirá durante los bucles [for](/es/docs/Web/JavaScript/Reference/Statements/for) o [for..in](/es/docs/Web/JavaScript/Reference/Statements/for...in). -

Ejemplos

+## Ejemplos -

Iterando sobre una matriz

+### Iterando sobre una matriz -

En el siguiente ejemplo, la matriz numbers se itera a través de la propiedad length. El valor en cada elemento se duplica.

+En el siguiente ejemplo, la matriz `numbers` se itera a través de la propiedad `length`. El valor en cada elemento se duplica. -
var numbers = [1, 2, 3, 4, 5];
+```js
+var numbers = [1, 2, 3, 4, 5];
 var length = numbers.length;
-for (var i = 0; i < length; i++) {
+for (var i = 0; i < length; i++) {
   numbers[i] *= 2;
 }
-// numbers ahora es [2, 4, 6, 8, 10]
+// numbers ahora es [2, 4, 6, 8, 10] +``` -

Acortando una matriz

+### Acortando una matriz -

El siguiente ejemplo acorta los numbers de la matriz a una longitud de 3 si la longitud actual es mayor que 3.

+El siguiente ejemplo acorta los `numbers` de la matriz a una longitud de `3` si la longitud actual es mayor que `3`. -
var numbers = [1, 2, 3, 4, 5];
+```js
+var numbers = [1, 2, 3, 4, 5];
 
-if (numbers.length > 3) {
+if (numbers.length > 3) {
   numbers.length = 3;
 }
 
 console.log(numbers); // [1, 2, 3]
-console.log(numbers.length); // 3
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
ECMAScript 1ra Edición.EstándarDefinición inicial.
{{SpecName('ES5.1', '#sec-15.4.5.2', 'Array.length')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-properties-of-array-instances-length', 'Array.length')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-properties-of-array-instances-length', 'Array.length')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
{{Compat("javascript.builtins.Array.length")}}
- -
- -

Ver también

- -
    -
  • {{jsxref("Array")}}
  • -
+console.log(numbers.length); // 3 +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| ECMAScript 1ra Edición. | Estándar | Definición inicial. | +| {{SpecName('ES5.1', '#sec-15.4.5.2', 'Array.length')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-properties-of-array-instances-length', 'Array.length')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-properties-of-array-instances-length', 'Array.length')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.length")}} + +## Ver también + +- {{jsxref("Array")}} diff --git a/files/es/web/javascript/reference/global_objects/array/of/index.md b/files/es/web/javascript/reference/global_objects/array/of/index.md index 60e2581049c087..9fb4530d1fb373 100644 --- a/files/es/web/javascript/reference/global_objects/array/of/index.md +++ b/files/es/web/javascript/reference/global_objects/array/of/index.md @@ -10,89 +10,68 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/of original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/of --- -
{{JSRef}}
+{{JSRef}} -

El método Array.of() crea una nueva instancia Array con un número variable de elementos pasados como argumento, independientemente del número o del tipo.

+El método **`Array.of()`** crea una nueva instancia `Array` con un número variable de elementos pasados como argumento, independientemente del número o del tipo. -

La diferencia entre Array.of() y el constructor Array reside en como maneja los parámetros de tipo entero: Array.of(7) crea un array con un solo elemento, 7, mientras que Array(7) crea un array vacío con una propiedad length de 7 (Nota: esto implica un array de 7 ranuras vacías, no ranuras con valores undefined).

+La diferencia entre **`Array.of()`** y el constructor **`Array`** reside en como maneja los parámetros de tipo entero: **`Array.of(7)`** crea un array con un solo elemento, `7`, mientras que **`Array(7)`** crea un array vacío con una propiedad `length` de 7 (**Nota:** esto implica un array de 7 ranuras vacías, no ranuras con valores `undefined`). -
Array.of(7);       // [7]
+```js
+Array.of(7);       // [7]
 Array.of(1, 2, 3); // [1, 2, 3]
 
 Array(7);          // [ , , , , , , ]
-Array(1, 2, 3);    // [1, 2, 3]
+Array(1, 2, 3); // [1, 2, 3] +``` -

Sintaxis

+## Sintaxis -
Array.of(elemento0[, elemento1[, ...[, elementoN]]])
+ Array.of(elemento0[, elemento1[, ...[, elementoN]]]) -

Parámetros

+### Parámetros -
-
elementoN
-
Valores con los que se creará el Array en su respectivo indice.
-
-

Valor de retorno

-
-
Una nueva instancia de {{jsxref("Array")}}.
-
+- `elementoN` + - : Valores con los que se creará el Array en su respectivo indice. +- ### Valor de retorno + - : Una nueva instancia de {{jsxref("Array")}}. -

Descripción

+## Descripción -

Esta función es parte del estándar ECMAScript 2015. Para obtener más información, consulte Array.of y Array.from proposal y Array.of polyfill.

+Esta función es parte del estándar ECMAScript 2015. Para obtener más información, consulte [`Array.of` y `Array.from` proposal](https://gist.github.com/rwaldron/1074126) y [`Array.of` polyfill](https://gist.github.com/rwaldron/3186576). -

Ejemplos

+## Ejemplos -
Array.of(1);         // [1]
+```js
+Array.of(1);         // [1]
 Array.of(1, 2, 3);   // [1, 2, 3]
 Array.of(undefined); // [undefined]
-
+``` -

Polyfill

+## Polyfill -

Escribiendo el siguiente código antes que cualquier otro, podemos emular la funcionalidad de Array.of() si es que ésta no está disponible de forma nativa.

+Escribiendo el siguiente código antes que cualquier otro, podemos emular la funcionalidad de `Array.of()` si es que ésta no está disponible de forma nativa. -
if (!Array.of) {
+```js
+if (!Array.of) {
   Array.of = function() {
     return Array.prototype.slice.call(arguments);
   };
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES2015', '#sec-array.of', 'Array.of')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-array.of', 'Array.of')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
- - -

{{Compat("javascript.builtins.Array.of")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Array")}}
  • -
  • {{jsxref("Array.from()")}}
  • -
  • {{jsxref("TypedArray.of()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-array.of', 'Array.of')}} | {{Spec2('ES2015')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-array.of', 'Array.of')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.of")}} + +## Ver también + +- {{jsxref("Array")}} +- {{jsxref("Array.from()")}} +- {{jsxref("TypedArray.of()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/pop/index.md b/files/es/web/javascript/reference/global_objects/array/pop/index.md index ddea71c1c1604d..18c9739f65c0d8 100644 --- a/files/es/web/javascript/reference/global_objects/array/pop/index.md +++ b/files/es/web/javascript/reference/global_objects/array/pop/index.md @@ -10,86 +10,61 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/pop original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/pop --- -
{{JSRef}}
+{{JSRef}} -

El método pop() elimina el último elemento de un array y lo devuelve. Este método cambia la longitud del array.

+El método **`pop()`** elimina el **último** elemento de un array y lo devuelve. Este método cambia la longitud del array. -
{{EmbedInteractiveExample("pages/js/array-pop.html")}}
+{{EmbedInteractiveExample("pages/js/array-pop.html")}} -

Sintaxis

+## Sintaxis -
arr.pop()
+ arr.pop() -

Valor devuelto

+### Valor devuelto -

El elemento que ha sido eliminado del array; {{jsxref("undefined")}} si el array está vacío.

+El elemento que ha sido eliminado del array; {{jsxref("undefined")}} si el array está vacío. -

Descripción

+## Descripción -

El método pop elimina el último elemento de un array y devuelve su valor al método que lo llamó.

+El método `pop` elimina el último elemento de un array y devuelve su valor al método que lo llamó. -

pop es intencionadamente genérico; este método puede ser {{jsxref("Function.call", "called", "", 1)}} o {{jsxref("Function.apply", "applied", "", 1)}} en objectos similares a un array. En objetos que no contengan una propiedad length, que refleje su forma en una serie de propiedades numéricas consecutivas en base cero, puede no comportarse de manera significativa.

+`pop` es intencionadamente genérico; este método puede ser {{jsxref("Function.call", "called", "", 1)}} o {{jsxref("Function.apply", "applied", "", 1)}} en objectos similares a un array. En objetos que no contengan una propiedad `length`, que refleje su forma en una serie de propiedades numéricas consecutivas en base cero, puede no comportarse de manera significativa. -

Si se llama a pop() en un array vacío, devuelve {{jsxref("undefined")}}.

+Si se llama a `pop()` en un array vacío, devuelve {{jsxref("undefined")}}. -

Ejemplos

+## Ejemplos -

Eliminando el último elemento de un array

+### Eliminando el último elemento de un array -

El siguiente código crea el array myFish, que contiene cuatro elementos, a continuación, elimina su último elemento.

+El siguiente código crea el array `myFish`, que contiene cuatro elementos, a continuación, elimina su último elemento. -
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
+```js
+var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
 
 var popped = myFish.pop();
 
 console.log(myFish); // ['angel', 'clown', 'mandarin' ]
 
-console.log(popped); // 'sturgeon'
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES3')}}EstándarDefinición inicial. Implementada en JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.6', 'Array.prototype.pop')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-array.prototype.pop', 'Array.prototype.pop')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.prototype.pop', 'Array.prototype.pop')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
-

{{Compat("javascript.builtins.Array.pop")}}

-
- -

Vea también

- -
    -
  • {{jsxref("Array.prototype.push()")}}
  • -
  • {{jsxref("Array.prototype.shift()")}}
  • -
  • {{jsxref("Array.prototype.unshift()")}}
  • -
  • {{jsxref("Array.prototype.concat()")}}
  • -
  • {{jsxref("Array.prototype.splice()")}}
  • -
+console.log(popped); // 'sturgeon' +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES3')}} | Estándar | Definición inicial. Implementada en JavaScript 1.2. | +| {{SpecName('ES5.1', '#sec-15.4.4.6', 'Array.prototype.pop')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-array.prototype.pop', 'Array.prototype.pop')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-array.prototype.pop', 'Array.prototype.pop')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.pop")}} + +## Vea también + +- {{jsxref("Array.prototype.push()")}} +- {{jsxref("Array.prototype.shift()")}} +- {{jsxref("Array.prototype.unshift()")}} +- {{jsxref("Array.prototype.concat()")}} +- {{jsxref("Array.prototype.splice()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/push/index.md b/files/es/web/javascript/reference/global_objects/array/push/index.md index 52706ba2a60492..6c281be8c6c6cf 100644 --- a/files/es/web/javascript/reference/global_objects/array/push/index.md +++ b/files/es/web/javascript/reference/global_objects/array/push/index.md @@ -10,55 +10,55 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/push original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/push --- -
{{JSRef}}
+{{JSRef}} -

El método push() añade uno o más elementos al final de un array y devuelve la nueva longitud del array.

+El método **`push()`** añade uno o más elementos al final de un array y devuelve la nueva longitud del array. -
{{EmbedInteractiveExample("pages/js/array-push.html")}}
+{{EmbedInteractiveExample("pages/js/array-push.html")}} -

Sintaxis

+## Sintaxis -
arr.push(element1[, ...[, elementN]])
+ arr.push(element1[, ...[, elementN]]) -

Parámetros

+### Parámetros -
-
elementN
-
Los elementos a añadir al final del array.
-
+- `elementN` + - : Los elementos a añadir al final del array. -

Valor devuelto

+### Valor devuelto -

La nueva propiedad {{jsxref("Array.length", "length")}} del objeto sobre el cual se efectuó la llamada.

+La nueva propiedad {{jsxref("Array.length", "length")}} del objeto sobre el cual se efectuó la llamada. -

Descripción

+## Descripción -

El método push es muy práctico para añadir valores a un array.

+El método `push` es muy práctico para añadir valores a un array. -

push es genérico intencionadamente. Este método puede ser {{jsxref("Function.call", "call()")}} o {{jsxref("Function.apply", "apply()")}} a objetos que representen arrays. El método push depende de la propiedad length para decidir donde empezar a insertar los valores dados. Si el valor de la propiedad length no puede ser convertido en numérico, el índice 0 es usado. Esto permite la posibilidad de que la propiedad length sea inexistente, y en este caso length será creado.

+`push` es genérico intencionadamente. Este método puede ser {{jsxref("Function.call", "call()")}} o {{jsxref("Function.apply", "apply()")}} a objetos que representen arrays. El método `push` depende de la propiedad `length` para decidir donde empezar a insertar los valores dados. Si el valor de la propiedad `length` no puede ser convertido en numérico, el índice 0 es usado. Esto permite la posibilidad de que la propiedad `length` sea inexistente, y en este caso `length` será creado. -

Los únicos objetos nativos que se asemejen al array son {{jsxref("Global_Objects/String", "strings", "", 1)}} objetos, aunque estos no se puedan usar en la aplicación de este método ya que son inmutables.

+Los únicos objetos nativos que se asemejen al array son {{jsxref("Global_Objects/String", "strings", "", 1)}} objetos, aunque estos no se puedan usar en la aplicación de este método ya que son inmutables. -

Ejemplos

+## Ejemplos -

Ejemplo: Añadiendo elementos a un array

+### Ejemplo: Añadiendo elementos a un array -

El siguiente código crea el array sports que contiene dos elementos, luego añade 2 elementos más. Tras ejecutar el código, sports contiene 4 elementos: "soccer", "baseball", "football" and "swimming".

+El siguiente código crea el array `sports` que contiene dos elementos, luego añade 2 elementos más. Tras ejecutar el código, `sports` contiene 4 elementos: "soccer", "baseball", "football" and "swimming". -
var sports = ['soccer', 'baseball'];
+```js
+var sports = ['soccer', 'baseball'];
 var total = sports.push('football', 'swimming');
 
 console.log(sports); // ['soccer', 'baseball', 'football', 'swimming']
 console.log(total);  // 4
-
+``` -

Uniendo dos arrays

+### Uniendo dos arrays -

This example uses {{jsxref("Function.apply", "apply()")}} to push all elements from a second array.

+This example uses {{jsxref("Function.apply", "apply()")}} to push all elements from a second array. -

Do not use this method if the second array (moreVegs in the example) is very large, because the maximum number of parameters that one function can take is limited in practice. See {{jsxref("Function.apply", "apply()")}} for more details.

+Do _not_ use this method if the second array (`moreVegs` in the example) is very large, because the maximum number of parameters that one function can take is limited in practice. See {{jsxref("Function.apply", "apply()")}} for more details. -
var vegetables = ['parsnip', 'potato'];
+```js
+var vegetables = ['parsnip', 'potato'];
 var moreVegs = ['celery', 'beetroot'];
 
 // Merge the second array into the first one
@@ -66,13 +66,14 @@ var moreVegs = ['celery', 'beetroot'];
 Array.prototype.push.apply(vegetables, moreVegs);
 
 console.log(vegetables); // ['parsnip', 'potato', 'celery', 'beetroot']
-
+``` -

Using an object in an array-like fashion

+### Using an object in an array-like fashion -

Como se menciona anteriormente, push es intencionadamente genérico, y podemos usar eso a nuestro favor. Array.prototype.push puede funcionar bien con un objeto, como muestra este ejemplo. Ten en cuenta que no se crea un array para almacenar una colección de objetos. En su lugar, almacenamos la colección en el propio objeto y se utiliza el método call sobre Array.prototype.push para hacer creer al método que estamos tratando a un array, y simplemente funciona, gracias a la forma en que JavaScript nos permite establecer el contexto de la ejecución.

+Como se menciona anteriormente, `push` es intencionadamente genérico, y podemos usar eso a nuestro favor. `Array.prototype.push` puede funcionar bien con un objeto, como muestra este ejemplo. Ten en cuenta que no se crea un array para almacenar una colección de objetos. En su lugar, almacenamos la colección en el propio objeto y se utiliza el método `call` sobre `Array.prototype.push` para hacer creer al método que estamos tratando a un array, y simplemente funciona, gracias a la forma en que JavaScript nos permite establecer el contexto de la ejecución. -
var obj = {
+```js
+var obj = {
     length: 0,
 
     addElem: function addElem(elem) {
@@ -87,55 +88,26 @@ obj.addElem({});
 obj.addElem({});
 console.log(obj.length);
 // → 2
-
- -

Tenga en cuenta que aunque obj no es un array, el método push ha incrementado satisfactoriamente la propiedad length de obj tal y como si se tratara de un array.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES3')}}{{Spec2('ES3')}}Definición inicial. Implementado en JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.7', 'Array.prototype.push')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-array.prototype.push', 'Array.prototype.push')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.prototype.push', 'Array.prototype.push')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en navegadores

- -
- - -

{{Compat("javascript.builtins.Array.push")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Array.prototype.pop()")}}
  • -
  • {{jsxref("Array.prototype.shift()")}}
  • -
  • {{jsxref("Array.prototype.unshift()")}}
  • -
  • {{jsxref("Array.prototype.concat()")}}
  • -
+``` + +Tenga en cuenta que aunque `obj` no es un array, el método `push` ha incrementado satisfactoriamente la propiedad `length` de `obj` tal y como si se tratara de un array. + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Definición inicial. Implementado en JavaScript 1.2. | +| {{SpecName('ES5.1', '#sec-15.4.4.7', 'Array.prototype.push')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-array.prototype.push', 'Array.prototype.push')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-array.prototype.push', 'Array.prototype.push')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en navegadores + +{{Compat("javascript.builtins.Array.push")}} + +## Ver también + +- {{jsxref("Array.prototype.pop()")}} +- {{jsxref("Array.prototype.shift()")}} +- {{jsxref("Array.prototype.unshift()")}} +- {{jsxref("Array.prototype.concat()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/reduce/index.md b/files/es/web/javascript/reference/global_objects/array/reduce/index.md index cec4b377c86cc3..e30f9a8c53672f 100644 --- a/files/es/web/javascript/reference/global_objects/array/reduce/index.md +++ b/files/es/web/javascript/reference/global_objects/array/reduce/index.md @@ -12,65 +12,56 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/Reduce original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/reduce --- -
{{JSRef}}
+{{JSRef}} -

El método reduce() ejecuta una función reductora sobre cada elemento de un array, devolviendo como resultado un único valor.

+El método **`reduce()`** ejecuta una función **reductora** sobre cada elemento de un array, devolviendo como resultado un único valor. -
{{EmbedInteractiveExample("pages/js/array-reduce.html")}}
+{{EmbedInteractiveExample("pages/js/array-reduce.html")}} -

La función reductora recibe cuatro argumentos:

+La función **reductora** recibe cuatro argumentos: -
    -
  1. Acumulador (acc)
  2. -
  3. Valor Actual (cur)
  4. -
  5. Índice Actual (idx)
  6. -
  7. Array (src)
  8. -
+1. Acumulador (`acc`) +2. Valor Actual (`cur`) +3. Índice Actual (_`idx`_) +4. Array (_`src`_) -

El valor devuelto de la función reductora se asigna al acumulador, cuyo valor se recuerda en cada iteración de la matriz y, en última instancia, se convierte en el valor final, único y resultante.

+El valor devuelto de la función **reductora** se asigna al acumulador, cuyo valor se recuerda en cada iteración de la matriz y, en última instancia, se convierte en el valor final, único y resultante. -

Sintaxis

+## Sintaxis -
arr.reduce(callback(acumulador, valorActual[, índice[, array]])[, valorInicial])
+ arr.reduce(callback(acumulador, valorActual[, índice[, array]])[, valorInicial]) -

Parámetros

+### Parámetros -
-
callback
-
Función a ejecutar sobre cada elemento del array (excepto para el primero, si no se proporciona valorInicial), que recibe cuatro parámetros: -
-
acumulador
-
El acumulador acumula el valor devuelto por la función callback. Es el valor acumulado devuelto en la última invocación de callback, o el valorInicial, si se proveyó. (Ver a continuación).
-
valorActual
-
El elemento actual que está siendo procesado en el array.
-
índice {{optional_inline}}
-
El índice del elemento actual que está siendo procesado en el array. Empieza desde el índice 0 si se provee valorInicial. En caso contrario, comienza desde el índice 1.
-
array {{optional_inline}}
-
El array sobre el cual se llamó el método reduce().
-
-
-
valorInicial {{optional_inline}}
-
Un valor a usar como primer argumento en la primera llamada de la función callback. Si no se proporciona el valorInicial, el primer elemento del array será utilizado y saltado. Llamando a reduce() sobre un array vacío sin un valorInicial lanzará un {{jsxref("TypeError")}}.
-
+- `callback` + - : Función a ejecutar sobre cada elemento del array (excepto para el primero, si no se proporciona `valorInicial`), que recibe cuatro parámetros:_ `acumulador` + _ : El acumulador acumula el valor devuelto por la función callback. Es el valor acumulado devuelto en la última invocación de callback, o el `valorInicial`, si se proveyó. (Ver a continuación). + - `valorActual` + - : El elemento actual que está siendo procesado en el array. + - `índice` {{optional_inline}} + - : El índice del elemento actual que está siendo procesado en el array. Empieza desde el índice 0 si se provee `valorInicial`. En caso contrario, comienza desde el índice 1. + - `array` {{optional_inline}} + - : El array sobre el cual se llamó el método `reduce()`. +- `valorInicial` {{optional_inline}} + - : Un valor a usar como primer argumento en la primera llamada de la función _`callback`_. Si no se proporciona el _`valorInicial`_, el primer elemento del array será utilizado y saltado. Llamando a `reduce()` sobre un array vacío sin un _`valorInicial`_ lanzará un {{jsxref("TypeError")}}. -

Descripción

+## Descripción -

El método reduce() ejecuta callback una vez por cada elemento presente en el array, excluyendo los huecos del mismo, recibe cuatro argumentos:

+El método `reduce()` ejecuta `callback` una vez por cada elemento presente en el array, excluyendo los huecos del mismo, recibe cuatro argumentos: -
    -
  • valorAnterior
  • -
  • valorActual
  • -
  • indiceActual
  • -
  • array
  • -
+- `valorAnterior` +- `valorActual` +- `indiceActual` +- `array` -

La primera vez que se llama la función, valorAnterior y valorActual pueden tener uno de dos valores. Si se proveyó un valorInicial al llamar a reduce, entonces valorAnterior será igual al valorInicial y valorActual será igual al primer elemento del array. Si no se proveyó un valorInicial, entonces valorAnterior será igual al primer valor en el array y valorActual será el segundo.

+La primera vez que se llama la función, `valorAnterior` y `valorActual` pueden tener uno de dos valores. Si se proveyó un `valorInicial` al llamar a `reduce`, entonces `valorAnterior` será igual al `valorInicial` y `valorActual` será igual al primer elemento del array. Si no se proveyó un `valorInicial`, entonces `valorAnterior` será igual al primer valor en el `array` y `valorActual` será el segundo. -

Si el array está vacío y no se proveyó un valorInicial lanzará un {{jsxref("Global_Objects/TypeError", "TypeError")}}. Si el array tiene un sólo elemento (sin importar la posición) y no se proveyó un valorInicial, o si se proveyó un valorInicial pero el arreglo está vacío, se retornará ese único valor sin llamar a la función.

+Si el `array` está vacío y no se proveyó un `valorInicial` lanzará un {{jsxref("Global_Objects/TypeError", "TypeError")}}. Si el `array` tiene un sólo elemento (sin importar la posición) y no se proveyó un `valorInicial`, o si se proveyó un `valorInicial` pero el arreglo está vacío, se retornará ese único valor sin llamar a la `función`. -

Suponga que ocurre el siguiente uso de reduce:

+Suponga que ocurre el siguiente uso de `reduce`: -
[0,1,2,3,4].reduce(function(valorAnterior, valorActual, indice, vector){
+```js
+[0,1,2,3,4].reduce(function(valorAnterior, valorActual, indice, vector){
   return valorAnterior + valorActual;
 });
 
@@ -86,14 +77,15 @@ valorAnterior = 3, valorActual = 3, indice = 3
 // Cuarta llamada
 valorAnterior = 6, valorActual = 4, indice = 4
 
-// el array sobre el que se llama a reduce siempre es el objeto [0,1,2,3,4]
+// el array sobre el que se llama a reduce siempre es el objeto [0,1,2,3,4]
 
 // Valor Devuelto: 10
-
+``` -

Y si proporcionas un valorInicial, el resultado sería como este:

+Y si proporcionas un `valorInicial`, el resultado sería como este: -
[0,1,2,3,4].reduce(function(valorAnterior, valorActual, indice, vector){
+```js
+[0,1,2,3,4].reduce(function(valorAnterior, valorActual, indice, vector){
   return valorAnterior + valorActual;
 }, 10);
 
@@ -112,20 +104,19 @@ valorAnterior = 13, valorActual = 3, indice = 3
 // Quinta llamada
 valorAnterior = 16, valorActual = 4, indice = 4
 
-// el array sobre el que se llama a reduce siempre es el objeto [0,1,2,3,4]
+// el array sobre el que se llama a reduce siempre es el objeto [0,1,2,3,4]
 
 // Valor Devuelto: 20
-
+``` -

Polyfill

+## Polyfill -
-

Polyfill se refiere a unas líneas de código o un plugin que permite "tener" (en realidad se simulan de alguna otra manera) las nuevas funcionalidades de HTML5 en aquellos navegadores que nativamente no lo soportan. Consigue que, en adelante, el código sea transparente para el programador, como si el navegador soportase la funcionalidad nativamente.

-
+> **Nota:** **Polyfill** se refiere a unas líneas de código o un plugin que permite "tener" (en realidad se simulan de alguna otra manera) las nuevas funcionalidades de HTML5 en aquellos navegadores que nativamente no lo soportan. Consigue que, en adelante, el código sea transparente para el programador, como si el navegador soportase la funcionalidad nativamente. -

reduce es una extensión de JavaScript al estándar ECMA-262; como tal puede que no esté presente en otras implementaciones del estándar. Puedes trabajar con ésto insertando el siguiente código al comienzo de tus scripts, permitiendo el uso de reduce en implementaciones de ECMA-262 que no lo implementan de modo nativo. Este algoritmo es exactamente el mismo usando en Firefox y SpiderMonkey.

+`reduce` es una extensión de JavaScript al estándar ECMA-262; como tal puede que no esté presente en otras implementaciones del estándar. Puedes trabajar con ésto insertando el siguiente código al comienzo de tus scripts, permitiendo el uso de `reduce` en implementaciones de ECMA-262 que no lo implementan de modo nativo. Este algoritmo es exactamente el mismo usando en Firefox y SpiderMonkey. -
if (!Array.prototype.reduce)
+```js
+if (!Array.prototype.reduce)
 {
   Array.prototype.reduce = function(fun /*, inicial*/)
   {
@@ -134,11 +125,11 @@ valorAnterior = 16, valorActual = 4, indice = 4
       throw new TypeError();
 
     // no se devuelve ningún valor si no hay valor inicial y el array está vacío
-    if (longitud == 0 && arguments.length == 1)
+    if (longitud == 0 && arguments.length == 1)
       throw new TypeError();
 
     var indice = 0;
-    if (arguments.length >= 2)
+    if (arguments.length >= 2)
     {
       var rv = arguments[1];
     }
@@ -153,13 +144,13 @@ valorAnterior = 16, valorActual = 4, indice = 4
         }
 
         // si el array no contiene valores, no existe valor inicial a devolver
-        if (++indice >= longitud)
+        if (++indice >= longitud)
           throw new TypeError();
       }
       while (true);
     }
 
-    for (; indice < longitud; indice++)
+    for (; indice < longitud; indice++)
     {
       if (indice in this)
         rv = fun.call(null, rv, this[indice], indice, this);
@@ -168,49 +159,36 @@ valorAnterior = 16, valorActual = 4, indice = 4
     return rv;
   };
 }
-
+``` -

Ejemplos

+## Ejemplos -

Ejemplo: Sumar todos los valores de un array

+### Ejemplo: Sumar todos los valores de un `array` -
var total = [0, 1, 2, 3].reduce(function(a, b){ return a + b; });
+```js
+var total = [0, 1, 2, 3].reduce(function(a, b){ return a + b; });
 // total == 6
-
+``` -

Ejemplo: Integrar un array a partir de varios arrays

+### Ejemplo: Integrar un `array` a partir de varios `arrays` -
var integrado = [[0,1], [2,3], [4,5]].reduce(function(a,b) {
+```js
+var integrado = [[0,1], [2,3], [4,5]].reduce(function(a,b) {
   return a.concat(b);
 });
 // integrado es [0, 1, 2, 3, 4, 5]
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-array.prototype.reduce', 'Array.prototype.reduce()')}}
+| Especificación | +| ------------------------------------------------------------------------------------------------------------ | +| {{SpecName('ESDraft', '#sec-array.prototype.reduce', 'Array.prototype.reduce()')}} | -

Compatibilidad con navegadores

+## Compatibilidad con navegadores -
+{{Compat("javascript.builtins.Array.reduce")}} +## Ver también -

{{Compat("javascript.builtins.Array.reduce")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Array.prototype.reduceRight()")}}
  • -
+- {{jsxref("Array.prototype.reduceRight()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/reduceright/index.md b/files/es/web/javascript/reference/global_objects/array/reduceright/index.md index 80319eff4efae3..85a0cc1ca24d7f 100644 --- a/files/es/web/javascript/reference/global_objects/array/reduceright/index.md +++ b/files/es/web/javascript/reference/global_objects/array/reduceright/index.md @@ -11,44 +11,43 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/ReduceRight original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/reduceRight --- -
{{JSRef("Objetos_globales", "Array")}}
+{{JSRef("Objetos_globales", "Array")}} -

Resumen

+## Resumen -

Aplica una función simultáneamente contra un acumulador y cada elemento de un array (de derecha a izquierda) para reducirlo a un único valor.

+Aplica una función simultáneamente contra un acumulador y cada elemento de un array (de derecha a izquierda) para reducirlo a un único valor. -

Sintaxis

+## Sintaxis -
array.reduceRight(
-funcion[,
-valorInicial])
-
+ array.reduceRight( + funcion[, + valorInicial]) -

Parámetros

+### Parámetros -
-
callback
-
Función a ejecutar para cada valor del array.
-
initialValue
-
Objeto a usar como primer argumento en la primera llamada de la funcion.
-
+- `callback` + - : Función a ejecutar para cada valor del array. +- `initialValue` + - : Objeto a usar como primer argumento en la primera llamada de la `funcion`. -

Descripción

+### Descripción -

reduceRight ejecuta la funcion una vez para cada elemento presente en el array, excluyendo los huecos del mismo, recibiendo cuatro argumentos: el valor inicial (o valor de la llamada previa de funcion), el valor del elemento actual, el índice actual y el array sobre el que ocurre la iteración.

+`reduceRight` ejecuta la `funcion` una vez para cada elemento presente en el array, excluyendo los huecos del mismo, recibiendo cuatro argumentos: el valor inicial (o valor de la llamada previa de `funcion`), el valor del elemento actual, el índice actual y el array sobre el que ocurre la iteración. -

La llamada a la funcion de reduceRight sería similar a esto:

+La llamada a la `funcion` de reduceRight sería similar a esto: -
.reduceRight(function(valorPrevio, valorActual, indice, array){
+```js
+.reduceRight(function(valorPrevio, valorActual, indice, array){
   // ...
 })
-
+``` -

La primera vez que se llama a la función, el valorPrevio y el valorActual puede ser uno de los dos valores. Si se incluye un valorInicial en la llamada a reduceRight, entonces el valorPrevio será igual al valorInicial y el valorActual será igual al último valor del array. Si no se incluye ningún valorInicial, entonces el valorPrevio será igual al último valor del array y el valorActual será igual al penúltimo valor.

+La primera vez que se llama a la función, el `valorPrevio` y el `valorActual` puede ser uno de los dos valores. Si se incluye un `valorInicial` en la llamada a `reduceRight`, entonces el `valorPrevio` será igual al `valorInicial` y el `valorActual` será igual al último valor del array. Si no se incluye ningún `valorInicial`, entonces el `valorPrevio` será igual al último valor del array y el `valorActual` será igual al penúltimo valor. -

Algún ejemplo de la ejecución de la función paso a paso sería similar a esto:

+Algún ejemplo de la ejecución de la función paso a paso sería similar a esto: -
[0,1,2,3,4].reduceRight(function(valorPrevio, valorActual, indice, array){
+```js
+[0,1,2,3,4].reduceRight(function(valorPrevio, valorActual, indice, array){
   return valorPrevio + valorActual;
 });
 
@@ -67,11 +66,12 @@ valorPrevio = 10, valorActual = 0, indice = 0
 // el array sobre el que se llama a reduceRight siempre es el objeto [0,1,2,3,4]
 
 // Valor Devuelto: 10
-
+``` -

Y si proporcionas un valorInicial, el resultado sería como este:

+Y si proporcionas un `valorInicial`, el resultado sería como este: -
[0,1,2,3,4].reduceRight(function(valorPrevio, valorActual, indice, array){
+```js
+[0,1,2,3,4].reduceRight(function(valorPrevio, valorActual, indice, array){
   return valorPrevio + currentValue;
 }, 10);
 
@@ -93,13 +93,14 @@ valorPrevio = 20, valorActual = 0, indice = 0
 // el array sobre el que se llama a reduce siempre es el objeto [0,1,2,3,4]
 
 // Valor Devuelto: 20
-
+``` -

Compatibilidad

+## Compatibilidad -

reduceRight es una extensión de JavaScript al estándar ECMA-262; como tal puede que no esté presente en otras implementaciones del estándar. Puedes trabajar con ésto insertando el siguiente código al comienzo de tus scripts, permitiendo el uso de reduceRight en implementaciones de ECMA-262 que no lo implementan de modo nativo. Este algoritmo es exactamente el mismo usando en Firefox y SpiderMonkey.

+`reduceRight` es una extensión de JavaScript al estándar ECMA-262; como tal puede que no esté presente en otras implementaciones del estándar. Puedes trabajar con ésto insertando el siguiente código al comienzo de tus scripts, permitiendo el uso de `reduceRight` en implementaciones de ECMA-262 que no lo implementan de modo nativo. Este algoritmo es exactamente el mismo usando en Firefox y SpiderMonkey. -
if (!Array.prototype.reduceRight)
+```js
+if (!Array.prototype.reduceRight)
 {
   Array.prototype.reduceRight = function(fun /*, inicial*/)
   {
@@ -108,11 +109,11 @@ valorPrevio = 20, valorActual = 0, indice = 0
       throw new TypeError();
 
     // no se devuelve ningún valor si no hay valor inicial y el array está vacío
-    if (longitud == 0 && arguments.length == 1)
+    if (longitud == 0 && arguments.length == 1)
       throw new TypeError();
 
     var indice = longitud - 1;
-    if (arguments.length >= 2)
+    if (arguments.length >= 2)
     {
       var rv = arguments[1];
     }
@@ -127,13 +128,13 @@ valorPrevio = 20, valorActual = 0, indice = 0
         }
 
         // si el array no contiene valores, no existe valor incial a devolver
-        if (--indice < 0)
+        if (--indice < 0)
           throw new TypeError();
       }
       while (true);
     }
 
-    for (; indice >= 0; indice--)
+    for (; indice >= 0; indice--)
     {
       if (indice in this)
         rv = fun.call(null, rv, this[indice], indice, this);
@@ -142,26 +143,26 @@ valorPrevio = 20, valorActual = 0, indice = 0
     return rv;
   };
 }
-
+``` -

Ejemplos

+## Ejemplos -

Ejemplos: Resumir todos los valores de un array

+### Ejemplos: Resumir todos los valores de un array -
var total = [0, 1, 2, 3].reduceRight(function(a, b) { return a + b; });
+```js
+var total = [0, 1, 2, 3].reduceRight(function(a, b) { return a + b; });
 // total == 6
-
+``` -

Ejemplo: Integrar un array a partir de varios arrays

+### Ejemplo: Integrar un array a partir de varios arrays -
var integrado = [[0, 1], [2, 3], [4, 5]].reduceRight(function(a, b) {
+```js
+var integrado = [[0, 1], [2, 3], [4, 5]].reduceRight(function(a, b) {
   return a.concat(b);
 }, []);
 // integrado es [4, 5, 2, 3, 0, 1]
-
+``` -

Véase también

+## Véase también -
    -
  • {{jsxref("Array.prototype.reduce()")}}
  • -
+- {{jsxref("Array.prototype.reduce()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/reverse/index.md b/files/es/web/javascript/reference/global_objects/array/reverse/index.md index 0705d7c2955dff..77d19fc562a6e7 100644 --- a/files/es/web/javascript/reference/global_objects/array/reverse/index.md +++ b/files/es/web/javascript/reference/global_objects/array/reverse/index.md @@ -9,81 +9,56 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/reverse original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/reverse --- -
{{JSRef}}
+{{JSRef}} -

El método reverse() invierte el orden de los elementos de un array in place. El primer elemento pasa a ser el último y el último pasa a ser el primero.

+El método **`reverse()`** invierte el orden de los elementos de un array _[in place](https://en.wikipedia.org/wiki/In-place_algorithm)_. El primer elemento pasa a ser el último y el último pasa a ser el primero. -

{{EmbedInteractiveExample("pages/js/array-reverse.html")}}

+{{EmbedInteractiveExample("pages/js/array-reverse.html")}} -

Sintaxis

+## Sintaxis -
reverse()
+ reverse() -

Valor devuelto

+### Valor devuelto -

El array invertido.

+El array invertido. -

Descripción

+## Descripción -

El método reverse cruza los elementos del objeto matriz invocados en su lugar, mutando la matriz, y retornando una referencia a la misma.

+El método `reverse` cruza los elementos del objeto matriz invocados en su lugar, mutando la matriz, y retornando una referencia a la misma. -

Ejemplos

+## Ejemplos -

Colocar al revés los elementos de un array

+### Colocar al revés los elementos de un array -

El siguiente ejemplo crea un array a que contiene tres elementos y luego lo invierte.
- La llamada a reverse() devuelve una referencia al array a invertido.

+El siguiente ejemplo crea un array `a` que contiene tres elementos y luego lo invierte. +La llamada a `reverse()` devuelve una referencia al array `a` invertido. -
const a = [1, 2, 3];
+```js
+const a = [1, 2, 3];
 
 console.log(a); // [1, 2, 3]
 
 a.reverse();
 
 console.log(a); // [3, 2, 1]
+```
 
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.4.4.8', 'Array.prototype.reverse')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-array.prototype.reverse', 'Array.prototype.reverse')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.prototype.reverse', 'Array.prototype.reverse')}}{{Spec2('ESDraft')}}
- - - -

{{Compat("javascript.builtins.Array.reverse")}}

- -

Ver también

- -
    -
  • {{jsxref("Array.prototype.join()")}}
  • -
  • {{jsxref("Array.prototype.sort()")}}
  • -
  • {{jsxref("TypedArray.prototype.reverse()")}}
  • -
+## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.1. | +| {{SpecName('ES5.1', '#sec-15.4.4.8', 'Array.prototype.reverse')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-array.prototype.reverse', 'Array.prototype.reverse')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-array.prototype.reverse', 'Array.prototype.reverse')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en navegadores + +{{Compat("javascript.builtins.Array.reverse")}} + +## Ver también + +- {{jsxref("Array.prototype.join()")}} +- {{jsxref("Array.prototype.sort()")}} +- {{jsxref("TypedArray.prototype.reverse()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/shift/index.md b/files/es/web/javascript/reference/global_objects/array/shift/index.md index fa4edcdcef8ea4..e46912b0d0e5fa 100644 --- a/files/es/web/javascript/reference/global_objects/array/shift/index.md +++ b/files/es/web/javascript/reference/global_objects/array/shift/index.md @@ -4,27 +4,28 @@ slug: Web/JavaScript/Reference/Global_Objects/Array/shift translation_of: Web/JavaScript/Reference/Global_Objects/Array/shift original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/shift --- -
{{JSRef}}
+{{JSRef}} -

El método shift() elimina el primer elemento del array y lo retorna. Este método modifica la longitud del array.

+El método **`shift()`** elimina el **primer** elemento del array y lo retorna. Este método modifica la longitud del array. -

Sintaxis

+## Sintaxis -
arr.shift()
+ arr.shift() -

Descripción

+## Descripción -

El método shift elimina el elemento en el índice cero y desplaza los valores consecutivos hacia abajo, devolviendo el valor eliminado. Si la propiedad {{jsxref("Array.length", "length")}} es 0, devuelve {{jsxref("undefined")}}.

+El método `shift` elimina el elemento en el índice cero y desplaza los valores consecutivos hacia abajo, devolviendo el valor eliminado. Si la propiedad {{jsxref("Array.length", "length")}} es 0, devuelve {{jsxref("undefined")}}. -

shift es genérico; este método puede utilizarse con {{jsxref("Function.call", "call", "", 1)}} o {{jsxref("Function.apply", "apply", "", 1)}} a objetos simliares a arrays. Los objetos que no tengan una propiedad length que refleje el último elemento de una serie consecutiva de propiedades numéricas con índice base cero pueden no comportarse de manera significativa.

+`shift` es genérico; este método puede utilizarse con {{jsxref("Function.call", "call", "", 1)}} o {{jsxref("Function.apply", "apply", "", 1)}} a objetos simliares a arrays. Los objetos que no tengan una propiedad `length` que refleje el último elemento de una serie consecutiva de propiedades numéricas con índice base cero pueden no comportarse de manera significativa. -

Ejemplos

+## Ejemplos -

Eliminando un elemento de un array

+### Eliminando un elemento de un array -

El siguiente código muestra el contenido del array miPescado antes y después de eliminar el primer elemento. También muestra el elemento eliminado:

+El siguiente código muestra el contenido del array `miPescado` antes y después de eliminar el primer elemento. También muestra el elemento eliminado: -
var miPescado = ['ángel', 'payaso', 'mandarín', 'cirujano'];
+```js
+var miPescado = ['ángel', 'payaso', 'mandarín', 'cirujano'];
 
 console.log('miPescado antes: ' + miPescado);
 // "miPescado antes: ángel,payaso,mandarín,cirujano"
@@ -35,43 +36,23 @@ console.log('miPescado después: ' + miPescado);
 // "miPescado after: payaso,mandarín,cirujano"
 
 console.log('Elemento eliminado: ' + eliminado);
-// "Elemento eliminado: ángel"
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Definición inicial. Implementado en Javascript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.9', 'Array.prototype.shift')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-array.prototype.shift', 'Array.prototype.shift')}}{{Spec2('ES6')}}
- - +// "Elemento eliminado: ángel" +``` + +## Especificaciones + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------- | ------------------------ | --------------------------------------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Definición inicial. Implementado en Javascript 1.2. | +| {{SpecName('ES5.1', '#sec-15.4.4.9', 'Array.prototype.shift')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-array.prototype.shift', 'Array.prototype.shift')}} | {{Spec2('ES6')}} | | + +## Navegadores compatibles {{Compat("javascript.builtins.Array.shift")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Array.prototype.push()")}}
  • -
  • {{jsxref("Array.prototype.pop()")}}
  • -
  • {{jsxref("Array.prototype.unshift()")}}
  • -
+- {{jsxref("Array.prototype.push()")}} +- {{jsxref("Array.prototype.pop()")}} +- {{jsxref("Array.prototype.unshift()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/some/index.md b/files/es/web/javascript/reference/global_objects/array/some/index.md index 840e8831d0bee8..57a60e55c21952 100644 --- a/files/es/web/javascript/reference/global_objects/array/some/index.md +++ b/files/es/web/javascript/reference/global_objects/array/some/index.md @@ -11,80 +11,75 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/some original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/some --- -
{{JSRef}}
+{{JSRef}} -

El método some() comprueba si al menos un elemento del array cumple con la condición implementada por la función proporcionada.

+El método **`some()`** comprueba si al menos un elemento del array cumple con la condición implementada por la función proporcionada. -
-

Nota: Este método devuelve false para cualquier condición puesta en un array vacío.

-
+> **Nota:** Este método devuelve `false` para cualquier condición puesta en un array vacío. -
{{EmbedInteractiveExample("pages/js/array-some.html")}}
+{{EmbedInteractiveExample("pages/js/array-some.html")}} -

Sintaxis

+## Sintaxis -
arr.some(callback(element[, index[, array]])[, thisArg])
+ arr.some(callback(element[, index[, array]])[, thisArg]) -

Parámetros

+### Parámetros -
-
callback
-
Función que verifica cada elemento, toma tres argumentos: -
-
element
-
El elemento actual siendo procesado en el array.
-
index {{Optional_inline}}
-
El índice del elemento del array que se está procesando.
-
array {{Optional_inline}}
-
El array sobre el que ha sido llamada la función some().
-
-
-
thisArg {{Optional_inline}}
-
Valor a usar como this cuando se ejecute callback.
-
+- `callback` + - : Función que verifica cada elemento, toma tres argumentos:_ `element` + _ : El elemento actual siendo procesado en el array. + - `index` {{Optional_inline}} + - : El índice del elemento del array que se está procesando. + - `array` {{Optional_inline}} + - : El array sobre el que ha sido llamada la función `some()`. +- `thisArg` {{Optional_inline}} + - : Valor a usar como `this` cuando se ejecute `callback`. -

Valor devuelto

+### Valor devuelto -

true si la función callback devuelve un valor {{Glossary("truthy")}} para cualquier elemento del array; en caso contrario, false.

+**`true`** si la función `callback` devuelve un valor {{Glossary("truthy")}} para cualquier elemento del array; en caso contrario, **`false`**. -

Descripción

+## Descripción -

some() ejecuta la función callback una vez por cada elemento presente en el array hasta que encuentre uno donde callback retorna un valor verdadero (true). Si se encuentra dicho elemento, some() retorna true inmediatamente. Si no, some() retorna false. callback es invocada sólo para los índices del array que tienen valores asignados; no es invocada para índices que han sido borrados o a los que nunca se les han asignado valores.

+`some()` ejecuta la función `callback` una vez por cada elemento presente en el array hasta que encuentre uno donde `callback` retorna un valor verdadero (true). Si se encuentra dicho elemento, `some()` retorna `true` inmediatamente. Si no, `some()` retorna `false`. `callback` es invocada sólo para los índices del array que tienen valores asignados; no es invocada para índices que han sido borrados o a los que nunca se les han asignado valores. -

callback es invocada con tres argumentos: el valor del elemento, el índice del elemento, y el objeto array sobre el que se itera.

+`callback` es invocada con tres argumentos: el valor del elemento, el índice del elemento, y el objeto array sobre el que se itera. -

Si se indica un parámetro thisArg a some(), se pasará a callback cuando es invocada, para usar como valor this. Si no, el valor {{jsxref("undefined")}} será pasado para usar como valor this. El valor this value observable por callback se determina de acuerdo a las reglas habituales para determinar el this visible por una función.

+Si se indica un parámetro `thisArg` a `some()`, se pasará a `callback` cuando es invocada, para usar como valor `this`. Si no, el valor {{jsxref("undefined")}} será pasado para usar como valor `this`. El valor `this` value observable por `callback` se determina de acuerdo a [las reglas habituales para determinar el `this` visible por una función](/es/docs/Web/JavaScript/Reference/Operators/this). -

some() no modifica el array con el cual fue llamada.

+`some()` no modifica el array con el cual fue llamada. -

El rango de elementos procesados por some() es configurado antes de la primera invocación de callback. Los elementos anexados al array luego de que comience la llamada a some() no serán visitados por callback. Si un elemento existente y no visitado del array es alterado por callback, su valor pasado al callback será el valor al momento que some() visita el índice del elemento; los elementos borrados no son visitados.

+El rango de elementos procesados por `some()` es configurado antes de la primera invocación de `callback`. Los elementos anexados al array luego de que comience la llamada a `some()` no serán visitados por `callback`. Si un elemento existente y no visitado del array es alterado por `callback`, su valor pasado al `callback` será el valor al momento que `some()` visita el índice del elemento; los elementos borrados no son visitados. -

Ejemplos

+## Ejemplos -

Verificando el valor de los elementos de un array

+### Verificando el valor de los elementos de un array -

El siguiente ejemplo verifica si algún elemento del array es mayor a 10.

+El siguiente ejemplo verifica si algún elemento del array es mayor a 10. -
function isBiggerThan10(element, index, array) {
-  return element > 10;
+```js
+function isBiggerThan10(element, index, array) {
+  return element > 10;
 }
 [2, 5, 8, 1, 4].some(isBiggerThan10);  // false
 [12, 5, 8, 1, 4].some(isBiggerThan10); // true
-
+``` -

Verificando los elementos de un array usando funciones flecha

+### Verificando los elementos de un array usando funciones flecha -

Las funciones flecha (Arrow functions) brindan una sintáxis más corta para el mismo test.

+[Las funciones flecha (Arrow functions)](/es/docs/Web/JavaScript/Reference/Functions/Arrow_functions) brindan una sintáxis más corta para el mismo test. -
[2, 5, 8, 1, 4].some(elem => elem > 10);  // false
-[12, 5, 8, 1, 4].some(elem => elem > 10); // true
-
+```js +[2, 5, 8, 1, 4].some(elem => elem > 10); // false +[12, 5, 8, 1, 4].some(elem => elem > 10); // true +``` -

Comprobando si un elemento existe en un array

+### Comprobando si un elemento existe en un array -

Para imitar la función del método includes(), esta función personalizada devuelve true si el elemento existe en el array:

+Para imitar la función del método `includes()`, esta función personalizada devuelve `true` si el elemento existe en el array: -
var fruits = ['apple', 'banana', 'mango', 'guava'];
+```js
+var fruits = ['apple', 'banana', 'mango', 'guava'];
 
 function checkAvailability(arr, val) {
   return arr.some(function(arrVal) {
@@ -93,22 +88,26 @@ function checkAvailability(arr, val) {
 }
 
 checkAvailability(fruits, 'kela');   // false
-checkAvailability(fruits, 'banana'); // true
+checkAvailability(fruits, 'banana'); // true +``` -

Comprobando si un elemento existe en un array con funciones flecha

+### Comprobando si un elemento existe en un array con funciones flecha -
var fruits = ['apple', 'banana', 'mango', 'guava'];
+```js
+var fruits = ['apple', 'banana', 'mango', 'guava'];
 
 function checkAvailability(arr, val) {
-  return arr.some(arrVal => val === arrVal);
+  return arr.some(arrVal => val === arrVal);
 }
 
 checkAvailability(fruits, 'kela');   // false
-checkAvailability(fruits, 'banana'); // true
+checkAvailability(fruits, 'banana'); // true +``` -

Convirtiendo cualquier valor a Boolean

+### Convirtiendo cualquier valor a Boolean -
var TRUTHY_VALUES = [true, 'true', 1];
+```js
+var TRUTHY_VALUES = [true, 'true', 1];
 
 function getBoolean(value) {
   'use strict';
@@ -125,13 +124,15 @@ function getBoolean(value) {
 getBoolean(false);   // false
 getBoolean('false'); // false
 getBoolean(1);       // true
-getBoolean('true');  // true
+getBoolean('true'); // true +``` -

Polyfill

+## Polyfill -

some() fue agregado al estándar ECMA-262 en la 5ta edición; por ello, puede no estar presente en todas las implementaciones del estándar. Puedes trabajar sobre esto insertando el siguiente código al comienzo de tus scripts, permitiendo el uso de some() en implementaciones que no tienen soporte nativo. Este algoritmo es exactamente el mismo especificado en ECMA-262, 5ta edición, asumiendo que {{jsxref("Global_Objects/Object", "Object")}} y {{jsxref("Global_Objects/TypeError", "TypeError")}} tienen sus valores originales y que fun.call evalúa el valor original de{{jsxref("Function.prototype.call()")}}.

+`some()` fue agregado al estándar ECMA-262 en la 5ta edición; por ello, puede no estar presente en todas las implementaciones del estándar. Puedes trabajar sobre esto insertando el siguiente código al comienzo de tus scripts, permitiendo el uso de `some()` en implementaciones que no tienen soporte nativo. Este algoritmo es exactamente el mismo especificado en ECMA-262, 5ta edición, asumiendo que {{jsxref("Global_Objects/Object", "Object")}} y {{jsxref("Global_Objects/TypeError", "TypeError")}} tienen sus valores originales y que `fun.call` evalúa el valor original de{{jsxref("Function.prototype.call()")}}. -
// Pasos de producción de ECMA-262, Edición 5, 15.4.4.17
+```js
+// Pasos de producción de ECMA-262, Edición 5, 15.4.4.17
 // Referencia: http://es5.github.io/#x15.4.4.17
 if (!Array.prototype.some) {
   Array.prototype.some = function(fun/*, thisArg*/) {
@@ -146,11 +147,11 @@ if (!Array.prototype.some) {
     }
 
     var t = Object(this);
-    var len = t.length >>> 0;
+    var len = t.length >>> 0;
 
-    var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
-    for (var i = 0; i < len; i++) {
-      if (i in t && fun.call(thisArg, t[i], i, t)) {
+    var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
+    for (var i = 0; i < len; i++) {
+      if (i in t && fun.call(thisArg, t[i], i, t)) {
         return true;
       }
     }
@@ -158,48 +159,23 @@ if (!Array.prototype.some) {
     return false;
   };
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES5.1', '#sec-15.4.4.17', 'Array.prototype.some')}}{{Spec2('ES5.1')}}Definición inicial. Implementado en JavaScript 1.6.
{{SpecName('ES6', '#sec-array.prototype.some', 'Array.prototype.some')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.prototype.some', 'Array.prototype.some')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en navegadores

- -
- - -

{{Compat("javascript.builtins.Array.some")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Array.prototype.forEach()")}}
  • -
  • {{jsxref("Array.prototype.every()")}}
  • -
  • {{jsxref("Array.prototype.find()")}}
  • -
  • {{jsxref("TypedArray.prototype.some()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.4.4.17', 'Array.prototype.some')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementado en JavaScript 1.6. | +| {{SpecName('ES6', '#sec-array.prototype.some', 'Array.prototype.some')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-array.prototype.some', 'Array.prototype.some')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en navegadores + +{{Compat("javascript.builtins.Array.some")}} + +## Ver también + +- {{jsxref("Array.prototype.forEach()")}} +- {{jsxref("Array.prototype.every()")}} +- {{jsxref("Array.prototype.find()")}} +- {{jsxref("TypedArray.prototype.some()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/sort/index.md b/files/es/web/javascript/reference/global_objects/array/sort/index.md index ba537f22cd218f..d89ee3abcebb39 100644 --- a/files/es/web/javascript/reference/global_objects/array/sort/index.md +++ b/files/es/web/javascript/reference/global_objects/array/sort/index.md @@ -9,36 +9,35 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/sort original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/sort --- -
{{JSRef}}
+{{JSRef}} -

El método sort() ordena los elementos de un arreglo (array) localmente y devuelve el arreglo ordenado. La ordenación no es necesariamente estable. El modo de ordenación por defecto responde a la posición del valor del string de acuerdo a su valor Unicode.

+El método **`sort()`** ordena los elementos de un arreglo (array) _localmente_ y devuelve el arreglo ordenado. La ordenación no es necesariamente [estable](https://en.wikipedia.org/wiki/Sorting_algorithm#Stability). El modo de ordenación por defecto responde a la posición del valor del string de acuerdo a su valor [Unicode](https://es.wikipedia.org/wiki/Unicode). -

La fuente de este ejemplo interactivo se almacena en un repositorio de GitHub. Si desea contribuir al proyecto de ejemplos interactivos, clone https://github.com/mdn/interactive-examples y envíenos una solicitud de extracción (pull request).

+La fuente de este ejemplo interactivo se almacena en un repositorio de GitHub. Si desea contribuir al proyecto de ejemplos interactivos, clone https\://github.com/mdn/interactive-examples y envíenos una solicitud de extracción (pull request). -

Sintaxis

+## Sintaxis -
arr.sort([compareFunction])
+ arr.sort([compareFunction]) -

Parámetros

+### Parámetros -
-
compareFunction
-
Opcional. Especifica una función que define el modo de ordenamiento. Si se omite, el array es ordenado atendiendo a la posición del valor Unicode de cada caracter, según la conversión a string de cada elemento.
-
firstEl
-
El primer elemento a comparar.
-
secondEl
-
El segundo elemento a comparar.
-
+- `compareFunction` + - : Opcional. Especifica una función que define el modo de ordenamiento. Si se omite, el array es ordenado atendiendo a la posición del valor [Unicode](/es/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Unicode) de cada caracter, según la conversión a string de cada elemento. +- `firstEl` + - : El primer elemento a comparar. +- `secondEl` + - : El segundo elemento a comparar. -

Valor devuelto

+### Valor devuelto -

El array ordenado.

+El array ordenado. -

Descripción

+## Descripción -

Si no se provee compareFunction, los elementos son ordenados convirtiéndolos a strings y comparando la posición del valor Unicode de dichos strings. Por ejemplo, "Cherry" viene antes que "banana" (porque las mayúsculas van antes que las minúsculas en la codificación Unicode) . En un ordenamiento numérico, 9 está antes que 80, pero dado que los números son convertidos a strings y ordenados según el valor Unicode, el resultado será "80" antes que "9".

+Si no se provee `compareFunction`, los elementos son ordenados convirtiéndolos a strings y comparando la posición del valor Unicode de dichos strings. Por ejemplo, "Cherry" viene antes que "banana" (porque las mayúsculas van antes que las minúsculas en la codificación Unicode) . En un ordenamiento numérico, 9 está antes que 80, pero dado que los números son convertidos a strings y ordenados según el valor Unicode, el resultado será "80" antes que "9". -
var frutas = ['guindas', 'manzanas', 'bananas'];
+```js
+var frutas = ['guindas', 'manzanas', 'bananas'];
 frutas.sort(); // ['bananas', 'guindas', 'manzanas']
 
 var puntos = [1, 10, 2, 21];
@@ -50,20 +49,19 @@ var cosas = ['word', 'Word', '1 Word', '2 Words'];
 cosas.sort(); // ['1 Word', '2 Words', 'Word', 'word']
 // En Unicode, los números vienen antes que las letras mayúsculas
 // y estas vienen antes que las letras minúsculas.
-
+``` -

Si se provee compareFunction, los elementos del array son ordenados de acuerdo al valor que retorna dicha función de comparación. Siendo a y b dos elementos comparados, entonces:

+Si se provee `compareFunction`, los elementos del array son ordenados de acuerdo al valor que retorna dicha función de comparación. Siendo `a` y `b` dos elementos comparados, entonces: -
    -
  • Si compareFunction(a, b) es menor que 0, se sitúa a en un indice menor que b. Es decir, a viene primero.
  • -
  • Si compareFunction(a, b) retorna 0, se deja a y b sin cambios entre ellos, pero ordenados con respecto a todos los elementos diferentes. Nota: el estandar ECMAscript no garantiza este comportamiento, por esto no todos los navegadores (p.ej. Mozilla en versiones que datan hasta el 2003) respetan esto.
  • -
  • Si compareFunction(a, b) es mayor que 0, se sitúa b en un indice menor que a.
  • -
  • compareFunction(a, b) siempre debe retornar el mismo valor dado un par especifico de elementos a y b como sus argumentos. Si se retornan resultados inconsistentes entonces el orden de ordenamiento es indefinido.
  • -
+- Si `compareFunction(a, b)` es menor que 0, se sitúa `a` en un indice menor que `b`. Es decir, `a` viene primero. +- Si `compareFunction(a, b)` retorna 0, se deja `a` y `b` sin cambios entre ellos, pero ordenados con respecto a todos los elementos diferentes. Nota: el estandar ECMAscript no garantiza este comportamiento, por esto no todos los navegadores (p.ej. Mozilla en versiones que datan hasta el 2003) respetan esto. +- Si `compareFunction(a, b)` es mayor que 0, se sitúa `b` en un indice menor que `a`. +- `compareFunction(a, b)` siempre debe retornar el mismo valor dado un par especifico de elementos a y b como sus argumentos. Si se retornan resultados inconsistentes entonces el orden de ordenamiento es indefinido. -

Entonces, la función de comparación tiene la siguiente forma:

+Entonces, la función de comparación tiene la siguiente forma: -
function compare(a, b) {
+```js
+function compare(a, b) {
   if (a es menor que b según criterio de ordenamiento) {
     return -1;
   }
@@ -73,30 +71,32 @@ cosas.sort(); // ['1 Word', '2 Words', 'Word', 'word']
   // a debe ser igual b
   return 0;
 }
-
+``` -

Para comparar números en lugar de strings, la función de comparación puede simplemente restar b de a. La siguiente función ordena el array de modo ascendente:

+Para comparar números en lugar de strings, la función de comparación puede simplemente restar `b` de `a`. La siguiente función ordena el array de modo ascendente: -
function compareNumbers(a, b) {
+```js
+function compareNumbers(a, b) {
   return a - b;
 }
-
+``` -

El metodo sort puede ser usado convenientemente con {{jsxref("Operators/function", "function expressions", "", 1)}} (y closures):

+El metodo `sort` puede ser usado convenientemente con {{jsxref("Operators/function", "function expressions", "", 1)}} (y [closures](/es/docs/Web/JavaScript/Guide/Closures)): -
var numbers = [4, 2, 5, 1, 3];
+```js
+var numbers = [4, 2, 5, 1, 3];
 numbers.sort(function(a, b) {
   return a - b;
 });
 console.log(numbers);
+```
 
-
+ // [1, 2, 3, 4, 5] -
// [1, 2, 3, 4, 5]
+Los objectos pueden ser ordenados por el valor de una de sus propiedades. -

Los objectos pueden ser ordenados por el valor de una de sus propiedades.

- -
var items = [
+```js
+var items = [
   { name: 'Edward', value: 21 },
   { name: 'Sharpe', value: 37 },
   { name: 'And', value: 45 },
@@ -105,88 +105,98 @@ console.log(numbers);
   { name: 'Zeros', value: 37 }
 ];
 items.sort(function (a, b) {
-  if (a.name > b.name) {
+  if (a.name > b.name) {
     return 1;
   }
-  if (a.name < b.name) {
+  if (a.name < b.name) {
     return -1;
   }
   // a must be equal to b
   return 0;
 });
-
+``` -

Ejemplos

+## Ejemplos -

Ordenando un array

+### Ordenando un array -

Un array de elementos string, sin especificar una función de comparación:

+Un array de elementos string, sin especificar una función de comparación: -
var arr = [ 'a', 'b', 'Z', 'Aa', 'AA' ];
+```js
+var arr = [ 'a', 'b', 'Z', 'Aa', 'AA' ];
 arr.sort();  //[ 'AA', 'Aa', 'Z', 'a', 'b' ]
-
+``` -

Un array de elementos numéricos, sin función de comparación:

+Un array de elementos numéricos, sin función de comparación: -
var arr = [ 40, 1, 5, 200 ];
+```js
+var arr = [ 40, 1, 5, 200 ];
 arr.sort();  //[ 1, 200, 40, 5 ]
-
+``` -

Un array de elementos numéricos, usando una función de comparación:

+Un array de elementos numéricos, usando una función de comparación: -
var arr = [ 40, 1, 5, 200 ];
+```js
+var arr = [ 40, 1, 5, 200 ];
 function comparar ( a, b ){ return a - b; }
-arr.sort( comparar );  // [ 1, 5, 40, 200 ]
+arr.sort( comparar ); // [ 1, 5, 40, 200 ] +``` -

Lo mismo pero usando una función anónima normal:

+Lo mismo pero usando una función anónima normal: -
var arr = [ 40, 1, 5, 200 ];
-arr.sort(function(a,b){return a - b;});  // [ 1, 5, 40, 200 ]
+```js +var arr = [ 40, 1, 5, 200 ]; +arr.sort(function(a,b){return a - b;}); // [ 1, 5, 40, 200 ] +``` -

Lo mismo escrito más compacto mediante una función flecha:

+Lo mismo escrito más compacto mediante una [función flecha](/es/docs/Web/JavaScript/Referencia/Funciones/Arrow_functions): -
var arr = [ 40, 1, 5, 200 ];
-arr.sort((a,b)=>a-b);  // [ 1, 5, 40, 200 ]
+```js +var arr = [ 40, 1, 5, 200 ]; +arr.sort((a,b)=>a-b); // [ 1, 5, 40, 200 ] +``` -

+### -

Creando, mostrando, y ordenando un array

+### Creando, mostrando, y ordenando un array -

El siguiente ejemplo abunda en la idea de ordenar con y sin función de comparación. Además, ilustra una manera de mostrar un array una vez creado. El método join es usado para convertir el array en una cadena de texto que imprimir. Al no pasarle un argumento que indique el separador, usará la coma por defecto para separar los elementos del array dentro de la cadena.

+El siguiente ejemplo abunda en la idea de ordenar con y sin función de comparación. Además, ilustra una manera de mostrar un array una vez creado. El método [join](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Array/join) es usado para convertir el array en una cadena de texto que imprimir. Al no pasarle un argumento que indique el separador, usará la coma por defecto para separar los elementos del array dentro de la cadena. -
var arr = ['80', '9', '700', 40, 1, 5, 200];
+```js
+var arr = ['80', '9', '700', 40, 1, 5, 200];
 function comparar(a, b) {
   return a - b;
 }
 console.log('original:', arr.join());
 console.log('ordenado sin función:', arr.sort());
 console.log('ordenado con función:', arr.sort(comparar));
-
+``` -

El ejemplo produce el siguiente resultado. Como muestra la salida, cuando una función de comparación es usada, los números se ordenan correctamente, sean estos valores numéricos o strings numéricos.

+El ejemplo produce el siguiente resultado. Como muestra la salida, cuando una función de comparación es usada, los números se ordenan correctamente, sean estos valores numéricos o strings numéricos. -
original: 80,9,700,40,1,5,200
-ordenado sin función: 1,200,40,5,700,80,9
-ordenado con función: 1,5,9,40,80,200,700
-
+ original: 80,9,700,40,1,5,200 + ordenado sin función: 1,200,40,5,700,80,9 + ordenado con función: 1,5,9,40,80,200,700 -

Ordenando caracteres no ASCII

+### Ordenando caracteres no ASCII -

Para ordenar strings con characters no ASCII, i.e. strings con caracteres con acento (e, é, è, a, ä, etc.), strings de lenguajes diferentes al inglés: use {{jsxref("String.localeCompare")}}. Esta función puede comparar esos caracteres para que aparezcan en el orden correcto.

+Para ordenar strings con characters no ASCII, i.e. strings con caracteres con acento (e, é, è, a, ä, etc.), strings de lenguajes diferentes al inglés: use {{jsxref("String.localeCompare")}}. Esta función puede comparar esos caracteres para que aparezcan en el orden correcto. -
var items = ['réservé', 'premier', 'cliché', 'communiqué', 'café', 'adieu'];
+```js
+var items = ['réservé', 'premier', 'cliché', 'communiqué', 'café', 'adieu'];
 items.sort(function (a, b) {
   return a.localeCompare(b);
 });
 
 // items is ['adieu', 'café', 'cliché', 'communiqué', 'premier', 'réservé']
-
+``` -

Ordenando con map

+### Ordenando con map -

La compareFunction puede ser invocada múltiples veces por elemento dentro del array. Dependiendo de la naturaleza de compareFunction, este puede resultar en una alta penalización de rendimiento. Cuanto más trabajo hace una compareFunction y más elementos hay para ordenar, resulta más recomendable usar una función map para ordenar. La idea es recorrer el array una sola vez para extraer los valores usados para ordenar en un array temporal, ordenar el array temporal y luego recorrer el array para lograr el orden correcto.

+La `compareFunction` puede ser invocada múltiples veces por elemento dentro del array. Dependiendo de la naturaleza de `compareFunction`, este puede resultar en una alta penalización de rendimiento. Cuanto más trabajo hace una `compareFunction` y más elementos hay para ordenar, resulta más recomendable usar una función [map](/es/docs/Web/JavaScript/Reference/Global_Objects/Array/map) para ordenar. La idea es recorrer el array una sola vez para extraer los valores usados para ordenar en un array temporal, ordenar el array temporal y luego recorrer el array para lograr el orden correcto. -
// el array a ordenar
+```js
+// el array a ordenar
 var list = ['Delta', 'alpha', 'CHARLIE', 'bravo'];
 
 // array temporal contiene objetos con posición y valor de ordenamiento
@@ -196,10 +206,10 @@ var mapped = list.map(function(el, i) {
 
 // ordenando el array mapeado que contiene los valores reducidos
 mapped.sort(function(a, b) {
-  if (a.value > b.value) {
+  if (a.value > b.value) {
     return 1;
   }
-  if (a.value < b.value) {
+  if (a.value < b.value) {
     return -1;
   }
   return 0;
@@ -209,46 +219,25 @@ mapped.sort(function(a, b) {
 var result = mapped.map(function(el){
   return list[el.index];
 });
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
ECMAScript 1st EditionStandardDefinicióñ inicial.
{{SpecName('ES5.1', '#sec-15.4.4.11', 'Array.prototype.sort')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-array.prototype.sort', 'Array.prototype.sort')}}{{Spec2('ES6')}}
- -

Compatibilidad en navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------ | ------------------------ | ------------------- | +| ECMAScript 1st Edition | Standard | Definicióñ inicial. | +| {{SpecName('ES5.1', '#sec-15.4.4.11', 'Array.prototype.sort')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-array.prototype.sort', 'Array.prototype.sort')}} | {{Spec2('ES6')}} | | + +## Compatibilidad en navegadores {{Compat("javascript.builtins.Array.sort")}} -

Compatibilidad en navegadores

+## Compatibilidad en navegadores -

La tabla de compatibilidad en esta página es generada por una data estructurada. Si deseas contribuir a la data, por favor entra a https://github.com/mdn/browser-compat-data y envíanos un pull request.

+La tabla de compatibilidad en esta página es generada por una data estructurada. Si deseas contribuir a la data, por favor entra a y envíanos un pull request. -

Ver también

+## Ver también -
    -
  • {{jsxref("Array.prototype.reverse()")}}
  • -
  • {{jsxref("String.prototype.localeCompare()")}}
  • -
+- {{jsxref("Array.prototype.reverse()")}} +- {{jsxref("String.prototype.localeCompare()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/tolocalestring/index.md b/files/es/web/javascript/reference/global_objects/array/tolocalestring/index.md index 8044eaf9c70c87..829f18e806c308 100644 --- a/files/es/web/javascript/reference/global_objects/array/tolocalestring/index.md +++ b/files/es/web/javascript/reference/global_objects/array/tolocalestring/index.md @@ -4,55 +4,52 @@ slug: Web/JavaScript/Reference/Global_Objects/Array/toLocaleString translation_of: Web/JavaScript/Reference/Global_Objects/Array/toLocaleString original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/toLocaleString --- -
{{JSRef}}
+{{JSRef}} -

El método toLocaleString() devuelve una cadena de texto representando los elementos del array. Los elementos son convertidos a texto usando su método toLocaleString y dichos Strings son separados por un caracter específico para la localidad (como una coma para la separación de decimales “,”).

+El método **`toLocaleString()`** devuelve una cadena de texto representando los elementos del array. Los elementos son convertidos a texto usando su método `toLocaleString` y dichos Strings son separados por un caracter específico para la localidad (como una coma para la separación de decimales “,”). -
{{EmbedInteractiveExample("pages/js/array-tolocalestring.html")}}
+{{EmbedInteractiveExample("pages/js/array-tolocalestring.html")}} -

Sintaxis

+## Sintaxis -
arr.toLocaleString([locales[, options]]);
-
+ arr.toLocaleString([locales[, options]]); -

Parámetros

+### Parámetros -
-
locales {{optional_inline}}
-
Una cadena de texto con una etiqueta de idioma BCP 47, o un array de dichos strings. Para la forma general e interpretación the los argumentos locales, ver la página {{jsxref("Intl")}}.
-
options {{optional_inline}}
-
Un objeto con las configuraciones, para números ver {{jsxref("Number.prototype.toLocaleString()")}}, y para fechas ver {{jsxref("Date.prototype.toLocaleString()")}}.
-
+- `locales` {{optional_inline}} + - : Una cadena de texto con una etiqueta de idioma BCP 47, o un array de dichos strings. Para la forma general e interpretación the los argumentos `locales`, ver la página {{jsxref("Intl")}}. +- `options` {{optional_inline}} + - : Un objeto con las configuraciones, para números ver {{jsxref("Number.prototype.toLocaleString()")}}, y para fechas ver {{jsxref("Date.prototype.toLocaleString()")}}. -

Valor de retorno

+### Valor de retorno -

Una cadena de texto representando los elementos del array.

+Una cadena de texto representando los elementos del array. -

Ejemplos

+## Ejemplos -

Usando locales y options

+### Usando `locales` y `options` -

Los elementos del array son convertidos a strings usando sus métodos toLocaleString.

+Los elementos del array son convertidos a strings usando sus métodos `toLocaleString`. -
    -
  • Object: {{jsxref("Object.prototype.toLocaleString()")}}
  • -
  • Number: {{jsxref("Number.prototype.toLocaleString()")}}
  • -
  • Date: {{jsxref("Date.prototype.toLocaleString()")}}
  • -
+- `Object`: {{jsxref("Object.prototype.toLocaleString()")}} +- `Number`: {{jsxref("Number.prototype.toLocaleString()")}} +- `Date`: {{jsxref("Date.prototype.toLocaleString()")}} -

Siempre mostrar la moneda para los strings y números en el array precios:

+Siempre mostrar la moneda para los strings y números en el array `precios`: -
var precios = ['$7', 500, 8123, 12];
+```js
+var precios = ['$7', 500, 8123, 12];
 precios.toLocaleString('es-AR', { style: 'currency', currency: 'ARS' });
 
 // "$7, $500, $8.123, $12"
-
+``` -

Para más ejemplos, ver también {{jsxref("Intl")}}, {{jsxref("NumberFormat")}}, y {{jsxref("DateTimeFormat")}}.

+Para más ejemplos, ver también {{jsxref("Intl")}}, {{jsxref("NumberFormat")}}, y {{jsxref("DateTimeFormat")}}. -

Polyfill

+## Polyfill -
// https://tc39.github.io/ecma402/#sup-array.prototype.tolocalestring
+```js
+// https://tc39.github.io/ecma402/#sup-array.prototype.tolocalestring
 if (!Array.prototype.toLocaleString) {
   Object.defineProperty(Array.prototype, 'toLocaleString', {
     value: function(locales, options) {
@@ -64,7 +61,7 @@ if (!Array.prototype.toLocaleString) {
       var a = Object(this);
 
       // 2. Let len be ? ToLength(? Get(A, "length")).
-      var len = a.length >>> 0;
+      var len = a.length >>> 0;
 
       // 3. Let separator be the String value for the
       //    list-separator String appropriate for the
@@ -97,8 +94,8 @@ if (!Array.prototype.toLocaleString) {
       // 8. Let k be 1.
       var k = 1;
 
-      // 9. Repeat, while k < len
-      while (k < len) {
+      // 9. Repeat, while k < len
+      while (k < len) {
         // a. Let S be a String value produced by
         //   concatenating R and separator.
         var s = r + separator;
@@ -133,46 +130,25 @@ if (!Array.prototype.toLocaleString) {
     }
   });
 }
-
- -

Si necesitas soportar motores de JavaScript obsoletos que no compatibilizan con Object.defineProperty, es mejor no utilizar los métodos Array.prototype, ya que no se pueden hacer no-enumerables.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ESDraft', '#sec-array.prototype.tolocalestring', 'Array.prototype.toLocaleString')}}{{Spec2('ESDraft')}}La definicion original fue en ECMAScript 3.
{{SpecName('ES Int Draft', '#sup-array.prototype.tolocalestring', 'Array.prototype.toLocaleString')}}{{Spec2('ES Int Draft')}}Esta definición reemplaza la proporcionada en ECMA-262.
- -

Compatibilidad con navegadores

- -
- - -

{{Compat("javascript.builtins.Array.toLocaleString")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Array.prototype.toString()")}}
  • -
  • {{jsxref("Intl")}}
  • -
  • {{jsxref("Object.prototype.toLocaleString()")}}
  • -
  • {{jsxref("Number.prototype.toLocaleString()")}}
  • -
  • {{jsxref("Date.prototype.toLocaleString()")}}
  • -
+``` + +Si necesitas soportar motores de JavaScript obsoletos que no compatibilizan con [`Object.defineProperty`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty), es mejor no utilizar los métodos `Array.prototype`, ya que no se pueden hacer no-enumerables. + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | ------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-array.prototype.tolocalestring', 'Array.prototype.toLocaleString')}} | {{Spec2('ESDraft')}} | La definicion original fue en ECMAScript 3. | +| {{SpecName('ES Int Draft', '#sup-array.prototype.tolocalestring', 'Array.prototype.toLocaleString')}} | {{Spec2('ES Int Draft')}} | Esta definición reemplaza la proporcionada en ECMA-262. | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.toLocaleString")}} + +## Ver también + +- {{jsxref("Array.prototype.toString()")}} +- {{jsxref("Intl")}} +- {{jsxref("Object.prototype.toLocaleString()")}} +- {{jsxref("Number.prototype.toLocaleString()")}} +- {{jsxref("Date.prototype.toLocaleString()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/tostring/index.md b/files/es/web/javascript/reference/global_objects/array/tostring/index.md index 82cc122e0ed8d0..95c95698db62de 100644 --- a/files/es/web/javascript/reference/global_objects/array/tostring/index.md +++ b/files/es/web/javascript/reference/global_objects/array/tostring/index.md @@ -9,71 +9,46 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/toString original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/toString --- -
{{JSRef}}
+{{JSRef}} -

El método toString() devuelve una cadena de caracteres representando el array especificado y sus elementos.

+El método **`toString()`** devuelve una cadena de caracteres representando el array especificado y sus elementos. -

{{EmbedInteractiveExample("pages/js/array-tostring.html")}}

+{{EmbedInteractiveExample("pages/js/array-tostring.html")}} -

Sintaxis

+## Sintaxis -
arr.toString()
+ arr.toString() -

Valor devuelto

+### Valor devuelto -

Una cadena de caracteres representando los elementos del array.

+Una cadena de caracteres representando los elementos del array. -

Descripción

+## Descripción -

El objeto {{jsxref("Array")}} sustituye al método toString de {{jsxref("Object")}}. Para los objetos Array, el método toString une el array y devuelve una cadena de caracteres que contiene cada elemento del array separado por comas.

+El objeto {{jsxref("Array")}} sustituye al método `toString` de {{jsxref("Object")}}. Para los objetos `Array`, el método `toString` une el array y devuelve una cadena de caracteres que contiene cada elemento del array separado por comas. -

JavaScript llama al método toString automáticamente cuando un array va a ser representado como un valor de texto o cuando se referencia a un array en una concatenación de caracteres.

+JavaScript llama al método `toString` automáticamente cuando un array va a ser representado como un valor de texto o cuando se referencia a un array en una concatenación de caracteres. -

Semántica de ECMAScript 5

+### Semántica de ECMAScript 5 -

Desde JavaScript 1.8.5 (Firefox 4), y consistente con la 5ª edición de semántica de ECMAScript, el método toString() es genérico y puede ser usado con cualquier objeto. {{jsxref("Object.prototype.toString()")}} será llamado y devolverá el valor resultante.

+Desde JavaScript 1.8.5 (Firefox 4), y consistente con la 5ª edición de semántica de ECMAScript, el método `toString()` es genérico y puede ser usado con cualquier objeto. {{jsxref("Object.prototype.toString()")}} será llamado y devolverá el valor resultante. -

Especificaciones

+## Especificaciones - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.4.4.2', 'Array.prototype.toString')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-array.prototype.tostring', 'Array.prototype.toString')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.prototype.tostring', 'Array.prototype.toString')}}{{Spec2('ESDraft')}}
+| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.1. | +| {{SpecName('ES5.1', '#sec-15.4.4.2', 'Array.prototype.toString')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-array.prototype.tostring', 'Array.prototype.toString')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-array.prototype.tostring', 'Array.prototype.toString')}} | {{Spec2('ESDraft')}} | | -

Compatibilidad con navegadores

+## Compatibilidad con navegadores -
-

{{Compat("javascript.builtins.Array.toString")}}

-
> +{{Compat("javascript.builtins.Array.toString")}} -

Vea también

+\> -
    -
  • {{jsxref("Array.prototype.join()")}}
  • -
  • {{jsxref("Object.prototype.toSource()")}}
  • -
+## Vea también + +- {{jsxref("Array.prototype.join()")}} +- {{jsxref("Object.prototype.toSource()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/unshift/index.md b/files/es/web/javascript/reference/global_objects/array/unshift/index.md index f25a432613135f..a3ea5d2d588a28 100644 --- a/files/es/web/javascript/reference/global_objects/array/unshift/index.md +++ b/files/es/web/javascript/reference/global_objects/array/unshift/index.md @@ -10,36 +10,35 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/unshift original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/unshift --- -
{{JSRef}}
+{{JSRef}} -

El método unshift() agrega uno o más elementos al inicio del array, y devuelve la nueva longitud del array.

+El método **`unshift()`** agrega uno o más elementos al inicio del array, y devuelve la nueva longitud del array. -

{{EmbedInteractiveExample("pages/js/array-unshift.html")}}

+{{EmbedInteractiveExample("pages/js/array-unshift.html")}} -

Sintaxis

+## Sintaxis -
arr.unshift(elemento1[, ...[, elementoN]])
+ arr.unshift(elemento1[, ...[, elementoN]]) -

Parámetros

+### Parámetros -
-
elementoN
-
Elementos a agregar al inicio del array.
-
+- `elementoN` + - : Elementos a agregar al inicio del array. -

Devuelve

+### Devuelve -

La nueva propiedad {{jsxref("Array.length", "length")}} del objeto sobre el cual el método fue llamado.

+La nueva propiedad {{jsxref("Array.length", "length")}} del objeto sobre el cual el método fue llamado. -

Descripción

+## Descripción -

El método unshift inserta los valores proporcionados al inicio de un objeto del tipo array.

+El método `unshift` inserta los valores proporcionados al inicio de un objeto del tipo array. -

unshift es intencionalmente genérico; este método puede ser {{jsxref("Function.call", "called", "", 1)}} o {{jsxref("Function.apply", "applied", "", 1)}} a objetos similares a arrays. Objetos que no contengan una propiedad length reflejando una serie de propiedades numéricas consecutivas, comenzada a partir del cero, pueden no comportarse de una manera comprensible.

+`unshift` es intencionalmente genérico; este método puede ser {{jsxref("Function.call", "called", "", 1)}} o {{jsxref("Function.apply", "applied", "", 1)}} a objetos similares a arrays. Objetos que no contengan una propiedad `length` reflejando una serie de propiedades numéricas consecutivas, comenzada a partir del cero, pueden no comportarse de una manera comprensible. -

Ejemplos

+## Ejemplos -
var arr = [1, 2];
+```js
+var arr = [1, 2];
 
 arr.unshift(0); // resultado de la llamada es 3, la nueva longitud del array
 // arr es [0, 1, 2]
@@ -49,53 +48,24 @@ arr.unshift(-2, -1); // = 5
 
 arr.unshift([-3]);
 // arr es [[-3], -2, -1, 0, 1, 2]
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónStatusComentario
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition. Implemented in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.4.4.13', 'Array.prototype.unshift')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-array.prototype.unshift', 'Array.prototype.unshift')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-array.prototype.unshift', 'Array.prototype.unshift')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en navegadores

- -
- - -

{{Compat("javascript.builtins.Array.unshift")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Array.prototype.push()")}}
  • -
  • {{jsxref("Array.prototype.pop()")}}
  • -
  • {{jsxref("Array.prototype.shift()")}}
  • -
  • {{jsxref("Array.prototype.concat()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Status | Comentario | +| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | -------------------------------------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Initial definition. Implemented in JavaScript 1.2. | +| {{SpecName('ES5.1', '#sec-15.4.4.13', 'Array.prototype.unshift')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-array.prototype.unshift', 'Array.prototype.unshift')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-array.prototype.unshift', 'Array.prototype.unshift')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en navegadores + +{{Compat("javascript.builtins.Array.unshift")}} + +## Ver también + +- {{jsxref("Array.prototype.push()")}} +- {{jsxref("Array.prototype.pop()")}} +- {{jsxref("Array.prototype.shift()")}} +- {{jsxref("Array.prototype.concat()")}} diff --git a/files/es/web/javascript/reference/global_objects/array/values/index.md b/files/es/web/javascript/reference/global_objects/array/values/index.md index a0cd08b90afc56..b93128ef828633 100644 --- a/files/es/web/javascript/reference/global_objects/array/values/index.md +++ b/files/es/web/javascript/reference/global_objects/array/values/index.md @@ -11,73 +11,57 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Array/values original_slug: Web/JavaScript/Referencia/Objetos_globales/Array/values --- -
{{JSRef}}
+{{JSRef}} -

El método values() devuelve un nuevo objeto Array Iterator que contiene los valores para cada índice del array.

+El método **`values()`** devuelve un nuevo objeto **`Array Iterator`** que contiene los valores para cada índice del array. -
var a = ['w', 'y', 'k', 'o', 'p'];
-var iterator = a.values();
+```js
+var a = ['w', 'y', 'k', 'o', 'p'];
+var iterator = a.values();
 
-console.log(iterator.next().value); // w 
-console.log(iterator.next().value); // y 
-console.log(iterator.next().value); // k 
-console.log(iterator.next().value); // o 
-console.log(iterator.next().value); // p
-
+console.log(iterator.next().value); // w +console.log(iterator.next().value); // y +console.log(iterator.next().value); // k +console.log(iterator.next().value); // o +console.log(iterator.next().value); // p +``` -

Sintaxis

+## Sintaxis -
arr.values()
-
+ arr.values() -

Valor devuelto

+### Valor devuelto -

Un nuevo objeto {{jsxref("Array")}} iterator.

+Un nuevo objeto {{jsxref("Array")}} iterator. -

Ejemplos

+## Ejemplos -

Iteración usando un bucle for...of

+### Iteración usando un bucle `for...of` -
var arr = ['w', 'y', 'k', 'o', 'p'];
+```js
+var arr = ['w', 'y', 'k', 'o', 'p'];
 var iterador = arr.values();
 
 for (let letra of iterador) {
   console.log(letra);
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES2015', '#sec-array.prototype.values', 'Array.prototype.values')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-array.prototype.values', 'Array.prototype.values')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
{{Compat("javascript.builtins.Array.values")}}
- -

Vea también

- -
    -
  • {{jsxref("Array.prototype.keys()")}}
  • -
  • {{jsxref("Array.prototype.entries()")}}
  • -
  • {{jsxref("Array.prototype.forEach()")}}
  • -
  • {{jsxref("Array.prototype.every()")}}
  • -
  • {{jsxref("Array.prototype.some()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-array.prototype.values', 'Array.prototype.values')}} | {{Spec2('ES2015')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-array.prototype.values', 'Array.prototype.values')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Array.values")}} + +## Vea también + +- {{jsxref("Array.prototype.keys()")}} +- {{jsxref("Array.prototype.entries()")}} +- {{jsxref("Array.prototype.forEach()")}} +- {{jsxref("Array.prototype.every()")}} +- {{jsxref("Array.prototype.some()")}} diff --git a/files/es/web/javascript/reference/global_objects/arraybuffer/@@species/index.md b/files/es/web/javascript/reference/global_objects/arraybuffer/@@species/index.md index dc71de504346ad..3257943f4f806c 100644 --- a/files/es/web/javascript/reference/global_objects/arraybuffer/@@species/index.md +++ b/files/es/web/javascript/reference/global_objects/arraybuffer/@@species/index.md @@ -9,65 +9,47 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/@@species original_slug: Web/JavaScript/Referencia/Objetos_globales/ArrayBuffer/@@species --- -
{{JSRef}}
+{{JSRef}} -

La propiedad de acceso ArrayBuffer[@@species] devuelve el constructor ArrayBuffer.

+La propiedad de acceso **`ArrayBuffer[@@species]`** devuelve el constructor `ArrayBuffer`. -

Sintaxis

+## Sintaxis -
ArrayBuffer[Symbol.species]
-
+ ArrayBuffer[Symbol.species] -

Descripción

+## Descripción -

La propiedad de acceso species devuelve el constructor predeterminado para los objetos ArrayBuffer. Los constructores de subclase pueden anularlo para cambiar la asignación del constructor.

+La propiedad de acceso `species` devuelve el constructor predeterminado para los objetos `ArrayBuffer`. Los constructores de subclase pueden anularlo para cambiar la asignación del constructor. -

Ejemplos

+## Ejemplos -

La propiedad species devuelve la función constructora predeterminada, que es el constructor ArrayBuffer para los objetos ArrayBuffer:

+La propiedad `species` devuelve la función constructora predeterminada, que es el constructor `ArrayBuffer` para los objetos `ArrayBuffer`: -
ArrayBuffer[Symbol.species]; // función ArrayBuffer()
+```js +ArrayBuffer[Symbol.species]; // función ArrayBuffer() +``` -

En un objeto de colección derivado (por ejemplo, su búfer de array personalizado MyArrayBuffer), MyArrayBuffer species es el constructor MyArrayBuffer. Sin embargo, es posible que desee sobrescribir esto para devolver objetos ArrayBuffer principales en sus métodos de clase derivados:

+En un objeto de colección derivado (por ejemplo, su búfer de array personalizado `MyArrayBuffer`), `MyArrayBuffer` species es el constructor `MyArrayBuffer`. Sin embargo, es posible que desee sobrescribir esto para devolver objetos `ArrayBuffer` principales en sus métodos de clase derivados: -
class MyArrayBuffer extends ArrayBuffer {
+```js
+class MyArrayBuffer extends ArrayBuffer {
   // Overwrite MyArrayBuffer species to the parent ArrayBuffer constructor
   static get [Symbol.species]() { return ArrayBuffer; }
-}
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-get-arraybuffer-@@species', 'get ArrayBuffer [ @@species ]')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-get-arraybuffer-@@species', 'get ArrayBuffer [ @@species ]')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
- - -

{{Compat("javascript.builtins.ArrayBuffer.@@species")}}

-
- -

Ver también

- -
    -
  • {{jsxref("ArrayBuffer")}}
  • -
  • {{jsxref("Symbol.species")}}
  • -
+} +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-get-arraybuffer-@@species', 'get ArrayBuffer [ @@species ]')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-get-arraybuffer-@@species', 'get ArrayBuffer [ @@species ]')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.ArrayBuffer.@@species")}} + +## Ver también + +- {{jsxref("ArrayBuffer")}} +- {{jsxref("Symbol.species")}} diff --git a/files/es/web/javascript/reference/global_objects/arraybuffer/bytelength/index.md b/files/es/web/javascript/reference/global_objects/arraybuffer/bytelength/index.md index 1e770150a35e50..60ab082e1f2eb3 100644 --- a/files/es/web/javascript/reference/global_objects/arraybuffer/bytelength/index.md +++ b/files/es/web/javascript/reference/global_objects/arraybuffer/bytelength/index.md @@ -9,63 +9,39 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/ArrayBuffer/byteLength original_slug: Web/JavaScript/Referencia/Objetos_globales/ArrayBuffer/byteLength --- -
{{JSRef}}
+{{JSRef}} -

La propiedad de acceso byteLength representa la longitud de {{jsxref("ArrayBuffer")}} en bytes.

+La propiedad de acceso **`byteLength`** representa la longitud de {{jsxref("ArrayBuffer")}} en bytes. -
{{EmbedInteractiveExample("pages/js/arraybuffer-bytelength.html")}}
+{{EmbedInteractiveExample("pages/js/arraybuffer-bytelength.html")}} +## Sintaxis + arraybuffer.byteLength -

Sintaxis

+## Descripción -
arraybuffer.byteLength
+La propiedad `byteLength` es una propiedad de acceso cuya función de acceso de conjunto es `undefined`, lo que significa que solo puede leer esta propiedad. El valor se establece cuando la matriz se construye y no se puede cambiar. Esta propiedad devuelve `0` si este `ArrayBuffer` ha sido separado. -

Descripción

+## Ejemplos -

La propiedad byteLength es una propiedad de acceso cuya función de acceso de conjunto es undefined, lo que significa que solo puede leer esta propiedad. El valor se establece cuando la matriz se construye y no se puede cambiar. Esta propiedad devuelve 0 si este ArrayBuffer ha sido separado.

- -

Ejemplos

- -
var buffer = new ArrayBuffer(8);
+```js
+var buffer = new ArrayBuffer(8);
 buffer.byteLength; // 8
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Reemplazado por ECMAScript 2015.
{{SpecName('ES2015', '#sec-get-arraybuffer.prototype.bytelength', 'ArrayBuffer.prototype.byteLength')}}{{Spec2('ES2015')}}Definición inicial en un estándar ECMA.
{{SpecName('ESDraft', '#sec-get-arraybuffer.prototype.bytelength', 'ArrayBuffer.prototype.byteLength')}}{{Spec2('ESDraft')}}
+``` -

Compatibilidad con navegadores

+## Especificaciones +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------- | --------------------------------------- | +| {{SpecName('Typed Array')}} | {{Spec2('Typed Array')}} | Reemplazado por ECMAScript 2015. | +| {{SpecName('ES2015', '#sec-get-arraybuffer.prototype.bytelength', 'ArrayBuffer.prototype.byteLength')}} | {{Spec2('ES2015')}} | Definición inicial en un estándar ECMA. | +| {{SpecName('ESDraft', '#sec-get-arraybuffer.prototype.bytelength', 'ArrayBuffer.prototype.byteLength')}} | {{Spec2('ESDraft')}} | | +## Compatibilidad con navegadores -

{{Compat("javascript.builtins.ArrayBuffer.byteLength")}}

+{{Compat("javascript.builtins.ArrayBuffer.byteLength")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("ArrayBuffer")}}
  • -
+- {{jsxref("ArrayBuffer")}} diff --git a/files/es/web/javascript/reference/global_objects/boolean/index.md b/files/es/web/javascript/reference/global_objects/boolean/index.md index 3458addc20f71a..8092ef972fbba7 100644 --- a/files/es/web/javascript/reference/global_objects/boolean/index.md +++ b/files/es/web/javascript/reference/global_objects/boolean/index.md @@ -11,117 +11,102 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Boolean original_slug: Web/JavaScript/Referencia/Objetos_globales/Boolean --- -
{{JSRef}}
+{{JSRef}} -

El objeto Boolean es un objeto contenedor para un valor booleano.

+El objeto **`Boolean`** es un objeto contenedor para un valor booleano. -

Descripción

+## Descripción -

El valor pasado como primer parámetro se convierte en un valor booleano, si es necesario. Si el valor se omite o es 0, -0, {{jsxref("null")}}, false, {{jsxref("NaN")}}, {{jsxref("undefined")}}, o la cadena vacía (""), el objeto tiene un valor inicial de false. Todos los demás valores, incluido cualquier objeto, un arreglo vacío ([]) o la cadena "false", crean un objeto con un valor inicial de true.

+El valor pasado como primer parámetro se convierte en un valor booleano, si es necesario. Si el valor se omite o es `0`, `-0`, {{jsxref("null")}}, `false`, {{jsxref("NaN")}}, {{jsxref("undefined")}}, o la cadena vacía (`""`), el objeto tiene un valor inicial de `false`. Todos los demás valores, incluido cualquier objeto, un arreglo vacío (`[]`) o la cadena "`false`", crean un objeto con un valor inicial de `true`. -

No confundas los valores del Boolean {{Glossary("Primitive", "primitivo")}}, true y false con los valores true y false del objeto Boolean.

+No confundas los valores del `Boolean` {{Glossary("Primitive", "primitivo")}}, `true` y `false` con los valores `true` y `false` del objeto `Boolean`. -

Cualquier objeto cuyo valor no sea {{jsxref("undefined")}} o {{jsxref("null")}}, incluido un objeto Boolean cuyo valor es false, se evalúa como true cuando se pasa a una declaración condicional. Por ejemplo, la condición en la siguiente declaración {{jsxref("Statements/if...else", "if")}} se evalúa como true:

+**Cualquier** objeto cuyo valor no sea {{jsxref("undefined")}} o {{jsxref("null")}}, incluido un objeto `Boolean` cuyo valor es `false`, se evalúa como `true` cuando se pasa a una declaración condicional. Por ejemplo, la condición en la siguiente declaración {{jsxref("Statements/if...else", "if")}} se evalúa como `true`: -
var x = new Boolean(false);
+```js
+var x = new Boolean(false);
 if (x) {
   // este código se ejecuta
 }
-
+``` -

Este comportamiento no se aplica a los Boolean primitivos. Por ejemplo, la condición en la siguiente instrucción {{jsxref("Statements/if...else", "if")}} se evalúa como false:

+Este comportamiento no se aplica a los `Boolean` primitivos. Por ejemplo, la condición en la siguiente instrucción {{jsxref("Statements/if...else", "if")}} se evalúa como `false`: -
var x = false;
+```js
+var x = false;
 if (x) {
   // este código no se ejecuta
 }
-
+``` -

No utilices un objeto Boolean para convertir un valor no booleano en un valor booleano. Para realizar esta tarea, en su lugar, usa Boolean como función, o un operador NOT doble:

+No utilices un objeto `Boolean` para convertir un valor no booleano en un valor booleano. Para realizar esta tarea, en su lugar, usa `Boolean` como función, o un [operador `NOT` doble](/es/docs/Web/JavaScript/Reference/Operators/Logical_NOT): -
var x = Boolean(expression);     // usa esta...
+```js
+var x = Boolean(expression);     // usa esta...
 var x = !!(expression);          // ... o esta
 var x = new Boolean(expression); // ¡no uses esta!
-
+``` -

Si especificas cualquier objeto, incluido un objeto Boolean cuyo valor es false, como valor inicial de un objeto Boolean, el nuevo objeto Boolean tiene un valor de true.

+Si especificas cualquier objeto, incluido un objeto `Boolean` cuyo valor es `false`, como valor inicial de un objeto `Boolean`, el nuevo objeto `Boolean` tiene un valor de `true`. -
var myFalse = new Boolean(false);   // valor inicial de false
+```js
+var myFalse = new Boolean(false);   // valor inicial de false
 var g = Boolean(myFalse);           // valor inicial de true
 var myString = new String('Hola');  // objeto string
 var s = Boolean(myString);          // valor inicial de true
-
+``` -

No utilices un objeto Boolean en lugar de un Boolean primitivo.

+No utilices un objeto `Boolean` en lugar de un `Boolean` primitivo. -
-

Nota Cuando la propiedad no estándar document.all se usa como argumento para este constructor, el resultado es un objeto Boolean con el valor false. Esta propiedad es heredada y no estándar y no se debe usar.

-
+> **Nota:** Cuando la propiedad no estándar [`document.all`](/es/docs/Web/API/Document#Properties) se usa como argumento para este constructor, el resultado es un objeto `Boolean` con el valor `false`. Esta propiedad es heredada y no estándar y no se debe usar. -

Constructor

+## Constructor -
-
{{jsxref("Global_Objects/Boolean/Boolean", "Boolean()")}}
-
Crea un nuevo objeto Boolean.
-
+- {{jsxref("Global_Objects/Boolean/Boolean", "Boolean()")}} + - : Crea un nuevo objeto `Boolean`. -

Métodos de instancia

+## Métodos de instancia -
-
{{jsxref("Boolean.prototype.toString()")}}
-
Devuelve una cadena de true o false dependiendo del valor del objeto. Redefine el método {{jsxref("Object.prototype.toString()")}}.
-
{{jsxref("Boolean.prototype.valueOf()")}}
-
Devuelve el valor primitivo del objeto {{jsxref("Boolean")}}. Redefine el método {{jsxref("Object.prototype.valueOf()")}}.
-
+- {{jsxref("Boolean.prototype.toString()")}} + - : Devuelve una cadena de `true` o `false` dependiendo del valor del objeto. Redefine el método {{jsxref("Object.prototype.toString()")}}. +- {{jsxref("Boolean.prototype.valueOf()")}} + - : Devuelve el valor primitivo del objeto {{jsxref("Boolean")}}. Redefine el método {{jsxref("Object.prototype.valueOf()")}}. -

Ejemplos

+## Ejemplos -

Creación de objetos Boolean con un valor inicial de false

+### Creación de objetos `Boolean` con un valor inicial de `false` -
var bNoParam = new Boolean();
+```js
+var bNoParam = new Boolean();
 var bZero = new Boolean(0);
 var bNull = new Boolean(null);
 var bEmptyString = new Boolean('');
 var bfalse = new Boolean(false);
-
+``` -

Creación de objetos Boolean con un valor inicial de true

+### Creación de objetos `Boolean` con un valor inicial de `true` -
var btrue = new Boolean(true);
+```js
+var btrue = new Boolean(true);
 var btrueString = new Boolean('true');
 var bfalseString = new Boolean('false');
 var bSuLin = new Boolean('Su Lin');
 var bArrayProto = new Boolean([]);
 var bObjProto = new Boolean({});
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-boolean-objects', 'Boolean')}}
+| Especificación | +| ---------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-boolean-objects', 'Boolean')}} | -

Compatibilidad del navegador

+## Compatibilidad del navegador -
+{{Compat("javascript.builtins.Boolean")}} +## Ve también -

{{Compat("javascript.builtins.Boolean")}}

-
- -

Ve también

- - +- [Boolean](/es/docs/Glossary/Boolean) +- [Boolean primitivo](/es/docs/Web/JavaScript/Data_structures#Boolean_type) +- [Tipo de dato `Boolean` (Wikipedia)](https://es.wikipedia.org/wiki/Tipo_de_dato_lógico) diff --git a/files/es/web/javascript/reference/global_objects/boolean/tostring/index.md b/files/es/web/javascript/reference/global_objects/boolean/tostring/index.md index 2cdfdf8d707bad..fe37bf86a58b3c 100644 --- a/files/es/web/javascript/reference/global_objects/boolean/tostring/index.md +++ b/files/es/web/javascript/reference/global_objects/boolean/tostring/index.md @@ -10,28 +10,36 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Boolean/toSource original_slug: Web/JavaScript/Reference/Global_Objects/Boolean/toSource --- -
- {{JSRef("Objetos_globales", "Boolean")}} {{ Non-standard_header() }}
-

Resumen

-

Devuelve una cadena que representa el código fuente del objeto.

-

Sintaxis

-

toSource()

-

Parámetros

-

Ninguno.

-

Descripción

-

El método toSource devuelve los siguientes valores:

-
    -
  • Para objetos built-in Boolean, toSource devuelve la siguiente cadena indicando que el código fuente no está disponible:
  • -
-
function Boolean() {
+{{JSRef("Objetos_globales", "Boolean")}} {{ Non-standard_header() }}
+
+## Resumen
+
+Devuelve una cadena que representa el código fuente del objeto.
+
+## Sintaxis
+
+`toSource()`
+
+### Parámetros
+
+Ninguno.
+
+## Descripción
+
+El método `toSource` devuelve los siguientes valores:
+
+- Para objetos built-in `Boolean`, `toSource` devuelve la siguiente cadena indicando que el código fuente no está disponible:
+
+```js
+function Boolean() {
    [código nativo]
 }
-
-
    -
  • Para instancias de Boolean, toSource devuelve una cadena representando el código fuente.
  • -
-

Este método se utiliza habitualmente en llamadas internas por JavaScript y no en código explícito.

-

Vea También

-
    -
  • {{jsxref("Object.prototype.toSource()")}} {{Non-standard_inline()}}
  • -
+``` + +- Para instancias de `Boolean`, `toSource` devuelve una cadena representando el código fuente. + +Este método se utiliza habitualmente en llamadas internas por JavaScript y no en código explícito. + +## Vea También + +- {{jsxref("Object.prototype.toSource()")}} {{Non-standard_inline()}} diff --git a/files/es/web/javascript/reference/global_objects/date/getdate/index.md b/files/es/web/javascript/reference/global_objects/date/getdate/index.md index 9ea99afe99422e..8ac9407bcf52fe 100644 --- a/files/es/web/javascript/reference/global_objects/date/getdate/index.md +++ b/files/es/web/javascript/reference/global_objects/date/getdate/index.md @@ -4,69 +4,49 @@ slug: Web/JavaScript/Reference/Global_Objects/Date/getDate translation_of: Web/JavaScript/Reference/Global_Objects/Date/getDate original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/getDate --- -
{{JSRef}}
+{{JSRef}} -

El método getDate() devuelve el día del mes para la fecha especificada de acuerdo con la hora local.

+El método **`getDate()`** devuelve el día del mes para la fecha especificada de acuerdo con la hora local. -

Sintaxis

+## Sintaxis -
dateObj.getDate()
+ dateObj.getDate() -

Parámetros

+### Parámetros -

Ninguno.

+Ninguno. -

Valor de retorno

+### Valor de retorno -

El valor devuelto por getDate() es un número entero, entre 1 y 31, que representa el día del mes para la fecha dada según la hora local.

+El valor devuelto por `getDate() es u`n número entero, entre 1 y 31, que representa el día del mes para la fecha dada según la hora local. -

Ejemplos

+## Ejemplos -

Uso de getDate()

+### Uso de `getDate()` -

La segunda instrucción asigna el valor 25 a la variable day, en función del valor del objeto {{jsxref("Date")}} Xmas95.

+La segunda instrucción asigna el valor 25 a la variable `day`, en función del valor del objeto {{jsxref("Date")}} `Xmas95`. -
var Xmas95 = new Date('December 25, 1995 23:15:30');
+```js
+var Xmas95 = new Date('December 25, 1995 23:15:30');
 var day = Xmas95.getDate();
 
 console.log(day); // 25
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-date.prototype.getdate', 'Date.prototype.getDate')}}{{Spec2('ES6')}}
{{SpecName('ES5.1', '#sec-15.9.5.14', 'Date.prototype.getDate')}}{{Spec2('ES5.1')}}
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implantado en JavaScript 1.1.
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------- | +| {{SpecName('ES6', '#sec-date.prototype.getdate', 'Date.prototype.getDate')}} | {{Spec2('ES6')}} | | +| {{SpecName('ES5.1', '#sec-15.9.5.14', 'Date.prototype.getDate')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implantado en JavaScript 1.1. | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Date.getDate")}} -

Véase también

+## Véase también -
    -
  • {{jsxref("Date.prototype.getUTCDate()")}}
  • -
  • {{jsxref("Date.prototype.getUTCDay()")}}
  • -
  • {{jsxref("Date.prototype.setDate()")}}
  • -
+- {{jsxref("Date.prototype.getUTCDate()")}} +- {{jsxref("Date.prototype.getUTCDay()")}} +- {{jsxref("Date.prototype.setDate()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/getday/index.md b/files/es/web/javascript/reference/global_objects/date/getday/index.md index 4ac2b863889e62..4d2b9a3f9e3041 100644 --- a/files/es/web/javascript/reference/global_objects/date/getday/index.md +++ b/files/es/web/javascript/reference/global_objects/date/getday/index.md @@ -9,69 +9,49 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Date/getDay original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/getDay --- -
{{JSRef}}
+{{JSRef}} -

El método getDay() devuelve el día de la semana de la fecha especificada en función de la fecha local; siendo 0 (Domingo) el primer día.

+`El método `**`getDay()`** devuelve el día de la semana de la fecha especificada en función de la fecha local; siendo 0 (Domingo) el primer día. -

Sintaxis

+## Sintaxis -
dateObj.getDay()
+ dateObj.getDay() -

Parámetros

+### Parámetros -

Ninguno.

+Ninguno. -

Valor devuelto

+### Valor devuelto -

El valor devuelto por getDay() es un entero correspondiente al día de la semana; siendo 0 (Domingo) el primer día, 1 (Lunes) el segundo, etcétera.

+El valor devuelto por `getDay()` es un entero correspondiente al día de la semana; siendo 0 (Domingo) el primer día, 1 (Lunes) el segundo, etcétera. -

Ejemplos

+## Ejemplos -

Usos de getDay()

+### `Usos de getDay()` -

La segunda sentencia asigna el valor 1 a weekday, basado en el valor del objeto Xmas95 {{jsxref("Date")}}. December 25, 1995, que corresponde a Lunes.

+La segunda sentencia asigna el valor 1 a `weekday, `basado en el valor del objeto Xmas95 {{jsxref("Date")}}. December 25, 1995, que corresponde a Lunes. -
var Xmas95 = new Date('December 25, 1995 23:15:30');
+```js
+var Xmas95 = new Date('December 25, 1995 23:15:30');
 var weekday = Xmas95.getDay();
 
 console.log(weekday); // 1
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-date.prototype.getday', 'Date.prototype.getDay')}}{{Spec2('ES6')}}
{{SpecName('ES5.1', '#sec-15.9.5.16', 'Date.prototype.getDay')}}{{Spec2('ES5.1')}}
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JS 1.0.
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------- | ------------------------ | ------------------------------------------- | +| {{SpecName('ES6', '#sec-date.prototype.getday', 'Date.prototype.getDay')}} | {{Spec2('ES6')}} | | +| {{SpecName('ES5.1', '#sec-15.9.5.16', 'Date.prototype.getDay')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JS 1.0. | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Date.getDay")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Date.prototype.getUTCDate()")}}
  • -
  • {{jsxref("Date.prototype.getUTCDay()")}}
  • -
  • {{jsxref("Date.prototype.setDate()")}}
  • -
+- {{jsxref("Date.prototype.getUTCDate()")}} +- {{jsxref("Date.prototype.getUTCDay()")}} +- {{jsxref("Date.prototype.setDate()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/getfullyear/index.md b/files/es/web/javascript/reference/global_objects/date/getfullyear/index.md index e427dd378ef24f..bc9b874224f064 100644 --- a/files/es/web/javascript/reference/global_objects/date/getfullyear/index.md +++ b/files/es/web/javascript/reference/global_objects/date/getfullyear/index.md @@ -10,59 +10,49 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Date/getFullYear original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/getFullYear --- -
{{JSRef}}
+{{JSRef}} -

El método getFullYear() devuelve el año de la fecha indicada acorde a la hora local.

+El método **`getFullYear()`** devuelve el año de la fecha indicada acorde a la hora local. -

Usa este método en lugar del método {{jsxref("Date.prototype.getYear()", "getYear()")}}.

+Usa este método en lugar del método {{jsxref("Date.prototype.getYear()", "getYear()")}}. -
{{EmbedInteractiveExample("pages/js/date-getfullyear.html","shorter")}}
+{{EmbedInteractiveExample("pages/js/date-getfullyear.html","shorter")}} -

Sintaxis

+## Sintaxis -
dateObj.getFullYear()
+ dateObj.getFullYear() -

Valor devuelto

+### Valor devuelto -

Un número correspondiente al año de la fecha indicada, según la hora local.

+Un número correspondiente al año de la fecha indicada, según la hora local. -

Descripción

+## Descripción -

El valor devuelto por getFullYear() es un número absoluto. Para fechas entre los años 1000 y 9999, getFullYear() devuelve un número de cuatro cifras, por ejemplo, 1995. Utiliza esta función para obtener un año que cumpla con los años posteriores al 2000.

+El valor devuelto por `getFullYear()` es un número absoluto. Para fechas entre los años 1000 y 9999, `getFullYear()` devuelve un número de cuatro cifras, por ejemplo, 1995. Utiliza esta función para obtener un año que cumpla con los años posteriores al 2000. -

Ejemplos

+## Ejemplos -

Utilizando getFullYear()

+### Utilizando getFullYear() -

El siguiente ejemplo asigna el valor de cuatro dígitos del año actual a la variable year.

+El siguiente ejemplo asigna el valor de cuatro dígitos del año actual a la variable `year`. -
var today = new Date();
+```js
+var today = new Date();
 var year = today.getFullYear();
-
- -

Especificaciones

- - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-date.prototype.getfullyear', 'Date.prototype.getFullYear')}}
- -

Compatibilidad con navegadores

- -

{{Compat("javascript.builtins.Date.getFullYear")}}

- -

Ver también

- -
    -
  • {{jsxref("Date.prototype.getUTCFullYear()")}}
  • -
  • {{jsxref("Date.prototype.setFullYear()")}}
  • -
  • {{jsxref("Date.prototype.getYear()")}}
  • -
+``` + +## Especificaciones + +| Especificación | +| -------------------------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-date.prototype.getfullyear', 'Date.prototype.getFullYear')}} | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Date.getFullYear")}} + +## Ver también + +- {{jsxref("Date.prototype.getUTCFullYear()")}} +- {{jsxref("Date.prototype.setFullYear()")}} +- {{jsxref("Date.prototype.getYear()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/gethours/index.md b/files/es/web/javascript/reference/global_objects/date/gethours/index.md index 4fc9be649d2863..5dc269590df5fa 100644 --- a/files/es/web/javascript/reference/global_objects/date/gethours/index.md +++ b/files/es/web/javascript/reference/global_objects/date/gethours/index.md @@ -4,69 +4,45 @@ slug: Web/JavaScript/Reference/Global_Objects/Date/getHours translation_of: Web/JavaScript/Reference/Global_Objects/Date/getHours original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/getHours --- -
{{JSRef}}
+{{JSRef}} -

El método getHours() retorna la hora de la fecha especificada, de acuerdo a la hora local.

+El método **`getHours()`** retorna la hora de la fecha especificada, de acuerdo a la hora local. -

Sintaxis

+## Sintaxis -
dateObj.getHours()
+ dateObj.getHours() -

Valor de retorno

+### Valor de retorno -

Un número entero, entre 0 y 23, representando la hora de la fecha dada de acuerdo a la hora local.

+Un número entero, entre 0 y 23, representando la hora de la fecha dada de acuerdo a la hora local. -

Ejemplos

+## Ejemplos -

Usando getHours()

+### Usando `getHours()` -

La segunda sentencia abajo asigna el valor 23 a la variable hours, basado en el valor del objeto {{jsxref("Global_Objects/Date", "Date")}} Xmas95.

+La segunda sentencia abajo asigna el valor 23 a la variable hours, basado en el valor del objeto {{jsxref("Global_Objects/Date", "Date")}} `Xmas95`. -
var Xmas95 = new Date('December 25, 1995 23:15:30');
+```js
+var Xmas95 = new Date('December 25, 1995 23:15:30');
 var hours = Xmas95.getHours();
 
 console.log(hours); // 23
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definicion inicial. Implementado en JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.18', 'Date.prototype.getHours')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-date.prototype.gethours', 'Date.prototype.getHours')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-date.prototype.gethours', 'Date.prototype.getHours')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegador

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definicion inicial. Implementado en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.9.5.18', 'Date.prototype.getHours')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-date.prototype.gethours', 'Date.prototype.getHours')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-date.prototype.gethours', 'Date.prototype.getHours')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegador {{Compat("javascript.builtins.Date.getHours")}} -

Ver tambien

+## Ver tambien -
    -
  • {{jsxref("Date.prototype.getUTCHours()")}}
  • -
  • {{jsxref("Date.prototype.setHours()")}}
  • -
+- {{jsxref("Date.prototype.getUTCHours()")}} +- {{jsxref("Date.prototype.setHours()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/getmilliseconds/index.md b/files/es/web/javascript/reference/global_objects/date/getmilliseconds/index.md index 2b2a4f76500f37..7913fe9f733478 100644 --- a/files/es/web/javascript/reference/global_objects/date/getmilliseconds/index.md +++ b/files/es/web/javascript/reference/global_objects/date/getmilliseconds/index.md @@ -9,71 +9,47 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMilliseconds original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/getMilliseconds browser-compat: javascript.builtins.Date.getMilliseconds --- -
{{JSRef}}
+{{JSRef}} -

El método getMilliseconds() devuelve la cantidad de milisegundos en el objeto fecha especificado de acuerdo a la hora local.

+El método **`getMilliseconds()`** devuelve la cantidad de milisegundos en el objeto fecha especificado de acuerdo a la hora local. -

Sintaxis

+## Sintaxis -
dateObj.getMilliseconds()
+ dateObj.getMilliseconds() -

Valor de Retorno

+### Valor de Retorno -

Un número, entre 0 y 999, que representa la cantidad de milisegundos en la fecha dada, de acuerdo a la hora local.

+Un número, entre 0 y 999, que representa la cantidad de milisegundos en la fecha dada, de acuerdo a la hora local. -

Ejemplos

+## Ejemplos -

Usando getMilliseconds()

+### Usando `getMilliseconds()` -

El siguiente ejemplo asigna la cantidad de milisegundos de la hora actual a la variable milisegundos:

+El siguiente ejemplo asigna la cantidad de milisegundos de la hora actual a la variable `milisegundos`: -
var ahora = new Date();
+```js
+var ahora = new Date();
 var milisegundos = ahora.getMilliseconds();
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.24', 'Date.prototype.getMilliseconds')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-date.prototype.getmilliseconds', 'Date.prototype.getMilliseconds')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-date.prototype.getmilliseconds', 'Date.prototype.getMilliseconds')}}{{Spec2('ESDraft')}}
- -

Especificaciones

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.3. | +| {{SpecName('ES5.1', '#sec-15.9.5.24', 'Date.prototype.getMilliseconds')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-date.prototype.getmilliseconds', 'Date.prototype.getMilliseconds')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-date.prototype.getmilliseconds', 'Date.prototype.getMilliseconds')}} | {{Spec2('ESDraft')}} | | + +## Especificaciones {{Specification}} -

Compatibilidad en Navegadores

+## Compatibilidad en Navegadores {{Compat}} -

Vea también

+## Vea también -
    -
  • {{jsxref("Date.prototype.getUTCMilliseconds()")}}
  • -
  • {{jsxref("Date.prototype.setMilliseconds()")}}
  • -
+- {{jsxref("Date.prototype.getUTCMilliseconds()")}} +- {{jsxref("Date.prototype.setMilliseconds()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/getminutes/index.md b/files/es/web/javascript/reference/global_objects/date/getminutes/index.md index d9e1830560bd1e..db6d625716d19a 100644 --- a/files/es/web/javascript/reference/global_objects/date/getminutes/index.md +++ b/files/es/web/javascript/reference/global_objects/date/getminutes/index.md @@ -4,68 +4,48 @@ slug: Web/JavaScript/Reference/Global_Objects/Date/getMinutes translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMinutes original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/getMinutes --- -
{{JSRef}}
+{{JSRef}} -

El método getMinutes() devuelve los minutos de la fecha especificada en función de la hora local.

+El método **`getMinutes()`** devuelve los minutos de la fecha especificada en función de la hora local. -

Sintaxis

+## Sintaxis -
dateObj.getMinutes()
+ dateObj.getMinutes() -

Parámetros

+### Parámetros -

Ninguno.

+Ninguno. -

Devuelve

+### Devuelve -

El valor devuelto por getMinutes() es un número entero entre 0 y 59.

+El valor devuelto por `getMinutes()` es un número entero entre 0 y 59. -

Ejemplos

+## Ejemplos -

Uso de getMinutes()

+### `Uso de getMinutes()` -

La segunda declaración del código mostrado a continuación le asigna el valor 15 a la variable minutos, basado en el valor del {{jsxref("Global_Objects/Date", "Date")}} objeto Xmas95.

+La segunda declaración del código mostrado a continuación le asigna el valor 15 a la variable `minutos`, basado en el valor del {{jsxref("Global_Objects/Date", "Date")}} `objeto Xmas95`. -
var Xmas95 = new Date('December 25, 1995 23:15:30');
+```js
+var Xmas95 = new Date('December 25, 1995 23:15:30');
 var minutos = Xmas95.getMinutes();
 
 console.log(minutos); // 15
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.20', 'Date.prototype.getMinutes')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-date.prototype.getminutes', 'Date.prototype.getMinutes')}}{{Spec2('ES6')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------ | ------------------------ | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.9.5.20', 'Date.prototype.getMinutes')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-date.prototype.getminutes', 'Date.prototype.getMinutes')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Date.getMinutes")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Date.prototype.getUTCMinutes()")}}
  • -
  • {{jsxref("Date.prototype.setMinutes()")}}
  • -
+- {{jsxref("Date.prototype.getUTCMinutes()")}} +- {{jsxref("Date.prototype.setMinutes()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/getmonth/index.md b/files/es/web/javascript/reference/global_objects/date/getmonth/index.md index 1307def1bfc184..d5ed8554287eb3 100644 --- a/files/es/web/javascript/reference/global_objects/date/getmonth/index.md +++ b/files/es/web/javascript/reference/global_objects/date/getmonth/index.md @@ -9,70 +9,50 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Date/getMonth original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/getMonth --- -
{{JSRef}}
+{{JSRef}} -

Resumen

+## Resumen -

El método getMonth() devuelve el mes del objeto Date según la hora local, donde el número cero indica el primer mes del año.

+El método getMonth() devuelve el mes del objeto Date según la hora local, donde el número cero indica el primer mes del año. -

Sintaxis

+## Sintaxis -
dateObj.getMonth()
+ dateObj.getMonth() -

Parámetros

+### Parámetros -

Ninguno.

+Ninguno. -

Resultado

+### Resultado -

El valor devuelto por getMonth() es un entero entre 0 y 11, donde 0 corresponde a Enero, 1 a Febrero y así sucesivamente.

+El valor devuelto por getMonth() es un entero entre 0 y 11, donde 0 corresponde a Enero, 1 a Febrero y así sucesivamente. -

Ejemplos

+## Ejemplos -

Usando getMonth()

+### Usando `getMonth()` -

En el siguiente ejemplo, la segunda línea asigna el valor 11 a la variable mes, basado en el valor del objeto {{jsxref("Date")}} Navidad.

+En el siguiente ejemplo, la segunda línea asigna el valor 11 a la variable mes, basado en el valor del objeto {{jsxref("Date")}} N`avidad`. -
var Navidad = new Date('December 25, 2014 23:15:30');
+```js
+var Navidad = new Date('December 25, 2014 23:15:30');
 var mes = Navidad.getMonth();
 
 console.log(mes); // 11
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Primera definición. Implementado en JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.12', 'Date.prototype.getMonth')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-date.prototype.getmonth', 'Date.prototype.getMonth')}}{{Spec2('ES6')}}
- -

Compatibilidad

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------- | ------------------------ | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Primera definición. Implementado en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.9.5.12', 'Date.prototype.getMonth')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-date.prototype.getmonth', 'Date.prototype.getMonth')}} | {{Spec2('ES6')}} | | + +## Compatibilidad {{Compat("javascript.builtins.Date.getMonth")}} -

Vea también

+## Vea también -
    -
  • {{jsxref("Date.prototype.getUTCMonth()")}}
  • -
  • {{jsxref("Date.prototype.setMonth()")}}
  • -
+- {{jsxref("Date.prototype.getUTCMonth()")}} +- {{jsxref("Date.prototype.setMonth()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/getseconds/index.md b/files/es/web/javascript/reference/global_objects/date/getseconds/index.md index 01be9c6daf46ec..701ac4360ef2fc 100644 --- a/files/es/web/javascript/reference/global_objects/date/getseconds/index.md +++ b/files/es/web/javascript/reference/global_objects/date/getseconds/index.md @@ -10,73 +10,47 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Date/getSeconds original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/getSeconds --- -
{{JSRef}}
+{{JSRef}} -

El método getSeconds() devuelve los segundos en la fecha especificada de acuerdo a la hora local.

+El método **`getSeconds()`** devuelve los segundos en la fecha especificada de acuerdo a la hora local. -
{{EmbedInteractiveExample("pages/js/date-getseconds.html")}}
+{{EmbedInteractiveExample("pages/js/date-getseconds.html")}} +## Sintaxis + dateObj.getSeconds() -

Sintaxis

+### Valor devuelto -
dateObj.getSeconds()
+Un número entero, entro 0 y 59, representando los segundos en la fecha dada de acuerdo a la hora local. -

Valor devuelto

+## Ejemplos -

Un número entero, entro 0 y 59, representando los segundos en la fecha dada de acuerdo a la hora local.

+### Utilizando `getSeconds()` -

Ejemplos

+La segunda sentencia asigna el valor 30 a la variable `seconds`, en base al valor del objeto {{jsxref("Global_Objects/Date", "Date")}} `Xmas95`. -

Utilizando getSeconds()

- -

La segunda sentencia asigna el valor 30 a la variable seconds, en base al valor del objeto {{jsxref("Global_Objects/Date", "Date")}} Xmas95.

- -
var Xmas95 = new Date('December 25, 1995 23:15:30');
+```js
+var Xmas95 = new Date('December 25, 1995 23:15:30');
 var seconds = Xmas95.getSeconds();
 
 console.log(seconds); // 30
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.22', 'Date.prototype.getSeconds')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-date.prototype.getseconds', 'Date.prototype.getSeconds')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-date.prototype.getseconds', 'Date.prototype.getSeconds')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -

{{Compat("javascript.builtins.Date.getSeconds")}}

- -

See also

- -
    -
  • {{jsxref("Date.prototype.getUTCSeconds()")}}
  • -
  • {{jsxref("Date.prototype.setSeconds()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.9.5.22', 'Date.prototype.getSeconds')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-date.prototype.getseconds', 'Date.prototype.getSeconds')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-date.prototype.getseconds', 'Date.prototype.getSeconds')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Date.getSeconds")}} + +## See also + +- {{jsxref("Date.prototype.getUTCSeconds()")}} +- {{jsxref("Date.prototype.setSeconds()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/gettime/index.md b/files/es/web/javascript/reference/global_objects/date/gettime/index.md index 598fbd569aac0f..c495cb18e78027 100644 --- a/files/es/web/javascript/reference/global_objects/date/gettime/index.md +++ b/files/es/web/javascript/reference/global_objects/date/gettime/index.md @@ -9,85 +9,63 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Date/getTime original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/getTime --- -
{{JSRef("Global_Objects", "Date")}}
+{{JSRef("Global_Objects", "Date")}} -

Resumen

+## Resumen -

El método getTime() devuelve el valor numérico correspondiente a la hora para la fecha especificada según la hora universal.

+El método **`getTime()`** devuelve el valor numérico correspondiente a la hora para la fecha especificada según la hora universal. +Puede utilizar este método para ayudar a asignar una fecha y hora a otro objeto {{jsxref("Global_Objects/Date", "Date")}}. Este método es funcionalmente equivalente al metodo {{jsxref("Date.valueof", "valueOf()")}}. +## Sintaxis -

Puede utilizar este método para ayudar a asignar una fecha y hora a otro objeto {{jsxref("Global_Objects/Date", "Date")}}. Este método es funcionalmente equivalente al metodo {{jsxref("Date.valueof", "valueOf()")}}.

+ dateObj.getTime() -

Sintaxis

+### Valor devuelto -
dateObj.getTime()
-
+El valor devuelto por el método `getTime()` es un número de milisegundos desde el 1 de enero de 1970 00:00:00 UTC. -

Valor devuelto

+## Ejemplos -

El valor devuelto por el método getTime() es un número de milisegundos desde el 1 de enero de 1970 00:00:00 UTC.

+### Ejemplo: Uso de `getTime()` para copiar fechas. -

Ejemplos

+Construir un objeto de fecha con el mismo valor de tiempo. -

Ejemplo: Uso de getTime() para copiar fechas.

- -

Construir un objeto de fecha con el mismo valor de tiempo.

- -
var birthday = new Date(1994, 12, 10);
+```js
+var birthday = new Date(1994, 12, 10);
 var copy = new Date();
 copy.setTime(birthday.getTime());
-
+``` -

Ejemplo: Medir el tiempo de ejecución

+### Ejemplo: Medir el tiempo de ejecución -

Restando dos llamadas getTime() subsiguientes en objetos {{jsxref("Global_Objects/Date", "Date")}} recién generados, dé el intervalo de tiempo entre estas dos llamadas. Esto se puede utilizar para calcular el tiempo de ejecución de algunas operaciones.

+Restando dos llamadas `getTime() `subsiguientes en objetos {{jsxref("Global_Objects/Date", "Date")}} recién generados, dé el intervalo de tiempo entre estas dos llamadas. Esto se puede utilizar para calcular el tiempo de ejecución de algunas operaciones. -
var end, start;
+```js
+var end, start;
 
 start = new Date();
-for (var i = 0; i < 1000; i++) {
+for (var i = 0; i < 1000; i++) {
   Math.sqrt(i);
 }
 end = new Date();
 
 console.log('Operation took ' + (end.getTime() - start.getTime()) + ' msec');
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
ECMAScript 1st Edition.StandardInitial definition. Implemented in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.9.5.9', 'Date.prototype.getTime')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-date.prototype.gettime', 'Date.prototype.getTime')}}{{Spec2('ES6')}}
- -

Compatibilidad del navegador

+``` + +## Especificaciones + +| Especificación | Estatus | Comentario | +| ---------------------------------------------------------------------------------------------------- | ------------------------ | -------------------------------------------------- | +| ECMAScript 1st Edition. | Standard | Initial definition. Implemented in JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.9.5.9', 'Date.prototype.getTime')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-date.prototype.gettime', 'Date.prototype.getTime')}} | {{Spec2('ES6')}} | | + +## Compatibilidad del navegador {{Compat("javascript.builtins.Date.getTime")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Date.prototype.setTime()")}}
  • -
  • {{jsxref("Date.prototype.valueOf()")}}
  • -
+- {{jsxref("Date.prototype.setTime()")}} +- {{jsxref("Date.prototype.valueOf()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/getutcfullyear/index.md b/files/es/web/javascript/reference/global_objects/date/getutcfullyear/index.md index 72502159d7f7d6..e49cfb863995b9 100644 --- a/files/es/web/javascript/reference/global_objects/date/getutcfullyear/index.md +++ b/files/es/web/javascript/reference/global_objects/date/getutcfullyear/index.md @@ -4,71 +4,47 @@ slug: Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear translation_of: Web/JavaScript/Reference/Global_Objects/Date/getUTCFullYear original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/getUTCFullYear --- -
{{JSRef}}
+{{JSRef}} -

El método getUTCFullYear() devuelve el año en la fecha especificada en tiempo universal.

+El método **`getUTCFullYear()`** devuelve el año en la fecha especificada en tiempo universal. -

Sintaxis

+## Sintaxis -
objectoFecha.getUTCFullYear()
+ objectoFecha.getUTCFullYear() -

Valor devuelto

+### Valor devuelto -

Un número que representa el año en la fecha representada por el objectoFecha en tiempo universal.

+Un número que representa el año en la fecha representada por el `objectoFecha` en tiempo universal. -

Descripción

+## Descripción -

El valor devuelto por getUTCFullYear() es un número que no está afectado por el efecto año 2000, por ejemplo, 1995.

+El valor devuelto por `getUTCFullYear()` es un número que no está afectado por el efecto año 2000, por ejemplo, 1995. -

Ejemplos

+## Ejemplos -

Empleo de getUTCFullYear()

+### Empleo de `getUTCFullYear()` -

El siguiente ejemplo asigna el valor de cuatro digitos del año actual a la variable year.

+El siguiente ejemplo asigna el valor de cuatro digitos del año actual a la variable `year`. -
var today = new Date();
+```js
+var today = new Date();
 var year = today.getUTCFullYear();
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementada en JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.11', 'Date.prototype.getUTCFullYear')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-date.prototype.getutcfullyear', 'Date.prototype.getUTCFullYear')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-date.prototype.getutcfullyear', 'Date.prototype.getUTCFullYear')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementada en JavaScript 1.3. | +| {{SpecName('ES5.1', '#sec-15.9.5.11', 'Date.prototype.getUTCFullYear')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-date.prototype.getutcfullyear', 'Date.prototype.getUTCFullYear')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-date.prototype.getutcfullyear', 'Date.prototype.getUTCFullYear')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en navegadores {{Compat("javascript.builtins.Date.getUTCFullYear")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Date.prototype.getFullYear()")}}
  • -
  • {{jsxref("Date.prototype.setFullYear()")}}
  • -
+- {{jsxref("Date.prototype.getFullYear()")}} +- {{jsxref("Date.prototype.setFullYear()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/now/index.md b/files/es/web/javascript/reference/global_objects/date/now/index.md index 025e17d38d6078..ac26f143816c0e 100644 --- a/files/es/web/javascript/reference/global_objects/date/now/index.md +++ b/files/es/web/javascript/reference/global_objects/date/now/index.md @@ -9,23 +9,33 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Date/now original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/now --- -
- {{JSRef("Objetos_globales", "Date")}}
-

Resumen

-

Devuelve el número de milisegundos transcurridos desde las 00:00:00 UTC del 1 de enero de 1970.

-

Sintaxis

-
var fechaEnMiliseg = Date.now();
-
-

Descripción

-

El método now devuelve los milisegundos transcurridos desde las 00:00:00 UTC del 1 de enero de 1970 justo hasta ahora como un {{jsxref("Number")}}.

-

Cuando se usa now para crear registros temporales or identificadores únicos, tenga en cuenta que la precisión de Windows puede ser de 15 milisegundos (vea {{Bug(363258)}}), lo que puede provocar valores iguales si now se llama múltiples veces en un breve intervalo de tiempo.

-

Ejemplos

-

Ejemplo: Usando now

-

El siguiente ejemplo usa now para crear un registro temporal.

-
var registro = Date.now();
-
-

Vea También

-
    -
  • {{domxref("window.performance.now")}}
  • -
  • {{domxref("console.time")}} / {{domxref("console.timeEnd")}}
  • -
+{{JSRef("Objetos_globales", "Date")}} + +## Resumen + +Devuelve el número de milisegundos transcurridos desde las 00:00:00 UTC del 1 de enero de 1970. + +## Sintaxis + + var fechaEnMiliseg = Date.now(); + +## Descripción + +El método `now` devuelve los milisegundos transcurridos desde las 00:00:00 UTC del 1 de enero de 1970 justo hasta ahora como un {{jsxref("Number")}}. + +Cuando se usa `now` para crear registros temporales or identificadores únicos, tenga en cuenta que la precisión de Windows puede ser de 15 milisegundos (vea {{Bug(363258)}}), lo que puede provocar valores iguales si `now` se llama múltiples veces en un breve intervalo de tiempo. + +## Ejemplos + +### Ejemplo: Usando `now` + +El siguiente ejemplo usa `now` para crear un registro temporal. + +```js +var registro = Date.now(); +``` + +## Vea También + +- {{domxref("window.performance.now")}} +- {{domxref("console.time")}} / {{domxref("console.timeEnd")}} diff --git a/files/es/web/javascript/reference/global_objects/date/parse/index.md b/files/es/web/javascript/reference/global_objects/date/parse/index.md index 755462f15b6f9e..941e7303896fb3 100644 --- a/files/es/web/javascript/reference/global_objects/date/parse/index.md +++ b/files/es/web/javascript/reference/global_objects/date/parse/index.md @@ -8,29 +8,39 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Date/parse original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/parse --- -
- {{JSRef("Objetos_globales", "Date")}}
-

Resumen

-

Transforma una cadena con la representación de una fecha y hora, y devuelve el número de milisegundos desde las 00:00:00 del 1 de enero de 1970, hora local.

-

Sintaxis

-
Date.parse(cadenaFecha)
-

Parámetros

-
-
- cadenaFecha
-
- Una cadena con la representación de una fecha y hora.
-
-

Descripción

-

El método parse toma una cadena con una fecha en inglés (como por ejemplo "Dec 25, 1995") y devuelve el número de milisegundos desde las 00:00:00 del 1 de enero de 1970 (hora local). Esta función es útil para establecer valores de fecha basados en cadenas con fechas, por ejemplo junto con el método {{jsxref("Date.prototype.setTime()")}} y el objeto {{jsxref("Date")}}.

-

Dada una cadena con una hora, parse devuelve el valor de la hora. Acepta la sintaxis del estándar IETF (en inglés): "Mon, 25 Dec 1995 13:30:00 GMT". Comprende las abreviaciones de la zona horaria continental de Estados Unidos, pero para su uso general, use la diferencia de zona horaria, como por ejemplo, "Mon, 25 Dec 1995 13:30:00 GMT+0430" (4 horas, 30 minutos al oeste del meridiano de Greenwich). Si no se especifica una zona horaria, se asumirá la zona de la hora local. GMT y UTC se consideran equivalentes.

-

Debido a que parse es un método estático de Date, úselo siempre como Date.parse(), en vez de como un método del objeto Date que usted cree.

-

Ejemplos

-

Ejemplo: Usando parse

-

Si IPOfecha es un objeto existente Date, entonces usted puede asignarlo a 9 de agosto de 1995 de la manera siguiente:

-
IPOfecha.setTime(Date.parse("Aug 9, 1995")) ;
-
-

Vea también

-
    -
  • {{jsxref("Date.UTC()")}}
  • -
+{{JSRef("Objetos_globales", "Date")}} + +## Resumen + +Transforma una cadena con la representación de una fecha y hora, y devuelve el número de milisegundos desde las 00:00:00 del 1 de enero de 1970, hora local. + +## Sintaxis + + Date.parse(cadenaFecha) + +### Parámetros + +- `cadenaFecha` + - : Una cadena con la representación de una fecha y hora. + +## Descripción + +El método `parse` toma una cadena con una fecha en inglés (como por ejemplo "`Dec 25, 1995`") y devuelve el número de milisegundos desde las 00:00:00 del 1 de enero de 1970 (hora local). Esta función es útil para establecer valores de fecha basados en cadenas con fechas, por ejemplo junto con el método {{jsxref("Date.prototype.setTime()")}} y el objeto {{jsxref("Date")}}. + +Dada una cadena con una hora, `parse` devuelve el valor de la hora. Acepta la sintaxis del estándar IETF (en inglés): "`Mon, 25 Dec 1995 13:30:00 GMT`". Comprende las abreviaciones de la zona horaria continental de Estados Unidos, pero para su uso general, use la diferencia de zona horaria, como por ejemplo, "`Mon, 25 Dec 1995 13:30:00 GMT+0430`" (4 horas, 30 minutos al oeste del meridiano de Greenwich). Si no se especifica una zona horaria, se asumirá la zona de la hora local. GMT y UTC se consideran equivalentes. + +Debido a que `parse` es un método estático de `Date`, úselo siempre como `Date.parse()`, en vez de como un método del objeto `Date` que usted cree. + +## Ejemplos + +### Ejemplo: Usando `parse` + +Si `IPOfecha` es un objeto existente `Date`, entonces usted puede asignarlo a 9 de agosto de 1995 de la manera siguiente: + +```js +IPOfecha.setTime(Date.parse("Aug 9, 1995")) ; +``` + +## Vea también + +- {{jsxref("Date.UTC()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/setfullyear/index.md b/files/es/web/javascript/reference/global_objects/date/setfullyear/index.md index bfde3f2db56aa7..17522c6ef35794 100644 --- a/files/es/web/javascript/reference/global_objects/date/setfullyear/index.md +++ b/files/es/web/javascript/reference/global_objects/date/setfullyear/index.md @@ -4,83 +4,57 @@ slug: Web/JavaScript/Reference/Global_Objects/Date/setFullYear translation_of: Web/JavaScript/Reference/Global_Objects/Date/setFullYear original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/setFullYear --- -
{{JSRef}}
+{{JSRef}} -

El método setFullYear() fija el año completo para una fecha específica de acuerdo a la zona horaria local. Devuelve un nuevo valor de tipo timestamp.

+El método **`setFullYear()`** fija el año completo para una fecha específica de acuerdo a la zona horaria local. Devuelve un nuevo valor de tipo timestamp. -

Sintaxis

+## Sintaxis -
dateObj.setFullYear(valorAño[, valorMes[, valorDia]])
+ dateObj.setFullYear(valorAño[, valorMes[, valorDia]]) -

Parámetros

+### Parámetros -
-
valorAño
-
Valor de tipo entero que contiene el valor numérico del año, por ejemplo, 1995.
-
valorMes
-
Opcional. Valor entero entre 0 y 11 que representa el mes de Enero a Diciembre.
-
valorDia
-
Opcional. Valor entero entre 1 y 31 que representa el día del mes. Si se especifica este parámetro debe incluirse también el parámetro valorMes.
-
+- `valorAño` + - : Valor de tipo entero que contiene el valor numérico del año, por ejemplo, 1995. +- `valorMes` + - : Opcional. Valor entero entre 0 y 11 que representa el mes de Enero a Diciembre. +- `valorDia` + - : Opcional. Valor entero entre 1 y 31 que representa el día del mes. Si se especifica este parámetro debe incluirse también el parámetro `valorMes`. -

Valor devuelto

+### Valor devuelto -

El número de milisegundos entre 1 Enero 1970 00:00:00 UTC y a la fecha actualizada con el valor del año.

+El número de milisegundos entre 1 Enero 1970 00:00:00 UTC y a la fecha actualizada con el valor del año. -

Descripción

+## Descripción -

Si en la invocación al método no se especifican los parámetros valorMes y valorDia, se emplean en su lugar los valores devueltos por {{jsxref("Date.prototype.getMonth()", "getMonth()")}} y {{jsxref("Date.prototype.getDate()", "getDate()")}}.

+Si en la invocación al método no se especifican los parámetros `valorMes` y `valorDia, se emplean en su lugar los valores devueltos por `{{jsxref("Date.prototype.getMonth()", "getMonth()")}} y {{jsxref("Date.prototype.getDate()", "getDate()")}}. -

Si se especifica un parámetro con un valor fuera del rango esperado, setFullYear() intenta actualizar el resto de parámetros y la informacion de fecha en el objeto {{jsxref("Date")}} de manera consistente. Por ejemplo, si se especifica el valor 15 para el parametro valorMes, el parámetro año se incrementa en 1 (valorAño+ 1), y se emplea 3 como valor para el parámetro mes.

+Si se especifica un parámetro con un valor fuera del rango esperado, `setFullYear()` intenta actualizar el resto de parámetros y la informacion de fecha en el objeto {{jsxref("Date")}} de manera consistente. Por ejemplo, si se especifica el valor 15 para el parametro `valorMes`, el parámetro año se incrementa en 1 (`valorAño+ 1`), y se emplea 3 como valor para el parámetro mes. -

Ejemplos

+## Ejemplos -

Uso de setFullYear()

+### Uso de `setFullYear()` -
var theBigDay = new Date();
+```js
+var theBigDay = new Date();
 theBigDay.setFullYear(1997);
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.9.5.40', 'Date.prototype.setFullYear')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-date.prototype.setfullyear', 'Date.prototype.setFullYear')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-date.prototype.setfullyear', 'Date.prototype.setFullYear')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.3. | +| {{SpecName('ES5.1', '#sec-15.9.5.40', 'Date.prototype.setFullYear')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-date.prototype.setfullyear', 'Date.prototype.setFullYear')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-date.prototype.setfullyear', 'Date.prototype.setFullYear')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Date.setFullYear")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Date.prototype.getUTCFullYear()")}}
  • -
  • {{jsxref("Date.prototype.setUTCFullYear()")}}
  • -
  • {{jsxref("Date.prototype.setYear()")}}
  • -
+- {{jsxref("Date.prototype.getUTCFullYear()")}} +- {{jsxref("Date.prototype.setUTCFullYear()")}} +- {{jsxref("Date.prototype.setYear()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/setmonth/index.md b/files/es/web/javascript/reference/global_objects/date/setmonth/index.md index a2077388f82381..7a91d6e1818287 100644 --- a/files/es/web/javascript/reference/global_objects/date/setmonth/index.md +++ b/files/es/web/javascript/reference/global_objects/date/setmonth/index.md @@ -4,76 +4,60 @@ slug: Web/JavaScript/Reference/Global_Objects/Date/setMonth translation_of: Web/JavaScript/Reference/Global_Objects/Date/setMonth original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/setMonth --- -
{{JSRef}}
+{{JSRef}}El método **`setMonth()`** establece el mes para una fecha específica de acuerdo con el año establecido actualmente.{{EmbedInteractiveExample("pages/js/date-setmonth.html")}} -
El método setMonth() establece el mes para una fecha específica de acuerdo con el año establecido actualmente.
+## Sintaxis -
{{EmbedInteractiveExample("pages/js/date-setmonth.html")}}
+ dateObj.setMonth(monthValue[,dayValue]) -

Sintaxis

+### Versiones anteriores a JavaScript 1.3 -
dateObj.setMonth(monthValue[,dayValue])
+ dateObj.setMonth(monthValue) -

Versiones anteriores a JavaScript 1.3

+### Parámetros -
dateObj.setMonth(monthValue)
+- `monthValue` + - : Un entero entre 0 y 11, representando los meses de Enero a Diciembre. +- `dayValue` + - : Opcional. Un entero de 1 a 31, representando el dia del mes. -

Parámetros

+### Resultado -
-
monthValue
-
Un entero entre 0 y 11, representando los meses de Enero a Diciembre.
-
dayValue
-
Opcional. Un entero de 1 a 31, representando el dia del mes.
-
+El valor retornado es el número de milisegundos entre el 1 de Enero de 1970 00:00:00 UTC y la fecha actualizada. -

Resultado

+## Descripción -

El valor retornado es el número de milisegundos entre el 1 de Enero de 1970 00:00:00 UTC y la fecha actualizada.

+Si no especificas el parámetro `dayValue`, el valor retornado del metodo {{jsxref("Date.prototype.getDate()", "getDate()")}} es usado. -

Descripción

+Si un parámetro especificado esta fuera del rango esperado, `setMonth()` intenta actualizar la información de la fecha en el objeto {{jsxref("Date")}} en consecuencia. Por ejemplo, si usted usa 15 para `monthValue`, usa 12 para incrementar el año en 1, y los 3 restantes para calcular el mes. -

Si no especificas el parámetro dayValue, el valor retornado del metodo {{jsxref("Date.prototype.getDate()", "getDate()")}} es usado.

+El día actual del mes tendrá un impacto en el comportamiento de este método. Conceptualmente agregará el número de días dados por el día actual del mes al primer día del nuevo mes especificado como parámetro, para devolver la nueva fecha. Por ejemplo, si el valor actual es el 31 de agosto de 2016, llamar a setMonth con un valor de 1 devolverá el 2 de marzo de 2016. Esto se debe a que en febrero de 2016 tuvo 29 días. -

Si un parámetro especificado esta fuera del rango esperado, setMonth() intenta actualizar la información de la fecha en el objeto {{jsxref("Date")}} en consecuencia. Por ejemplo, si usted usa 15 para monthValue, usa 12 para incrementar el año en 1, y los 3 restantes para calcular el mes.

+## Ejemplos -

El día actual del mes tendrá un impacto en el comportamiento de este método. Conceptualmente agregará el número de días dados por el día actual del mes al primer día del nuevo mes especificado como parámetro, para devolver la nueva fecha. Por ejemplo, si el valor actual es el 31 de agosto de 2016, llamar a setMonth con un valor de 1 devolverá el 2 de marzo de 2016. Esto se debe a que en febrero de 2016 tuvo 29 días.

+### Usando `setMonth()` -

Ejemplos

- -

Usando setMonth()

- -
var theBigDay = new Date();
+```js
+var theBigDay = new Date();
 theBigDay.setMonth(6);
 
 //Cuidado con las transiciones de fin de mes
 var endOfMonth = new Date(2016, 7, 31);
 endOfMonth.setMonth(1);
 console.log(endOfMonth); //Wed Mar 02 2016 00:00:00
-
- -

Especificaciones

- - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-date.prototype.setmonth', 'Date.prototype.setMonth')}}
+``` -

Compatibilidad del navegador

+## Especificaciones +| Especificación | +| ------------------------------------------------------------------------------------------------------------ | +| {{SpecName('ESDraft', '#sec-date.prototype.setmonth', 'Date.prototype.setMonth')}} | +## Compatibilidad del navegador -

{{Compat("javascript.builtins.Date.setMonth")}}

+{{Compat("javascript.builtins.Date.setMonth")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Date.prototype.getMonth()")}}
  • -
  • {{jsxref("Date.prototype.setUTCMonth()")}}
  • -
+- {{jsxref("Date.prototype.getMonth()")}} +- {{jsxref("Date.prototype.setUTCMonth()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/todatestring/index.md b/files/es/web/javascript/reference/global_objects/date/todatestring/index.md index 9ad3f680156a1b..63eba4b068b0a7 100644 --- a/files/es/web/javascript/reference/global_objects/date/todatestring/index.md +++ b/files/es/web/javascript/reference/global_objects/date/todatestring/index.md @@ -10,80 +10,52 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Date/toDateString original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/toDateString --- -
{{JSRef}}
+{{JSRef}} -

El método toDateString() devuelve la porción de la fecha de un objeto {{jsxref("Date")}} en formato humano legible en Inglés Americano.

+El método **`toDateString()`** devuelve la porción de la fecha de un objeto {{jsxref("Date")}} en formato humano legible en Inglés Americano. -

Sintaxis

+## Sintaxis -
dateObj.toDateString()
+ dateObj.toDateString() -

Valor devuelto

+### Valor devuelto -

Una cadena que representa la porción de fecha de un determinado objeto {{jsxref("Date")}} en formato humano legible en Inglés Americano.

+Una cadena que representa la porción de fecha de un determinado objeto {{jsxref("Date")}} en formato humano legible en Inglés Americano. -

Descripción

+## Descripción -

Las instancias de {{jsxref("Date")}} representan momentos especificos en el tiempo. Un llamado a {{jsxref("Date.prototype.toString()", "toString()")}} devolverá la fecha formateada en un formato humano legible en Inglés Americano. En SpiderMonkey, esto consiste en la porción de la fecha (día, mes, y año) seguido por la porción de la hora (horas, minutos, segundos, y zona horaria). Algunas veces sólo se necesita obtener una cadena de la porción de la hora; esto puede lograrse con el método toTimeString().

+Las instancias de {{jsxref("Date")}} representan momentos especificos en el tiempo. Un llamado a {{jsxref("Date.prototype.toString()", "toString()")}} devolverá la fecha formateada en un formato humano legible en Inglés Americano. En [SpiderMonkey](/es/docs/SpiderMonkey), esto consiste en la porción de la fecha (día, mes, y año) seguido por la porción de la hora (horas, minutos, segundos, y zona horaria). Algunas veces sólo se necesita obtener una cadena de la porción de la hora; esto puede lograrse con el método `toTimeString()`. -

El método toDateString() es especialmente útil, pues los distintos motores compatibles que implementan ECMA-262 pueden diferir en la cadena obtenida al ejecutar {{jsxref("Date.prototype.toString()", "toString()")}} para los objetos de tipo {{jsxref("Date")}}, pues dicho formato depende de la implementación, por lo que es posible que el enfoque de la segmentación simple de cadenas no produzca resultados consistentes entre distintos motores.

+El método `toDateString()` es especialmente útil, pues los distintos motores compatibles que implementan [ECMA-262](/es/docs/ECMAScript) pueden diferir en la cadena obtenida al ejecutar {{jsxref("Date.prototype.toString()", "toString()")}} para los objetos de tipo {{jsxref("Date")}}, pues dicho formato depende de la implementación, por lo que es posible que el enfoque de la segmentación simple de cadenas no produzca resultados consistentes entre distintos motores. -

Ejemplos

+## Ejemplos -

Uso básico de toDateString()

+### Uso básico de `toDateString()` -
var d = new Date(1993, 5, 28, 14, 39, 7);
+```js
+var d = new Date(1993, 5, 28, 14, 39, 7);
 
 console.log(d.toString());     // logs Wed Jun 28 1993 14:39:07 GMT-0600 (PDT)
 console.log(d.toDateString()); // logs Wed Jun 28 1993
-
- -
-

Nota: Los meses son 0-indexados cuando son utilizados como parámetros de {{jsxref("Date")}} (Siendo así, el cero (0) corresponde a Enero y el once (11) a Diciembre).

-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EpecificaciónEstatusComentario
{{SpecName('ES3')}}{{Spec2('ES3')}}Definición inicial.
{{SpecName('ES5.1', '#sec-15.9.5.3', 'Date.prototype.toDateString')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-date.prototype.todatestring', 'Date.prototype.toDateString')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-date.prototype.todatestring', 'Date.prototype.toDateString')}}{{Spec2('ESDraft')}}
- -

Compatibilidad entre navegadores

- - - -

{{Compat("javascript.builtins.Date.toDateString")}}

- -

Vea también

- -
    -
  • {{jsxref("Date.prototype.toLocaleDateString()")}}
  • -
  • {{jsxref("Date.prototype.toTimeString()")}}
  • -
  • {{jsxref("Date.prototype.toString()")}}
  • -
+``` + +> **Nota:** Los meses son 0-indexados cuando son utilizados como parámetros de {{jsxref("Date")}} (Siendo así, el cero (0) corresponde a Enero y el once (11) a Diciembre). + +## Especificaciones + +| Epecificación | Estatus | Comentario | +| ------------------------------------------------------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Definición inicial. | +| {{SpecName('ES5.1', '#sec-15.9.5.3', 'Date.prototype.toDateString')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-date.prototype.todatestring', 'Date.prototype.toDateString')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-date.prototype.todatestring', 'Date.prototype.toDateString')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad entre navegadores + +{{Compat("javascript.builtins.Date.toDateString")}} + +## Vea también + +- {{jsxref("Date.prototype.toLocaleDateString()")}} +- {{jsxref("Date.prototype.toTimeString()")}} +- {{jsxref("Date.prototype.toString()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/toisostring/index.md b/files/es/web/javascript/reference/global_objects/date/toisostring/index.md index ee9ef3382f1382..4b977fc70313a1 100644 --- a/files/es/web/javascript/reference/global_objects/date/toisostring/index.md +++ b/files/es/web/javascript/reference/global_objects/date/toisostring/index.md @@ -9,39 +9,40 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Date/toISOString original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/toISOString --- -
{{JSRef}}
+{{JSRef}} -

El método toISOString() devuelve una cadena en el formato simplificado extendido ISO (ISO 8601), que siempre mide 24 o 27 caracteres de largo: (YYYY-MM-DDTHH:mm:ss.sssZ or ±YYYYYY-MM-DDTHH:mm:ss.sssZ, respectivamente). El uso horario no tiene retraso respecto a UTC, como lo denota el sufijo "Z".

+El método **`toISOString()`** devuelve una cadena en el formato _simplificado_ extendido ISO ([ISO 8601](http://en.wikipedia.org/wiki/ISO_8601)), que siempre mide 24 o 27 caracteres de largo: (`YYYY-MM-DDTHH:mm:ss.sssZ` or `±YYYYYY-MM-DDTHH:mm:ss.sssZ`, respectivamente). El uso horario no tiene retraso respecto a UTC, como lo denota el sufijo `"Z"`. -

Sintaxis

+## Sintaxis -
dateObj.toISOString()
-
+ dateObj.toISOString() -

Valor devuelto

+### Valor devuelto -

Una cadena que representa la fecha dada en el formato ISO 8601 según la hora universal.

+Una cadena que representa la fecha dada en el formato [ISO 8601](http://en.wikipedia.org/wiki/ISO_8601) según la hora universal. -

Ejemplos

+## Ejemplos -

Usando toISOString()

+### Usando `toISOString()` -
var today = new Date('05 October 2011 14:48 UTC');
+```js
+var today = new Date('05 October 2011 14:48 UTC');
 
 console.log(today.toISOString()); // Devuelve 2011-10-05T14:48:00.000Z
-
+``` -

El ejemplo de arriba usa una cadena no estándar que podría no ser interpretada correctamente en navegadores distintos de Firefox.

+El ejemplo de arriba usa una cadena no estándar que podría no ser interpretada correctamente en navegadores distintos de Firefox. -

Polyfill

+## Polyfill -

Este método fue estandarizado en ECMA-262 5° edición. Los motores javascript que no han sido actualizados para soportar este método pueden solucionar su ausencia de la siguiente manera:

+Este método fue estandarizado en ECMA-262 5° edición. Los motores javascript que no han sido actualizados para soportar este método pueden solucionar su ausencia de la siguiente manera: -
if (!Date.prototype.toISOString) {
+```js
+if (!Date.prototype.toISOString) {
   (function() {
 
     function pad(number) {
-      if (number < 10) {
+      if (number < 10) {
         return '0' + number;
       }
       return number;
@@ -60,38 +61,21 @@ console.log(today.toISOString()); // Devuelve 2011-10-05T14:48:00.000Z
 
   }());
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
{{SpecName('ES5.1', '#sec-15.9.5.43', 'Date.prototype.toISOString')}}{{Spec2('ES5.1')}}Definición inicial. Implementado en javascript 1.8
{{SpecName('ES6', '#sec-date.prototype.toisostring', 'Date.prototype.toISOString')}}{{Spec2('ES6')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estatus | Comentario | +| ---------------------------------------------------------------------------------------------------------------- | ------------------------ | -------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.9.5.43', 'Date.prototype.toISOString')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementado en javascript 1.8 | +| {{SpecName('ES6', '#sec-date.prototype.toisostring', 'Date.prototype.toISOString')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Date.toISOString")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Date.prototype.toLocaleDateString()")}}
  • -
  • {{jsxref("Date.prototype.toTimeString()")}}
  • -
  • {{jsxref("Date.prototype.toUTCString()")}}
  • -
+- {{jsxref("Date.prototype.toLocaleDateString()")}} +- {{jsxref("Date.prototype.toTimeString()")}} +- {{jsxref("Date.prototype.toUTCString()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/tolocalestring/index.md b/files/es/web/javascript/reference/global_objects/date/tolocalestring/index.md index 20bac91cb6c22b..5fba4d236befed 100644 --- a/files/es/web/javascript/reference/global_objects/date/tolocalestring/index.md +++ b/files/es/web/javascript/reference/global_objects/date/tolocalestring/index.md @@ -4,49 +4,49 @@ slug: Web/JavaScript/Reference/Global_Objects/Date/toLocaleString translation_of: Web/JavaScript/Reference/Global_Objects/Date/toLocaleString original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/toLocaleString --- -
{{JSRef}}
+{{JSRef}} -

El método toLocaleString() devuelve un cadena con la representación al idioma de la fecha especificada. Los nuevos argumentos locales y options permiten a las aplicaciones especificar el idioma cuyas convenciones de formato deben usarse y personalizar el comportamiento de la función. En implementaciones anteriores, ignoran los argumentos de las configuraciones locales y options , la configuración regional utilizada y la forma de la cadena devuelta dependen completamente de la implementación .

+El método **`toLocaleString()`** devuelve un cadena con la representación al idioma de la fecha especificada. Los nuevos argumentos `locales` y `options` permiten a las aplicaciones especificar el idioma cuyas convenciones de formato deben usarse y personalizar el comportamiento de la función. En implementaciones anteriores, ignoran los argumentos de las configuraciones `locales` y `options` , la configuración regional utilizada y la forma de la cadena devuelta dependen completamente de la implementación . -
{{EmbedInteractiveExample("pages/js/date-tolocalestring.html")}}
+{{EmbedInteractiveExample("pages/js/date-tolocalestring.html")}} +## Syntax + dateObj.toLocaleString([locales[, options]]) -

Syntax

+### Parametros -
dateObj.toLocaleString([locales[, options]])
+Los argumentos `locales` y de `options` personalizan el comportamiento de la función y permiten que las aplicaciones especifiquen el lenguaje cuyas convenciones de formato deben ser utilizadas. En las implementaciones, que ignoran los argumentos, `locales` y `options`, el locale utilizado y la forma de la cadena devuelta dependen totalmente de la implementación. -

Parametros

+Vea el [constructor](/es/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/DateTimeFormat) de [`Intl.DateTimeFormat()` ](/es/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/DateTimeFormat)para detalles en esos parametros y como se usan. -

Los argumentos locales y de options personalizan el comportamiento de la función y permiten que las aplicaciones especifiquen el lenguaje cuyas convenciones de formato deben ser utilizadas. En las implementaciones, que ignoran los argumentos, locales y options, el locale utilizado y la forma de la cadena devuelta dependen totalmente de la implementación.

+El valor por defecto para cada componente `date-time` es {{jsxref("undefined")}}, pero si las propiedades `weekday`, `year`, `month`, `day` son todas {{jsxref("undefined")}}, entonces `year`, `month`, y `day` son asumidas como `"numeric"`. -

Vea el constructor de Intl.DateTimeFormat() para detalles en esos parametros y como se usan.

+### Return value -

El valor por defecto para cada componente date-time es {{jsxref("undefined")}}, pero si las propiedades weekday, year, month, day son todas {{jsxref("undefined")}}, entonces year, month, y day son asumidas como "numeric".

+A string representing the given date according to language-specific conventions. -

Return value

+## Examples -

A string representing the given date according to language-specific conventions.

+### Using `toLocaleString()` -

Examples

+In basic use without specifying a locale, a formatted string in the default locale and with default options is returned. -

Using toLocaleString()

- -

In basic use without specifying a locale, a formatted string in the default locale and with default options is returned.

- -
var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));
+```js
+var date = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));
 
 // toLocaleString() without arguments depends on the implementation,
 // the default locale, and the default time zone
 console.log(date.toLocaleString());
 // → "12/11/2012, 7:00:00 PM" if run in en-US locale with time zone America/Los_Angeles
-
+``` -

Checking for support for locales and options arguments

+### Checking for support for `locales` and `options` arguments -

The locales and options arguments are not supported in all browsers yet. To check whether an implementation supports them already, you can use the requirement that illegal language tags are rejected with a {{jsxref("RangeError")}} exception:

+The `locales` and `options` arguments are not supported in all browsers yet. To check whether an implementation supports them already, you can use the requirement that illegal language tags are rejected with a {{jsxref("RangeError")}} exception: -
function toLocaleStringSupportsLocales() {
+```js
+function toLocaleStringSupportsLocales() {
   try {
     new Date().toLocaleString('i');
   } catch (e) {
@@ -54,13 +54,14 @@ console.log(date.toLocaleString());
   }
   return false;
 }
-
+``` -

Using locales

+### Using `locales` -

This example shows some of the variations in localized date and time formats. In order to get the format of the language used in the user interface of your application, make sure to specify that language (and possibly some fallback languages) using the locales argument:

+This example shows some of the variations in localized date and time formats. In order to get the format of the language used in the user interface of your application, make sure to specify that language (and possibly some fallback languages) using the `locales` argument: -
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+```js
+var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
 
 // formats below assume the local time zone of the locale;
 // America/Los_Angeles for the US
@@ -79,7 +80,7 @@ console.log(date.toLocaleString('ko-KR'));
 
 // Arabic in most Arabic speaking countries uses real Arabic digits
 console.log(date.toLocaleString('ar-EG'));
-// → "٢٠‏/١٢‏/٢٠١٢ ٥:٠٠:٠٠ ص"
+// → "٢٠‏/١٢‏/٢٠١٢ ٥:٠٠:٠٠ ص"
 
 // for Japanese, applications may want to use the Japanese calendar,
 // where 2012 was the year 24 of the Heisei era
@@ -90,13 +91,14 @@ console.log(date.toLocaleString('ja-JP-u-ca-japanese'));
 // Balinese, include a fallback language, in this case Indonesian
 console.log(date.toLocaleString(['ban', 'id']));
 // → "20/12/2012 11.00.00"
-
+``` -

Using options

+### Using `options` -

The results provided by toLocaleString() can be customized using the options argument:

+The results provided by `toLocaleString()` can be customized using the `options` argument: -
var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+```js
+var date = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
 
 // request a weekday along with a long date
 var options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
@@ -112,51 +114,40 @@ console.log(date.toLocaleString('en-US', options));
 // sometimes even the US needs 24-hour time
 console.log(date.toLocaleString('en-US', { hour12: false }));
 // → "12/19/2012, 19:00:00"
-
+``` -

Avoid comparing formatted date values to static values

+### Avoid comparing formatted date values to static values -

Most of the time, the formatting returned by toLocaleString() is consistent. However, this might change in the future and isn't guaranteed for all languages — output variations are by design and allowed by the specification. Most notably, the IE and Edge browsers insert bidirectional control characters around dates, so the output text will flow properly when concatenated with other text.

+Most of the time, the formatting returned by `toLocaleString()` is consistent. However, this might change in the future and isn't guaranteed for all languages — output variations are by design and allowed by the specification. Most notably, the IE and Edge browsers insert bidirectional control characters around dates, so the output text will flow properly when concatenated with other text. -

For this reason you cannot expect to be able to compare the results of toLocaleString() to a static value:

+For this reason you cannot expect to be able to compare the results of `toLocaleString()` to a static value: -
"1/1/2019, 01:00:00" === new Date("2019-01-01T01:00:00Z").toLocaleString("en-US");
+```js example-bad
+"1/1/2019, 01:00:00" === new Date("2019-01-01T01:00:00Z").toLocaleString("en-US");
 // true in Firefox and others
-// false in IE and Edge
+// false in IE and Edge +``` -
-

Note: See also this StackOverflow thread for more details and examples.

-
+> **Nota:** See also this [StackOverflow thread](https://stackoverflow.com/questions/25574963/ies-tolocalestring-has-strange-characters-in-results) for more details and examples. -

Performance

+## Performance -

When formatting large numbers of dates, it is better to create an {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}} object and use the function provided by its {{jsxref("DateTimeFormat.prototype.format", "format")}} property.

+When formatting large numbers of dates, it is better to create an {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}} object and use the function provided by its {{jsxref("DateTimeFormat.prototype.format", "format")}} property. -

Specifications

+## Specifications - - - - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-date.prototype.tolocalestring', 'Date.prototype.toLocaleString')}}
{{SpecName('ES Int Draft', '#sup-date.prototype.tolocalestring', 'Date.prototype.toLocaleString')}}
+| Specification | +| ------------------------------------------------------------------------------------------------------------------------------------ | +| {{SpecName('ESDraft', '#sec-date.prototype.tolocalestring', 'Date.prototype.toLocaleString')}} | +| {{SpecName('ES Int Draft', '#sup-date.prototype.tolocalestring', 'Date.prototype.toLocaleString')}} | -

Browser compatibility

+## Browser compatibility -

{{Compat("javascript.builtins.Date.toLocaleString")}}

+{{Compat("javascript.builtins.Date.toLocaleString")}} -

See also

+## See also -
    -
  • {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}
  • -
  • {{jsxref("Date.prototype.toLocaleDateString()")}}
  • -
  • {{jsxref("Date.prototype.toLocaleTimeString()")}}
  • -
  • {{jsxref("Date.prototype.toString()")}}
  • -
+- {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}} +- {{jsxref("Date.prototype.toLocaleDateString()")}} +- {{jsxref("Date.prototype.toLocaleTimeString()")}} +- {{jsxref("Date.prototype.toString()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/tolocaletimestring/index.md b/files/es/web/javascript/reference/global_objects/date/tolocaletimestring/index.md index 0333df0157bd27..fcadbe91559083 100644 --- a/files/es/web/javascript/reference/global_objects/date/tolocaletimestring/index.md +++ b/files/es/web/javascript/reference/global_objects/date/tolocaletimestring/index.md @@ -12,49 +12,49 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/toLocaleTimeString --- -
{{JSRef}}
+{{JSRef}} -

El método toLocaleTimeString() devuelve una cadena con una representación de la parte del tiempo de esta fecha sensible al idioma. Los nuevos argumentos locales y options le permiten a la aplicación especificar el idioma cuyas convenciones de formato deben usarse y personalizan el comportamiento de esta función. En implementaciones antiguas que ignoran los argumentos locales y options la localidad usada y la forma de la cadena devuelta son completamente dependientes de la implementación.

+El método **`toLocaleTimeString()`** devuelve una cadena con una representación de la parte del tiempo de esta fecha sensible al idioma. Los nuevos argumentos `locales` y `options` le permiten a la aplicación especificar el idioma cuyas convenciones de formato deben usarse y personalizan el comportamiento de esta función. En implementaciones antiguas que ignoran los argumentos `locales` y `options` la localidad usada y la forma de la cadena devuelta son completamente dependientes de la implementación. -
{{EmbedInteractiveExample("pages/js/date-tolocaletimestring.html")}}
+{{EmbedInteractiveExample("pages/js/date-tolocaletimestring.html")}} +## Sintaxis + dateObj.toLocaleTimeString([locales[, options]]) -

Sintaxis

+### Parámetros -
dateObj.toLocaleTimeString([locales[, options]])
+Los argumentos `locales` y `options` personalizan el comportamiento de la función y le permiten a la aplicación especificar el idioma cuyas convenciones de formato deben usarse. En las implementaciones que ignoran los argumentos `locales` y `options`, la localidad y la forma de la cadena devuelta son dependientes por completo de la implementación. -

Parámetros

+Vea el [constructor `Intl.DateTimeFormat()`](/es/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/DateTimeFormat) para los detalles de estos parámetros y sobre cómo usarlos. -

Los argumentos locales y options personalizan el comportamiento de la función y le permiten a la aplicación especificar el idioma cuyas convenciones de formato deben usarse. En las implementaciones que ignoran los argumentos locales y options, la localidad y la forma de la cadena devuelta son dependientes por completo de la implementación.

+El valor predeterminado de cada componente de fecha-hora es {{jsxref("undefined")}}, pero si las propiedades `weekday`, `year`, `month` y `day` son todas {{jsxref("undefined")}}, entonces `year`, `month` y `day` se asumen como `"numeric"`. -

Vea el constructor Intl.DateTimeFormat() para los detalles de estos parámetros y sobre cómo usarlos.

+### Valor devuelto -

El valor predeterminado de cada componente de fecha-hora es {{jsxref("undefined")}}, pero si las propiedades weekday, year, month y day son todas {{jsxref("undefined")}}, entonces year, month y day se asumen como "numeric".

+Una cadena representando la porción de tiempo de la instancia {{jsxref("Global_Objects/Date", "Date")}} dada, conforme a las convenciones específicas del idioma. -

Valor devuelto

+## Ejemplos -

Una cadena representando la porción de tiempo de la instancia {{jsxref("Global_Objects/Date", "Date")}} dada, conforme a las convenciones específicas del idioma.

+### Usando `toLocaleTimeString()` -

Ejemplos

+En el uso básico sin especificar una localidad, una cadena con formato en la localidad y opciones predeterminadas es devuelta. -

Usando toLocaleTimeString()

- -

En el uso básico sin especificar una localidad, una cadena con formato en la localidad y opciones predeterminadas es devuelta.

- -
var fecha = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));
+```js
+var fecha = new Date(Date.UTC(2012, 11, 12, 3, 0, 0));
 
 // toLocaleTimeString() sin argumentos depende de la implementación,
 // la localidad y la zona horaria predeterminadas
 console.log(date.toLocaleTimeString());
 // → "21:00:00" si se ejecuta en la localidad es-MX con la zona horaria America/Mexico_City
-
+``` -

Verificando el soporte de argumentos locales y options

+### Verificando el soporte de argumentos `locales` y `options` -

Los argumentos locales y options aún no están soportados en todos los navegadores. Para verificar si alguna implementación ya los soporta, puede usar el requerimiento de que etiquetas inválidas son rechazadas con una excepción {{jsxref("RangeError")}}:

+Los argumentos `locales` y `options` aún no están soportados en todos los navegadores. Para verificar si alguna implementación ya los soporta, puede usar el requerimiento de que etiquetas inválidas son rechazadas con una excepción {{jsxref("RangeError")}}: -
function toLocaleTimeStringSoportaLocales() {
+```js
+function toLocaleTimeStringSoportaLocales() {
   try {
     new Date().toLocaleTimeString('i');
   } catch (e) {
@@ -62,13 +62,14 @@ console.log(date.toLocaleTimeString());
   }
   return false;
 }
-
+``` -

Usando locales

+### Usando `locales` -

Este ejemplo muestra una de las variaciones en formatos de tiempo localizados. Para obtener el formato del idioma usado en la interfaz de su aplicación, asegúrese de especificar ese idioma (y posiblemente algunos de fallback) usando el argumento locales:

+Este ejemplo muestra una de las variaciones en formatos de tiempo localizados. Para obtener el formato del idioma usado en la interfaz de su aplicación, asegúrese de especificar ese idioma (y posiblemente algunos de _fallback_) usando el argumento `locales`: -
var fecha = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+```js
+var fecha = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
 
 // los siguientes formatos asumen la zona horaria de la localidad;
 // America/Los_Angeles para los EEUU
@@ -87,19 +88,20 @@ console.log(date.toLocaleTimeString('ko-KR'));
 
 // En muchos países donde hablan árabe se usan dígitos árabes
 console.log(date.toLocaleTimeString('ar-EG'));
-// → "٧:٠٠:٠٠ م"
+// → "٧:٠٠:٠٠ م"
 
 // cuando se pide un idioma que puede no estar disponible, como
 // balinés, incluya un idioma de respaldo, como en este caso, indonesio
 console.log(date.toLocaleTimeString(['ban', 'id']));
 // → "11.00.00"
-
+``` -

Usando options

+### Usando `options` -

Los resultados provistos por toLocaleTimeString() pueden ser personalizados usando el argumento options:

+Los resultados provistos por `toLocaleTimeString()` pueden ser personalizados usando el argumento `options`: -
var fecha = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
+```js
+var fecha = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
 
 // una aplicación puede querer usar UTC y visibilizarlo:
 var options = { timeZone: 'UTC', timeZoneName: 'short' };
@@ -113,39 +115,27 @@ console.log(date.toLocaleTimeString('en-US', { hour12: false }));
 // mostrar únicamente horas y minutos, use options con la localidad predeterminada - usar un arreglo vacío
 console.log(date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }));
 // → "20:01"
+```
 
-
- -

Rendimiento

+## Rendimiento -

Cuando se da formato a un gran número de fechas, es mejor crear un objeto {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}} y usar su método {{jsxref("DateTimeFormat.prototype.format", "format")}}.

+Cuando se da formato a un gran número de fechas, es mejor crear un objeto {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}} y usar su método {{jsxref("DateTimeFormat.prototype.format", "format")}}. -

Especificaciones

+## Especificaciones - - - - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-date.prototype.tolocaletimestring', 'Date.prototype.toLocaleTimeString')}}
{{SpecName('ES Int Draft', '#sup-date.prototype.tolocaletimestring', 'Date.prototype.toLocaleTimeString')}}
+| Specification | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | +| {{SpecName('ESDraft', '#sec-date.prototype.tolocaletimestring', 'Date.prototype.toLocaleTimeString')}} | +| {{SpecName('ES Int Draft', '#sup-date.prototype.tolocaletimestring', 'Date.prototype.toLocaleTimeString')}} | -

Compatibilidad con navegadores

+## Compatibilidad con navegadores -

{{Compat("javascript.builtins.Date.toLocaleTimeString")}}

+{{Compat("javascript.builtins.Date.toLocaleTimeString")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}
  • -
  • {{jsxref("Date.prototype.toLocaleDateString()")}}
  • -
  • {{jsxref("Date.prototype.toLocaleString()")}}
  • -
  • {{jsxref("Date.prototype.toTimeString()")}}
  • -
  • {{jsxref("Date.prototype.toString()")}}
  • -
+- {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}} +- {{jsxref("Date.prototype.toLocaleDateString()")}} +- {{jsxref("Date.prototype.toLocaleString()")}} +- {{jsxref("Date.prototype.toTimeString()")}} +- {{jsxref("Date.prototype.toString()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/toutcstring/index.md b/files/es/web/javascript/reference/global_objects/date/toutcstring/index.md index ab03bc6a858c02..3112d8c58cafc8 100644 --- a/files/es/web/javascript/reference/global_objects/date/toutcstring/index.md +++ b/files/es/web/javascript/reference/global_objects/date/toutcstring/index.md @@ -11,94 +11,60 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Date/toUTCString original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/toUTCString --- -
{{JSRef}}
+{{JSRef}} -

El métodotoUTCString() convierte una fecha en una cadena, utilizando la zona horaria UTC.

+`El método`**`toUTCString()`** convierte una fecha en una cadena, utilizando la zona horaria UTC. -
{{EmbedInteractiveExample("pages/js/date-toutcstring.html")}}
+{{EmbedInteractiveExample("pages/js/date-toutcstring.html")}} +## Sintaxis + dateObj.toUTCString() -

Sintaxis

+### Valor de retorno -
dateObj.toUTCString()
+Una cadena que representa la fecha dada usando la zona horaria UTC -

Valor de retorno

+## Descripción -

Una cadena que representa la fecha dada usando la zona horaria UTC

+El valor devuelto por `toUTCString()` es una cadena con la forma -

Descripción

+`Www, dd Mmm yyyy hh:mm:ss GMT` -

El valor devuelto por toUTCString() es una cadena con la forma

+donde: -

Www, dd Mmm yyyy hh:mm:ss GMT

+| Www | Día de la semana, como tres letras (ej. Sun, Mon, ...) | +| ---- | ----------------------------------------------------------------------- | +| dd | Día del mes, como dos dígitos, con cero a la izquierda si es necesario. | +| Mmm | Mes, como tres letras (ej. Jan, Feb, ...) | +| yyyy | Año, como cuatro o más dígitos con cero a la izquierda si es necesario. | +| hh | Hora, como dos dígitos con cero a la izquierda si es necesario. | +| mm | Minutos, como dos dígitos con cero a la izquierda si es necesario. | +| ss | Segundos, como dos dígitos con cero a la izquierda si es necesario. | -

donde:

+Antes de ECMAScript 2018, el formato del valor devuelto variaba según la plataforma. El valor devuelto más comun era un sello de fecha con formato RFC-1123, que es una versión ligeramente actualizada de los sellos de fecha RFC-822. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
WwwDía de la semana, como tres letras (ej. Sun, Mon, ...)
ddDía del mes, como dos dígitos, con cero a la izquierda si es necesario.
MmmMes, como tres letras (ej. Jan, Feb, ...)
yyyyAño, como cuatro o más dígitos con cero a la izquierda si es necesario.
hhHora, como dos dígitos con cero a la izquierda si es necesario.
mmMinutos, como dos dígitos con cero a la izquierda si es necesario.
ssSegundos, como dos dígitos con cero a la izquierda si es necesario.
+## Ejemplos -

Antes de ECMAScript 2018, el formato del valor devuelto variaba según la plataforma. El valor devuelto más comun era un sello de fecha con formato RFC-1123, que es una versión ligeramente actualizada de los sellos de fecha RFC-822.

+### Usando `toUTCString()` -

Ejemplos

- -

Usando toUTCString()

- -
var today = new Date('Wed, 14 Jun 2017 00:00:00 PDT');
+```js
+var today = new Date('Wed, 14 Jun 2017 00:00:00 PDT');
 var UTCstring = today.toUTCString(); // Wed, 14 Jun 2017 07:00:00 GMT
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-date.prototype.toutcstring', 'Date.prototype.toUTCString')}}
+| Especificación | +| -------------------------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-date.prototype.toutcstring', 'Date.prototype.toUTCString')}} | -

Compatibilidad del navegador

+## Compatibilidad del navegador -

{{Compat("javascript.builtins.Date.toUTCString")}}

+{{Compat("javascript.builtins.Date.toUTCString")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Date.prototype.toLocaleString()")}}
  • -
  • {{jsxref("Date.prototype.toDateString()")}}
  • -
  • {{jsxref("Date.prototype.toISOString()")}}
  • -
+- {{jsxref("Date.prototype.toLocaleString()")}} +- {{jsxref("Date.prototype.toDateString()")}} +- {{jsxref("Date.prototype.toISOString()")}} diff --git a/files/es/web/javascript/reference/global_objects/date/utc/index.md b/files/es/web/javascript/reference/global_objects/date/utc/index.md index 9af6ae654be756..c04948cc0d6b20 100644 --- a/files/es/web/javascript/reference/global_objects/date/utc/index.md +++ b/files/es/web/javascript/reference/global_objects/date/utc/index.md @@ -9,71 +9,76 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Date/UTC original_slug: Web/JavaScript/Referencia/Objetos_globales/Date/UTC --- -
- {{JSRef("Objetos_globales", "Date")}}
-

Resumen

-

Accepts the same parameters as the longest form of the constructor, and returns the number of milliseconds in a Date object since January 1, 1970, 00:00:00, universal time.

-

Sintaxis

-
Date.UTC(año,mes[, dia[, hora[, minutos[, segundos, milisegundos]]]])
-

Parámetros

-
-
- año
-
- Un año mayor de 1900.
-
-
-
- mes
-
- Un entero entre 0 y 11 que representa al mes.
-
-
-
- dia
-
- Un entero entre 1 y 31 que representa al día del mes.
-
-
-
- hora
-
- Un entero entre 0 y 23 que representa la hora.
-
-
-
- minutos
-
- Un entero entre 0 y 59 que representa los minutos.
-
-
-
- segundos
-
- Un entero entre 0 y 59 que representa los segundos.
-
-
-
- milisegundos
-
- Un entero entre 0 y 999 que representa los milisegundos.
-
-

Descripción

-

UTC toma los parámetros de la fecha delimitados por punto y comay devuelve el número de milisegundos entre las 00:00:00 del 1 de enero de 1970 (hora universal) y la hora que especifique.

-

Debería especificar los dígitos del año completo; por ejemplo, 1998. Si se especifica un año entre 0 y 99, el método convierte dicho año en uno del siglo XX (1900 + año); por ejemplo, si especifica 95, se usará el año 1995.

-

El método UTC difiere del constructor de Date de dos modos.

-
    -
  • Date.UTC utiliza la fecha y hora universal en vez de la local.
  • -
  • Date.UTC devuelve la fecha y hora como un número en vez de crear un objeto Date.
  • -
-

Si especifica un parámetro fuera del rango esperado, el método UTC modifica los otros parámetros para tener en cuenta su número. Por ejemplo, si usa 15 para el mes, el año será incrementado en 1 (año + 1), y 3 se usará para el mes.

-

Debido a que UTC es un método estático de Date, utilícelo siempre como Date.UTC(), en vez de como un método del objeto Date que usted cree.

-

Ejemplos

-

Ejemplo: Usando Date.UTC

-

La sentencia siguiente crea un objeto Date usando GMT en vez de la hora local:

-
fechaGmt = new Date(Date.UTC(96, 11, 1, 0, 0, 0));
-
-

Vea También

-
    -
  • {{jsxref("Date.parse()")}}
  • -
+{{JSRef("Objetos_globales", "Date")}} + +## Resumen + +Accepts the same parameters as the longest form of the constructor, and returns the number of milliseconds in a `Date` object since January 1, 1970, 00:00:00, universal time. + +## Sintaxis + + Date.UTC(año,mes[, dia[, hora[, minutos[, segundos, milisegundos]]]]) + +### Parámetros + +- `año` + - : Un año mayor de 1900. + + + +- `mes` + - : Un entero entre 0 y 11 que representa al mes. + + + +- `dia` + - : Un entero entre 1 y 31 que representa al día del mes. + + + +- `hora` + - : Un entero entre 0 y 23 que representa la hora. + + + +- `minutos` + - : Un entero entre 0 y 59 que representa los minutos. + + + +- `segundos` + - : Un entero entre 0 y 59 que representa los segundos. + + + +- `milisegundos` + - : Un entero entre 0 y 999 que representa los milisegundos. + +## Descripción + +`UTC` toma los parámetros de la fecha delimitados por punto y comay devuelve el número de milisegundos entre las 00:00:00 del 1 de enero de 1970 (hora universal) y la hora que especifique. + +Debería especificar los dígitos del año completo; por ejemplo, 1998. Si se especifica un año entre 0 y 99, el método convierte dicho año en uno del siglo XX (1900 + año); por ejemplo, si especifica 95, se usará el año 1995. + +El método `UTC` difiere del constructor de `Date` de dos modos. + +- `Date.UTC` utiliza la fecha y hora universal en vez de la local. +- `Date.UTC` devuelve la fecha y hora como un número en vez de crear un objeto `Date`. + +Si especifica un parámetro fuera del rango esperado, el método `UTC` modifica los otros parámetros para tener en cuenta su número. Por ejemplo, si usa 15 para el mes, el año será incrementado en 1 (año + 1), y 3 se usará para el mes. + +Debido a que `UTC` es un método estático de `Date`, utilícelo siempre como `Date.UTC()`, en vez de como un método del objeto `Date` que usted cree. + +## Ejemplos + +### Ejemplo: Usando `Date.UTC` + +La sentencia siguiente crea un objeto `Date` usando GMT en vez de la hora local: + +```js +fechaGmt = new Date(Date.UTC(96, 11, 1, 0, 0, 0)); +``` + +## Vea También + +- {{jsxref("Date.parse()")}} diff --git a/files/es/web/javascript/reference/global_objects/decodeuri/index.md b/files/es/web/javascript/reference/global_objects/decodeuri/index.md index 15fc9800356493..b28f077cce0ca5 100644 --- a/files/es/web/javascript/reference/global_objects/decodeuri/index.md +++ b/files/es/web/javascript/reference/global_objects/decodeuri/index.md @@ -7,33 +7,29 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/decodeURI original_slug: Web/JavaScript/Referencia/Objetos_globales/decodeURI --- -
{{jsSidebar("Objects")}}
+{{jsSidebar("Objects")}} -

Sumario

+## Sumario -

Decodifica un Identificador de Recurso Uniforme (Uniform Resource Identifier, URI) previamente creado por {{jsxref("encodeURI")}} o por una rutina similar.

+Decodifica un Identificador de Recurso Uniforme (Uniform Resource Identifier, URI) previamente creado por {{jsxref("encodeURI")}} o por una rutina similar. -

Sintaxis

+## Sintaxis -

decodeURI(encodedURI)

+`decodeURI(encodedURI)` -

Parámetros

+### Parámetros -
-
encodedURI
-
Un completo, Identificador de Recurso Uniforme.
-
+- `encodedURI` + - : Un completo, Identificador de Recurso Uniforme. -

Descripción

+## Descripción -

Sustituye a cada secuencia de escape codificado en URI con el carácter que representa.

+Sustituye a cada secuencia de escape codificado en URI con el carácter que representa. -

No decodifica secuencias de escape que no se puedan haber introducido por {{jsxref("encodeURI")}}.

+No decodifica secuencias de escape que no se puedan haber introducido por {{jsxref("encodeURI")}}. -

Ver también

+## Ver también -
    -
  • {{jsxref("decodeURIComponent")}}
  • -
  • {{jsxref("encodeURI")}}
  • -
  • {{jsxref( "encodeURIComponent")}}
  • -
+- {{jsxref("decodeURIComponent")}} +- {{jsxref("encodeURI")}} +- {{jsxref( "encodeURIComponent")}} diff --git a/files/es/web/javascript/reference/global_objects/encodeuri/index.md b/files/es/web/javascript/reference/global_objects/encodeuri/index.md index 72a814d8da3a3a..87dc070eacde35 100644 --- a/files/es/web/javascript/reference/global_objects/encodeuri/index.md +++ b/files/es/web/javascript/reference/global_objects/encodeuri/index.md @@ -7,56 +7,37 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/encodeURI original_slug: Web/JavaScript/Referencia/Objetos_globales/encodeURI --- -
{{jsSidebar("Objects")}}
+{{jsSidebar("Objects")}} -

Sumario

+## Sumario -

Codifica un Identificador de Recurso Uniforme (Uniform Resource Identifier, URI) reemplazando cada instancia de ciertos carácteres por uno, dos o tres secuencias de escape representando el carácter codificado en UTF-8.

+Codifica un Identificador de Recurso Uniforme (Uniform Resource Identifier, URI) reemplazando cada instancia de ciertos carácteres por uno, dos o tres secuencias de escape representando el carácter codificado en UTF-8. -

Sintaxis

+## Sintaxis -

encodeURI(URI)

+`encodeURI(URI)` -

Parámetros

+### Parámetros -
-
URI
-
Un Identificador de Recurso Uniforme codificado.
-
+- `URI` + - : Un Identificador de Recurso Uniforme codificado. -

Descripción

+## Descripción -

Se asume que el URI es un URI completo, a fin de no codificar caracteres reservados que tienen un significado especial en la URI.

+Se asume que el URI es un URI completo, a fin de no codificar caracteres reservados que tienen un significado especial en la URI. -

encodeURI reemplaza todos los caracteres excepto los siguientes con las secuencias de escape UTF-8:

+`encodeURI `reemplaza todos los caracteres excepto los siguientes con las secuencias de escape UTF-8: - - - - - - - - - - - - - - - - - - - -
TipoIncluye
Caracteres reservados; , / ? : @ & = + $
Caracteres No escapeAlfabéticos, dígitos decimales, - _ . ! ~ * ' ( )
Almohadilla#
+| Tipo | Incluye | +| --------------------- | --------------------------------------------------- | +| Caracteres reservados | `; , / ? : @ & = + $` | +| Caracteres No escape | Alfabéticos, dígitos decimales, `- _ . ! ~ * ' ( )` | +| Almohadilla | `#` | -

Tenga en cuenta que encodeURI por sí sola no puede formar solicitudes correctas HTTP GET y POST, como por XMLHTTPRequests, porque "&", "+", y "=" no están codificados, los cuales son tratados como caracteres especiales en las solicitudes GET y POST. encodeURIComponent, sin embargo, codifica estos caracteres. Lo más probable es que estos comportamientos no sean compatibles en los navegadores Web.

+Tenga en cuenta que encodeURI por sí sola no puede formar solicitudes correctas HTTP GET y POST, como por XMLHTTPRequests, porque "&", "+", y "=" no están codificados, los cuales son tratados como caracteres especiales en las solicitudes GET y POST. [`encodeURIComponent`](/es/Core_JavaScript_1.5_Reference/Global_Functions/encodeURIComponent "es/Core_JavaScript_1.5_Reference/Global_Functions/encodeURIComponent"), sin embargo, codifica estos caracteres. Lo más probable es que estos comportamientos no sean compatibles en los navegadores Web. -

Ver También

+## Ver También -
    -
  • {{jsxref("decodeURI")}}
  • -
  • {{jsxref("encodeURIComponent")}}
  • -
  • {{jsxref("decodeURIComponent")}}
  • -
+- {{jsxref("decodeURI")}} +- {{jsxref("encodeURIComponent")}} +- {{jsxref("decodeURIComponent")}} diff --git a/files/es/web/javascript/reference/global_objects/error/error/index.md b/files/es/web/javascript/reference/global_objects/error/error/index.md index 39e9ca79c85ec6..7b5623c8eb84be 100644 --- a/files/es/web/javascript/reference/global_objects/error/error/index.md +++ b/files/es/web/javascript/reference/global_objects/error/error/index.md @@ -8,63 +8,48 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Error/Error original_slug: Web/JavaScript/Referencia/Objetos_globales/Error/constructor_Error --- -
{{JSRef}}
+{{JSRef}} -

El constructor Error crea un objeto Error.

+El constructor **`Error`** crea un objeto `Error`. -

Sintaxis

+## Sintaxis -
new Error([message[, fileName[, lineNumber]]])
+ new Error([message[, fileName[, lineNumber]]]) -

Parámetros

+### Parámetros -
-
message{{Optional_Inline}}
-
Una descripción del error legible para los humanos.
-
fileName {{Optional_Inline}}{{Non-standard_inline}}
-
El valor de la propiedad fileName en el objeto Error creado. De manera predeterminada, el nombre del archivo que contiene el código que llamó al constructor Error().
-
lineNumber {{Optional_Inline}}{{Non-standard_inline}}
-
El valor de la propiedad lineNumber en el objeto Error creado. De manera predeterminada, el número de línea que contiene la invocación del constructor Error().
-
+- `message`{{Optional_Inline}} + - : Una descripción del error legible para los humanos. +- `fileName` {{Optional_Inline}}{{Non-standard_inline}} + - : El valor de la propiedad `fileName` en el objeto `Error` creado. De manera predeterminada, el nombre del archivo que contiene el código que llamó al constructor `Error()`. +- `lineNumber` {{Optional_Inline}}{{Non-standard_inline}} + - : El valor de la propiedad `lineNumber` en el objeto `Error` creado. De manera predeterminada, el número de línea que contiene la invocación del constructor `Error()`. -

Ejemplos

+## Ejemplos -

Llamada a función o construcción new

+### Llamada a función o construcción `new` -

Cuando se usa Error como una función, sin {{JSxRef("Operators/new", "new")}}, devolverá un objeto Error. Por lo tanto, una simple llamada a Error producirá el mismo resultado que la construcción de un objeto Error mediante la palabra clave new.

+Cuando se usa `Error` como una función, sin {{JSxRef("Operators/new", "new")}}, devolverá un objeto `Error`. Por lo tanto, una simple llamada a `Error` producirá el mismo resultado que la construcción de un objeto `Error` mediante la palabra clave `new`. -
// esto...
+```js
+// esto...
 const x = Error('¡Fui creado usando una llamada a función!')
 
     // ...tiene la misma funcionalidad que esta.
-const y = new Error('¡Fui construido con la palabra clave "new"!') 
+const y = new Error('¡Fui construido con la palabra clave "new"!') +``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-error-constructor', 'Error constructor')}}
+| Especificación | +| -------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-error-constructor', 'Error constructor')}} | -

Compatibilidad del navegador

+## Compatibilidad del navegador -
+{{Compat("javascript.builtins.Error.Error")}} +## Ve también -

{{Compat("javascript.builtins.Error.Error")}}

-
- -

Ve también

- -
    -
  • {{JSxRef("Sentencias/throw", "throw")}}
  • -
  • {{JSxRef("Sentencias/try...catch", "try...catch")}}
  • -
+- {{JSxRef("Sentencias/throw", "throw")}} +- {{JSxRef("Sentencias/try...catch", "try...catch")}} diff --git a/files/es/web/javascript/reference/global_objects/error/filename/index.md b/files/es/web/javascript/reference/global_objects/error/filename/index.md index 7edab91d9c20c0..846d27418c9af6 100644 --- a/files/es/web/javascript/reference/global_objects/error/filename/index.md +++ b/files/es/web/javascript/reference/global_objects/error/filename/index.md @@ -9,41 +9,34 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Error/fileName original_slug: Web/JavaScript/Referencia/Objetos_globales/Error/fileName --- -
{{jsRef}} {{non-standard_header}}
+{{jsRef}} {{non-standard_header}} -

La propiedad fileName contiene la ruta al archivo que generó este error.

+La propiedad **`fileName`** contiene la ruta al archivo que generó este error. -

Descripción

+## Descripción -

Esta propiedad no estándar contiene la ruta al archivo que generó este error. Si se llama desde un contexto de depuración, devuelve las herramientas de desarrollo de Firefox, por ejemplo, "código de evaluación del depurador".

+Esta propiedad no estándar contiene la ruta al archivo que generó este error. Si se llama desde un contexto de depuración, devuelve las herramientas de desarrollo de Firefox, por ejemplo, "código de evaluación del depurador". -

Ejemplos

+## Ejemplos -

Usar fileName

+### Usar `fileName` -
var e = new Error('No se pudo procesar la entrada');
+```js
+var e = new Error('No se pudo procesar la entrada');
 throw e;
 // e.fileName podría verse como "file:///C:/ejemplo.html"
-
+``` -

Especificaciones

+## Especificaciones -

No forma parte de ningún estándar.

+No forma parte de ningún estándar. -

Compatibilidad del navegador

+## Compatibilidad del navegador -
-
+{{Compat("javascript.builtins.Error.fileName")}} +## Ve también -

{{Compat("javascript.builtins.Error.fileName")}}

-
-
- -

Ve también

- -
    -
  • {{jsxref("Error.prototype.stack")}}
  • -
  • {{jsxref("Error.prototype.columnNumber")}}
  • -
  • {{jsxref("Error.prototype.lineNumber")}}
  • -
+- {{jsxref("Error.prototype.stack")}} +- {{jsxref("Error.prototype.columnNumber")}} +- {{jsxref("Error.prototype.lineNumber")}} diff --git a/files/es/web/javascript/reference/global_objects/error/index.md b/files/es/web/javascript/reference/global_objects/error/index.md index 4d7d12058de313..389cd19a1dbd96 100644 --- a/files/es/web/javascript/reference/global_objects/error/index.md +++ b/files/es/web/javascript/reference/global_objects/error/index.md @@ -7,95 +7,87 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Error original_slug: Web/JavaScript/Referencia/Objetos_globales/Error --- -
{{JSRef}}
- -

Los objetos Error se lanzan cuando ocurren errores en tiempo de ejecución. También puedes utilizar el objeto Error como objeto base para excepciones definidas por el usuario. Ve más adelante los tipos de errores estándar integrados.

- -

Descripción

- -

Los errores en tiempo de ejecución dan como resultado la creación y lanzamiento de nuevos objetos Error.

- -

Tipos Error

- -

Además del constructor genérico Error, hay otros siete constructores de errores en el núcleo de JavaScript. Para conocer las excepciones de lado del cliente, consulta {{JSxRef("../Guide/Control_de_flujo_y_manejo_de_errores", "Declaraciones para el manejo de excepciones", "#Sentencias_de_manejo_de_excepciones", 1)}}.

- -
-
{{JSxRef("EvalError")}}
-
Crea una instancia que representa un error que ocurre con respecto a la función global {{JSxRef("eval", "eval()")}}.
-
{{JSxRef("InternalError")}}
-
Crea una instancia que representa un error que ocurre cuando se produce un error interno en el motor de JavaScript. Por ejemplo: "demasiada recursividad".
-
{{JSxRef("RangeError")}}
-
Crea una instancia que representa un error que ocurre cuando una variable numérica o parámetro está fuera de su rango válido.
-
{{JSxRef("ReferenceError")}}
-
Crea una instancia que representa un error que ocurre cuando se quita la referencia a una referencia no válida.
-
{{JSxRef("SyntaxError")}}
-
Crea una instancia que representa un error de sintaxis.
-
{{JSxRef("TypeError")}}
-
Crea una instancia que representa un error que ocurre cuando una variable o parámetro no es de un tipo válido.
-
{{JSxRef("URIError")}}
-
Crea una instancia que representa un error que ocurre cuando {{JSxRef("encodeURI", "encodeURI()")}} o {{JSxRef("decodeURI", "decodeURI()")}} pasan parámetros no válidos.
-
- -

Constructor

- -
-
{{JSxRef("Objetos_globales/Error/Error", "Error()")}}
-
Crea un nuevo objeto Error.
-
- -

Métodos estáticos

- -
-
{{JSxRef("Error.captureStackTrace()")}}
-
Una función V8 no estándar que crea la propiedad {{JSxRef("Error.prototype.stack", "stack")}} en una instancia de Error.
-
- -

Propiedades de la instancia

- -
-
{{jsxref("Error.prototype.message")}}
-
Mensaje de error.
-
{{jsxref("Error.prototype.name")}}
-
Nombre del error.
-
{{jsxref("Error.prototype.description")}}
-
Una propiedad no estándar de Microsoft para la descripción del error. Similar a {{jsxref("Error.prototype.message", "message")}}.
-
{{jsxref("Error.prototype.number")}}
-
Una propiedad no estándar de Microsoft para un número de error.
-
{{jsxref("Error.prototype.fileName")}}
-
Una propiedad no estándar de Mozilla para la ruta al archivo que generó este error.
-
{{JSxRef("Error.prototype.lineNumber")}}
-
Una propiedad no estándar de Mozilla para el número de línea en el archivo que generó este error.
-
{{JSxRef("Error.prototype.columnNumber")}}
-
Una propiedad no estándar de Mozilla para el número de columna en la línea que generó este error.
-
{{JSxRef("Error.prototype.stack")}}
-
Una propiedad no estándar de Mozilla para un seguimiento de la pila.
-
- -

Métodos de instancia

- -
-
{{jsxref("Error.prototype.toString()")}}
-
Devuelve una cadena que representa el objeto especificado. Redefine el método {{JSxRef("Object.prototype.toString()")}}.
-
- -

Ejemplos

- -

Lanzar un error genérico

- -

Normalmente, creas un objeto Error con la intención de generarlo utilizando la palabra clave {{JSxRef("Sentencias/throw", "throw")}}. Puedes manejar el error usando la construcción {{JSxRef("Sentencias/try...catch", "try...catch")}}:

- -
try {
+{{JSRef}}
+
+Los objetos `Error` se lanzan cuando ocurren errores en tiempo de ejecución. También puedes utilizar el objeto `Error` como objeto base para excepciones definidas por el usuario. Ve más adelante los tipos de errores estándar integrados.
+
+## Descripción
+
+Los errores en tiempo de ejecución dan como resultado la creación y lanzamiento de nuevos objetos `Error`.
+
+### Tipos `Error`
+
+Además del constructor genérico `Error`, hay otros siete constructores de errores en el núcleo de JavaScript. Para conocer las excepciones de lado del cliente, consulta {{JSxRef("../Guide/Control_de_flujo_y_manejo_de_errores", "Declaraciones para el manejo de excepciones", "#Sentencias_de_manejo_de_excepciones", 1)}}.
+
+- {{JSxRef("EvalError")}}
+  - : Crea una instancia que representa un error que ocurre con respecto a la función global {{JSxRef("eval", "eval()")}}.
+- {{JSxRef("InternalError")}}
+  - : Crea una instancia que representa un error que ocurre cuando se produce un error interno en el motor de JavaScript. Por ejemplo: "demasiada recursividad".
+- {{JSxRef("RangeError")}}
+  - : Crea una instancia que representa un error que ocurre cuando una variable numérica o parámetro está fuera de su rango válido.
+- {{JSxRef("ReferenceError")}}
+  - : Crea una instancia que representa un error que ocurre cuando se quita la referencia a una referencia no válida.
+- {{JSxRef("SyntaxError")}}
+  - : Crea una instancia que representa un error de sintaxis.
+- {{JSxRef("TypeError")}}
+  - : Crea una instancia que representa un error que ocurre cuando una variable o parámetro no es de un tipo válido.
+- {{JSxRef("URIError")}}
+  - : Crea una instancia que representa un error que ocurre cuando {{JSxRef("encodeURI", "encodeURI()")}} o {{JSxRef("decodeURI", "decodeURI()")}} pasan parámetros no válidos.
+
+## Constructor
+
+- {{JSxRef("Objetos_globales/Error/Error", "Error()")}}
+  - : Crea un nuevo objeto `Error`.
+
+## Métodos estáticos
+
+- {{JSxRef("Error.captureStackTrace()")}}
+  - : Una función **V8** no estándar que crea la propiedad {{JSxRef("Error.prototype.stack", "stack")}} en una instancia de `Error`.
+
+## Propiedades de la instancia
+
+- {{jsxref("Error.prototype.message")}}
+  - : Mensaje de error.
+- {{jsxref("Error.prototype.name")}}
+  - : Nombre del error.
+- {{jsxref("Error.prototype.description")}}
+  - : Una propiedad no estándar de Microsoft para la descripción del error. Similar a {{jsxref("Error.prototype.message", "message")}}.
+- {{jsxref("Error.prototype.number")}}
+  - : Una propiedad no estándar de Microsoft para un número de error.
+- {{jsxref("Error.prototype.fileName")}}
+  - : Una propiedad no estándar de Mozilla para la ruta al archivo que generó este error.
+- {{JSxRef("Error.prototype.lineNumber")}}
+  - : Una propiedad no estándar de Mozilla para el número de línea en el archivo que generó este error.
+- {{JSxRef("Error.prototype.columnNumber")}}
+  - : Una propiedad no estándar de Mozilla para el número de columna en la línea que generó este error.
+- {{JSxRef("Error.prototype.stack")}}
+  - : Una propiedad no estándar de Mozilla para un seguimiento de la pila.
+
+## Métodos de instancia
+
+- {{jsxref("Error.prototype.toString()")}}
+  - : Devuelve una cadena que representa el objeto especificado. Redefine el método {{JSxRef("Object.prototype.toString()")}}.
+
+## Ejemplos
+
+### Lanzar un error genérico
+
+Normalmente, creas un objeto `Error` con la intención de generarlo utilizando la palabra clave {{JSxRef("Sentencias/throw", "throw")}}. Puedes manejar el error usando la construcción {{JSxRef("Sentencias/try...catch", "try...catch")}}:
+
+```js
+try {
   throw new Error('¡Ups!')
 } catch (e) {
   console.error(e.name + ': ' + e.message)
 }
-
+``` -

Manejar de un error específico

+### Manejar de un error específico -

Puede elegir manejar solo tipos de error específicos probando el tipo de error con la propiedad {{JSxRef("Object.prototype.constructor", "constructor")}} del error o, si estás escribiendo para motores JavaScript modernos, la palabra clave {{JSxRef("Operators/instanceof", "instanceof")}}:

+Puede elegir manejar solo tipos de error específicos probando el tipo de error con la propiedad {{JSxRef("Object.prototype.constructor", "constructor")}} del error o, si estás escribiendo para motores JavaScript modernos, la palabra clave {{JSxRef("Operators/instanceof", "instanceof")}}: -
try {
+```js
+try {
   foo.bar()
 } catch (e) {
   if (e instanceof EvalError) {
@@ -105,25 +97,22 @@ original_slug: Web/JavaScript/Referencia/Objetos_globales/Error
   }
   // ... etc
 }
-
+``` -

Tipos Error personalizados

+### Tipos `Error` personalizados -

Posiblemente desees definir tus propios tipos de error derivados de Error para poder lanzarlo con throw new MyError() y usar instanceof MyError para verificar el tipo de error en el controlador de excepciones. Esto da como resultado un código de manejo de errores más limpio y consistente.

+Posiblemente desees definir tus propios tipos de error derivados de `Error` para poder lanzarlo con `throw new MyError()` y usar `instanceof MyError` para verificar el tipo de error en el controlador de excepciones. Esto da como resultado un código de manejo de errores más limpio y consistente. -

Consulta "¿Cuál es una buena manera de extender Error en JavaScript?" en StackOverflow para una discusión en profundidad.

+Consulta ["¿Cuál es una buena manera de extender `Error` en JavaScript?"](http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript) en StackOverflow para una discusión en profundidad. -

Clase Error personalizado en ES6

+#### Clase `Error` personalizado en ES6 -
-

Las versiones de Babel anteriores a la 7 pueden manejar métodos de clase CustomError, pero solo cuando se declaran con {{JSxRef("Objetos_globales/Object/defineProperty", "Object.defineProperty()")}}. De lo contrario, las versiones antiguas de Babel y otros transpiladores no manejarán correctamente el siguiente código sin configuración adicional.

-
+> **Advertencia:** Las versiones de Babel anteriores a la 7 pueden manejar métodos de clase `CustomError`, pero solo cuando se declaran con {{JSxRef("Objetos_globales/Object/defineProperty", "Object.defineProperty()")}}. De lo contrario, las versiones antiguas de Babel y otros transpiladores no manejarán correctamente el siguiente código sin [configuración adicional](https://github.com/loganfsmyth/babel-plugin-transform-builtin-extend). -
-

Algunos navegadores incluyen el constructor CustomError en el seguimiento de la pila cuando se utilizan clases de ES2015.

-
+> **Nota:** Algunos navegadores incluyen el constructor `CustomError` en el seguimiento de la pila cuando se utilizan clases de ES2015. -
class CustomError extends Error {
+```js
+class CustomError extends Error {
   constructor(foo = 'bar', ...params) {
     // Pasa los argumentos restantes (incluidos los específicos del proveedor) al constructor padre
     super(...params)
@@ -147,15 +136,15 @@ try {
   console.error(e.foo)     // baz
   console.error(e.message) // bazMessage
   console.error(e.stack)   // stacktrace
-}
+} +``` -

Objeto Error personalizado ES5

+#### Objeto `Error` personalizado ES5 -
-

Todos los navegadores incluyen el constructor CustomError en el seguimiento de la pila cuando se usa una declaración de prototipo.

-
+> **Advertencia:** **Todos** los navegadores incluyen el constructor `CustomError` en el seguimiento de la pila cuando se usa una declaración de prototipo. -
function CustomError(foo, message, fileName, lineNumber) {
+```js
+function CustomError(foo, message, fileName, lineNumber) {
   var instance = new Error(message, fileName, lineNumber);
   instance.name = 'CustomError';
   instance.foo = foo;
@@ -187,34 +176,20 @@ try {
   console.error(e.name); // CustomError
   console.error(e.foo); // baz
   console.error(e.message); // bazMessage
-}
- -

Especificaciones

- - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-error-objects', 'Error')}}
+} +``` -

Compatibilidad del navegador

+## Especificaciones -
+| Especificación | +| ------------------------------------------------------------------------ | +| {{SpecName('ESDraft', '#sec-error-objects', 'Error')}} | +## Compatibilidad del navegador -

{{Compat("javascript.builtins.Error")}}

-
+{{Compat("javascript.builtins.Error")}} -

Ve también

+## Ve también -
    -
  • {{JSxRef("Sentencias/throw", "throw")}}
  • -
  • {{JSxRef("Sentencias/try...catch", "try...catch")}}
  • -
+- {{JSxRef("Sentencias/throw", "throw")}} +- {{JSxRef("Sentencias/try...catch", "try...catch")}} diff --git a/files/es/web/javascript/reference/global_objects/error/message/index.md b/files/es/web/javascript/reference/global_objects/error/message/index.md index eb41cc3ac8eb18..9970f7ac3728b1 100644 --- a/files/es/web/javascript/reference/global_objects/error/message/index.md +++ b/files/es/web/javascript/reference/global_objects/error/message/index.md @@ -4,64 +4,40 @@ slug: Web/JavaScript/Reference/Global_Objects/Error/message translation_of: Web/JavaScript/Reference/Global_Objects/Error/message original_slug: Web/JavaScript/Referencia/Objetos_globales/Error/message --- -
{{JSRef}}
+{{JSRef}} -

La propiedad message es una descripción legible del error.

+La propiedad **`message`** es una descripción legible del error. -

Descripción

+## Descripción -

Esta propiedad contiene una breve descripción del error, si está disponible o ha sido fijado. SpiderMonkey hace un amplio uso de esta propiedad para las excepciones. Esta porpiedad combinada con la propiedad {{jsxref("Error.prototype.name", "name")}} es usada por el método {{jsxref("Error.prototype.toString()")}} para crear una cadena de texto del objeto Error.

+Esta propiedad contiene una breve descripción del error, si está disponible o ha sido fijado. [SpiderMonkey](/es/docs/Mozilla/Projects/SpiderMonkey) hace un amplio uso de esta propiedad para las excepciones. Esta porpiedad combinada con la propiedad {{jsxref("Error.prototype.name", "name")}} es usada por el método {{jsxref("Error.prototype.toString()")}} para crear una cadena de texto del objeto Error. -

Por defecto, la propiedad message es una cadena vacía, pero se puede especificar un mensaje a través del primer parámetro del {{jsxref("Error", "constructor Error")}}.

+Por defecto, la propiedad `message` es una cadena vacía, pero se puede especificar un mensaje a través del primer parámetro del {{jsxref("Error", "constructor Error")}}. -

Ejemplo

+## Ejemplo -

Lanzar un error personalizado

+### Lanzar un error personalizado -
var e = new Error('No se pudo analizar la entrada');
+```js
+var e = new Error('No se pudo analizar la entrada');
 // e.message es 'No se pudo analizar la entrada'
 throw e;
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial.
{{SpecName('ES5.1', '#sec-15.11.4.3', 'Error.prototype.message')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-error.prototype.message', 'Error.prototype.message')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-error.prototype.message', 'Error.prototype.message')}}{{Spec2('ESDraft')}}
+| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. | +| {{SpecName('ES5.1', '#sec-15.11.4.3', 'Error.prototype.message')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-error.prototype.message', 'Error.prototype.message')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-error.prototype.message', 'Error.prototype.message')}} | {{Spec2('ESDraft')}} | | -

Compatibilidad con navegadores

+## Compatibilidad con navegadores {{Compat("javascript.builtins.Error.message")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Error.prototype.name")}}
  • -
  • {{jsxref("Error.prototype.toString()")}}
  • -
+- {{jsxref("Error.prototype.name")}} +- {{jsxref("Error.prototype.toString()")}} diff --git a/files/es/web/javascript/reference/global_objects/error/name/index.md b/files/es/web/javascript/reference/global_objects/error/name/index.md index d4dbbf961dc969..1f8893e275f25b 100644 --- a/files/es/web/javascript/reference/global_objects/error/name/index.md +++ b/files/es/web/javascript/reference/global_objects/error/name/index.md @@ -9,51 +9,37 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Error/name original_slug: Web/JavaScript/Referencia/Objetos_globales/Error/name --- -
{{JSRef}}
+{{JSRef}} -

La propiedad name representa un nombre para el tipo de error. El valor inicial es "Error".

+La propiedad **`name`** representa un nombre para el tipo de error. El valor inicial es "Error". -

Descripción

+## Descripción -

De forma predeterminada, las instancias {{JSxRef("Error")}} reciben el nombre "Error". La propiedad name, además de la propiedad {{JSxRef("Error.prototype.message", "message")}}, la utiliza el método {{JSxRef("Error.prototype.toString()")}} para crear una representación de cadena del error.

+De forma predeterminada, las instancias {{JSxRef("Error")}} reciben el nombre "Error". La propiedad `name`, además de la propiedad {{JSxRef("Error.prototype.message", "message")}}, la utiliza el método {{JSxRef("Error.prototype.toString()")}} para crear una representación de cadena del error. -

Ejemplos

+## Ejemplos -

Lanzar un error personalizado

+### Lanzar un error personalizado -
var e = new Error('Entrada mal formada'); // e.name es 'Error'
+```js
+var e = new Error('Entrada mal formada'); // e.name es 'Error'
 
 e.name = 'ParseError';
 throw e;
 // e.toString() devolverá 'ParseError: Entrada mal formada'
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-error.prototype.name', 'Error.prototype.name')}}
+| Especificación | +| ---------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-error.prototype.name', 'Error.prototype.name')}} | -

Compatibilidad del navegador

+## Compatibilidad del navegador -
-
+{{Compat("javascript.builtins.Error.name")}} +## Ve también -

{{Compat("javascript.builtins.Error.name")}}

-
-
- -

Ve también

- -
    -
  • {{JSxRef("Error.prototype.message")}}
  • -
  • {{JSxRef("Error.prototype.toString()")}}
  • -
+- {{JSxRef("Error.prototype.message")}} +- {{JSxRef("Error.prototype.toString()")}} diff --git a/files/es/web/javascript/reference/global_objects/error/tostring/index.md b/files/es/web/javascript/reference/global_objects/error/tostring/index.md index 6ecec7f2d2342a..94c381e1b7785c 100644 --- a/files/es/web/javascript/reference/global_objects/error/tostring/index.md +++ b/files/es/web/javascript/reference/global_objects/error/tostring/index.md @@ -8,23 +8,24 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Error/toString original_slug: Web/JavaScript/Referencia/Objetos_globales/Error/toString --- -
{{JSRef}}
+{{JSRef}} -

El método toString() devuelve una cadena que representa el objeto {{JSxRef("Error")}} especificado.

+El método **`toString()`** devuelve una cadena que representa el objeto {{JSxRef("Error")}} especificado. -

Sintaxis

+## Sintaxis -
e.toString()
+ e.toString() -

Valor de retorno

+### Valor de retorno -

Una cadena que representa el objeto {{JSxRef("Error")}} especificado.

+Una cadena que representa el objeto {{JSxRef("Error")}} especificado. -

Descripción

+## Descripción -

El objeto {{JSxRef("Error")}} redefine el método {{JSxRef("Object.prototype.toString()")}} heredado por todos los objetos. Su semántica es la siguiente (asumiendo que {{JSxRef("Object")}} y {{JSxRef("String")}} tienen sus valores originales):

+El objeto {{JSxRef("Error")}} redefine el método {{JSxRef("Object.prototype.toString()")}} heredado por todos los objetos. Su semántica es la siguiente (asumiendo que {{JSxRef("Object")}} y {{JSxRef("String")}} tienen sus valores originales): -
Error.prototype.toString = function() {
+```js
+Error.prototype.toString = function() {
   'use strict';
 
   var obj = Object(this);
@@ -47,13 +48,14 @@ original_slug: Web/JavaScript/Referencia/Objetos_globales/Error/toString
 
   return name + ': ' + msg;
 };
-
+``` -

Ejemplos

+## Ejemplos -

Usar toString()

+### Usar `toString()` -
var e = new Error('fatal error');
+```js
+var e = new Error('fatal error');
 console.log(e.toString()); // 'Error: error fatal'
 
 e.name = undefined;
@@ -67,33 +69,18 @@ console.log(e.toString()); // ''
 
 e.name = 'hola';
 console.log(e.toString()); // 'hola'
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-error.prototype.tostring', 'Error.prototype.toString')}}
+| Especificación | +| ---------------------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-error.prototype.tostring', 'Error.prototype.toString')}} | -

Compatibilidad del navegador

+## Compatibilidad del navegador -
+{{Compat("javascript.builtins.Error.toString")}} +## Ve también -

{{Compat("javascript.builtins.Error.toString")}}

-
- -

Ve también

- -
    -
  • {{jsxref("Error.prototype.toSource()")}}
  • -
+- {{jsxref("Error.prototype.toSource()")}} diff --git a/files/es/web/javascript/reference/global_objects/escape/index.md b/files/es/web/javascript/reference/global_objects/escape/index.md index 22964428a1201e..b08cbfb3f6b3d4 100644 --- a/files/es/web/javascript/reference/global_objects/escape/index.md +++ b/files/es/web/javascript/reference/global_objects/escape/index.md @@ -8,85 +8,57 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/escape original_slug: Web/JavaScript/Referencia/Objetos_globales/escape --- -
{{Deprecated_header}} Advertencia escape() no esta estrictamente en desuso("eliminada por los estándares Web"), esta definida en Anexo B El estándar ECMA-262 , cuya introducción establece: -
… Todos las características especificas y comportamientos del lenguaje en este anexo tienen mas de una caracterísitca indeseable y en ausencia del legado sera eliminada de esta especificación. …
-… Los programadores no deben usar o suponer la existencia de estas características y/o comportamientos al escribir nuevo código ECMAScript …
-
+> **Advertencia:** {{Deprecated_header}} Advertencia `escape()` no esta estrictamente en desuso("eliminada por los estándares Web"), esta definida en [Anexo B](https://www.ecma-international.org/ecma-262/9.0/index.html#sec-additional-ecmascript-features-for-web-browsers) El estándar ECMA-262 , cuya introducción establece:> … Todos las características especificas y comportamientos del lenguaje en este anexo tienen mas de una caracterísitca indeseable y en ausencia del legado sera eliminada de esta especificación. … +> +> > … Los programadores no deben usar o suponer la existencia de estas características y/o comportamientos al escribir nuevo código ECMAScript … +La función obsoleta **`escape()`** crea una nueva cadena de caracteres en los que ciertos caracteres han sido sustituidos por una secuencia hexadecimal de escape. +## Sintaxis -

La función obsoleta escape() crea una nueva cadena de caracteres en los que ciertos caracteres han sido sustituidos por una secuencia hexadecimal de escape.

+ escape(str) -

Sintaxis

+### Parametros -
escape(str)
+- `str` + - : Cadena a codificar. -

Parametros

+### Devuelve -
-
str
-
Cadena a codificar.
-
+Una nueva cadena en la que ciertos caracteres han sido sustituidos. -

Devuelve

+## Descripción -

Una nueva cadena en la que ciertos caracteres han sido sustituidos.

+La función `escape `es una propiedad del _objeto global._ SLos caracteres especiales son codificados a excepción de: @\*\_+-./ -

Descripción

+La forma hexadecimal de los caracteres cuyo valor es 0xFF o menor, es una secuencia de escape de dos digitos: %xx. Para caracteres un valor superior, se usa el fomato de cuatro digitos: %**u**xxxx. -

La función escape es una propiedad del objeto global. SLos caracteres especiales son codificados a excepción de: @*_+-./

+## Ejemplos -

La forma hexadecimal de los caracteres cuyo valor es 0xFF o menor, es una secuencia de escape de dos digitos: %xx. Para caracteres un valor superior, se usa el fomato de cuatro digitos: %uxxxx.

- -

Ejemplos

- -
escape('abc123');     // "abc123"
+```js
+escape('abc123');     // "abc123"
 escape('äöü');        // "%E4%F6%FC"
 escape('ć');          // "%u0107"
 
 // caracteres especiales
-escape('@*_+-./');    // "@*_+-./"
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition.
{{SpecName('ES5.1', '#sec-B.2.1', 'escape')}}{{Spec2('ES5.1')}}Defined in the (informative) Compatibility Annex B
{{SpecName('ES6', '#sec-escape-string', 'escape')}}{{Spec2('ES6')}}Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers
{{SpecName('ESDraft', '#sec-escape-string', 'escape')}}{{Spec2('ESDraft')}}Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers
- -

Compatibilidad con navegadores

- -

{{Compat("javascript.builtins.escape")}}

- -

Ver más

- -
    -
  • {{jsxref("encodeURI")}}
  • -
  • {{jsxref("encodeURIComponent")}}
  • -
  • {{jsxref("unescape")}}
  • -
+escape('@*_+-./'); // "@*_+-./" +``` + +## Specifications + +| Specification | Status | Comment | +| ------------------------------------------------------------------------ | ---------------------------- | -------------------------------------------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Initial definition. | +| {{SpecName('ES5.1', '#sec-B.2.1', 'escape')}} | {{Spec2('ES5.1')}} | Defined in the (informative) Compatibility Annex B | +| {{SpecName('ES6', '#sec-escape-string', 'escape')}} | {{Spec2('ES6')}} | Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers | +| {{SpecName('ESDraft', '#sec-escape-string', 'escape')}} | {{Spec2('ESDraft')}} | Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.escape")}} + +## Ver más + +- {{jsxref("encodeURI")}} +- {{jsxref("encodeURIComponent")}} +- {{jsxref("unescape")}} diff --git a/files/es/web/javascript/reference/global_objects/function/arguments/index.md b/files/es/web/javascript/reference/global_objects/function/arguments/index.md index 58b5219493603b..9ccc3489368474 100644 --- a/files/es/web/javascript/reference/global_objects/function/arguments/index.md +++ b/files/es/web/javascript/reference/global_objects/function/arguments/index.md @@ -4,42 +4,36 @@ slug: Web/JavaScript/Reference/Global_Objects/Function/arguments translation_of: Web/JavaScript/Reference/Global_Objects/Function/arguments original_slug: Web/JavaScript/Referencia/Objetos_globales/Function/arguments --- -
{{JSRef("Objetos_globales", "Function")}} {{deprecated_header}}
+{{JSRef("Objetos_globales", "Function")}} {{deprecated_header}} -

Resumen

+### Resumen -

Un objeto de tipo arreglo correspondiente a los argumentos pasados a la función.

+Un objeto de tipo arreglo correspondiente a los argumentos pasados a la función. -

Descripción

+### Descripción -

Use el objeto arguments disponible dentro de las funciones en vez de Function.arguments.

+Use el objeto [`arguments`](es/Referencia_de_JavaScript_1.5/Funciones/arguments) disponible dentro de las funciones en vez de `Function.arguments`. -

Notas

+### Notas -

En caso de recursividad, es decir, si la función f aparece varias veces en la pila de llamada, el valor de f.arguments representa los argumentos correspondientes a la invocación más reciente de la función.

+En caso de recursividad, es decir, si la función `f` aparece varias veces en la pila de llamada, el valor de `f.arguments` representa los argumentos correspondientes a la invocación más reciente de la función. -

Ejemplo

+### Ejemplo -
function f(n) { g(n-1) }
-function g(n) {
-  print("antes: " + g.arguments[0]);
-  if(n>0)
-    f(n);
-  print("después: " + g.arguments[0]);
-}
-f(2)
-
+ function f(n) { g(n-1) } + function g(n) { + print("antes: " + g.arguments[0]); + if(n>0) + f(n); + print("después: " + g.arguments[0]); + } + f(2) -

resultados:

+resultados: -
antes: 1
-antes: 0
-después: 0
-después: 1
-
+ antes: 1 + antes: 0 + después: 0 + después: 1 -

- -
- -

{{ languages( { "en": "en/Core_JavaScript_1.5_Reference/Global_Objects/Function/arguments", "pl": "pl/Dokumentacja_j\u0119zyka_JavaScript_1.5/Obiekty/Function/arguments" } ) }}

+{{ languages( { "en": "en/Core_JavaScript\_1.5\_Reference/Global_Objects/Function/arguments", "pl": "pl/Dokumentacja_j\u0119zyka_JavaScript\_1.5/Obiekty/Function/arguments" } ) }} diff --git a/files/es/web/javascript/reference/global_objects/function/bind/index.md b/files/es/web/javascript/reference/global_objects/function/bind/index.md index 07af997f9299d1..b00746e8c7ef5b 100644 --- a/files/es/web/javascript/reference/global_objects/function/bind/index.md +++ b/files/es/web/javascript/reference/global_objects/function/bind/index.md @@ -4,44 +4,43 @@ slug: Web/JavaScript/Reference/Global_Objects/Function/bind translation_of: Web/JavaScript/Reference/Global_Objects/Function/bind original_slug: Web/JavaScript/Referencia/Objetos_globales/Function/bind --- -
{{JSRef("Global_Objects", "Function")}}
+{{JSRef("Global_Objects", "Function")}} -

Resumen

+## Resumen -

El método bind() crea una nueva función, que cuando es llamada, asigna a su operador this el valor entregado, con una secuencia de argumentos dados precediendo a cualquiera entregados cuando la función es llamada.

+El método **`bind()`** crea una nueva función, que cuando es llamada, asigna a su operador _this_ el valor entregado, con una secuencia de argumentos dados precediendo a cualquiera entregados cuando la función es llamada. -

El valor de this es ignorado cuando la función es llamada con el operador new.

+El valor de _this_ es ignorado cuando la función es llamada con el operador _new_. -

Sintaxis

+## Sintaxis -
fun.bind(thisArg[, arg1[, arg2[, ...]]])
+ fun.bind(thisArg[, arg1[, arg2[, ...]]]) -

Parametros

+### Parametros -
-
thisArg
-
Es un valor que será enviado a la función destino cuando se llame a la función de enlace. Este valor será ignorado si la función de enlace es construida usando el operador {{jsxref("Operators/new", "new")}}.
-
arg1, arg2, ...
-
Son los argumentos que se enviarán además de los provistos a la función de enlace cuando se invoque la función destino.
-
+- `thisArg` + - : Es un valor que será enviado a la función destino cuando se llame a la función de enlace. Este valor será ignorado si la función de enlace es construida usando el operador {{jsxref("Operators/new", "new")}}. +- `arg1, arg2, ...` + - : Son los argumentos que se enviarán además de los provistos a la función de enlace cuando se invoque la función destino. -

Valor de retorno

+### Valor de retorno -

Una copia de la función entregada con el valor especificado this y los argumentos iniciales.

+Una copia de la función entregada con el valor especificado `this `y los argumentos iniciales. -

Descripción

+## Descripción -

La función bind() crea una nueva función (función ligada) con el mismo cuerpo (propiedad interna {{jsxref("Function.prototype.call", "call")}} en términos de ECMAScript 5) como la función que será llamada (la función objetivo de la función ligada) con la referencia this asociada al primer argumento de bind(), el cual no podrá ser sobreescrito. bind() también acepta parámetros predeterminados que antecederán al resto de los parámetros específicos cuando la función objetivo sea llamada. Una función ligada también puede ser construída utilizando el operador {{jsxref("Operators/new", "new")}}: al hacerlo, actuará como si en su lugar hubiera sido construída la función objetivo.

+La función `bind()` crea una nueva función (**función ligada**) con el mismo cuerpo (propiedad interna {{jsxref("Function.prototype.call", "call")}} en términos de ECMAScript 5) como la función que será llamada (la **función objetivo** de la función ligada) con la referencia `this` asociada al primer argumento de `bind()`, el cual no podrá ser sobreescrito. `bind()` también acepta parámetros predeterminados que antecederán al resto de los parámetros específicos cuando la función objetivo sea llamada. Una función ligada también puede ser construída utilizando el operador {{jsxref("Operators/new", "new")}}: al hacerlo, actuará como si en su lugar hubiera sido construída la función objetivo. -

En este último caso, el parámetro correspondiente para this será ignorado, aunque los parámetros predeterminados que antecederán al resto sí serán provistos para la función emulada.

+En este último caso, el parámetro correspondiente para `this` será ignorado, aunque los parámetros predeterminados que antecederán al resto sí serán provistos para la función emulada. -

Ejemplos

+## Ejemplos -

Ejemplo: Crear una función ligada

+### Ejemplo: Crear una función ligada -

El uso más simple de bind() es hacer que una función que, sin importar cómo es llamada, siempre apunte al mismo objeto con la referencia this. Un error común para nuevos programadores de JavaScript es que obtienen una referencia a un método de un objeto, posteriormente ejecutan ese método desde la referencia externa y esperan que la referencia de this siga apuntando al objeto original de donde se obtuvo el método (v.g. cuando se usa ese método en un callback). Sin el debido cuidado, el objeto original es comúnmente perdido. Creando una función ligada desde la función empleando el objeto original, resuelve limpiamente este problema:

+El uso más simple de `bind()` es hacer que una función que, sin importar cómo es llamada, siempre apunte al mismo objeto con la referencia `this`. Un error común para nuevos programadores de JavaScript es que obtienen una referencia a un método de un objeto, posteriormente ejecutan ese método desde la referencia externa y esperan que la referencia de `this` siga apuntando al objeto original de donde se obtuvo el método (v.g. cuando se usa ese método en un callback). Sin el debido cuidado, el objeto original es comúnmente perdido. Creando una función ligada desde la función empleando el objeto original, resuelve limpiamente este problema: -
this.x = 9;
+```js
+this.x = 9;
 var module = {
   x: 81,
   getX: function() { return this.x; }
@@ -54,13 +53,15 @@ getX(); // 9, porque en este caso, "this" apunta al objeto global
 
 // Crear una nueva función con 'this' asociado al objeto original 'module'
 var boundGetX = getX.bind(module);
-boundGetX(); // 81
+boundGetX(); // 81 +``` -

Ejemplo: Funciones Parciales

+### Ejemplo: Funciones Parciales -

El siguiente uso simple de bind() es definir una función con argumentos predeterminados que precederán a los argumentos finales de la función ligada. Estos argumentos iniciales (en caso de haberlos) se definen a continuación de lo que será la referencia de this y son entonces enviados como argumentos de la función objetivo, seguidos por los argumentos enviados a la función ligada cada vez que dicha función sea llamada.

+El siguiente uso simple de `bind()` es definir una función con argumentos predeterminados que precederán a los argumentos finales de la función ligada. Estos argumentos iniciales (en caso de haberlos) se definen a continuación de lo que será la referencia de `this` y son entonces enviados como argumentos de la función objetivo, seguidos por los argumentos enviados a la función ligada cada vez que dicha función sea llamada. -
function list() {
+```js
+function list() {
   return Array.prototype.slice.call(arguments);
 }
 
@@ -71,13 +72,14 @@ var leadingThirtysevenList = list.bind(undefined, 37);
 
 var list2 = leadingThirtysevenList(); // [37]
 var list3 = leadingThirtysevenList(1, 2, 3); // [37, 1, 2, 3]
-
+``` -

Ejemplo: Con setTimeout

+### Ejemplo: Con setTimeout -

De manera predeterminada, dentro de {{ domxref("window.setTimeout()") }}, la palabra reservada this será setteada al objeto {{ domxref("window") }} (o a global). Cuando se esté trabajando con métodos de clase que requieran que this se refiera a instancias de clase, usted puede explícitamente ligar this a la función callback para mantener la referencia de la instancia.

+De manera predeterminada, dentro de {{ domxref("window.setTimeout()") }}, la palabra reservada `this` será setteada al objeto {{ domxref("window") }} (o a global). Cuando se esté trabajando con métodos de clase que requieran que `this` se refiera a instancias de clase, usted puede explícitamente ligar `this` a la función callback para mantener la referencia de la instancia. -
function LateBloomer() {
+```js
+function LateBloomer() {
   this.petalCount = Math.ceil(Math.random() * 12) + 1;
 }
 
@@ -90,17 +92,16 @@ LateBloomer.prototype.declare = function() {
   console.log('I am a beautiful flower with ' +
     this.petalCount + ' petals!');
 };
-
+``` -

Ejemplo: Funciones ligadas usadas como constructores

+### Ejemplo: Funciones ligadas usadas como constructores -
-

Advetencia: Esta sección demuestra las capacidades de JavaScript y documenta algunos usos extremos del método bind(). Los métodos mostrados a continuación no son la mejor forma de hacer las cosas y probablemente no deberían ser utilizados en ningún ambiente productivo.

-
+> **Advertencia:** **Advetencia:** Esta sección demuestra las capacidades de JavaScript y documenta algunos usos extremos del método `bind()`. Los métodos mostrados a continuación no son la mejor forma de hacer las cosas y probablemente no deberían ser utilizados en ningún ambiente productivo. -

Las funciones ligadas son automáticamente adecuadas para usarse con el operador {{jsxref("Operators/new", "new")}} para construir nuevas instancias creadas por la función objetivo. Cuando una función ligada es utilizada para construir un valor, el parámetro enviado para reemplazar la referencia this es ignorado. De cualquier forma, los argumentos iniciales sí son tomados en consideración y antecederán a los parámetros que se envíen al constructor:

+Las funciones ligadas son automáticamente adecuadas para usarse con el operador {{jsxref("Operators/new", "new")}} para construir nuevas instancias creadas por la función objetivo. Cuando una función ligada es utilizada para construir un valor, el parámetro enviado para reemplazar la referencia `this` es ignorado. De cualquier forma, los argumentos iniciales sí son tomados en consideración y antecederán a los parámetros que se envíen al constructor: -
function Point(x, y) {
+```js
+function Point(x, y) {
   this.x = x;
   this.y = y;
 }
@@ -125,11 +126,12 @@ axisPoint.toString(); // '0,5'
 axisPoint instanceof Point; // true
 axisPoint instanceof YAxisPoint; // true
 new Point(17, 42) instanceof YAxisPoint; // true
-
+``` -

Note que no necesita hacer nada especial para crear una función ligada para usarse con {{jsxref("Operators/new", "new")}}. El razonamiento es que usted no necesita hacer nada especial para crear una función ligada para ser llamada planamente, aún si usted prefiriera requerir que la función ligada sea llamada únicamente utilizando {{jsxref("Operators/new", "new")}}.

+Note que no necesita hacer nada especial para crear una función ligada para usarse con {{jsxref("Operators/new", "new")}}. El razonamiento es que usted no necesita hacer nada especial para crear una función ligada para ser llamada planamente, aún si usted prefiriera requerir que la función ligada sea llamada únicamente utilizando {{jsxref("Operators/new", "new")}}. -
// Ejemplo que puede ser ejecutado directamente en tu consola JavaScript
+```js
+// Ejemplo que puede ser ejecutado directamente en tu consola JavaScript
 // ...continúa de arriba
 
 // Aún puede ser invocada como una función normal
@@ -137,40 +139,43 @@ new Point(17, 42) instanceof YAxisPoint; // true
 YAxisPoint(13);
 
 emptyObj.x + ',' + emptyObj.y;
-// >  '0,13'
-
+// > '0,13' +``` -

Si desea utilizar una función ligada únicamente usando {{jsxref("Operators/new", "new")}}, o únicamente mediante una llamada directa, la función objetivo debe forzar esa restricción.

+Si desea utilizar una función ligada únicamente usando {{jsxref("Operators/new", "new")}}, o únicamente mediante una llamada directa, la función objetivo debe forzar esa restricción. -

Ejemplo: Crear atajos

+### Ejemplo: Crear atajos -

bind() también es útil en casos en los que desea crear un atajo para una función que requiere una referencia específica para this.

+`bind()` también es útil en casos en los que desea crear un atajo para una función que requiere una referencia específica para `this`. -

Tomando {{jsxref("Array.prototype.slice")}}, por ejemplo, el cual se desearía utilizar para convertir un objeto tipo array a un arreglo real. Podría crear un atajo como el siguiente:

+Tomando {{jsxref("Array.prototype.slice")}}, por ejemplo, el cual se desearía utilizar para convertir un objeto tipo array a un arreglo real. Podría crear un atajo como el siguiente: -
var slice = Array.prototype.slice;
+```js
+var slice = Array.prototype.slice;
 
 // ...
 
 slice.call(arguments);
-
+``` -

Con bind(), esto puede ser simplificado. En el siguiente fragmento de código, slice es una función ligada a la función {{jsxref("Function.prototype.call()", "call()")}} de {{jsxref("Function.prototype")}}, con la referencia this setteada a la función {{jsxref("Array.prototype.slice()", "slice()")}} de {{jsxref("Array.prototype")}}. Esto significa que llamadas adicionales a call() pueden omitirse:

+Con `bind()`, esto puede ser simplificado. En el siguiente fragmento de código, `slice` es una función ligada a la función {{jsxref("Function.prototype.call()", "call()")}} de {{jsxref("Function.prototype")}}, con la referencia `this` setteada a la función {{jsxref("Array.prototype.slice()", "slice()")}} de {{jsxref("Array.prototype")}}. Esto significa que llamadas adicionales a `call()` pueden omitirse: -
// same as "slice" in the previous example
+```js
+// same as "slice" in the previous example
 var unboundSlice = Array.prototype.slice;
 var slice = Function.prototype.call.bind(unboundSlice);
 
 // ...
 
 slice(arguments);
-
+``` -

Polyfill

+## Polyfill -

La función bind() fue añadida a la especificación ECMA-262, 5a edición; por lo tanto podría no estar presente en todos los navegadores. Usted puede parcialmente simularla al insertar el siguiente código al inicio de sus scripts, permitiendo emplear muchas de las funcionalidades de bind() en implementaciones que no la soportan nativamente.

+La función `bind()` fue añadida a la especificación ECMA-262, 5a edición; por lo tanto podría no estar presente en todos los navegadores. Usted puede parcialmente simularla al insertar el siguiente código al inicio de sus scripts, permitiendo emplear muchas de las funcionalidades de `bind()` en implementaciones que no la soportan nativamente. -
if (!Function.prototype.bind) {
+```js
+if (!Function.prototype.bind) {
   Function.prototype.bind = function(oThis) {
     if (typeof this !== 'function') {
       // closest thing possible to the ECMAScript 5
@@ -182,7 +187,7 @@ slice(arguments);
         fToBind = this,
         fNOP    = function() {},
         fBound  = function() {
-          return fToBind.apply(this instanceof fNOP && oThis
+          return fToBind.apply(this instanceof fNOP && oThis
                  ? this
                  : oThis,
                  aArgs.concat(Array.prototype.slice.call(arguments)));
@@ -194,51 +199,32 @@ slice(arguments);
     return fBound;
   };
 }
-
- -

Algunas de las muchas diferencias (bien podría haber otras, en tanto la siguiente lista no intenta ser exhaustiva) entre este algoritmo y el algoritmo de la especificación son:

- -
    -
  • La implementación parcial se basa en {{jsxref("Array.prototype.slice()")}}, {{jsxref("Array.prototype.concat()")}}, {{jsxref("Function.prototype.call()")}} y {{jsxref("Function.prototype.apply()")}}, métodos incorporados para tener sus valores originales.
  • -
  • La implementación parcial crea funciones que no tienen "poison pills" inmutables {{jsxref("Function.caller", "caller")}} y las propiedades de los argumentos que lanzan una {{jsxref("Global_Objects/TypeError", "TypeError")}} sobre get, set, o deletion. (Esto podría ser añadido si la implementación soportara {{jsxref("Object.defineProperty")}}, o parcialmente implementada [sin el comportamiento throw-on-delete] si la implementación soportara las extensiones {{jsxref("Object.defineGetter", "__defineGetter__")}} y {{jsxref("Object.defineSetter", "__defineSetter__")}} ).
  • -
  • La implementación parcial crea funciones que tienen una propiedad prototype. (Las funciones ligadas no tienen ninguna).
  • -
  • La implementación parcial crea funciones ligadas cuya propiedad {{jsxref("Function.length", "length")}} no coincide con la indicada por ECMA-262: ésta crea funciones con longitud 0, mientras que la implementación completa, dependiendo de la longitud de la función objetivo y del número de argumentos pre-especificados, podría regresar una longitud mayor a zero.
  • -
- -

Si elige usar esta implementación parcial, no debe de utilizarla en los casos en los que el comportamiento es distinto al de la especificación ECMA-262, 5th edition! Con un poco de cuidado, de cualquier manera (y tal vez con algunas modificaciones adicionales para adecuarse a sus necesidades específicas), esta implementación parcial podría ser un puente razonable al momento en que bind() sea ampliamente implementada acorde a a la especificación.

- -

Por favor checa https://github.com/Raynos/function-bind para ver una solución más profunda.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
{{SpecName('ES5.1', '#sec-15.3.4.5', 'Function.prototype.bind')}}{{Spec2('ES5.1')}}Definición inicial. Implementado en JavaScript 1.8.5.
{{SpecName('ES6', '#sec-function.prototype.bind', 'Function.prototype.bind')}}{{Spec2('ES6')}}
- -

Compatibilidad de navegadores

+``` + +Algunas de las muchas diferencias (bien podría haber otras, en tanto la siguiente lista no intenta ser exhaustiva) entre este algoritmo y el algoritmo de la especificación son: + +- La implementación parcial se basa en {{jsxref("Array.prototype.slice()")}}, {{jsxref("Array.prototype.concat()")}}, {{jsxref("Function.prototype.call()")}} y {{jsxref("Function.prototype.apply()")}}, métodos incorporados para tener sus valores originales. +- La implementación parcial crea funciones que no tienen "poison pills" inmutables {{jsxref("Function.caller", "caller")}} y las propiedades de los `argumentos` que lanzan una {{jsxref("Global_Objects/TypeError", "TypeError")}} sobre get, set, o deletion. (Esto podría ser añadido si la implementación soportara {{jsxref("Object.defineProperty")}}, o parcialmente implementada \[sin el comportamiento throw-on-delete] si la implementación soportara las extensiones {{jsxref("Object.defineGetter", "__defineGetter__")}} y {{jsxref("Object.defineSetter", "__defineSetter__")}} ). +- La implementación parcial crea funciones que tienen una propiedad `prototype`. (Las funciones ligadas no tienen ninguna). +- La implementación parcial crea funciones ligadas cuya propiedad {{jsxref("Function.length", "length")}} no coincide con la indicada por ECMA-262: ésta crea funciones con longitud 0, mientras que la implementación completa, dependiendo de la longitud de la función objetivo y del número de argumentos pre-especificados, podría regresar una longitud mayor a zero. + +Si elige usar esta implementación parcial, **no debe de utilizarla en los casos en los que el comportamiento es distinto al de la especificación ECMA-262, 5th edition!** Con un poco de cuidado, de cualquier manera (y tal vez con algunas modificaciones adicionales para adecuarse a sus necesidades específicas), esta implementación parcial podría ser un puente razonable al momento en que `bind()` sea ampliamente implementada acorde a a la especificación. + +Por favor checa para ver una solución más profunda. + +## Especificaciones + +| Especificación | Estado | Comentarios | +| -------------------------------------------------------------------------------------------------------- | ------------------------ | ----------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.3.4.5', 'Function.prototype.bind')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementado en JavaScript 1.8.5. | +| {{SpecName('ES6', '#sec-function.prototype.bind', 'Function.prototype.bind')}} | {{Spec2('ES6')}} | | + +## Compatibilidad de navegadores {{Compat("javascript.builtins.Function.bind")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Function.prototype.apply()")}}
  • -
  • {{jsxref("Function.prototype.call()")}}
  • -
  • {{jsxref("Functions_and_function_scope", "Functions and function scope", "", 1)}}
  • -
+- {{jsxref("Function.prototype.apply()")}} +- {{jsxref("Function.prototype.call()")}} +- {{jsxref("Functions_and_function_scope", "Functions and function scope", "", 1)}} diff --git a/files/es/web/javascript/reference/global_objects/function/index.md b/files/es/web/javascript/reference/global_objects/function/index.md index 3d96737a2decae..737214a14ce225 100644 --- a/files/es/web/javascript/reference/global_objects/function/index.md +++ b/files/es/web/javascript/reference/global_objects/function/index.md @@ -12,55 +12,50 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Function original_slug: Web/JavaScript/Referencia/Objetos_globales/Function --- -
{{JSRef("Objetos_globales", "Function")}}
+{{JSRef("Objetos_globales", "Function")}} -

Cada función de JavaScript en realidad es un objeto Function. Esto se puede ver con el código (function() {}).constructor === Function, que devuelve true.

+Cada función de JavaScript en realidad es un objeto `Function`. Esto se puede ver con el código `(function() {}).constructor === Function`, que devuelve `true`. -

Constructor

+## Constructor -
-
{{jsxref("Function/Function", "Function()", "", 1)}}
-
Crea un nuevo objeto Function. Llamar al constructor directamente puede crear funciones dinámicamente, pero tiene problemas de seguridad y de rendimiento similares (pero mucho menos importantes) para {{jsxref("eval")}}. Sin embargo, a diferencia de eval, el constructor Function crea funciones que solo se ejecutan en el ámbito global.
-
+- {{jsxref("Function/Function", "Function()", "", 1)}} + - : Crea un nuevo objeto `Function`. Llamar al constructor directamente puede crear funciones dinámicamente, pero tiene problemas de seguridad y de rendimiento similares (pero mucho menos importantes) para {{jsxref("eval")}}. Sin embargo, a diferencia de `eval`, el constructor `Function` crea funciones que solo se ejecutan en el ámbito global. -

Propiedades de la instancia

+## Propiedades de la instancia -
-
{{jsxref("Function.arguments")}}
-
Un arreglo que corresponde a los argumentos pasados a una función.
- Esto está obsoleto como propiedad de {{jsxref("Function")}}. En su lugar, utiliza el objeto {{jsxref("Functions/arguments", "arguments", "", 1)}} (disponible dentro de la función).
-
{{jsxref("Function.caller")}}
-
Especifica la función que invocó a la función que se está ejecutando actualmente.
- Esta propiedad está obsoleta, y solo es funcional para algunas funciones no estrictas.
-
{{jsxref("Function.displayName")}}
-
El nombre a mostrar de la función.
-
{{jsxref("Function.length")}}
-
Especifica el número de argumentos que espera la función.
-
{{jsxref("Function.name")}}
-
El nombre de la función.
-
+- {{jsxref("Function.arguments")}} + - : Un arreglo que corresponde a los argumentos pasados a una función. + Esto está obsoleto como propiedad de {{jsxref("Function")}}. En su lugar, utiliza el objeto {{jsxref("Functions/arguments", "arguments", "", 1)}} (disponible dentro de la función). +- {{jsxref("Function.caller")}} + - : Especifica la función que invocó a la función que se está ejecutando actualmente. + Esta propiedad está obsoleta, y solo es funcional para algunas funciones no estrictas. +- {{jsxref("Function.displayName")}} + - : El nombre a mostrar de la función. +- {{jsxref("Function.length")}} + - : Especifica el número de argumentos que espera la función. +- {{jsxref("Function.name")}} + - : El nombre de la función. -

Métodos de instancia

+## Métodos de instancia -
-
{{jsxref("Function.prototype.apply()", "Function.prototype.apply(thisArg [, argsArray])")}}
-
Llama a una función y establece su this en el thisArg proporcionado. Los argumentos se pueden pasar como un objeto {{jsxref("Array")}}.
-
{{jsxref("Function.prototype.bind()", "Function.prototype.bind(thisArg[, arg1[, arg2[, ...argN]]])")}}
-
Crea una nueva función que, cuando se llama, tiene su this configurado en el thisArg. Opcionalmente, una determinada secuencia de argumentos se antepondrá a los argumentos siempre que se llame a la función recién invocada.
-
{{jsxref("Function.prototype.call()", "Function.prototype.call(thisArg[, arg1, arg2, ...argN])")}}
-
Llama a una función y establece su this en el valor proporcionado. Los argumentos se pueden pasar tal cual.
-
{{jsxref("Function.prototype.toString()", "Function.prototype.toString()")}}
-
Devuelve una cadena que representa el código fuente de la función.
- Redefine el método {{jsxref("Object.prototype.toString()")}}.
-
+- {{jsxref("Function.prototype.apply()", "Function.prototype.apply(thisArg [, argsArray])")}} + - : Llama a una función y establece su `this` en el `thisArg` proporcionado. Los argumentos se pueden pasar como un objeto {{jsxref("Array")}}. +- {{jsxref("Function.prototype.bind()", "Function.prototype.bind(thisArg[, arg1[, arg2[, ...argN]]])")}} + - : Crea una nueva función que, cuando se llama, tiene su `this` configurado en el `thisArg`. Opcionalmente, una determinada secuencia de argumentos se antepondrá a los argumentos siempre que se llame a la función recién invocada. +- {{jsxref("Function.prototype.call()", "Function.prototype.call(thisArg[, arg1, arg2, ...argN])")}} + - : Llama a una función y establece su `this` en el valor proporcionado. Los argumentos se pueden pasar tal cual. +- {{jsxref("Function.prototype.toString()", "Function.prototype.toString()")}} + - : Devuelve una cadena que representa el código fuente de la función. + Redefine el método {{jsxref("Object.prototype.toString()")}}. -

Ejemplos

+## Ejemplos -

Diferencia entre el constructor Function y la declaración function

+### Diferencia entre el constructor Function y la declaración function -

Las funciones creadas con el constructor Function no crean cierres para sus contextos de creación; siempre se crean en el ámbito global. Al ejecutarlos, solo podrán acceder a sus propias variables locales y globales, no a las del ámbito en el que se creó el constructor Function. Esto es diferente de usar {{jsxref("eval")}} con código para una expresión de función.

+Las funciones creadas con el constructor `Function` no crean cierres para sus contextos de creación; siempre se crean en el ámbito global. Al ejecutarlos, solo podrán acceder a sus propias variables locales y globales, no a las del ámbito en el que se creó el constructor `Function`. Esto es diferente de usar {{jsxref("eval")}} con código para una expresión de función. -
var x = 10;
+```js
+var x = 10;
 
 function createFunction1() {
     var x = 20;
@@ -79,41 +74,26 @@ var f1 = createFunction1();
 console.log(f1());          // 10
 var f2 = createFunction2();
 console.log(f2());          // 20
-
+``` -

Si bien este código funciona en los navegadores web, f1() producirá un ReferenceError en Node.js, ya que no encontrará a x. Esto se debe a que el ámbito de nivel superior en Node no es el ámbito global, y x será local para el módulo.

+Si bien este código funciona en los navegadores web, `f1()` producirá un `ReferenceError` en Node.js, ya que no encontrará a `x`. Esto se debe a que el ámbito de nivel superior en Node no es el ámbito global, y `x` será local para el módulo. -

Especificaciones

+## Especificaciones - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-function-objects', 'Function')}}
+| Especificación | +| -------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-function-objects', 'Function')}} | -

Compatibilidad del navegador

+## Compatibilidad del navegador -
+{{Compat("javascript.builtins.Function")}} +## Ve también -

{{Compat("javascript.builtins.Function")}}

-
- -

Ve también

- -
    -
  • {{jsxref("Functions", "Funciones y ámbito de la función", "", 1)}}
  • -
  • Declaración {{jsxref("Statements/function", "function")}}
  • -
  • Expresión {{jsxref("Operators/function", "function")}}
  • -
  • Declaración {{jsxref("Statements/function*", "function*")}}
  • -
  • Expresión {{jsxref("Operators/function*", "function*")}}
  • -
  • {{jsxref("AsyncFunction", "Función asíncrona", "", 1)}}
  • -
  • {{jsxref("GeneratorFunction", "Función generadora", "", 1)}}
  • -
+- {{jsxref("Functions", "Funciones y ámbito de la función", "", 1)}} +- Declaración {{jsxref("Statements/function", "function")}} +- Expresión {{jsxref("Operators/function", "function")}} +- Declaración {{jsxref("Statements/function*", "function*")}} +- Expresión {{jsxref("Operators/function*", "function*")}} +- {{jsxref("AsyncFunction", "Función asíncrona", "", 1)}} +- {{jsxref("GeneratorFunction", "Función generadora", "", 1)}} diff --git a/files/es/web/javascript/reference/global_objects/function/length/index.md b/files/es/web/javascript/reference/global_objects/function/length/index.md index 0dc2a58bd7f085..ab18375c79fa83 100644 --- a/files/es/web/javascript/reference/global_objects/function/length/index.md +++ b/files/es/web/javascript/reference/global_objects/function/length/index.md @@ -8,80 +8,50 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Function/length original_slug: Web/JavaScript/Referencia/Objetos_globales/Function/length --- -
{{JSRef("Global_Objects", "Function")}}
+{{JSRef("Global_Objects", "Function")}} -

Sumario

+## Sumario -

La propiedad length especifica el número de argumentos esperados por la función.

+La propiedad **`length`** especifica el número de argumentos esperados por la función. -
{{js_property_attributes(0,0,1)}}
+{{js_property_attributes(0,0,1)}} -

Descripción

+## Descripción -

length es la propiedad de una función objeto, e indica el número de argumentos que una función requiere, por ejemplo, el número de parámetros formales. Este número no incluye {{jsxref("rest_parameters", "rest parameter", "", 1)}}. En cambio, {{jsxref("Functions_and_function_scope/arguments/length", "arguments.length")}} es local a una función y aporta el número de argumentos actuales pasados a una función.

+`length` es la propiedad de una función objeto, e indica el número de argumentos que una función requiere, por ejemplo, el número de parámetros formales. Este número no incluye {{jsxref("rest_parameters", "rest parameter", "", 1)}}. En cambio, {{jsxref("Functions_and_function_scope/arguments/length", "arguments.length")}} es local a una función y aporta el número de argumentos actuales pasados a una función. -

Propiedades de la Función constructora

+### Propiedades de la `Función` constructora -

El {{jsxref("Global_Objects/Function", "Function")}} constructor en sí mismo es {{jsxref("Global_Objects/Function", "Function")}} un objeto. Sú propiedad length tiene el valor 1. Los atributos son: Grabable: false, Enumerable: false, Configurable: true.

+El {{jsxref("Global_Objects/Function", "Function")}} constructor en sí mismo es {{jsxref("Global_Objects/Function", "Function")}} un objeto. Sú `propiedad length` tiene el valor 1. Los atributos son: Grabable: `false`, Enumerable: `false`, Configurable: `true`. -

Propiedad de la Función prototype object

+### Propiedad de la `Función` prototype object -

La propiedad length del {{jsxref("Global_Objects/Function", "Function")}} objeto prototype tiene el valor 0.

+La propiedad length del {{jsxref("Global_Objects/Function", "Function")}} objeto prototype tiene el valor 0. -

Ejemplos

+## Ejemplos -
console.log(Function.length); /* 1 */
+```js
+console.log(Function.length); /* 1 */
 
 console.log((function()        {}).length); /* 0 */
 console.log((function(a)       {}).length); /* 1 */
 console.log((function(a, b)    {}).length); /* 2 etc. */
 console.log((function(...args) {}).length); /* 0, resto de parámetros no se contemplan */
 console.log((function(a, b = 1, c) {}).length); /* 1, solo parámetros antes del primero con un valor por defecto son contados */
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
ECMAScript 1st Edition.StandardDefinición inicial. Implementado en JavaScript 1.1.
length property of the {{jsxref("Global_Objects/Function", "Function")}} constructor:
- {{SpecName('ES5.1', '#sec-15.3.3.2', 'Function.length')}}
- length property of the {{jsxref("Global_Objects/Function", "Function")}} prototype object:
- {{SpecName('ES5.1', '#sec-properties-of-the-function-prototype-object', 'Function.length')}}
- length property of {{jsxref("Global_Objects/Function", "Function")}} instances:
- {{SpecName('ES5.1', '#sec-15.3.5.1', 'Function.length')}}
{{Spec2('ES5.1')}}
length property of the {{jsxref("Global_Objects/Function", "Function")}} constructor:
- {{SpecName('ES6', '#sec-function.length', 'Function.length')}}
- length property of the {{jsxref("Global_Objects/Function", "Function")}} prototype object:
- {{SpecName('ES6', '#sec-15.3.4', 'Function.length')}}
- length property of {{jsxref("Global_Objects/Function", "Function")}} instances:
- {{SpecName('ES6', '#sec-function-instances-length', 'Function.length')}}
{{Spec2('ES6')}}El atributo configurable de esta propiedad ahora es true.
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------------------------------------------------- | +| ECMAScript 1st Edition. | Standard | Definición inicial. Implementado en JavaScript 1.1. | +| `length` property of the {{jsxref("Global_Objects/Function", "Function")}} constructor: {{SpecName('ES5.1', '#sec-15.3.3.2', 'Function.length')}} `length` property of the {{jsxref("Global_Objects/Function", "Function")}} prototype object: {{SpecName('ES5.1', '#sec-properties-of-the-function-prototype-object', 'Function.length')}} `length` property of {{jsxref("Global_Objects/Function", "Function")}} instances: {{SpecName('ES5.1', '#sec-15.3.5.1', 'Function.length')}} | {{Spec2('ES5.1')}} | | +| `length` property of the {{jsxref("Global_Objects/Function", "Function")}} constructor: {{SpecName('ES6', '#sec-function.length', 'Function.length')}} `length` property of the {{jsxref("Global_Objects/Function", "Function")}} prototype object: {{SpecName('ES6', '#sec-15.3.4', 'Function.length')}} `length` property of {{jsxref("Global_Objects/Function", "Function")}} instances: {{SpecName('ES6', '#sec-function-instances-length', 'Function.length')}} | {{Spec2('ES6')}} | El atributo `configurable` de esta propiedad ahora es `true`. | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Function.length")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Global_Objects/Function", "Función")}}
  • -
+- {{jsxref("Global_Objects/Function", "Función")}} diff --git a/files/es/web/javascript/reference/global_objects/function/tostring/index.md b/files/es/web/javascript/reference/global_objects/function/tostring/index.md index 4d3feee1a75b37..09ac9716c490c7 100644 --- a/files/es/web/javascript/reference/global_objects/function/tostring/index.md +++ b/files/es/web/javascript/reference/global_objects/function/tostring/index.md @@ -4,80 +4,52 @@ slug: Web/JavaScript/Reference/Global_Objects/Function/toString translation_of: Web/JavaScript/Reference/Global_Objects/Function/toString original_slug: Web/JavaScript/Referencia/Objetos_globales/Function/toString --- -
{{JSRef}}
+{{JSRef}} -

El método toString() retorna una cadena representando el código fuente de la función.

+El método **`toString()`** retorna una cadena representando el código fuente de la función. -

Sintaxis

+## Sintaxis -
function.toString(indentation)
+ function.toString(indentation) -

Parámetros

+### Parámetros -
-
indentation {{non-standard_inline}} {{obsolete_inline(17)}}
-
La cantidad de espacios a indentar en la representación de cadena del código fuente. Si indentation es menor o igual a -1, la mayoría de los espacios innecesarios son eliminados.
-
+- `indentation` {{non-standard_inline}} {{obsolete_inline(17)}} + - : La cantidad de espacios a indentar en la representación de cadena del código fuente. Si `indentation` es menor o igual a `-1`, la mayoría de los espacios innecesarios son eliminados. -

Descripción

+## Descripción -

El objeto {{jsxref("Function")}} reconduce el método {{jsxref("Object.prototype.toString", "toString")}} heredado de {{jsxref("Object")}}; no hereda {{jsxref("Object.prototype.toString")}}. Para objetos {{jsxref("Function")}}, el método toString retorna una representación de cadena del objeto en forma de declaración de función. Esto es, toString descompila la función y la cadena retornada incluye la palabra clave function, la lista de argumentos, llaves y el código fuente del cuerpo de la función.

+El objeto {{jsxref("Function")}} reconduce el método {{jsxref("Object.prototype.toString", "toString")}} heredado de {{jsxref("Object")}}; no hereda {{jsxref("Object.prototype.toString")}}. Para objetos {{jsxref("Function")}}, el método `toString` retorna una representación de cadena del objeto en forma de declaración de función. Esto es, `toString` descompila la función y la cadena retornada incluye la palabra clave `function`, la lista de argumentos, llaves y el código fuente del cuerpo de la función. -

JavaScript llama al método toString automáticamente cuando una {{jsxref("Function")}} va a ser representada como un valor de texto, p.e. cuando una función es concatenada con un valor de cadena (string).

+JavaScript llama al método `toString` automáticamente cuando una {{jsxref("Function")}} va a ser representada como un valor de texto, p.e. cuando una función es concatenada con un valor de cadena (string). -

El método toString() producirá una excepción {{jsxref("TypeError")}} ("Function.prototype.toString called on incompatible object"), si el valor de su objeto this no es un objeto Function. Esto también ocurrirá para objetos {{jsxref("Proxy")}}, por ejemplo:

+El método `toString()` producirá una excepción {{jsxref("TypeError")}} ("Function.prototype.toString called on incompatible object"), si el valor de su objeto `this` no es un objeto `Function`. Esto también ocurrirá para objetos {{jsxref("Proxy")}}, por ejemplo: -
Function.prototype.toString.call("foo"); // TypeError
+```js example-bad
+Function.prototype.toString.call("foo"); // TypeError
 
 var proxy = new Proxy(function() {}, {});
 Function.prototype.toString.call(proxy); // TypeError
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoObservaciones
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.3.4.2', 'Function.prototype.toString')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-function.prototype.tostring', 'Function.prototype.toString')}}{{Spec2('ES6')}}Añadidos requerimientos más específicos para la representación de cadena.
{{SpecName('ESDraft', '#sec-function.prototype.tostring', 'Function.prototype.toString')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Observaciones | +| ------------------------------------------------------------------------------------------------------------------------ | ---------------------------- | ------------------------------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.1. | +| {{SpecName('ES5.1', '#sec-15.3.4.2', 'Function.prototype.toString')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-function.prototype.tostring', 'Function.prototype.toString')}} | {{Spec2('ES6')}} | Añadidos requerimientos más específicos para la representación de cadena. | +| {{SpecName('ESDraft', '#sec-function.prototype.tostring', 'Function.prototype.toString')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Function.toString")}} -

Notas específicas para Gecko

+## Notas específicas para Gecko -
    -
  • Desde Gecko 17.0 {{geckoRelease("17")}}, Function.prototype.toString() fue implementada salvando el código fuente de la función. El descompilador fue eliminado, de modo que el parámetro indentation ya no se necesita más. Ver {{bug("761723")}} para más detalles.
  • -
  • A partir de Gecko 38 {{geckoRelease("38")}}, Function.prototype.toString() produce error para objetos {{jsxref("Proxy")}} ({{bug(1100936)}}).
  • -
+- Desde Gecko 17.0 {{geckoRelease("17")}}, `Function.prototype.toString()` fue implementada salvando el código fuente de la función. El descompilador fue eliminado, de modo que el parámetro `indentation` ya no se necesita más. Ver {{bug("761723")}} para más detalles. +- A partir de Gecko 38 {{geckoRelease("38")}}, `Function.prototype.toString()` produce error para objetos {{jsxref("Proxy")}} ({{bug(1100936)}}). -

Ver también

+## Ver también -
    -
  • {{jsxref("Object.prototype.toString()")}}
  • -
+- {{jsxref("Object.prototype.toString()")}} diff --git a/files/es/web/javascript/reference/global_objects/generator/index.md b/files/es/web/javascript/reference/global_objects/generator/index.md index c26f835ecdf541..676b8067f16e4f 100644 --- a/files/es/web/javascript/reference/global_objects/generator/index.md +++ b/files/es/web/javascript/reference/global_objects/generator/index.md @@ -12,59 +12,51 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Generator original_slug: Web/JavaScript/Referencia/Objetos_globales/Generador --- -
{{JSRef}}
+{{JSRef}} +El objeto `Generator` es retornado por una {{jsxref("Statements/function*", "función generator", "", 1)}} y es conformado tanto el protocolo iterable como el protocolo iterador. +## Constructor -

El objeto Generator es retornado por una {{jsxref("Statements/function*", "función generator", "", 1)}} y es conformado tanto el protocolo iterable como el protocolo iterador.

+Este objeto no puede ser instanciado directamente. En su lugar, una instancia del objeto `Generator` puede ser devuelta por una [función generator](/es/docs/Web/JavaScript/Referencia/Sentencias/function*): -

Constructor

+ function* gen() { + yield 1; + yield 2; + yield 3; + } -

Este objeto no puede ser instanciado directamente. En su lugar, una instancia del objeto Generator puede ser devuelta por una función generator:

+ var g = gen(); // "Generator { }" -
	function* gen() {
-	  yield 1;
-	  yield 2;
-	  yield 3;
-	}
-
-	var g = gen(); // "Generator { }"
- -
-
+## Métodos de instanciación -

Métodos de instanciación

+_Tambien hereda propiedades de {{JSxRef("Iterator")}}_ -

Tambien hereda propiedades de {{JSxRef("Iterator")}}

+- {{jsxref("Generator.prototype.next()")}} + - : Retorna el valor ofecido por la expresión {{jsxref("Operators/yield", "yield")}} +- {{jsxref("Generator.prototype.return()")}} + - : Retorna el valor dado y finaliza el generador. +- {{jsxref("Generator.prototype.throw()")}} + - : Lanza un error al generador (también finaliza el generador, a menos que sea atrapado desde ese generador) -
-
{{jsxref("Generator.prototype.next()")}}
-
Retorna el valor ofecido por la expresión {{jsxref("Operators/yield", "yield")}}
-
{{jsxref("Generator.prototype.return()")}}
-
Retorna el valor dado y finaliza el generador.
-
{{jsxref("Generator.prototype.throw()")}}
-
Lanza un error al generador (también finaliza el generador, a menos que sea atrapado desde ese generador)
-
+## Propiedades -

Propiedades

+_Tambien hereda propiedades de {{JSxRef("Iterator")}}_ -

Tambien hereda propiedades de {{JSxRef("Iterator")}}

+- `Generator.prototype.constructor` + - : Especifica la funciòn que construye el prototipo del objeto. -
-
Generator.prototype.constructor
-
Especifica la funciòn que construye el prototipo del objeto.
-
+ -
-
Generator.prototype[@@toStringTag]
-
La cuerda "Generator".
-
+- `Generator.prototype[@@toStringTag]` + - : La cuerda `"Generator"`. -

Ejemplo

+## Ejemplo -

Un iterador infinito

+### Un iterador infinito -
	function* idMaker() {
+```js
+	function* idMaker() {
 	    var index = 0;
 	    while(true)
 	        yield index++;
@@ -75,31 +67,33 @@ original_slug: Web/JavaScript/Referencia/Objetos_globales/Generador
 	console.log(gen.next().value); // 0
 	console.log(gen.next().value); // 1
 	console.log(gen.next().value); // 2
-	// ...
+ // ... +``` + +## Objetos generadores legados + +Firefox(SpderMonkey) tambén implementa una versón mas temprana de generadores en JavaScript 1.7, donde el asterisco (\*) en la declaración de la funcion no era necesario(sólo use la palabra reservada yield en el cuerpo de la función). Sin embargo, los generadores legados se encuentran depreciados. No los use. Serán removidos ({{bug(1083482)}}). + +### Métodos de generadores legados -

Objetos generadores legados

+- `Generator.prototype.next() `{{non-standard_inline}} -

Firefox(SpderMonkey) tambén implementa una versón mas temprana de generadores en JavaScript 1.7, donde el asterisco (*) en la declaración de la funcion no era necesario(sólo use la palabra reservada yield en el cuerpo de la función). Sin embargo, los generadores legados se encuentran depreciados. No los use. Serán removidos ({{bug(1083482)}}).

+ Retorna el valor ofrecido por la expresión {{jsxref("Operators/yield", "yield")}}. Esto se corresponde con el método next() en el objeto generador de ES2015. -

Métodos de generadores legados

+ `Generator.prototype.close()` {{non-standard_inline}} -
-
Generator.prototype.next() {{non-standard_inline}}
-
-
Retorna el valor ofrecido por la expresión {{jsxref("Operators/yield", "yield")}}. Esto se corresponde con el método next() en el objeto generador de ES2015.
-
-
Generator.prototype.close() {{non-standard_inline}}
-

- Cierra el generador. Sí el método next() es llamado por la expresión {{jsxref("StopIteration")}}, un error será lanzado. Esto se corresponde con el método return() del objeto generador de ES2015.
-
Generator.prototype.send() {{non-standard_inline}}
-
Utilizado para enviar un valor al generador. El valor es retornado por la expresion {{jsxref("Operators/yield", "yield")}}, y retorna el valor ofrecido por la siguiente expresion {{jsxref("Operators/yield", "yield")}}. send(x) Se corresponde a next(x) en el objeto generador de ECMAScript 2015.
-
Generator.prototype. throw() {{non-standard_inline}}
-
Lanza un error al generador. Esto se corresponde con el metodo throw() en el objeto genererador de ES2015.
-
+ - : + Cierra el generador. Sí el método next() es llamado por la expresión {{jsxref("StopIteration")}}, un error será lanzado. Esto se corresponde con el método return() del objeto generador de ES2015. -

Ejemplo de generador legado

+- `Generator.prototype.send()` {{non-standard_inline}} + - : Utilizado para enviar un valor al generador. El valor es retornado por la expresion {{jsxref("Operators/yield", "yield")}}, y retorna el valor ofrecido por la siguiente expresion {{jsxref("Operators/yield", "yield")}}. `send(x)` Se corresponde a `next(x)` en el objeto generador de ECMAScript 2015. +- **`Generator.`**`prototype.` **`throw()` **{{non-standard_inline}} + - : Lanza un error al generador. Esto se corresponde con el metodo throw() en el objeto genererador de ES2015. -
	function fibonacci() {
+### Ejemplo de generador legado
+
+```js
+	function fibonacci() {
 	  var a = yield 1;
 	  yield a * 2;
 	}
@@ -110,66 +104,40 @@ original_slug: Web/JavaScript/Referencia/Objetos_globales/Generador
 	console.log(it.send(10)); // 20
 	console.log(it.close());  // undefined
 	console.log(it.next());   // throws StopIteration (as the generator is now closed)
-	
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES2015', '#sec-generator-objects', 'Generator objects')}}{{Spec2('ES2015')}}Definición inicial
{{SpecName('ESDraft', '#sec-generator-objects', 'Generator objects')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

+ +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------- | ---------------------------- | ------------------ | +| {{SpecName('ES2015', '#sec-generator-objects', 'Generator objects')}} | {{Spec2('ES2015')}} | Definición inicial | +| {{SpecName('ESDraft', '#sec-generator-objects', 'Generator objects')}} | {{Spec2('ESDraft')}} | | +| | | | +| | | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Generator")}} -

+## -

Vea también

+## Vea también -

Generadores Legados

+### Generadores Legados -
    -
  • {{jsxref("Statements/Legacy_generator_function", "The legacy generator function", "", 1)}}
  • -
  • {{jsxref("Operators/Legacy_generator_function", "The legacy generator function expression", "", 1)}}
  • -
  • {{jsxref("StopIteration")}}
  • -
  • The legacy Iterator protocol
  • -
+- {{jsxref("Statements/Legacy_generator_function", "The legacy generator function", "", 1)}} +- {{jsxref("Operators/Legacy_generator_function", "The legacy generator function expression", "", 1)}} +- {{jsxref("StopIteration")}} +- [The legacy Iterator protocol](/es/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features/The_legacy_Iterator_protocol) -

Generadores ES2015

+### Generadores ES2015 -
    -
  • {{jsxref("Functions", "Functions", "", 1)}}
  • -
  • {{jsxref("Statements/function", "function")}}
  • -
  • {{jsxref("Operators/function", "function expression")}}
  • -
  • {{jsxref("Function")}}
  • -
  • {{jsxref("Statements/function*", "function*")}}
  • -
  • {{jsxref("Operators/function*", "function* expression")}}
  • -
  • {{jsxref("GeneratorFunction")}}
  • -
  • The Iterator protocol
  • -
+- {{jsxref("Functions", "Functions", "", 1)}} +- {{jsxref("Statements/function", "function")}} +- {{jsxref("Operators/function", "function expression")}} +- {{jsxref("Function")}} +- {{jsxref("Statements/function*", "function*")}} +- {{jsxref("Operators/function*", "function* expression")}} +- {{jsxref("GeneratorFunction")}} +- [The Iterator protocol](/es/docs/Web/JavaScript/Guide/The_Iterator_protocol) diff --git a/files/es/web/javascript/reference/global_objects/generator/next/index.md b/files/es/web/javascript/reference/global_objects/generator/next/index.md index 5c007202bf82c4..2a71cddb329e0a 100644 --- a/files/es/web/javascript/reference/global_objects/generator/next/index.md +++ b/files/es/web/javascript/reference/global_objects/generator/next/index.md @@ -4,43 +4,38 @@ slug: Web/JavaScript/Reference/Global_Objects/Generator/next translation_of: Web/JavaScript/Reference/Global_Objects/Generator/next original_slug: Web/JavaScript/Referencia/Objetos_globales/Generador/next --- -
{{JSRef}}
+{{JSRef}} -

El método next() regresa un objeto con las propiedades done y value. También puedes pasar un parámetro al método next para enviar un valor al generador.

+El método **`next`\*\***`()`\*\* regresa un objeto con las propiedades `done` y `value`. También puedes pasar un parámetro al método `next` para enviar un valor al generador. -

Sintaxis

+## Sintaxis -
gen.next(valor)
+ gen.next(valor) -

Parámetros

+### Parámetros -
-
valor
-
El valor a enviar al generador.
-
+- `valor` + - : El valor a enviar al generador. -

Valor de retorno

+### Valor de retorno -

Un {{jsxref("Object")}} con dos propiedades:

+Un {{jsxref("Object")}} con dos propiedades: -
    -
  • done (booleano) +- `done` (booleano) -
      -
    • Es verdadero si el iterador ya llegó al final de la secuencia. En este caso valor define opcionalmente el valor de retorno del iterador.
    • -
    • Es falso si el iterador puede dar un siguiente valor en la secuencia. Es equivalente a no definir la propiedad done.
    • -
    -
  • -
  • value - cualquier valor Javascript regresado por el iterador. Éste puede ser omitido si done is verdadero.
  • -
+ - Es `verdadero` si el iterador ya llegó al final de la secuencia. En este caso `valor` define opcionalmente el _valor de retorno_ del iterador. + - Es `falso` si el iterador puede dar un siguiente valor en la secuencia. Es equivalente a no definir la propiedad `done`. -

Examples

+- `value` - cualquier valor Javascript regresado por el iterador. Éste puede ser omitido si `done` is `verdadero`. -

Using next()

+## Examples -

The following example shows a simple generator and the object that the next method returns:

+### Using `next()` -
function* gen() {
+The following example shows a simple generator and the object that the `next` method returns:
+
+```js
+function* gen() {
   yield 1;
   yield 2;
   yield 3;
@@ -51,13 +46,14 @@ g.next();      // "Object { value: 1, done: false }"
 g.next();      // "Object { value: 2, done: false }"
 g.next();      // "Object { value: 3, done: false }"
 g.next();      // "Object { value: undefined, done: true }"
-
+``` -

Sending values to the generator

+### Sending values to the generator -

In this example, next is called with a value. Note that the first call did not log anything, because the generator was not yielding anything initially.

+In this example, `next` is called with a value. Note that the first call did not log anything, because the generator was not yielding anything initially. -
function* gen() {
+```js
+function* gen() {
   while(true) {
     var value = yield null;
     console.log(value);
@@ -70,41 +66,20 @@ g.next(1);
 g.next(2);
 // 2
 // "{ value: null, done: false }"
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-generator.prototype.next', 'Generator.prototype.next')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-generator.prototype.next', 'Generator.prototype.next')}}{{Spec2('ESDraft')}}
- -

Browser compatibility

- -
- - -

{{Compat("javascript.builtins.Generator.next")}}

-
- -

See also

- - +``` + +## Specifications + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-generator.prototype.next', 'Generator.prototype.next')}} | {{Spec2('ES2015')}} | Initial definition. | +| {{SpecName('ESDraft', '#sec-generator.prototype.next', 'Generator.prototype.next')}} | {{Spec2('ESDraft')}} | | + +## Browser compatibility + +{{Compat("javascript.builtins.Generator.next")}} + +## See also + +- [`function*`](/en-US/docs/Web/JavaScript/Reference/Statements/function*) +- [Iterators and generators](/es/docs/Web/JavaScript/Guide/Iterators_and_Generators) diff --git a/files/es/web/javascript/reference/global_objects/generator/return/index.md b/files/es/web/javascript/reference/global_objects/generator/return/index.md index 4bde9c225bb7cb..0177ada424a244 100644 --- a/files/es/web/javascript/reference/global_objects/generator/return/index.md +++ b/files/es/web/javascript/reference/global_objects/generator/return/index.md @@ -11,32 +11,31 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Generator/return original_slug: Web/JavaScript/Referencia/Objetos_globales/Generador/return --- -
{{JSRef}}
+{{JSRef}} -

El método return() regresa el valor dado y finaliza al generador.

+El método **`return()`** regresa el valor dado y finaliza al generador. -

Sintaxis

+## Sintaxis -
gen.return(valor)
+ gen.return(valor) -

Parámetros

+### Parámetros -
-
valor
-
El valor a regresar.
-
+- `valor` + - : El valor a regresar. -

Valor de retorno

+### Valor de retorno -

El valor dado como argumento.

+El valor dado como argumento. -

Ejemplos

+## Ejemplos -

Utilizando return()

+### Utilizando `return()` -

El siguiente ejemplo muestra un generador simple y su método return.

+El siguiente ejemplo muestra un generador simple y su método `return`. -
function* gen() {
+```js
+function* gen() {
   yield 1;
   yield 2;
   yield 3;
@@ -47,11 +46,12 @@ var g = gen();
 g.next();        // { value: 1, done: false }
 g.return('foo'); // { value: "foo", done: true }
 g.next();        // { value: undefined, done: true }
-
+``` -

Si return(valor) es invocado en un generador que ya está en su estado "completado", el generador permanecerá en estado "completado". Si no se da ningún argumento, el objeto regresado es el mismo a que si se invocara .next(). Si se da un argumento, éste se asignará como valor en la propiedad value del objeto regresado.

+Si `return(valor)` es invocado en un generador que ya está en su estado "completado", el generador permanecerá en estado "completado". Si no se da ningún argumento, el objeto regresado es el mismo a que si se invocara `.next()`. Si se da un argumento, éste se asignará como valor en la propiedad `value` del objeto regresado. -
function* gen() {
+```js
+function* gen() {
   yield 1;
   yield 2;
   yield 3;
@@ -64,40 +64,19 @@ g.next(); // { value: 3, done: false }
 g.next(); // { value: undefined, done: true }
 g.return(); // { value: undefined, done: true }
 g.return(1); // { value: 1, done: true }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES2015', '#sec-generator.prototype.return', 'Generator.prototype.return')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-generator.prototype.return', 'Generator.prototype.return')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
- - -

{{Compat("javascript.builtins.Generator.return")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Sentencias/function*","function*")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-generator.prototype.return', 'Generator.prototype.return')}} | {{Spec2('ES2015')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-generator.prototype.return', 'Generator.prototype.return')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Generator.return")}} + +## Ver también + +- {{jsxref("Sentencias/function*","function*")}} diff --git a/files/es/web/javascript/reference/global_objects/generator/throw/index.md b/files/es/web/javascript/reference/global_objects/generator/throw/index.md index aef8c282a86098..9fbacdfd941de8 100644 --- a/files/es/web/javascript/reference/global_objects/generator/throw/index.md +++ b/files/es/web/javascript/reference/global_objects/generator/throw/index.md @@ -4,43 +4,38 @@ slug: Web/JavaScript/Reference/Global_Objects/Generator/throw translation_of: Web/JavaScript/Reference/Global_Objects/Generator/throw original_slug: Web/JavaScript/Referencia/Objetos_globales/Generador/throw --- -
{{JSRef}}
+{{JSRef}} -

El método throw() reanuda la ejecución de un generador al lanzar un error en éste y regresar un objeto con las dos propiedades done y value.

+El método **`throw()`** reanuda la ejecución de un generador al lanzar un error en éste y regresar un objeto con las dos propiedades `done` y `value`. -

Sintaxis

+## Sintaxis -
gen.throw(excepción)
+ gen.throw(excepción) -

Parámetros

+### Parámetros -
-
excepción
-
La excepción a lanzar. Al hacer depuración, es útil que la excepción cumpla con instanceof {{jsxref("Error")}}.
-
+- `excepción` + - : La excepción a lanzar. Al hacer depuración, es útil que la excepción cumpla con `instanceof` {{jsxref("Error")}}. -

Valor de retorno

+### Valor de retorno -

Un {{jsxref("Object")}} con dos propiedades:

+Un {{jsxref("Object")}} con dos propiedades: -
    -
  • done (booleano) +- `done` (booleano) -
      -
    • Es verdadero si el iterador ya llegó al final de la secuencia. En este caso valor define opcionalmente el valor de retorno del iterador.
    • -
    • Es falso si el iterador puede dar un siguiente valor en la secuencia. Es equivalente a no definir la propiedad done.
    • -
    -
  • -
  • value - cualquier valor Javascript regresado por el iterador. Éste puede ser omitido si done is verdadero.
  • -
+ - Es `verdadero` si el iterador ya llegó al final de la secuencia. En este caso `valor` define opcionalmente el _valor de retorno_ del iterador. + - Es `falso` si el iterador puede dar un siguiente valor en la secuencia. Es equivalente a no definir la propiedad `done`. -

Examples

+- `value` - cualquier valor Javascript regresado por el iterador. Éste puede ser omitido si `done` is `verdadero`. -

Using throw()

+## Examples -

The following example shows a simple generator and an error that is thrown using the throw method. An error can be caught by a try...catch block as usual.

+### Using `throw()` -
function* gen() {
+The following example shows a simple generator and an error that is thrown using the `throw` method. An error can be caught by a [`try...catch`](/en-US/docs/Web/JavaScript/Reference/Statements/try...catch) block as usual.
+
+```js
+function* gen() {
   while(true) {
     try {
        yield 42;
@@ -56,40 +51,19 @@ g.next();
 g.throw(new Error('Something went wrong'));
 // "Error caught!"
 // { value: 42, done: false }
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-generator.prototype.throw', 'Generator.prototype.throw')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-generator.prototype.throw', 'Generator.prototype.throw')}}{{Spec2('ESDraft')}}
- -

Browser compatibility

- -
- - -

{{Compat("javascript.builtins.Generator.throw")}}

-
- -

See also

- - +``` + +## Specifications + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-generator.prototype.throw', 'Generator.prototype.throw')}} | {{Spec2('ES2015')}} | Initial definition. | +| {{SpecName('ESDraft', '#sec-generator.prototype.throw', 'Generator.prototype.throw')}} | {{Spec2('ESDraft')}} | | + +## Browser compatibility + +{{Compat("javascript.builtins.Generator.throw")}} + +## See also + +- [`function*`](/en-US/docs/Web/JavaScript/Reference/Statements/function*) diff --git a/files/es/web/javascript/reference/global_objects/infinity/index.md b/files/es/web/javascript/reference/global_objects/infinity/index.md index d0c58524565ac0..5a8754c768b637 100644 --- a/files/es/web/javascript/reference/global_objects/infinity/index.md +++ b/files/es/web/javascript/reference/global_objects/infinity/index.md @@ -6,47 +6,41 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Infinity original_slug: Web/JavaScript/Referencia/Objetos_globales/Infinity --- -
- {{jsSidebar("Objects")}}
-

Resumen

-

La propiedad global Infinity es un valor numérico que representa el infinito.

-

{{js_property_attributes(0,0,0)}}

-

Sintaxis

-
Infinity
-

Description

-

Infinity es una del objeto global, es decir, esta es una variable de alcance global.

-

El valor inicial de Infinity es {{jsxref("Number.POSITIVE_INFINITY")}}. El valor de Infinity (infinito positivo) es mayor que cualquier otro numero incluido el mismo. Este valor se comporta matematicamente como el infinito matemático; por ejemplo, cualquier numero multiplicado por Infinity da como resultado Infinity, y cualquier numero divido por Infinity da como resultado cero.

-

Para la especificación ECMAScript 5, Infinity es de solo lectura (implementado en JavaScript 1.8.5 / Firefox 4).

-

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
ECMAScript 1ra edición.EstándarDefinición inicial. Implementada en JavaScript 1.3
{{SpecName('ES5.1', '#sec-15.1.1.2', 'Infinity')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-value-properties-of-the-global-object-infinity', 'Infinity')}}{{Spec2('ES6')}}
-

Compatibilidad con navegadores

+{{jsSidebar("Objects")}} + +## Resumen + +La propiedad global **`Infinity `**es un valor numérico que representa el infinito. + +{{js_property_attributes(0,0,0)}} + +## Sintaxis + +```js +Infinity +``` + +## Description + +`Infinity `es una del objeto global, es decir, esta es una variable de alcance global. + +El valor inicial de `Infinity` es {{jsxref("Number.POSITIVE_INFINITY")}}. El valor de `Infinity` (infinito positivo) es mayor que cualquier otro numero incluido el mismo. Este valor se comporta matematicamente como el infinito matemático; por ejemplo, cualquier numero multiplicado por `Infinity` da como resultado `Infinity`, y cualquier numero divido por `Infinity` da como resultado cero. + +Para la especificación ECMAScript 5, `Infinity `es de solo lectura (implementado en JavaScript 1.8.5 / Firefox 4). + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------------------- | ------------------------ | -------------------------------------------------- | +| ECMAScript 1ra edición. | Estándar | Definición inicial. Implementada en JavaScript 1.3 | +| {{SpecName('ES5.1', '#sec-15.1.1.2', 'Infinity')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-value-properties-of-the-global-object-infinity', 'Infinity')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores + {{Compat("javascript.builtins.Infinity")}} -

Ver también

-
    -
  • {{jsxref("Number.NEGATIVE_INFINITY")}}
  • -
  • {{jsxref("Number.POSITIVE_INFINITY")}}
  • -
+## Ver también + +- {{jsxref("Number.NEGATIVE_INFINITY")}} +- {{jsxref("Number.POSITIVE_INFINITY")}} diff --git a/files/es/web/javascript/reference/global_objects/internalerror/index.md b/files/es/web/javascript/reference/global_objects/internalerror/index.md index c454a13d36f20f..3b8a501782f555 100644 --- a/files/es/web/javascript/reference/global_objects/internalerror/index.md +++ b/files/es/web/javascript/reference/global_objects/internalerror/index.md @@ -10,90 +10,78 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/InternalError original_slug: Web/JavaScript/Referencia/Objetos_globales/InternalError --- -
{{JSRef}} {{non-standard_header}}
+{{JSRef}} {{non-standard_header}} -

El objeto InternalError indica un error que se produjo internamente en el motor JavaScript.

+El objeto **`InternalError`** indica un error que se produjo internamente en el motor JavaScript. -

Los principalmente casos de ejemplo son cuando algo es demasiado grande, por ejemplo:

+Los principalmente casos de ejemplo son cuando algo es demasiado grande, por ejemplo: -
    -
  • "demasiados casos del switch",
  • -
  • "demasiados paréntesis en la expresión regular",
  • -
  • "iniciador de arreglo demasiado grande",
  • -
  • "demasiada recursividad".
  • -
+- "demasiados casos del switch", +- "demasiados paréntesis en la expresión regular", +- "iniciador de arreglo demasiado grande", +- "demasiada recursividad". -

Constructor

+## Constructor -
-
{{JSxRef("Global_Objects/InternalError/InternalError", "InternalError()")}}
-
Crea un nuevo objeto InternalError.
-
+- {{JSxRef("Global_Objects/InternalError/InternalError", "InternalError()")}} + - : Crea un nuevo objeto `InternalError`. -

Propiedades de la instancia

+## Propiedades de la instancia -
-
{{jsxref("Error.prototype.message", "InternalError.prototype.message")}}
-
Mensaje de error. Heredado de {{JSxRef("Error")}}.
-
{{jsxref("Error.prototype.name", "InternalError.prototype.name")}}
-
Nombre del error. Heredado de {{JSxRef("Error")}}.
-
{{jsxref("Error.prototype.fileName", "InternalError.prototype.fileName")}}
-
Ruta al archivo que generó este error. Heredado de {{JSxRef("Error")}}.
-
{{jsxref("Error.prototype.lineNumber", "InternalError.prototype.lineNumber")}}
-
Número de línea en el archivo que generó este error. Heredado de {{JSxRef("Error")}}.
-
{{jsxref("Error.prototype.columnNumber", "InternalError.prototype.columnNumber")}}
-
Número de columna en la línea que generó este error. Heredado de {{JSxRef("Error")}}.
-
{{jsxref("Error.prototype.stack", "InternalError.prototype.stack")}}
-
Seguimiento de la pila. Heredado de {{JSxRef("Error")}}.
-
+- {{jsxref("Error.prototype.message", "InternalError.prototype.message")}} + - : Mensaje de error. Heredado de {{JSxRef("Error")}}. +- {{jsxref("Error.prototype.name", "InternalError.prototype.name")}} + - : Nombre del error. Heredado de {{JSxRef("Error")}}. +- {{jsxref("Error.prototype.fileName", "InternalError.prototype.fileName")}} + - : Ruta al archivo que generó este error. Heredado de {{JSxRef("Error")}}. +- {{jsxref("Error.prototype.lineNumber", "InternalError.prototype.lineNumber")}} + - : Número de línea en el archivo que generó este error. Heredado de {{JSxRef("Error")}}. +- {{jsxref("Error.prototype.columnNumber", "InternalError.prototype.columnNumber")}} + - : Número de columna en la línea que generó este error. Heredado de {{JSxRef("Error")}}. +- {{jsxref("Error.prototype.stack", "InternalError.prototype.stack")}} + - : Seguimiento de la pila. Heredado de {{JSxRef("Error")}}. -

Ejemplos

+## Ejemplos -

Demasiada recursividad

+### Demasiada recursividad -

Esta función recursiva se ejecuta 10 veces, según la condición de salida.

+Esta función recursiva se ejecuta 10 veces, según la condición de salida. -
function loop(x) {
-  if (x >= 10) // "x >= 10" es la condición de salida
+```js
+function loop(x) {
+  if (x >= 10) // "x >= 10" es la condición de salida
     return;
   // hacer cosas
   loop(x + 1); // la llamada recursiva
 }
-loop(0);
+loop(0); +``` -

Establecer esta condición en un valor extremadamente alto, no funcionará:

+Establecer esta condición en un valor extremadamente alto, no funcionará: -
function loop(x) {
-  if (x >= 1000000000000)
+```js example-bad
+function loop(x) {
+  if (x >= 1000000000000)
     return;
   // hacer cosas
   loop(x + 1);
 }
 loop(0);
 
-// InternalError: demasiada recursividad
- -

Para obtener más información, consulta {{JSxRef("Errors/Too_much_recursion", "InternalError: demasiada recursividad.")}}

- -

Especificaciones

+// InternalError: demasiada recursividad +``` -

No forma parte de ningún estándar.

+Para obtener más información, consulta {{JSxRef("Errors/Too_much_recursion", "InternalError: demasiada recursividad.")}} -

Compatibilidad del navegador

+## Especificaciones -
-
+No forma parte de ningún estándar. +## Compatibilidad del navegador -

{{Compat("javascript.builtins.InternalError")}}

-
-
+{{Compat("javascript.builtins.InternalError")}} -

Ve también

+## Ve también -
    -
  • {{JSxRef("Error")}}
  • -
  • -

    {{JSxRef("Errors/Too_much_recursion", "demasiada recursividad")}}

    -
  • -
+- {{JSxRef("Error")}} +- {{JSxRef("Errors/Too_much_recursion", "demasiada recursividad")}} diff --git a/files/es/web/javascript/reference/global_objects/internalerror/internalerror/index.md b/files/es/web/javascript/reference/global_objects/internalerror/internalerror/index.md index b44e264031b412..9751dbe15cd741 100644 --- a/files/es/web/javascript/reference/global_objects/internalerror/internalerror/index.md +++ b/files/es/web/javascript/reference/global_objects/internalerror/internalerror/index.md @@ -9,48 +9,39 @@ translation_of: Web/JavaScript/Reference/Global_Objects/InternalError/InternalEr original_slug: >- Web/JavaScript/Referencia/Objetos_globales/InternalError/Constructor_InternalError --- -
{{JSRef}} {{non-standard_header}}
+{{JSRef}} {{non-standard_header}} -

El constructor InternalError() crea un error que indica un error que ocurrió internamente en el motor de JavaScript. Por ejemplo: "InternalError: demasiada recursividad".

+El constructor **`InternalError()`** crea un error que indica un error que ocurrió internamente en el motor de JavaScript. Por ejemplo: **"InternalError**: demasiada recursividad". -

Sintaxis

+## Sintaxis -
new InternalError([message[, fileName[, lineNumber]]])
+ new InternalError([message[, fileName[, lineNumber]]]) -

Parámetros

+### Parámetros -
-
message
-
Opcional. Una descripción del error legible para los humanos.
-
fileName
-
Opcional. El nombre del archivo que contiene el código que provocó la excepción.
-
lineNumber
-
Opcional. El número de línea del código que provocó la excepción.
-
+- `message` + - : Opcional. Una descripción del error legible para los humanos. +- `fileName` + - : Opcional. El nombre del archivo que contiene el código que provocó la excepción. +- `lineNumber` + - : Opcional. El número de línea del código que provocó la excepción. -

Ejemplos

+## Ejemplos -

Crear un nuevo InternalError

+### Crear un nuevo `InternalError` -
new InternalError("Fallo del motor");
-
+```js +new InternalError("Fallo del motor"); +``` -

Especificaciones

+## Especificaciones -

No forma parte de ningún estándar.

+No forma parte de ningún estándar. -

Compatibilidad del navegador

+## Compatibilidad del navegador -
-
+{{Compat("javascript.builtins.InternalError.InternalError")}} +## Ve también -

{{Compat("javascript.builtins.InternalError.InternalError")}}

-
-
- -

Ve también

- -
    -
  • {{JSxRef("Error")}}
  • -
+- {{JSxRef("Error")}} diff --git a/files/es/web/javascript/reference/global_objects/intl/index.md b/files/es/web/javascript/reference/global_objects/intl/index.md index 330c6e1425f9eb..57d2469bfb937f 100644 --- a/files/es/web/javascript/reference/global_objects/intl/index.md +++ b/files/es/web/javascript/reference/global_objects/intl/index.md @@ -4,124 +4,88 @@ slug: Web/JavaScript/Reference/Global_Objects/Intl translation_of: Web/JavaScript/Reference/Global_Objects/Intl original_slug: Web/JavaScript/Referencia/Objetos_globales/Intl --- -
{{JSRef}}
+{{JSRef}} -

El objeto de ámbito global Intl es el espacio de nombres para el API de Internacionalización de ECMAScript, éste provee comparación de cadenas y formato de números, fechas y tiempos con sensibilidad al lenguaje. Los constructores para los objetos {{jsxref("Collator")}}, {{jsxref("NumberFormat")}}, y {{jsxref("DateTimeFormat")}} son propiedades del objeto Intl. En ésta página se documentan tales propiedades, así como la funcionalidad común a los constructores de internacionalización y otras funciones sensibles al lenguaje.

+El objeto de ámbito global **`Intl`** es el espacio de nombres para el API de Internacionalización de ECMAScript, éste provee comparación de cadenas y formato de números, fechas y tiempos con sensibilidad al lenguaje. Los constructores para los objetos {{jsxref("Collator")}}, {{jsxref("NumberFormat")}}, y {{jsxref("DateTimeFormat")}} son propiedades del objeto `Intl`. En ésta página se documentan tales propiedades, así como la funcionalidad común a los constructores de internacionalización y otras funciones sensibles al lenguaje. -

Propiedades

+## Propiedades -
-
{{jsxref("Global_Objects/Collator", "Intl.Collator")}}
-
Constructor para collators, objetos que permiten la comparación de cadenas con sensibilidad al lenguaje.
-
{{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}}
-
Constructor para objetos que permiten el formato de fecha y tiempos con sensibilidad al lenguaje.
-
{{jsxref("Global_Objects/NumberFormat", "Intl.NumberFormat")}}
-
Constructor para objetos que permiten el formato de números con sensibilidad al lenguaje.
-
{{jsxref("Global_Objects/PluralRules", "Intl.PluralRules")}}
-
Por definir
-
+- {{jsxref("Global_Objects/Collator", "Intl.Collator")}} + - : Constructor para collators, objetos que permiten la comparación de cadenas con sensibilidad al lenguaje. +- {{jsxref("Global_Objects/DateTimeFormat", "Intl.DateTimeFormat")}} + - : Constructor para objetos que permiten el formato de fecha y tiempos con sensibilidad al lenguaje. +- {{jsxref("Global_Objects/NumberFormat", "Intl.NumberFormat")}} + - : Constructor para objetos que permiten el formato de números con sensibilidad al lenguaje. +- {{jsxref("Global_Objects/PluralRules", "Intl.PluralRules")}} + - : _Por definir_ -

Métodos

+## Métodos -
-
{{jsxref("Intl.getCanonicalLocales()")}}
-
Método que retorna los nombres canónicos de las diferentes variantes de lenguaje.
-
- -

Identificación de variantes de lenguaje y negociación

- -

Los constructores de internacionalización, así como otros metodos de constructores sensibles al lenguaje (listados bajo Ver más) siguen un mismo patrón para identificar variantes de lenguaje y determinar aquella a utilizar: todos aceptan los argumentos locales y options, y negocian las variantes requeridas contra aquellas que soportan utilizando un algoritmo especificado en la propiedad options.localeMatcher.

- -

locales

- -

El argumento locales debe ser tanto una cadena que contenga una Etiqueta de Idioma BCP 47, o una matriz de etiquetas de dicho idioma. Si el argumento locales no es provisto o es indefinido, será usado la localicacion predeterminada.

- -

Una etiqueta de idioma BCP 47 define un idioma y minimamente contiene un código primario de idioma. En estos la forma mas comun puede contener, : un código de idioma, un código del sistema de escritura, y un código de país o región, todo separado por guiones. Mientras la etiqueta no es case sensitive, es recomendable usar un titulo para el código del sistema de escritura, mayúsculas para el país y región y minúsculas para todo lo demás.

- -

Ejemplos:

- -
    -
  • "hi": Hindi (idioma principal).
  • -
  • "de-AT": Alemán usado en Austria (idioma principal con código del país).
  • -
  • "zh-Hans-CN": Escritura China en caracteres simplificados como se usa en China (idioma principal con código de escritura y código del país).
  • -
- -

Las subetiquetas que identifican idiomas, scripts, países (regiones), y (raramente utilizadas) variantes en las etiquetas de idiomas BCP 47 pueden ser encontradas en el Registro de subetiquetas de idioma de la IANA.

- -

BCP 47 permite también extensiones. Las funciones de internacionalización de JavaScript utilizan la extensión "u" (Unicode), misma que puede emplearse para requerir personalizacioón de los objetos {{jsxref("Collator")}}, {{jsxref("NumberFormat")}}, o {{jsxref("DateTimeFormat")}}. A continuación algunos ejemplos:

- -
    -
  • "de-DE-u-co-phonebk": Utiliza la variante de guía telefónica del orden de clasificación alemán, que expande las vocales con umlaut a pares de caracteres: ä → ae, ö → oe, ü → ue.
  • -
  • "th-TH-u-nu-thai": Utiliza dígitos tailandeses (๐, ๑, ๒, ๓, ๔, ๕, ๖, ๗, ๘, ๙) para formatear números.
  • -
  • "ja-JP-u-ca-japanese": Use the Japanese calendar in date and time formatting, so that 2013 is expressed as the year 25 of the Heisei period, or 平成25.
  • -
  • "en-GB-u-ca-islamic": use British English with the Islamic (Hijri) calendar, where the Gregorian date 14 October, 2017 is the Hijri date 24 Muharram, 1439.
  • -
- -

Locale negotiation

- -

The locales argument, after stripping off all Unicode extensions, is interpreted as a prioritized request from the application. The runtime compares it against the locales it has available and picks the best one available. Two matching algorithms exist: the "lookup" matcher follows the Lookup algorithm specified in BCP 47; the "best fit" matcher lets the runtime provide a locale that's at least, but possibly more, suited for the request than the result of the Lookup algorithm. If the application doesn't provide a locales argument, or the runtime doesn't have a locale that matches the request, then the runtime's default locale is used. The matcher can be selected using a property of the options argument (see below).

- -

If the selected language tag had a Unicode extension substring, that extension is now used to customize the constructed object or the behavior of the function. Each constructor or function supports only a subset of the keys defined for the Unicode extension, and the supported values often depend on the language tag. For example, the "co" key (collation) is only supported by {{jsxref("Collator")}}, and its "phonebk" value is only supported for German.

- -

options argument

- -

The options argument must be an object with properties that vary between constructors and functions. If the options argument is not provided or is undefined, default values are used for all properties.

- -

One property is supported by all language sensitive constructors and functions: The localeMatcher property, whose value must be a string "lookup" or "best fit" and which selects one of the locale matching algorithms described above.

- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES Int 1.0', '#sec-8', 'Intl')}}{{Spec2('ES Int 1.0')}}Initial definition.
{{SpecName('ES Int 2.0', '#sec-8', 'Intl')}}{{Spec2('ES Int 2.0')}}
{{SpecName('ES Int Draft', '#intl-object', 'Intl')}}{{Spec2('ES Int Draft')}}Added Intl.getCanonicalLocales in the 4th edition.
- -

Browser compatibility

- -
- - -

{{Compat("javascript.builtins.Intl")}}

-
- -

See also

- -
    -
  • Introduction: The ECMAScript Internationalization API
  • -
  • Constructors -
      -
    • {{jsxref("Collator", "Intl.Collator")}}
    • -
    • {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}}
    • -
    • {{jsxref("NumberFormat", "Intl.NumberFormat")}}
    • -
    -
  • -
  • Methods -
      -
    • {{jsxref("String.prototype.localeCompare()")}}
    • -
    • {{jsxref("Number.prototype.toLocaleString()")}}
    • -
    • {{jsxref("Date.prototype.toLocaleString()")}}
    • -
    • {{jsxref("Date.prototype.toLocaleDateString()")}}
    • -
    • {{jsxref("Date.prototype.toLocaleTimeString()")}}
    • -
    -
  • -
+- {{jsxref("Intl.getCanonicalLocales()")}} + - : Método que retorna los nombres canónicos de las diferentes variantes de lenguaje. + +## Identificación de variantes de lenguaje y negociación + +Los constructores de internacionalización, así como otros metodos de constructores sensibles al lenguaje (listados bajo [Ver más](#see_also)) siguen un mismo patrón para identificar variantes de lenguaje y determinar aquella a utilizar: todos aceptan los argumentos `locales` y `options`, y negocian las variantes requeridas contra aquellas que soportan utilizando un algoritmo especificado en la propiedad `options.localeMatcher`. + +### `locales` + +`El argumento locales` debe ser tanto una cadena que contenga una [Etiqueta de Idioma BCP 47](http://tools.ietf.org/html/rfc5646), o una matriz de etiquetas de dicho idioma. Si el argumento `locales` no es provisto o es indefinido, será usado la localicacion predeterminada. + +Una etiqueta de idioma BCP 47 define un idioma y minimamente contiene un código primario de idioma. En estos la forma mas comun puede contener, : un código de idioma, un código del sistema de escritura, y un código de país o región, todo separado por guiones. Mientras la etiqueta no es case sensitive, es recomendable usar un titulo para el código del sistema de escritura, mayúsculas para el país y región y minúsculas para todo lo demás. + +Ejemplos: + +- `"hi"`: Hindi (idioma principal). +- `"de-AT"`: Alemán usado en Austria (idioma principal con código del país). +- `"zh-Hans-CN"`: Escritura China en caracteres simplificados como se usa en China (idioma principal con código de escritura y código del país). + +Las subetiquetas que identifican idiomas, scripts, países (regiones), y (raramente utilizadas) variantes en las etiquetas de idiomas BCP 47 pueden ser encontradas en el [Registro de subetiquetas de idioma de la IANA](http://www.iana.org/assignments/language-subtag-registry). + +BCP 47 permite también extensiones. Las funciones de internacionalización de JavaScript utilizan la extensión `"u"` (Unicode), misma que puede emplearse para requerir personalizacioón de los objetos {{jsxref("Collator")}}, {{jsxref("NumberFormat")}}, o {{jsxref("DateTimeFormat")}}. A continuación algunos ejemplos: + +- `"de-DE-u-co-phonebk"`: Utiliza la variante de guía telefónica del orden de clasificación alemán, que expande las vocales con umlaut a pares de caracteres: ä → ae, ö → oe, ü → ue. +- `"th-TH-u-nu-thai"`: Utiliza dígitos tailandeses (๐, ๑, ๒, ๓, ๔, ๕, ๖, ๗, ๘, ๙) para formatear números. +- `"ja-JP-u-ca-japanese"`: Use the Japanese calendar in date and time formatting, so that 2013 is expressed as the year 25 of the Heisei period, or 平成 25. +- `"en-GB-u-ca-islamic"`: use British English with the Islamic (Hijri) calendar, where the Gregorian date 14 October, 2017 is the Hijri date 24 Muharram, 1439. + +### Locale negotiation + +The `locales` argument, after stripping off all Unicode extensions, is interpreted as a prioritized request from the application. The runtime compares it against the locales it has available and picks the best one available. Two matching algorithms exist: the `"lookup"` matcher follows the Lookup algorithm specified in [BCP 47](http://tools.ietf.org/html/rfc4647#section-3.4); the `"best fit"` matcher lets the runtime provide a locale that's at least, but possibly more, suited for the request than the result of the Lookup algorithm. If the application doesn't provide a `locales` argument, or the runtime doesn't have a locale that matches the request, then the runtime's default locale is used. The matcher can be selected using a property of the `options` argument (see below). + +If the selected language tag had a Unicode extension substring, that extension is now used to customize the constructed object or the behavior of the function. Each constructor or function supports only a subset of the keys defined for the Unicode extension, and the supported values often depend on the language tag. For example, the `"co"` key (collation) is only supported by {{jsxref("Collator")}}, and its `"phonebk"` value is only supported for German. + +### `options` argument + +The `options` argument must be an object with properties that vary between constructors and functions. If the `options` argument is not provided or is undefined, default values are used for all properties. + +One property is supported by all language sensitive constructors and functions: The `localeMatcher` property, whose value must be a string `"lookup"` or `"best fit"` and which selects one of the locale matching algorithms described above. + +## Specifications + +| Specification | Status | Comment | +| -------------------------------------------------------------------- | -------------------------------- | -------------------------------------------------- | +| {{SpecName('ES Int 1.0', '#sec-8', 'Intl')}} | {{Spec2('ES Int 1.0')}} | Initial definition. | +| {{SpecName('ES Int 2.0', '#sec-8', 'Intl')}} | {{Spec2('ES Int 2.0')}} | | +| {{SpecName('ES Int Draft', '#intl-object', 'Intl')}} | {{Spec2('ES Int Draft')}} | Added Intl.getCanonicalLocales in the 4th edition. | + +## Browser compatibility + +{{Compat("javascript.builtins.Intl")}} + +## See also + +- Introduction: [The ECMAScript Internationalization API](http://norbertlindenberg.com/2012/12/ecmascript-internationalization-api/index.html) +- Constructors + + - {{jsxref("Collator", "Intl.Collator")}} + - {{jsxref("DateTimeFormat", "Intl.DateTimeFormat")}} + - {{jsxref("NumberFormat", "Intl.NumberFormat")}} + +- Methods + + - {{jsxref("String.prototype.localeCompare()")}} + - {{jsxref("Number.prototype.toLocaleString()")}} + - {{jsxref("Date.prototype.toLocaleString()")}} + - {{jsxref("Date.prototype.toLocaleDateString()")}} + - {{jsxref("Date.prototype.toLocaleTimeString()")}} diff --git a/files/es/web/javascript/reference/global_objects/intl/numberformat/format/index.md b/files/es/web/javascript/reference/global_objects/intl/numberformat/format/index.md index 96dc06f29b26f2..19a308c40ac806 100644 --- a/files/es/web/javascript/reference/global_objects/intl/numberformat/format/index.md +++ b/files/es/web/javascript/reference/global_objects/intl/numberformat/format/index.md @@ -4,90 +4,63 @@ slug: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/format translation_of: Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/format original_slug: Web/JavaScript/Referencia/Objetos_globales/Intl/NumberFormat/format --- -
{{JSRef}}
+{{JSRef}} -

El método Intl.NumberFormat.prototype.format() formatea un número de acuerdo con la configuración regional y las opciones de formato de este objeto {{jsxref("NumberFormat")}}.

+El método **`Intl.NumberFormat.prototype.format()`** formatea un número de acuerdo con la configuración regional y las opciones de formato de este objeto {{jsxref("NumberFormat")}}. -
{{EmbedInteractiveExample("pages/js/intl-numberformat-prototype-format.html")}}
+{{EmbedInteractiveExample("pages/js/intl-numberformat-prototype-format.html")}} +## Syntax + numberFormat.format(number) -

Syntax

+### Parametros -
numberFormat.format(number)
+- `number` + - : A {{jsxref("Number")}} or {{jsxref("BigInt")}} to format. -

Parametros

+## Descripción -
-
number
-
A {{jsxref("Number")}} or {{jsxref("BigInt")}} to format.
-
+The `format` getter function formats a number into a string according to the locale and formatting options of this {{jsxref("NumberFormat")}} object. -

Descripción

+## Ejemplos -

The format getter function formats a number into a string according to the locale and formatting options of this {{jsxref("NumberFormat")}} object.

+### Usando `format` -

Ejemplos

+Use the `format` getter function for formatting a single currency value, here for Russia: -

Usando format

- -

Use the format getter function for formatting a single currency value, here for Russia:

- -
var options = { style: 'currency', currency: 'RUB' };
+```js
+var options = { style: 'currency', currency: 'RUB' };
 var numberFormat = new Intl.NumberFormat('ru-RU', options);
 console.log(numberFormat.format(654321.987));
 // → "654 321,99 руб."
-
+``` -

Usando format con map

+### Usando `format` con `map` -

Use the format getter function for formatting all numbers in an array. Note that the function is bound to the {{jsxref("NumberFormat")}} from which it was obtained, so it can be passed directly to {{jsxref("Array.prototype.map")}}.

+Use the `format` getter function for formatting all numbers in an array. Note that the function is bound to the {{jsxref("NumberFormat")}} from which it was obtained, so it can be passed directly to {{jsxref("Array.prototype.map")}}. -
var a = [123456.789, 987654.321, 456789.123];
+```js
+var a = [123456.789, 987654.321, 456789.123];
 var numberFormat = new Intl.NumberFormat('es-ES');
 var formatted = a.map(numberFormat.format);
 console.log(formatted.join('; '));
 // → "123.456,789; 987.654,321; 456.789,123"
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES Int 1.0', '#sec-11.3.2', 'Intl.NumberFormat.prototype.format')}}{{Spec2('ES Int 1.0')}}Initial definition.
{{SpecName('ES Int 2.0', '#sec-11.3.2', 'Intl.NumberFormat.prototype.format')}}{{Spec2('ES Int 2.0')}}
{{SpecName('ES Int Draft', '#sec-intl.numberformat.prototype.format', 'Intl.NumberFormat.prototype.format')}}{{Spec2('ES Int Draft')}}
- -

Browser compatibility

- -
- - -

{{Compat("javascript.builtins.Intl.NumberFormat.format")}}

-
- -

See also

- -
    -
  • {{jsxref("NumberFormat", "Intl.NumberFormat")}}
  • -
  • {{jsxref("Number.prototype.toLocaleString()")}}
  • -
+``` + +## Especificaciones + +| Specification | Status | Comment | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------- | ------------------- | +| {{SpecName('ES Int 1.0', '#sec-11.3.2', 'Intl.NumberFormat.prototype.format')}} | {{Spec2('ES Int 1.0')}} | Initial definition. | +| {{SpecName('ES Int 2.0', '#sec-11.3.2', 'Intl.NumberFormat.prototype.format')}} | {{Spec2('ES Int 2.0')}} | | +| {{SpecName('ES Int Draft', '#sec-intl.numberformat.prototype.format', 'Intl.NumberFormat.prototype.format')}} | {{Spec2('ES Int Draft')}} | | + +## Browser compatibility + +{{Compat("javascript.builtins.Intl.NumberFormat.format")}} + +## See also + +- {{jsxref("NumberFormat", "Intl.NumberFormat")}} +- {{jsxref("Number.prototype.toLocaleString()")}} diff --git a/files/es/web/javascript/reference/global_objects/isfinite/index.md b/files/es/web/javascript/reference/global_objects/isfinite/index.md index f9229b63a90864..9e15b7645736aa 100644 --- a/files/es/web/javascript/reference/global_objects/isfinite/index.md +++ b/files/es/web/javascript/reference/global_objects/isfinite/index.md @@ -8,63 +8,53 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/isFinite original_slug: Web/JavaScript/Referencia/Objetos_globales/isFinite --- -
- {{jsSidebar("Objects")}}
-

Resumen

-

La función global isFinite() determina si el valor que se le pasa como argumento es un numero finito. Si es necesario, realiza una conversión a un numero al parametro pasado.

-

Sintaxis

-
isFinite(testValue)
-

Parámetros

-
-
- testvalue
-
- Valor a ser evaluado.
-
-

Descripción

-

isFinite es una función de alto nivel y no está asociada a ningún objeto.

-

Puede usar esta función para determinar si un número es un número finito. La función isFinite examina el número de su argumento. Si el argumento es NaN, infinito positivo o infinito negativo, este método devuelve false, de otro modo devuelve true.

-

Ejemplos

-
isFinite(Infinity);    // falso
-isFinite(NaN);         // falso
-isFinite(-Inifinity);  // falso
-
-isFinite(0);           // verdadero
-isFinite(2e64);        // verdadero
-
-isFinite("0");         // verdadero, hubiera sido falso en el caso de usar Number.isFinite("0") que es mas robusta
-

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - -
EspecificacionesEstadoComentarios
ECMAScript 2nd Edition.EstándarDefinición inicial
{{SpecName('ES5.1', '#sec-15.1.2.5', 'isFinite')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-isfinite-number', 'isFinite')}}{{Spec2('ES6')}}
-

Compatibilidad con navegadores

+{{jsSidebar("Objects")}} + +## Resumen + +La función global **`isFinite()`** determina si el valor que se le pasa como argumento es un numero finito. Si es necesario, realiza una conversión a un numero al parametro pasado. + +## Sintaxis + + isFinite(testValue) + +## Parámetros + +- `testvalue` + - : Valor a ser evaluado. + +## Descripción + +`isFinite` es una función de alto nivel y no está asociada a ningún objeto. + +Puede usar esta función para determinar si un número es un número finito. La función `isFinite` examina el número de su argumento. Si el argumento es `NaN`, infinito positivo o infinito negativo, este método devuelve `false`, de otro modo devuelve `true`. + +## Ejemplos + + isFinite(Infinity); // falso + isFinite(NaN); // falso + isFinite(-Inifinity); // falso + + isFinite(0); // verdadero + isFinite(2e64); // verdadero + + isFinite("0"); // verdadero, hubiera sido falso en el caso de usar Number.isFinite("0") que es mas robusta + +## Especificaciones + +| Especificaciones | Estado | Comentarios | +| ------------------------------------------------------------------------ | ------------------------ | ------------------ | +| ECMAScript 2nd Edition. | Estándar | Definición inicial | +| {{SpecName('ES5.1', '#sec-15.1.2.5', 'isFinite')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-isfinite-number', 'isFinite')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores + {{Compat("javascript.builtins.isFinite")}} -

Vea También

- +## Vea También + +- **`Number.isFinite()`** +- **`Number.NaN()`** +- [**`Number.POSITIVE_INFINITY`**](/es/docs/Referencia_de_JavaScript_1.5/Objetos_globales/Number/POSITIVE_INFINITY) +- [**`Number.NEGATIVE_INFINITY`**](/es/docs/Referencia_de_JavaScript_1.5/Objetos_globales/Number/NEGATIVE_INFINITY) diff --git a/files/es/web/javascript/reference/global_objects/isnan/index.md b/files/es/web/javascript/reference/global_objects/isnan/index.md index 410875cfe9906c..f415c89495699f 100644 --- a/files/es/web/javascript/reference/global_objects/isnan/index.md +++ b/files/es/web/javascript/reference/global_objects/isnan/index.md @@ -4,86 +4,56 @@ slug: Web/JavaScript/Reference/Global_Objects/isNaN translation_of: Web/JavaScript/Reference/Global_Objects/isNaN original_slug: Web/JavaScript/Referencia/Objetos_globales/isNaN --- -
{{jsSidebar("Objects")}} -

La función isNaN() determina cuando el valor es {{jsxref("NaN")}} o no. Tenga presente que la coerción dentro de la función isNaN tiene reglas interesantes; tal vez quieras usar de forma alternativa Number.isNaN(), como fue definido en ECMAScript 2015.

+{{jsSidebar("Objects")}} -
{{EmbedInteractiveExample("pages/js/globalprops-isnan.html")}}
-
+La función **`isNaN()`** determina cuando el valor es {{jsxref("NaN")}} o no. Tenga presente que la coerción dentro de la función `isNaN` tiene reglas [interesantes](/es/docs/Web/JavaScript/Referencia/Objetos_globales/isNaN$edit#Description); tal vez quieras usar de forma alternativa **[`Number.isNaN()`](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Number/isNaN)**, como fue definido en ECMAScript 2015. -

Sintaxis

+{{EmbedInteractiveExample("pages/js/globalprops-isnan.html")}} -
isNaN(valor)
+## Sintaxis -

Parámetros

+ isNaN(valor) -
-
valor
-
El valor a probar o evaluar.
-
+### Parámetros -

Valor de retorno

+- **`valor`** + - : El valor a probar o evaluar. -

true si es valor dado es {{jsxref("NaN")}}, de otro modo, false.

+### Valor de retorno -

Descripción

+**`true`** si es valor dado es {{jsxref("NaN")}}, de otro modo, **`false`**. -

isNaN es una función de alto nivel y no está asociada a ningún objeto.

+## Descripción -

isNaN intenta convertir el parámetro pasado a un número. Si el parámetro no se puede convertir, devuelve true; en caso contrario, devuelve false.

+`isNaN` es una función de alto nivel y no está asociada a ningún objeto. -

Esta función es útil ya que el valor {{jsxref("Objetos_globales/NaN", "NaN")}} no puede se probado correctamente con operadores de igualdad. x == NaN y x === NaN son siempre false, sin importar lo que sea x, incluso si x es NaN. Por ejemplo, tanto 1 == NaN como NaN == NaN devuelven false.

+`isNaN` intenta convertir el parámetro pasado a un número. Si el parámetro no se puede convertir, devuelve true; en caso contrario, devuelve false. -

Ejemplos

+Esta función es útil ya que el valor {{jsxref("Objetos_globales/NaN", "NaN")}} no puede se probado correctamente con operadores de igualdad. `x == NaN` y `x === NaN` son siempre false, sin importar lo que sea `x`, incluso si `x` es `NaN`. Por ejemplo, tanto `1 == NaN` como `NaN == NaN` devuelven `false`. -
isNaN(NaN) //devuelve true
+### Ejemplos
+
+```js
+isNaN(NaN) //devuelve true
 isNaN("string") //devuelve true
 isNaN("12") //devuelve false
 isNaN(12) //devuelve false
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial
{{SpecName('ES5.1', '#sec-15.1.2.4', 'isNaN')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-isnan-number', 'isNaN')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-isnan-number', 'isNaN')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegadores

- - - -

{{Compat("javascript.builtins.isNaN")}}

- -

Vea También

- -
    -
  • {{jsxref("Objetos_globales/NaN", "NaN")}}
  • -
  • {{jsxref("Number.isNaN()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------ | ---------------------------- | ------------------ | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial | +| {{SpecName('ES5.1', '#sec-15.1.2.4', 'isNaN')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-isnan-number', 'isNaN')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-isnan-number', 'isNaN')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegadores + +{{Compat("javascript.builtins.isNaN")}} + +### Vea También + +- {{jsxref("Objetos_globales/NaN", "NaN")}} +- {{jsxref("Number.isNaN()")}} diff --git a/files/es/web/javascript/reference/global_objects/json/index.md b/files/es/web/javascript/reference/global_objects/json/index.md index 7bcf7db8fe0ad6..e3689c2bda124a 100644 --- a/files/es/web/javascript/reference/global_objects/json/index.md +++ b/files/es/web/javascript/reference/global_objects/json/index.md @@ -10,173 +10,132 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/JSON original_slug: Web/JavaScript/Referencia/Objetos_globales/JSON --- -
{{JSRef("Objetos_globales", "JSON")}}
- -

Resumen

- -

El objeto JSON contiene métodos para analizar JavaScript Object Notation (JSON) y convertir valores a JSON. No puede ser llamado o construído, y aparte de estas dos propiedades, no tiene funcionalidad interesante por sí mismo.

- -

Descripción

- -

JavaScript Object Notation

- -

JSON es una sintaxis para serializar objetos, arreglos, números, cadenas, booleanos y nulos. Está basado sobre sintaxis JavaScript pero es diferente a ella: algo JavaScript no es JSON, y algo JSON no es JavaScript. Mira también: JSON: The JavaScript subset that isn't.

- - - - - - - - - - - - - - - - - - - - - - - -
Diferencias entre JavaScript y JSON
Tipo JavaScriptDiferencia JSON
Objetos y arreglos -

Los nombres de las propiedades deben tener doble comilla; las comas finales están prohibidas.

-
NúmerosLos ceros a la izquierda están prohibidos; un punto decimal debe ser seguido al menos por un dígito.
Cadenas -

Solo un limitado conjunto de caracteres pueden ser de escape; ciertos caracteres de control estan prohibidos; los caracteres de separador de linea Unicode (U+2028) y el separador de parrafo (U+2029) son permitidos; las cadenas deben estar entre comillas dobles. Mira el siguiente ejemplo donde {{jsxref("JSON.parse")}} funciona bien y un{{jsxref("SyntaxError")}} es generado cuando se evalua el codigo como JavaScript:

- -
-var code = '"\u2028\u2029"';
-JSON.parse(code); // works fine
-eval(code); // fails
-
- -

La sintaxis JSON completa es la siguiente:

- -
JSON = null
-    or true or false
-    or JSONNumber
-    or JSONString
-    or JSONObject
-    or JSONArray
-
-JSONNumber = - PositiveNumber
-          or PositiveNumber
-PositiveNumber = DecimalNumber
-              or DecimalNumber . Digits
-              or DecimalNumber . Digits ExponentPart
-              or DecimalNumber ExponentPart
-DecimalNumber = 0
-             or OneToNine Digits
-ExponentPart = e Exponent
-            or E Exponent
-Exponent = Digits
-        or + Digits
-        or - Digits
-Digits = Digit
-      or Digits Digit
-Digit = 0 through 9
-OneToNine = 1 through 9
-
-JSONString = ""
-          or " StringCharacters "
-StringCharacters = StringCharacter
-                or StringCharacters StringCharacter
-StringCharacter = any character
-                  except " or \ or U+0000 through U+001F
-               or EscapeSequence
-EscapeSequence = \" or \/ or \\ or \b or \f or \n or \r or \t
-              or \u HexDigit HexDigit HexDigit HexDigit
-HexDigit = 0 through 9
-        or A through F
-        or a through f
-
-JSONObject = { }
-          or { Members }
-Members = JSONString : JSON
-       or Members , JSONString : JSON
-
-JSONArray = [ ]
-         or [ ArrayElements ]
-ArrayElements = JSON
-             or ArrayElements , JSON
- -

Espacios en blanco insignificantes pueden estar presentes en cualquier lugar excepto en un JSONNumber (los números no deben contener ningún espacio) o en una JSONString (donde es interpretado como el caracter correspondiente en la cadena, o podría causar un error). Los caracteres de Tabulación (U+0009), de retorno de carro (U+000D), de nueva línea (U+000A), y de espacio (U+0020) son los únicos caracteres de espacios en blanco válidos.

- -

Métodos

- -
-
{{jsxref("JSON.parse()")}}
-
Analiza una cadena de texto JSON, opcionalmente transformando el valor producido y sus propiedades, retornando el valor.
-
{{jsxref("JSON.stringify()")}}
-
Devuelve un string JSON correspondiente al valor especificado, incluyendo opcionalmente ciertas propiedades o reemplazando valores de propiedades de la manera definida por el usuario.
-
- -

Polyfill

- -

El objeto JSON no es soportado por navegadores antiguos. Se puede solucionar esto insertando el siguiente código al inicio del script, permitiendo usar el objeto JSON en navegadores que no soportan su implementación de forma nativa (por ejemplo en Internet Explorer 6).

- -

El siguiente algoritmo es una imitación del objeto JSON nativo:

- -
if (!window.JSON) {
+{{JSRef("Objetos_globales", "JSON")}}
+
+## Resumen
+
+El objeto JSON contiene métodos para analizar [JavaScript Object Notation](http://json.org/) (JSON) y convertir valores a JSON. No puede ser llamado o construído, y aparte de estas dos propiedades, no tiene funcionalidad interesante por sí mismo.
+
+## Descripción
+
+### JavaScript Object Notation
+
+JSON es una sintaxis para serializar objetos, arreglos, números, cadenas, booleanos y nulos. Está basado sobre sintaxis JavaScript pero es diferente a ella: algo JavaScript no es JSON, y algo JSON no es JavaScript. Mira también: [JSON: The JavaScript subset that isn't](http://timelessrepo.com/json-isnt-a-javascript-subset).
+
+| Tipo JavaScript    | Diferencia JSON                                                                                                                                                                                                                                                                                                                                                                                                                                        |
+| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| Objetos y arreglos | Los nombres de las propiedades deben tener doble comilla; las comas finales están prohibidas.                                                                                                                                                                                                                                                                                                                                                          |
+| Números            | Los ceros a la izquierda están prohibidos; un punto decimal debe ser seguido al menos por un dígito.                                                                                                                                                                                                                                                                                                                                                   |
+| Cadenas            | Solo un limitado conjunto de caracteres pueden ser de escape; ciertos caracteres de control estan prohibidos; los caracteres de separador de linea Unicode (U+2028) y el separador de parrafo (U+2029) son permitidos; las cadenas deben estar entre comillas dobles. Mira el siguiente ejemplo donde {{jsxref("JSON.parse")}} funciona bien y un{{jsxref("SyntaxError")}} es generado cuando se evalua el codigo como JavaScript:```js |
+
+var code = '"\u2028\u2029"'; JSON.parse(code); // works fine eval(code); // fails
+
+````|
+
+La sintaxis JSON completa es la siguiente:
+
+    JSON = null
+        or true or false
+        or JSONNumber
+        or JSONString
+        or JSONObject
+        or JSONArray
+
+    JSONNumber = - PositiveNumber
+              or PositiveNumber
+    PositiveNumber = DecimalNumber
+                  or DecimalNumber . Digits
+                  or DecimalNumber . Digits ExponentPart
+                  or DecimalNumber ExponentPart
+    DecimalNumber = 0
+                 or OneToNine Digits
+    ExponentPart = e Exponent
+                or E Exponent
+    Exponent = Digits
+            or + Digits
+            or - Digits
+    Digits = Digit
+          or Digits Digit
+    Digit = 0 through 9
+    OneToNine = 1 through 9
+
+    JSONString = ""
+              or " StringCharacters "
+    StringCharacters = StringCharacter
+                    or StringCharacters StringCharacter
+    StringCharacter = any character
+                      except " or \ or U+0000 through U+001F
+                   or EscapeSequence
+    EscapeSequence = \" or \/ or \\ or \b or \f or \n or \r or \t
+                  or \u HexDigit HexDigit HexDigit HexDigit
+    HexDigit = 0 through 9
+            or A through F
+            or a through f
+
+    JSONObject = { }
+              or { Members }
+    Members = JSONString : JSON
+           or Members , JSONString : JSON
+
+    JSONArray = [ ]
+             or [ ArrayElements ]
+    ArrayElements = JSON
+                 or ArrayElements , JSON
+
+Espacios en blanco insignificantes pueden estar presentes en cualquier lugar excepto en un _JSONNumber_ (los números no deben contener ningún espacio) o en una _JSONString_ (donde es interpretado como el caracter correspondiente en la cadena, o podría causar un error). Los caracteres de Tabulación (U+0009), de retorno de carro (U+000D), de nueva línea (U+000A), y de espacio (U+0020) son los únicos caracteres de espacios en blanco válidos.
+
+## Métodos
+
+*   {{jsxref("JSON.parse()")}}
+    *   : Analiza una cadena de texto JSON, opcionalmente transformando el valor producido y sus propiedades, retornando el valor.
+*   {{jsxref("JSON.stringify()")}}
+    *   : Devuelve un string JSON correspondiente al valor especificado, incluyendo opcionalmente ciertas propiedades o reemplazando valores de propiedades de la manera definida por el usuario.
+
+## Polyfill
+
+El objeto JSON no es soportado por navegadores antiguos. Se puede solucionar esto insertando el siguiente código al inicio del script, permitiendo usar el objeto JSON en navegadores que no soportan su implementación de forma nativa (por ejemplo en Internet Explorer 6).
+
+El siguiente algoritmo es una imitación del objeto JSON nativo:
+
+```js
+if (!window.JSON) {
   window.JSON = {
     parse: function (sJSON) { return eval("(" + sJSON + ")"); },
     stringify: function (vContent) {
       if (vContent instanceof Object) {
         var sOutput = "";
         if (vContent.constructor === Array) {
-          for (var nId = 0; nId < vContent.length; sOutput += this.stringify(vContent[nId]) + ",", nId++);
+          for (var nId = 0; nId < vContent.length; sOutput += this.stringify(vContent[nId]) + ",", nId++);
             return "[" + sOutput.substr(0, sOutput.length - 1) + "]";
         }
         if (vContent.toString !== Object.prototype.toString) {
-          return "\"" + vContent.toString().replace(/"/g, "\\$&") + "\"";
+          return "\"" + vContent.toString().replace(/"/g, "\\$&") + "\"";
         }
         for (var sProp in vContent) {
-          sOutput += "\"" + sProp.replace(/"/g, "\\$&") + "\":" + this.stringify(vContent[sProp]) + ",";
+          sOutput += "\"" + sProp.replace(/"/g, "\\$&") + "\":" + this.stringify(vContent[sProp]) + ",";
         }
         return "{" + sOutput.substr(0, sOutput.length - 1) + "}";
      }
-     return typeof vContent === "string" ? "\"" + vContent.replace(/"/g, "\\$&") + "\"" : String(vContent);
+     return typeof vContent === "string" ? "\"" + vContent.replace(/"/g, "\\$&") + "\"" : String(vContent);
     }
   };
 }
-
- -

Los objectos JSON2 y JSON3 son mas complejos que el objeto JSON ya que manejan polyfills.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES5.1', '#sec-15.12', 'JSON')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-json-object', 'JSON')}}{{Spec2('ES6')}}
- -

Compatibilidad con navegadores

+```` + +Los objectos [JSON2](https://github.com/douglascrockford/JSON-js) y [JSON3](http://bestiejs.github.com/json3) son mas complejos que el objeto JSON ya que manejan [polyfills](http://remysharp.com/2010/10/08/what-is-a-polyfill/). + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------- | ------------------------ | ---------- | +| {{SpecName('ES5.1', '#sec-15.12', 'JSON')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-json-object', 'JSON')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.JSON")}} -

Vea también

+## Vea también - +- [Using native JSON](/es/docs/Web/JavaScript/Guide/Using_native_JSON) +- {{jsxref("Date.prototype.toJSON()")}} diff --git a/files/es/web/javascript/reference/global_objects/json/parse/index.md b/files/es/web/javascript/reference/global_objects/json/parse/index.md index 3b085db2287766..d02cffd8ace4a3 100644 --- a/files/es/web/javascript/reference/global_objects/json/parse/index.md +++ b/files/es/web/javascript/reference/global_objects/json/parse/index.md @@ -10,51 +10,51 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/JSON/parse original_slug: Web/JavaScript/Referencia/Objetos_globales/JSON/parse --- -
{{JSRef("Global_Objects", "JSON")}}
+{{JSRef("Global_Objects", "JSON")}} -

Resumen

+## Resumen -

El método JSON.parse() analiza una cadena de texto como JSON, transformando opcionalmente el valor producido por el análisis.

+El método **`JSON.parse()`** analiza una cadena de texto como JSON, transformando opcionalmente el valor producido por el análisis. -

Sintaxis

+## Sintaxis -
JSON.parse(text[, reviver])
+ JSON.parse(text[, reviver]) -

Parámetros

+### Parámetros -
-
text
-
El texto que se convertirá a JSON. Vea el objeto {{jsxref("JSON")}} para una descripción de la sintaxis JSON.
-
reviver {{optional_inline()}}
-
Si una función, prescribe cómo se transforma el valor producido originalmente por el parsing, antes de retornar.
-
+- `text` + - : El texto que se convertirá a JSON. Vea el objeto {{jsxref("JSON")}} para una descripción de la sintaxis JSON. +- `reviver` {{optional_inline()}} + - : Si una función, prescribe cómo se transforma el valor producido originalmente por el parsing, antes de retornar. -

Returns

+### Returns -

Retorna el objeto que se corresponde con el texto JSON entregado.

+Retorna el objeto que se corresponde con el texto JSON entregado. -

Exceptions

+### Exceptions -

Lanza una excepción {{jsxref("SyntaxError")}} si la cadena a transformar no es un JSON válido.

+Lanza una excepción {{jsxref("SyntaxError")}} si la cadena a transformar no es un JSON válido. -

Ejemplos

+## Ejemplos -

Ejemplo: Usando JSON.parse()

+### Ejemplo: Usando `JSON.parse()` -
JSON.parse('{}');              // {}
+```js
+JSON.parse('{}');              // {}
 JSON.parse('true');            // true
 JSON.parse('"foo"');           // "foo"
 JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
 JSON.parse('null');            // null
-
+``` -

Ejemplo: Usando el parámetro reviver

+### Ejemplo: `Usando el parámetro reviver` -

Si se especifica un reviver, el valor computado por el parsing es transformado antes de retornar. Específicamente, el valor computado, y todas sus propiedades (comenzando con las propiedades más anidadas y siguiendo al propio valor original), son individualmente ejecutados a través del reviver, el cual es llamado con el objeto que contiene la propiedad que está siendo procesada como this y con el nombre de la propiedad como cadena y el valor de la propiedad como argumentos. Si la función reviver retorna undefined (o no retorna algún valor, por ejemplo: si la ejecución cae el final de la función), la propiedad es eliminada del objeto. De otra manera, la propiedad es redefinidad para ser el valor de retorno.

+Si se especifica un reviver, el valor computado por el parsing _es transformado_ antes de retornar. Específicamente, el valor computado, y todas sus propiedades (comenzando con las propiedades más anidadas y siguiendo al propio valor original), son individualmente ejecutados a través del `reviver`, el cual es llamado con el objeto que contiene la propiedad que está siendo procesada como `this` y con el nombre de la propiedad como cadena y el valor de la propiedad como argumentos. Si la función `reviver` retorna `undefined` (o no retorna algún valor, por ejemplo: si la ejecución cae el final de la función), la propiedad es eliminada del objeto. De otra manera, la propiedad es redefinidad para ser el valor de retorno. -

El reviver es llamada último con la cadena vacía y el valor más alto para permitir la transformación del valor más alto. Asegúrese de manejar este caso adecuadamente, por lo general mediante la devolución del valor proporcionado, o JSON.parse will retorna undefined.

+El `reviver` es llamada último con la cadena vacía y el valor más alto para permitir la transformación del valor más alto. Asegúrese de manejar este caso adecuadamente, por lo general mediante la devolución del valor proporcionado, o `JSON.parse` will retorna `undefined`. -
JSON.parse('{"p": 5}', function (k, v) {
+```js
+JSON.parse('{"p": 5}', function (k, v) {
     if(k === "") return v;     // if topmost value, return it,
     return v * 2;              // else return v * 2.
 });                            // { p: 10 }
@@ -71,50 +71,28 @@ JSON.parse('{"1": 1, "2": 2,"3": {"4": 4, "5": {"6": 6}}}', function (k, v) {
 // 5
 // 3
 // ""
-
- -

JSON.parse() no admite comas finales

- -
// ambos lanzarán un SyntaxError
-JSON.parse('[1, 2, 3, 4, ]');
-JSON.parse('{"foo" : 1, }');
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES5.1', '#sec-15.12.2', 'JSON.parse')}}{{Spec2('ES5.1')}}Definición inicial.
- Implementado en JavaScript 1.7.
{{SpecName('ES6', '#sec-json.parse', 'JSON.parse')}}{{Spec2('ES6')}} -

-
{{SpecName('ESDraft', '#sec-json.parse', 'JSON.parse')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegadores

+``` + +### `JSON.parse()` no admite comas finales + +```js example-bad example-bad +// ambos lanzarán un SyntaxError +JSON.parse('[1, 2, 3, 4, ]'); +JSON.parse('{"foo" : 1, }'); +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.12.2', 'JSON.parse')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementado en JavaScript 1.7. | +| {{SpecName('ES6', '#sec-json.parse', 'JSON.parse')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-json.parse', 'JSON.parse')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegadores {{Compat("javascript.builtins.JSON.parse")}} -

Véase también

+## Véase también - +- [Utilizando](/es/docs/Web/JavaScript/Guide/Using_native_JSON) [JSON nativo](/es/docs/Web/JavaScript/Guide/Using_native_JSON) diff --git a/files/es/web/javascript/reference/global_objects/json/stringify/index.md b/files/es/web/javascript/reference/global_objects/json/stringify/index.md index 2c3c246bae2e9b..7b8b7dc346d20e 100644 --- a/files/es/web/javascript/reference/global_objects/json/stringify/index.md +++ b/files/es/web/javascript/reference/global_objects/json/stringify/index.md @@ -9,54 +9,47 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/JSON/stringify original_slug: Web/JavaScript/Referencia/Objetos_globales/JSON/stringify --- -

{{JSRef}}

+{{JSRef}} -

El método JSON.stringify() convierte un objeto o valor de JavaScript en una cadena de texto JSON, opcionalmente reemplaza valores si se indica una función de reemplazo, o si se especifican las propiedades mediante un array de reemplazo.

+El método **`JSON.stringify()`** convierte un objeto o valor de JavaScript en una cadena de texto JSON, opcionalmente reemplaza valores si se indica una función de reemplazo, o si se especifican las propiedades mediante un array de reemplazo. -
{{EmbedInteractiveExample("pages/js/json-stringify.html")}}
+{{EmbedInteractiveExample("pages/js/json-stringify.html")}} -

Sintaxis

+## Sintaxis -
JSON.stringify(value[, replacer[, space]])
+ JSON.stringify(value[, replacer[, space]]) -

Parámetros

+### Parámetros -
-
value
-
El valor que será convertido a una cadena JSON.
-
replacer{{Optional_Inline}}
-
Una función que altera el comportamiento del proceso de conversión a cadena de texto, o un array de objetos {{JSxRef("String")}} o {{JSxRef("Number")}} que representan una lista de elementos válidos que se incluyen en la cadena JSON. Si este valor es {{JSxRef("null")}} o no se define, todas las propiedades del objeto son incluidas en la cadena de texto JSON resultante.
-
space{{Optional_Inline}}
-
Un objeto de tipo {{JSxRef("String")}} o {{JSxRef("Number")}} que se utiliza para insertar un espacio en blanco dentro de la cadena de salida JSON para mejorar su legibilidad. -

Si es de tipo Number, indica el número de espacios a usar como espacios en blanco; este número está limitado se limita a 10 (si es mayor, el valor es sólo 10). Los valores inferiores a 1 indican que no se deben utilizar espacios.

+- `value` + - : El valor que será convertido a una cadena JSON. +- `replacer`{{Optional_Inline}} + - : Una función que altera el comportamiento del proceso de conversión a cadena de texto, o un array de objetos {{JSxRef("String")}} o {{JSxRef("Number")}} que representan una lista de elementos válidos que se incluyen en la cadena JSON. Si este valor es {{JSxRef("null")}} o no se define, todas las propiedades del objeto son incluidas en la cadena de texto JSON resultante. +- `space`{{Optional_Inline}} + - : Un objeto de tipo {{JSxRef("String")}} o {{JSxRef("Number")}} que se utiliza para insertar un espacio en blanco dentro de la cadena de salida JSON para mejorar su legibilidad.Si es de tipo `Number`, indica el número de espacios a usar como espacios en blanco; este número está limitado se limita a 10 (si es mayor, el valor es sólo `10`). Los valores inferiores a 1 indican que no se deben utilizar espacios.Si es de tipo `String`, la cadena de texto (o sus 10 primeros caracteres, si es mayor) se utiliza como espacios en blanco. Si este parámetro no se define o es {{JSxRef("null")}}, no se utilizará ningún espacio en blanco. -

Si es de tipo String, la cadena de texto (o sus 10 primeros caracteres, si es mayor) se utiliza como espacios en blanco. Si este parámetro no se define o es {{JSxRef("null")}}, no se utilizará ningún espacio en blanco.

-
-
+### Valor devuelto -

Valor devuelto

+Una cadena de texto JSON que representa el valor dado. -

Una cadena de texto JSON que representa el valor dado.

+### Excepciones -

Excepciones

+Lanza una excepción {{JSxRef("TypeError")}} ("cyclic object value") cuando encuentra una referencia circular. -

Lanza una excepción {{JSxRef("TypeError")}} ("cyclic object value") cuando encuentra una referencia circular.

+## Descripción -

Descripción

+`JSON.stringify` convierte un valor a notación JSON representándolo: -

JSON.stringify convierte un valor a notación JSON representándolo:

+- Si el valor tiene un método [toJSON()](), es responsable de definir qué será serializado. +- Los objetos {{JSxRef("Boolean")}}, {{JSxRef("Number")}}, and {{JSxRef("String")}} se convierten a sus valores primitivos, de acuerdo con la conversión semántica tradicional. +- Si durante la conversión se encuentra un {{JSxRef("undefined")}}, una {{JSxRef("Function")}}, o un {{JSxRef("Symbol")}} se omite (cuando se encuentra en un objeto) o se censura a {{JSxRef("null")}} (cuando se encuentra en un array). `JSON.stringify()` puede devolver `undefined` cuando se pasan valores "puros" como `JSON.stringify(function(){}`) o `JSON.stringify(undefined)`. +- Todas las propiedades que utilicen {{JSxRef("Symbol")}} en los nombres de la clave se ignoran por completo, incluso si utilizan una función `replacer`. +- Las instancias de {{JSxRef("Date")}} implementan la función `toJSON()` devolviendo una cadena de texto (igual que `date.toISOString()`). Por lo que son tratadas como strings. +- Los números {{JSxRef("Infinity")}} y {{JSxRef("NaN")}}, así como el valor {{JSxRef("null")}}, se consideran `null`. +- El resto de instancias de {{JSxRef("Object")}} (incluyendo {{JSxRef("Map")}}, {{JSxRef("Set")}}, {{JSxRef("WeakMap")}}, y {{JSxRef("WeakSet")}}) sólo tendrán serializadas sus propiedades enumerables. -
    -
  • Si el valor tiene un método toJSON(), es responsable de definir qué será serializado.
  • -
  • Los objetos {{JSxRef("Boolean")}}, {{JSxRef("Number")}}, and {{JSxRef("String")}} se convierten a sus valores primitivos, de acuerdo con la conversión semántica tradicional.
  • -
  • Si durante la conversión se encuentra un {{JSxRef("undefined")}}, una {{JSxRef("Function")}}, o un {{JSxRef("Symbol")}} se omite (cuando se encuentra en un objeto) o se censura a {{JSxRef("null")}} (cuando se encuentra en un array). JSON.stringify() puede devolver undefined cuando se pasan valores "puros" como JSON.stringify(function(){}) o JSON.stringify(undefined).
  • -
  • Todas las propiedades que utilicen {{JSxRef("Symbol")}} en los nombres de la clave se ignoran por completo, incluso si utilizan una función replacer.
  • -
  • Las instancias de {{JSxRef("Date")}} implementan la función toJSON() devolviendo una cadena de texto (igual que date.toISOString()). Por lo que son tratadas como strings.
  • -
  • Los números {{JSxRef("Infinity")}} y {{JSxRef("NaN")}}, así como el valor {{JSxRef("null")}}, se consideran null.
  • -
  • El resto de instancias de {{JSxRef("Object")}} (incluyendo {{JSxRef("Map")}}, {{JSxRef("Set")}}, {{JSxRef("WeakMap")}}, y {{JSxRef("WeakSet")}}) sólo tendrán serializadas sus propiedades enumerables.
  • -
- -
JSON.stringify({});                    // '{}'
+```js
+JSON.stringify({});                    // '{}'
 JSON.stringify(true);                  // 'true'
 JSON.stringify('foo');                 // '"foo"'
 JSON.stringify([1, 'false', false]);   // '[1,"false",false]'
@@ -113,154 +106,135 @@ JSON.stringify({ [Symbol.for('foo')]: 'foo' }, function(k, v) {
 // Propiedades no enumerables:
 JSON.stringify( Object.create(null, { x: { value: 'x', enumerable: false }, y: { value: 'y', enumerable: true } }) );
 // '{"y":"y"}'
-
+``` -

El parámetro replacer

+### El parámetro `replacer` -

El parámetro replacer (de reemplazo) puede ser tanto una función como o un array.

+El parámetro `replacer` (de reemplazo) puede ser tanto una función como o un array. -

Como una función toma dos parámetros: el valor y la clave que van a ser procesados. El objeto al cual pertenece la clave representa el parametro this del reemplazo.

+**Como una función** toma dos parámetros: el _valor_ y la _clave_ que van a ser procesados. El objeto al cual pertenece la clave representa el parametro this del reemplazo. -

Inicialmente es llamado con una clave vacía y representa el objeto que se va a procesar, y solo después es llamado por cada propiedad en el objeto o array que se va a procesar.

+Inicialmente es llamado con una clave vacía y representa el objeto que se va a procesar, y solo después es llamado por cada propiedad en el objeto o array que se va a procesar. -

Devuelve el valor que se va a agregar a la cadena JSON, de la siguiente manera:

+Devuelve el valor que se va a agregar a la cadena JSON, de la siguiente manera: -
    -
  • Si se devuelve un número, la cadena correspondiente es usada como el valor de la propiedad cuando se agrega a la cadena JSON.
  • -
  • Si se devuelve una cadena, esta es usuada cono el valor de la propiedad cuando se agrega a la cadena JSON.
  • -
  • Si se devuelve un Boolean, true o false son usados como el valor de la propiedad cuando se agrega a la cadena JSON.
  • -
  • Si se devuelve algún otro objeto, este es recursivamente procesado en una cadena JSON llamando a la función de reemplazo para cada propiedad, amenos que el objeto sea una función, en tal caso nada se agrega a la cadena JSON.
  • -
  • Si se devuelve undefined, la propiedad no se incluye en la salida de la cadena JSON.
  • -
+- Si se devuelve un número, la cadena correspondiente es usada como el valor de la propiedad cuando se agrega a la cadena JSON. +- Si se devuelve una cadena, esta es usuada cono el valor de la propiedad cuando se agrega a la cadena JSON. +- Si se devuelve un Boolean, true o false son usados como el valor de la propiedad cuando se agrega a la cadena JSON. +- Si se devuelve algún otro objeto, este es recursivamente procesado en una cadena JSON llamando a la función de reemplazo para cada propiedad, amenos que el objeto sea una función, en tal caso nada se agrega a la cadena JSON. +- Si se devuelve undefined, la propiedad no se incluye en la salida de la cadena JSON. -
Nota: No se puede usar la función de reemplazo para borrar los valores de un array. Si se devuelve undefined o una función, entonces se usara null en su lugar.
+> **Nota:** No se puede usar la función de reemplazo para borrar los valores de un array. Si se devuelve undefined o una función, entonces se usara null en su lugar. -

Ejemplo con una función

+#### Ejemplo con una función -
function replacer(key, value) {
-  // Filtrando propiedades 
-  if (typeof value === "string") {
-    return undefined;
-  }
-  return value;
-}
+```js
+function replacer(key, value) {
+  // Filtrando propiedades
+  if (typeof value === "string") {
+    return undefined;
+  }
+  return value;
+}
 
-var foo = {foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7};
-var jsonString = JSON.stringify(foo, replacer);
+var foo = {foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7};
+var jsonString = JSON.stringify(foo, replacer);
 // '{"week":45, "month":7}'
-
+``` -

El resultado en una cadena JSON sería: {"week":45,"month":7}.

+El resultado en una cadena JSON sería: `{"week":45,"month":7}`. -

Ejemplo con un array

+Ejemplo con un array -

Si el reemplazo es un array, los valores indican los nombres de las propiedades del objeto que se va a incluir en la cadena JSON resultado.

+Si el reemplazo es un array, los valores indican los nombres de las propiedades del objeto que se va a incluir en la cadena JSON resultado. -
JSON.stringify(foo, ['week', 'month']);  
-// '{"week":45,"month":7}', sólo mantiene las propiedades de "week" y de "month"
-
+```js +JSON.stringify(foo, ['week', 'month']); +// '{"week":45,"month":7}', sólo mantiene las propiedades de "week" y de "month" +``` -

Argumento space

+### Argumento `space` -

Este argumento puede ser empleado para controlar el espaciado en la cadena final. Si es un número, los niveles sucesivos del proceso serán identados cada uno por tantos espacios como se indique (hasta 10). Si es una cadena, serán identados con dicha cadena (o los primeros diez caracteres de la misma).

+Este argumento puede ser empleado para controlar el espaciado en la cadena final. Si es un número, los niveles sucesivos del proceso serán identados cada uno por tantos espacios como se indique (hasta 10). Si es una cadena, serán identados con dicha cadena (o los primeros diez caracteres de la misma). -
JSON.stringify({ a: 2 }, null, ' ');
+```js
+JSON.stringify({ a: 2 }, null, ' ');
 // regresa la cadena de texto:
 // '{
 //  "a": 2
-// }'
+// }' +``` -

Usar el carácter tabulador simula la apariencia de impresión:

+Usar el carácter tabulador simula la apariencia de impresión: -
JSON.stringify({ uno: 1, dos : 2 }, null, '\t')
+```js
+JSON.stringify({ uno: 1, dos : 2 }, null, '\t')
 // devuelve el string:
 // '{            \
 //     "uno": 1, \
 //     "dos": 2  \
-// }' 
+// }' +``` -

Comportamiento toJSON()

+### Comportamiento toJSON() -

Si un objeto que sera estringificado tiene una propiedad llamada toJSON donde su valor es una función, entonces el método toJSON modifica el comportamiento de la estringificación JSON: en lugar del objeto que esta siendo serializado, el valor retornado por el método toJSON será serializado cuando el mismo sea llamado. Por ejemplo:

+Si un objeto que sera estringificado tiene una propiedad llamada toJSON donde su valor es una función, entonces el método toJSON modifica el comportamiento de la estringificación JSON: en lugar del objeto que esta siendo serializado, el valor retornado por el método toJSON será serializado cuando el mismo sea llamado. Por ejemplo: -
var obj = {
+```js
+var obj = {
   foo: 'foo',
   toJSON: function () {
     return 'bar';
   }
 };
-var json = JSON.stringify({x: obj}); // '{"x":"bar"}'.
-
- -

Ejemplo de como usar JSON.stringify() con localStorage

- -

En dado caso en el cual se requiera que un objeto creado por el usuario y al cual se le permita ser restaurado incluso cuando el navegador ha sido cerrado, el siguiente ejemplo es un modelo de la aplicabilidad del metodo JSON. stringify().

- -
-

Las funciones no son un tipo de dato valido por lo cual estas no funcionaran. Algunos objetos como tipo DATE, se convertiran a cadenas de texto despues de ejecutar JSON.parse().

-
- -
// Creando un ejemplo de JSON
-var session = {
-  'screens': [],
-  'state': true
-};
-session.screens.push({ 'name': 'screenA', 'width': 450, 'height': 250 });
-session.screens.push({ 'name': 'screenB', 'width': 650, 'height': 350 });
-session.screens.push({ 'name': 'screenC', 'width': 750, 'height': 120 });
-session.screens.push({ 'name': 'screenD', 'width': 250, 'height': 60 });
-session.screens.push({ 'name': 'screenE', 'width': 390, 'height': 120 });
-session.screens.push({ 'name': 'screenF', 'width': 1240, 'height': 650 });
-
+var json = JSON.stringify({x: obj}); // '{"x":"bar"}'.
+```
+
+### Ejemplo de como usar `JSON.stringify()` con `localStorage`
+
+En dado caso en el cual se requiera que un objeto creado por el usuario y al cual se le permita ser restaurado incluso cuando el navegador ha sido cerrado, el siguiente ejemplo es un modelo de la aplicabilidad del metodo JSON. stringify().
+
+> **Advertencia:** Las funciones no son un tipo de dato valido por lo cual estas no funcionaran. Algunos objetos como tipo DATE, se convertiran a cadenas de texto despues de ejecutar JSON.parse().
+
+```js
+// Creando un ejemplo de JSON
+var session = {
+  'screens': [],
+  'state': true
+};
+session.screens.push({ 'name': 'screenA', 'width': 450, 'height': 250 });
+session.screens.push({ 'name': 'screenB', 'width': 650, 'height': 350 });
+session.screens.push({ 'name': 'screenC', 'width': 750, 'height': 120 });
+session.screens.push({ 'name': 'screenD', 'width': 250, 'height': 60 });
+session.screens.push({ 'name': 'screenE', 'width': 390, 'height': 120 });
+session.screens.push({ 'name': 'screenF', 'width': 1240, 'height': 650 });
+
 // Convirte el JSON string con JSON.stringify()
-// entonces guarda con localStorage con el nombre de la sesión
-localStorage.setItem('session', JSON.stringify(session));
-
+// entonces guarda con localStorage con el nombre de la sesión
+localStorage.setItem('session', JSON.stringify(session));
+
 // Ejemplo de como transformar el String generado usando
 // JSON.stringify() y guardándolo en localStorage como objeto JSON otra vez
-var restoredSession = JSON.parse(localStorage.getItem('session'));
-
+var restoredSession = JSON.parse(localStorage.getItem('session'));
+
 // Ahora la variable restoredSession contiene el objeto que fue guardado
 // en localStorage
-console.log(restoredSession);
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES5.1', '#sec-15.12.3', 'JSON.stringify')}}{{Spec2('ES5.1')}}Definición incial.
- Implementada en JavaScript 1.7.
{{SpecName('ES6', '#sec-json.stringify', 'JSON.stringify')}}{{Spec2('ES6')}} -

-
{{SpecName('ESDraft', '#sec-json.stringify', 'JSON.stringify')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -

{{Compat("javascript.builtins.JSON.stringify")}}

- -

Ver también

- -
    -
  • {{JSxRef("JSON.parse()")}}
  • -
  • cycle.js – Introduces two functions: JSON.decycle and JSON.retrocycle. These allow encoding and decoding of cyclical structures and DAGs into an extended and retrocompatible JSON format.
  • -
+console.log(restoredSession); +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------ | ---------------------------- | -------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.12.3', 'JSON.stringify')}} | {{Spec2('ES5.1')}} | Definición incial. Implementada en JavaScript 1.7. | +| {{SpecName('ES6', '#sec-json.stringify', 'JSON.stringify')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-json.stringify', 'JSON.stringify')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.JSON.stringify")}} + +## Ver también + +- {{JSxRef("JSON.parse()")}} +- [cycle.js](https://github.com/douglascrockford/JSON-js/blob/master/cycle.js) – Introduces two functions: `JSON.decycle` and `JSON.retrocycle`. These allow encoding and decoding of cyclical structures and DAGs into an extended and retrocompatible JSON format. diff --git a/files/es/web/javascript/reference/global_objects/math/acos/index.md b/files/es/web/javascript/reference/global_objects/math/acos/index.md index e4965539dcf2cc..0dc1ebdf2f7658 100644 --- a/files/es/web/javascript/reference/global_objects/math/acos/index.md +++ b/files/es/web/javascript/reference/global_objects/math/acos/index.md @@ -9,90 +9,64 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/acos original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/acos --- -
{{JSRef}}
+{{JSRef}} -

La función Math.acos() devuelve el arco coseno (en radianes) de un número que es

+La función **`Math.acos()`** devuelve el arco coseno (en radianes) de un número que es -

x[-1;1],Math.acos(x)=arccos(x)= the unique y[0;π]such thatcos(y)=x\forall x \in [{-1};1],\;\mathtt{\operatorname{Math.acos}(x)} = \arccos(x) = \text{ the unique } \; y \in [0; \pi] \, \text{such that} \; \cos(y) = x

+x[-1;1],Math.acos(x)=arccos(x)= the unique y[0;π]such thatcos(y)=x\forall x \in [{-1};1],\;\mathtt{\operatorname{Math.acos}(x)} = \arccos(x) = \text{ the unique } \; y \in [0; \pi] \, \text{such that} \; \cos(y) = x -

Sintaxis

+## Sintaxis -
Math.acos(x)
+ Math.acos(x) -

Parámetros

+### Parámetros -
-
x
-
Un número.
-
+- `x` + - : Un número. -

Valor devuelto

+### Valor devuelto -

El arco coseno (en radianes) de un número dado si se encuentra entre -1 y 1; de otro modo, {{jsxref("NaN")}}.

+El arco coseno (en radianes) de un número dado si se encuentra entre **-1** y **1**; de otro modo, {{jsxref("NaN")}}. -

Descripción

+## Descripción -

El método Math.acos() devuelve un valor numérico entre 0 y π radianes para x entre -1 y 1. Si el valor de x está fuera de este rango, devuelve {{jsxref("NaN")}}.

+El método `Math.acos()` devuelve un valor numérico entre 0 y π radianes para `x` entre -1 y 1. Si el valor de `x` está fuera de este rango, devuelve {{jsxref("NaN")}}. -

Debido a que acos() es un método estático de Math, siempre debe usarse como Math.acos(), en vez de como un método de un objeto Math creado (Math no es un constructor).

+Debido a que `acos()` es un método estático de `Math`, siempre debe usarse como `Math.acos()`, en vez de como un método de un objeto `Math` creado (`Math` no es un constructor). -

Ejemplos

+## Ejemplos -

Usando Math.acos()

+### Usando `Math.acos()` -
Math.acos(-2);  // NaN
+```js
+Math.acos(-2);  // NaN
 Math.acos(-1);  // 3.141592653589793
 Math.acos(0);   // 1.5707963267948966
 Math.acos(0.5); // 1.0471975511965979
 Math.acos(1);   // 0
 Math.acos(2);   // NaN
-
- -

Para valores menores que -1 o mayores que 1, Math.acos() devuelve {{jsxref("NaN")}}.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.2', 'Math.acos')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.acos', 'Math.acos')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.acos', 'Math.acos')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegador

- -

{{Compat("javascript.builtins.Math.acos")}}

- -

Ver también

- -
    -
  • {{jsxref("Math.asin()")}}
  • -
  • {{jsxref("Math.atan()")}}
  • -
  • {{jsxref("Math.atan2()")}}
  • -
  • {{jsxref("Math.cos()")}}
  • -
  • {{jsxref("Math.sin()")}}
  • -
  • {{jsxref("Math.tan()")}}
  • -
+``` + +Para valores menores que -1 o mayores que 1, `Math.acos()` devuelve {{jsxref("NaN")}}. + +## Especificaciones + +| Especificación | Estado | Comentarios | +| ------------------------------------------------------------------------ | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.2.2', 'Math.acos')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.acos', 'Math.acos')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-math.acos', 'Math.acos')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegador + +{{Compat("javascript.builtins.Math.acos")}} + +## Ver también + +- {{jsxref("Math.asin()")}} +- {{jsxref("Math.atan()")}} +- {{jsxref("Math.atan2()")}} +- {{jsxref("Math.cos()")}} +- {{jsxref("Math.sin()")}} +- {{jsxref("Math.tan()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/acosh/index.md b/files/es/web/javascript/reference/global_objects/math/acosh/index.md index d682ba8c526964..7e847a82cc5633 100644 --- a/files/es/web/javascript/reference/global_objects/math/acosh/index.md +++ b/files/es/web/javascript/reference/global_objects/math/acosh/index.md @@ -9,87 +9,68 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/acosh original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/acosh --- -
{{JSRef}}
+{{JSRef}} -

La función Math.acosh() retorna el arco coseno hiperbólico de un número que es:

+La función **`Math.acosh()`** retorna el arco coseno hiperbólico de un número que es: -

Para todo x mayor ó igual a 1,se cumple que : la funcion Math.acosh(x) = arcosh(x) = al único y mayor ó igual a 0 ; tal que; cosh(y) = x

+Para todo x mayor ó igual a 1,se cumple que : la funcion Math.acosh(x) = arcosh(x) = al único y mayor ó igual a 0 ; tal que; cosh(y) = x -

Sintaxis

+## Sintaxis -
Math.acosh(x)
+ Math.acosh(x) -

Parámetros

+### Parámetros -
-
x
-
Un número.
-
+- `x` + - : Un número. -

Valor retornado

+### Valor retornado -

El arco coseno hiperbólico del número dado. Si el número es menor que 1, {{jsxref("NaN")}}.

+El arco coseno hiperbólico del número dado. Si el número es menor que 1, {{jsxref("NaN")}}. -

Descripción

+## Descripción -

Como acosh() es un método estático de Math, siempre debe ser usado como Math.acosh(), en vez de como un método de un objeto Math creado (Math no es constructor).

+Como `acosh()` es un método estático de `Math`, siempre debe ser usado como `Math.acosh()`, en vez de como un método de un objeto `Math` creado (`Math` no es constructor). -

Ejemplos

+## Ejemplos -

Utilizando Math.acosh()

+### Utilizando `Math.acosh()` -
Math.acosh(-1);  // NaN
+```js
+Math.acosh(-1);  // NaN
 Math.acosh(0);   // NaN
 Math.acosh(0.5); // NaN
 Math.acosh(1);   // 0
 Math.acosh(2);   // 1.3169578969248166
-
+``` -

Para valores menores que 1 Math.acosh() retorna {{jsxref("NaN")}}.

+Para valores menores que 1 `Math.acosh()` retorna {{jsxref("NaN")}}. -

Polyfill

+## Polyfill -

Para todo x1x mayor ó igual a 1, se tiene que el arcosh(x) = ln(x + la raiz cuadrada de(x cuadrado - 1)) y esto puede ser emulado con la siguiente funcion:

+Para todo x1x mayor ó igual a 1, se tiene que el arcosh(x) = ln(x + la raiz cuadrada de(x cuadrado - 1)) y esto puede ser emulado con la siguiente funcion: -
Math.acosh = Math.acosh || function(x) {
+```js
+Math.acosh = Math.acosh || function(x) {
   return Math.log(x + Math.sqrt(x * x - 1));
 };
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónStatusComentario
{{SpecName('ES6', '#sec-math.acosh', 'Math.acosh')}}{{Spec2('ES6')}}Definición inicial.
{{ SpecName('ESDraft', '#sec-math.acosh', 'Math.acosh')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegador

- - - -

{{Compat("javascript.builtins.Math.acosh")}}

- -

Ver también

- -
    -
  • {{jsxref("Math.asinh()")}}
  • -
  • {{jsxref("Math.atanh()")}}
  • -
  • {{jsxref("Math.cosh()")}}
  • -
  • {{jsxref("Math.sinh()")}}
  • -
  • {{jsxref("Math.tanh()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Status | Comentario | +| ---------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-math.acosh', 'Math.acosh')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{ SpecName('ESDraft', '#sec-math.acosh', 'Math.acosh')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegador + +{{Compat("javascript.builtins.Math.acosh")}} + +## Ver también + +- {{jsxref("Math.asinh()")}} +- {{jsxref("Math.atanh()")}} +- {{jsxref("Math.cosh()")}} +- {{jsxref("Math.sinh()")}} +- {{jsxref("Math.tanh()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/asin/index.md b/files/es/web/javascript/reference/global_objects/math/asin/index.md index 4afb28a8733631..384724d407ec47 100644 --- a/files/es/web/javascript/reference/global_objects/math/asin/index.md +++ b/files/es/web/javascript/reference/global_objects/math/asin/index.md @@ -4,90 +4,64 @@ slug: Web/JavaScript/Reference/Global_Objects/Math/asin translation_of: Web/JavaScript/Reference/Global_Objects/Math/asin original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/asin --- -
{{JSRef}}
+{{JSRef}} -

La Funcion Math.asin() retorna El arco seno (en radianes) de un número, eso es.

+La Funcion **`Math.asin()`** retorna El arco seno (en radianes) de un número, eso es. -

x[-1;1],Math.asin(x)=arcsin(x)= the unique y[-π2;π2]such thatsin(y)=x\forall x \in [{-1};1],\;\mathtt{\operatorname{Math.asin}(x)} = \arcsin(x) = \text{ the unique } \; y \in \left[-\frac{\pi}{2}; \frac{\pi}{2}\right] \, \text{such that} \; \sin(y) = x

+x[-1;1],Math.asin(x)=arcsin(x)= the unique y[-π2;π2]such thatsin(y)=x\forall x \in [{-1};1],\;\mathtt{\operatorname{Math.asin}(x)} = \arcsin(x) = \text{ the unique } \; y \in \left[-\frac{\pi}{2}; \frac{\pi}{2}\right] \, \text{such that} \; \sin(y) = x -

Syntax

+## Syntax -
Math.asin(x)
+ Math.asin(x) -

Parametros

+### Parametros -
-
x
-
Un Numero.
-
+- `x` + - : Un Numero. -

Return value

+### Return value -

The arcsine (in radians) of the given number if it's between -1 and 1; otherwise, {{jsxref("NaN")}}.

+The arcsine (in radians) of the given number if it's between **-1** and **1**; otherwise, {{jsxref("NaN")}}. -

Descripcion

+## Descripcion -

The Math.asin() method returns a numeric value between -π2-\frac{\pi}{2} and π2\frac{\pi}{2} radians for x between -1 and 1. If the value of x is outside this range, it returns {{jsxref("NaN")}}.

+The `Math.asin()` method returns a numeric value between -π2-\frac{\pi}{2} and π2\frac{\pi}{2} radians for `x` between -1 and 1. If the value of `x` is outside this range, it returns {{jsxref("NaN")}}. -

Because asin() is a static method of Math, you always use it as Math.asin(), rather than as a method of a Math object you created (Math is not a constructor).

+Because `asin()` is a static method of `Math`, you always use it as `Math.asin()`, rather than as a method of a `Math` object you created (`Math` is not a constructor). -

Ejemplos

+## Ejemplos -

Usando Math.asin()

+### Usando `Math.asin()` -
Math.asin(-2);  // NaN
+```js
+Math.asin(-2);  // NaN
 Math.asin(-1);  // -1.5707963267948966 (-pi/2)
 Math.asin(0);   // 0
 Math.asin(0.5); // 0.5235987755982989
 Math.asin(1);   // 1.5707963267948966 (pi/2)
 Math.asin(2);   // NaN
-
- -

For values less than -1 or greater than 1, Math.asin() returns {{jsxref("NaN")}}.

- -

Espesificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspesificacionEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition. Implemented in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.3', 'Math.asin')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.asin', 'Math.asin')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.asin', 'Math.asin')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con Navegadores

+``` + +For values less than -1 or greater than 1, `Math.asin()` returns {{jsxref("NaN")}}. + +## Espesificaciones + +| Espesificacion | Estado | Comentario | +| ------------------------------------------------------------------------ | ---------------------------- | -------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Initial definition. Implemented in JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.2.3', 'Math.asin')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.asin', 'Math.asin')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-math.asin', 'Math.asin')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con Navegadores {{Compat("javascript.builtins.Math.asin")}} -

Ver Mas

+## Ver Mas -
    -
  • {{jsxref("Math.acos()")}}
  • -
  • {{jsxref("Math.atan()")}}
  • -
  • {{jsxref("Math.atan2()")}}
  • -
  • {{jsxref("Math.cos()")}}
  • -
  • {{jsxref("Math.sin()")}}
  • -
  • {{jsxref("Math.tan()")}}
  • -
+- {{jsxref("Math.acos()")}} +- {{jsxref("Math.atan()")}} +- {{jsxref("Math.atan2()")}} +- {{jsxref("Math.cos()")}} +- {{jsxref("Math.sin()")}} +- {{jsxref("Math.tan()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/asinh/index.md b/files/es/web/javascript/reference/global_objects/math/asinh/index.md index b992032e373cb3..f95d794e815bae 100644 --- a/files/es/web/javascript/reference/global_objects/math/asinh/index.md +++ b/files/es/web/javascript/reference/global_objects/math/asinh/index.md @@ -4,88 +4,69 @@ slug: Web/JavaScript/Reference/Global_Objects/Math/asinh translation_of: Web/JavaScript/Reference/Global_Objects/Math/asinh original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/asinh --- -
{{JSRef}}
+{{JSRef}} -

La función Math.asinh() retorna el arcoseno hyperbólico de un número, es decir

+La función **`Math.asinh()`** retorna el arcoseno hyperbólico de un número, es decir -

Math.asinh(x)=arsinh(x)= the unique ysuch thatsinh(y)=x\mathtt{\operatorname{Math.asinh}(x)} = \operatorname{arsinh}(x) = \text{ the unique } \; y \; \text{such that} \; \sinh(y) = x

+Math.asinh(x)=arsinh(x)= the unique ysuch thatsinh(y)=x\mathtt{\operatorname{Math.asinh}(x)} = \operatorname{arsinh}(x) = \text{ the unique } \; y \; \text{such that} \; \sinh(y) = x -

Sintáxis

+## Sintáxis -
Math.asinh(x)
+ Math.asinh(x) -

Parámetros

+### Parámetros -
-
x
-
Un número.
-
+- `x` + - : Un número. -

Valor de retorno

+### Valor de retorno -

El arcoseno hyperbólico del número dado.

+El arcoseno hyperbólico del número dado. -

Descripción

+## Descripción -

Debido a que asinh() es un método estático de Math, siempre hay que usarlo como Math.asinh(), en lugar de como un método del objeto Math que se hayamos creado (Math no es un constructor).

+Debido a que `asinh()` es un método estático de `Math`, siempre hay que usarlo como `Math.asinh()`, en lugar de como un método del objeto `Math` que se hayamos creado (`Math` no es un constructor). -

Ejemplos

+## Ejemplos -

Usos de Math.asinh()

+### Usos de `Math.asinh()` -
Math.asinh(1);  // 0.881373587019543
+```js
+Math.asinh(1);  // 0.881373587019543
 Math.asinh(0);  // 0
-
+``` -

Polyfill

+## Polyfill -

As a quick and dirty hack the expression arsinh(x)=ln(x+x2+1)\operatorname {arsinh} (x) = \ln \left(x + \sqrt{x^{2} + 1} \right) may be used directly for a coarse emulation by the following function:

+As a quick and dirty hack the expression arsinh(x)=ln(x+x2+1)\operatorname {arsinh} (x) = \ln \left(x + \sqrt{x^{2} + 1} \right) may be used directly for a coarse emulation by the following function: -
Math.asinh = Math.asinh || function(x) {
+```js
+Math.asinh = Math.asinh || function(x) {
   if (x === -Infinity) {
     return x;
   } else {
     return Math.log(x + Math.sqrt(x * x + 1));
   }
 };
-
- -

Been formally correct it suffers from a number of issues related to floating point computations. Accurate result requires special handling of positive/negative, small/large arguments as it done e.g. in glibc or GNU Scientific Library.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES6', '#sec-math.asinh', 'Math.asinh')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-math.asinh', 'Math.asinh')}}{{Spec2('ESDraft')}}
- -

Compatibilidades de buscadores

- - - -

{{Compat("javascript.builtins.Math.asinh")}}

- -

See also

- -
    -
  • {{jsxref("Math.acosh()")}}
  • -
  • {{jsxref("Math.atanh()")}}
  • -
  • {{jsxref("Math.cosh()")}}
  • -
  • {{jsxref("Math.sinh()")}}
  • -
  • {{jsxref("Math.tanh()")}}
  • -
+``` + +Been formally correct it suffers from a number of issues related to floating point computations. Accurate result requires special handling of positive/negative, small/large arguments as it done e.g. in [glibc](https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/ieee754/dbl-64/s_asinh.c) or [GNU Scientific Library](http://git.savannah.gnu.org/cgit/gsl.git/tree/sys/invhyp.c). + +## Especificaciones + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-math.asinh', 'Math.asinh')}} | {{Spec2('ES6')}} | Initial definition. | +| {{SpecName('ESDraft', '#sec-math.asinh', 'Math.asinh')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidades de buscadores + +{{Compat("javascript.builtins.Math.asinh")}} + +## See also + +- {{jsxref("Math.acosh()")}} +- {{jsxref("Math.atanh()")}} +- {{jsxref("Math.cosh()")}} +- {{jsxref("Math.sinh()")}} +- {{jsxref("Math.tanh()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/atan2/index.md b/files/es/web/javascript/reference/global_objects/math/atan2/index.md index fcdf67694af895..9e63d308edcc76 100644 --- a/files/es/web/javascript/reference/global_objects/math/atan2/index.md +++ b/files/es/web/javascript/reference/global_objects/math/atan2/index.md @@ -4,91 +4,69 @@ slug: Web/JavaScript/Reference/Global_Objects/Math/atan2 translation_of: Web/JavaScript/Reference/Global_Objects/Math/atan2 original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/atan2 --- -
{{JSRef("Global_Objects", "Math")}}
+{{JSRef("Global_Objects", "Math")}} -

Resumen

+## Resumen -

La función Math.atan2() retorna la arcotangente del cociente de los argumentos.

+La función **`Math.atan2()`** retorna la arcotangente del cociente de los argumentos. -

Sintaxis

+## Sintaxis -
Math.atan2(y, x)
+ Math.atan2(y, x) -

Parámetros

+### Parámetros -
-
y
-
Primer número.
-
x
-
Segundo número.
-
+- `y` + - : Primer número. +- `x` + - : Segundo número. -

Descripción

+## Descripción -

El método Math.atan2() retorna un valor númerico entre -π y π representando el ángulo theta de un punto (x, y). Este es un ángulo en sentido antihorario, medido en radianes, entre el eje positivo X, y el punto (x, y). Tenga en cuenta que esta función recibe la coordenada Y como primer argumento y X como segundo.

+El método `Math.atan2()` retorna un valor númerico entre -π y π representando el ángulo theta de un punto `(x, y)`. Este es un ángulo en sentido antihorario, medido en radianes, entre el eje positivo X, y el punto (`x, y)`. Tenga en cuenta que esta función recibe la coordenada Y como primer argumento y X como segundo. -

A la función Math.atan2() se le pasan los argumentos x y y por separado, y a Math.atan() se le pasa la relación de los dos argumentos.

+A la función` Math.atan2()` se le pasan los argumentos `x` y `y` por separado, y a `Math.atan()` se le pasa la relación de los dos argumentos. -

Debido a que atan2() es un método estatico de Math, siempre se debe usar Math.atan2(), en vez de usarlo como un método creado por el objeto Math (Math no es un contructor).

+Debido a que `atan2()` es un método estatico de `Math`, siempre se debe usar `Math.atan2()`, en vez de usarlo como un método creado por el objeto `Math` (`Math` no es un contructor). -

Ejemplos

+## Ejemplos -

Ejemplo: Usando Math.atan2()

+### Ejemplo: Usando `Math.atan2()` -
Math.atan2(90, 15); // 1.4056476493802699
+```js
+Math.atan2(90, 15); // 1.4056476493802699
 Math.atan2(15, 90); // 0.16514867741462683
 
 Math.atan2(±0, -0);               // ±PI.
 Math.atan2(±0, +0);               // ±0.
-Math.atan2(±0, -x);               // ±PI for x > 0.
-Math.atan2(±0, x);                // ±0 for x > 0.
-Math.atan2(-y, ±0);               // -PI/2 for y > 0.
-Math.atan2(y, ±0);                // PI/2 for y > 0.
-Math.atan2(±y, -Infinity);        // ±PI for finite y > 0.
-Math.atan2(±y, +Infinity);        // ±0 for finite y > 0.
+Math.atan2(±0, -x);               // ±PI for x > 0.
+Math.atan2(±0, x);                // ±0 for x > 0.
+Math.atan2(-y, ±0);               // -PI/2 for y > 0.
+Math.atan2(y, ±0);                // PI/2 for y > 0.
+Math.atan2(±y, -Infinity);        // ±PI for finite y > 0.
+Math.atan2(±y, +Infinity);        // ±0 for finite y > 0.
 Math.atan2(±Infinity, x);         // ±PI/2 for finite x.
 Math.atan2(±Infinity, -Infinity); // ±3*PI/4.
 Math.atan2(±Infinity, +Infinity); // ±PI/4.
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
ECMAScript 1st Edition.StandardInitial definition. Implemented in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.5', 'Math.atan2')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.atan2', 'Math.atan2')}}{{Spec2('ES6')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------- | ------------------------ | -------------------------------------------------- | +| ECMAScript 1st Edition. | Standard | Initial definition. Implemented in JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.2.5', 'Math.atan2')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.atan2', 'Math.atan2')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Math.atan2")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Math.acos()")}}
  • -
  • {{jsxref("Math.asin()")}}
  • -
  • {{jsxref("Math.atan()")}}
  • -
  • {{jsxref("Math.cos()")}}
  • -
  • {{jsxref("Math.sin()")}}
  • -
  • {{jsxref("Math.tan()")}}
  • -
+- {{jsxref("Math.acos()")}} +- {{jsxref("Math.asin()")}} +- {{jsxref("Math.atan()")}} +- {{jsxref("Math.cos()")}} +- {{jsxref("Math.sin()")}} +- {{jsxref("Math.tan()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/atanh/index.md b/files/es/web/javascript/reference/global_objects/math/atanh/index.md index c0ce99ffd8c194..879e574ba1eaac 100644 --- a/files/es/web/javascript/reference/global_objects/math/atanh/index.md +++ b/files/es/web/javascript/reference/global_objects/math/atanh/index.md @@ -4,83 +4,70 @@ slug: Web/JavaScript/Reference/Global_Objects/Math/atanh translation_of: Web/JavaScript/Reference/Global_Objects/Math/atanh original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/atanh --- -
{{JSRef}}
+{{JSRef}} -

La función Math.atanh() nos retorna un arco hiperbólico de un numero, eso es:

+La función **`Math.atanh()`** nos retorna un arco hiperbólico de un numero, eso es: -

x(-1,1),Math.atanh(x)=arctanh(x)= the unique ysuch thattanh(y)=x\forall x \in \left( -1, 1 \right), \mathtt{\operatorname{Math.atanh}(x)} = \operatorname{arctanh}(x) = \text{ el unico } \; y \; \text{de tal manera que} \; \tanh(y) = x

+x(-1,1),Math.atanh(x)=arctanh(x)= the unique ysuch thattanh(y)=x\forall x \in \left( -1, 1 \right), \mathtt{\operatorname{Math.atanh}(x)} = \operatorname{arctanh}(x) = \text{ el unico } \; y \; \text{de tal manera que} \; \tanh(y) = x -
{{EmbedInteractiveExample("pages/js/math-atanh.html")}}
+{{EmbedInteractiveExample("pages/js/math-atanh.html")}} +## Sintaxis + Math.atanh(x) -

Sintaxis

+### Parametros -
Math.atanh(x)
+- _x_ + - : Un numero. -

Parametros

+### Retorna un valor -
-
x
-
Un numero.
-
+El arco hiperbolico tangible nos otorga un numero. -

Retorna un valor

+## Descripción -

El arco hiperbolico tangible nos otorga un numero.

+Por que `atanh()` es un metodo estatico de `Math`, tu siempre puedes usar eso como `Math.atanh()`, se puede usar como un metod de `Math` objeto que tu creaste (`Math` no es un constructor). -

Descripción

+## Polimorfismo -

Por que atanh() es un metodo estatico de Math, tu siempre puedes usar eso como Math.atanh(), se puede usar como un metod de Math objeto que tu creaste (Math no es un constructor).

+Para |x|<1\left|x\right| < 1, tenemos artanh(x)=12ln(1+x1-x)\operatorname {artanh} (x) = \frac{1}{2}\ln \left( \frac{1 + x}{1 - x} \right) por lo que esto puede estar emulado con la siguiente función: -

Polimorfismo

- -

Para |x|<1\left|x\right| < 1, tenemos artanh(x)=12ln(1+x1-x)\operatorname {artanh} (x) = \frac{1}{2}\ln \left( \frac{1 + x}{1 - x} \right) por lo que esto puede estar emulado con la siguiente función:

- -
Math.atanh = Math.atanh || function(x) {
+```js
+Math.atanh = Math.atanh || function(x) {
   return Math.log((1+x)/(1-x)) / 2;
 };
-
+``` -

Ejemplos

+## Ejemplos -

Using Math.atanh()

+### Using `Math.atanh()` -
Math.atanh(-2);  // NaN
+```js
+Math.atanh(-2);  // NaN
 Math.atanh(-1);  // -Infinito
 Math.atanh(0);   // 0
 Math.atanh(0.5); // 0.5493061443340548
 Math.atanh(1);   // Infinito
 Math.atanh(2);   // NaN
-
- -

Para valores mayores a 1 o menores a -1, {{jsxref("NaN")}} retorna.

- -

Especificaciones

- - - - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-math.atanh', 'Math.atanh')}}
- -

Compatibilidad entre navegadores

- -

{{Compat("javascript.builtins.Math.atanh")}}

- -

Puedes leer

- -
    -
  • {{jsxref("Math.acosh()")}}
  • -
  • {{jsxref("Math.asinh()")}}
  • -
  • {{jsxref("Math.cosh()")}}
  • -
  • {{jsxref("Math.sinh()")}}
  • -
  • {{jsxref("Math.tanh()")}}
  • -
+``` + +Para valores mayores a 1 o menores a -1, {{jsxref("NaN")}} retorna. + +## Especificaciones + +| Specification | +| ---------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-math.atanh', 'Math.atanh')}} | + +## Compatibilidad entre navegadores + +{{Compat("javascript.builtins.Math.atanh")}} + +## Puedes leer + +- {{jsxref("Math.acosh()")}} +- {{jsxref("Math.asinh()")}} +- {{jsxref("Math.cosh()")}} +- {{jsxref("Math.sinh()")}} +- {{jsxref("Math.tanh()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/ceil/index.md b/files/es/web/javascript/reference/global_objects/math/ceil/index.md index 4056081283a717..4f4b9febd1890f 100644 --- a/files/es/web/javascript/reference/global_objects/math/ceil/index.md +++ b/files/es/web/javascript/reference/global_objects/math/ceil/index.md @@ -9,48 +9,48 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/ceil original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/ceil --- -
{{JSRef}}
+{{JSRef}} -

La función Math.ceil() devuelve el entero mayor o igual más próximo a un número dado.

+La función **`Math.ceil()`** devuelve el entero mayor o igual más próximo a un número dado. -
{{EmbedInteractiveExample("pages/js/math-ceil.html")}}
+{{EmbedInteractiveExample("pages/js/math-ceil.html")}} -

Sintaxis

+## Sintaxis -
Math.ceil(x)
+ Math.ceil(x) -

Parámetros

+### Parámetros -
-
x
-
Un número.
-
+- `x` + - : Un número. -

Valor devuelto

+### Valor devuelto -

El número entero mayor o igual más próximo que el número dado.

+El número entero mayor o igual más próximo que el número dado. -

Descripción

+## Descripción -

Como ceil() es un método estático de Math, siempre debe usarlo como Math.ceil(), en lugar de como un método de un objeto que ha creado Math (Math no es un constructor).

+Como `ceil()` es un método estático de `Math`, siempre debe usarlo como `Math.ceil()`, en lugar de como un método de un objeto que ha creado `Math` (`Math` no es un constructor). -

Ejemplos

+## Ejemplos -

Utilizando Math.ceil()

+### Utilizando `Math.ceil()` -

El siguiente ejemplo muestra el uso de Math.ceil().

+El siguiente ejemplo muestra el uso de `Math.ceil()`. -
Math.ceil(.95);    // 1
+```js
+Math.ceil(.95);    // 1
 Math.ceil(4);      // 4
 Math.ceil(7.004);  // 8
 Math.ceil(-0.95);  // -0
 Math.ceil(-4);     // -4
 Math.ceil(-7.004); // -7
-
+``` -

Ajuste decimal

+### Ajuste decimal -
// Closure
+```js
+// Closure
 (function() {
   /**
    * Ajuste decimal de un número.
@@ -68,7 +68,7 @@ Math.ceil(-7.004); // -7
     value = +value;
     exp = +exp;
     // Si el valor no es un número o exp no es un entero...
-    if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
+    if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
       return NaN;
     }
     // Shift
@@ -118,50 +118,25 @@ Math.ceil10(55.51, -1);    // 55.6
 Math.ceil10(51, 1);        // 60
 Math.ceil10(-55.59, -1);   // -55.5
 Math.ceil10(-59, 1);       // -50
-
- -

Espicificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.6', 'Math.ceil')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.ceil', 'Math.ceil')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.ceil', 'Math.ceil')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en navegadores

- -

{{Compat("javascript.builtins.Math.ceil")}}

- -

Ver también

- -
    -
  • {{jsxref("Math.abs()")}}
  • -
  • {{jsxref("Math.floor()")}}
  • -
  • {{jsxref("Math.round()")}}
  • -
  • {{jsxref("Math.sign()")}}
  • -
  • {{jsxref("Math.trunc()")}}
  • -
+``` + +## Espicificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------ | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.2.6', 'Math.ceil')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.ceil', 'Math.ceil')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-math.ceil', 'Math.ceil')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en navegadores + +{{Compat("javascript.builtins.Math.ceil")}} + +## Ver también + +- {{jsxref("Math.abs()")}} +- {{jsxref("Math.floor()")}} +- {{jsxref("Math.round()")}} +- {{jsxref("Math.sign()")}} +- {{jsxref("Math.trunc()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/e/index.md b/files/es/web/javascript/reference/global_objects/math/e/index.md index eb8550bf61e078..69fccecd4965c5 100644 --- a/files/es/web/javascript/reference/global_objects/math/e/index.md +++ b/files/es/web/javascript/reference/global_objects/math/e/index.md @@ -9,76 +9,49 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/E original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/E --- -
{{JSRef}}
+{{JSRef}} -

La propiedad Math.E representa la base de los logaritmos naturales, e, aproximadamente 2.718.

+La propiedad **`Math.E`** representa la base de los logaritmos naturales, e, aproximadamente 2.718. -

Math.E=e2.718\mathtt{\mi{Math.E}} = e \approx 2.718

+Math.E=e2.718\mathtt{\mi{Math.E}} = e \approx 2.718 -

{{EmbedInteractiveExample("pages/js/math-e.html")}}

+{{EmbedInteractiveExample("pages/js/math-e.html")}} -
{{js_property_attributes(0, 0, 0)}}
+{{js_property_attributes(0, 0, 0)}} -

Descripción

+## Descripción -

Porque E es una propiedad estática de Math, siempre usted lo usa como Math.E, en lugar de como una propiedad de un objeto Math creado (Math no es un constructor).

+Porque `E` es una propiedad estática de `Math`, siempre usted lo usa como `Math.E`, en lugar de como una propiedad de un objeto `Math` creado (`Math` no es un constructor). -

Ejemplos

+## Ejemplos -

Utilizando Math.E

+### Utilizando `Math.E` -

La función siguiente devuelve e:

+La función siguiente devuelve e: -
function getNapier() {
+```js
+function getNapier() {
    return Math.E
 }
 
-getNapier(); // 2.718281828459045
- -

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.1.1', 'Math.E')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.e', 'Math.E')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.e', 'Math.E')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -

{{Compat("javascript.builtins.Math.E")}}

- -

- -

Ver también

- -
    -
  • {{jsxref("Math.exp()")}}
  • -
  • {{jsxref("Math.log()")}}
  • -
  • {{jsxref("Math.log1p()")}}
  • -
+getNapier(); // 2.718281828459045 +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.1.1', 'Math.E')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.e', 'Math.E')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-math.e', 'Math.E')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Math.E")}} + +## Ver también + +- {{jsxref("Math.exp()")}} +- {{jsxref("Math.log()")}} +- {{jsxref("Math.log1p()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/exp/index.md b/files/es/web/javascript/reference/global_objects/math/exp/index.md index 3138362a3cd81e..7491cbb8b975b1 100644 --- a/files/es/web/javascript/reference/global_objects/math/exp/index.md +++ b/files/es/web/javascript/reference/global_objects/math/exp/index.md @@ -4,86 +4,54 @@ slug: Web/JavaScript/Reference/Global_Objects/Math/exp translation_of: Web/JavaScript/Reference/Global_Objects/Math/exp original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/exp --- -
{{JSRef}}
+{{JSRef}}La función **Math.exp()** devuelve `ex`, donde `x` es el argumento, y `e` es {{jsxref("Math.E", "El número de Euler (también conocido como la constante de Napier)", "", 1)}}, la base de los algoritmos naturales. -
La función Math.exp() devuelve ex, donde x es el argumento, y e es {{jsxref("Math.E", "El número de Euler (también conocido como la constante de Napier)", "", 1)}}, la base de los algoritmos naturales.
+## Sintaxis -
+ Math.exp(x) -

Sintaxis

+### Parámetros -
Math.exp(x)
+- `x` + - : Un número. -

Parámetros

+### Valor devuelto -
-
x
-
Un número.
-
+Un número represetando `ex`, donde `e` es {{jsxref("Math.E", "número de Euler", "", 1)}} y `x` es el argumento. -

Valor devuelto

+## Descripción -

Un número represetando ex, donde e es {{jsxref("Math.E", "número de Euler", "", 1)}} y x es el argumento.

+Porque `exp()` es un método estático de `Math`, siempre úsalo como `Math.exp()`, en vez de un método de un objeto `Math` que hayas creado (`Math` no es un constructor). -

Descripción

+## Ejemplos -

Porque exp() es un método estático de Math, siempre úsalo como Math.exp(), en vez de un método de un objeto Math que hayas creado (Math no es un constructor).

+### Usando `Math.exp()` -

Ejemplos

- -

Usando Math.exp()

- -
Math.exp(-1); // 0.36787944117144233
+```js
+Math.exp(-1); // 0.36787944117144233
 Math.exp(0);  // 1
 Math.exp(1);  // 2.718281828459045
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}} -

Definición inicial. Implementado en JavaScript 1.0.

-
{{SpecName('ES5.1', '#sec-15.8.2.8', 'Math.exp')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.exp', 'Math.exp')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.exp', 'Math.exp')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.2.8', 'Math.exp')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.exp', 'Math.exp')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-math.exp', 'Math.exp')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Math.exp")}} -

Ve también

- -
    -
  • {{jsxref("Math.E")}}
  • -
  • {{jsxref("Math.expm1()")}}
  • -
  • {{jsxref("Math.log()")}}
  • -
  • {{jsxref("Math.log10()")}}
  • -
  • {{jsxref("Math.log1p()")}}
  • -
  • {{jsxref("Math.log2()")}}
  • -
  • {{jsxref("Math.pow()")}}
  • -
+## Ve también + +- {{jsxref("Math.E")}} +- {{jsxref("Math.expm1()")}} +- {{jsxref("Math.log()")}} +- {{jsxref("Math.log10()")}} +- {{jsxref("Math.log1p()")}} +- {{jsxref("Math.log2()")}} +- {{jsxref("Math.pow()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/floor/index.md b/files/es/web/javascript/reference/global_objects/math/floor/index.md index 1e6b09af2c8b05..748276fc93bdfc 100644 --- a/files/es/web/javascript/reference/global_objects/math/floor/index.md +++ b/files/es/web/javascript/reference/global_objects/math/floor/index.md @@ -8,42 +8,43 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/floor original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/floor --- -
{{JSRef("Objetos_globales", "Math")}}
+{{JSRef("Objetos_globales", "Math")}} -

Sumario

+## Sumario -

Devuelve el máximo entero menor o igual a un número.

+Devuelve el máximo entero menor o igual a un número. -

Sintaxis

+## Sintaxis -
Math.floor(x) 
+ Math.floor(x) -

Parámetros

+### Parámetros -
-
x
-
Es número.
-
+- `x` + - : Es número. -

Descripción

+## Descripción -

Como floor es un método estático de Math, siempre debe usarse como Math.floor(), en lugar de usarlo como un método de un objeto Math creado.

+Como `floor` es un método estático de `Math`, siempre debe usarse como `Math.floor()`, en lugar de usarlo como un método de un objeto `Math` creado. -

Ejemplos

+## Ejemplos -

Ejemplo: Usando Math.floor

+### Ejemplo: Usando `Math.floor` -

La siguiente función devuelve el valor entero redondeado más bajo de la variable x:

+La siguiente función devuelve el valor entero redondeado más bajo de la variable `x`: -
function getFloor(x) {
+```js
+function getFloor(x) {
    return Math.floor(x);
-}
+} +``` -

Si se pasa 45.95 a getFloor, éste devuelve 45; si se le pasa -45.95, devuelve -46.

+Si se pasa `45.95` a `getFloor`, éste devuelve `45`; si se le pasa `-45.95`, devuelve `-46`. -

Ejemplo: Ajuste decimal

+### Ejemplo: Ajuste decimal -
// Cierre
+```js
+// Cierre
 (function(){
 
 	/**
@@ -62,7 +63,7 @@ original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/floor
 		value = +value;
 		exp = +exp;
 		// Si el valor no es un número o el exp no es un entero...
-		if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
+		if (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {
 			return NaN;
 		}
 		// Cambio
@@ -113,13 +114,11 @@ Math.ceil10(55.51, -1); // 55.6
 Math.ceil10(51, 1); // 60
 Math.ceil10(-55.59, -1); // -55.5
 Math.ceil10(-59, 1); // -50
-
+``` -

Ven También

+## Ven También -
    -
  • El {{jsxref("Math")}} objeto.
  • -
  • {{jsxref("Math.abs")}}
  • -
  • {{jsxref("Math.ceil()")}}
  • -
  • {{jsxref("Math.round()")}}
  • -
+- El {{jsxref("Math")}} objeto. +- {{jsxref("Math.abs")}} +- {{jsxref("Math.ceil()")}} +- {{jsxref("Math.round()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/hypot/index.md b/files/es/web/javascript/reference/global_objects/math/hypot/index.md index 2fa09f43ee16a3..cc7c6927a61d11 100644 --- a/files/es/web/javascript/reference/global_objects/math/hypot/index.md +++ b/files/es/web/javascript/reference/global_objects/math/hypot/index.md @@ -7,117 +7,99 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/hypot original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/hypot --- -
{{JSRef}}
+{{JSRef}} -

La función Math.hypot() retorna la raíz cuadrada de la suma de los cuadrados de sus argumentos, es decir:

+La función **`Math.hypot()`** retorna la raíz cuadrada de la suma de los cuadrados de sus argumentos, es decir: -

Math.hypot(v1,v2,,vn)=i=1nvi2=v12+v22++vn2\mathtt{\operatorname{Math.hypot}(v_1, v_2, \dots, v_n)} = \sqrt{\sum_{i=1}^n v_i^2} = \sqrt{v_1^2 + v_2^2 + \dots + v_n^2}

+Math.hypot(v1,v2,,vn)=i=1nvi2=v12+v22++vn2\mathtt{\operatorname{Math.hypot}(v*1, v_2, \dots, v_n)} = \sqrt{\sum*{i=1}^n v_i^2} = \sqrt{v_1^2 + v_2^2 + \dots + v_n^2} -
{{EmbedInteractiveExample("pages/js/math-hypot.html")}}
+{{EmbedInteractiveExample("pages/js/math-hypot.html")}} +## Sintaxis + Math.hypot(valor1, valor2, ..., valorN) -

Sintaxis

+### Parámetros -
Math.hypot(valor1, valor2, ..., valorN)
+- `Valor1, Valor2, ...` + - : Números. -

Parámetros

+### Valor de Retorno -
-
Valor1, Valor2, ...
-
Números.
-
+La raíz cuadrada de la suma de los cuadrados de los argumentos proporcionados. Si tan sólo uno de los argumentos no pudiese ser convertido a un número, se retornaría {{jsxref("NaN")}}. -

Valor de Retorno

+## Descripción -

La raíz cuadrada de la suma de los cuadrados de los argumentos proporcionados. Si tan sólo uno de los argumentos no pudiese ser convertido a un número, se retornaría {{jsxref("NaN")}}.

+Para calcular la hipotenusa de un triángulo rectángulo, o la magnitud de un número complejo, se usa el Teorema de Pitágoras, representado en la siguiente fórmula `Math.sqrt(v1*v1 + v2*v2)` donde _v1_ y _v2_ son, o los catetos del triángulo, o los valores reales y complejos usados para hallar la mencionada magnitud. Para calcular distancias de dos o más dimensiones, simplemente añade más valores al cuadrado (multiplicado por sí mismo) dentro de el método `sqrt()` del objeto `Math`, algo como: `Math.sqrt(v1*v1 + v2*v2 + v3*v3 + v4*v4)`. -

Descripción

+Esta función lo hace un poco más fácil y rápido, sólo coloca: `Math.hypot(v1, v2)` , o `Math.hypot(v1, v2, v3, v4, ...)` . -

Para calcular la hipotenusa de un triángulo rectángulo, o la magnitud de un número complejo, se usa el Teorema de Pitágoras, representado en la siguiente fórmula Math.sqrt(v1*v1 + v2*v2) donde v1 y v2 son, o los catetos del triángulo, o los valores reales y complejos usados para hallar la mencionada magnitud. Para calcular distancias de dos o más dimensiones, simplemente añade más valores al cuadrado (multiplicado por sí mismo) dentro de el método sqrt() del objeto Math, algo como: Math.sqrt(v1*v1 + v2*v2 + v3*v3 + v4*v4).

+Esto también evita un problema si la magnitud de tus números es muy elevada. El número más largo que puedes representar en JavaScript es `Number.MAX_VALUE = 1.797...e+308` . Si tus números son mayores que 1e154, tomando el cuadrado de esos valores resultaría en infinito destruyendo así tus resultados. Por ejemplo, `Math.sqrt(1e200*1e200 + 1e200*1e200) = Infinito`. Si usas `hypot()` en su lugar, tú obtendrías un buen resultado `Math.hypot(1e200, 1e200) = 1.4142...e+200` . Eso también es verdad con números demasiados pequeños. `Math.sqrt(1e-200*1e-200 + 1e-200*1e-200) = 0`, pero si en su lugar, usamos ` Math.hypot(1e-200, 1e-200) =``1.4142...e-200 `, obtendríamos un buen resultado una vez más. -

Esta función lo hace un poco más fácil y rápido, sólo coloca: Math.hypot(v1, v2) , o Math.hypot(v1, v2, v3, v4, ...) .

+Debido a que `hypot()` es un método estático de `Math`, siempre úsalo como `Math.hypot()`, en lugar de un método del objeto `Math` que hayas creado (`Math` no es un constructor). -

Esto también evita un problema si la magnitud de tus números es muy elevada. El número más largo que puedes representar en JavaScript es Number.MAX_VALUE = 1.797...e+308 . Si tus números son mayores que 1e154, tomando el cuadrado de esos valores resultaría en infinito destruyendo así tus resultados. Por ejemplo, Math.sqrt(1e200*1e200 + 1e200*1e200) = Infinito. Si usas hypot() en su lugar, tú obtendrías un buen resultado Math.hypot(1e200, 1e200) = 1.4142...e+200 . Eso también es verdad con números demasiados pequeños. Math.sqrt(1e-200*1e-200 + 1e-200*1e-200) = 0, pero si en su lugar, usamos Math.hypot(1e-200, 1e-200) =1.4142...e-200, obtendríamos un buen resultado una vez más.

+Si ningún argumento es provisto, el resultado es 0. -

Debido a que hypot() es un método estático de Math, siempre úsalo como Math.hypot(), en lugar de un método del objeto Math que hayas creado (Math no es un constructor).

+Con sólo un argumento, `Math.hypot()` retornaría lo mismo que `Math.abs()`. -

Si ningún argumento es provisto, el resultado es 0.

+## Ejemplos -

Con sólo un argumento, Math.hypot() retornaría lo mismo que Math.abs().

+### Usando `Math.hypot()` -

Ejemplos

- -

Usando Math.hypot()

- -
Math.hypot(3, 4);        // 5
+```js
+Math.hypot(3, 4);        // 5
 Math.hypot(3, 4, 5);     // 7.0710678118654755
 Math.hypot();            // 0
 Math.hypot(NaN);         // NaN
-Math.hypot(3, 4, 'foo'); // NaN, +'foo' => NaN
-Math.hypot(3, 4, '5');   // 7.0710678118654755, +'5' => 5
+Math.hypot(3, 4, 'foo'); // NaN, +'foo' => NaN
+Math.hypot(3, 4, '5');   // 7.0710678118654755, +'5' => 5
 Math.hypot(-3);          // 3, lo mismo que Math.abs(-3)
-
+``` -

Polyfill

+## Polyfill -

Esto puede ser emulado usando la siguiente función:

+Esto puede ser emulado usando la siguiente función: -
Math.hypot = Math.hypot || function() {
+```js
+Math.hypot = Math.hypot || function() {
   var y = 0, i = arguments.length;
   while (i--) y += arguments[i] * arguments[i];
   return Math.sqrt(y);
 };
-
+``` -

Un polyfill que evita subdesbordamientos (underflows) y desbordamientos (overflows):

+Un polyfill que evita subdesbordamientos (underflows) y desbordamientos (overflows): -
Math.hypot = function (x, y) {
+```js
+Math.hypot = function (x, y) {
   // https://bugzilla.mozilla.org/show_bug.cgi?id=896264#c28
   var max = 0;
   var s = 0;
-  for (var i = 0; i < arguments.length; i += 1) {
+  for (var i = 0; i < arguments.length; i += 1) {
     var arg = Math.abs(Number(arguments[i]));
-    if (arg > max) {
+    if (arg > max) {
       s *= (max / arg) * (max / arg);
       max = arg;
     }
-    s += arg === 0 && max === 0 ? 0 : (arg / max) * (arg / max);
+    s += arg === 0 && max === 0 ? 0 : (arg / max) * (arg / max);
   }
   return max === 1 / 0 ? 1 / 0 : max * Math.sqrt(s);
 };
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES2015', '#sec-math.hypot', 'Math.hypot')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-math.hypot', 'Math.hypot')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en navegadores

- -

{{Compat("javascript.builtins.Math.hypot")}}

- -

Ver también

- -
    -
  • {{jsxref("Math.abs()")}}
  • -
  • {{jsxref("Math.pow()")}}
  • -
  • {{jsxref("Math.sqrt()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-math.hypot', 'Math.hypot')}} | {{Spec2('ES2015')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-math.hypot', 'Math.hypot')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en navegadores + +{{Compat("javascript.builtins.Math.hypot")}} + +## Ver también + +- {{jsxref("Math.abs()")}} +- {{jsxref("Math.pow()")}} +- {{jsxref("Math.sqrt()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/index.md b/files/es/web/javascript/reference/global_objects/math/index.md index 9d664ebd79f889..7fa5d1110e91d6 100644 --- a/files/es/web/javascript/reference/global_objects/math/index.md +++ b/files/es/web/javascript/reference/global_objects/math/index.md @@ -8,190 +8,161 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math original_slug: Web/JavaScript/Referencia/Objetos_globales/Math --- -
{{JSRef}}
- -

Math es un objeto incorporado que tiene propiedades y métodos para constantes y funciones matemáticas. No es un objeto de función.

- -

Math funciona con el tipo {{jsxref("Number")}}. No funciona con {{jsxref("BigInt")}}.

- -

Descripción

- -

A diferencia de los demás objetos globales, el objeto Math no se puede editar. Todas las propiedades y métodos de Math son estáticos. Usted se puede referir a la constante pi como Math.PI y puede llamar a la función seno como Math.sin(x), donde x es el argumento del método. Las constantes se definen con la precisión completa de los números reales en JavaScript.

- -

Propiedades

- -
-
{{jsxref("Math.E")}}
-
Constante de Euler, la base de los logaritmos naturales, aproximadamente 2.718.
-
{{jsxref("Math.LN2")}}
-
Logaritmo natural de 2, aproximadamente 0.693.
-
{{jsxref("Math.LN10")}}
-
Logaritmo natural de 10, aproximadamente 2.303.
-
{{jsxref("Math.LOG2E")}}
-
Logaritmo de E con base 2, aproximadamente 1.443.
-
{{jsxref("Math.LOG10E")}}
-
Logaritmo de E con base 10, aproximadamente 0.434.
-
{{jsxref("Math.PI")}}
-
Ratio de la circunferencia de un circulo respecto a su diámetro, aproximadamente 3.14159.
-
{{jsxref("Math.SQRT1_2")}}
-
Raíz cuadrada de 1/2; Equivalentemente, 1 sobre la raíz cuadrada de 2, aproximadamente 0.707.
-
{{jsxref("Math.SQRT2")}}
-
Raíz cuadrada de 2, aproximadamente 1.414.
-
- -

Métodos

- -
-

Tenga en cuenta que las funciones trigonométricas (sin(), cos(), tan(), asin(), acos(), atan(), atan2()) devuelven ángulos en radianes. Para convertir radianes a grados, divida por (Math.PI / 180), y multiplique por esto para convertir a la inversa.

-
- -
-

Tenga en cuenta que muchas de las funciones matemáticas tienen una precisión que es dependiente de la implementación. Esto significa que los diferentes navegadores pueden dar un resultado diferente, e incluso el mismo motor de JS en un sistema operativo o arquitectura diferente puede dar resultados diferentes.

-
- -
-
{{jsxref("Global_Objects/Math/abs", "Math.abs(x)")}}
-
Devuelve el valor absoluto de un número.
-
{{jsxref("Global_Objects/Math/acos", "Math.acos(x)")}}
-
Devuelve el arco coseno de un número.
-
{{jsxref("Global_Objects/Math/acosh", "Math.acosh(x)")}}
-
Devuelve el arco coseno hiperbólico de un número.
-
{{jsxref("Global_Objects/Math/asin", "Math.asin(x)")}}
-
Devuelve el arco seno de un número.
-
{{jsxref("Global_Objects/Math/asinh", "Math.asinh(x)")}}
-
Devuelve el arco seno hiperbólico de un número.
-
{{jsxref("Global_Objects/Math/atan", "Math.atan(x)")}}
-
Devuelve el arco tangente de un número.
-
{{jsxref("Global_Objects/Math/atanh", "Math.atanh(x)")}}
-
Devuelve el arco tangente hiperbólico de un número.
-
{{jsxref("Global_Objects/Math/atan2", "Math.atan2(y, x)")}}
-
Devuelve el arco tangente del cuociente de sus argumentos.
-
{{jsxref("Global_Objects/Math/cbrt", "Math.cbrt(x)")}}
-
Devuelve la raíz cúbica de un número.
-
{{jsxref("Global_Objects/Math/ceil", "Math.ceil(x)")}}
-
Devuelve el entero más pequeño mayor o igual que un número.
-
{{jsxref("Global_Objects/Math/clz32", "Math.clz32(x)")}}
-
Devuelve el número de ceros iniciales de un entero de 32 bits.
-
{{jsxref("Global_Objects/Math/cos", "Math.cos(x)")}}
-
Devuelve el coseno de un número.
-
{{jsxref("Global_Objects/Math/cosh", "Math.cosh(x)")}}
-
Devuelve el coseno hiperbólico de un número.
-
{{jsxref("Global_Objects/Math/exp", "Math.exp(x)")}}
-
Devuelve Ex, donde x es el argumento, y E es la constante de Euler (2.718...), la base de los logaritmos naturales.
-
{{jsxref("Global_Objects/Math/expm1", "Math.expm1(x)")}}
-
Devuelve ex - 1.
-
{{jsxref("Global_Objects/Math/floor", "Math.floor(x)")}}
-
Devuelve el mayor entero menor que o igual a un número.
-
{{jsxref("Global_Objects/Math/fround", "Math.fround(x)")}}
-
Devuelve la representación flotante de precisión simple más cercana de un número.
-
{{jsxref("Global_Objects/Math/hypot", "Math.hypot([x[, y[, …]]])")}}
-
Devuelve la raíz cuadrada de la suma de los cuadrados de sus argumentos.
-
{{jsxref("Global_Objects/Math/imul", "Math.imul(x, y)")}}
-
Devuelve el resultado de una multiplicación de enteros de 32 bits.
-
{{jsxref("Global_Objects/Math/log", "Math.log(x)")}}
-
Devuelve el logaritmo natural (log, también ln) de un número.
-
{{jsxref("Global_Objects/Math/log1p", "Math.log1p(x)")}}
-
Devuelve el logaritmo natural de x + 1 (loge, también ln) de un número.
-
{{jsxref("Global_Objects/Math/log10", "Math.log10(x)")}}
-
Devuelve el logaritmo en base 10 de x.
-
{{jsxref("Global_Objects/Math/log2", "Math.log2(x)")}}
-
Devuelve el logaritmo en base 2 de x.
-
{{jsxref("Global_Objects/Math/max", "Math.max([x[, y[, …]]])")}}
-
Devuelve el mayor de cero o más números.
-
{{jsxref("Global_Objects/Math/min", "Math.min([x[, y[, …]]])")}}
-
Devuelve el más pequeño de cero o más números.
-
{{jsxref("Global_Objects/Math/pow", "Math.pow(x, y)")}}
-
Las devoluciones de base a la potencia de exponente, que es, baseexponent.
-
{{jsxref("Global_Objects/Math/random", "Math.random()")}}
-
Devuelve un número pseudo-aleatorio entre 0 y 1.
-
{{jsxref("Global_Objects/Math/round", "Math.round(x)")}}
-
Devuelve el valor de un número redondeado al número entero más cercano.
-
{{jsxref("Global_Objects/Math/sign", "Math.sign(x)")}}
-
Devuelve el signo de la x, que indica si x es positivo, negativo o cero.
-
{{jsxref("Global_Objects/Math/sin", "Math.sin(x)")}}
-
Devuelve el seno de un número.
-
{{jsxref("Global_Objects/Math/sinh", "Math.sinh(x)")}}
-
Devuelve el seno hiperbólico de un número.
-
{{jsxref("Global_Objects/Math/sqrt", "Math.sqrt(x)")}}
-
Devuelve la raíz cuadrada positiva de un número.
-
{{jsxref("Global_Objects/Math/tan", "Math.tan(x)")}}
-
Devuelve la tangente de un número.
-
{{jsxref("Global_Objects/Math/tanh", "Math.tanh(x)")}}
-
Devuelve la tangente hiperbólica de un número.
-
-
Math.toSource() {{non-standard_inline}}
-
-
Devuelve la cadena "Math".
-
{{jsxref("Global_Objects/Math/trunc", "Math.trunc(x)")}}
-
Devuelve la parte entera del número x, la eliminación de los dígitos fraccionarios.
-
- -

Extendiendo el objeto Math

- -

Como muchos de los objetos incluidos en JavaScript, el objeto Math puede ser extendido con propiedades y métodos personalizados. Para extender el objeto Math no se debe usar 'prototype'. Es posible extender directamente Math:

- -
Math.propName = propValue;
-Math.methodName = methodRef;
- -

Como demostración, el siguiente ejemplo agrega un método al objeto Math para calcular el máximo común divisor de una lista de argumentos.

- -
/* Función variádica -- Retorna el máximo común divisor de una lista de argumentos */
+{{JSRef}}
+
+**`Math`** es un objeto incorporado que tiene propiedades y métodos para constantes y funciones matemáticas. No es un objeto de función.
+
+**`Math`** funciona con el tipo {{jsxref("Number")}}. No funciona con {{jsxref("BigInt")}}.
+
+## Descripción
+
+A diferencia de los demás objetos globales, el objeto `Math`\*\* **no se puede editar. Todas las propiedades y métodos de `Math` son** **estáticos. Usted se puede referir a la constante _pi_ como `Math.PI`\_** **_y puede llamar a la función \_seno_ como `Math.sin(x)`,\_** **_donde_** **\_**`x`**\_** \*\*\_es el argumento del método. Las constantes se definen con la precisión completa de los números reales en JavaScript.
+
+## Propiedades
+
+- {{jsxref("Math.E")}}
+  - : Constante de Euler, la base de los logaritmos naturales, aproximadamente 2.718.
+- {{jsxref("Math.LN2")}}
+  - : Logaritmo natural de 2, aproximadamente 0.693.
+- {{jsxref("Math.LN10")}}
+  - : Logaritmo natural de 10, aproximadamente 2.303.
+- {{jsxref("Math.LOG2E")}}
+  - : Logaritmo de E con base 2, aproximadamente 1.443.
+- {{jsxref("Math.LOG10E")}}
+  - : Logaritmo de E con base 10, aproximadamente 0.434.
+- {{jsxref("Math.PI")}}
+  - : Ratio de la circunferencia de un circulo respecto a su diámetro, aproximadamente 3.14159.
+- {{jsxref("Math.SQRT1_2")}}
+  - : Raíz cuadrada de 1/2; Equivalentemente, 1 sobre la raíz cuadrada de 2, aproximadamente 0.707.
+- {{jsxref("Math.SQRT2")}}
+  - : Raíz cuadrada de 2, aproximadamente 1.414.
+
+## Métodos
+
+> **Nota:** Tenga en cuenta que las funciones trigonométricas (`sin()`, `cos()`, `tan()`, `asin()`, `acos()`, `atan()`, `atan2()`) devuelven ángulos en radianes. Para convertir radianes a grados, divida por `(Math.PI / 180)`, y multiplique por esto para convertir a la inversa.
+
+> **Nota:** Tenga en cuenta que muchas de las funciones matemáticas tienen una precisión que es dependiente de la implementación. Esto significa que los diferentes navegadores pueden dar un resultado diferente, e incluso el mismo motor de JS en un sistema operativo o arquitectura diferente puede dar resultados diferentes.
+
+- {{jsxref("Global_Objects/Math/abs", "Math.abs(x)")}}
+  - : Devuelve el valor absoluto de un número.
+- {{jsxref("Global_Objects/Math/acos", "Math.acos(x)")}}
+  - : Devuelve el arco coseno de un número.
+- {{jsxref("Global_Objects/Math/acosh", "Math.acosh(x)")}}
+  - : Devuelve el arco coseno hiperbólico de un número.
+- {{jsxref("Global_Objects/Math/asin", "Math.asin(x)")}}
+  - : Devuelve el arco seno de un número.
+- {{jsxref("Global_Objects/Math/asinh", "Math.asinh(x)")}}
+  - : Devuelve el arco seno hiperbólico de un número.
+- {{jsxref("Global_Objects/Math/atan", "Math.atan(x)")}}
+  - : Devuelve el arco tangente de un número.
+- {{jsxref("Global_Objects/Math/atanh", "Math.atanh(x)")}}
+  - : Devuelve el arco tangente hiperbólico de un número.
+- {{jsxref("Global_Objects/Math/atan2", "Math.atan2(y, x)")}}
+  - : Devuelve el arco tangente del cuociente de sus argumentos.
+- {{jsxref("Global_Objects/Math/cbrt", "Math.cbrt(x)")}}
+  - : Devuelve la raíz cúbica de un número.
+- {{jsxref("Global_Objects/Math/ceil", "Math.ceil(x)")}}
+  - : Devuelve el entero más pequeño mayor o igual que un número.
+- {{jsxref("Global_Objects/Math/clz32", "Math.clz32(x)")}}
+  - : Devuelve el número de ceros iniciales de un entero de 32 bits.
+- {{jsxref("Global_Objects/Math/cos", "Math.cos(x)")}}
+  - : Devuelve el coseno de un número.
+- {{jsxref("Global_Objects/Math/cosh", "Math.cosh(x)")}}
+  - : Devuelve el coseno hiperbólico de un número.
+- {{jsxref("Global_Objects/Math/exp", "Math.exp(x)")}}
+  - : Devuelve `Ex`, donde _x_ es el argumento, y `E` es la constante de Euler (2.718...), la base de los logaritmos naturales.
+- {{jsxref("Global_Objects/Math/expm1", "Math.expm1(x)")}}
+  - : Devuelve ex - 1.
+- {{jsxref("Global_Objects/Math/floor", "Math.floor(x)")}}
+  - : Devuelve el mayor entero menor que o igual a un número.
+- {{jsxref("Global_Objects/Math/fround", "Math.fround(x)")}}
+  - : Devuelve la representación flotante de precisión simple más cercana de un número.
+- {{jsxref("Global_Objects/Math/hypot", "Math.hypot([x[, y[, …]]])")}}
+  - : Devuelve la raíz cuadrada de la suma de los cuadrados de sus argumentos.
+- {{jsxref("Global_Objects/Math/imul", "Math.imul(x, y)")}}
+  - : Devuelve el resultado de una multiplicación de enteros de 32 bits.
+- {{jsxref("Global_Objects/Math/log", "Math.log(x)")}}
+  - : Devuelve el logaritmo natural (log, también ln) de un número.
+- {{jsxref("Global_Objects/Math/log1p", "Math.log1p(x)")}}
+  - : Devuelve el logaritmo natural de x + 1 (loge, también ln) de un número.
+- {{jsxref("Global_Objects/Math/log10", "Math.log10(x)")}}
+  - : Devuelve el logaritmo en base 10 de x.
+- {{jsxref("Global_Objects/Math/log2", "Math.log2(x)")}}
+  - : Devuelve el logaritmo en base 2 de x.
+- {{jsxref("Global_Objects/Math/max", "Math.max([x[, y[, …]]])")}}
+  - : Devuelve el mayor de cero o más números.
+- {{jsxref("Global_Objects/Math/min", "Math.min([x[, y[, …]]])")}}
+  - : Devuelve el más pequeño de cero o más números.
+- {{jsxref("Global_Objects/Math/pow", "Math.pow(x, y)")}}
+  - : Las devoluciones de base a la potencia de exponente, que es, baseexponent.
+- {{jsxref("Global_Objects/Math/random", "Math.random()")}}
+  - : Devuelve un número pseudo-aleatorio entre 0 y 1.
+- {{jsxref("Global_Objects/Math/round", "Math.round(x)")}}
+  - : Devuelve el valor de un número redondeado al número entero más cercano.
+- {{jsxref("Global_Objects/Math/sign", "Math.sign(x)")}}
+  - : Devuelve el signo de la x, que indica si x es positivo, negativo o cero.
+- {{jsxref("Global_Objects/Math/sin", "Math.sin(x)")}}
+  - : Devuelve el seno de un número.
+- {{jsxref("Global_Objects/Math/sinh", "Math.sinh(x)")}}
+  - : Devuelve el seno hiperbólico de un número.
+- {{jsxref("Global_Objects/Math/sqrt", "Math.sqrt(x)")}}
+  - : Devuelve la raíz cuadrada positiva de un número.
+- {{jsxref("Global_Objects/Math/tan", "Math.tan(x)")}}
+  - : Devuelve la tangente de un número.
+- {{jsxref("Global_Objects/Math/tanh", "Math.tanh(x)")}}
+  - : Devuelve la tangente hiperbólica de un número.
+-       Math.toSource() {{non-standard_inline}}
+  - : Devuelve la cadena "`Math`".
+- {{jsxref("Global_Objects/Math/trunc", "Math.trunc(x)")}}
+  - : Devuelve la parte entera del número x, la eliminación de los dígitos fraccionarios.
+
+## Extendiendo el objeto `Math`
+
+Como muchos de los objetos incluidos en JavaScript, el objeto `Math` puede ser extendido con propiedades y métodos personalizados. Para extender el objeto `Math` no se debe usar 'prototype'. Es posible extender directamente `Math`:
+
+```js
+Math.propName = propValue;
+Math.methodName = methodRef;
+```
+
+Como demostración, el siguiente ejemplo agrega un método al objeto `Math` para calcular el _máximo común divisor_ de una lista de argumentos.
+
+```js
+/* Función variádica -- Retorna el máximo común divisor de una lista de argumentos */
 Math.gcd = function() {
     if (arguments.length == 2) {
         if (arguments[1] == 0)
             return arguments[0];
         else
             return Math.gcd(arguments[1], arguments[0] % arguments[1]);
-    } else if (arguments.length > 2) {
+    } else if (arguments.length > 2) {
         var result = Math.gcd(arguments[0], arguments[1]);
-        for (var i = 2; i < arguments.length; i++)
+        for (var i = 2; i < arguments.length; i++)
             result = Math.gcd(result, arguments[i]);
         return result;
     }
-};
- -

Pruébalo:

- -
console.log(Math.gcd(20, 30, 15, 70, 40)); // `5`
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición Inicial. Implementado en JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.8', 'Math')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math-object', 'Math')}}{{Spec2('ES6')}}Nuevos métodos {{jsxref("Math.log10()", "log10()")}}, {{jsxref("Math.log2()", "log2()")}}, {{jsxref("Math.log1p()", "log1p()")}}, {{jsxref("Math.expm1()", "expm1()")}}, {{jsxref("Math.cosh()", "cosh()")}}, {{jsxref("Math.sinh()", "sinh()")}}, {{jsxref("Math.tanh()", "tanh()")}}, {{jsxref("Math.acosh()", "acosh()")}}, {{jsxref("Math.asinh()", "asinh()")}}, {{jsxref("Math.atanh()", "atanh()")}}, {{jsxref("Math.hypot()", "hypot()")}}, {{jsxref("Math.trunc()", "trunc()")}}, {{jsxref("Math.sign()", "sign()")}}, {{jsxref("Math.imul()", "imul()")}}, {{jsxref("Math.fround()", "fround()")}}, {{jsxref("Math.cbrt()", "cbrt()")}} y {{jsxref("Math.clz32()", "clz32()")}} añadidos.
{{SpecName('ESDraft', '#sec-math-object', 'Math')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
{{Compat("javascript.builtins.Math")}}
- -

Ver también

- -
    -
  • {{jsxref("Number")}}
  • -
+}; +``` + +Pruébalo: + +```js +console.log(Math.gcd(20, 30, 15, 70, 40)); // `5` +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición Inicial. Implementado en JavaScript 1.1. | +| {{SpecName('ES5.1', '#sec-15.8', 'Math')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math-object', 'Math')}} | {{Spec2('ES6')}} | Nuevos métodos {{jsxref("Math.log10()", "log10()")}}, {{jsxref("Math.log2()", "log2()")}}, {{jsxref("Math.log1p()", "log1p()")}}, {{jsxref("Math.expm1()", "expm1()")}}, {{jsxref("Math.cosh()", "cosh()")}}, {{jsxref("Math.sinh()", "sinh()")}}, {{jsxref("Math.tanh()", "tanh()")}}, {{jsxref("Math.acosh()", "acosh()")}}, {{jsxref("Math.asinh()", "asinh()")}}, {{jsxref("Math.atanh()", "atanh()")}}, {{jsxref("Math.hypot()", "hypot()")}}, {{jsxref("Math.trunc()", "trunc()")}}, {{jsxref("Math.sign()", "sign()")}}, {{jsxref("Math.imul()", "imul()")}}, {{jsxref("Math.fround()", "fround()")}}, {{jsxref("Math.cbrt()", "cbrt()")}} y {{jsxref("Math.clz32()", "clz32()")}} añadidos. | +| {{SpecName('ESDraft', '#sec-math-object', 'Math')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Math")}} + +## Ver también + +- {{jsxref("Number")}} diff --git a/files/es/web/javascript/reference/global_objects/math/ln10/index.md b/files/es/web/javascript/reference/global_objects/math/ln10/index.md index f4cfcd95549195..bcfd798958fa0a 100644 --- a/files/es/web/javascript/reference/global_objects/math/ln10/index.md +++ b/files/es/web/javascript/reference/global_objects/math/ln10/index.md @@ -9,75 +9,47 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/LN10 original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/LN10 --- -
{{JSRef}}
+{{JSRef}} -

La propiedad Math.LN10 representa el logaritmo natural de 10, aproximadamente 2.302:

+La propiedad **`Math.LN10`** representa el logaritmo natural de 10, aproximadamente 2.302: -

Math.LN10=ln(10)2.302\mathtt{\mi{Math.LN10}} = \ln(10) \approx 2.302

+Math.LN10=ln(10)2.302\mathtt{\mi{Math.LN10}} = \ln(10) \approx 2.302 -
{{EmbedInteractiveExample("pages/js/math-ln10.html")}}
+{{EmbedInteractiveExample("pages/js/math-ln10.html")}}{{js_property_attributes(0, 0, 0)}} -
+## Descripción -
{{js_property_attributes(0, 0, 0)}}
+Porque `LN10` es una propiedad estática de `Math`, siempre usted lo usa como `Math.LN10`, en lugar de como una propiedad de un objeto `Math` creado (`Math` no es un constructor). -

Descripción

+## Ejemplos -

Porque LN10 es una propiedad estática de Math, siempre usted lo usa como Math.LN10, en lugar de como una propiedad de un objeto Math creado (Math no es un constructor).

+### Utilizando `Math.LN10` -

Ejemplos

+La función siguiente devuelve el logaritmo natural de 10: -

Utilizando Math.LN10

- -

La función siguiente devuelve el logaritmo natural de 10:

- -
function getNatLog10() {
+```js
+function getNatLog10() {
    return Math.LN10
 }
 
 getNatLog10(); // 2.302585092994046
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.1.2', 'Math.LN10')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.ln10', 'Math.LN10')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.ln10', 'Math.LN10')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -

{{Compat("javascript.builtins.Math.LN10")}}

- -

Ver también

- -
    -
  • {{jsxref("Math.exp()")}}
  • -
  • {{jsxref("Math.log()")}}
  • -
  • {{jsxref("Math.log10()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------ | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.1.2', 'Math.LN10')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.ln10', 'Math.LN10')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-math.ln10', 'Math.LN10')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Math.LN10")}} + +## Ver también + +- {{jsxref("Math.exp()")}} +- {{jsxref("Math.log()")}} +- {{jsxref("Math.log10()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/ln2/index.md b/files/es/web/javascript/reference/global_objects/math/ln2/index.md index 9cf56b0d8cad15..25a33d7ef20ab2 100644 --- a/files/es/web/javascript/reference/global_objects/math/ln2/index.md +++ b/files/es/web/javascript/reference/global_objects/math/ln2/index.md @@ -9,74 +9,47 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/LN2 original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/LN2 --- -
{{JSRef}}
+{{JSRef}} -

La propiedad Math.LN2 representa el logaritmo natural de 2, aproximadamente 0.693:

+La propiedad **`Math.LN2`** representa el logaritmo natural de 2, aproximadamente 0.693: -

Math.LN2=ln(2)0.693\mathtt{\mi{Math.LN2}} = \ln(2) \approx 0.693

+Math.LN2=ln(2)0.693\mathtt{\mi{Math.LN2}} = \ln(2) \approx 0.693 -
{{EmbedInteractiveExample("pages/js/math-ln2.html")}}
+{{EmbedInteractiveExample("pages/js/math-ln2.html")}}{{js_property_attributes(0, 0, 0)}} -
+## Descripción -
{{js_property_attributes(0, 0, 0)}}
+Como `LN2` es una propiedad estática de `Math`, siempre se usa como `Math.LN2`, en lugar de como una propiedad de un objeto `Math` que ha creado (`Math` no es un constructor). -

Descripción

+## Ejemplos -

Como LN2 es una propiedad estática de Math, siempre se usa como Math.LN2, en lugar de como una propiedad de un objeto Math que ha creado (Math no es un constructor).

+### Utilizando `Math.LN2` -

Ejemplos

+La función siguiente devuelve el logaritmo natural de 2: -

Utilizando Math.LN2

- -

La función siguiente devuelve el logaritmo natural de 2:

- -
function getNatLog2() {
+```js
+function getNatLog2() {
   return Math.LN2;
 }
 
-getNatLog2(); // 0.6931471805599453
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.1.3', 'Math.LN2')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.ln2', 'Math.LN2')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.ln2', 'Math.LN2')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -

{{Compat("javascript.builtins.Math.LN2")}}

- -

Ver también

- -
    -
  • {{jsxref("Math.exp()")}}
  • -
  • {{jsxref("Math.log()")}}
  • -
  • {{jsxref("Math.log2()")}}
  • -
+getNatLog2(); // 0.6931471805599453 +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.1.3', 'Math.LN2')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.ln2', 'Math.LN2')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-math.ln2', 'Math.LN2')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Math.LN2")}} + +## Ver también + +- {{jsxref("Math.exp()")}} +- {{jsxref("Math.log()")}} +- {{jsxref("Math.log2()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/log/index.md b/files/es/web/javascript/reference/global_objects/math/log/index.md index 4d9c08ec16dc23..d8013ea547dbea 100644 --- a/files/es/web/javascript/reference/global_objects/math/log/index.md +++ b/files/es/web/javascript/reference/global_objects/math/log/index.md @@ -4,108 +4,77 @@ slug: Web/JavaScript/Reference/Global_Objects/Math/log translation_of: Web/JavaScript/Reference/Global_Objects/Math/log original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/log --- -
{{JSRef}}
+{{JSRef}} -

La función Math.log() devuelve la base neutral de un número (base {{jsxref ("Math.E", "e")}})

+La función **`Math.log()`** devuelve la base neutral de un número (base {{jsxref ("Math.E", "e")}}) -

x>0,Math.log(x)=ln(x)=the uniqueysuch thatey=x\forall x > 0, \mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{el unico} \; y \; \text{tal que} \; e^y = x

+x>0,Math.log(x)=ln(x)=the uniqueysuch thatey=x\forall x > 0, \mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{el unico} \; y \; \text{tal que} \; e^y = x -

+La función en JavaScrcrip **`Math.log()`** es equivalente a _ln(x)_ en matematicas. -

La función en JavaScrcrip Math.log() es equivalente a ln(x) en matematicas.

+{{EmbedInteractiveExample("pages/js/math-log.html")}} -
{{EmbedInteractiveExample("pages/js/math-log.html")}}
+## Sintaxis + Math.log(x) +### Parametetros -

Sintaxis

+- `x` + - : Es un numero. -
Math.log(x)
+### Retorna el valor -

Parametetros

+La base natural (base {{jsxref("Math.E", "e")}}) del número dado. Si el número es negativo, se devuelve {{jsxref("NaN")}} -
-
x
-
Es un numero.
-
+## Descripcion -

Retorna el valor

+If the value of `x` is negative, the return value is always {{jsxref("NaN")}}. -

+Because `log()` is a static method of `Math`, you always use it as `Math.log()`, rather than as a method of a `Math` object you created (`Math` is not a constructor). -

La base natural (base {{jsxref("Math.E", "e")}}) del número dado. Si el número es negativo, se devuelve {{jsxref("NaN")}}

+If you need the natural log of 2 or 10, use the constants {{jsxref("Math.LN2")}} or {{jsxref("Math.LN10")}} . If you need a logarithm to base 2 or 10, use {{jsxref("Math.log2()")}} or {{jsxref("Math.log10()")}} . If you need a logarithm to other bases, use Math.log(x) / Math.log(otherBase) as in the example below; you might want to precalculate 1 / Math.log(otherBase) . -

Descripcion

+## Examples -

If the value of x is negative, the return value is always {{jsxref("NaN")}}.

+### Using `Math.log()` -

Because log() is a static method of Math, you always use it as Math.log(), rather than as a method of a Math object you created (Math is not a constructor).

- -

If you need the natural log of 2 or 10, use the constants {{jsxref("Math.LN2")}} or {{jsxref("Math.LN10")}} . If you need a logarithm to base 2 or 10, use {{jsxref("Math.log2()")}} or {{jsxref("Math.log10()")}} . If you need a logarithm to other bases, use Math.log(x) / Math.log(otherBase) as in the example below; you might want to precalculate 1 / Math.log(otherBase) .

- -

Examples

- -

Using Math.log()

- -
Math.log(-1); // NaN, out of range
+```js
+Math.log(-1); // NaN, out of range
 Math.log(0);  // -Infinity
 Math.log(1);  // 0
 Math.log(10); // 2.302585092994046
-
+``` -

Using Math.log() with a different base

+### Using `Math.log()` with a different base -

The following function returns the logarithm of y with base x (ie. logxy\log_x y):

+The following function returns the logarithm of `y` with base `x` (ie. logxy\log_x y): -
function getBaseLog(x, y) {
+```js
+function getBaseLog(x, y) {
   return Math.log(y) / Math.log(x);
 }
-
- -

If you run getBaseLog(10, 1000) it returns 2.9999999999999996 due to floating-point rounding, which is very close to the actual answer of 3.

- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition. Implemented in JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.10', 'Math.log')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.log', 'Math.log')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.log', 'Math.log')}}{{Spec2('ESDraft')}}
- -

Browser compatibility

- -

{{Compat("javascript.builtins.Math.log")}}

- -

See also

- -
    -
  • {{jsxref("Math.exp()")}}
  • -
  • {{jsxref("Math.log1p()")}}
  • -
  • {{jsxref("Math.log10()")}}
  • -
  • {{jsxref("Math.log2()")}}
  • -
  • {{jsxref("Math.pow()")}}
  • -
+``` + +If you run `getBaseLog(10, 1000)` it returns `2.9999999999999996` due to floating-point rounding, which is very close to the actual answer of 3. + +## Specifications + +| Specification | Status | Comment | +| -------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Initial definition. Implemented in JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.2.10', 'Math.log')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.log', 'Math.log')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-math.log', 'Math.log')}} | {{Spec2('ESDraft')}} | | + +## Browser compatibility + +{{Compat("javascript.builtins.Math.log")}} + +## See also + +- {{jsxref("Math.exp()")}} +- {{jsxref("Math.log1p()")}} +- {{jsxref("Math.log10()")}} +- {{jsxref("Math.log2()")}} +- {{jsxref("Math.pow()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/log10/index.md b/files/es/web/javascript/reference/global_objects/math/log10/index.md index 5f9c160fd26b19..3b75f210987f9a 100644 --- a/files/es/web/javascript/reference/global_objects/math/log10/index.md +++ b/files/es/web/javascript/reference/global_objects/math/log10/index.md @@ -4,87 +4,70 @@ slug: Web/JavaScript/Reference/Global_Objects/Math/log10 translation_of: Web/JavaScript/Reference/Global_Objects/Math/log10 original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/log10 --- -
{{JSRef}}
+{{JSRef}} -

Math.log10() funcion que retorna el logaritmo de base 10 de un numero, esto es

+**`Math.log10()`** funcion que retorna el logaritmo de base 10 de un numero, esto es -

x>0,Math.log10(x)=log10(x)=la unicay tal que10y=x\forall x > 0, \mathtt{\operatorname{Math.log10}(x)} = \log_10(x) = \text{the unique} \; y \; \text{such that} \; 10^y = x

+x>0,Math.log10(x)=log10(x)=la unicay tal que10y=x\forall x > 0, \mathtt{\operatorname{Math.log10}(x)} = \log_10(x) = \text{the unique} \; y \; \text{such that} \; 10^y = x -

Sintaxis

+## Sintaxis -
Math.log10(x)
+ Math.log10(x) -

Parametros

+### Parametros -
-
x
-
Un Numero
-
+- `x` + - : Un Numero -

Valor de Retorno

+### Valor de Retorno -

El logaritmo de base 10 del numero dado. SI el numero es negativo, {{jsxref("NaN")}} es devuelto.

+El logaritmo de base 10 del numero dado. SI el numero es negativo, {{jsxref("NaN")}} es devuelto. -

Descripción

+## Descripción -

Si el valor de x es menor que cero, el valor de retorno siempre es {{jsxref("NaN")}}.

+Si el valor de x es menor que cero, el valor de retorno siempre es {{jsxref("NaN")}}. -

Porque log10() es un metodo estatico de Math, debe usarse siempre Math.log10(), en vez de usarse como un metodo del objeto math que se ha creado (Math no es un constructor).

+Porque `log10()` `es un metodo estatico de Math`, debe usarse siempre `Math.log10()`, en vez de usarse como un metodo del objeto math que se ha creado (`Math` no es un constructor). -

Esta función es equivalente de Math.log(x) / Math.log(10). Para log10(e) use la constante {{jsxref("Math.LOG10E")}} que es 1 / {{jsxref("Math.LN10")}}.

+Esta función es equivalente de Math.log(x) / Math.log(10). Para log10(e) use la constante {{jsxref("Math.LOG10E")}} que es 1 / {{jsxref("Math.LN10")}}. -

Ejemplos

+## Ejemplos -

usando Math.log10()

+### usando `Math.log10()` -
Math.log10(2);      // 0.3010299956639812
+```js
+Math.log10(2);      // 0.3010299956639812
 Math.log10(1);      // 0
 Math.log10(0);      // -Infinito
 Math.log10(-2);     // NaN
 Math.log10(100000); // 5
-
+``` -

Polyfill

+## Polyfill -

Puede ser emulada con la siguiente función

+Puede ser emulada con la siguiente función -
Math.log10 = Math.log10 || function(x) {
+```js
+Math.log10 = Math.log10 || function(x) {
   return Math.log(x) * Math.LOG10E;
 };
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificacionEstadoComentarios
{{SpecName('ES6', '#sec-math.log10', 'Math.log10')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-math.log10', 'Math.log10')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con Navegadores

+``` + +## Especificaciones + +| Especificacion | Estado | Comentarios | +| ---------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-math.log10', 'Math.log10')}} | {{Spec2('ES6')}} | Initial definition. | +| {{SpecName('ESDraft', '#sec-math.log10', 'Math.log10')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con Navegadores {{Compat("javascript.builtins.Math.log10")}} -

Vea Tambien

+## Vea Tambien -
    -
  • {{jsxref("Math.exp()")}}
  • -
  • {{jsxref("Math.log()")}}
  • -
  • {{jsxref("Math.log1p()")}}
  • -
  • {{jsxref("Math.log2()")}}
  • -
  • {{jsxref("Math.pow()")}}
  • -
+- {{jsxref("Math.exp()")}} +- {{jsxref("Math.log()")}} +- {{jsxref("Math.log1p()")}} +- {{jsxref("Math.log2()")}} +- {{jsxref("Math.pow()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/log10e/index.md b/files/es/web/javascript/reference/global_objects/math/log10e/index.md index ffaf2f3cd5838c..702423245cf98b 100644 --- a/files/es/web/javascript/reference/global_objects/math/log10e/index.md +++ b/files/es/web/javascript/reference/global_objects/math/log10e/index.md @@ -9,75 +9,45 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/LOG10E original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/LOG10E --- -
{{JSRef}}
+{{JSRef}}La propiedad **`Math.LOG10E`** representa el logaritmo base 10 de e, el cual es aproximadamente 0.434: -
+Math.LOG10E=log10(e)0.434\mathtt{\mi{Math.LOG10E}} = \log_10(e) \approx 0.434 -
La propiedad Math.LOG10E representa el logaritmo base 10 de e, el cual es aproximadamente 0.434:
+{{js_property_attributes(0, 0, 0)}} -

Math.LOG10E=log10(e)0.434\mathtt{\mi{Math.LOG10E}} = \log_10(e) \approx 0.434

+## Descripción -
{{js_property_attributes(0, 0, 0)}}
+Debido a que LOG10E es una propiedad estatica del módulo Math, se debe de invocar siempre como Math.LOG10E, en lugar de invocarla como una propiedad de algun objeto Math que hayas creado ( Math no es un constructor ). -

Descripción

+## Ejemplos -

Debido a que LOG10E es una propiedad estatica del módulo Math, se debe de invocar siempre como Math.LOG10E, en lugar de invocarla como una propiedad de algun objeto Math que hayas creado ( Math no es un constructor ).

+### Utilizando `Math.LOG10E` -

Ejemplos

+La siguiente funcion regresa el logaritmo base 10 de e: -

Utilizando Math.LOG10E

- -

La siguiente funcion regresa el logaritmo base 10 de e:

- -
function getLog10e() {
+```js
+function getLog10e() {
   return Math.LOG10E;
 }
 
 getLog10e(); // 0.4342944819032518
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificacionEstatusComentarios
{{SpecName('ES1')}}{{Spec2('ES1')}} -

Definición inicial. Implementado en JavaScript 1.0.

-
{{SpecName('ES5.1', '#sec-15.8.1.5', 'Math.LOG10E')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.log10e', 'Math.LOG10E')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.log10e', 'Math.LOG10E')}}{{Spec2('ESDraft')}}
+| Especificacion | Estatus | Comentarios | +| ---------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.1.5', 'Math.LOG10E')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.log10e', 'Math.LOG10E')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-math.log10e', 'Math.LOG10E')}} | {{Spec2('ESDraft')}} | | - +## Navegadores Compatibles {{Compat("javascript.builtins.Math.LOG10E")}} -

Ver tambien

+## Ver tambien -
    -
  • {{jsxref("Math.exp()")}}
  • -
  • {{jsxref("Math.log()")}}
  • -
  • {{jsxref("Math.log10()")}}
  • -
+- {{jsxref("Math.exp()")}} +- {{jsxref("Math.log()")}} +- {{jsxref("Math.log10()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/log2/index.md b/files/es/web/javascript/reference/global_objects/math/log2/index.md index 7f499748367acf..540bcdf121f918 100644 --- a/files/es/web/javascript/reference/global_objects/math/log2/index.md +++ b/files/es/web/javascript/reference/global_objects/math/log2/index.md @@ -4,92 +4,73 @@ slug: Web/JavaScript/Reference/Global_Objects/Math/log2 translation_of: Web/JavaScript/Reference/Global_Objects/Math/log2 original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/log2 --- -
{{JSRef}}
+{{JSRef}} -

La función Math.log2() retorna el logaritmo base 2 de un número, esto es

+La función **`Math.log2()`** retorna el logaritmo base 2 de un número, esto es -

x>0,Math.log2(x)=log2(x)=the uniqueysuch that2y=x\forall x > 0, \mathtt{\operatorname{Math.log2}(x)} = \log_2(x) = \text{the unique} \; y \; \text{such that} \; 2^y = x

+x>0,Math.log2(x)=log2(x)=the uniqueysuch that2y=x\forall x > 0, \mathtt{\operatorname{Math.log2}(x)} = \log_2(x) = \text{the unique} \; y \; \text{such that} \; 2^y = x -
{{EmbedInteractiveExample("pages/js/math-log2.html")}}
+{{EmbedInteractiveExample("pages/js/math-log2.html")}} +## Syntax + Math.log2(x) -

Syntax

+### Parámetros -
Math.log2(x)
+- `x` + - : Un número. -

Parámetros

+### Valor de retorno -
-
x
-
Un número.
-
+El logaritmo base 2 del número usado como parámetro. Si el número es negativo, {{jsxref("NaN")}} será retornado. -

Valor de retorno

+## Descripción -

El logaritmo base 2 del número usado como parámetro. Si el número es negativo, {{jsxref("NaN")}} será retornado.

+Si el valor de `x` es mejor a 0, el valor de retorno es siempre {{jsxref("NaN")}}. -

Descripción

+Debido a que `log2()` es una función estática de `Math`, siempre debe ser usado como `Math.log2()`, en lugar de ser usado como un método del objeto `Math` (`Math` no es un constructor). -

Si el valor de x es mejor a 0, el valor de retorno es siempre {{jsxref("NaN")}}.

+Esta función es equivalente a Math.log(x) / Math.log(2). Para log2(e) use la constante {{jsxref("Math.LOG2E")}} que es 1 / {{jsxref("Math.LN2")}}. -

Debido a que log2() es una función estática de Math, siempre debe ser usado como Math.log2(), en lugar de ser usado como un método del objeto Math (Math no es un constructor).

+## Ejemplos -

Esta función es equivalente a Math.log(x) / Math.log(2). Para log2(e) use la constante {{jsxref("Math.LOG2E")}} que es 1 / {{jsxref("Math.LN2")}}.

+### Usando `Math.log2()` -

Ejemplos

- -

Usando Math.log2()

- -
Math.log2(3);    // 1.584962500721156
+```js
+Math.log2(3);    // 1.584962500721156
 Math.log2(2);    // 1
 Math.log2(1);    // 0
 Math.log2(0);    // -Infinity
 Math.log2(-2);   // NaN
 Math.log2(1024); // 10
-
+``` -

Polyfill

+## Polyfill -

This Polyfill emulates the Math.log2 function. Note that it returns imprecise values on some inputs (like 1 << 29), wrap into {{jsxref("Math.round()")}} if working with bit masks.

+This Polyfill emulates the `Math.log2` function. Note that it returns imprecise values on some inputs (like 1 << 29), wrap into {{jsxref("Math.round()")}} if working with bit masks. -
Math.log2 = Math.log2 || function(x) {
+```js
+Math.log2 = Math.log2 || function(x) {
   return Math.log(x) * Math.LOG2E;
 };
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-math.log2', 'Math.log2')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-math.log2', 'Math.log2')}}{{Spec2('ESDraft')}}
- -

Browser compatibility

- -

{{Compat("javascript.builtins.Math.log2")}}

- -

See also

- -
    -
  • {{jsxref("Math.exp()")}}
  • -
  • {{jsxref("Math.log()")}}
  • -
  • {{jsxref("Math.log10()")}}
  • -
  • {{jsxref("Math.log1p()")}}
  • -
  • {{jsxref("Math.pow()")}}
  • -
+``` + +## Specifications + +| Specification | Status | Comment | +| ------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-math.log2', 'Math.log2')}} | {{Spec2('ES2015')}} | Initial definition. | +| {{SpecName('ESDraft', '#sec-math.log2', 'Math.log2')}} | {{Spec2('ESDraft')}} | | + +## Browser compatibility + +{{Compat("javascript.builtins.Math.log2")}} + +## See also + +- {{jsxref("Math.exp()")}} +- {{jsxref("Math.log()")}} +- {{jsxref("Math.log10()")}} +- {{jsxref("Math.log1p()")}} +- {{jsxref("Math.pow()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/log2e/index.md b/files/es/web/javascript/reference/global_objects/math/log2e/index.md index e338dcccf1f0f8..24aa18c8b0a085 100644 --- a/files/es/web/javascript/reference/global_objects/math/log2e/index.md +++ b/files/es/web/javascript/reference/global_objects/math/log2e/index.md @@ -8,21 +8,30 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/LOG2E original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/LOG2E --- -
- {{JSRef("Objetos_globales", "Math")}}
-

Resumen

-

El base 2 del logaritmo natural de E (aproximadamente 1.442).

-
- {{js_property_attributes(0,0,0)}}
-

Descripción

-

Porque LOG2E es una propiedad estática de Math, siempre usted lo usa como Math.LOG2E, en lugar de una propedad de un objecto de Math usted creó.

-

Ejemplos

-

Ejemplo: Usar Math.LOG2E

-

La función siguiente devuelve el base 2 del logaritmo natural del E:

-
function getLog2e() {
+{{JSRef("Objetos_globales", "Math")}}
+
+## Resumen
+
+El base 2 del logaritmo natural de E (aproximadamente 1.442).
+
+{{js_property_attributes(0,0,0)}}
+
+## Descripción
+
+Porque `LOG2E` es una propiedad estática de `Math`, siempre usted lo usa como `Math.LOG2E`, en lugar de una propedad de un objecto de `Math` usted creó.
+
+## Ejemplos
+
+### Ejemplo: Usar `Math.LOG2E`
+
+La función siguiente devuelve el base 2 del logaritmo natural del `E`:
+
+```js
+function getLog2e() {
    return Math.LOG2E
-}
-

Ven También

-
    -
  • El {{jsxref("Math")}} objeto.
  • -
+} +``` + +## Ven También + +- El {{jsxref("Math")}} objeto. diff --git a/files/es/web/javascript/reference/global_objects/math/min/index.md b/files/es/web/javascript/reference/global_objects/math/min/index.md index d5af63eae0b337..ff910842ca4876 100644 --- a/files/es/web/javascript/reference/global_objects/math/min/index.md +++ b/files/es/web/javascript/reference/global_objects/math/min/index.md @@ -9,95 +9,71 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/min original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/min --- -
{{JSRef}}
+{{JSRef}} -

La función Math.min() devuelve el menor de cero o más números.

+La función **`Math.min()`** devuelve el menor de cero o más números. -

Sintaxis

+## Sintaxis -
Math.min([valor1[, valor2[, ...]]])
+ Math.min([valor1[, valor2[, ...]]]) -

Parámetros

+### Parámetros -
-
valor1, valor2, ...
-
Números.
-
+- `valor1, valor2, ...` + - : Números. -

Descripción

+## Descripción -

Ya que min() es un método estático de Math, siempre debe usarse como Math.min(), en lugar de como un método de un objeto Math instanciado (Math no es un constructor).

+Ya que `min()` es un método estático de `Math`, siempre debe usarse como `Math.min()`, en lugar de como un método de un objeto `Math` instanciado (Math no es un constructor). -

Si no se proporcionan argumentos, el resultado es {{jsxref("Infinity")}}.

+Si no se proporcionan argumentos, el resultado es {{jsxref("Infinity")}}. -

Si al menos uno de los argumentos no puede ser convertido a número, el resultado es {{jsxref("NaN")}}.

+Si al menos uno de los argumentos no puede ser convertido a número, el resultado es {{jsxref("NaN")}}. -

Ejemplos

+## Ejemplos -

Usando Math.min()

+### Usando `Math.min()` -

Lo siguiente encuentra el mínimo de x e y y lo asigna a z:

+Lo siguiente encuentra el mínimo de `x` e `y` y lo asigna a `z`: -
var x = 10, y = -20;
+```js
+var x = 10, y = -20;
 var z = Math.min(x, y);
-
+``` -

Recortando un valor con Math.min()

+### Recortando un valor con `Math.min()` -

Math.min() es a menudo usado para recortar un valor de tal manera que siempre sea menor o igual a un límite. Este ejemplo

+`Math.min()` es a menudo usado para recortar un valor de tal manera que siempre sea menor o igual a un límite. Este ejemplo -
var x = f(foo);
+```js
+var x = f(foo);
 
-if (x > limite) {
+if (x > limite) {
   x = limite;
 }
-
- -

puede ser escrito de la siguiente manera

- -
var x = Math.min(f(foo), limite);
-
- -

{{jsxref("Math.max()")}} puede ser usado en una forma similar para recortar un valor en el otro extremo.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementada en JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.12', 'Math.min')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.min', 'Math.min')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.min', 'Math.min')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

+``` + +puede ser escrito de la siguiente manera + +```js +var x = Math.min(f(foo), limite); +``` + +{{jsxref("Math.max()")}} puede ser usado en una forma similar para recortar un valor en el otro extremo. + +## Especificaciones + +| Especificación | Estatus | Comentario | +| -------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementada en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.2.12', 'Math.min')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.min', 'Math.min')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-math.min', 'Math.min')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Math.min")}} -

Ver además

+## Ver además -
    -
  • {{jsxref("Math.max()")}}
  • -
+- {{jsxref("Math.max()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/pi/index.md b/files/es/web/javascript/reference/global_objects/math/pi/index.md index b795b5ef77663e..e93ab2f8356fe9 100644 --- a/files/es/web/javascript/reference/global_objects/math/pi/index.md +++ b/files/es/web/javascript/reference/global_objects/math/pi/index.md @@ -9,71 +9,43 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/PI original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/PI --- -
{{JSRef}}
+{{JSRef}}La propiedad **`Math.PI`** representa la relacion entre la longitud de la circunferencia de un circulo y su diametro, la cual es aproximadamente 3.14159. -
La propiedad Math.PI representa la relacion entre la longitud de la circunferencia de un circulo y su diametro, la cual es aproximadamente 3.14159.
+Math.PI=π3.14159\mathtt{\mi{Math.PI}} = \pi \approx 3.14159 -

Math.PI=π3.14159\mathtt{\mi{Math.PI}} = \pi \approx 3.14159

+{{js_property_attributes(0, 0, 0)}} -
{{js_property_attributes(0, 0, 0)}}
+## Descripción -

Descripción

+Debido a que PI es una propiedad estatica del modulo **`Math`**, siempre debes de utilizarla como **`Math.PI`**, en lugar de una propiedad de un objeto **`Math`** que tu hayas creado ( **`Math`** no es un constructor ). -

Debido a que PI es una propiedad estatica del modulo Math, siempre debes de utilizarla como Math.PI, en lugar de una propiedad de un objeto Math que tu hayas creado ( Math no es un constructor ).

+## Ejemplos -

Ejemplos

+### Utilizando `Math.PI` -

Utilizando Math.PI

+La siguiente función utiliza **`Math.PI`** para calcular la longitud de la circunferencia de un circulo mediante el radio del circulo proporcionado como parametro. -

La siguiente función utiliza Math.PI para calcular la longitud de la circunferencia de un circulo mediante el radio del circulo proporcionado como parametro.

- -
function calculaCircunferencia(radio) {
+```js
+function calculaCircunferencia(radio) {
   return 2 * Math.PI * radio;
 }
 
 calculaCircunferencia(1);  // 6.283185307179586
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
{{SpecName('ES1')}}{{Spec2('ES1')}} -

Definición inicial. Implementado en JavaScript 1.0.

-
{{SpecName('ES5.1', '#sec-15.8.1.6', 'Math.PI')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.pi', 'Math.PI')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.pi', 'Math.PI')}}{{Spec2('ESDraft')}}
+| Especificación | Estatus | Comentario | +| -------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.1.6', 'Math.PI')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.pi', 'Math.PI')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-math.pi', 'Math.PI')}} | {{Spec2('ESDraft')}} | | - +## Navegadores Compatibles {{Compat("javascript.builtins.Math.PI")}} -

Ver tambien

+## Ver tambien -
    -
  • {{jsxref("Math")}}
  • -
+- {{jsxref("Math")}} diff --git a/files/es/web/javascript/reference/global_objects/math/pow/index.md b/files/es/web/javascript/reference/global_objects/math/pow/index.md index 2dda4a78d715e3..f63da0940c6c44 100644 --- a/files/es/web/javascript/reference/global_objects/math/pow/index.md +++ b/files/es/web/javascript/reference/global_objects/math/pow/index.md @@ -4,36 +4,35 @@ slug: Web/JavaScript/Reference/Global_Objects/Math/pow translation_of: Web/JavaScript/Reference/Global_Objects/Math/pow original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/pow --- -
{{JSRef("Global_Objects", "Math")}}
+{{JSRef("Global_Objects", "Math")}} -

Resumen

+## Resumen -

La función Math.pow() devuelve la base elevada al exponente , esto es, baseexponente.

+La función **`Math.pow()`** devuelve la `base elevada al` `exponente` , esto es, `baseexponente`. -

Sintaxis

+## Sintaxis -
Math.pow(base, exponente)
+ Math.pow(base, exponente) -

Parametros

+### Parametros -
-
base
-
El número base.
-
exponente
-
El exponente utilizado para elevar la base.
-
+- `base` + - : El número base. +- `exponente` + - : El exponente utilizado para elevar la `base`. -

Descripción

+## Descripción -

La función Math.pow() retorna la base elevada al exponente, es decir, baseexponente. La base y el exponente estan en el sistema numérico decimal.

+La función **`Math.pow()`** retorna la `base` elevada al `exponente`, es decir, `baseexponente`. La base y el exponente estan en el sistema numérico decimal. -

Puesto que pow() es un método estático de Math, siempre se utiliza como Math.pow(). Si la base es negativa y el exponente no es un número entero, el resultado será NaN.

+Puesto que `pow()` es un método estático de `Math`, siempre se utiliza como `Math.pow()`. Si la base es negativa y el exponente no es un número entero, el resultado será NaN. -

Ejemplos

+## Ejemplos -

Ejemplo: Usando Math.pow()

+### Ejemplo: Usando `Math.pow()` -
// simple
+```js
+// simple
 Math.pow(7, 2);    // 49
 Math.pow(7, 3);    // 343
 Math.pow(2, 10);   // 1024
@@ -50,44 +49,23 @@ Math.pow(-7, 2);   // 49 (los cuadrados son positivos)
 Math.pow(-7, 3);   // -343 (El cubo de una base negativa puede ser negativo)
 Math.pow(-7, 0.5); // NaN (Los números negativos no tienen raíz cuadrada real)
 Math.pow(-7, 1/3); // NaN
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
ECMAScript 1st Edition.EstándarDefinición inicial implementada en JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.13', 'Math.pow')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.pow', 'Math.pow')}}{{Spec2('ES6')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentarios | +| -------------------------------------------------------------------- | ------------------------ | -------------------------------------------------- | +| ECMAScript 1st Edition. | Estándar | Definición inicial implementada en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.2.13', 'Math.pow')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.pow', 'Math.pow')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Math.pow")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Math.cbrt()")}} {{experimental_inline}}
  • -
  • {{jsxref("Math.exp()")}}
  • -
  • {{jsxref("Math.log()")}}
  • -
  • {{jsxref("Math.sqrt()")}}
  • -
+- {{jsxref("Math.cbrt()")}} {{experimental_inline}} +- {{jsxref("Math.exp()")}} +- {{jsxref("Math.log()")}} +- {{jsxref("Math.sqrt()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/sign/index.md b/files/es/web/javascript/reference/global_objects/math/sign/index.md index 35f3837ab46f11..740501314907aa 100644 --- a/files/es/web/javascript/reference/global_objects/math/sign/index.md +++ b/files/es/web/javascript/reference/global_objects/math/sign/index.md @@ -9,38 +9,37 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/sign original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/sign --- -
{{JSRef}}
+{{JSRef}} -

La función Math.sign() retorna el signo de un número, indicando si el número es positivo, negativo o cero.

+La función **`Math.sign()`** retorna el signo de un número, indicando si el número es positivo, negativo o cero. -

Syntaxis

+## Syntaxis -
Math.sign(x)
+ Math.sign(x) -

Parametros

+### Parametros -
-
x
-
Un número.
-
+- `x` + - : Un número. -

Valor de retorno.

+### Valor de retorno. -

Un número representando el signo del argumento dado. Si el argumento es un número positivo, negativo, cero positivo, o cero negativo, la función retornará 1, -1, 0 or -0 respectivamente. De lo contrario, retorna {{jsxref("NaN")}}.

+Un número representando el signo del argumento dado. Si el argumento es un número positivo, negativo, cero positivo, o cero negativo, la función retornará `1`, `-1`, `0` or `-0` respectivamente. De lo contrario, retorna {{jsxref("NaN")}}. -

Descripción

+## Descripción -

Como sign() es un método estático de Math, siempre se utiliza como Math.sign(), en vez de un método de un objeto Math que hayas creado. (Math no es un constructor).

+Como `sign()` es un método estático de `Math`, siempre se utiliza como `Math.sign()`, en vez de un método de un objeto Math que hayas creado. (`Math` no es un constructor). -

Esta función tiene 5 tipos de valores de retorno, 1, -1, 0, -0, NaN, que representan "número positivo", "número negativo", "cero positivo", "cero negativo" y {{jsxref("NaN")}} respectivamente.

+Esta función tiene 5 tipos de valores de retorno, `1`, `-1`, `0`, `-0`, `NaN`, que representan "número positivo", "número negativo", "cero positivo", "cero negativo" y {{jsxref("NaN")}} respectivamente. -

El argumento pasado a esta función será convertido a tipo x implicitamente.

+El argumento pasado a esta función será convertido a tipo `x` implicitamente. -

Ejemplos

+## Ejemplos -

Usando Math.sign()

+### Usando `Math.sign()` -
Math.sign(3);     //  1
+```js
+Math.sign(3);     //  1
 Math.sign(-3);    // -1
 Math.sign('-3');  // -1
 Math.sign(0);     //  0
@@ -48,11 +47,12 @@ Math.sign(-0);    // -0
 Math.sign(NaN);   // NaN
 Math.sign('foo'); // NaN
 Math.sign();      // NaN
-
+``` -

Polyfill

+## Polyfill -
if (!Math.sign) {
+```js
+if (!Math.sign) {
   Math.sign = function(x) {
     // Si x es NaN, el resultado es NaN.
     // Si x es -0, el resultado es -0.
@@ -63,42 +63,26 @@ Math.sign();      // NaN
     if (x === 0 || isNaN(x)) {
       return Number(x);
     }
-    return x > 0 ? 1 : -1;
+    return x > 0 ? 1 : -1;
   };
-}
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-math.sign', 'Math.sign')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-math.sign', 'Math.sign')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

+} +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-math.sign', 'Math.sign')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-math.sign', 'Math.sign')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Math.sign")}} -

Ver También

+## Ver También -
    -
  • {{jsxref("Math.abs()")}}
  • -
  • {{jsxref("Math.ceil()")}}
  • -
  • {{jsxref("Math.floor()")}}
  • -
  • {{jsxref("Math.round()")}}
  • -
  • {{jsxref("Math.trunc()")}}
  • -
+- {{jsxref("Math.abs()")}} +- {{jsxref("Math.ceil()")}} +- {{jsxref("Math.floor()")}} +- {{jsxref("Math.round()")}} +- {{jsxref("Math.trunc()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/sin/index.md b/files/es/web/javascript/reference/global_objects/math/sin/index.md index 9887b169409b37..1c0290cb8877f9 100644 --- a/files/es/web/javascript/reference/global_objects/math/sin/index.md +++ b/files/es/web/javascript/reference/global_objects/math/sin/index.md @@ -4,76 +4,54 @@ slug: Web/JavaScript/Reference/Global_Objects/Math/sin translation_of: Web/JavaScript/Reference/Global_Objects/Math/sin original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/seno --- -
{{JSRef("Global_Objects", "Math")}}
+{{JSRef("Global_Objects", "Math")}} -

Resumen

+## Resumen -

La función Math.sin() devuelve el seno de un número.

+La función **`Math.sin()`**` devuelve el seno de un número`. -

Sintaxis

+## Sintaxis -
Math.sin(x)
+ Math.sin(x) -

Parámetros

+### Parámetros -
-
x
-
Un número (en radianes).
-
+- `x` + - : Un número (en radianes). -

Descripción

+## Descripción -

El método Math.sin() devuelve un valor numérico entre -1 y 1, que representa el seno del ángulo dado en radianes.
- Debido a que sin() es un método estático de Math, siempre se usa como Math.sin(), en vez de crear un objeto Math y usarlo como un método (Math no es un constructor).

+El método `Math.sin()` devuelve un valor numérico entre -1 y 1, que representa el seno del ángulo dado en radianes. +Debido a que `sin()` es un método estático de `Math`, siempre se usa como `Math.sin()`, en vez de crear un objeto `Math` y usarlo como un método (`Math` no es un constructor). -

Ejemplos

+## Ejemplos -

Ejemplo: Usando Math.sin()

+### Ejemplo: Usando `Math.sin()` -
Math.sin(0);           // 0
+```js
+Math.sin(0);           // 0
 Math.sin(1);           // 0.8414709848078965
 
 Math.sin(Math.PI / 2); // 1
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificacionesEstatusComentarios
ECMAScript 1ª Edición.{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.16', 'Math.sin')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.sin', 'Math.sin')}}{{Spec2('ES6')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificaciones | Estatus | Comentarios | +| -------------------------------------------------------------------- | ------------------------ | --------------------------------------------------- | +| ECMAScript 1ª Edición. | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.2.16', 'Math.sin')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.sin', 'Math.sin')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Math.sin")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Math.acos()")}}
  • -
  • {{jsxref("Math.asin()")}}
  • -
  • {{jsxref("Math.atan()")}}
  • -
  • {{jsxref("Math.atan2()")}}
  • -
  • {{jsxref("Math.cos()")}}
  • -
  • {{jsxref("Math.tan()")}}
  • -
+- {{jsxref("Math.acos()")}} +- {{jsxref("Math.asin()")}} +- {{jsxref("Math.atan()")}} +- {{jsxref("Math.atan2()")}} +- {{jsxref("Math.cos()")}} +- {{jsxref("Math.tan()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/sqrt/index.md b/files/es/web/javascript/reference/global_objects/math/sqrt/index.md index 5f4b8b5c99afde..3f9b7bbd260c79 100644 --- a/files/es/web/javascript/reference/global_objects/math/sqrt/index.md +++ b/files/es/web/javascript/reference/global_objects/math/sqrt/index.md @@ -4,84 +4,58 @@ slug: Web/JavaScript/Reference/Global_Objects/Math/sqrt translation_of: Web/JavaScript/Reference/Global_Objects/Math/sqrt original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/sqrt --- -
{{JSRef}}
+{{JSRef}} -

La función Math.sqrt() retorna la raíz cuadrada de un número, que esx0,Math.sqrt(x)=x=the uniquey0such thaty2=x\forall x \geq 0, \mathtt{Math.sqrt(x)} = \sqrt{x} = \text{the unique} \; y \geq 0 \; \text{such that} \; y^2 = x

+La función **`Math.sqrt()`** retorna la raíz cuadrada de un número, que esx0,Math.sqrt(x)=x=the uniquey0such thaty2=x\forall x \geq 0, \mathtt{Math.sqrt(x)} = \sqrt{x} = \text{the unique} \; y \geq 0 \; \text{such that} \; y^2 = x -

Sintaxis

+## Sintaxis -
Math.sqrt(x)
+ Math.sqrt(x) -

Parámetros

+### Parámetros -
-
x
-
Un numero
-
+- `x` + - : Un numero -

Valor de Retorno

+### Valor de Retorno -

La raíz cuadrada del número proporcionado. Si los números son negativos, {{jsxref("NaN")}} es devuelto.

+La raíz cuadrada del número proporcionado. Si los números son negativos, {{jsxref("NaN")}} es devuelto. -

Descripción

+## Descripción -

Si el valor de x es negativo Math.sqrt() retorna {{jsxref("NaN")}}.

+Si el valor de `x` es negativo `Math.sqrt()` retorna {{jsxref("NaN")}}. -

Debido a que sqrt() es un método estático de Math, siempre úsalo como Math.sqrt(), en lugar de un método del objeto Math que hayas creado (Math no es un constructor).

+Debido a que `sqrt()` es un método estático de `Math`, siempre úsalo como `Math.sqrt()`, en lugar de un método del objeto `Math` que hayas creado (`Math` no es un constructor). -

Ejemplos

+## Ejemplos -

Usando Math.sqrt()

+### Usando `Math.sqrt()` -
Math.sqrt(9); // 3
+```js
+Math.sqrt(9); // 3
 Math.sqrt(2); // 1.414213562373095
 
 Math.sqrt(1);  // 1
 Math.sqrt(0);  // 0
 Math.sqrt(-1); // NaN
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementada en JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.17', 'Math.sqrt')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.sqrt', 'Math.sqrt')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.sqrt', 'Math.sqrt')}}{{Spec2('ESDraft')}}
- -

Compatibilidad

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------ | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementada en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.2.17', 'Math.sqrt')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.sqrt', 'Math.sqrt')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-math.sqrt', 'Math.sqrt')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad {{Compat("javascript.builtins.Math.sqrt")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Math.cbrt()")}}
  • -
  • {{jsxref("Math.exp()")}}
  • -
  • {{jsxref("Math.log()")}}
  • -
  • {{jsxref("Math.pow()")}}
  • -
+- {{jsxref("Math.cbrt()")}} +- {{jsxref("Math.exp()")}} +- {{jsxref("Math.log()")}} +- {{jsxref("Math.pow()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/sqrt1_2/index.md b/files/es/web/javascript/reference/global_objects/math/sqrt1_2/index.md index ca588b68f79d48..f1edcdaa1c346c 100644 --- a/files/es/web/javascript/reference/global_objects/math/sqrt1_2/index.md +++ b/files/es/web/javascript/reference/global_objects/math/sqrt1_2/index.md @@ -9,68 +9,42 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/SQRT1_2 original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/SQRT1_2 --- -
{{JSRef}}
+{{JSRef}}La propiedad **`Math.SQRT1_2`** representa la raiz cuadrada de 1/2, la cual es equivalente al inverso de la raiz cuadrada de 2, aproximadadamente 0.707: -
La propiedad Math.SQRT1_2 representa la raiz cuadrada de 1/2, la cual es equivalente al inverso de la raiz cuadrada de 2, aproximadadamente 0.707:
+Math.SQRT1_2=12=120.707\mathtt{\mi{Math.SQRT1_2}} = \sqrt{\frac{1}{2}} = \frac{1}{\sqrt{2}} \approx 0.707 -

Math.SQRT1_2=12=120.707\mathtt{\mi{Math.SQRT1_2}} = \sqrt{\frac{1}{2}} = \frac{1}{\sqrt{2}} \approx 0.707

+## Descripción -

Descripción

+Debido a que SQRT1_2 es una propiedad estatica de Math, siempre debes utilizarla como Math.SQRT1_2, en lugar de invocarla como una propiedad de alguna instancia de Math que hayas creado ( Math no es un constructor ). -

Debido a que SQRT1_2 es una propiedad estatica de Math, siempre debes utilizarla como Math.SQRT1_2, en lugar de invocarla como una propiedad de alguna instancia de Math que hayas creado ( Math no es un constructor ).

+## Ejemplos -

Ejemplos

+### Utilizando `Math.SQRT1_2` -

Utilizando Math.SQRT1_2

+La siguiente funcion regresa la raiz cuadrada de 1/2: -

La siguiente funcion regresa la raiz cuadrada de 1/2:

- -
function getRoot1_2() {
+```js
+function getRoot1_2() {
   return Math.SQRT1_2;
 }
 
 getRoot1_2(); // 0.7071067811865476
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentarios
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en Javascript 1.0.
{{SpecName('ES5.1', '#sec-15.8.1.7', 'Math.SQRT1_2')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.sqrt1_2', 'Math.SQRT1_2')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.sqrt1_2', 'Math.SQRT1_2')}}{{Spec2('ESDraft')}}
+| Especificación | Estatus | Comentarios | +| -------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en Javascript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.1.7', 'Math.SQRT1_2')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.sqrt1_2', 'Math.SQRT1_2')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-math.sqrt1_2', 'Math.SQRT1_2')}} | {{Spec2('ESDraft')}} | | - +## Navegadores Compatibles {{Compat("javascript.builtins.Math.SQRT1_2")}} -

Ver Tambien

+## Ver Tambien -
    -
  • {{jsxref("Math.pow()")}}
  • -
  • {{jsxref("Math.sqrt()")}}
  • -
+- {{jsxref("Math.pow()")}} +- {{jsxref("Math.sqrt()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/sqrt2/index.md b/files/es/web/javascript/reference/global_objects/math/sqrt2/index.md index 27214dd7670c74..cd887db3892103 100644 --- a/files/es/web/javascript/reference/global_objects/math/sqrt2/index.md +++ b/files/es/web/javascript/reference/global_objects/math/sqrt2/index.md @@ -4,74 +4,46 @@ slug: Web/JavaScript/Reference/Global_Objects/Math/SQRT2 translation_of: Web/JavaScript/Reference/Global_Objects/Math/SQRT2 original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/SQRT2 --- -
{{JSRef}}
+{{JSRef}}La propiedad **Math.SQRT2** representa la raíz cuadrada de de 2, aproximadamente 1.414: -
La propiedad Math.SQRT2 representa la raíz cuadrada de de 2, aproximadamente 1.414:
+Math.SQRT2=21.414\mathtt{\mi{Math.SQRT2}} = \sqrt{2} \approx 1.414 -

Math.SQRT2=21.414\mathtt{\mi{Math.SQRT2}} = \sqrt{2} \approx 1.414

+{{js_property_attributes(0, 0, 0)}} -
{{js_property_attributes(0, 0, 0)}}
+## Descripción -

Descripción

+Debido a que SQRT2 es una propiedad estática de `Math`, siempre se utiliza como `Math.SQRT2`, en lugar de una propiedad de un objeto `Math` creado`.` -

Debido a que SQRT2 es una propiedad estática de Math, siempre se utiliza como Math.SQRT2, en lugar de una propiedad de un objeto Math creado.

+## Ejemplos -

Ejemplos

+### Utilizando Math.SQRT2 -

Utilizando Math.SQRT2

+La siguiente función retorna la raíz cuadrada de 2: -

La siguiente función retorna la raíz cuadrada de 2:

- -
function getRoot2() {
+```js
+function getRoot2() {
   return Math.SQRT2;
 }
 
 getRoot2(); // 1.4142135623730951
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
{{SpecName('ES1')}}{{Spec2('ES1')}} -

Definición inicial. Implementada en JavaScript 1.0.

-
{{SpecName('ES5.1', '#sec-15.8.1.8', 'Math.SQRT2')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-math.sqrt2', 'Math.SQRT2')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-math.sqrt2', 'Math.SQRT2')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentarios | +| ---------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementada en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.8.1.8', 'Math.SQRT2')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-math.sqrt2', 'Math.SQRT2')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-math.sqrt2', 'Math.SQRT2')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en navegadores {{Compat("javascript.builtins.Math.SQRT2")}} -

+## -

Ver también

+## Ver también -
    -
  • {{jsxref("Math.pow()")}}
  • -
  • {{jsxref("Math.sqrt()")}}
  • -
+- {{jsxref("Math.pow()")}} +- {{jsxref("Math.sqrt()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/tanh/index.md b/files/es/web/javascript/reference/global_objects/math/tanh/index.md index 5e872b166f0465..2403c26f800e52 100644 --- a/files/es/web/javascript/reference/global_objects/math/tanh/index.md +++ b/files/es/web/javascript/reference/global_objects/math/tanh/index.md @@ -9,88 +9,67 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/tanh original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/tanh --- -
{{JSRef}}
+{{JSRef}} -

La funcion Math.tanh() devuelve la hyperbolica tangente de un numero, esto es

+La funcion **`Math.tanh()`** devuelve la hyperbolica tangente de un numero, esto es -

tanhx=sinhxcoshx=ex-e-xex+e-x=e2x-1e2x+1\tanh x = \frac{\sinh x}{\cosh x} = \frac {e^x - e^{-x}} {e^x + e^{-x}} = \frac{e^{2x} - 1}{e^{2x}+1}

+tanhx=sinhxcoshx=ex-e-xex+e-x=e2x-1e2x+1\tanh x = \frac{\sinh x}{\cosh x} = \frac {e^x - e^{-x}} {e^x + e^{-x}} = \frac{e^{2x} - 1}{e^{2x}+1} -
{{EmbedInteractiveExample("pages/js/math-tanh.html")}}
+{{EmbedInteractiveExample("pages/js/math-tanh.html")}} -

Sintaxis

+## Sintaxis -
Math.tanh(x)
+ Math.tanh(x) -

Parametros

+### Parametros -
-
x
-
Un numero.
-
+- `x` + - : Un numero. -

Devolver valor

+### Devolver valor -

La hyperbolica tangente del numero obtenido.

+La hyperbolica tangente del numero obtenido. -

Descripcion

+## Descripcion -

Porque tanh() es un metodo estatico de Math, siempre se usa como Math.tanh(), en lugar de ser un metodo de Math objeto que creas (Math no es un constructor).

+Porque `tanh()` es un metodo estatico de `Math`, siempre se usa como `Math.tanh()`, en lugar de ser un metodo de `Math` objeto que creas (`Math` no es un constructor). -

Ejemplos

+## Ejemplos -

Usando Math.tanh()

+### Usando `Math.tanh()` -
Math.tanh(0);        // 0
+```js
+Math.tanh(0);        // 0
 Math.tanh(Infinity); // 1
 Math.tanh(1);        // 0.7615941559557649
-
+``` -

Polyfill

+## Polyfill -

Esto puede ser emulado con ayuda de {{jsxref("Math.exp()")}} funcion:

+Esto puede ser emulado con ayuda de {{jsxref("Math.exp()")}} funcion: -
Math.tanh = Math.tanh || function(x){
+```js
+Math.tanh = Math.tanh || function(x){
     var a = Math.exp(+x), b = Math.exp(-x);
     return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (a + b);
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificacionEstadoComentario
{{SpecName('ES2015', '#sec-math.tanh', 'Math.tanh')}}{{Spec2('ES2015')}} -

Definicion inicial.

-
{{SpecName('ESDraft', '#sec-math.tanh', 'Math.tanh')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- - - -

{{Compat("javascript.builtins.Math.tanh")}}

- -

- -
    -
  • {{jsxref("Math.acosh()")}}
  • -
  • {{jsxref("Math.asinh()")}}
  • -
  • {{jsxref("Math.atanh()")}}
  • -
  • {{jsxref("Math.cosh()")}}
  • -
  • {{jsxref("Math.sinh()")}}
  • -
+``` + +## Especificaciones + +| Especificacion | Estado | Comentario | +| ------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-math.tanh', 'Math.tanh')}} | {{Spec2('ES2015')}} | Definicion inicial. | +| {{SpecName('ESDraft', '#sec-math.tanh', 'Math.tanh')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Math.tanh")}} + +## + +- {{jsxref("Math.acosh()")}} +- {{jsxref("Math.asinh()")}} +- {{jsxref("Math.atanh()")}} +- {{jsxref("Math.cosh()")}} +- {{jsxref("Math.sinh()")}} diff --git a/files/es/web/javascript/reference/global_objects/math/trunc/index.md b/files/es/web/javascript/reference/global_objects/math/trunc/index.md index 33db90921b819c..ab6f5c8333ec34 100644 --- a/files/es/web/javascript/reference/global_objects/math/trunc/index.md +++ b/files/es/web/javascript/reference/global_objects/math/trunc/index.md @@ -10,40 +10,39 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Math/trunc original_slug: Web/JavaScript/Referencia/Objetos_globales/Math/trunc --- -
{{JSRef}}
+{{JSRef}} -

La función Math.trunc() devuelve la parte entera de un numero removiendo cualquier dígito decimal (dígitos situados después de la coma).

+La función **`Math.trunc()`** devuelve la parte entera de un numero removiendo cualquier dígito decimal (dígitos situados después de la coma). -

Sintaxis.

+## Sintaxis. -
Math.trunc(x)
+ Math.trunc(x) -

Parámetros.

+### Parámetros. -
-
x
-
Un número.
-
+- `x` + - : Un número. -

Valor de retorno.

+### Valor de retorno. -

La parte entera del número dado.

+La parte entera del número dado. -

Descripción.

+## Descripción. -

A diferencia de los otros tres métodos de Math: {{jsxref("Math.floor()")}}, {{jsxref("Math.ceil()")}} y {{jsxref("Math.round()")}}, la forma en que Math.trunc() funciona es muy simple. trunca (corta) el punto y los dígitos a la derecha de él, sin importar si el argumento es un número positivo o negativo.

+A diferencia de los otros tres métodos de `Math`: {{jsxref("Math.floor()")}}, {{jsxref("Math.ceil()")}} y {{jsxref("Math.round()")}}, la forma en que `Math.trunc()` funciona es muy simple. _trunca_ (corta) el punto y los dígitos a la derecha de él, sin importar si el argumento es un número positivo o negativo. -

Si el argumento es un número positivo, Math.trunc() es equivalente a Math.floor(); de otra forma Math.trunc() es equivalente a Math.ceil().

+Si el argumento es un número positivo, `Math.trunc()` es equivalente a `Math.floor();` de otra forma `Math.trunc()` es equivalente a `Math.ceil()`. -

El argumento pasado a este método será convertido a un tipo numérico entero.

+El argumento pasado a este método será convertido a un tipo numérico entero. -

Debido a que trunc() es un método estático de Math, siempre úsalo como Math.trunc(), en lugar de como un método de un objeto Math que hayas creado (Math no es un constructor).

+Debido a que `trunc()` es un método estático de `Math`, siempre úsalo como `Math.trunc()`, en lugar de como un método de un objeto `Math` que hayas creado (`Math` no es un constructor). -

Ejemplos.

+## Ejemplos. -

Usando Math.trunc()

+### Usando `Math.trunc()` -
Math.trunc(13.37);    // 13
+```js
+Math.trunc(13.37);    // 13
 Math.trunc(42.84);    // 42
 Math.trunc(0.123);    //  0
 Math.trunc(-0.123);   // -0
@@ -51,47 +50,31 @@ Math.trunc('-1.123'); // -1
 Math.trunc(NaN);      // NaN
 Math.trunc('foo');    // NaN
 Math.trunc();         // NaN
-
+``` -

Polyfill.

+## Polyfill. -
Math.trunc = Math.trunc || function (x) {
-    return (x < 0 ? Math.ceil(x) : Math.floor(x));
+```js
+Math.trunc = Math.trunc || function (x) {
+    return (x < 0 ? Math.ceil(x) : Math.floor(x));
 }
-
- -

Especificaciones.

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-math.trunc', 'Math.trunc')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-math.trunc', 'Math.trunc')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores.

+``` + +## Especificaciones. + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-math.trunc', 'Math.trunc')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-math.trunc', 'Math.trunc')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores. {{Compat("javascript.builtins.Math.trunc")}} -

Vea también.

+## Vea también. -
    -
  • {{jsxref("Math.abs()")}}
  • -
  • {{jsxref("Math.ceil()")}}
  • -
  • {{jsxref("Math.floor()")}}
  • -
  • {{jsxref("Math.round()")}}
  • -
  • {{jsxref("Math.sign()")}}
  • -
+- {{jsxref("Math.abs()")}} +- {{jsxref("Math.ceil()")}} +- {{jsxref("Math.floor()")}} +- {{jsxref("Math.round()")}} +- {{jsxref("Math.sign()")}} diff --git a/files/es/web/javascript/reference/global_objects/nan/index.md b/files/es/web/javascript/reference/global_objects/nan/index.md index eff8ff6be4711b..9959089cd8402d 100644 --- a/files/es/web/javascript/reference/global_objects/nan/index.md +++ b/files/es/web/javascript/reference/global_objects/nan/index.md @@ -8,40 +8,36 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/NaN original_slug: Web/JavaScript/Referencia/Objetos_globales/NaN --- -
{{jsSidebar("Objects")}}
+{{jsSidebar("Objects")}} -
-

La propiedad global NaN es un valor que representa Not-A-Number.

-
+La propiedad global `NaN` es un valor que representa Not-A-Number. -

Sumario

+## Sumario -

Un valor representando un Not-A-Number (No es Un Número).

+Un valor representando un Not-A-Number (No es Un Número). -

{{js_property_attributes(0,0,0)}}

+{{js_property_attributes(0,0,0)}} -

Sintaxis

+## Sintaxis -

NaN

+`NaN` -

Descripción

+## Descripción -

NaN es una propiedad del global object (objeto global), por ejemplo, es una variable de alcance global.

+`NaN` es una propiedad del _global object (objeto global)_, por ejemplo, es una variable de alcance global. -

El valor inicial de NaN es Not-A-Number (No es Un Número) - lo mismo que el valor de {{jsxref("Number.NaN")}}.

+El valor inicial de `NaN` es Not-A-Number (No es Un Número) - lo mismo que el valor de {{jsxref("Number.NaN")}}. -

Keep text below in sync with Number.NaN page NaN nunca es equivalente con cualquier otro número, incluido el mismo NaN; no puedes chequear el valor de un not-a-number comparándolo con Number.NaN. Usar la función {{jsxref("isNaN()")}} para aquello.

+Keep text below in sync with Number.NaN page `NaN` nunca es equivalente con cualquier otro número, incluido el mismo `NaN`; no puedes chequear el valor de un not-a-number comparándolo con `Number.NaN`. Usar la función {{jsxref("isNaN()")}} para aquello. -

Muchos métodos de JavaScript (como son el {{jsxref("Number")}} constructor, {{jsxref("parseFloat")}} y {{jsxref("parseInt")}}) retornan NaN si el valor especificado en el parámetro no puede ser parseado como un número.

+Muchos métodos de JavaScript (como son el {{jsxref("Number")}} constructor, {{jsxref("parseFloat")}} y {{jsxref("parseInt")}}) retornan `NaN` si el valor especificado en el parámetro no puede ser parseado como un número. -

Puedes utilizar la propiedad NaN para indicar una condición de error para tu función que devuelva un número en caso de éxito.

+Puedes utilizar la propiedad `NaN` para indicar una condición de error para tu función que devuelva un número en caso de éxito. -

JavaScript imprime el valor Number.NaN como NaN.

+JavaScript imprime el valor `Number.NaN` como `NaN`. -

Ver también

+## Ver también -
    -
  • {{jsxref("Number.NaN")}}
  • -
  • {{jsxref("Number.isNaN()")}}
  • -
  • {{jsxref("Objetos_globales/isNaN", "isNaN()")}}
  • -
+- {{jsxref("Number.NaN")}} +- {{jsxref("Number.isNaN()")}} +- {{jsxref("Objetos_globales/isNaN", "isNaN()")}} diff --git a/files/es/web/javascript/reference/global_objects/number/index.md b/files/es/web/javascript/reference/global_objects/number/index.md index cd64aa8bd88c9e..10ca6a4eb2334c 100644 --- a/files/es/web/javascript/reference/global_objects/number/index.md +++ b/files/es/web/javascript/reference/global_objects/number/index.md @@ -9,174 +9,164 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Number original_slug: Web/JavaScript/Referencia/Objetos_globales/Number --- -
{{JSRef}}
- -

Number es un objeto primitivo envolvente que permite representar y manipular valores numéricos cómo 37 o -9.25. El constructor Number contiene constantes y métodos para trabajar con números. Valores de otro tipo pueden ser convertidos a números usando la función Number().

- -

Sintaxis

- -
new Number(value);
-var a = new Number('123'); // a === 123 es false
-var b = Number('123'); // b === 123 es true
-a instanceof Number; // es true
-b instanceof Number; // es false
+{{JSRef}} -

Parámetros

+**`Number`** es un objeto primitivo envolvente que permite representar y manipular valores numéricos cómo 37 o -9.25. El constructor Number contiene constantes y métodos para trabajar con números. Valores de otro tipo pueden ser convertidos a números usando la función Number(). -
-
valor
-
El valor numérico de un objeto que está siendo creado.
-
+## Sintaxis -

Descripción

+ new Number(value); + var a = new Number('123'); // a === 123 es false + var b = Number('123'); // b === 123 es true + a instanceof Number; // es true + b instanceof Number; // es false -

Los principales usos del objeto Number(valor) son convertir un string u otro valor a uno de tipo numérico; si el argumento no puede ser convertido a un número, devuelve {{jsxref("NaN")}}.

+### Parámetros -

Literal syntax

+- `valor` + - : El valor numérico de un objeto que está siendo creado. -
123    // one-hundred twenty-three
-123.0  // same
-123 === 123.0  // true
+## Descripción -

Function syntax

+Los principales usos del objeto `Number(valor)` son convertir un string u otro valor a uno de tipo numérico; si el argumento no puede ser convertido a un número, devuelve {{jsxref("NaN")}}. -
Number('123')  // retorna el número 123
-Number('123') === 123  // retorna true
+### Literal syntax
 
-Number("unicorn")  // NaN
-Number(undefined)  // NaN
+ 123 // one-hundred twenty-three + 123.0 // same + 123 === 123.0 // true -

Constructor

+### Function syntax -
-
Number()
-
Crea un nuevo valor Numérico ( Number value).
-
+ Number('123') // retorna el número 123 + Number('123') === 123 // retorna true -

Propiedades

+ Number("unicorn") // NaN + Number(undefined) // NaN -
-
{{jsxref("Number.EPSILON")}}
-
El intervalo más pequeño entre dos números representables
-
{{jsxref("Number.MAX_SAFE_INTEGER")}}
-
El número máximo representable en JavaScript (253 - 1).
-
{{jsxref("Number.MAX_VALUE")}}
-
El número más grande representable.
-
{{jsxref("Number.MIN_SAFE_INTEGER")}}
-
El número mínimo representable en JavaScript (-(253 - 1)).
-
{{jsxref("Number.MIN_VALUE")}}
-
El número más pequeño representable - que es el número positivo más cercano a cero (sin llegar a ser cero)-.
-
{{jsxref("Number.NaN")}}
-
Valor especial "no es número" NaN.
-
{{jsxref("Number.NEGATIVE_INFINITY")}}
-
Valor especial para representar infinitos negativos; retorno de un desborde de pila overflow.
-
{{jsxref("Number.POSITIVE_INFINITY")}}
-
Valor especial para representar infinitos positivos; retorno de un desborde de pila overflow.
-
{{jsxref("Number.prototype")}}
-
Permite la adición de propiedades a un objeto Number.
-
+## Constructor -

Métodos

+- [`Number()`](/es/docs/Web/JavaScript/Reference/Global_Objects/Number/Number) + - : Crea un nuevo valor Numérico ( `Number` value). -
-
{{jsxref("Number.isNaN()")}}
-
Determina si el valor es NaN.
-
{{jsxref("Number.isFinite()")}}
-
Determina si el valor es un numero infinito.
-
{{jsxref("Number.isInteger()")}}
-
Determina si un numero es entero.
-
{{jsxref("Number.isSafeInteger()")}}
-
Determine si el valor pasado es un entero seguro (número entre -(253 - 1) y 253 - 1).
-
{{jsxref("Number.toInteger()")}} {{obsolete_inline}}
-
Se usa para evaluar el valor pasado y convertirlo en un entero (or {{jsxref("Global_Objects/Infinity", "Infinity")}}), pero ha sido eliminado.
-
{{jsxref("Number.parseFloat()")}}
-
El valor es el mismo que {{jsxref ("parseFloat", "parseFloat ()")}} del objeto global.
-
{{jsxref("Number.parseInt()")}}
-
El valor es el mismo que {{jsxref("parseInt", "parseInt()")}} del objeto global.
-
+## Propiedades -

Instancias Number

+- {{jsxref("Number.EPSILON")}} + - : El intervalo más pequeño entre dos números representables +- {{jsxref("Number.MAX_SAFE_INTEGER")}} + - : El número máximo representable en JavaScript (`253 - 1`). +- {{jsxref("Number.MAX_VALUE")}} + - : El número más grande representable. +- {{jsxref("Number.MIN_SAFE_INTEGER")}} + - : El número mínimo representable en JavaScript (`-(253 - 1)`). +- {{jsxref("Number.MIN_VALUE")}} + - : El número más pequeño representable - que es el número positivo más cercano a cero (sin llegar a ser cero)-. +- {{jsxref("Number.NaN")}} + - : Valor especial "no es número" NaN. +- {{jsxref("Number.NEGATIVE_INFINITY")}} + - : Valor especial para representar infinitos negativos; retorno de un desborde de pila overflow. +- {{jsxref("Number.POSITIVE_INFINITY")}} + - : Valor especial para representar infinitos positivos; retorno de un desborde de pila overflow. +- {{jsxref("Number.prototype")}} + - : Permite la adición de propiedades a un objeto `Number`. -

Todas las instancias Number heredan de {{jsxref("Number.prototype")}}. El objeto prototipo del constructor de Number puede modificarse para aceptar a todas las instancias de Number.

+## Métodos -

Métodos

+- {{jsxref("Number.isNaN()")}} + - : Determina si el valor es NaN. +- {{jsxref("Number.isFinite()")}} + - : Determina si el valor es un numero infinito. +- {{jsxref("Number.isInteger()")}} + - : Determina si un numero es entero. +- {{jsxref("Number.isSafeInteger()")}} + - : Determine si el valor pasado es un entero seguro (número entre `-(253 - 1)` y `253 - 1`). +- ~~{{jsxref("Number.toInteger()")}} {{obsolete_inline}}~~ + - : ~~Se usa para evaluar el valor pasado y convertirlo en un entero (or {{jsxref("Global_Objects/Infinity", "Infinity")}}), pero ha sido eliminado.~~ +- {{jsxref("Number.parseFloat()")}} + - : El valor es el mismo que {{jsxref ("parseFloat", "parseFloat ()")}} del objeto global. +- {{jsxref("Number.parseInt()")}} + - : El valor es el mismo que {{jsxref("parseInt", "parseInt()")}} del objeto global. -
-
{{jsxref("Number.prototype.toExponential()" ,"Number.prototype.toExponential(fractionDigits)")}}
-
Devuelve una cadena que representa el número en notación exponencial.
-
+## Instancias `Number` -
-
{{jsxref("Number.prototype.toFixed()", "Number.prototype.toFixed(digits)")}}
-
Devuelve una cadena que representa el número en notación de punto fijo.
-
{{jsxref("Number.prototype.toLocaleString()", "Number.prototype.toLocaleString([locales [, options]])")}}
-
Devuelve una cadena con una representación sensible al idioma de este número. Invalida el método {{jsxref ("Object.prototype.toLocaleString ()")}}.
-
- -

Ejemplos

- -

Ejemplo: Utilizando el objeto Number para asignar valores a variables numéricas

- -

El siguiente ejemplo utiliza las propiedades del objeto Number para asignar valores a varias variables numéricas:

- -
const MásgrandeNum    = Number.MAX_VALUE;
+Todas las instancias `Number` heredan de {{jsxref("Number.prototype")}}. El objeto prototipo del constructor de `Number` puede modificarse para aceptar a todas las instancias de `Number`.
+
+### Métodos
+
+- {{jsxref("Number.prototype.toExponential()" ,"Number.prototype.toExponential(fractionDigits)")}}
+  - : Devuelve una cadena que representa el número en notación exponencial.
+
+
+
+- {{jsxref("Number.prototype.toFixed()", "Number.prototype.toFixed(digits)")}}
+  - : Devuelve una cadena que representa el número en notación de punto fijo.
+- {{jsxref("Number.prototype.toLocaleString()", "Number.prototype.toLocaleString([locales [, options]])")}}
+  - : Devuelve una cadena con una representación sensible al idioma de este número. Invalida el método {{jsxref ("Object.prototype.toLocaleString ()")}}.
+
+## Ejemplos
+
+### Ejemplo: Utilizando el objeto `Number` para asignar valores a variables numéricas
+
+El siguiente ejemplo utiliza las propiedades del objeto `Number` para asignar valores a varias variables numéricas:
+
+```js
+const MásgrandeNum    = Number.MAX_VALUE;
 const MáspequeNum     = Number.MIN_VALUE;
 const infinitoNum     = Number.POSITIVE_INFINITY;
 const notInfinitoNum  = Number.NEGATIVE_INFINITY;
 const noEsNum         = Number.NaN;
-
+``` -

Intervalo de enteros para Number

+### Intervalo de enteros para Number -

El siguiente ejemplo muestra los valores máximos y minimos que pueden ser representados mediante el objeto Number:

+El siguiente ejemplo muestra los valores máximos y minimos que pueden ser representados mediante el objeto Number: -

Cuando se analizan datos que se han serializado en JSON, se puede esperar que los valores enteros que se encuentran fuera de este rango se corrompan cuando el analizador JSON los coacciona al tipo Number.

+Cuando se analizan datos que se han serializado en JSON, se puede esperar que los valores enteros que se encuentran fuera de este rango se corrompan cuando el analizador JSON los coacciona al tipo Number. -

Una posible solución es usar {{jsxref ("String")}} en su lugar.

+Una posible solución es usar {{jsxref ("String")}} en su lugar. -

Los números más grandes se pueden representar usando el tipo {{jsxref ("BigInt")}}.

+Los números más grandes se pueden representar usando el tipo {{jsxref ("BigInt")}}. -
const biggestInt  = Number.MAX_SAFE_INTEGER  //  (253 - 1) =>  9007199254740991
-const smallestInt = Number.MIN_SAFE_INTEGER  // -(253 - 1) => -9007199254740991
+ const biggestInt = Number.MAX_SAFE_INTEGER // (253 - 1) => 9007199254740991 + const smallestInt = Number.MIN_SAFE_INTEGER // -(253 - 1) => -9007199254740991 -

Ejemplo: Utilizando el objeto Number para modificar todos los objetos Number

+### Ejemplo: Utilizando el objeto `Number` para modificar todos los objetos `Number` -

El siguiente ejemplo crea un objeto Number, miNúmero, luego añade la propiedad descripción a todos los objetos Number. Luego el valor es asignado a la propiedad descripción del objeto miNúmero.

+El siguiente ejemplo crea un objeto Number, miNúmero, luego añade la propiedad descripción a todos los objetos Number. Luego el valor es asignado a la propiedad descripción del objeto miNúmero. -
miNúmero = new Number(65);
+```js
+miNúmero = new Number(65);
 Number.prototype.descripción = null;
 miNúmero.descripción = "velocidad del viento";
-
- -

Utilizando el objecto Number para transformar un objeto Date

+``` -

El siguiente ejemplo convierte el objeto {{jsxref ("Date")}} a un valor numérico usando Number como función:

+### Utilizando el objecto `Number` para transformar un objeto `Date` -
var d = new Date('December 17, 1995 03:24:00');
-console.log(Number(d));
+El siguiente ejemplo convierte el objeto {{jsxref ("Date")}} a un valor numérico usando `Number` como función: -

Esto muestra "819199440000".

+ var d = new Date('December 17, 1995 03:24:00'); + console.log(Number(d)); -

Convierte cadenas numéricas a números

+Esto muestra "819199440000". -
Number('123')     // 123
-Number('12.3')    // 12.3
-Number('123e-1')  // 12.3
-Number('')        // 0
-Number('0x11')    // 17
-Number('0b11')    // 3
-Number('0o11')    // 9
-Number('foo')     // NaN
-Number('100a')    // NaN
+### Convierte cadenas numéricas a números -
Number('-Infinity') //-Infinity
+ Number('123') // 123 + Number('12.3') // 12.3 + Number('123e-1') // 12.3 + Number('') // 0 + Number('0x11') // 17 + Number('0b11') // 3 + Number('0o11') // 9 + Number('foo') // NaN + Number('100a') // NaN + + Number('-Infinity') //-Infinity -

Vea También

+### Vea También -
    -
  • {{jsxref("Global_Objects/NaN", "NaN")}}
  • -
  • {{jsxref("Global_Objects/Math", "Math")}}
  • -
  • {{jsxref("Arithmetic operators")}}
  • -
+- {{jsxref("Global_Objects/NaN", "NaN")}} +- {{jsxref("Global_Objects/Math", "Math")}} +- {{jsxref("Arithmetic operators")}} diff --git a/files/es/web/javascript/reference/global_objects/number/isfinite/index.md b/files/es/web/javascript/reference/global_objects/number/isfinite/index.md index b06a57ef0cda2c..75aef22da8e70c 100644 --- a/files/es/web/javascript/reference/global_objects/number/isfinite/index.md +++ b/files/es/web/javascript/reference/global_objects/number/isfinite/index.md @@ -4,36 +4,33 @@ slug: Web/JavaScript/Reference/Global_Objects/Number/isFinite translation_of: Web/JavaScript/Reference/Global_Objects/Number/isFinite original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/isFinite --- -
{{JSRef}}
+{{JSRef}} -

El método Number.isFinite() determina si el valor pasado es un número finito.

+El método **`Number.isFinite()`** determina si el valor pasado es un número finito. -
{{EmbedInteractiveExample("pages/js/number-isfinite.html")}}
+{{EmbedInteractiveExample("pages/js/number-isfinite.html")}} +## Syntax + Number.isFinite(valor) -

Syntax

+### Parameters -
Number.isFinite(valor)
+- `valor` + - : El valor cuya finitud será probada. -

Parameters

+### Return value -
-
valor
-
El valor cuya finitud será probada.
-
+Un {{jsxref("Boolean")}} indicando si el valor dado es finito o no. -

Return value

+## Description -

Un {{jsxref("Boolean")}} indicando si el valor dado es finito o no.

+En comparación con la funcion global {{jsxref("isFinite", "isFinite()")}} , este método no convierte el parámetro forzádamente a un número. Esto significa que solo valores de tipo númerico, que también son finitos, retornan `true`. -

Description

+## Ejemplos -

En comparación con la funcion global {{jsxref("isFinite", "isFinite()")}} , este método no convierte el parámetro forzádamente a un número. Esto significa que solo valores de tipo númerico, que también son finitos, retornan true.

- -

Ejemplos

- -
Number.isFinite(Infinity);  // false
+```js
+Number.isFinite(Infinity);  // false
 Number.isFinite(NaN);       // false
 Number.isFinite(-Infinity); // false
 
@@ -44,44 +41,28 @@ Number.isFinite('0');       // false, retornaría true con la función
                             // global isFinite('0')
 Number.isFinite(null);      // false, retornaría true con la función
                             // global isFinite(null)
-
+``` -

Polyfill

+## Polyfill -
Number.isFinite = Number.isFinite || function(value) {
-    return typeof value === 'number' && isFinite(value);
+```js
+Number.isFinite = Number.isFinite || function(value) {
+    return typeof value === 'number' && isFinite(value);
 }
-
- -

Specificaciones

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES6', '#sec-number.isfinite', 'Number.isInteger')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-number.isfinite', 'Number.isInteger')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegador

- -

{{Compat("javascript.builtins.Number.isFinite")}}

- -

Ver también

- -
    -
  • El objeto {{jsxref("Number")}} al que pertenece esta función.
  • -
  • La función global {{jsxref("isFinite")}}.
  • -
+``` + +## Specificaciones + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-number.isfinite', 'Number.isInteger')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-number.isfinite', 'Number.isInteger')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegador + +{{Compat("javascript.builtins.Number.isFinite")}} + +## Ver también + +- El objeto {{jsxref("Number")}} al que pertenece esta función. +- La función global {{jsxref("isFinite")}}. diff --git a/files/es/web/javascript/reference/global_objects/number/isinteger/index.md b/files/es/web/javascript/reference/global_objects/number/isinteger/index.md index d049591c370f03..57afeae32b1dee 100644 --- a/files/es/web/javascript/reference/global_objects/number/isinteger/index.md +++ b/files/es/web/javascript/reference/global_objects/number/isinteger/index.md @@ -9,34 +9,33 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Number/isInteger original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/isInteger --- -
{{JSRef}}
+{{JSRef}} -

El método Number.isInteger() determina si el valor pasado es de tipo entero.

+El método **`Number.isInteger()`** determina si el valor pasado es de tipo entero. -
{{EmbedInteractiveExample("pages/js/number-isinteger.html")}}
+{{EmbedInteractiveExample("pages/js/number-isinteger.html")}} -

Sintaxis

+## Sintaxis -
Number.isInteger(valor)
+ Number.isInteger(valor) -

Parámetros

+### Parámetros -
-
valor
-
El valor a ser probado si es un entero.
-
+- `valor` + - : El valor a ser probado si es un entero. -

Valor devuelto

+### Valor devuelto -

Un {{jsxref("Boolean")}} indicando si el valor dado es un entero o no.

+Un {{jsxref("Boolean")}} indicando si el valor dado es un entero o no. -

Descripción

+## Descripción -

Si el valor seleccionado es un entero, devuelve true, de lo contrario false. Si el valor es {{jsxref("NaN")}} o infinito, devuelve false.

+Si el valor seleccionado es un entero, devuelve `true`, de lo contrario `false`. Si el valor es {{jsxref("NaN")}} o infinito, devuelve `false`. -

Ejemplos

+## Ejemplos -
Number.isInteger(0);         // true
+```js
+Number.isInteger(0);         // true
 Number.isInteger(1);         // true
 Number.isInteger(-100000);   // true
 Number.isInteger(99999999999999999999999); // true
@@ -51,45 +50,29 @@ Number.isInteger('10');      // false
 Number.isInteger(true);      // false
 Number.isInteger(false);     // false
 Number.isInteger([1]);       // false
-
+``` -

Polyfill

+## Polyfill -
Number.isInteger = Number.isInteger || function(value) {
-  return typeof value === 'number' &&
-    isFinite(value) &&
+```js
+Number.isInteger = Number.isInteger || function(value) {
+  return typeof value === 'number' &&
+    isFinite(value) &&
     Math.floor(value) === value;
 };
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-number.isinteger', 'Number.isInteger')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-number.isinteger', 'Number.isInteger')}}{{Spec2('ESDraft')}}
- -

Compatitibilidad con navegadores

- -

{{Compat("javascript.builtins.Number.isInteger")}}

- -

Ver también

- -
    -
  • El objeto {{jsxref("Number")}} al que pertenece.
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-number.isinteger', 'Number.isInteger')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-number.isinteger', 'Number.isInteger')}} | {{Spec2('ESDraft')}} | | + +## Compatitibilidad con navegadores + +{{Compat("javascript.builtins.Number.isInteger")}} + +## Ver también + +- El objeto {{jsxref("Number")}} al que pertenece. diff --git a/files/es/web/javascript/reference/global_objects/number/isnan/index.md b/files/es/web/javascript/reference/global_objects/number/isnan/index.md index afb3eec3b27331..b21c10c2a84fa9 100644 --- a/files/es/web/javascript/reference/global_objects/number/isnan/index.md +++ b/files/es/web/javascript/reference/global_objects/number/isnan/index.md @@ -4,30 +4,29 @@ slug: Web/JavaScript/Reference/Global_Objects/Number/isNaN translation_of: Web/JavaScript/Reference/Global_Objects/Number/isNaN original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/isNaN --- -
{{JSRef}}
+{{JSRef}} -

El método Number.isNaN() determina si el valor pasado es {{jsxref("NaN")}}. Versión más robusta de la función global {{jsxref("isNaN", "isNaN()")}}.

+El método **`Number.isNaN()`** determina si el valor pasado es {{jsxref("NaN")}}. Versión más robusta de la función global {{jsxref("isNaN", "isNaN()")}}. -

Sintaxis

+## Sintaxis -
Number.isNaN(value)
+ Number.isNaN(value) -

Parámetros

+### Parámetros -
-
valor
-
El valor para ser evaluado por {{jsxref("NaN")}}.
-
+- `valor` + - : El valor para ser evaluado por {{jsxref("NaN")}}. -

Description

+## Description -

Debido a los dos operadores de igualdad, {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}} y {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}}, evaluando a false cuando al comprobar si {{jsxref("NaN")}} is {{jsxref("NaN")}}, la función Number.isNaN() se ha convertido en necesaria. Esta situación es diferente a las otras comparaciones de valor en JavaScript.

+Debido a los dos operadores de igualdad, {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}} y {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}}, evaluando a `false` cuando al comprobar si {{jsxref("NaN")}} _is_ {{jsxref("NaN")}}, la función `Number.isNaN()` se ha convertido en necesaria. Esta situación es diferente a las otras comparaciones de valor en JavaScript. -

En comparación a la función global {{jsxref("isNaN", "isNaN()")}}, Number.isNaN() no sufre el problema de forzar la conversión del parámetro a un número. Esto significa que ahora es seguro pasar valores que normalmente se convertirían a {{jsxref("NaN")}}, pero no son del mismo valor que {{jsxref("NaN")}}. Esto también significa que solo los valores de tipo número, que también son {{jsxref("NaN")}}, retornan true.

+En comparación a la función global {{jsxref("isNaN", "isNaN()")}}, `Number.isNaN()` no sufre el problema de forzar la conversión del parámetro a un número. Esto significa que ahora es seguro pasar valores que normalmente se convertirían a {{jsxref("NaN")}}, pero no son del mismo valor que {{jsxref("NaN")}}. Esto también significa que solo los valores de tipo número, que también son {{jsxref("NaN")}}, retornan `true`. -

Examples

+## Examples -
Number.isNaN(NaN);        // true
+```js
+Number.isNaN(NaN);        // true
 Number.isNaN(Number.NaN); // true
 Number.isNaN(0 / 0)       // true
 
@@ -45,49 +44,33 @@ Number.isNaN("37");
 Number.isNaN("37.37");
 Number.isNaN("");
 Number.isNaN(" ");
-
+``` -

Polyfill

+## Polyfill -
Number.isNaN = Number.isNaN || function(value) {
-    return typeof value === "number" && isNaN(value);
+```js
+Number.isNaN = Number.isNaN || function(value) {
+    return typeof value === "number" && isNaN(value);
 }
 
 // O
 Number.isNaN = Number.isNaN || function(value) {
     return value !== value;
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES6', '#sec-number.isnan', 'Number.isnan')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-number.isnan', 'Number.isnan')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegador

+``` + +## Especificaciones + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-number.isnan', 'Number.isnan')}} | {{Spec2('ES6')}} | Initial definition. | +| {{SpecName('ESDraft', '#sec-number.isnan', 'Number.isnan')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegador {{Compat("javascript.builtins.Number.isNaN")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Number")}}
  • -
  • {{jsxref("isNaN", "isNaN()")}}
  • -
+- {{jsxref("Number")}} +- {{jsxref("isNaN", "isNaN()")}} diff --git a/files/es/web/javascript/reference/global_objects/number/issafeinteger/index.md b/files/es/web/javascript/reference/global_objects/number/issafeinteger/index.md index 4d4a2778cb11d6..52716d1a9a31e5 100644 --- a/files/es/web/javascript/reference/global_objects/number/issafeinteger/index.md +++ b/files/es/web/javascript/reference/global_objects/number/issafeinteger/index.md @@ -9,44 +9,38 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/isSafeInteger --- -
{{JSRef}}
+{{JSRef}} -

El método Number.isSafeInteger() determina si el valor provisto es un número que es un entero seguro.

+El método **`Number.isSafeInteger()`** determina si el valor provisto es un número que es un entero seguro. -
{{EmbedInteractiveExample("pages/js/number-issafeinteger.html")}}
+{{EmbedInteractiveExample("pages/js/number-issafeinteger.html")}} +Un entero seguro es un entero que +- puede ser exactamente representado como un número IEEE-754 de doble presición, y +- su representación IEEE-754 no puede ser el resultado de redondear cualquier otro entero para adaptarse a la representación de IEEE-754. -

Un entero seguro es un entero que

+Por ejemplo, `253 - 1` es un entero seguro: puede ser exactamente representado y ningún otro entero puede ser redondeado a él bajo cualquier modo de redondeo de IEEE-754. En contraste, `253` _no_ es un entero seguro, puede ser exactamente representado en IEEE-754, pero el entero `253 + 1` no puede ser directamente representado en IEEE-754 pero en su lugar, redondea a `253` bajo los modos de redondeo _redondeo-al-más-cercano_ y _redondeo-a-cero_. Los enteros seguros consisten en todos los enteros desde `-(253 - 1)` inclusivo, hasta `253 - 1` inclusivo (± `9007199254740991` o ± 9,007,199,254,740,991). -
    -
  • puede ser exactamente representado como un número IEEE-754 de doble presición, y
  • -
  • su representación IEEE-754 no puede ser el resultado de redondear cualquier otro entero para adaptarse a la representación de IEEE-754.
  • -
+Manejar valores más grandes o más pequeños que \~9 cuatrillones con presición completa requiere usar una [biblioteca de artimética de presición arbitraria](https://en.wikipedia.org/wiki/Arbitrary-precision_arithmetic). Ver [Lo que todo programador necesita saber sobre aritmética de punto flotante](http://floating-point-gui.de/) para más información sobre representaciones de punto flotante de los números. -

Por ejemplo, 253 - 1 es un entero seguro: puede ser exactamente representado y ningún otro entero puede ser redondeado a él bajo cualquier modo de redondeo de IEEE-754. En contraste, 253 no es un entero seguro, puede ser exactamente representado en IEEE-754, pero el entero 253 + 1 no puede ser directamente representado en IEEE-754 pero en su lugar, redondea a 253 bajo los modos de redondeo redondeo-al-más-cercano y redondeo-a-cero. Los enteros seguros consisten en todos los enteros desde -(253 - 1) inclusivo, hasta 253 - 1 inclusivo (± 9007199254740991 o ± 9,007,199,254,740,991).

+## Sintaxis -

Manejar valores más grandes o más pequeños que ~9 cuatrillones con presición completa requiere usar una biblioteca de artimética de presición arbitraria. Ver Lo que todo programador necesita saber sobre aritmética de punto flotante para más información sobre representaciones de punto flotante de los números.

+ Number.isSafeInteger(valorDePrueba) -

Sintaxis

+### Parámetros -
Number.isSafeInteger(valorDePrueba)
-
+- `valorDePrueba` + - : El valor a probar si es un entero seguro. -

Parámetros

+### Valor de retorno -
-
valorDePrueba
-
El valor a probar si es un entero seguro.
-
+Un {{jsxref("Boolean")}} que indica si el valor dado es un número que es entero seguro. -

Valor de retorno

+## Ejemplos -

Un {{jsxref("Boolean")}} que indica si el valor dado es un número que es entero seguro.

- -

Ejemplos

- -
Number.isSafeInteger(3);                    // true
+```js
+Number.isSafeInteger(3);                    // true
 Number.isSafeInteger(Math.pow(2, 53));      // false
 Number.isSafeInteger(Math.pow(2, 53) - 1);  // true
 Number.isSafeInteger(NaN);                  // false
@@ -54,45 +48,29 @@ Number.isSafeInteger(Infinity);             // false
 Number.isSafeInteger('3');                  // false
 Number.isSafeInteger(3.1);                  // false
 Number.isSafeInteger(3.0);                  // true
-
+``` -

Polyfill

+## Polyfill -
Number.isSafeInteger = Number.isSafeInteger || function (value) {
-   return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER;
+```js
+Number.isSafeInteger = Number.isSafeInteger || function (value) {
+   return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER;
 };
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
{{SpecName('ES2015', '#sec-number.issafeinteger', 'Number.isSafeInteger')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-number.issafeinteger', 'Number.isSafeInteger')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -

{{Compat("javascript.builtins.Number.isSafeInteger")}}

- -

Ver también

- -
    -
  • El objeto {{jsxref("Number")}} al que pertenece.
  • -
  • {{jsxref("Number.MIN_SAFE_INTEGER")}}
  • -
  • {{jsxref("Number.MAX_SAFE_INTEGER")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estatus | Comentario | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-number.issafeinteger', 'Number.isSafeInteger')}} | {{Spec2('ES2015')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-number.issafeinteger', 'Number.isSafeInteger')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Number.isSafeInteger")}} + +## Ver también + +- El objeto {{jsxref("Number")}} al que pertenece. +- {{jsxref("Number.MIN_SAFE_INTEGER")}} +- {{jsxref("Number.MAX_SAFE_INTEGER")}} diff --git a/files/es/web/javascript/reference/global_objects/number/max_value/index.md b/files/es/web/javascript/reference/global_objects/number/max_value/index.md index 39b9576abf7f41..88d3a367138198 100644 --- a/files/es/web/javascript/reference/global_objects/number/max_value/index.md +++ b/files/es/web/javascript/reference/global_objects/number/max_value/index.md @@ -4,32 +4,27 @@ slug: Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE translation_of: Web/JavaScript/Reference/Global_Objects/Number/MAX_VALUE original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/MAX_VALUE --- -
{{JSRef}}
+{{JSRef}}La propiedad **`Number.MAX_VALUE`**` `representa el valor numérico positivo máximo representable en JavaScript.{{js_property_attributes(0, 0, 0)}} -
La propiedad Number.MAX_VALUE representa el valor numérico positivo máximo representable en JavaScript.
+## Descripción -
+La propiedad `MAX_VALUE` tiene un valor aproximado a `1.79E+308`. Si el valor es mayor será representado como _`Infinity`_. -
{{js_property_attributes(0, 0, 0)}}
+Dado que `MAX_VALUE` es una propiedad estática de {{jsxref("Number")}}, siempre ha de usarse como `Number.MAX_VALUE`, y no como propiedad del objeto que has creado. -

Descripción

+## Ejemplos -

La propiedad MAX_VALUE tiene un valor aproximado a 1.79E+308. Si el valor es mayor será representado como Infinity.

+### Usando `MAX_VALUE` -

Dado que MAX_VALUE es una propiedad estática de {{jsxref("Number")}}, siempre ha de usarse como Number.MAX_VALUE, y no como propiedad del objeto que has creado.

+La función _verificarValorMaximo_ recibe un número como parámetro que se compara con _Number.MAX_VALUE._ Si el número es menor se imprime por consola _"El número no es infinito"_, de ser mayor _"El número es infinito"_. -

Ejemplos

- -

Usando MAX_VALUE

- -

La función verificarValorMaximo recibe un número como parámetro que se compara con Number.MAX_VALUE. Si el número es menor se imprime por consola "El número no es infinito", de ser mayor "El número es infinito".

- -
var numero1 = 1.79E+307;
+```js
+var numero1 = 1.79E+307;
 var numero2 = 1.79E+310;
 
 function verificarValorMaximo(num){
 
-	if (num <= Number.MAX_VALUE) {
+	if (num <= Number.MAX_VALUE) {
 	  console.log("El número no es infinito");
 	} else {
 	  console.log("El número es infinito");
@@ -39,46 +34,21 @@ function verificarValorMaximo(num){
 
 verificarValorMaximo(numero1); // El número no es infinito
 verificarValorMaximo(numero2); // El número es infinito
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition. Implemented in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.7.3.2', 'Number.MAX_VALUE')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-number.max_value', 'Number.MAX_VALUE')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-number.max_value', 'Number.MAX_VALUE')}}{{Spec2('ESDraft')}}
- -

Compatibilidad

+``` + +## Especificaciones + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Initial definition. Implemented in JavaScript 1.1. | +| {{SpecName('ES5.1', '#sec-15.7.3.2', 'Number.MAX_VALUE')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-number.max_value', 'Number.MAX_VALUE')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-number.max_value', 'Number.MAX_VALUE')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad {{Compat("javascript.builtins.Number.MAX_VALUE")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Number.MIN_VALUE")}}
  • -
+- {{jsxref("Number.MIN_VALUE")}} diff --git a/files/es/web/javascript/reference/global_objects/number/min_value/index.md b/files/es/web/javascript/reference/global_objects/number/min_value/index.md index e316f8bfa3c737..d2293bc5a1aece 100644 --- a/files/es/web/javascript/reference/global_objects/number/min_value/index.md +++ b/files/es/web/javascript/reference/global_objects/number/min_value/index.md @@ -4,71 +4,47 @@ slug: Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE translation_of: Web/JavaScript/Reference/Global_Objects/Number/MIN_VALUE original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/MIN_VALUE --- -
{{JSRef}}
+{{JSRef}} -

La propiedad Number.MIN_VALUE representa el menor valor positivo numérico representable en JavaScript.

+La propiedad **`Number.MIN_VALUE`** representa el menor valor positivo numérico representable en JavaScript. -
{{js_property_attributes(0, 0, 0)}}
+{{js_property_attributes(0, 0, 0)}} -

Descripción

+## Descripción -

La propiedad MIN_VALUE es el número más cercano a 0, no el más negativo, que JavaScript puede representar.

+La propiedad `MIN_VALUE `es el número más cercano a 0, no el más negativo, que JavaScript puede representar. -

MIN_VALUE tiene un valor aproximado de 5e-324. Los valores menores que MIN_VALUE (“subdesbordamiento de valores”) son convertidos a 0.

+`MIN_VALUE `tiene un valor aproximado de `5e-324`. Los valores menores que `MIN_VALUE `(“subdesbordamiento de valores”) son convertidos a 0. -

Ya que MIN_VALUE es una propiedad estática de {{jsxref("Number")}}, debes utilizarla como Number.MIN_VALUE, más que como una propiedad del objeto {{jsxref("Number")}} que has creado.

+Ya que `MIN_VALUE `es una propiedad estática de {{jsxref("Number")}}, debes utilizarla como `Number.MIN_VALUE`, más que como una propiedad del objeto {{jsxref("Number")}} que has creado. -

Ejemplos

+## Ejemplos -

Usando MIN_VALUE

+### Usando `MIN_VALUE` -

El siguiente código divide dos valores numéricos. Si el resultado es mayor o igual a MIN_VALUE, se ejecuta la función func1, si no, se ejecuta la función func2.

+El siguiente código divide dos valores numéricos. Si el resultado es mayor o igual a `MIN_VALUE`, se ejecuta la función `func1`, si no, se ejecuta la función `func2`. -
if (num1 / num2 >= Number.MIN_VALUE) {
+```js
+if (num1 / num2 >= Number.MIN_VALUE) {
   func1();
 } else {
   func2();
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Initial definition. Implemented in JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.7.3.3', 'Number.MIN_VALUE')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-number.min_value', 'Number.MIN_VALUE')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-number.min_value', 'Number.MIN_VALUE')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegador

+``` + +## Especificaciones + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Initial definition. Implemented in JavaScript 1.1. | +| {{SpecName('ES5.1', '#sec-15.7.3.3', 'Number.MIN_VALUE')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-number.min_value', 'Number.MIN_VALUE')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-number.min_value', 'Number.MIN_VALUE')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegador {{Compat("javascript.builtins.Number.MIN_VALUE")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Number.MAX_VALUE")}}
  • -
+- {{jsxref("Number.MAX_VALUE")}} diff --git a/files/es/web/javascript/reference/global_objects/number/nan/index.md b/files/es/web/javascript/reference/global_objects/number/nan/index.md index ecbdcc00205f35..aaaca84996ca27 100644 --- a/files/es/web/javascript/reference/global_objects/number/nan/index.md +++ b/files/es/web/javascript/reference/global_objects/number/nan/index.md @@ -8,51 +8,44 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Number/NaN original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/NaN --- -
{{JSRef}}
+{{JSRef}} -

La propiedad Number.NaN representa Not-A-Number (No es numero). Equivalente de {{jsxref("NaN")}}.

+La propiedad **`Number.NaN`** representa Not-A-Number (No es numero). Equivalente de {{jsxref("NaN")}}. -
{{EmbedInteractiveExample("pages/js/number-nan.html")}}
+{{EmbedInteractiveExample("pages/js/number-nan.html")}} -

No tienes que crear un objeto {{jsxref("Number")}} para acceder a esta propiedad estática (usa Number.NaN).

+No tienes que crear un objeto {{jsxref("Number")}} para acceder a esta propiedad estática (usa `Number.NaN`). -
{{js_property_attributes(0, 0, 0)}}
+{{js_property_attributes(0, 0, 0)}} -

Ejemplos

+## Ejemplos -

Chequea si los valores son numericos

+### Chequea si los valores son numericos -
function sanitise(x) {
+```js
+function sanitise(x) {
   if (isNaN(x)) {
     return Number.NaN;
   }
   return x;
-}
+} +``` -

Testing against NaN

+### Testing against NaN -

See Testing against NaN on the NaN page.

+See [Testing against NaN](/es/docs/Web/JavaScript/Reference/Global_Objects/NaN#Testing_against_NaN) on the `NaN` page. -

Especificaciones

+## Especificaciones - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-number.nan', 'Number.NaN')}}
+| Especificación | +| ---------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-number.nan', 'Number.NaN')}} | -

Browser compatibility

+## Browser compatibility -

{{Compat("javascript.builtins.Number.NaN")}}

+{{Compat("javascript.builtins.Number.NaN")}} -

Tambien mira

+## Tambien mira -
    -
  • El objeto global {{jsxref("NaN")}} .
  • -
  • El objeto {{jsxref("Number")}} al que pertenece.
  • -
+- El objeto global {{jsxref("NaN")}} . +- El objeto {{jsxref("Number")}} al que pertenece. diff --git a/files/es/web/javascript/reference/global_objects/number/negative_infinity/index.md b/files/es/web/javascript/reference/global_objects/number/negative_infinity/index.md index 8790179267d1a6..f192285bd928c1 100644 --- a/files/es/web/javascript/reference/global_objects/number/negative_infinity/index.md +++ b/files/es/web/javascript/reference/global_objects/number/negative_infinity/index.md @@ -8,66 +8,61 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Number/NEGATIVE_INFINITY original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/NEGATIVE_INFINITY --- -
- {{JSRef("Objetos_globales", "Number")}}
-

Resumen

-

La propiedad Number.NEGATIVE_INFINITY representa el valor del infinito negativo.

-

No se tiene que crear un objeto {{jsxref("Number")}} para acceder a esta propiedad estática (use Number.NEGATIVE_INFINITY).

-

{{js_property_attributes(0,0,0)}}

-

Descripción

-

El valor Number.NEGATIVE_INFINITY es el mismo que el valor negativo de la propiedad del objeto global {{jsxref( "Infinity")}}.

-

Este valor tiene un comportamiento ligeramente diferente que el del infinito matematico:

-
    -
  • Cualquier valor positivo, incluyendo POSITIVE_INFINITY, multiplicado por NEGATIVE_INFINITY da como resultado NEGATIVE_INFINITY.
  • -
  • Cualquier valor negativo, incluyendo NEGATIVE_INFINITY, multiplicado por NEGATIVE_INFINITY da como resultado POSITIVE_INFINITY.
  • -
  • Cero multiplicado por NEGATIVE_INFINITY da como resultado NaN.
  • -
  • NaN multiplicado por NEGATIVE_INFINITY da como resultado NaN.
  • -
  • NEGATIVE_INFINITY, divido por cualquier valor negativo excepto NEGATIVE_INFINITY, da como resultado POSITIVE_INFINITY.
  • -
  • NEGATIVE_INFINITY, divido por cualquier valor positivo excepto POSITIVE_INFINITY, da como resultado NEGATIVE_INFINITY.
  • -
  • NEGATIVE_INFINITY, divido por NEGATIVE_INFINITY o por POSITIVE_INFINITY, da como resultado NaN.
  • -
  • Cualquier numero divido por NEGATIVE_INFINITY da como resultado cero.
  • -
-

Muchos métodos JavaScript (tales como el constructor del objeto Number, parseFloat, y parseInt) retornan NaN si el valor especifico en el párametro es significativamente menor a Number.MIN_VALUE.

-

Podrías utilizar la propiedad Number.NEGATIVE_INFINITY para indicar una condición de error que retorne un numero finito en caso de que esto suceda. Note, sin embargo, que isFinite seria mas apropiado en estos casos.

-

Example

-

En el siguiente ejemplo, a la variable smallNumber se le asigna un valor mucho mas pequeño al valor minimo. Cuando la sentencia if es ejecutada, smallNumber tiene el valor "-Infinity", por lo cual a smallNumber le es asignado un valor finito mas manejable antes de continuar.

-
var smallNumber = (-Number.MAX_VALUE) * 2
+{{JSRef("Objetos_globales", "Number")}}
+
+## Resumen
+
+La propiedad **`Number.NEGATIVE_INFINITY`** representa el valor del infinito negativo.
+
+No se tiene que crear un objeto {{jsxref("Number")}} para acceder a esta propiedad estática (use `Number.NEGATIVE_INFINITY`).
+
+{{js_property_attributes(0,0,0)}}
+
+## Descripción
+
+El valor `Number.NEGATIVE_INFINITY` es el mismo que el valor negativo de la propiedad del objeto global {{jsxref( "Infinity")}}**`.`**
+
+Este valor tiene un comportamiento ligeramente diferente que el del infinito matematico:
+
+- Cualquier valor positivo, incluyendo `POSITIVE_INFINITY`, multiplicado por `NEGATIVE_INFINITY` da como resultado `NEGATIVE_INFINITY`.
+- Cualquier valor negativo, incluyendo `NEGATIVE_INFINITY`, multiplicado por `NEGATIVE_INFINITY` da como resultado `POSITIVE_INFINITY`.
+- Cero multiplicado por `NEGATIVE_INFINITY` da como resultado `NaN`.
+- NaN multiplicado por `NEGATIVE_INFINITY` da como resultado `NaN`.
+- `NEGATIVE_INFINITY`, divido por cualquier valor negativo excepto `NEGATIVE_INFINITY`, da como resultado `POSITIVE_INFINITY`.
+- `NEGATIVE_INFINITY`, divido por cualquier valor positivo excepto `POSITIVE_INFINITY`, da como resultado `NEGATIVE_INFINITY`.
+- `NEGATIVE_INFINITY`, divido por `NEGATIVE_INFINITY` o por `POSITIVE_INFINITY`, da como resultado `NaN`.
+- Cualquier numero divido por `NEGATIVE_INFINITY` da como resultado cero.
+
+Muchos métodos JavaScript (tales como el constructor del objeto `Number`, `parseFloat`, y `parseInt`) retornan `NaN` si el valor especifico en el párametro es significativamente menor a `Number.MIN_VALUE`.
+
+Podrías utilizar la propiedad `Number.NEGATIVE_INFINITY` para indicar una condición de error que retorne un numero finito en caso de que esto suceda. Note, sin embargo, que [`isFinite`](/es/docs/Referencia_de_JavaScript_1.5/Funciones_globales/isFinite) seria mas apropiado en estos casos.
+
+## Example
+
+En el siguiente ejemplo, a la variable `smallNumber `se le asigna un valor mucho mas pequeño al valor minimo. Cuando la sentencia `if` es ejecutada, `smallNumber `tiene el valor "`-Infinity`", por lo cual a `smallNumber `le es asignado un valor finito mas manejable antes de continuar.
+
+```js
+var smallNumber = (-Number.MAX_VALUE) * 2
 
 if (smallNumber === Number.NEGATIVE_INFINITY) {
  smallNumber = returnFinite();
 }
-
-

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - -
EspecificacionesEstadoComentario
ECMAScript 1ra Edición. Implementado en JavaScript 1.1EstándarDefinición inicial.
{{SpecName('ES5.1', '#sec-15.7.3.5', 'Number.NEGATIVE_INFINITY')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-number.negative_infinity', 'Number.NEGATIVE_INFINITY')}}{{Spec2('ES6')}}
-

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificaciones | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------ | ------------------------ | ------------------- | +| ECMAScript 1ra Edición. Implementado en JavaScript 1.1 | Estándar | Definición inicial. | +| {{SpecName('ES5.1', '#sec-15.7.3.5', 'Number.NEGATIVE_INFINITY')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-number.negative_infinity', 'Number.NEGATIVE_INFINITY')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores + {{Compat("javascript.builtins.Number.NEGATIVE_INFINITY")}} -

Ver también

-
    -
  • {{jsxref("Number.POSITIVE_INFINITY")}}
  • -
  • {{jsxref( "Infinity")}}
  • -
  • {{jsxref("isFinite")}}
  • -
+## Ver también + +- {{jsxref("Number.POSITIVE_INFINITY")}} +- {{jsxref( "Infinity")}} +- {{jsxref("isFinite")}} diff --git a/files/es/web/javascript/reference/global_objects/number/parseint/index.md b/files/es/web/javascript/reference/global_objects/number/parseint/index.md index 5d2120ca5bac4a..7aae1bfe1daf32 100644 --- a/files/es/web/javascript/reference/global_objects/number/parseint/index.md +++ b/files/es/web/javascript/reference/global_objects/number/parseint/index.md @@ -6,76 +6,60 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Number/parseInt original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/parseInt --- -
{{JSRef}}
+{{JSRef}} -

The Number.parseInt() method parses a string argument and returns an integer of the specified radix or base.

+The **`Number.parseInt()`** method parses a string argument and returns an integer of the specified radix or base. -

The Number.parseInt() El método Number.parseInt () analiza un argumento de cadena y devuelve un entero de la raíz o base especificada.

+The **`Number.parseInt()`** El método Number.parseInt () analiza un argumento de cadena y devuelve un entero de la raíz o base especificada. -
{{EmbedInteractiveExample("pages/js/number-parseint.html", "taller")}}
+{{EmbedInteractiveExample("pages/js/number-parseint.html", "taller")}} +## Syntax + Number.parseInt(string,[ radix]) -

Syntax

+### Parameters -
Number.parseInt(string,[ radix])
+- `string` + - : The value to parse. If this argument is not a string, then it is converted to one using the [`ToString`](https://tc39.es/ecma262/#sec-tostring) abstract operation. Leading whitespace in this argument is ignored. +- `radix`_ {{optional_inline}}_ + - : An integer between `2` and `36` that represents the _radix_ (the base in mathematical numeral systems) of the `string`. Be careful—this does **_not_** default to `10`! -

Parameters

+### Return value -
-
-
string
-
The value to parse. If this argument is not a string, then it is converted to one using the ToString abstract operation. Leading whitespace in this argument is ignored.
-
radix {{optional_inline}}
-
An integer between 2 and 36 that represents the radix (the base in mathematical numeral systems) of the string. Be careful—this does not default to 10!
-
-
+An integer parsed from the given `string`. -

Return value

+If the `radix` is smaller than `2` or bigger than `36`, and the first non-whitespace character cannot be converted to a number, {{jsxref("NaN")}} is returned. -

An integer parsed from the given string.

+## Description -

If the radix is smaller than 2 or bigger than 36, and the first non-whitespace character cannot be converted to a number, {{jsxref("NaN")}} is returned.

+This method has the same functionality as the global {{jsxref("parseInt", "parseInt()")}} function: -

Description

+```js +Number.parseInt === parseInt // true +``` -

This method has the same functionality as the global {{jsxref("parseInt", "parseInt()")}} function:

+and is part of ECMAScript 2015 (its purpose is modularization of globals). Please see {{jsxref("parseInt", "parseInt()")}} for more detail and examples. -
Number.parseInt === parseInt // true
+## Polyfill -

and is part of ECMAScript 2015 (its purpose is modularization of globals). Please see {{jsxref("parseInt", "parseInt()")}} for more detail and examples.

- -

Polyfill

- -
if (Number.parseInt === undefined) {
+```js
+if (Number.parseInt === undefined) {
     Number.parseInt = window.parseInt
 }
-
- -

Specifications

- - - - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-number.parseint', 'Number.parseInt')}}
+``` -

Browser compatibility

+## Specifications +| Specification | +| ---------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-number.parseint', 'Number.parseInt')}} | +## Browser compatibility -

{{Compat("javascript.builtins.Number.parseInt")}}

+{{Compat("javascript.builtins.Number.parseInt")}} -

See also

+## See also -
    -
  • The {{jsxref("Number")}} object it belongs to.
  • -
  • The global {{jsxref("parseInt", "parseInt()")}} method.
  • -
+- The {{jsxref("Number")}} object it belongs to. +- The global {{jsxref("parseInt", "parseInt()")}} method. diff --git a/files/es/web/javascript/reference/global_objects/number/positive_infinity/index.md b/files/es/web/javascript/reference/global_objects/number/positive_infinity/index.md index f2a34bf598989e..d4822ebf2adace 100644 --- a/files/es/web/javascript/reference/global_objects/number/positive_infinity/index.md +++ b/files/es/web/javascript/reference/global_objects/number/positive_infinity/index.md @@ -8,64 +8,60 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Number/POSITIVE_INFINITY original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/POSITIVE_INFINITY --- -

{{JSRef("Objetos_globales", "Number")}}

-

Resumen

-

La propiedad Number.POSITIVE_INFINITY representa el infinito positivo.

-

No se tiene que crear un objeto {{jsxref("Number")}} para acceder a esta propiedad estática (use Number.POSITIVE_INFINITY).

-

{{js_property_attributes(0,0,0)}}

-

Descripción

-

El valor de Number.POSITIVE_INFINITY es el mismo valor de la propiedad {{jsxref( "Infinity")}} del objeto global.

-

Este valor tiene un comportamiento ligeramente diferente al infinio matemático:

-
    -
  • Cualquier valor positivo, incluyendo POSITIVE_INFINITY, multiplicado por POSITIVE_INFINITY da como resultado POSITIVE_INFINITY.
  • -
  • Cualquier valor negativo, incluyendo NEGATIVE_INFINITY, multiplicado por POSITIVE_INFINITY da como resultado NEGATIVE_INFINITY.
  • -
  • Cero multiplicado por POSITIVE_INFINITY da como resultado NaN.
  • -
  • NaN multiplicado por POSITIVE_INFINITY da como resultado NaN.
  • -
  • POSITIVE_INFINITY, dividido por cualquier valor negativo excepto NEGATIVE_INFINITY, da como resultado NEGATIVE_INFINITY.
  • -
  • POSITIVE_INFINITY, divido por cualquier valor positivo excepto POSITIVE_INFINITY, da como resultado POSITIVE_INFINITY.
  • -
  • POSITIVE_INFINITY, divido por INFINITY o por POSITIVE_INFINITY, da como resultado NaN.
  • -
  • Cualquier numero divido por POSITIVE_INFINITY da como resultado cero.
  • -
-

Muchos métodos de JavaScript (tales como el constructor del objeto Number, parseFloat y parseInt) retornan NaN si el valor especificado en el parámetro es signficativamente mayor a Number.MAX_VALUE.

-

Podrías utilizar la propiedad Number.POSITIVE_INFINITY para indicar una condición de error que retorne un numero finito en caso de que esto suceda. Note, sin embargo, que isFinite seria mas apropiado en estos casos.

-

Ejemplo

-

En el siguiente ejemplo, a la variable bigNumber se le asigna un valor mucho mayor al valor máximo. Cuando la sentencia if es ejecutada, bigNumber tiene el valor "Infinity", por lo cual a bigNumber le es asignado un valor mas manejable antes de continuar.

-
var bigNumber = Number.MAX_VALUE * 2;
+{{JSRef("Objetos_globales", "Number")}}
+
+## Resumen
+
+La propiedad **`Number.POSITIVE_INFINITY`** representa el infinito positivo.
+
+No se tiene que crear un objeto {{jsxref("Number")}} para acceder a esta propiedad estática (use `Number.POSITIVE_INFINITY`).
+
+{{js_property_attributes(0,0,0)}}
+
+## Descripción
+
+El valor de `Number.POSITIVE_INFINITY` es el mismo valor de la propiedad {{jsxref( "Infinity")}} del objeto global.
+
+Este valor tiene un comportamiento ligeramente diferente al infinio matemático:
+
+- Cualquier valor positivo, incluyendo `POSITIVE_INFINITY`, multiplicado por `POSITIVE_INFINITY` da como resultado `POSITIVE_INFINITY`.
+- Cualquier valor negativo, incluyendo `NEGATIVE_INFINITY`, multiplicado por `POSITIVE_INFINITY` da como resultado `NEGATIVE_INFINITY`.
+- Cero multiplicado por `POSITIVE_INFINITY` da como resultado NaN.
+- NaN multiplicado por `POSITIVE_INFINITY` da como resultado NaN.
+- `POSITIVE_INFINITY`, dividido por cualquier valor negativo excepto `NEGATIVE_INFINITY`, da como resultado `NEGATIVE_INFINITY`.
+- `POSITIVE_INFINITY`, divido por cualquier valor positivo excepto `POSITIVE_INFINITY`, da como resultado `POSITIVE_INFINITY`.
+- `POSITIVE_INFINITY`, divido por `INFINITY` o por `POSITIVE_INFINITY`, da como resultado NaN.
+- Cualquier numero divido por `POSITIVE_INFINITY` da como resultado cero.
+
+Muchos métodos de JavaScript (tales como el constructor del objeto `Number`, `parseFloat` y `parseInt`) retornan `NaN` si el valor especificado en el parámetro es signficativamente mayor a `Number.MAX_VALUE`.
+
+Podrías utilizar la propiedad `Number.POSITIVE_INFINITY` para indicar una condición de error que retorne un numero finito en caso de que esto suceda. Note, sin embargo, que [`isFinite`](/es/docs/Referencia_de_JavaScript_1.5/Funciones_globales/isFinite) seria mas apropiado en estos casos.
+
+## Ejemplo
+
+En el siguiente ejemplo, a la variable `bigNumber `se le asigna un valor mucho mayor al valor máximo. Cuando la sentencia `if` es ejecutada, `bigNumber `tiene el valor "`Infinity`", por lo cual a `bigNumber` le es asignado un valor mas manejable antes de continuar.
+
+```js
+var bigNumber = Number.MAX_VALUE * 2;
 if (bigNumber === Number.POSITIVE_INFINITY) {
  bigNumber = returnFinite();
 }
-
-

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - -
EspecificacionesEstadoComentario
ECMAScript 1st Edition. Implemented in JavaScript 1.1EstándarDefinición inicial.
{{SpecName('ES5.1', '#sec-15.7.3.6', 'Number.POSITIVE_INFINITY')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-number.positive_infinity', 'Number.POSITIVE_INFINITY')}}{{Spec2('ES6')}}
-

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificaciones | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------ | ------------------------ | ------------------- | +| ECMAScript 1st Edition. Implemented in JavaScript 1.1 | Estándar | Definición inicial. | +| {{SpecName('ES5.1', '#sec-15.7.3.6', 'Number.POSITIVE_INFINITY')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-number.positive_infinity', 'Number.POSITIVE_INFINITY')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores + {{Compat("javascript.builtins.Number.POSITIVE_INFINITY")}} -

Ver también

-
    -
  • {{jsxref("Number.NEGATIVE_INFINITY")}}
  • -
  • {{jsxref("Infinity")}}
  • -
  • {{jsxref("isFinite")}}
  • -
+## Ver también + +- {{jsxref("Number.NEGATIVE_INFINITY")}} +- {{jsxref("Infinity")}} +- {{jsxref("isFinite")}} diff --git a/files/es/web/javascript/reference/global_objects/number/tofixed/index.md b/files/es/web/javascript/reference/global_objects/number/tofixed/index.md index f089595d8b8a97..712a430a2a2518 100644 --- a/files/es/web/javascript/reference/global_objects/number/tofixed/index.md +++ b/files/es/web/javascript/reference/global_objects/number/tofixed/index.md @@ -4,45 +4,42 @@ slug: Web/JavaScript/Reference/Global_Objects/Number/toFixed translation_of: Web/JavaScript/Reference/Global_Objects/Number/toFixed original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/toFixed --- -
{{JSRef}}
+{{JSRef}} -

El método toFixed() formatea un número usando notación de punto fijo.

+El método **`toFixed()`** formatea un número usando notación de punto fijo. -
{{EmbedInteractiveExample("pages/js/number-tofixed.html")}}
+{{EmbedInteractiveExample("pages/js/number-tofixed.html")}} -

Sintaxis

+## Sintaxis -
numObj.toFixed([digitos])
+ numObj.toFixed([digitos]) -

Parametros

+### Parametros -
-
digitos
-
Opcional. El número de digitos que aparecen después del punto decimal; este puede ser un valor entre 0 y 20, inclusive, algunas implementaciones pueden soportar un rango más amplio de valores. Si el argumento es omitido, es tratado como 0.
-
+- `digitos` + - : Opcional. El número de digitos que aparecen después del punto decimal; este puede ser un valor entre 0 y 20, inclusive, algunas implementaciones pueden soportar un rango más amplio de valores. Si el argumento es omitido, es tratado como 0. -

Valor Devuelto

+### Valor Devuelto -

Una cadena que representa el número dado, usando notación de punto fijo.

+Una cadena que representa el número dado, usando notación de punto fijo. -

Excepciones

+### Excepciones -
-
{{jsxref("RangeError")}}
-
Si digits es demasiado pequeño o demasiado grande. Los valores entre 0 y 20, inclusive, no causarán un error tipo {{jsxref("RangeError")}}. Las implementaciones también pueden admitir valores cada vez más grandes.
-
{{jsxref("TypeError")}}
-
Si este método se invoca en un objeto que no es un {{jsxref("Number")}}.
-
+- {{jsxref("RangeError")}} + - : Si `digits` es demasiado pequeño o demasiado grande. Los valores entre 0 y 20, inclusive, no causarán un error tipo` {{jsxref("RangeError")}}`. Las implementaciones también pueden admitir valores cada vez más grandes. +- {{jsxref("TypeError")}} + - : Si este método se invoca en un objeto que no es un {{jsxref("Number")}}. -

Descripción

+## Descripción -

toFixed() devuelve una representación de cadena de numObj que no usa notación exponencial y tiene exactamente dígitos dígitos después del decimal. El número se redondea si es necesario, y la parte fraccional se rellena con ceros si es necesario para que tenga la longitud especificada.Si numObj es mayor que 1e+21, este metodo llama a {{jsxref("Number.prototype.toString()")}} y retorna una cadena de notacion exponencial.

+**`toFixed()`** devuelve una representación de cadena de `numObj `que no usa notación exponencial y tiene exactamente `dígitos `dígitos después del decimal. El número se redondea si es necesario, y la parte fraccional se rellena con ceros si es necesario para que tenga la longitud especificada.Si `numObj` es mayor que `1e+21`, este metodo llama a {{jsxref("Number.prototype.toString()")}} y retorna una cadena de notacion exponencial. -

Examples

+## Examples -

Using toFixed

+### Using `toFixed` -
var numObj = 12345.6789;
+```js
+var numObj = 12345.6789;
 
 numObj.toFixed();       // Returns '12346': note rounding, no fractional part
 numObj.toFixed(1);      // Returns '12345.7': note rounding
@@ -53,48 +50,23 @@ numObj.toFixed(6);      // Returns '12345.678900': note added zeros
 2.35.toFixed(1);        // Returns '2.4'. Note that it rounds up in this case.
 -2.34.toFixed(1);       // Returns -2.3 (due to operator precedence, negative number literals don't return a string...)
 (-2.34).toFixed(1);     // Returns '-2.3' (...unless you use parentheses)
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition. Implemented in JavaScript 1.5.
{{SpecName('ES5.1', '#sec-15.7.4.5', 'Number.prototype.toFixed')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-number.prototype.tofixed', 'Number.prototype.toFixed')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-number.prototype.tofixed', 'Number.prototype.toFixed')}}{{Spec2('ESDraft')}}
- -

Browser compatibility

+``` + +## Specifications + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Initial definition. Implemented in JavaScript 1.5. | +| {{SpecName('ES5.1', '#sec-15.7.4.5', 'Number.prototype.toFixed')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-number.prototype.tofixed', 'Number.prototype.toFixed')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-number.prototype.tofixed', 'Number.prototype.toFixed')}} | {{Spec2('ESDraft')}} | | + +## Browser compatibility {{Compat("javascript.builtins.Number.toFixed")}} -

See also

+## See also -
    -
  • {{jsxref("Number.prototype.toExponential()")}}
  • -
  • {{jsxref("Number.prototype.toPrecision()")}}
  • -
  • {{jsxref("Number.prototype.toString()")}}
  • -
+- {{jsxref("Number.prototype.toExponential()")}} +- {{jsxref("Number.prototype.toPrecision()")}} +- {{jsxref("Number.prototype.toString()")}} diff --git a/files/es/web/javascript/reference/global_objects/number/tolocalestring/index.md b/files/es/web/javascript/reference/global_objects/number/tolocalestring/index.md index b0c5b415c94518..9c5f6a315d5916 100644 --- a/files/es/web/javascript/reference/global_objects/number/tolocalestring/index.md +++ b/files/es/web/javascript/reference/global_objects/number/tolocalestring/index.md @@ -8,50 +8,48 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Number/toLocaleString original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/toLocaleString --- -
{{JSRef}}
+{{JSRef}} -

El método toLocaleString() retorna una representacion localizada del número en forma de texto

+El método **`toLocaleString()`** retorna una representacion localizada del número en forma de texto -
{{EmbedInteractiveExample("pages/js/number-tolocalestring.html")}}
+{{EmbedInteractiveExample("pages/js/number-tolocalestring.html")}} +## Syntax + numObj.toLocaleString([locales [, options]]) -

Syntax

+### Parametros -
numObj.toLocaleString([locales [, options]])
+Los argumentos `locales` y `options` personalizan el comportamiento de la funcion y permite especificar el lenguaje cuyo formato deberá ser utilizado. En implementaciones, que ignoran los argumentos `locales` y `options` la localización utilizada y la forma del texto retornado es enteramente dependiente de la implementación. -

Parametros

+Mira el [constructor Intl.NumberFormat()](/es/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat) para ver más detalles sobre los parámetros y como se utilizan. -

Los argumentos locales y options personalizan el comportamiento de la funcion y permite especificar el lenguaje cuyo formato deberá ser utilizado. En implementaciones, que ignoran los argumentos locales y options la localización utilizada y la forma del texto retornado es enteramente dependiente de la implementación.

+### Valor de retorno -
Mira el constructor Intl.NumberFormat() para ver más detalles sobre los parámetros y como se utilizan.
+Un texto con una representación localizada del número dado. +## Performance +Cuando formateas una gran cantidad de números, es mejor crear un objeto {{jsxref("NumberFormat")}} y utilizar la función {{jsxref("NumberFormat.format")}}. -

Valor de retorno

+## Ejemplos -

Un texto con una representación localizada del número dado.

+### Usando `toLocaleString` -

Performance

+Un uso básico sin especificar `locales`, retorna un texto formateado con el `locales` y `options` por defecto. -

Cuando formateas una gran cantidad de números, es mejor crear un objeto {{jsxref("NumberFormat")}} y utilizar la función {{jsxref("NumberFormat.format")}}.

- -

Ejemplos

- -

Usando toLocaleString

- -

Un uso básico sin especificar locales, retorna un texto formateado con el locales y options por defecto.

- -
var number = 3500;
+```js
+var number = 3500;
 
 console.log(number.toLocaleString()); // Muestra "3,500" si se está utilizando la localización U.S. English
-
+``` -

Verificando el soporte de los parámetros locales y options

+### Verificando el soporte de los parámetros `locales` y `options` -

Los parámetros locales y options no son soportados aún por todos los navegadores. Para verificar el soporte en ES5.1 y posteriores implementaciones, se puede utilizar el hecho que los tags inválidos en la localización son rechazados con una excepción {{jsxref("Global_Objects/RangeError", "RangeError")}}:

+Los parámetros `locales` y `options` no son soportados aún por todos los navegadores. Para verificar el soporte en ES5.1 y posteriores implementaciones, se puede utilizar el hecho que los tags inválidos en la localización son rechazados con una excepción {{jsxref("Global_Objects/RangeError", "RangeError")}}: -
function toLocaleStringSupportsLocales() {
+```js
+function toLocaleStringSupportsLocales() {
   var number = 0;
   try {
     number.toLocaleString('i');
@@ -60,30 +58,32 @@ console.log(number.toLocaleString()); // Muestra "3,500" si se está utilizando
   }
   return false;
 }
-
+``` -

Antes de ES5.1, las implementaciones no requieren devolver una exepción {{jsxref("Global_Objects/RangeError", "RangeError")}} cuando toLocaleString es llamado sin argumentos.

+Antes de ES5.1, las implementaciones no requieren devolver una exepción {{jsxref("Global_Objects/RangeError", "RangeError")}} cuando `toLocaleString `es llamado sin argumentos. -

Para verificar que funciona todos los navegadores, incluyendo aquellos que soportan ECMA-262, anterior a ES5.1, se puede verificar por las funcionalidades especificadas en ECMA-402 que requieren soportar opciones regionales para Number.prototype.toLocaleString directamente:

+Para verificar que funciona todos los navegadores, incluyendo aquellos que soportan ECMA-262, anterior a ES5.1, se puede verificar por las funcionalidades especificadas en ECMA-402 que requieren soportar opciones regionales para `Number.prototype.toLocaleString` directamente: -
function toLocaleStringSupportsOptions() {
-  return !!(typeof Intl == 'object' && Intl && typeof Intl.NumberFormat == 'function');
+```js
+function toLocaleStringSupportsOptions() {
+  return !!(typeof Intl == 'object' && Intl && typeof Intl.NumberFormat == 'function');
 }
-
+``` -

Esta validación del objeto global Intl , verificar que no es null (nulo) y que tiene la propiedad NumberFormat que es una función.

+Esta validación del objeto global `Intl` , verificar que no es `null` (nulo) y que tiene la propiedad `NumberFormat` que es una función. -

Utilizando locales

+### Utilizando `locales` -

Este ejemplo muestra alguna de las variaciones en los formatos de números localizados. Para obtener el formato de la localización utilizada en la interfaz del usuario de tu aplicación, asegurate de especificar la localización (y de ser posible alguna localización de respaldo) utilizando el parámetro locales:

+Este ejemplo muestra alguna de las variaciones en los formatos de números localizados. Para obtener el formato de la localización utilizada en la interfaz del usuario de tu aplicación, asegurate de especificar la localización (y de ser posible alguna localización de respaldo) utilizando el parámetro `locales`: -
var number = 123456.789;
+```js
+var number = 123456.789;
 
 // Aleman utiliza comas como separador decimal y puntos miles
 console.log(number.toLocaleString('de-DE'));
 // → 123.456,789
 
-// Arabe en la mayoría de países de habla Arabe utilizan numerales Eastern Arabic
+// Arabe en la mayoría de países de habla Arabe utilizan numerales Eastern Arabic
 console.log(number.toLocaleString('ar-EG'));
 // → ١٢٣٤٥٦٫٧٨٩
 
@@ -99,13 +99,14 @@ console.log(number.toLocaleString('zh-Hans-CN-u-nu-hanidec'));
 // Balinese, incluye un lenguaje de respaldo, en este caso Indonesio
 console.log(number.toLocaleString(['ban', 'id']));
 // → 123.456,789
-
+``` -

Utilizando options

+### Utilizando `options` -

El resultado proveido por toLocaleString puede ser personalizado utilizando el parámetro options :

+El resultado proveido por `toLocaleString` puede ser personalizado utilizando el parámetro `options` : -
var number = 123456.789;
+```js
+var number = 123456.789;
 
 // solicitar un formato de moneda
 console.log(number.toLocaleString('de-DE', { style: 'currency', currency: 'EUR' }));
@@ -125,30 +126,19 @@ console.log(num.toLocaleString(undefined, {minimumFractionDigits: 2, maximumFrac
 // → "30,000.65" donde English es el lenguaje por defecto, o
 // → "30.000,65" donde Aleman es el lenguaje por defecto, o
 // → "30 000,65" donde French es el lenguaje por defecto
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-number.prototype.tolocalestring', 'Number.prototype.toLocaleString')}}
{{SpecName('ES Int Draft', '#sup-number.prototype.tolocalestring', 'Number.prototype.toLocaleString')}}
+| Specification | +| ---------------------------------------------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-number.prototype.tolocalestring', 'Number.prototype.toLocaleString')}} | +| {{SpecName('ES Int Draft', '#sup-number.prototype.tolocalestring', 'Number.prototype.toLocaleString')}} | -

Compatibilidad de navegadores

+## Compatibilidad de navegadores -

{{Compat("javascript.builtins.Number.toLocaleString")}}

+{{Compat("javascript.builtins.Number.toLocaleString")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Number.prototype.toString()")}}
  • -
+- {{jsxref("Number.prototype.toString()")}} diff --git a/files/es/web/javascript/reference/global_objects/number/toprecision/index.md b/files/es/web/javascript/reference/global_objects/number/toprecision/index.md index 85357f2545baed..197c8e026c141b 100644 --- a/files/es/web/javascript/reference/global_objects/number/toprecision/index.md +++ b/files/es/web/javascript/reference/global_objects/number/toprecision/index.md @@ -4,41 +4,38 @@ slug: Web/JavaScript/Reference/Global_Objects/Number/toPrecision translation_of: Web/JavaScript/Reference/Global_Objects/Number/toPrecision original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/toPrecision --- -
{{JSRef}}
+{{JSRef}} -

El método toPrecision() devuelve una cadena que representa un objeto {{jsxref("Number")}} según la precisión especificada.

+El método **`toPrecision()`** devuelve una cadena que representa un objeto {{jsxref("Number")}} según la precisión especificada. -
{{EmbedInteractiveExample("pages/js/number-toprecision.html")}}
+{{EmbedInteractiveExample("pages/js/number-toprecision.html")}} -

Sintaxis

+## Sintaxis -
numObj.toPrecision([precision])
+ numObj.toPrecision([precision]) -

Parámetros

+### Parámetros -
-
precision
-
Opcional. Un entero que especifica el número de digitos significativos.
-
+- `precision` + - : Opcional. Un entero que especifica el número de digitos significativos. -

Valor devuelto

+### Valor devuelto -

Una cadena que representa un objeto {{jsxref("Number")}} en punto fijo o en notación exponencial redondeada a precision de digitos significativos. Vea la discusión acerca del redondeo en la descripción del método {{jsxref("Number.prototype.toFixed()")}} , que además aplica a toPrecision().

+Una cadena que representa un objeto {{jsxref("Number")}} en punto fijo o en notación exponencial redondeada a `precision` de digitos significativos. Vea la discusión acerca del redondeo en la descripción del método {{jsxref("Number.prototype.toFixed()")}} , que además aplica a `toPrecision()`. -

Si el parámetro precision es omitido, se comporta como {{jsxref("Number.prototype.toString()")}}. Si el parámetro precision es un valor no entero, el valor es redondeado al entero más cercano.

+Si el parámetro `precision` es omitido, se comporta como {{jsxref("Number.prototype.toString()")}}. Si el parámetro `precision` es un valor no entero, el valor es redondeado al entero más cercano. -

Exceptions

+### Exceptions -
-
{{jsxref("Global_Objects/RangeError", "RangeError")}}
-
If precision is not between 1 and 100 (inclusive), a {{jsxref("RangeError")}} is thrown. Implementations are allowed to support larger and smaller values as well. ECMA-262 only requires a precision of up to 21 significant digits.
-
+- {{jsxref("Global_Objects/RangeError", "RangeError")}} + - : If `precision` is not between 1 and 100 (inclusive), a {{jsxref("RangeError")}} is thrown. Implementations are allowed to support larger and smaller values as well. ECMA-262 only requires a precision of up to 21 significant digits. -

Ejemplos

+## Ejemplos -

Usando toPrecision

+### Usando `toPrecision` -
var numObj = 5.123456;
+```js
+var numObj = 5.123456;
 
 console.log(numObj.toPrecision());    // logs '5.123456'
 console.log(numObj.toPrecision(5));   // logs '5.1235'
@@ -54,48 +51,23 @@ console.log(numObj.toPrecision(1));   // logs '0.0001'
 
 // observe que bajo algunas circunstancias el valor retornado es en notación exponencial
 console.log((1234.5).toPrecision(2)); // logs '1.2e+3'
-
- -

Especificaciónes

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES3')}}{{Spec2('ES3')}}Primera definición. Implementada en JavaScript 1.5.
{{SpecName('ES5.1', '#sec-15.7.4.7', 'Number.prototype.toPrecision')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-number.prototype.toprecision', 'Number.prototype.toPrecision')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-number.prototype.toprecision', 'Number.prototype.toPrecision')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegadores

- -

{{Compat("javascript.builtins.Number.toPrecision")}}

- -

Vea También

- -
    -
  • {{jsxref("Number.prototype.toFixed()")}}
  • -
  • {{jsxref("Number.prototype.toExponential()")}}
  • -
  • {{jsxref("Number.prototype.toString()")}}
  • -
+``` + +## Especificaciónes + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Primera definición. Implementada en JavaScript 1.5. | +| {{SpecName('ES5.1', '#sec-15.7.4.7', 'Number.prototype.toPrecision')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-number.prototype.toprecision', 'Number.prototype.toPrecision')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-number.prototype.toprecision', 'Number.prototype.toPrecision')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegadores + +{{Compat("javascript.builtins.Number.toPrecision")}} + +## Vea También + +- {{jsxref("Number.prototype.toFixed()")}} +- {{jsxref("Number.prototype.toExponential()")}} +- {{jsxref("Number.prototype.toString()")}} diff --git a/files/es/web/javascript/reference/global_objects/number/tostring/index.md b/files/es/web/javascript/reference/global_objects/number/tostring/index.md index 58821a4423230d..87f57ace2f9ba2 100644 --- a/files/es/web/javascript/reference/global_objects/number/tostring/index.md +++ b/files/es/web/javascript/reference/global_objects/number/tostring/index.md @@ -10,40 +10,39 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Number/toString original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/toString --- -
{{JSRef("Objetos_globales", "Number")}}
+{{JSRef("Objetos_globales", "Number")}} -

Resumen

+## Resumen -

Devuelve una cadena que representa al objeto Number especificado

+Devuelve una cadena que representa al objeto _Number_ especificado -

Sintaxis

+## Sintaxis -

number .toString( {{ mediawiki.external('base ') }} )

+`number .toString( {{ mediawiki.external('base ') }} )` -

Parámetro

+### Parámetro -
-
base
-
Un entero entre 2 y 36 especificando la base a usar para representar los valores numéricos.
-
+- base + - : Un entero entre 2 y 36 especificando la base a usar para representar los valores numéricos. -

Devuelve

+### Devuelve -

Una cadena que representa al objeto.

+Una cadena que representa al objeto. -

Descripción

+## Descripción -

El objeto Number sobreescribe el método toString y no lo hereda del objeto {{jsxref("Object")}}; por tanto no hereda {{jsxref("Object.prototype.toString()")}}. Para objetos Number, el método toString devuelve una cadena que representa al objeto en la base especificada.

+El objeto `Number` sobreescribe el método `toString` y no lo hereda del objeto {{jsxref("Object")}}; por tanto no hereda {{jsxref("Object.prototype.toString()")}}. Para objetos `Number`, el método `toString` devuelve una cadena que representa al objeto en la base especificada. -

El método toString comprueba su primer argumento, e intenta devolver una cadena de representación en la base especificada. Para bases superiores a 10, las letras del alfabeto indican numerales mayores de 9. Por ejemplo, para números hexadecimales (base 16), se utiliza de A hasta F.

+El método toString comprueba su primer argumento, e intenta devolver una cadena de representación en la base especificada. Para bases superiores a 10, las letras del alfabeto indican numerales mayores de 9. Por ejemplo, para números hexadecimales (base 16), se utiliza de A hasta F. -

Si no se da a toString una base entre 2 y 36, se lanza una excepción.

+Si no se da a toString una base entre 2 y 36, se lanza una excepción. -

Si no se especifica la base, JavaScript asume la base predefinida, que es 10.

+Si no se especifica la base, JavaScript asume la base predefinida, que es 10. -

Ejemplos

+## Ejemplos -
var howMany = 10;
+```js
+var howMany = 10;
 
 alert("howMany.toString() is " + howMany.toString()); // displays "10"
 
@@ -51,14 +50,10 @@ alert("45 .toString() is " + 45 .toString()); //displays "45"
 
 var x = 7;
 alert(x.toString(2))      // Displays "111"
-
+``` +## Vea También - -

Vea También

- -
    -
  • {{jsxref("Number.prototype.toFixed()")}}
  • -
  • {{jsxref("Number.prototype.toExponential()")}}
  • -
  • {{jsxref("Number.prototype.toPrecision()")}}
  • -
+- {{jsxref("Number.prototype.toFixed()")}} +- {{jsxref("Number.prototype.toExponential()")}} +- {{jsxref("Number.prototype.toPrecision()")}} diff --git a/files/es/web/javascript/reference/global_objects/number/valueof/index.md b/files/es/web/javascript/reference/global_objects/number/valueof/index.md index 72ec8cdc55bc82..d3b02bca4ce114 100644 --- a/files/es/web/javascript/reference/global_objects/number/valueof/index.md +++ b/files/es/web/javascript/reference/global_objects/number/valueof/index.md @@ -9,74 +9,48 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Number/valueOf original_slug: Web/JavaScript/Referencia/Objetos_globales/Number/valueOf --- -
{{JSRef}}
+{{JSRef}} -

El método valueOf() retorna el valor primitivo inserto en un objeto {{jsxref("Number")}}.

+El método **`valueOf()`** retorna el valor primitivo inserto en un objeto {{jsxref("Number")}}. -

Sintaxis

+## Sintaxis -
numObj.valueOf()
+ numObj.valueOf() -

Valor retornado

+### Valor retornado -

Un número representando al valor primitivo del objeto {{jsxref("Number")}} especificado.

+Un número representando al valor primitivo del objeto {{jsxref("Number")}} especificado. -

Descripción

+## Descripción -

Este método es usualmente llamado de forma interna por JavaScript y no es explicitado en el código web.

+Este método es usualmente llamado de forma interna por JavaScript y no es explicitado en el código web. -

Ejemplos

+## Ejemplos -

Utilizando valueOf

+### Utilizando `valueOf` -
var numObj = new Number(10);
+```js
+var numObj = new Number(10);
 console.log(typeof numObj); // objeto
 
 var num = numObj.valueOf();
 console.log(num);           // 10
 console.log(typeof num);    // número
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.7.4.4', 'Number.prototype.valueOf')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-number.prototype.valueof', 'Number.prototype.valueOf')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-number.prototype.valueof', 'Number.prototype.valueOf')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegador

- - - -

{{Compat("javascript.builtins.Number.valueOf")}}

- -

Ver también

- -
    -
  • {{jsxref("Number.prototype.toSource()")}}
  • -
+``` + +## Especificaciones + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.1. | +| {{SpecName('ES5.1', '#sec-15.7.4.4', 'Number.prototype.valueOf')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-number.prototype.valueof', 'Number.prototype.valueOf')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-number.prototype.valueof', 'Number.prototype.valueOf')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegador + +{{Compat("javascript.builtins.Number.valueOf")}} + +## Ver también + +- {{jsxref("Number.prototype.toSource()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/assign/index.md b/files/es/web/javascript/reference/global_objects/object/assign/index.md index eba2249cc3e39d..036e4b532f7d8e 100644 --- a/files/es/web/javascript/reference/global_objects/object/assign/index.md +++ b/files/es/web/javascript/reference/global_objects/object/assign/index.md @@ -11,55 +11,55 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/assign original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/assign --- -
{{JSRef}}
+{{JSRef}} -

El método Object.assign() copia todas las propiedades enumerables de uno o más objetos fuente a un objeto destino. Devuelve el objeto destino.

+El método **`Object.assign()`** copia todas las propiedades enumerables de uno o más objetos fuente a un objeto destino. Devuelve el objeto destino. -
{{EmbedInteractiveExample("pages/js/object-assign.html")}}
+{{EmbedInteractiveExample("pages/js/object-assign.html")}} -

Sintaxis

+## Sintaxis -
Object.assign(objetivo, ...fuentes)
+ Object.assign(objetivo, ...fuentes) -

Parámetros

+### Parámetros -
-
objetivo
-
El objeto destino.
-
fuentes
-
Los objetos origen.
-
+- `objetivo` + - : El objeto destino. +- `fuentes` + - : Los objetos origen. -

Valor devuelto

+### Valor devuelto -

El objeto destino.

+El objeto destino. -

Descripción

+## Descripción -

Las propiedades en el objeto destino serán sobrescritas por las propiedades en las fuentes si tienen la misma clave. Propiedades posteriores de las fuentes podrán sobrescribir las anteriores.

+Las propiedades en el objeto destino serán sobrescritas por las propiedades en las fuentes si tienen la misma clave. Propiedades posteriores de las fuentes podrán sobrescribir las anteriores. -

El método Object.assign() copia sólo las propiedades enumerables y propias del objeto origen a un objeto destino. Usa [[Get]] en la origen y [[Set]] en el destino, por lo que invocará los métodos de acceso y establecimiento (getters y setters). Por consiguiente asignará propiedades frente a sólo copiar o definir propiedades nuevas. Esto puede hacer que sea inadecuado para fusionar propiedades nuevas en un prototipo si los objetos fuente contienen métodos de acceso (getters). Para copiar definiciones de propiedades en prototipos, incluyendo su enumerabilidad, se deben usar {{jsxref("Object.getOwnPropertyDescriptor()")}} y {{jsxref("Object.defineProperty()")}}.

+El método `Object.assign()` copia sólo las propiedades _enumerables_ y _propias_ del objeto origen a un objeto destino. Usa `[[Get]]` en la origen y `[[Set]] `en el destino, por lo que invocará los métodos de acceso y establecimiento (_getters_ y _setters_). Por consiguiente _asignará_ propiedades frente a sólo copiar o definir propiedades nuevas. Esto puede hacer que sea inadecuado para fusionar propiedades nuevas en un prototipo si los objetos fuente contienen métodos de acceso (_getters_). Para copiar definiciones de propiedades en prototipos, incluyendo su enumerabilidad, se deben usar {{jsxref("Object.getOwnPropertyDescriptor()")}} y {{jsxref("Object.defineProperty()")}}. -

Tanto las propiedades {{jsxref("String")}} como {{jsxref("Symbol")}} son copiadas.

+Tanto las propiedades {{jsxref("String")}} como {{jsxref("Symbol")}} son copiadas. -

En caso de un error, por ejemplo si una propiedad es de solo lectura, se lanza un {{jsxref("TypeError")}}, y el objeto destino se mantendrá sin cambios.

+En caso de un error, por ejemplo si una propiedad es de solo lectura, se lanza un {{jsxref("TypeError")}}, y el objeto destino se mantendrá sin cambios. -

Note que Object.assign() no lanza excepciones al encontrar en las fuentes propiedades {{jsxref("null")}} o {{jsxref("undefined")}}.

+Note que `Object.assign()` no lanza excepciones al encontrar en las fuentes propiedades {{jsxref("null")}} o {{jsxref("undefined")}}. -

Ejemplos

+## Ejemplos -

Clonando un objeto

+### Clonando un objeto -
var obj = { a: 1 };
+```js
+var obj = { a: 1 };
 var copy = Object.assign({}, obj);
 console.log(copy); // { a: 1 }
-
+``` -

Advertencia para clonado profundo

+### Advertencia para clonado profundo -

Para un clonado profundo, necesitamos usar otra alternativa ya que Object.assign() copia valores de propiedades. Si el valor en la fuente es una referencia a un objeto, solo se copia la referencia en sí, como valor de la propiedad.

+Para un clonado profundo, necesitamos usar otra alternativa ya que `Object.assign()` copia valores de propiedades. Si el valor en la fuente es una referencia a un objeto, solo se copia la referencia en sí, como valor de la propiedad. -
function test() {
+```js
+function test() {
   'use strict';
 
   let obj1 = { a: 0 , b: { c: 0}};
@@ -86,42 +86,49 @@ console.log(copy); // { a: 1 }
   console.log(JSON.stringify(obj3)); // { a: 0, b: { c: 0}}
 }
 
-test();
+test(); +``` -

Fusionando objetos

+### Fusionando objetos -
var o1 = { a: 1 };
+```js
+var o1 = { a: 1 };
 var o2 = { b: 2 };
 var o3 = { c: 3 };
 
 var obj = Object.assign(o1, o2, o3);
 console.log(obj); // { a: 1, b: 2, c: 3 }
-console.log(o1);  // { a: 1, b: 2, c: 3 }, target object itself is changed.
+console.log(o1); // { a: 1, b: 2, c: 3 }, target object itself is changed. +``` -

Fusionando objetos con las mismas propiedades

+### Fusionando objetos con las mismas propiedades -
var o1 = { a: 1, b: 1, c: 1 };
+```js
+var o1 = { a: 1, b: 1, c: 1 };
 var o2 = { b: 2, c: 2 };
 var o3 = { c: 3 };
 
 var obj = Object.assign({}, o1, o2, o3);
-console.log(obj); // { a: 1, b: 2, c: 3 }
+console.log(obj); // { a: 1, b: 2, c: 3 } +``` -

Las propiedades también son sobreescritas por otros objetos que aparecen posteriormente en la lista de parámetros y que tienen propiedades con el mismo nombre.

+Las propiedades también son sobreescritas por otros objetos que aparecen posteriormente en la lista de parámetros y que tienen propiedades con el mismo nombre. -

Copiando propiedades de tipo símbolo

+### Copiando propiedades de tipo símbolo -
var o1 = { a: 1 };
+```js
+var o1 = { a: 1 };
 var o2 = { [Symbol('foo')]: 2 };
 
 var obj = Object.assign({}, o1, o2);
 console.log(obj); // { a : 1, [Symbol("foo")]: 2 } (cf. bug 1207182 on Firefox)
 Object.getOwnPropertySymbols(obj); // [Symbol(foo)]
-
+``` -

Las propiedades heredadas y las no enumerables no pueden ser copiadas

+### Las propiedades heredadas y las no enumerables no pueden ser copiadas -
var obj = Object.create({ foo: 1 }, { // foo es una propiedad heredada.
+```js
+var obj = Object.create({ foo: 1 }, { // foo es una propiedad heredada.
   bar: {
     value: 2  // bar es una propiedad no enumerable.
   },
@@ -133,11 +140,12 @@ Object.getOwnPropertySymbols(obj); // [Symbol(foo)]
 
 var copy = Object.assign({}, obj);
 console.log(copy); // { baz: 3 }
-
+``` -

Los tipos primitivos serán encapsulados en objetos

+### Los tipos primitivos serán encapsulados en objetos -
var v1 = 'abc';
+```js
+var v1 = 'abc';
 var v2 = true;
 var v3 = 10;
 var v4 = Symbol('foo')
@@ -146,11 +154,12 @@ var obj = Object.assign({}, v1, null, v2, undefined, v3, v4);
 // Los tipos primitivos son encapsulados en objetos y se ignoran las propiedades con valor null o undefined.
 // Nótese que sólo los wrappers de cadenas tienen propiedades enumerables:
 console.log(obj); // { "0": "a", "1": "b", "2": "c" }
-
+``` -

Las excepciones interrumpen la tarea de copiado

+### Las excepciones interrumpen la tarea de copiado -
var target = Object.defineProperty({}, 'foo', {
+```js
+var target = Object.defineProperty({}, 'foo', {
   value: 1,
   writeable: false
 }); // target.foo es una propiedad de sólo lectura
@@ -164,11 +173,12 @@ console.log(target.foo2); // 3, la primera propiedad del segundo objeto fuente s
 console.log(target.foo);  // 1, se lanza la excepción.
 console.log(target.foo3); // undefined, el método assign ha finalizado, no se copiará foo3.
 console.log(target.baz);  // undefined, tampoco se copiará el tercer objecto fuente.
-
+``` -

Copiando métodos de acceso

+### Copiando métodos de acceso -
var obj = {
+```js
+var obj = {
   foo: 1,
   get bar() {
     return 2;
@@ -181,13 +191,13 @@ console.log(copy);
 
 // This is an assign function that copies full descriptors
 function completeAssign(target, ...sources) {
-  sources.forEach(source => {
-    let descriptors = Object.keys(source).reduce((descriptors, key) => {
+  sources.forEach(source => {
+    let descriptors = Object.keys(source).reduce((descriptors, key) => {
       descriptors[key] = Object.getOwnPropertyDescriptor(source, key);
       return descriptors;
     }, {});
     // by default, Object.assign copies enumerable Symbols too
-    Object.getOwnPropertySymbols(source).forEach(sym => {
+    Object.getOwnPropertySymbols(source).forEach(sym => {
       let descriptor = Object.getOwnPropertyDescriptor(source, sym);
       if (descriptor.enumerable) {
         descriptors[sym] = descriptor;
@@ -201,13 +211,14 @@ function completeAssign(target, ...sources) {
 var copy = completeAssign({}, obj);
 console.log(copy);
 // { foo:1, get bar() { return 2 } }
-
+``` -

Polyfill

+## Polyfill -

Este {{Glossary("Polyfill","polyfill")}} no soporta propiedades símbolo, ya que ES5 no tiene símbolos.

+Este {{Glossary("Polyfill","polyfill")}} no soporta propiedades símbolo, ya que ES5 no tiene símbolos. -
if (typeof Object.assign != 'function') {
+```js
+if (typeof Object.assign != 'function') {
   // Must be writable: true, enumerable: false, configurable: true
   Object.defineProperty(Object, "assign", {
     value: function assign(target, varArgs) { // .length of function is 2
@@ -218,7 +229,7 @@ console.log(copy);
 
       var to = Object(target);
 
-      for (var index = 1; index < arguments.length; index++) {
+      for (var index = 1; index < arguments.length; index++) {
         var nextSource = arguments[index];
 
         if (nextSource != null) { // Skip over if undefined or null
@@ -236,40 +247,21 @@ console.log(copy);
     configurable: true
   });
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES2015', '#sec-object.assign', 'Object.assign')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-object.assign', 'Object.assign')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
-

{{Compat("javascript.builtins.Object.assign")}}

-
- -

Ver también

- - +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-object.assign', 'Object.assign')}} | {{Spec2('ES2015')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-object.assign', 'Object.assign')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Object.assign")}} + +## Ver también + +- {{jsxref("Object.defineProperties()")}} +- [Enumeración y propietarios de propiedades](/es/docs/Web/JavaScript/enumeracion_y_propietario_de_propiedades) +- [Spread en literales tipo Objeto](/es/docs/Web/JavaScript/Referencia/Operadores/Sintaxis_Spread#Spread_en_literales_tipo_Objeto) diff --git a/files/es/web/javascript/reference/global_objects/object/constructor/index.md b/files/es/web/javascript/reference/global_objects/object/constructor/index.md index f945c96c1feddf..5d2d4efb631bd0 100644 --- a/files/es/web/javascript/reference/global_objects/object/constructor/index.md +++ b/files/es/web/javascript/reference/global_objects/object/constructor/index.md @@ -9,104 +9,93 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/constructor original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/constructor --- -
{{JSRef("Objetos_globales", "Object")}}
+{{JSRef("Objetos_globales", "Object")}} -

Resumen

+## Resumen -

Retorna una referencia a la función del {{jsxref("Object")}} que creó el objeto de la instancia. Note que el valor de esta propiedad es una referencia a la función misma, no a un string conteniendo el nombre de la función. El valor es sólo de lectura para valores primitivos tales como 1, true y 'test'.

+Retorna una referencia a la función del {{jsxref("Object")}} que creó el objeto de la instancia. Note que el valor de esta propiedad es una referencia a la función misma, no a un string conteniendo el nombre de la función. El valor es sólo de lectura para valores primitivos tales como 1, true y 'test'. -

Descripción

+## Descripción -

Todos los objetos tienen una propiedad constructor. Los objetos creados sin explicitar el uso de una función (como son los objetos y las cadenas literales) tendrán una propiedad de constructor que apunta al tipo de constructor del Objeto Fundamento para ese objeto.

+Todos los objetos tienen una propiedad `constructor.` Los objetos creados sin explicitar el uso de una función (como son los objetos y las cadenas literales) tendrán una propiedad de `constructor` que apunta al tipo de constructor del Objeto Fundamento para ese objeto. -
var o = {};
+```js
+var o = {};
 o.constructor === Object; // true
 
 var a = [];
 a.constructor === Array; // true
 
 var n = new Number(3);
-n.constructor === Number; // true
+n.constructor === Number; // true +``` -

Ejemplos

+## Ejemplos -

Ejemplo: Mostrando el constructor de un objeto.

+### Ejemplo: Mostrando el constructor de un objeto. -

El siguiente ejemplo crea un prototipo, Tree, y un objeto de este tipo, theTree. El ejemplo muestra entonces la propiedad constructor para el objeto theTree.

+El siguiente ejemplo crea un prototipo, `Tree`, y un objeto de este tipo, `theTree`. El ejemplo muestra entonces la propiedad `constructor` para el objeto `theTree`. -
function Tree (name) {
+```js
+function Tree (name) {
    this.name = name;
 }
 
 var theTree = new Tree( "Redwood" );
-console.log( "theTree.constructor is " + theTree.constructor );
+console.log( "theTree.constructor is " + theTree.constructor ); +``` -

Este ejemplo muestra la siguiente salida:

+Este ejemplo muestra la siguiente salida: -
theTree.constructor is function Tree (name) {
+```js
+theTree.constructor is function Tree (name) {
     this.name = name;
-}
+} +``` -

Ejemplo: Cambiando el constructor de un objeto.

+### Ejemplo: Cambiando el constructor de un objeto. -

El siguiente ejemplo demuestra como modificar el valor del constructor de objetos genéricos. Solo true, 1 y "test" no serán afectados ya que ellos tienen constructores nativos de solo lectura. Este ejemplo demuestra que no siempre es seguro confiar en la propiedad constructor de un objeto.

+El siguiente ejemplo demuestra como modificar el valor del constructor de objetos genéricos. Solo `true`, `1` y `"test"` no serán afectados ya que ellos tienen constructores nativos de solo lectura. Este ejemplo demuestra que no siempre es seguro confiar en la propiedad constructor de un objeto. -
function Type () {}
+```js
+function Type () {}
 
 var types = [
     new Array(),
     [],
     new Boolean(),
     true,             // no cambia
-    new Date(),
-    new Error(),
-    new Function(),
+    new Date(),
+    new Error(),
+    new Function(),
     function () {},
-    Math,
-    new Number(),
+    Math,
+    new Number(),
     1,                // no cambia
-    new Object(),
+    new Object(),
     {},
-    new RegExp(),
+    new RegExp(),
     /(?:)/,
-    new String(),
+    new String(),
     "test"            // no cambia
 ];
 
-for( var i = 0; i < types.length; i++ ) {
+for( var i = 0; i < types.length; i++ ) {
     types[i].constructor = Type;
     types[i] = [ types[i].constructor, types[i] instanceof Type, types[i].toString() ];
 }
 
-console.log( types.join( "\n" ) );
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificacionesEstatusComentario
ECMAScript 1ra. Edición. Implementado en JavaScript 1.1Estandar.Definición inicial.
{{SpecName('ES5.1', '#sec-15.2.4.1', 'Objectprototype.constructor')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-object.prototype.constructor', 'Object.prototype.constructor')}}{{Spec2('ES6')}}
- -

Compatibilidad con Navegadores

+console.log( types.join( "\n" ) ); +``` + +## Especificaciones + +| Especificaciones | Estatus | Comentario | +| -------------------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------- | +| ECMAScript 1ra. Edición. Implementado en JavaScript 1.1 | Estandar. | Definición inicial. | +| {{SpecName('ES5.1', '#sec-15.2.4.1', 'Objectprototype.constructor')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-object.prototype.constructor', 'Object.prototype.constructor')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con Navegadores {{Compat("javascript.builtins.Object.constructor")}} diff --git a/files/es/web/javascript/reference/global_objects/object/create/index.md b/files/es/web/javascript/reference/global_objects/object/create/index.md index 0f010b3030acf4..93b4576f37a339 100644 --- a/files/es/web/javascript/reference/global_objects/object/create/index.md +++ b/files/es/web/javascript/reference/global_objects/object/create/index.md @@ -12,44 +12,39 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/create original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/create --- -
{{JSRef}}
+{{JSRef}} -

El método Object.create() crea un objeto nuevo, utilizando un objeto existente como el prototipo del nuevo objeto creado.

+El método **`Object.create()`** crea un objeto nuevo, utilizando un objeto existente como el prototipo del nuevo objeto creado. -
{{EmbedInteractiveExample("pages/js/object-create.html")}}
+{{EmbedInteractiveExample("pages/js/object-create.html")}}La fuente de este ejemplo interactivo se almacena en un repositorio de GitHub. Si desea contribuir al proyecto de ejemplos interactivos, clone https\://github.com/mdn/interactive-examples y envíenos una solicitud de extracción (pull request). +## Sintaxis + Object.create(proto[, propertiesObject]) -
La fuente de este ejemplo interactivo se almacena en un repositorio de GitHub. Si desea contribuir al proyecto de ejemplos interactivos, clone https://github.com/mdn/interactive-examples y envíenos una solicitud de extracción (pull request).
+### Parámetros -

Sintaxis

+- _proto_ + - : Objeto el cual debe ser el prototipo del nuevo objeto creado. +- _propertiesObject_ + - : Opcional. Si se especifica y no es {{jsxref("undefined")}}, un objeto cuyas propiedades enumerables propias (es decir, aquellas propiedades definidas sobre si mismo y _no_ son propiedades enumerable a lo largo de su cadena de prototipos) espefica descriptores de propiedad para ser agregadas al objeto recien creado, con los nombres de propiedad correspondiente. Estas propiedades corresponden al segundo argumento de {{jsxref("Object.defineProperties")}}. -
Object.create(proto[, propertiesObject])
+### Valor devuelto -

Parámetros

+Un nuevo objeto con el prototipo y propiedades del objeto especificado. -
-
proto
-
Objeto el cual debe ser el prototipo del nuevo objeto creado.
-
propertiesObject
-
Opcional. Si se especifica y no es {{jsxref("undefined")}}, un objeto cuyas propiedades enumerables propias (es decir, aquellas propiedades definidas sobre si mismo y no son propiedades enumerable a lo largo de su cadena de prototipos) espefica descriptores de propiedad para ser agregadas al objeto recien creado, con los nombres de propiedad correspondiente. Estas propiedades corresponden al segundo argumento de {{jsxref("Object.defineProperties")}}.
-
+### Excepciones -

Valor devuelto

+Una excepción {{jsxref("TypeError")}} si el parámetro `propertiesObject` es {{jsxref("null")}} o un objeto envolvente no primitivo. -

Un nuevo objeto con el prototipo y propiedades del objeto especificado.

+## Ejemplos -

Excepciones

+### Herencia clásica con `Object.create()` -

Una excepción {{jsxref("TypeError")}} si el parámetro propertiesObject es {{jsxref("null")}} o un objeto envolvente no primitivo.

+Debajo se encuentra un ejemplo de cómo usar `Object.create()` para lograr herencia clásica. Este es para herencia simple, la cual es todo lo que soporta JavaScript. -

Ejemplos

- -

Herencia clásica con Object.create()

- -

Debajo se encuentra un ejemplo de cómo usar Object.create() para lograr herencia clásica. Este es para herencia simple, la cual es todo lo que soporta JavaScript.

- -
// Shape - superclase
+```js
+// Shape - superclase
 function Shape() {
   this.x = 0;
   this.y = 0;
@@ -78,11 +73,12 @@ console.log('¿Es rect una instancia de Rectangle?',
 console.log('¿Es rect una instancia de Shape?',
   rect instanceof Shape); // true
 rect.move(1, 1); // Imprime, 'Shape moved.'
-
+``` -

Si desea heredar desde múltiples objetos, entonces los mixins son una posibilidad.

+Si desea heredar desde múltiples objetos, entonces los mixins son una posibilidad. -
function MyClass() {
+```js
+function MyClass() {
   SuperClass.call(this);
   OtherSuperClass.call(this);
 }
@@ -97,13 +93,14 @@ MyClass.prototype.constructor = MyClass;
 MyClass.prototype.myMethod = function() {
   // do something
 };
-
+``` -

{{jsxref("Object.assign()")}} copia las propiedades del prototipo OtherSuperClass al prototipo de MyClass, haciéndolas disponibles en todas las instancias de MyClass. Object.assign() se introdujo con ES2015 y tiene polyfill. Si el soporte para navegadores antiguos es necesario, se puede utilizar jQuery.extend() o _.assign().

+{{jsxref("Object.assign()")}} copia las propiedades del prototipo _OtherSuperClass_ al prototipo de _MyClass_, haciéndolas disponibles en todas las instancias de _MyClass_. `Object.assign()` se introdujo con ES2015 y [tiene polyfill](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Object/assign#Polyfill). Si el soporte para navegadores antiguos es necesario, se puede utilizar [`jQuery.extend()`](https://api.jquery.com/jQuery.extend/) o [`_.assign()`](https://lodash.com/docs/#assign). -

Usando el argumento propertiesObject con Object.create()

+### Usando el argumento `propertiesObject` con `Object.create()` -
var o;
+```js
+var o;
 
 // crea un objeto con un prototipo como null
 o = Object.create(null);
@@ -153,7 +150,7 @@ for (var prop in o) {
 delete o.p
 // false
 
-// para especificar una propiedad en ES3
+// para especificar una propiedad en ES3
 
 o2 = Object.create({}, { p: {
       value: 42,
@@ -161,164 +158,177 @@ o2 = Object.create({}, { p: {
       enumerable: true,
       configurable: true }
 });
-
+``` -

Objetos personalizados y nulos

+## Objetos personalizados y nulos -

Un objeto nuevo creado de un objeto completamente personalizado (especialmente uno creado de un objeto nulo, que es básicamente un objeto personalizado sin miembros) puede comportarse de manera inesperada. Esto es especialmente cierto cuando se depura, ya que las funciones comunes de conversión/detección de propiedad de objeto pueden generar errores, o simplemente perder información (especialmente si se atrapan excepciones de manera silenciosa que ignoran los errores). Por ejemplo, aquí hay dos objetos:

+Un objeto nuevo creado de un objeto completamente personalizado (especialmente uno creado de un objeto nulo, que es básicamente un objeto personalizado sin miembros) puede comportarse de manera inesperada. Esto es especialmente cierto cuando se depura, ya que las funciones comunes de conversión/detección de propiedad de objeto pueden generar errores, o simplemente perder información (especialmente si se atrapan excepciones de manera silenciosa que ignoran los errores). Por ejemplo, aquí hay dos objetos: -
oco = Object.create( {} );   // Crea un objeto normal
+```js
+oco = Object.create( {} );   // Crea un objeto normal
 ocn = Object.create( null ); // Crea un objeto "null"
 
-> console.log(oco) // {} -- Parece normal
-> console.log(ocn) // {} -- Parece normal aquí también, hasta este momento
+> console.log(oco) // {} -- Parece normal
+> console.log(ocn) // {} -- Parece normal aquí también, hasta este momento
 
 oco.p = 1; // Crea una propiedad simple en un objeto normal
 ocn.p = 0; // Crea una propiedad simple en un objeto "null"
 
-> console.log(oco) // {p: 1} -- Todavía parece normal
-> console.log(ocn) // {p: 0} --Todavía parece normal aquí también. PERO ESPERA...
-
+> console.log(oco) // {p: 1} -- Todavía parece normal +> console.log(ocn) // {p: 0} --Todavía parece normal aquí también. PERO ESPERA... +``` -

Como se muestra arriba, todo parece normal hasta ahora. Sin embargo, al intentar usar estos objetos, sus diferencias se hacen evidentes rápidamente:

+Como se muestra arriba, todo parece normal hasta ahora. Sin embargo, al intentar usar estos objetos, sus diferencias se hacen evidentes rápidamente: -
> "oco is: " + oco // Muestra "ocn is: [object Object]"
+```js
+> "oco is: " + oco // Muestra "ocn is: [object Object]"
 
-> "ocn is: " + ocn // Arroja error: Cannot convert object to primitive value
-
+> "ocn is: " + ocn // Arroja error: Cannot convert object to primitive value +``` -

Probar solo algunas de las funciones incorporadas más básicas muestra la magnitud del problema más claramente:

+Probar solo algunas de las funciones incorporadas más básicas muestra la magnitud del problema más claramente: -
> alert(oco) // Muestra: [object Object]
-> alert(ocn) // Arroja error: Cannot convert object to primitive value
+```js
+> alert(oco) // Muestra: [object Object]
+> alert(ocn) // Arroja error: Cannot convert object to primitive value
 
-> oco.toString() // Muestra [object Object]
-> ocn.toString() // Arroja error: ocn.toString is not a function
+> oco.toString() // Muestra [object Object]
+> ocn.toString() // Arroja error: ocn.toString is not a function
 
-> oco.valueOf() // Muestra{}
-> ocn.valueOf() // Arroja error: ocn.valueOf is not a function
+> oco.valueOf() // Muestra{}
+> ocn.valueOf() // Arroja error: ocn.valueOf is not a function
 
-> oco.hasOwnProperty("p") // Muestra "true"
-> ocn.hasOwnProperty("p") // Arroja error: ocn.hasOwnProperty is not a function
+> oco.hasOwnProperty("p") // Muestra "true"
+> ocn.hasOwnProperty("p") // Arroja error: ocn.hasOwnProperty is not a function
 
-> oco.constructor // Muestra "Object() { [native code] }"
-> ocn.constructor // Muestra "undefined"
-
+> oco.constructor // Muestra "Object() { [native code] }" +> ocn.constructor // Muestra "undefined" +``` -

Como se dijo, estas diferencias pueden hacer que la depuración e incluso problemas aparentemente simples se pierdan rápidamente. Por ejemplo:

+Como se dijo, estas diferencias pueden hacer que la depuración e incluso problemas aparentemente simples se pierdan rápidamente. Por ejemplo: -

Una función simple de depuración:

+_Una función simple de depuración:_ -
// mostrar nombre de propiedad de nivel superior: pares de valores de un objeto dado
+```js
+// mostrar nombre de propiedad de nivel superior: pares de valores de un objeto dado
 function ShowProperties( b ){
   for( var i in b ){  console.log( i + ": " + b[i] + "\n" )  }
-}
+} +``` -

Resultados no tan simples: (especialmente si la captura silenciosa de errores había ocultado los mensajes de error)

+_Resultados no tan simples: (especialmente si la captura silenciosa de errores había ocultado los mensajes de error)_ -
ob={}; ob.po=oco; ob.pn=ocn; // crear un objeto compuesto usando los objetos de prueba de arriba como valores de propiedad
+```js
+ob={}; ob.po=oco; ob.pn=ocn; // crear un objeto compuesto usando los objetos de prueba de arriba como valores de propiedad
 
-> ShowProperties( ob ) // Muestra propiedades de nivel superior
+> ShowProperties( ob ) // Muestra propiedades de nivel superior
 - po: [object Object]
 - Error: Cannot convert object to primitive value
 
 Tenga en cuenta que solo se muestra la primera propiedad.
-
+``` -

(Pero si se crea el mismo objeto simplemente en un orden diferente, al menos en algunas implementaciones ...)

+_(Pero si se crea el mismo objeto simplemente en un orden diferente, al menos en algunas implementaciones ...)_ -
ob={}; ob.pn=ocn; ob.po=oco; // cree el mismo objeto compuesto nuevamente, pero cree las mismas propiedades en un orden diferente
+```js
+ob={}; ob.pn=ocn; ob.po=oco; // cree el mismo objeto compuesto nuevamente, pero cree las mismas propiedades en un orden diferente
 
-> ShowProperties( ob ) // Muestra propiedades de nivel superior
+> ShowProperties( ob ) // Muestra propiedades de nivel superior
 - Error: Cannot convert object to primitive value
 
-Tenga en cuenta que ninguna propiedad se muestra.
+Tenga en cuenta que ninguna propiedad se muestra. +``` -

Tenga en cuenta que un orden tan diferente puede surgir estáticamente a través de codificaciones fijas dispares, como aquí, pero también dinámicamente a través del orden en que se ejecutan dichas ramas de código de adición de propiedades en tiempo de ejecución, ya que depende de entradas y / o variables aleatorias. Por otra parte, el orden de iteración real no está garantizado, independientemente de cómo son agregados los miembros.

+Tenga en cuenta que un orden tan diferente puede surgir estáticamente a través de codificaciones fijas dispares, como aquí, pero también dinámicamente a través del orden en que se ejecutan dichas ramas de código de adición de propiedades en tiempo de ejecución, ya que depende de entradas y / o variables aleatorias. Por otra parte, el orden de iteración real no está garantizado, independientemente de cómo son agregados los miembros. -

Algunas NO-soluciones

+#### Algunas NO-soluciones -

A good solution for the missing object-methods is not immediately apparent.

+A good solution for the missing object-methods is not immediately apparent. -

Adding the missing object-method directly from the standard-object does NOT work:

+Adding the missing object-method directly from the standard-object does NOT work: -
ocn = Object.create( null ); // create "null" object (same as before)
+```js
+ocn = Object.create( null ); // create "null" object (same as before)
 
 ocn.toString = Object.toString; // since new object lacks method then try assigning it directly from standard-object
 
-> ocn.toString // shows "toString() { [native code] }" -- missing method seems to be there now
-> ocn.toString == Object.toString // shows "true" -- method seems to be same as the standard object-method
+> ocn.toString // shows "toString() { [native code] }" -- missing method seems to be there now
+> ocn.toString == Object.toString // shows "true" -- method seems to be same as the standard object-method
 
-> ocn.toString() // error: Function.prototype.toString requires that 'this' be a Function
-
+> ocn.toString() // error: Function.prototype.toString requires that 'this' be a Function +``` -


- Adding the missing object-method directly to new object's "prototype" does not work either, since new object does not have a real prototype (which is really the cause of ALL these problems) and one cannot be directly added:

+Adding the missing object-method directly to new object's "prototype" does not work either, since new object does not have a real prototype (which is really the cause of ALL these problems) and one cannot be **directly** added: -
ocn = Object.create( null ); // create "null" object (same as before)
+```js
+ocn = Object.create( null ); // create "null" object (same as before)
 
 ocn.prototype.toString = Object.toString; // Error: Cannot set property 'toString' of undefined
 
 ocn.prototype = {};                       // try to create a prototype
-ocn.prototype.toString = Object.toString; // since new object lacks method then try assigning it from standard-object  
+ocn.prototype.toString = Object.toString; // since new object lacks method then try assigning it from standard-object
 
-> ocn.toString() // error: ocn.toString is not a function
-
+> ocn.toString() // error: ocn.toString is not a function +``` -


- Adding the missing object-method by using the standard-object as new object's prototype does not work either:

+Adding the missing object-method by using the standard-object\*\* \*\*as new object's prototype does not work either: -
ocn = Object.create( null );        // create "null" object (same as before)
+```js
+ocn = Object.create( null );        // create "null" object (same as before)
 Object.setPrototypeOf(ocn, Object); // set new object's prototype to the standard-object
 
-> ocn.toString() // error: Function.prototype.toString requires that 'this' be a Function
-
+> ocn.toString() // error: Function.prototype.toString requires that 'this' be a Function +``` -

Algunas soluciones aceptables

+#### Algunas soluciones aceptables -

Again, adding the missing object-method directly from the standard-object does NOT work. However, adding the generic method directly, DOES:

+Again, adding the missing object-method directly from the **standard-object** does NOT work. However, adding the **generic** method directly, DOES: -
ocn = Object.create( null ); // create "null" object (same as before)
+```js
+ocn = Object.create( null ); // create "null" object (same as before)
 
 ocn.toString = toString; // since new object lacks method then assign it directly from generic version
 
-> ocn.toString() // shows "[object Object]"
-> "ocn is: " + ocn // shows "ocn is: [object Object]"
+> ocn.toString() // shows "[object Object]"
+> "ocn is: " + ocn // shows "ocn is: [object Object]"
 
 
 ob={}; ob.pn=ocn; ob.po=oco; // create a compound object (same as before)
 
-> ShowProperties(ob) // display top-level properties
+> ShowProperties(ob) // display top-level properties
 - po: [object Object]
 - pn: [object Object]
-
+``` -

However, setting the generic prototype as the new object's prototype works even better:

+However, setting the generic **prototype** as the new object's prototype works even better: -
ocn = Object.create( null );                  // create "null" object (same as before)
+```js
+ocn = Object.create( null );                  // create "null" object (same as before)
 Object.setPrototypeOf(ocn, Object.prototype); // set new object's prototype to the "generic" object (NOT standard-object)
-
+``` -

(In addition to all the string-related functions shown above, this also adds:)

+_(In addition to all the string-related functions shown above, this also adds:)_ -
> ocn.valueOf() // shows {}
-> ocn.hasOwnProperty("x") // shows "false"
-> ocn.constructor // shows "Object() { [native code] }"
+```js
+> ocn.valueOf() // shows {}
+> ocn.hasOwnProperty("x") // shows "false"
+> ocn.constructor // shows "Object() { [native code] }"
 
 // ...and all the rest of the properties and methods of Object.prototype.
-
+``` -

As shown, objects modified this way now look very much like ordinary objects.

+As shown, objects modified this way now look very much like ordinary objects. -

Polyfill

+## Polyfill -

Este polyfill cubre el caso de uso principal el cual es la creación de un nuevo objeto para el prototipo que ha sido escogido pero no toma el segundo argumento en cuenta.

+Este polyfill cubre el caso de uso principal el cual es la creación de un nuevo objeto para el prototipo que ha sido escogido pero no toma el segundo argumento en cuenta. -

Note that while the setting of null as [[Prototype]] is supported in the real ES5 Object.create, this polyfill cannot support it due to a limitation inherent in versions of ECMAScript lower than 5.

+Note that while the setting of `null` as `[[Prototype]]` is supported in the real ES5 `Object.create`, this polyfill cannot support it due to a limitation inherent in versions of ECMAScript lower than 5. -
 if (typeof Object.create !== "function") {
+```js
+ if (typeof Object.create !== "function") {
     Object.create = function (proto, propertiesObject) {
-        if (typeof proto !== 'object' && typeof proto !== 'function') {
+        if (typeof proto !== 'object' && typeof proto !== 'function') {
             throw new TypeError('Object prototype may only be an Object: ' + proto);
         } else if (proto === null) {
             throw new Error("This browser's implementation of Object.create is a shim and doesn't support 'null' as the first argument.");
@@ -334,45 +344,24 @@ Object.setPrototypeOf(ocn, Object.prototype); // set new object's prototype to t
         return new F();
     };
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES5.1', '#sec-15.2.3.5', 'Object.create')}}{{Spec2('ES5.1')}}Definición inicial. Implementado en JavaScript 1.8.5
{{SpecName('ES6', '#sec-object.create', 'Object.create')}}{{Spec2('ES2015')}}
{{SpecName('ESDraft', '#sec-object.create', 'Object.create')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
{{Compat("javascript.builtins.Object.create")}}
- -

Ver también

- -
    -
  • {{jsxref("Object.defineProperty")}}
  • -
  • {{jsxref("Object.defineProperties")}}
  • -
  • {{jsxref("Object.prototype.isPrototypeOf")}}
  • -
  • {{jsxref("Reflect.construct()")}}
  • -
  • Publicación de John Resig sobre getPrototypeOf()
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------ | ---------------------------- | ---------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.2.3.5', 'Object.create')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementado en JavaScript 1.8.5 | +| {{SpecName('ES6', '#sec-object.create', 'Object.create')}} | {{Spec2('ES2015')}} | | +| {{SpecName('ESDraft', '#sec-object.create', 'Object.create')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Object.create")}} + +## Ver también + +- {{jsxref("Object.defineProperty")}} +- {{jsxref("Object.defineProperties")}} +- {{jsxref("Object.prototype.isPrototypeOf")}} +- {{jsxref("Reflect.construct()")}} +- Publicación de John Resig sobre [getPrototypeOf()](http://ejohn.org/blog/objectgetprototypeof/) diff --git a/files/es/web/javascript/reference/global_objects/object/defineproperty/index.md b/files/es/web/javascript/reference/global_objects/object/defineproperty/index.md index 2e01e8f2ad9eb3..a82eed38235b62 100644 --- a/files/es/web/javascript/reference/global_objects/object/defineproperty/index.md +++ b/files/es/web/javascript/reference/global_objects/object/defineproperty/index.md @@ -10,77 +10,68 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/defineProperty original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/defineProperty --- -
{{JSRef("Global_Objects", "Object")}}
+{{JSRef("Global_Objects", "Object")}} -

Resumen

+## Resumen -

El método estático Object.defineProperty() define una nueva propiedad sobre un objeto, o modifica una ya existente, y devuelve el objeto modificado.

+El método estático **`Object.defineProperty()`** define una nueva propiedad sobre un objeto, o modifica una ya existente, y devuelve el objeto modificado. -
-

Nota: Ud. puede llamar a este método directamente mediante el constructor {{jsxref("Object")}} en vez de crear una instancia del tipo Object.

-
+> **Nota:** Ud. puede llamar a este método directamente mediante el constructor {{jsxref("Object")}} en vez de crear una instancia del tipo `Object`. -

Sintaxis

+## Sintaxis -
Object.defineProperty(obj, prop, descriptor)
+ Object.defineProperty(obj, prop, descriptor) -

Parámetros

+### Parámetros -
-
obj
-
El objeto sobre el cual se define la propiedad.
-
prop
-
El nombre de la propiedad a ser definida o modificada.
-
descriptor
-
El descriptor de la propiedad que está siendo definida o modificada.
-
+- `obj` + - : El objeto sobre el cual se define la propiedad. +- `prop` + - : El nombre de la propiedad a ser definida o modificada. +- `descriptor` + - : El descriptor de la propiedad que está siendo definida o modificada. -

Descripción

+## Descripción -

Este método permite añadir o modificar una propiedad en un objeto.

+Este método permite añadir o modificar una propiedad en un objeto. -

La adición normal de una propiedad a través de la asignación crea propiedades que aparecen durante la enumeración de propiedades en el bucle ({{jsxref("Sentencias/for...in", "for...in")}} o el método {{jsxref("Object.keys")}}), cuyos valores pueden modificarse y pudiendo incluso eliminar la propiedad del objeto mediante el método {{jsxref("Operadores/delete", "delete")}}.

+La adición normal de una propiedad a través de la asignación crea propiedades que aparecen durante la enumeración de propiedades en el bucle ({{jsxref("Sentencias/for...in", "for...in")}} o el método {{jsxref("Object.keys")}}), cuyos valores pueden modificarse y pudiendo incluso eliminar la propiedad del objeto mediante el método {{jsxref("Operadores/delete", "delete")}}. -

Este método nos permite modificar el comportamiento por defecto de las propiedades. Es decir, nos permite definir una propiedad como no enumerable, no modificable o incluso evitar que pueda ser eliminada del objeto.

+Este método nos permite modificar el comportamiento por defecto de las propiedades. Es decir, nos permite definir una propiedad como no enumerable, no modificable o incluso evitar que pueda ser eliminada del objeto. -

Existen dos tipos de descriptores: De datos y de acceso. Un descriptor de datos define una propiedad que tiene un valor, el cual puede ser o no modificado. Un descriptor de acceso define una propiedad mediante un par de funciones getter-setter que describe como se obtiene o se modifica el contenido de dicha propiedad. Un descriptor debe de ser de uno de estos dos tipos; no puede ser ambos.

+Existen dos tipos de descriptores: De datos y de acceso. Un **descriptor de datos** define una propiedad que tiene un valor, el cual puede ser o no modificado. Un descriptor de acceso define una propiedad mediante un par de funciones getter-setter que describe como se obtiene o se modifica el contenido de dicha propiedad. Un descriptor debe de ser de uno de estos dos tipos; no puede ser ambos. -

Ambos tipos de descriptores son objetos y comparten las siguientes claves opcionales:

+Ambos tipos de descriptores son objetos y comparten las siguientes claves opcionales: -
-
configurable
-
true si y solo si el tipo de descriptor de propiedad puede modificarse y si la propiedad puede ser eliminada del correspondiente objeto.
- Por defecto es false.
-
enumerable
-
true si y solo si dicha propiedad se muestra durante la enumeración de las propiedades del objeto correspondiente.
- Por defecto es false.
-
+- `configurable` + - : `true` si y solo si el tipo de descriptor de propiedad puede modificarse y si la propiedad puede ser eliminada del correspondiente objeto. + **Por defecto es `false`.** +- `enumerable` + - : `true` si y solo si dicha propiedad se muestra durante la enumeración de las propiedades del objeto correspondiente. + **Por defecto es `false`.** -

Un descriptor de datos tiene además las siguientes claves opcionales:

+Un descriptor de datos tiene además las siguientes claves opcionales: -
-
value
-
El valor asociado a la propiedad. Puede ser cualquier tipo valido de JavaScript (number, object, function, etc).
- Por defecto es {{jsxref("Objetos_Globales/undefined", "undefined")}}.
-
writable
-
true Indica si el valor de la propiedad puede modificarse con el {{jsxref("Operators/Assignment_Operators", "operador de asignación", "", 1)}}.
- Defaults to false.
-
+- `value` + - : El valor asociado a la propiedad. Puede ser cualquier tipo valido de JavaScript (number, object, function, etc). + **Por defecto es {{jsxref("Objetos_Globales/undefined", "undefined")}}.** +- `writable` + - : `true` Indica si el valor de la propiedad puede modificarse con el {{jsxref("Operators/Assignment_Operators", "operador de asignación", "", 1)}}. + **Defaults to `false`.** -

Un descriptor de acceso además tiene las siguientes claves opcionales:

+Un descriptor de acceso además tiene las siguientes claves opcionales: -
-
get
-
Una función cuyo valor retornado será el que se use como valor de la propiedad.
- Defaults to {{jsxref("Objetos_Globales/undefined", "undefined")}}.
-
set
-
Una función que recibe como único argumento el nuevo valor que se desea asignar a la propiedad y que devuelve el valor que se almacenará finalmente en el objeto.
- Defaults to {{jsxref("Objetos_Globales/undefined", "undefined")}}.
-
+- `get` + - : Una función cuyo valor retornado será el que se use como valor de la propiedad. + **Defaults to {{jsxref("Objetos_Globales/undefined", "undefined")}}.** +- `set` + - : Una función que recibe como único argumento el nuevo valor que se desea asignar a la propiedad y que devuelve el valor que se almacenará finalmente en el objeto. + **Defaults to {{jsxref("Objetos_Globales/undefined", "undefined")}}.** -

Hay que tener en cuenta que estas opciones también pueden heredarse; es decir, las opciones de la propiedad se han podido establecer en el prototipo de una clase de la que hereda el objeto. De modo que si queremos asegurarnos unos valores por defecto tenemos tres opciones: fijar el {{jsxref("Object.prototype")}} con {{jsxref("Object.freeze")}}, definir todas las opciones explicitamente, o establecer a {{jsxref("Objetos_Globales/null", "null")}} la propiedad {{jsxref("Object.prototype.__proto__", "__proto__")}}.

+Hay que tener en cuenta que estas opciones también pueden heredarse; es decir, las opciones de la propiedad se han podido establecer en el prototipo de una clase de la que hereda el objeto. De modo que si queremos asegurarnos unos valores por defecto tenemos tres opciones: fijar el {{jsxref("Object.prototype")}} con {{jsxref("Object.freeze")}}, definir todas las opciones explicitamente, o establecer a {{jsxref("Objetos_Globales/null", "null")}} la propiedad {{jsxref("Object.prototype.__proto__", "__proto__")}}. -
// Usando __proto__
+```js
+// Usando __proto__
 Object.defineProperty(obj, 'key', {
   __proto__: null, // no aceptar propiedades heredadas
   value: 'static'  // no enumerable
@@ -117,17 +108,18 @@ Object.defineProperty(obj, 'key', withValue('static'));
 //del prototipo del objeto las propiedades
 // (value, get, set, enumerable, writable, configurable)
 (Object.freeze || Object)(Object.prototype);
-
+``` -

Ejemplos

+## Ejemplos -

Si quiere ver algunos ejemplos de utilización del método Object.defineProperty con una sintaxis tipo binary-flags, vea ejemplos adicionales.

+Si quiere ver algunos ejemplos de utilización del método `Object.defineProperty` con una sintaxis tipo _binary-flags_, vea [ejemplos adicionales](/es/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty/Additional_examples). -

Ejemplo: Creando una propiedad

+### Ejemplo: Creando una propiedad -

Cuando la propiedad especificada no existe en el objeto, Object.defineProperty() crea una nueva. En el descriptor pueden omitirse campos, a los cuales se les asignará el valor por defecto. A todos los que sean de tipo Booleano se les asignará el valor falso. Los campos value, get y set se establecerán por defecto a {{jsxref("Objetos_Globales/undefined", "undefined")}}. Una propiedad definida sin indicar get/set/value/writable es denominada “genérica” y “tipificada” como un descriptor de datos.

+Cuando la propiedad especificada no existe en el objeto`, Object.defineProperty()` crea una nueva. En el descriptor pueden omitirse campos, a los cuales se les asignará el valor por defecto. A todos los que sean de tipo Booleano se les asignará el valor falso. Los campos `value`, `get` y `set` se establecerán por defecto a {{jsxref("Objetos_Globales/undefined", "undefined")}}. Una propiedad definida sin indicar `get`/`set`/`value`/`writable` es denominada “genérica” y “tipificada” como un descriptor de datos. -
var o = {}; // Creates a new object
+```js
+var o = {}; // Creates a new object
 
 // Example of an object property added with defineProperty with a data property descriptor
 Object.defineProperty(o, 'a', {
@@ -156,21 +148,22 @@ Object.defineProperty(o, 'conflict', {
   get: function() { return 0xdeadbeef; }
 });
 // throws a TypeError: value appears only in data descriptors, get appears only in accessor descriptors
-
+``` -

Ejemplo: Modificando una propiedad

+### Ejemplo: Modificando una propiedad -

Cuando la propiedad realmente existe, Object.defineProperty() intenta modificar la propiedad de acuerdo a los valores en la descripción y la configuración actual del objeto. Si la descripción antigüa tenía su atributo de configuración establecido en false (la propiedad se dice "sin capacidad de configuración"), entonces ningún atributo además de los que tienen capacidad de escritura pueden ser cambiados. En ese caso, no es posible cambiar hacía atras o hacía delante entre datos y métodos de acceso de tipos de propiedades.

+Cuando la propiedad realmente existe, `Object.defineProperty()` intenta modificar la propiedad de acuerdo a los valores en la descripción y la configuración actual del objeto. Si la descripción antigüa tenía su atributo de configuración establecido en `false` (la propiedad se dice "sin capacidad de configuración"), entonces ningún atributo además de los que tienen capacidad de escritura pueden ser cambiados. En ese caso, no es posible cambiar hacía atras o hacía delante entre datos y métodos de acceso de tipos de propiedades. -

Si una propiedad no tiene capacidad de configuración, su atributo writabble solo puede ser cambiada to false.

+Si una propiedad no tiene capacidad de configuración, su atributo `writabble` solo puede ser cambiada to `false`. -

Un {{jsxref("Global_Objects/TypeError", "TypeError")}} es arrojado cuando se intenta cambiar las propiedades de atributos sin capacidad de configuración (adeḿas del atributo writable) a menos que el valor actual y el valor nuevo sean los mismos.

+Un {{jsxref("Global_Objects/TypeError", "TypeError")}} es arrojado cuando se intenta cambiar las propiedades de atributos sin capacidad de configuración (adeḿas del atributo `writable`) a menos que el valor actual y el valor nuevo sean los mismos. -

Atributo writable

+#### Atributo writable -

Cuando la propiedad de un atributo writable es establecido to false, la propiedad se dice esta "sin capacidad de escritura". No puede ser reasignada.

+Cuando la propiedad de un atributo `writable` es establecido to `false`, la propiedad se dice esta "sin capacidad de escritura". No puede ser reasignada. -
var o = {}; // Crea un objeto nuevo
+```js
+var o = {}; // Crea un objeto nuevo
 
 Object.defineProperty(o, 'a', {
   value: 37,
@@ -180,15 +173,16 @@ Object.defineProperty(o, 'a', {
 console.log(o.a); // logs 37
 o.a = 25; // Ningún error arrojado (lo tiraría en modo estricto, aún si el valor fuera el mismo)
 console.log(o.a); // muestra 37. La asignación no funcionó
-
+``` -

Como es visto en el ejemplo anterior, intentar escribir en una propiedad "sin capacidad de escritura" no la cambia pero sí arroja un error.

+Como es visto en el ejemplo anterior, intentar escribir en una propiedad "sin capacidad de escritura" no la cambia pero sí arroja un error. -

Atributo enumerable

+#### Atributo enumerable -

El atributo de la propiedad enumerable se define si la propiedad aparece en un ciclo {{jsxref("Statements/for...in", "for...in")}} y {{jsxref("Object.keys()")}} o no.

+El atributo de la propiedad `enumerable` se define si la propiedad aparece en un ciclo {{jsxref("Statements/for...in", "for...in")}} y {{jsxref("Object.keys()")}} o no. -
var o = {};
+```js
+var o = {};
 Object.defineProperty(o, 'a', { value: 1, enumerable: true });
 Object.defineProperty(o, 'b', { value: 2, enumerable: false });
 Object.defineProperty(o, 'c', { value: 3 }); // enumerable defaults to false
@@ -204,13 +198,14 @@ Object.keys(o); // ['a', 'd']
 o.propertyIsEnumerable('a'); // true
 o.propertyIsEnumerable('b'); // false
 o.propertyIsEnumerable('c'); // false
-
+``` -

Atributo configurable

+#### Atributo configurable -

El atributo configurable define si la propiedad puede ser eliminada del objeto, y si sus atributos (excepto writable) pueden ser modificados

+El atributo `configurable` define si la propiedad puede ser eliminada del objeto, y si sus atributos (excepto `writable`) pueden ser modificados -
var o = {};
+```js
+var o = {};
 Object.defineProperty(o, 'a', {
   get: function() { return 1; },
   configurable: false
@@ -225,15 +220,16 @@ Object.defineProperty(o, 'a', { value: 12 }); // arroja TypeError
 console.log(o.a); // logs 1
 delete o.a; // No hace nada
 console.log(o.a); // logs 1
-
+``` -

Si o.a tuviese configurable a true, no se habrían arrojado errores y la propiedad habría sido eliminada.

+Si `o.a` tuviese `configurable` a `true`, no se habrían arrojado errores y la propiedad habría sido eliminada. -

Ejemplo: Añadiendo propiedades y valores por defecto

+### Ejemplo: Añadiendo propiedades y valores por defecto -

Es importante tener en cuenta la forma en la se aplican los valores por defecto de los atributos. Suele haber diferencias entre simplemente usar la notación con '.' y usar Object.defineProperty(), como se muestra en el siguiente ejemplo:

+Es importante tener en cuenta la forma en la se aplican los valores por defecto de los atributos. Suele haber diferencias entre simplemente usar la notación con '.' y usar `Object.defineProperty()`, como se muestra en el siguiente ejemplo: -
var o = {};
+```js
+var o = {};
 
 o.a = 1;
 // es equivalente a :
@@ -254,13 +250,14 @@ Object.defineProperty(o, 'a', {
   configurable: false,
   enumerable: false
 });
-
+``` -

Ejemplo: Setters y Getters a medida

+### Ejemplo: Setters y Getters a medida -

Example below shows how to implement a self-archiving object. When temperature property is set, the archive array gets a log entry.

+Example below shows how to implement a self-archiving object. When `temperature` property is set, the `archive` array gets a log entry. -
function Archiver() {
+```js
+function Archiver() {
   var temperature = null;
   var archive = [];
 
@@ -283,68 +280,53 @@ arc.temperature; // 'get!'
 arc.temperature = 11;
 arc.temperature = 13;
 arc.getArchive(); // [{ val: 11 }, { val: 13 }]
-
- -

or

- -
var pattern = {
-    get: function () {
-        return 'I always return this string, whatever you have assigned';
-    },
-    set: function () {
-        this.myname = 'this is my name string';
-    }
-};
-
-
-function TestDefineSetAndGet() {
-    Object.defineProperty(this, 'myproperty', pattern);
-}
-
-
-var instance = new TestDefineSetAndGet();
-instance.myproperty = 'test';
-console.log(instance.myproperty); // I always return this string, whatever you have assigned
-
-console.log(instance.myname); // this is my name string
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.2.3.6', 'Object.defineProperty')}}{{Spec2('ES5.1')}}Initial definition. Implemented in JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.defineproperty', 'Object.defineProperty')}}{{Spec2('ES6')}}
- -

Compatibilidad con navegadores

+``` + +or + +```js +var pattern = { + get: function () { + return 'I always return this string, whatever you have assigned'; + }, + set: function () { + this.myname = 'this is my name string'; + } +}; + + +function TestDefineSetAndGet() { + Object.defineProperty(this, 'myproperty', pattern); +} + + +var instance = new TestDefineSetAndGet(); +instance.myproperty = 'test'; +console.log(instance.myproperty); // I always return this string, whatever you have assigned + +console.log(instance.myname); // this is my name string +``` + +## Especificaciones + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------- | ------------------------ | ---------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.2.3.6', 'Object.defineProperty')}} | {{Spec2('ES5.1')}} | Initial definition. Implemented in JavaScript 1.8.5. | +| {{SpecName('ES6', '#sec-object.defineproperty', 'Object.defineProperty')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Object.defineProperty")}} -

See also

- -
    -
  • Enumerability and ownership of properties
  • -
  • {{jsxref("Object.defineProperties()")}}
  • -
  • {{jsxref("Object.propertyIsEnumerable()")}}
  • -
  • {{jsxref("Object.getOwnPropertyDescriptor()")}}
  • -
  • {{jsxref("Object.prototype.watch()")}}
  • -
  • {{jsxref("Object.prototype.unwatch()")}}
  • -
  • {{jsxref("Operators/get", "get")}}
  • -
  • {{jsxref("Operators/set", "set")}}
  • -
  • {{jsxref("Object.create()")}}
  • -
  • Additional Object.defineProperty examples
  • -
+## See also + +- [Enumerability and ownership of properties](/es/docs/Enumerability_and_ownership_of_properties) +- {{jsxref("Object.defineProperties()")}} +- {{jsxref("Object.propertyIsEnumerable()")}} +- {{jsxref("Object.getOwnPropertyDescriptor()")}} +- {{jsxref("Object.prototype.watch()")}} +- {{jsxref("Object.prototype.unwatch()")}} +- {{jsxref("Operators/get", "get")}} +- {{jsxref("Operators/set", "set")}} +- {{jsxref("Object.create()")}} +- [Additional `Object.defineProperty` examples](/es/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty/Additional_examples) diff --git a/files/es/web/javascript/reference/global_objects/object/entries/index.md b/files/es/web/javascript/reference/global_objects/object/entries/index.md index 0ca97dfbb7a78e..5d5e96ac9a5c63 100644 --- a/files/es/web/javascript/reference/global_objects/object/entries/index.md +++ b/files/es/web/javascript/reference/global_objects/object/entries/index.md @@ -4,32 +4,31 @@ slug: Web/JavaScript/Reference/Global_Objects/Object/entries translation_of: Web/JavaScript/Reference/Global_Objects/Object/entries original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/entries --- -
{{JSRef}}
+{{JSRef}} -

El método Object.entries() devuelve una matriz de pares propios de una propiedad enumerable [key, value] de un objeto dado, en el mismo orden que es proporcionado por {{jsxref("Sentencias/for...in", "for...in")}} (La diferencia es que un bucle for-in enumera las propiedades en la cadena de prototipos).

+El método **`Object.entries()`** devuelve una matriz de pares propios de una propiedad enumerable \[key, value] de un objeto dado, en el mismo orden que es proporcionado por {{jsxref("Sentencias/for...in", "for...in")}} (La diferencia es que un bucle for-in enumera las propiedades en la cadena de prototipos). -

Sintaxis

+## Sintaxis -
Object.entries(obj)
+ Object.entries(obj) -

Parámetros

+### Parámetros -
-
obj
-
The object whose enumerable own property [key, value] pairs are to be returned.
-
+- `obj` + - : The object whose enumerable own property `[key, value]` pairs are to be returned. -

Valor de retorno

+### Valor de retorno -

An array of the given object's own enumerable property [key, value] pairs.

+An array of the given object's own enumerable property `[key, value]` pairs. -

Descripción

+## Descripción -

Object.entries() returns an array whose elements are arrays corresponding to the enumerable property [key, value] pairs found directly upon object. The ordering of the properties is the same as that given by looping over the property values of the object manually.

+`Object.entries()` returns an array whose elements are arrays corresponding to the enumerable property `[key, value]` pairs found directly upon `object`. The ordering of the properties is the same as that given by looping over the property values of the object manually. -

Ejemplos

+## Ejemplos -
var obj = { foo: 'bar', baz: 42 };
+```js
+var obj = { foo: 'bar', baz: 42 };
 console.log(Object.entries(obj)); // [ ['foo', 'bar'], ['baz', 42] ]
 
 // array like object
@@ -55,56 +54,41 @@ for (var [key, value] of Object.entries(obj)) {
 }
 
 // Or, using array extras
-Object.entries(obj).forEach(([key, value]) => {
+Object.entries(obj).forEach(([key, value]) => {
     console.log(key + ' ' + value); // "a 5", "b 7", "c 9"
 });
-
+``` -

Converting an Object to a Map

+### Converting an `Object` to a `Map` -

The {{jsxref("Map", "new Map()")}} constructor accepts an iterable of entries. With Object.entries, you can easily convert from {{jsxref("Object")}} to {{jsxref("Map")}}:

+The {{jsxref("Map", "new Map()")}} constructor accepts an iterable of `entries`. With `Object.entries`, you can easily convert from {{jsxref("Object")}} to {{jsxref("Map")}}: -
var obj = { foo: 'bar', baz: 42 };
+```js
+var obj = { foo: 'bar', baz: 42 };
 var map = new Map(Object.entries(obj));
-console.log(map); // Map { foo: "bar", baz: 42 }
- -

Polyfill

- -

To add compatible Object.entries support in older environments that do not natively support it, you can find a Polyfill in the tc39/proposal-object-values-entries or in the es-shims/Object.entries repositories.

- -

Specifications

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-object.entries', 'Object.entries')}}{{Spec2('ESDraft')}}Initial definition.
{{SpecName('ES8', '#sec-object.entries', 'Object.entries')}}{{Spec2('ES8')}}
- -

Browser compatibility

+console.log(map); // Map { foo: "bar", baz: 42 } +``` + +## Polyfill + +To add compatible `Object.entries` support in older environments that do not natively support it, you can find a Polyfill in the [tc39/proposal-object-values-entries](https://github.com/tc39/proposal-object-values-entries) or in the [es-shims/Object.entries](https://github.com/es-shims/Object.entries) repositories. + +## Specifications + +| Specification | Status | Comment | +| ------------------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ESDraft', '#sec-object.entries', 'Object.entries')}} | {{Spec2('ESDraft')}} | Initial definition. | +| {{SpecName('ES8', '#sec-object.entries', 'Object.entries')}} | {{Spec2('ES8')}} | | + +## Browser compatibility {{Compat("javascript.builtins.Object.entries")}} -

See also

+## See also -
    -
  • Enumerability and ownership of properties
  • -
  • {{jsxref("Object.keys()")}}
  • -
  • {{jsxref("Object.values()")}} {{experimental_inline}}
  • -
  • {{jsxref("Object.prototype.propertyIsEnumerable()")}}
  • -
  • {{jsxref("Object.create()")}}
  • -
  • {{jsxref("Object.getOwnPropertyNames()")}}
  • -
+- [Enumerability and ownership of properties](/es/docs/Web/JavaScript/Enumerability_and_ownership_of_properties) +- {{jsxref("Object.keys()")}} +- {{jsxref("Object.values()")}} {{experimental_inline}} +- {{jsxref("Object.prototype.propertyIsEnumerable()")}} +- {{jsxref("Object.create()")}} +- {{jsxref("Object.getOwnPropertyNames()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/fromentries/index.md b/files/es/web/javascript/reference/global_objects/object/fromentries/index.md index 33e5d0989c20e3..11450728a248fe 100644 --- a/files/es/web/javascript/reference/global_objects/object/fromentries/index.md +++ b/files/es/web/javascript/reference/global_objects/object/fromentries/index.md @@ -9,99 +9,84 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/fromEntries original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/fromEntries --- -
{{JSRef}}
+{{JSRef}} -

El método Object.fromEntries() transforma una lista de pares con [clave-valor] en un objeto.

+El método **`Object.fromEntries()`** transforma una lista de pares con `[clave-valor] `en un objeto. -
{{EmbedInteractiveExample("pages/js/object-fromentries.html")}}
+{{EmbedInteractiveExample("pages/js/object-fromentries.html")}} +## Sintaxis + Object.fromEntries(iterable); -

Sintaxis

+### Parámetros -
Object.fromEntries(iterable);
+- `iterador` + - : Un iterador como {{jsxref("Array")}}, {{jsxref("Map")}} u otros objetos que implementen el [protocolo iterable](/es/docs/Web/JavaScript/Reference/Iteration_protocols#The_iterable_protocol). -

Parámetros

+### Valor de retorno -
-
iterador
-
Un iterador como {{jsxref("Array")}}, {{jsxref("Map")}} u otros objetos que implementen el protocolo iterable.
-
+Un nuevo objeto cuyas propiedades son dadas por las entradas del iterador. -

Valor de retorno

+## Descripción -

Un nuevo objeto cuyas propiedades son dadas por las entradas del iterador.

+El método `Object.fromEntries()` toma una lista de pares con clave-valor y devuelve un nuevo objeto cuyas propiedades son dadas por éstas entradas. El argumento _iterador_ se espera que sea un objeto que implemente un método `@@iterator`, que devuelve un objeto iterador, que produce un objeto tipo array de dos elementos, donde el primer elemento es un valor que se usará como la clave de la propiedad, y el segundo elemento es el valor a asociar con esa clave de propiedad. -

Descripción

+`Object.fromEntries()` realiza lo inverso de {{jsxref("Object.entries()")}}. -

El método Object.fromEntries() toma una lista de pares con clave-valor y devuelve un nuevo objeto cuyas propiedades son dadas por éstas entradas. El argumento iterador se espera que sea un objeto que implemente un método @@iterator, que devuelve un objeto iterador, que produce un objeto tipo array de dos elementos, donde el primer elemento es un valor que se usará como la clave de la propiedad, y el segundo elemento es el valor a asociar con esa clave de propiedad.

+## Ejemplos -

Object.fromEntries() realiza lo inverso de {{jsxref("Object.entries()")}}.

+### Convirtiendo un `Map` en un `Objeto` -

Ejemplos

+Con `Object.fromEntries`, puedes convertir de un {{jsxref("Map")}} a un {{jsxref("Object")}}: -

Convirtiendo un Map en un Objeto

- -

Con Object.fromEntries, puedes convertir de un {{jsxref("Map")}} a un {{jsxref("Object")}}:

- -
const map = new Map([ ['foo', 'bar'], ['baz', 42] ]);
+```js
+const map = new Map([ ['foo', 'bar'], ['baz', 42] ]);
 const obj = Object.fromEntries(map);
 console.log(obj); // { foo: "bar", baz: 42 }
-
+``` -

Convirtiendo un Arreglo en un Objeto

+### Convirtiendo un `Arreglo` en un `Objeto` -

Con Object.fromEntries, puedes convertir de un {{jsxref("Array")}} a un {{jsxref("Object")}}:

+Con `Object.fromEntries`, puedes convertir de un {{jsxref("Array")}} a un {{jsxref("Object")}}: -
const arr = [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ];
+```js
+const arr = [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ];
 const obj = Object.fromEntries(arr);
 console.log(obj); // { 0: "a", 1: "b", 2: "c" }
-
+``` -

Transformación de Objetos

+### Transformación de Objetos -

Con Object.fromEntries, su método inverso {{jsxref("Object.entries()")}}, y array métodos de manipulaciín de arreglos, puedes transformar objetos así:

+Con `Object.fromEntries`, su método inverso {{jsxref("Object.entries()")}}, y [array métodos de manipulaciín de arreglos](/es/docs/Web/JavaScript/Reference/Global_Objects/Array#Methods_2), puedes transformar objetos así: -
const object1 = { a: 1, b: 2, c: 3 };
+```js
+const object1 = { a: 1, b: 2, c: 3 };
 
 const object2 = Object.fromEntries(
   Object.entries(object1)
-  .map(([ key, val ]) => [ key, val * 2 ])
+  .map(([ key, val ]) => [ key, val * 2 ])
 );
 
 console.log(object2);
-// { a: 2, b: 4, c: 6 }
- -

Especificaciones

- - - - - - - - - - - - - - -
EspecificaciónEstado
{{SpecName('ESDraft', '#sec-object.fromentries', 'Object.fromEntries')}}Etapa 4
+// { a: 2, b: 4, c: 6 } +``` -

Compatibilidad de navegadores

+## Especificaciones +| Especificación | Estado | +| ------------------------------------------------------------------------------------------------ | ------- | +| {{SpecName('ESDraft', '#sec-object.fromentries', 'Object.fromEntries')}} | Etapa 4 | +## Compatibilidad de navegadores -

{{Compat("javascript.builtins.Object.fromEntries")}}

+{{Compat("javascript.builtins.Object.fromEntries")}} -

Véase tambien

+## Véase tambien -
    -
  • {{jsxref("Object.entries()")}}
  • -
  • {{jsxref("Object.keys()")}}
  • -
  • {{jsxref("Object.values()")}}
  • -
  • {{jsxref("Map.prototype.entries()")}}
  • -
  • {{jsxref("Map.prototype.keys()")}}
  • -
  • {{jsxref("Map.prototype.values()")}}
  • -
+- {{jsxref("Object.entries()")}} +- {{jsxref("Object.keys()")}} +- {{jsxref("Object.values()")}} +- {{jsxref("Map.prototype.entries()")}} +- {{jsxref("Map.prototype.keys()")}} +- {{jsxref("Map.prototype.values()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.md b/files/es/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.md index 439605ec95a739..085e20cecf6f55 100644 --- a/files/es/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.md +++ b/files/es/web/javascript/reference/global_objects/object/getownpropertydescriptor/index.md @@ -9,51 +9,48 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptor original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/getOwnPropertyDescriptor --- -
{{JSRef}}
+{{JSRef}} -

El método Object.getOwnPropertyDescriptor() regresa como descripción de propiedad para una propiedad propia (eso es, una presente directamente en el objeto, no presente por la fuerza a través de la cadena de prototipo del objeto) de un objeto dado.

+El método **`Object.getOwnPropertyDescriptor()`** regresa como descripción de propiedad para una propiedad propia (eso es, una presente directamente en el objeto, no presente por la fuerza a través de la cadena de prototipo del objeto) de un objeto dado. -

Síntaxis

+## Síntaxis -
Object.getOwnPropertyDescriptor(obj, prop)
+ Object.getOwnPropertyDescriptor(obj, prop) -

Parametros

+### Parametros -
-
obj
-
El objeto en el que se busca la propiedad.
-
prop
-
El nombre de la propiedad del cuál se obtendrá la descripción.
-
+- `obj` + - : El objeto en el que se busca la propiedad. +- `prop` + - : El nombre de la propiedad del cuál se obtendrá la descripción. -

Valor de retorno

+### Valor de retorno -

Un descriptor de propiedad de una propiedad dada si existe en el objeto, {{jsxref("undefined")}} en cualquier otro caso.

+Un descriptor de propiedad de una propiedad dada si existe en el objeto, {{jsxref("undefined")}} en cualquier otro caso. -

Descripción

+## Descripción -

Éste método permite la examinación precisa de la descripción de una propiedad. Una propiedad en JavaScript consiste de el nombre de una cadena de valor y un descriptor de propiedad. Información más detallada acerca de los tipos de descripciones y sus atributos puede ser encontrada en {{jsxref("Object.defineProperty()")}}.

+Éste método permite la examinación precisa de la descripción de una propiedad. Una propiedad en JavaScript consiste de el nombre de una cadena de valor y un descriptor de propiedad. Información más detallada acerca de los tipos de descripciones y sus atributos puede ser encontrada en {{jsxref("Object.defineProperty()")}}. -

Una descripción de propiedad es un registro con alguno de los siguientes atributos:

+Una descripción de propiedad es un registro con alguno de los siguientes atributos: -
-
value
-
El valor asociado con la propiedad (descriptores de datos unicamente).
-
writable
-
true si y solo si el valor asociado con la propiedad puede ser cambiada (descriptores de datos unicamente).
-
get
-
Una función que sirve como método de acceso para la propiedad, o {{jsxref("undefined")}} si no hay método de acceso (métodos de acceso de descripciones unicamente).
-
set
-
Una función que sirve como método de establecimiento para la propieda, o {{jsxref("undefined")}} si no hay método de establecimiento (métodos de establecimiento de descripciones unicamente).
-
configurable
-
true si y solo si el tipo de ésta descripción de propiedad puede ser cambiada y si la propiedad puede ser eliminada del objeto correspondiente.
-
enumerable
-
true si y solo si ésta propiedad aparece durante la enumeración de las propiedades del objeto correspondiente.
-
+- `value` + - : El valor asociado con la propiedad (descriptores de datos unicamente). +- **`writable`** + - : `true` si y solo si el valor asociado con la propiedad puede ser cambiada (descriptores de datos unicamente). +- `get` + - : Una función que sirve como método de acceso para la propiedad, o {{jsxref("undefined")}} si no hay método de acceso (métodos de acceso de descripciones unicamente). +- `set` + - : Una función que sirve como método de establecimiento para la propieda, o {{jsxref("undefined")}} si no hay método de establecimiento (métodos de establecimiento de descripciones unicamente). +- `configurable` + - : `true` si y solo si el tipo de ésta descripción de propiedad puede ser cambiada y si la propiedad puede ser eliminada del objeto correspondiente. +- `enumerable` + - : `true` si y solo si ésta propiedad aparece durante la enumeración de las propiedades del objeto correspondiente. -

Ejemplos

+## Ejemplos -
var o, d;
+```js
+var o, d;
 
 o = { get foo() { return 17; } };
 d = Object.getOwnPropertyDescriptor(o, 'foo');
@@ -67,48 +64,32 @@ o = {};
 Object.defineProperty(o, 'baz', { value: 8675309, writable: false, enumerable: false });
 d = Object.getOwnPropertyDescriptor(o, 'baz');
 // d es { value: 8675309, writable: false, enumerable: false, configurable: false }
-
+``` -

Notas

+## Notas -

En ES5, si el primer argumento que se le pasa a éste método no es un objeto (primitivo), entonces causará un {{jsxref("TypeError")}}. En ES6, un no-objeto pasado como primer argumento será convertido (coerción) a un objeto en primera instancia.

+En ES5, si el primer argumento que se le pasa a éste método no es un objeto (primitivo), entonces causará un {{jsxref("TypeError")}}. En ES6, un no-objeto pasado como primer argumento será convertido (coerción) a un objeto en primera instancia. -
Object.getOwnPropertyDescriptor("foo", 0);
+```js
+Object.getOwnPropertyDescriptor("foo", 0);
 // TypeError: "foo" is not an object  // Código ES5
 
 Object.getOwnPropertyDescriptor("foo", 0);
 // {configurable:false, enumerable:true, value:"f", writable:false}  // Código ES6
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES5.1', '#sec-15.2.3.3', 'Object.getOwnPropertyDescriptor')}}{{Spec2('ES5.1')}}Definición inicial. Implementado en JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.getownpropertydescriptor', 'Object.getOwnPropertyDescriptor')}}{{Spec2('ES6')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ----------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.2.3.3', 'Object.getOwnPropertyDescriptor')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementado en JavaScript 1.8.5. | +| {{SpecName('ES6', '#sec-object.getownpropertydescriptor', 'Object.getOwnPropertyDescriptor')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Object.getOwnPropertyDescriptor")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Object.defineProperty()")}}
  • -
  • {{jsxref("Reflect.getOwnPropertyDescriptor()")}}
  • -
+- {{jsxref("Object.defineProperty()")}} +- {{jsxref("Reflect.getOwnPropertyDescriptor()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.md b/files/es/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.md index f12a571be1234f..2f956883d220f5 100644 --- a/files/es/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.md +++ b/files/es/web/javascript/reference/global_objects/object/getownpropertydescriptors/index.md @@ -8,65 +8,63 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyDescriptors original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/getOwnPropertyDescriptors --- -
{{JSRef}}
+{{JSRef}} -

El métodoObject.getOwnPropertyDescriptors() regresa todos los descriptores de propiedad propios de un objeto dado.

+El método**`Object.getOwnPropertyDescriptors()`\*\*** \*\*regresa todos los descriptores de propiedad propios de un objeto dado. -
{{EmbedInteractiveExample("pages/js/object-getownpropertydescriptors.html")}}
+{{EmbedInteractiveExample("pages/js/object-getownpropertydescriptors.html")}} -

Sintáxis

+## Sintáxis -
Object.getOwnPropertyDescriptors(obj)
+ Object.getOwnPropertyDescriptors(obj) -

Parámetros

+### Parámetros -
-
obj
-
El objeto para el cual obtener todos los descriptores de propiedad.
-
+- `obj` + - : El objeto para el cual obtener todos los descriptores de propiedad. -

Valores devueltos

+### Valores devueltos -

Un objeto que contiene todos los descriptores de propiedad propios de un objeto.

+Un objeto que contiene todos los descriptores de propiedad propios de un objeto. -

Descripción

+## Descripción -

Este método permite la examinación de la descripción precisa de todas las propiedades de un objeto. Una propiedad en JavaScript consiste en un valor-cadena nombre y un descriptor de propiedad. Más información acerca de los tipos de descriptores de propiedad y sus atributos pueden ser encontrados en {{jsxref("Object.defineProperty()")}}.

+Este método permite la examinación de la descripción precisa de todas las propiedades de un objeto. Una propiedad en JavaScript consiste en un valor-cadena nombre y un descriptor de propiedad. Más información acerca de los tipos de descriptores de propiedad y sus atributos pueden ser encontrados en {{jsxref("Object.defineProperty()")}}. -

Un descriptor de propiedad es un registro con algunos de los siguientes atributos:

+Un descriptor de propiedad es un registro con algunos de los siguientes atributos: -
-
value
-
El valor asociado con la propiedad (solo descriptores de datos).
-
writable
-
true si y solo si el valor asociado con la propiedad puede ser cambiado (solo descriptores de datos).
-
get
-
Un función que sirve como un getter para la propiedad, o {{jsxref("undefined")}} si no hay getter (solo descriptores de acceso).
-
set
-
Una función que sirve como un setter para la propiedad, o {{jsxref("undefined")}} si no hay setter (solo descriptores de acceso).
-
configurable
-
true si y solo si el tipo de este descriptor de propiedad puede ser cambiado y si la propiedad puede ser borrada de el objeto correspondiente.
-
enumerable
-
true si y solo si esta propiedad aparece durante la enumeración de las propiedad en el objeto correspondiente.
-
+- `value` + - : El valor asociado con la propiedad (solo descriptores de datos). +- **`writable`** + - : `true` si y solo si el valor asociado con la propiedad puede ser cambiado (solo descriptores de datos). +- `get` + - : Un función que sirve como un getter para la propiedad, o {{jsxref("undefined")}} si no hay getter (solo descriptores de acceso). +- `set` + - : Una función que sirve como un setter para la propiedad, o {{jsxref("undefined")}} si no hay setter (solo descriptores de acceso). +- `configurable` + - : `true` si y solo si el tipo de este descriptor de propiedad puede ser cambiado y si la propiedad puede ser borrada de el objeto correspondiente. +- `enumerable` + - : `true` si y solo si esta propiedad aparece durante la enumeración de las propiedad en el objeto correspondiente. -

Ejemplos

+## Ejemplos -

Creando un clon superficial

+### Creando un clon superficial -

Mientras el método {{jsxref("Object.assign()")}} solo copiará las propiedades enumerables y propias de un objeto fuente a un objeto destino, puedes usar este método y {{jsxref("Object.create()")}} para una copia superficial entre dos objetos desconocidos:

+Mientras el método {{jsxref("Object.assign()")}} solo copiará las propiedades enumerables y propias de un objeto fuente a un objeto destino, puedes usar este método y {{jsxref("Object.create()")}} para una copia superficial entre dos objetos desconocidos: -
Object.create(
+```js
+Object.create(
   Object.getPrototypeOf(obj),
   Object.getOwnPropertyDescriptors(obj)
 );
-
+``` -

Creando una subclase

+### Creando una subclase -

Una manera típica de crear una subclase es definir la subclase, establecer su prototipo a una instancia de la superclase, y después definir propiedades en esa instancia. Esto puede ponerse incómodo especialmente por los getters y setters. En cambio, tú puedes usar este código para establecer el prototipo:

+Una manera típica de crear una subclase es definir la subclase, establecer su prototipo a una instancia de la superclase, y después definir propiedades en esa instancia. Esto puede ponerse incómodo especialmente por los getters y setters. En cambio, tú puedes usar este código para establecer el prototipo: -
function superclass() {}
+```js
+function superclass() {}
 superclass.prototype = {
   // Define tus métodos y propiedades aquí
 };
@@ -77,42 +75,21 @@ subclass.prototype = Object.create(
     // Define tus métodos y propiedades aquí
   }
 );
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-object.getownpropertydescriptors', 'Object.getOwnPropertyDescriptors')}}{{Spec2('ESDraft')}}Definición inicial en ECMAScript 2017.
{{SpecName('ES2017', '#sec-object.getownpropertydescriptors', 'Object.getOwnPropertyDescriptors')}}{{Spec2('ES2017')}}
- -

Browser compatibility

- -
- - -

{{Compat("javascript.builtins.Object.getOwnPropertyDescriptors")}}

-
- -

Ver también:

- -
    -
  • {{jsxref("Object.getOwnPropertyDescriptor()")}}
  • -
  • {{jsxref("Object.defineProperty()")}}
  • -
  • Polyfill
  • -
+``` + +## Especificaciones + +| Specification | Status | Comment | +| ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------- | -------------------------------------- | +| {{SpecName('ESDraft', '#sec-object.getownpropertydescriptors', 'Object.getOwnPropertyDescriptors')}} | {{Spec2('ESDraft')}} | Definición inicial en ECMAScript 2017. | +| {{SpecName('ES2017', '#sec-object.getownpropertydescriptors', 'Object.getOwnPropertyDescriptors')}} | {{Spec2('ES2017')}} | | + +## Browser compatibility + +{{Compat("javascript.builtins.Object.getOwnPropertyDescriptors")}} + +## Ver también: + +- {{jsxref("Object.getOwnPropertyDescriptor()")}} +- {{jsxref("Object.defineProperty()")}} +- [Polyfill](https://github.com/tc39/proposal-object-getownpropertydescriptors) diff --git a/files/es/web/javascript/reference/global_objects/object/getownpropertynames/index.md b/files/es/web/javascript/reference/global_objects/object/getownpropertynames/index.md index 00e29c770be02e..0295b75e50b716 100644 --- a/files/es/web/javascript/reference/global_objects/object/getownpropertynames/index.md +++ b/files/es/web/javascript/reference/global_objects/object/getownpropertynames/index.md @@ -4,23 +4,29 @@ slug: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames translation_of: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertyNames original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/getOwnPropertyNames --- -
- {{JSRef("Global_Objects", "Object")}}
-

Resumen

-

El método Object.getOwnPropertyNames() devuelve un array con todas las propiedades (numerables o no) encontradas en un objeto dado.

-

Sintaxis

-
Object.getOwnPropertyNames(obj)
-

Parámetros

-
-
- obj
-
- El objeto cuyas propiedades directas, numerables y no-numerables, serán devueltas.
-
-

Descripción

-

Object.getOwnPropertyNames devuelve un array cuyos elementos son strings correspondientes a cada una de las propiedades encontradas directamente en obj. El orden de las propiedades numerables en el array coincide con el expuesto para for...in loop (o para {{jsxref("Object.keys")}}) con respecto a las propiedades del object. El orden de las propiedades no-numerables del array, y de éstas respecto a las numerables, no está definido.

-

Ejemplos

-
var arr = ["a", "b", "c"];
+{{JSRef("Global_Objects", "Object")}}
+
+## Resumen
+
+El método **`Object.getOwnPropertyNames()`** devuelve un array con todas las propiedades (numerables o no) encontradas en un objeto dado.
+
+## Sintaxis
+
+    Object.getOwnPropertyNames(obj)
+
+### Parámetros
+
+- obj
+  - : El objeto cuyas propiedades directas, numerables _y no-numerables_, serán devueltas.
+
+## Descripción
+
+`Object.getOwnPropertyNames` devuelve un array cuyos elementos son _strings_ correspondientes a cada una de las propiedades encontradas directamente en `obj`. El orden de las propiedades numerables en el array coincide con el expuesto para [for...in loop](/es/docs/Web/JavaScript/Reference/Statements/for...in) (o para {{jsxref("Object.keys")}}) con respecto a las propiedades del object. El orden de las propiedades no-numerables del array, y de éstas respecto a las numerables, no está definido.
+
+## Ejemplos
+
+```js
+var arr = ["a", "b", "c"];
 print(Object.getOwnPropertyNames(arr).sort()); // imprime "0,1,2,length"
 
 // Objeto similar a Array
@@ -29,22 +35,26 @@ print(Object.getOwnPropertyNames(obj).sort()); // imprime "0,1,2"
 
 // Imprime nombres de variables y valores usando Array.forEach
 Object.getOwnPropertyNames(obj).forEach(function(val, idx, array) {
-  print(val + " -> " + obj[val]);
+  print(val + " -> " + obj[val]);
 });
 // imprime
-// 0 -> a
-// 1 -> b
-// 2 -> c
+// 0 -> a
+// 1 -> b
+// 2 -> c
 
 // propiedad no-numerable
 var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo; }, enumerable: false } });
 my_obj.foo = 1;
 
 print(Object.getOwnPropertyNames(my_obj).sort()); // imprime "foo, getFoo"
-
-

Si se quiere solo las propiedades numerables, ver {{jsxref("Object.keys")}} o usar un for...in loop (aunque esto devolvería propiedades numerables no directas del objeto pertenecientes a la cadena de prototype a la que pertenezca, a menos que finalmente se filtre con hasOwnProperty()).

-

Items de la cadena prototype no se listan:

-
function ParentClass () {
+```
+
+Si se quiere solo las propiedades numerables, ver {{jsxref("Object.keys")}} o usar un [for...in loop](/es/docs/Web/JavaScript/Reference/Statements/for...in) (aunque esto devolvería propiedades numerables no directas del objeto pertenecientes a la cadena de _prototype_ a la que pertenezca, a menos que finalmente se filtre con hasOwnProperty()).
+
+Items de la cadena _prototype_ no se listan:
+
+```js
+function ParentClass () {
 }
 ParentClass.prototype.inheritedMethod = function () {
 };
@@ -62,10 +72,14 @@ alert(
     new ChildClass() // ["prop", "method"]
   )
 )
-
-

Get Non-Enumerable Only

-

Aquí se usa la función Array.prototype.filter para quitar las keys numerables (obtenidas con Object.keys) de una lista con todas las keys (obtenida con Object.getOwnPropertynames) dejando solo las no-numerables.

-
var target = myObject;
+```
+
+### Get Non-Enumerable Only
+
+Aquí se usa la función Array.prototype.filter para quitar las _keys_ numerables (obtenidas con Object.keys) de una lista con todas las _keys_ (obtenida con Object.getOwnPropertynames) dejando solo las no-numerables.
+
+```js
+var target = myObject;
 var enum_and_nonenum = Object.getOwnPropertyNames(target);
 var enum_only = Object.keys(target);
 var nonenum_only = enum_and_nonenum.filter(function(key) {
@@ -79,38 +93,24 @@ var nonenum_only = enum_and_nonenum.filter(function(key) {
 });
 
 console.log(nonenum_only);
-
-

Especificaciones

- - - - - - - - - - - - - - - - - - -
EspecificaciónStatusComentario
{{SpecName('ES5.1', '#sec-15.2.3.4', 'Object.getOwnPropertyNames')}}{{Spec2('ES5.1')}}Initial definition.
- Implemented in JavaScript 1.8.5
{{SpecName('ES6', '#sec-object.getownpropertynames', 'Object.getOwnPropertyNames')}}{{Spec2('ES6')}}
-

Compatibilidad con Navegadores

-
+``` + +## Especificaciones + +| Especificación | Status | Comentario | +| ---------------------------------------------------------------------------------------------------------------- | ------------------------ | --------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.2.3.4', 'Object.getOwnPropertyNames')}} | {{Spec2('ES5.1')}} | Initial definition. Implemented in JavaScript 1.8.5 | +| {{SpecName('ES6', '#sec-object.getownpropertynames', 'Object.getOwnPropertyNames')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con Navegadores + {{Compat("javascript.builtins.Object.getOwnPropertyNames")}} -

Ver también

-
    -
  • Enumerability and ownership of properties
  • -
  • {{jsxref("Object.prototype.hasOwnProperty")}}
  • -
  • {{jsxref("Object.prototype.propertyIsEnumerable")}}
  • -
  • {{jsxref("Object.create")}}
  • -
  • {{jsxref("Object.keys")}}
  • -
  • {{jsxref("Array.forEach()")}}
  • -
+## Ver también + +- [Enumerability and ownership of properties](/es/docs/Enumerability_and_ownership_of_properties "Enumerability_and_ownership_of_properties") +- {{jsxref("Object.prototype.hasOwnProperty")}} +- {{jsxref("Object.prototype.propertyIsEnumerable")}} +- {{jsxref("Object.create")}} +- {{jsxref("Object.keys")}} +- {{jsxref("Array.forEach()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/getownpropertysymbols/index.md b/files/es/web/javascript/reference/global_objects/object/getownpropertysymbols/index.md index 7b17be18346b87..51e0cf196fc0c7 100644 --- a/files/es/web/javascript/reference/global_objects/object/getownpropertysymbols/index.md +++ b/files/es/web/javascript/reference/global_objects/object/getownpropertysymbols/index.md @@ -10,30 +10,29 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/getOwnPropertySymbols original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/getOwnPropertySymbols --- -
{{JSRef}}
+{{JSRef}} -

El método Object.getOwnPropertySymbols() regresa una colección de todos las propiedades de los simbolos encontrados directamente en un objeto dado.

+El método **`Object.getOwnPropertySymbols()`** regresa una colección de todos las propiedades de los simbolos encontrados directamente en un objeto dado. -

Síntaxis

+## Síntaxis -
Object.getOwnPropertySymbols(obj)
+ Object.getOwnPropertySymbols(obj) -

Parametros

+### Parametros -
-
obj
-
El objeto del cual los simbolos de propiedades son devueltos.
-
+- `obj` + - : El objeto del cual los simbolos de propiedades son devueltos. -

Descripción

+## Descripción -

Similar a {{jsxref("Object.getOwnPropertyNames()")}}, puedes obtener todas las propiedades de simbolos de un objeto dado como una colección de simbolos. Note que {{jsxref("Object.getOwnPropertyNames()")}} no contiene en sí mismo las propiedades de simbolos de un objeto y solo contiene las propiedades de cadenas.

+Similar a {{jsxref("Object.getOwnPropertyNames()")}}, puedes obtener todas las propiedades de simbolos de un objeto dado como una colección de simbolos. Note que {{jsxref("Object.getOwnPropertyNames()")}} no contiene en sí mismo las propiedades de simbolos de un objeto y solo contiene las propiedades de cadenas. -

Cómo todos los objetos no tienen inicialmente propiedades simbolos propios, Object.getOwnPropertySymbols() regresa una colección vacia a menos que tengas propiedades de simbolos establecidas en tu objeto.

+Cómo todos los objetos no tienen inicialmente propiedades simbolos propios, `Object.getOwnPropertySymbols()` regresa una colección vacia a menos que tengas propiedades de simbolos establecidas en tu objeto. -

Ejemplos

+## Ejemplos -
var obj = {};
+```js
+var obj = {};
 var a = Symbol('a');
 var b = Symbol.for('b');
 
@@ -45,32 +44,19 @@ var objectSymbols = Object.getOwnPropertySymbols(obj);
 console.log(objectSymbols.length); // 2
 console.log(objectSymbols);        // [Symbol(a), Symbol(b)]
 console.log(objectSymbols[0]);     // Symbol(a)
-
- -

Especificaciones

- - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-object.getownpropertysymbols', 'Object.getOwnPropertySymbols')}}{{Spec2('ES6')}}Definición inicial.
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------------------- | -------------------- | ------------------- | +| {{SpecName('ES6', '#sec-object.getownpropertysymbols', 'Object.getOwnPropertySymbols')}} | {{Spec2('ES6')}} | Definición inicial. | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Object.getOwnPropertySymbols")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Object.getOwnPropertyNames()")}}
  • -
  • {{jsxref("Symbol")}}
  • -
+- {{jsxref("Object.getOwnPropertyNames()")}} +- {{jsxref("Symbol")}} diff --git a/files/es/web/javascript/reference/global_objects/object/getprototypeof/index.md b/files/es/web/javascript/reference/global_objects/object/getprototypeof/index.md index 80bf2347f1136a..3180ca11307f29 100644 --- a/files/es/web/javascript/reference/global_objects/object/getprototypeof/index.md +++ b/files/es/web/javascript/reference/global_objects/object/getprototypeof/index.md @@ -9,76 +9,59 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/getPrototypeOf --- -
{{JSRef("Global_Objects", "Object")}}
+{{JSRef("Global_Objects", "Object")}} -

Resumen

+## Resumen -

El método Object.getPrototypeOf() devuelve el prototipo (es decir, el valor de la propiedad interna [[Prototype]]) del objeto especificado.

+El método **`Object.getPrototypeOf()`** devuelve el prototipo (es decir, el valor de la propiedad interna `[[Prototype]]`) del objeto especificado. -

Sintaxis

+## Sintaxis -
Object.getPrototypeOf(obj)
+ Object.getPrototypeOf(obj) -

Parámetros

+### Parámetros -
-
obj
-
El objeto cuyo prototipo va a ser devuelto.
-
+- `obj` + - : El objeto cuyo prototipo va a ser devuelto. -

Valor Devuelto

+### Valor Devuelto -

El prototipo del objeto dado. Si no existen propiedades heredadas se devolverá {{jsxref("null")}}.

+El prototipo del objeto dado. Si no existen propiedades heredadas se devolverá {{jsxref("null")}}. -

Ejemplos

+## Ejemplos -
var proto = {};
+```js
+var proto = {};
 var obj= Object.create(proto);
 Object.getPrototypeOf(obj) === proto; // true
-
+``` -

Notas

+## Notas -

En ES5, lanzará una excepción {{jsxref("Global_Objects/TypeError", "TypeError")}} si el parámetro obj no es un objeto. en ES6, El parámetro será forzado a un {{jsxref("Global_Objects/Object", "Object")}}.

+En ES5, lanzará una excepción {{jsxref("Global_Objects/TypeError", "TypeError")}} si el parámetro `obj` no es un objeto. en ES6, El parámetro será forzado a un {{jsxref("Global_Objects/Object", "Object")}}. -
> Object.getPrototypeOf('foo')
+```js
+> Object.getPrototypeOf('foo')
 TypeError: "foo" is not an object  // ES5 code
-> Object.getPrototypeOf('foo')
+> Object.getPrototypeOf('foo')
 String.prototype                   // ES6 code
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES5.1', '#sec-15.2.3.2', 'Object.getPrototypeOf')}}{{Spec2('ES5.1')}}Definición inicial.
{{SpecName('ES6', '#sec-object.getprototypeof', 'Object.getProtoypeOf')}}{{Spec2('ES6')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------ | ------------------------ | ------------------- | +| {{SpecName('ES5.1', '#sec-15.2.3.2', 'Object.getPrototypeOf')}} | {{Spec2('ES5.1')}} | Definición inicial. | +| {{SpecName('ES6', '#sec-object.getprototypeof', 'Object.getProtoypeOf')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Object.getPrototypeOf")}} -

Mira también

+## Mira también -
    -
  • {{jsxref("Object.prototype.isPrototypeOf()")}}
  • -
  • {{jsxref("Object.setPrototypeOf()")}} {{experimental_inline}}
  • -
  • John Resig's post on getPrototypeOf
  • -
  • {{jsxref("Object.prototype.__proto__")}}
  • -
  • {{jsxref("Reflect.getPrototypeOf()")}}
  • -
+- {{jsxref("Object.prototype.isPrototypeOf()")}} +- {{jsxref("Object.setPrototypeOf()")}} {{experimental_inline}} +- John Resig's post on [getPrototypeOf](http://ejohn.org/blog/objectgetprototypeof/) +- {{jsxref("Object.prototype.__proto__")}} +- {{jsxref("Reflect.getPrototypeOf()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/hasownproperty/index.md b/files/es/web/javascript/reference/global_objects/object/hasownproperty/index.md index 2d749cc3370197..5a9e2259ae5983 100644 --- a/files/es/web/javascript/reference/global_objects/object/hasownproperty/index.md +++ b/files/es/web/javascript/reference/global_objects/object/hasownproperty/index.md @@ -9,34 +9,33 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/hasOwnProperty --- -
{{JSRef("Objetos_globales", "Object")}}
+{{JSRef("Objetos_globales", "Object")}} -

Resumen

+## Resumen -

El método hasOwnProperty() devuelve un booleano indicando si el objeto tiene la propiedad especificada.

+El método **`hasOwnProperty()`** devuelve un booleano indicando si el objeto tiene la propiedad especificada. -

Sintaxis

+## Sintaxis -
obj.hasOwnProperty(prop)
+ obj.hasOwnProperty(prop) -

Parámetros

+### Parámetros -
-
prop
-
El nombre de la propiedad a buscar.
-
+- `prop` + - : El nombre de la propiedad a buscar. -

Descripción

+## Descripción -

Todo objeto descendiente de Object hereda el método hasOwnProperty. Este método puede ser usando para determinar si un objeto tiene la propiedad especificada como una propiedad directa de ese objeto; a diferencia del operador {{jsxref("Operators/in", "in")}}, este método no verifica la cadena prototipo del objeto.

+Todo objeto descendiente de `Object` hereda el método `hasOwnProperty`. Este método puede ser usando para determinar si un objeto tiene la propiedad especificada como una propiedad directa de ese objeto; a diferencia del operador {{jsxref("Operators/in", "in")}}, este método no verifica la cadena prototipo del objeto. -

Ejemplos

+## Ejemplos -

Ejemplo: usar hasOwnProperty para comprobar la existencia de una propiedad

+### Ejemplo: usar `hasOwnProperty` para comprobar la existencia de una propiedad -

El siguiente ejemplo determina si el objeto o contiene una propiedad llamada prop:

+El siguiente ejemplo determina si el objeto `o` contiene una propiedad llamada `prop`: -
o = new Object();
+```js
+o = new Object();
 o.prop = 'exists';
 
 function changeO() {
@@ -46,23 +45,27 @@ function changeO() {
 
 o.hasOwnProperty('prop');   // returns true
 changeO();
-o.hasOwnProperty('prop');   // returns false
+o.hasOwnProperty('prop'); // returns false +``` -

Ejemplo: Directo versus propiedades heredadas

+### Ejemplo: Directo versus propiedades heredadas -

El siguiente ejemplo diferencia entre propiedades directas y propiedades heredadas a través de la cadena prototype:

+El siguiente ejemplo diferencia entre propiedades directas y propiedades heredadas a través de la cadena prototype: -
o = new Object();
+```js
+o = new Object();
 o.prop = 'exists';
 o.hasOwnProperty('prop');             // returns true
 o.hasOwnProperty('toString');         // returns false
-o.hasOwnProperty('hasOwnProperty');   // returns false
+o.hasOwnProperty('hasOwnProperty'); // returns false +``` -

Ejemplo: Iterando sobre las propiedades de un objeto

+### Ejemplo: Iterando sobre las propiedades de un objeto -

El siguiente ejemplo muestra como iterar sobre las propiedades de un objeto sin ejecutar sobre propiedades heredadas. Observe que el bucle for..in ya está no solo iterando elementos enumerables, por consiguiente uno no debería asumir que basado en la falta de propiedades no numerales mostrando en el bucle que hasOwnProperty por si misma no está solo es estrictamente para iterar elementos numerados (como con {{jsxref("Object.getOwnPropertyNames()")}}).

+El siguiente ejemplo muestra como iterar sobre las propiedades de un objeto sin ejecutar sobre propiedades heredadas. Observe que el bucle for..in ya está no solo iterando elementos enumerables, por consiguiente uno no debería asumir que basado en la falta de propiedades no numerales mostrando en el bucle que hasOwnProperty por si misma no está solo es estrictamente para iterar elementos numerados (como con {{jsxref("Object.getOwnPropertyNames()")}}). -
var buz = {
+```js
+var buz = {
     fog: 'stack'
 };
 
@@ -73,13 +76,15 @@ for (var name in buz) {
     else {
         alert(name); // toString or something else
     }
-}
+} +``` -

Ejemplo: hasOwnProperty como una propiedad

+### Ejemplo: `hasOwnProperty` como una propiedad -

JavaScript no protege el nombre de la propiedad hasOwnProperty; en consecuencia, si existe la posibilidad de que un objeto pudiera tener la propiedad con ese nombre, es necesario usar un externo hasOwnProperty para obtener los correctos resultados:

+JavaScript no protege el nombre de la propiedad `hasOwnProperty`; en consecuencia, si existe la posibilidad de que un objeto pudiera tener la propiedad con ese nombre, es necesario usar un externo `hasOwnProperty` para obtener los correctos resultados: -
var foo = {
+```js
+var foo = {
     hasOwnProperty: function() {
         return false;
     },
@@ -93,47 +98,26 @@ foo.hasOwnProperty('bar'); // always returns false
 
 // It's also possible to use the hasOwnProperty property from the Object property for this purpose
 Object.prototype.hasOwnProperty.call(foo, 'bar'); // true
-
- -

Observe que en el último caso no han habido nuevos objetos creados.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificacionesEstadoComentario
ECMAScript 3rd Edition. Implemented in JavaScript 1.5StandardInitial definition.
{{SpecName('ES5.1', '#sec-15.2.4.5', 'Object.prototype.hasOwnProperty')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-object.prototype.hasownproperty', 'Object.prototype.hasOwnProperty')}}{{Spec2('ES6')}}
- -

Compatibilidad de navegadores

+``` + +Observe que en el último caso no han habido nuevos objetos creados. + +## Especificaciones + +| Especificaciones | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------- | +| ECMAScript 3rd Edition. Implemented in JavaScript 1.5 | Standard | Initial definition. | +| {{SpecName('ES5.1', '#sec-15.2.4.5', 'Object.prototype.hasOwnProperty')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-object.prototype.hasownproperty', 'Object.prototype.hasOwnProperty')}} | {{Spec2('ES6')}} | | + +## Compatibilidad de navegadores {{Compat("javascript.builtins.Object.hasOwnProperty")}} -

Véase también

+## Véase también - +- [Enumerability and ownership of properties](/es/docs/Enumerability_and_ownership_of_properties) +- {{jsxref("Object.getOwnPropertyNames()")}} +- [for...in](/es/docs/Web/JavaScript/Reference/Statements/for...in) +- {{jsxref("Operators/in", "in")}} +- [JavaScript Guide: Inheritance revisted](/es/docs/Web/JavaScript/Guide/Inheritance_Revisited) diff --git a/files/es/web/javascript/reference/global_objects/object/is/index.md b/files/es/web/javascript/reference/global_objects/object/is/index.md index d9fa4dea719cb4..66d24fd560832c 100644 --- a/files/es/web/javascript/reference/global_objects/object/is/index.md +++ b/files/es/web/javascript/reference/global_objects/object/is/index.md @@ -13,54 +13,49 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/is original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/is --- -
{{JSRef}}
+{{JSRef}} -

El método Object.is() determina si dos valores son iguales.

+El método **`Object.is()`** determina si dos valores [son iguales](/es/docs/Web/JavaScript/Equality_comparisons_and_sameness). -

Síntaxis

+## Síntaxis -
Object.is(valor1, valor2);
+ Object.is(valor1, valor2); -

Parámetros

+### Parámetros -
-
valor1
-
Primer valor a comparar.
-
valor2
-
Segundo valor a comparar.
-
+- `valor1` + - : Primer valor a comparar. +- `valor2` + - : Segundo valor a comparar. -

Valor return del método

+### Valor return del método -

Este método devuelve un valor de tipo {{jsxref("Boolean")}} indicando si los valores pasados como parámetros son iguales o no.

+Este método devuelve un valor de tipo {{jsxref("Boolean")}} indicando si los valores pasados como parámetros son iguales o no. -

Descripción

+## Descripción -

Object.is() determina si dos valores son iguales. Dos valores son iguales si se puede asegurar que:

+`Object.is()` determina si dos valores [son iguales](/es/docs/Web/JavaScript/Equality_comparisons_and_sameness). Dos valores son iguales si se puede asegurar que: -
    -
  • ambos son {{jsxref("undefined")}}
  • -
  • ambos son {{jsxref("null")}}
  • -
  • ambos son true o false
  • -
  • ambos son strings y tienen la misma longitud con los mismos carácteres
  • -
  • ambos son el mismo objeto
  • -
  • ambos son números y -
      -
    • ambos +0 (mayores que 0)
    • -
    • ambos -0 (menores que 0)
    • -
    • ambos son {{jsxref("NaN")}}
    • -
    • o ambos no son cero o no son de tipo {{jsxref("NaN")}} y tienen el mismo valor
    • -
    -
  • -
+- ambos son {{jsxref("undefined")}} +- ambos son {{jsxref("null")}} +- ambos son `true` o `false` +- ambos son strings y tienen la misma longitud con los mismos carácteres +- ambos son el mismo objeto +- ambos son números y -

Esta comparación no es igual a la que realiza el operador {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}}. El operador {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}} aplica varias coerciones(comprobaciones) en ambos sentidos (si no tienen el mismo Type) antes de probar la igualdad (lo que resulta en comportamientos como "" == false siendo true), pero Object.is no obliga a niguno de los valores.

+ - `ambos +0 (mayores que 0)` + - `ambos -0 (menores que 0)` + - ambos son {{jsxref("NaN")}} + - o ambos no son cero o no son de tipo {{jsxref("NaN")}} y tienen el mismo valor -

Esta tampoco es igual a la que realiza el operador {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}}. El operador {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}} (y el operador {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}}) trata los valores -0 y +0 como iguales, y además, trata {{jsxref("Number.NaN")}} como no igual a {{jsxref("NaN")}}.

+Esta comparación _no_ es igual a la que realiza el operador {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}}. El operador {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}} aplica varias coerciones(comprobaciones) en ambos sentidos (si no tienen el mismo Type) antes de probar la igualdad (lo que resulta en comportamientos como `"" == false` siendo `true`), pero `Object.is` no obliga a niguno de los valores. -

Ejemplos

+Esta _tampoco_ es igual a la que realiza el operador {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}}. El operador {{jsxref("Operators/Comparison_Operators", "===", "#Identity")}} (y el operador {{jsxref("Operators/Comparison_Operators", "==", "#Equality")}}) trata los valores `-0` `y +0` como iguales, y además, trata {{jsxref("Number.NaN")}} como no igual a {{jsxref("NaN")}}. -
Object.is('foo', 'foo');     // true
+## Ejemplos
+
+```js
+Object.is('foo', 'foo');     // true
 Object.is(window, window);   // true
 
 Object.is('foo', 'bar');     // false
@@ -75,13 +70,14 @@ Object.is(null, null);       // true
 Object.is(0, -0);            // false
 Object.is(-0, -0);           // true
 Object.is(NaN, 0/0);         // true
-
+``` -

Polyfill para navegadores no ES6

+## [Polyfill](https://en.wikipedia.org/wiki/Polyfill) para navegadores no ES6 -

Object.is() es una adición propuesta en el estandar ECMA-262; y como tal, puede no estar presente en todos los navegadores. Para los casos en que no tenga disponible este método, podría utilizar este código haciendolo que se cargue antes que cualquier otro script. Esto permite que puedas utilizar Object.is() en los navegadores que no lo llevan incluído.

+`Object.is()` es una adición propuesta en el estandar ECMA-262; y como tal, puede no estar presente en todos los navegadores. Para los casos en que no tenga disponible este método, podría utilizar este código haciendolo que se cargue antes que cualquier otro script. Esto permite que puedas utilizar `Object.is()` en los navegadores que no lo llevan incluído. -
if (!Object.is) {
+```js
+if (!Object.is) {
   Object.is = function(x, y) {
     // SameValue algorithm
     if (x === y) { // Steps 1-5, 7-10
@@ -89,37 +85,24 @@ Object.is(NaN, 0/0);         // true
       return x !== 0 || 1 / x === 1 / y;
     } else {
       // Step 6.a: NaN == NaN
-      return x !== x && y !== y;
+      return x !== x && y !== y;
     }
   };
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-object.is', 'Object.is')}}{{Spec2('ES6')}}Definición inicial.
- -

Compatibilidad en navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------- | -------------------- | ------------------- | +| {{SpecName('ES6', '#sec-object.is', 'Object.is')}} | {{Spec2('ES6')}} | Definición inicial. | + +## Compatibilidad en navegadores {{Compat("javascript.builtins.Object.is")}} -

+## -

Ver también

+## Ver también - +- [Comparadores de igualdad e identidad](/es/docs/Web/JavaScript/Equality_comparisons_and_sameness) —Una comparación de las 3 operaciones de cotejamiento integradas. diff --git a/files/es/web/javascript/reference/global_objects/object/isextensible/index.md b/files/es/web/javascript/reference/global_objects/object/isextensible/index.md index ccde9ab40e9507..99ad749a476650 100644 --- a/files/es/web/javascript/reference/global_objects/object/isextensible/index.md +++ b/files/es/web/javascript/reference/global_objects/object/isextensible/index.md @@ -10,28 +10,27 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/isExtensible original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/isExtensible --- -
{{JSRef}}
+{{JSRef}} -

El método Object.isExtensible() determina si un objeto es extendible (si puede tener propiedades nuevas agregadas a éste).

+El método **`Object.isExtensible()`** determina si un objeto es extendible (si puede tener propiedades nuevas agregadas a éste). -

Síntaxis

+## Síntaxis -
Object.isExtensible(obj)
+ Object.isExtensible(obj) -

Parametros

+### Parametros -
-
obj
-
El objeto a ser revisado.
-
+- `obj` + - : El objeto a ser revisado. -

Descripción

+## Descripción -

Los objetos son extendibles por defecto: ellos pueden tener propiedades nuevas agregadas a ellos, y (en motores que soportan {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}} la propiedad __proto__) pueden ser modificados. Un objeto puede ser marcado como no extendible usando {{jsxref("Object.preventExtensions()")}}, {{jsxref("Object.seal()")}}, o {{jsxref("Object.freeze()")}}.

+Los objetos son extendibles por defecto: ellos pueden tener propiedades nuevas agregadas a ellos, y (en motores que soportan {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}} la propiedad \_\_proto\_\_) pueden ser modificados. Un objeto puede ser marcado como no extendible usando {{jsxref("Object.preventExtensions()")}}, {{jsxref("Object.seal()")}}, o {{jsxref("Object.freeze()")}}. -

Ejemplos

+## Ejemplos -
// Los Objetos nuevos son extendibles (por defecto).
+```js
+// Los Objetos nuevos son extendibles (por defecto).
 var empty = {};
 Object.isExtensible(empty); // === true
 
@@ -46,52 +45,36 @@ Object.isExtensible(sealed); // === false
 // Objetos congelados también por definición son no-extendibles.
 var frozen = Object.freeze({});
 Object.isExtensible(frozen); // === false
-
+``` -

Notas

+## Notas -

En ES5, si el argumento pasado a éste método no es un objeto (primitivo), entonces regresará {{jsxref("TypeError")}}. En ES6, un no-objeto pasado como argumento será tratado como si fuera un objeto no-extendible ordinario, simplemente regresa false.

+En ES5, si el argumento pasado a éste método no es un objeto (primitivo), entonces regresará {{jsxref("TypeError")}}. En ES6, un no-objeto pasado como argumento será tratado como si fuera un objeto no-extendible ordinario, simplemente regresa `false`. -
Object.isExtensible(1);
+```js
+Object.isExtensible(1);
 // TypeError: 1 is not an object (ES5 code)
 
 Object.isExtensible(1);
 // false                         (ES6 code)
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES5.1', '#sec-15.2.3.13', 'Object.isExtensible')}}{{Spec2('ES5.1')}}Definición inicial. Implementada en JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.isextensible', 'Object.isExtensible')}}{{Spec2('ES6')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------- | ------------------------ | ----------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.2.3.13', 'Object.isExtensible')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementada en JavaScript 1.8.5. | +| {{SpecName('ES6', '#sec-object.isextensible', 'Object.isExtensible')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Object.isExtensible")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Object.preventExtensions()")}}
  • -
  • {{jsxref("Object.seal()")}}
  • -
  • {{jsxref("Object.isSealed()")}}
  • -
  • {{jsxref("Object.freeze()")}}
  • -
  • {{jsxref("Object.isFrozen()")}}
  • -
  • {{jsxref("Reflect.isExtensible()")}}
  • -
+- {{jsxref("Object.preventExtensions()")}} +- {{jsxref("Object.seal()")}} +- {{jsxref("Object.isSealed()")}} +- {{jsxref("Object.freeze()")}} +- {{jsxref("Object.isFrozen()")}} +- {{jsxref("Reflect.isExtensible()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/isfrozen/index.md b/files/es/web/javascript/reference/global_objects/object/isfrozen/index.md index 30e2479732ea23..e234f553dd8f11 100644 --- a/files/es/web/javascript/reference/global_objects/object/isfrozen/index.md +++ b/files/es/web/javascript/reference/global_objects/object/isfrozen/index.md @@ -10,28 +10,27 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/isFrozen original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/isFrozen --- -
{{JSRef}}
+{{JSRef}} -

El método Object.isFrozen() determina si un objeto está congelado.

+El método **`Object.isFrozen()`** determina si un objeto está _congelado_. -

Síntaxis

+## Síntaxis -
Object.isFrozen(obj)
+ Object.isFrozen(obj) -

Parametros

+### Parametros -
-
obj
-
El objeto a ser revisado.
-
+- `obj` + - : El objeto a ser revisado. -

Descripción

+## Descripción -

Un objeto está congelado si y solo si no es {{jsxref("Object.isExtensible()", "extendible", "", 1)}}, todas sus propiedades son no-configurables, y todos los datos de sus propiedades no tienen capacidad de escritura.

+Un objeto está congelado si y solo si no es {{jsxref("Object.isExtensible()", "extendible", "", 1)}}, todas sus propiedades son no-configurables, y todos los datos de sus propiedades no tienen capacidad de escritura. -

Ejemplos

+## Ejemplos -
// Un objeto nuevo es extendible, así que no está congelado.
+```js
+// Un objeto nuevo es extendible, así que no está congelado.
 Object.isFrozen({}); // === false
 
 // Un objeto vacio el cuál no es extendible está congelado vacuamente.
@@ -91,53 +90,35 @@ Object.isExtensible(frozen); // === false
 
 // Also by definition, a frozen object is sealed.
 Object.isSealed(frozen); // === true
-
+``` -

Notas

+## Notas -

En ES5, si el argumento pasado a éste método no es un objeto (primitivo), entonces causará un {{jsxref("TypeError")}}. En ES6, un no-objeto pasado como argumento será tratado como si fuera un objeto ordinario congelado, simplemente regresa true.

+En ES5, si el argumento pasado a éste método no es un objeto (primitivo), entonces causará un {{jsxref("TypeError")}}. En ES6, un no-objeto pasado como argumento será tratado como si fuera un objeto ordinario congelado, simplemente regresa `true`. -
Object.isFrozen(1);
+```js
+Object.isFrozen(1);
 // TypeError: 1 is not an object (ES5 code)
 
 Object.isFrozen(1);
 // true                          (ES6 code)
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES5.1', '#sec-15.2.3.12', 'Object.isFrozen')}}{{Spec2('ES5.1')}} -

Definición inicial. Implementada en JavaScript 1.8.5.

-
{{SpecName('ES6', '#sec-object.isfrozen', 'Object.isFrozen')}}{{Spec2('ES6')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------ | ------------------------ | ----------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.2.3.12', 'Object.isFrozen')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementada en JavaScript 1.8.5. | +| {{SpecName('ES6', '#sec-object.isfrozen', 'Object.isFrozen')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Object.isFrozen")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Object.freeze()")}}
  • -
  • {{jsxref("Object.preventExtensions()")}}
  • -
  • {{jsxref("Object.isExtensible()")}}
  • -
  • {{jsxref("Object.seal()")}}
  • -
  • {{jsxref("Object.isSealed()")}}
  • -
+- {{jsxref("Object.freeze()")}} +- {{jsxref("Object.preventExtensions()")}} +- {{jsxref("Object.isExtensible()")}} +- {{jsxref("Object.seal()")}} +- {{jsxref("Object.isSealed()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/isprototypeof/index.md b/files/es/web/javascript/reference/global_objects/object/isprototypeof/index.md index 4d6d866104abe3..e5015337c3d381 100644 --- a/files/es/web/javascript/reference/global_objects/object/isprototypeof/index.md +++ b/files/es/web/javascript/reference/global_objects/object/isprototypeof/index.md @@ -4,34 +4,31 @@ slug: Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf translation_of: Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/isPrototypeOf --- -
{{JSRef}}
+{{JSRef}} -

El método isPrototypeOf() comprueba si un objeto se encuentra en la cadena de prototipado de otro.

+El método **`isPrototypeOf()`** comprueba si un objeto se encuentra en la cadena de prototipado de otro. -
-

Nota: isPrototypeOf difiere del operador {{jsxref("Operators/instanceof", "instanceof")}}. En la expresión "object instanceof AFunction", la cadena de prototipado de object es comprobada contra AFunction.prototype, no contra la propia AFunction.

-
+> **Nota:** `isPrototypeOf` difiere del operador {{jsxref("Operators/instanceof", "instanceof")}}. En la expresión "`object instanceof AFunction`", la cadena de prototipado de `object` es comprobada contra `AFunction.prototype`, no contra la propia `AFunction`. -

Sintaxis

+## Sintaxis -
prototypeObj.isPrototypeOf(obj)
+ prototypeObj.isPrototypeOf(obj) -

Parámetros

+### Parámetros -
-
prototypeObj
-
Un objeto para ver comprobado contra cada vínculo en la cadena de prototipado del argumento object.
-
object
-
El object sobre cuya cadena de prototipado se realizará la búsqueda.
-
+- `prototypeObj` + - : Un objeto para ver comprobado contra cada vínculo en la cadena de prototipado del argumento **object**. +- `object` + - : El object sobre cuya cadena de prototipado se realizará la búsqueda. -

Descripción

+## Descripción -

El método isPrototypeOf permite comprobar si un objetyo existe o no en la cadena de prototipado de otro.

+El método `isPrototypeOf` permite comprobar si un objetyo existe o no en la cadena de prototipado de otro. -

Por ejemplo, considerese la siguiente cadena de prototipado:

+Por ejemplo, considerese la siguiente cadena de prototipado: -
function Fee() {
+```js
+function Fee() {
   // ...
 }
 
@@ -49,63 +46,37 @@ function Fum() {
   // ...
 }
 Fum.prototype = new Fo();
-
+``` -

Al final de la secuencia, si se instanci Fum y se necesita verificar si el prototipo de Fi existe en la cadena de prototipado de Fum prototype chain, puede hacerse esto:

+Al final de la secuencia, si se instanci `Fum` y se necesita verificar si el prototipo de `Fi` existe en la cadena de prototipado de `Fum` prototype chain, puede hacerse esto: -
var fum = new Fum();
+```js
+var fum = new Fum();
 // ...
 
 if (Fi.prototype.isPrototypeOf(fum)) {
   // do something safe
 }
-
- -

Esto, junto con el operador {{jsxref("Operators/instanceof", "instanceof")}} resulta especialmente útil si se tiene código que sólo puede operar cuando se trata de objetos descendientes de una cadena de prototipado específica, p.e., para garantizar que ciertos métodos o propiedades estén presentes en dichos objetos.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoObservaciones
{{SpecName('ES3')}}{{Spec2('ES3')}}Definición inicial.
{{SpecName('ES5.1', '#sec-15.2.4.5', 'Object.prototype.hasOwnProperty')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-object.prototype.hasownproperty', 'Object.prototype.hasOwnProperty')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-object.prototype.hasownproperty', 'Object.prototype.hasOwnProperty')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

+``` + +Esto, junto con el operador {{jsxref("Operators/instanceof", "instanceof")}} resulta especialmente útil si se tiene código que sólo puede operar cuando se trata de objetos descendientes de una cadena de prototipado específica, p.e., para garantizar que ciertos métodos o propiedades estén presentes en dichos objetos. + +## Especificaciones + +| Especificación | Estado | Observaciones | +| ------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Definición inicial. | +| {{SpecName('ES5.1', '#sec-15.2.4.5', 'Object.prototype.hasOwnProperty')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-object.prototype.hasownproperty', 'Object.prototype.hasOwnProperty')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-object.prototype.hasownproperty', 'Object.prototype.hasOwnProperty')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Object.isPrototypeOf")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Operators/instanceof", "instanceof")}}
  • -
  • {{jsxref("Object.getPrototypeOf()")}}
  • -
  • -
    {{jsxref("Object.setPrototypeOf()")}}
    -
  • -
  • {{jsxref("Object.prototype.__proto__")}}
  • -
+- {{jsxref("Operators/instanceof", "instanceof")}} +- {{jsxref("Object.getPrototypeOf()")}} +- {{jsxref("Object.setPrototypeOf()")}} +- {{jsxref("Object.prototype.__proto__")}} diff --git a/files/es/web/javascript/reference/global_objects/object/issealed/index.md b/files/es/web/javascript/reference/global_objects/object/issealed/index.md index 64b169576986d6..e488301d0f4828 100644 --- a/files/es/web/javascript/reference/global_objects/object/issealed/index.md +++ b/files/es/web/javascript/reference/global_objects/object/issealed/index.md @@ -10,36 +10,33 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/isSealed original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/isSealed --- -
{{JSRef}}
+{{JSRef}} -

El método Object.isSealed() si el objeto está sellado.

+El método **`Object.isSealed()`** si el objeto está sellado. -
{{EmbedInteractiveExample("pages/js/object-issealed.html")}}
+{{EmbedInteractiveExample("pages/js/object-issealed.html")}} +## Syntax + Object.isSealed(obj) -

Syntax

+### Parámetros -
Object.isSealed(obj)
+- `obj` + - : El objeto que debe ser verificado. -

Parámetros

+### Valor devuelto -
-
obj
-
El objeto que debe ser verificado.
-
+Un {{jsxref("Boolean")}} indicando si el objeto dado está sellado. -

Valor devuelto

+## Descripción -

Un {{jsxref("Boolean")}} indicando si el objeto dado está sellado.

+Devuelve `true` si el objeto está sellado, de lo contrario devuelve `false`. Un objeto está sellado si no es {{jsxref("Object.isExtensible", "extensible", "", 1)}} y si todas sus propiedades no se pueden configurar y por lo tanto no removibles (pero no necesariamente no modificables). -

Descripción

+## Ejemplos -

Devuelve true si el objeto está sellado, de lo contrario devuelve false. Un objeto está sellado si no es {{jsxref("Object.isExtensible", "extensible", "", 1)}} y si todas sus propiedades no se pueden configurar y por lo tanto no removibles (pero no necesariamente no modificables).

- -

Ejemplos

- -
// Los objetos no están sellados por defecto
+```js
+// Los objetos no están sellados por defecto
 var empty = {};
 Object.isSealed(empty); // === false
 
@@ -82,60 +79,36 @@ Object.isFrozen(s2); // === false
 var s3 = Object.seal({ get p() { return 0; } });
 Object.isFrozen(s3); // === true
 // (solo la configurabilidad es importante para las propiedades de acceso)
-
+``` -

Notes

+## Notes -

En ES5, si el argumento de este método no es un objeto (primitivo), entonces causará un {{jsxref("TypeError")}}. En ES2015, un argumento que no sea un objeto será tratado como si fuera un objeto sellado ordinario, simplemente devuelve true.

+`En ES5, si el argumento de este método no es un objeto (primitivo), entonces causará un `{{jsxref("TypeError")}}. En ES2015, un argumento que no sea un objeto será tratado como si fuera un objeto sellado ordinario, simplemente devuelve `true`. -
Object.isSealed(1);
+```js
+Object.isSealed(1);
 // TypeError: 1 no es un objeto (ES5 code)
 
 Object.isSealed(1);
 // true                          (ES2015 code)
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES5.1', '#sec-15.2.3.11', 'Object.isSealed')}}{{Spec2('ES5.1')}}Definición inicial. Implementada en JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.issealed', 'Object.isSealed')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-object.issealed', 'Object.isSealed')}}{{Spec2('ESDraft')}}
- -

Browser compatibility

- -
- - -

{{Compat("javascript.builtins.Object.isSealed")}}

-
- -

See also

- -
    -
  • {{jsxref("Object.seal()")}}
  • -
  • {{jsxref("Object.preventExtensions()")}}
  • -
  • {{jsxref("Object.isExtensible()")}}
  • -
  • {{jsxref("Object.freeze()")}}
  • -
  • {{jsxref("Object.isFrozen()")}}
  • -
+``` + +## Especificaciones + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------- | ---------------------------- | ----------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.2.3.11', 'Object.isSealed')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementada en JavaScript 1.8.5. | +| {{SpecName('ES6', '#sec-object.issealed', 'Object.isSealed')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-object.issealed', 'Object.isSealed')}} | {{Spec2('ESDraft')}} | | + +## Browser compatibility + +{{Compat("javascript.builtins.Object.isSealed")}} + +## See also + +- {{jsxref("Object.seal()")}} +- {{jsxref("Object.preventExtensions()")}} +- {{jsxref("Object.isExtensible()")}} +- {{jsxref("Object.freeze()")}} +- {{jsxref("Object.isFrozen()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/keys/index.md b/files/es/web/javascript/reference/global_objects/object/keys/index.md index d2d07e8f3e7254..9a5063c3c715a1 100644 --- a/files/es/web/javascript/reference/global_objects/object/keys/index.md +++ b/files/es/web/javascript/reference/global_objects/object/keys/index.md @@ -4,34 +4,33 @@ slug: Web/JavaScript/Reference/Global_Objects/Object/keys translation_of: Web/JavaScript/Reference/Global_Objects/Object/keys original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/keys --- -
{{JSRef("Global_Objects", "Object")}}
+{{JSRef("Global_Objects", "Object")}} -

Resumen

+## Resumen -

El método Object.keys() devuelve un array de las propiedades names de un objeto, en el mismo orden como se obtienen en un loop normal

+El método `Object.keys()` devuelve un array de las propiedades **`names` **de un objeto, en el mismo orden como se obtienen en un loop normal -

Sintaxis

+## Sintaxis -
Object.keys(obj)
+ Object.keys(obj) -

Parámetros

+### Parámetros -
-
obj
-
El objeto cuyas propiedades enumerables serán devueltas.
-
+- `obj` + - : El objeto cuyas propiedades enumerables serán devueltas. -

Valor de retorno

+### Valor de retorno -

Un array de strings que representan toda las propiedades del objeto

+Un array de strings que representan toda las propiedades del objeto -

Descripción

+## Descripción -

Object.keys devuelve un array cuyos elementos son strings correspondientes a las propiedades enumerables que se encuentran directamente en el object. El orden de las propiedades es el mismo que se proporciona al iterar manualmente sobre las propiedades del objeto.

+`Object.keys` devuelve un array cuyos elementos son strings correspondientes a las propiedades enumerables que se encuentran directamente en el object. El orden de las propiedades es el mismo que se proporciona al iterar manualmente sobre las propiedades del objeto. -

Ejemplos

+## Ejemplos -
var arr = ['a', 'b', 'c'];
+```js
+var arr = ['a', 'b', 'c'];
 console.log(Object.keys(arr)); // console: ['0', '1', '2']
 
 // arreglo como objeto
@@ -47,25 +46,28 @@ var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo;
 my_obj.foo = 1;
 
 console.log(Object.keys(my_obj)); // console: ['foo']
-
+``` -

Si quieres todas las propiedades, incluso las no enumerables, mira {{jsxref("Object.getOwnPropertyNames()")}}.

+Si quieres todas las propiedades, incluso las no enumerables, mira {{jsxref("Object.getOwnPropertyNames()")}}. -

Notas

+## Notas -

En ES5, si el argumento para este método no es un objeto (uno primitivo), causará un {{jsxref("Global_Objects/TypeError", "TypeError")}}. En ES2015, un argumento no-objeto será coaccionado hacia un objeto.

+En ES5, si el argumento para este método no es un objeto (uno primitivo), causará un {{jsxref("Global_Objects/TypeError", "TypeError")}}. En ES2015, un argumento no-objeto será coaccionado hacia un objeto. -
> Object.keys("foo")
+```js
+> Object.keys("foo")
 // TypeError: "foo" is not an object  (ES5)
 
-> Object.keys("foo")
-// ["0", "1", "2"]                    (ES2015)
+> Object.keys("foo") +// ["0", "1", "2"] (ES2015) +``` -

Polyfill

+## Polyfill -

Para añadir soporte Object.keys en entornos más antiguos que no lo soportan de forma nativa, copia el siguiente fragmento:

+Para añadir soporte `Object.keys` en entornos más antiguos que no lo soportan de forma nativa, copia el siguiente fragmento: -
// De https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
+```js
+// De https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys
 if (!Object.keys) {
   Object.keys = (function() {
     'use strict';
@@ -83,7 +85,7 @@ if (!Object.keys) {
         dontEnumsLength = dontEnums.length;
 
     return function(obj) {
-      if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
+      if (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {
         throw new TypeError('Object.keys called on non-object');
       }
 
@@ -96,7 +98,7 @@ if (!Object.keys) {
       }
 
       if (hasDontEnumBug) {
-        for (i = 0; i < dontEnumsLength; i++) {
+        for (i = 0; i < dontEnumsLength; i++) {
           if (hasOwnProperty.call(obj, dontEnums[i])) {
             result.push(dontEnums[i]);
           }
@@ -106,52 +108,29 @@ if (!Object.keys) {
     };
   }());
 }
-
- -

Ten en cuenta que el código anterior incluye claves no-enumerables en IE7 (y quizás IE8), al pasar en un objeto desde una ventana diferente.

- -

Para un simple Polyfill del Navegador, mira Javascript - Compatibilidad de Object.keys en Navegadores.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
{{SpecName('ES5.1', '#sec-15.2.3.14', 'Object.keys')}}{{Spec2('ES5.1')}}Definición inicial. Implementado en JavaScript 1.8.5.
{{SpecName('ES2015', '#sec-object.keys', 'Object.keys')}}{{Spec2('ES2015')}}
{{SpecName('ESDraft', '#sec-object.keys', 'Object.keys')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -
{{Compat("javascript.builtins.Object.keys")}}
- - - -

Mira también

- -
    -
  • Propiedades de enumerabilidad y pertenencia
  • -
  • {{jsxref("Object.prototype.propertyIsEnumerable()")}}
  • -
  • {{jsxref("Object.create()")}}
  • -
  • {{jsxref("Object.getOwnPropertyNames()")}}
  • -
  • {{jsxref("Object.values()")}}
  • -
  • {{jsxref("Object.entries()")}}
  • -
+``` + +Ten en cuenta que el código anterior incluye claves no-enumerables en IE7 (y quizás IE8), al pasar en un objeto desde una ventana diferente. + +Para un simple Polyfill del Navegador, mira [Javascript - Compatibilidad de Object.keys en Navegadores](http://tokenposts.blogspot.com.au/2012/04/javascript-objectkeys-browser.html). + +## Especificaciones + +| Especificación | Estado | Comentarios | +| ---------------------------------------------------------------------------- | ---------------------------- | ----------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.2.3.14', 'Object.keys')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementado en JavaScript 1.8.5. | +| {{SpecName('ES2015', '#sec-object.keys', 'Object.keys')}} | {{Spec2('ES2015')}} | | +| {{SpecName('ESDraft', '#sec-object.keys', 'Object.keys')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.Object.keys")}} + +## Mira también + +- [Propiedades de enumerabilidad y pertenencia](/es/docs/Enumerability_and_ownership_of_properties) +- {{jsxref("Object.prototype.propertyIsEnumerable()")}} +- {{jsxref("Object.create()")}} +- {{jsxref("Object.getOwnPropertyNames()")}} +- {{jsxref("Object.values()")}} +- {{jsxref("Object.entries()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/preventextensions/index.md b/files/es/web/javascript/reference/global_objects/object/preventextensions/index.md index ccb2f9d95ea45d..b330a071a1cede 100644 --- a/files/es/web/javascript/reference/global_objects/object/preventextensions/index.md +++ b/files/es/web/javascript/reference/global_objects/object/preventextensions/index.md @@ -4,32 +4,31 @@ slug: Web/JavaScript/Reference/Global_Objects/Object/preventExtensions translation_of: Web/JavaScript/Reference/Global_Objects/Object/preventExtensions original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/preventExtensions --- -
{{JSRef}}
+{{JSRef}} -

El método Object.preventExtensions() previene que nuevas propiedades sean agregadas a un objeto (p.e. previene la extensión futuras al objeto).

+El método **`Object.preventExtensions()`** previene que nuevas propiedades sean agregadas a un objeto (p.e. previene la extensión futuras al objeto). -

Sintaxis

+## Sintaxis -
Object.preventExtensions(obj)
+ Object.preventExtensions(obj) -

Parametros

+### Parametros -
-
obj
-
El objeto que debería hacerse inextendible.
-
+- `obj` + - : El objeto que debería hacerse inextendible. -

Descripción

+## Descripción -

Un objeto es extendible si propiedades nuevas pueden ser agregadas a este. Object.preventExtensions() marca un objecto como no extendible, así nunca más tendrá propiedades más allá de las tenía en el momento en que fue marcado como no extendible. Note que las propiedades de un objeto no-extendible, en general, aún pueden ser eliminadas. Los intentos de agregar propiedades nuevas a un objeto no-extendible fallarán, ya sea de manera silenciosa o arrojando una excepción {{jsxref("TypeError")}} (comunmente, pero no de manera exclusiva, en {{jsxref("Functions_and_function_scope/Strict_mode", "strict mode", "", 1)}}).

+Un objeto es extendible si propiedades nuevas pueden ser agregadas a este. Object.preventExtensions() marca un objecto como no extendible, así nunca más tendrá propiedades más allá de las tenía en el momento en que fue marcado como no extendible. Note que las propiedades de un objeto no-extendible, en general, aún pueden ser eliminadas. Los intentos de agregar propiedades nuevas a un objeto no-extendible fallarán, ya sea de manera silenciosa o arrojando una excepción {{jsxref("TypeError")}} (comunmente, pero no de manera exclusiva, en {{jsxref("Functions_and_function_scope/Strict_mode", "strict mode", "", 1)}}). -

Object.preventExtensions() solo previene la adición de propiedades propias. Las propiedades aún pueden ser agregadas a object.prototype. Sin embargo, llamar Object.preventExtensions() sobre un objeto tambien prevendrá extensiones sobre la propiedad {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}}.

+`Object.preventExtensions()` solo previene la adición de propiedades propias. Las propiedades aún pueden ser agregadas a object.prototype. Sin embargo, llamar `Object.preventExtensions()` sobre un objeto tambien prevendrá extensiones sobre la propiedad {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}}. -

Si hay una manera de cambiar un objeto extendible a uno no-extendible, hay una manera de hacer lo opuesto en ECMAScript 5.

+Si hay una manera de cambiar un objeto extendible a uno no-extendible, hay una manera de hacer lo opuesto en ECMAScript 5. -

Ejemplos

+## Ejemplos -
// Object.preventExtensions regresa el objeto hecho no-extendible.
+```js
+// Object.preventExtensions regresa el objeto hecho no-extendible.
 var obj = {};
 var obj2 = Object.preventExtensions(obj);
 obj === obj2; // true
@@ -61,52 +60,36 @@ fail();
 // La propiedad prototype de un objeto no-extendible es inmutable.
 var fixed = Object.preventExtensions({});
 fixed.__proto__ = { oh: 'hai' }; // arroja TypeError
-
+``` -

Notas

+## Notas -

En ES5, si el argumento pasado a este método no es un objeto (primitivo), entonces causará un {{jsxref("TypeError")}}. En ES6, un argumento no-objeto será tratado como si fuera un objeto ordinario no-extendible, simplemente lo regresa.

+En ES5, si el argumento pasado a este método no es un objeto (primitivo), entonces causará un {{jsxref("TypeError")}}. En ES6, un argumento no-objeto será tratado como si fuera un objeto ordinario no-extendible, simplemente lo regresa. -
Object.preventExtensions(1);
+```js
+Object.preventExtensions(1);
 // TypeError: 1 is not an object (ES5 code)
 
 Object.preventExtensions(1);
 // 1                             (ES6 code)
-
- -

Especificación

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES5.1', '#sec-15.2.3.10', 'Object.preventExtensions')}}{{Spec2('ES5.1')}}Definición inicial. Implementada en JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.preventextensions', 'Object.preventExtensions')}}{{Spec2('ES6')}}
- -

Compatibilidad de navegadores

+``` + +## Especificación + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------ | ------------------------ | ----------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.2.3.10', 'Object.preventExtensions')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementada en JavaScript 1.8.5. | +| {{SpecName('ES6', '#sec-object.preventextensions', 'Object.preventExtensions')}} | {{Spec2('ES6')}} | | + +## Compatibilidad de navegadores {{Compat("javascript.builtins.Object.preventExtensions")}} -

Mira también

+## Mira también -
    -
  • {{jsxref("Object.isExtensible()")}}
  • -
  • {{jsxref("Object.seal()")}}
  • -
  • {{jsxref("Object.isSealed()")}}
  • -
  • {{jsxref("Object.freeze()")}}
  • -
  • {{jsxref("Object.isFrozen()")}}
  • -
  • {{jsxref("Reflect.preventExtensions()")}}
  • -
+- {{jsxref("Object.isExtensible()")}} +- {{jsxref("Object.seal()")}} +- {{jsxref("Object.isSealed()")}} +- {{jsxref("Object.freeze()")}} +- {{jsxref("Object.isFrozen()")}} +- {{jsxref("Reflect.preventExtensions()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/propertyisenumerable/index.md b/files/es/web/javascript/reference/global_objects/object/propertyisenumerable/index.md index 1f3c5c6355d856..3450bfef934348 100644 --- a/files/es/web/javascript/reference/global_objects/object/propertyisenumerable/index.md +++ b/files/es/web/javascript/reference/global_objects/object/propertyisenumerable/index.md @@ -9,56 +9,57 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/propertyIsEnumerable --- -
{{JSRef}}
+{{JSRef}} -

El método propertyIsEnumerable() regresa un Boleano indicando si la propiedad especificada es enumerable.

+El método **`propertyIsEnumerable()`** regresa un Boleano indicando si la propiedad especificada es enumerable. -

Sintaxis

+## Sintaxis -
obj.propertyIsEnumerable(prop)
+ obj.propertyIsEnumerable(prop) -

Parametros

+### Parametros -
-
prop
-
Nombre de la propiedad a probar.
-
+- `prop` + - : Nombre de la propiedad a probar. -

Descripción

+## Descripción -

Todos los objetos tienen un método propertyIsEnumerable. Este método puede determinar si la propiedad especificada en el objeto puede ser enumerada por un ciclo {{jsxref("Statements/for...in", "for...in")}}, con la excepción de propiedades heredadas a través de prototype. Si el objeto no tiene la propiedad especificada, este método regresa un valor false.

+Todos los objetos tienen un método `propertyIsEnumerable`. Este método puede determinar si la propiedad especificada en el objeto puede ser enumerada por un ciclo {{jsxref("Statements/for...in", "for...in")}}, con la excepción de propiedades heredadas a través de prototype. Si el objeto no tiene la propiedad especificada, este método regresa un valor `false`. -

Ejemplo

+## Ejemplo -

Uso básico de propertyIsEnumerable

+### Uso básico de `propertyIsEnumerable` -

El siguiente ejemplo muestra el uso de propertyIsEnumerable en objetos y arrays:

+El siguiente ejemplo muestra el uso de `propertyIsEnumerable` en objetos y arrays: -
var o = {};
+```js
+var o = {};
 var a = [];
 o.prop = 'es enumerable';
 a[0] = 'es enumerable';
 
 o.propertyIsEnumerable('prop');   // regresa true
 a.propertyIsEnumerable(0);        // regresa true
-
+``` -

Definidas por usuario vs predefinidas

+### Definidas por usuario vs predefinidas -

El siguiente ejemplo demuestra la enumerabilidad de las propiedades definidas por el usuario contra las predefinidas:

+El siguiente ejemplo demuestra la enumerabilidad de las propiedades definidas por el usuario contra las predefinidas: -
var a = ['es enumerable'];
+```js
+var a = ['es enumerable'];
 
 a.propertyIsEnumerable(0);          // regresa true
 a.propertyIsEnumerable('length');   // regresa false
 
 Math.propertyIsEnumerable('random');   // regresa false
 this.propertyIsEnumerable('Math');     // regresa false
-
+``` -

Directa vs heredadas

+### Directa vs heredadas -
var a = [];
+```js
+var a = [];
 a.propertyIsEnumerable('constructor');         // regresa false
 
 function primerConstructor() {
@@ -91,48 +92,27 @@ o.propertyIsEnumerable('propiedad');              // regresa true
 o.propertyIsEnumerable('prototype');   // regresa false (como en JS 1.8.1/FF3.6)
 o.propertyIsEnumerable('constructor'); // regresa false
 o.propertyIsEnumerable('firstMethod'); // regresa false
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
{{SpecName('ES3')}}{{Spec2('ES3')}}Definición inicial.
{{SpecName('ES5.1', '#sec-15.2.4.7', 'Object.prototype.propertyIsEnumerable')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-object.prototype.propertyisenumerable', 'Object.prototype.propertyIsEnumerable')}}{{Spec2('ES6')}}
- -

Compatibilidad de navegadores

+``` + +## Especificaciones + +| Especificación | Estatus | Comentario | +| -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Definición inicial. | +| {{SpecName('ES5.1', '#sec-15.2.4.7', 'Object.prototype.propertyIsEnumerable')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-object.prototype.propertyisenumerable', 'Object.prototype.propertyIsEnumerable')}} | {{Spec2('ES6')}} | | + +## Compatibilidad de navegadores {{Compat("javascript.builtins.Object.propertyIsEnumerable")}} -

Notas específicas para Gecko

+## Notas específicas para Gecko -

Al inicio de JavaScript 1.8.1 (in Firefox 3.6), propertyIsEnumerable('prototype') regresa false en lugar de true; esto hace que el resultado cumpla con la especificación de ECMAScript 5.

+Al inicio de JavaScript 1.8.1 (in Firefox 3.6), `propertyIsEnumerable('prototype')` regresa `false` en lugar de `true`; esto hace que el resultado cumpla con la especificación de ECMAScript 5. -

Véase también

+## Véase también - +- [Enumerability and ownership of properties](/es/docs/Enumerability_and_ownership_of_properties) +- {{jsxref("Statements/for...in", "for...in")}} +- {{jsxref("Object.keys()")}} +- {{jsxref("Object.defineProperty()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/proto/index.md b/files/es/web/javascript/reference/global_objects/object/proto/index.md index 384ba3982ecdd6..498ef64ba424ea 100644 --- a/files/es/web/javascript/reference/global_objects/object/proto/index.md +++ b/files/es/web/javascript/reference/global_objects/object/proto/index.md @@ -4,27 +4,22 @@ slug: Web/JavaScript/Reference/Global_Objects/Object/proto translation_of: Web/JavaScript/Reference/Global_Objects/Object/proto original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/proto --- -
-

Advertencia: Cambiar la propiedad [[Prototype]] de un objeto es, por como los navegadores modernos optimizan las propiedades de acceso, una operación muy lenta en todos los navegadores y motores JavaScript. Los efectos en el rendimiento de alterar la herencia son muchos y delicados, y no se limita simplemente al tiempo que necesita la asignación obj.__proto__ = ... sentencia, sin embargo afecta a cualquier código que tiene acceso a cualquier objeto cuya propiedad [[Prototype]] ha sido alterada, por lo que se debe de tener mucho cuidado.

+> **Advertencia:** **Advertencia:** Cambiar la propiedad `[[Prototype]]` de un objeto es, por como los navegadores modernos optimizan las propiedades de acceso, una operación muy lenta en **_todos_** los navegadores y motores JavaScript. Los efectos en el rendimiento de alterar la herencia son muchos y delicados, y no se limita simplemente al tiempo que necesita la asignación `obj.__proto__ = ...` sentencia, sin embargo afecta a **_cualquier_** código que tiene acceso a **_cualquier_** objeto cuya propiedad `[[Prototype]]` ha sido alterada, por lo que se debe de tener mucho cuidado.Si el rendimiento en tu aplicación es necesario, deberías evitar modificar la propiedad `[[Prototype]]` de un objeto. En su lugar, crea un objecto nuevo con la propiedad `[[Prototype]]` deseada usando {{jsxref("Object.create()")}}. -

Si el rendimiento en tu aplicación es necesario, deberías evitar modificar la propiedad [[Prototype]] de un objeto. En su lugar, crea un objecto nuevo con la propiedad [[Prototype]] deseada usando {{jsxref("Object.create()")}}.

-
+> **Advertencia:** Mientras `Object.prototype.__proto__` es soportado hoy día por la mayoría de navegadores, su existencia y comportamiento exacto solo ha sido estandarizado en la especificación ECMAScript 6 como una característica de legado y para asegurar la compatibilidad entre los navegadores web. Para tener un mejor soporte, es recomendable que se utilice {{jsxref("Object.getPrototypeOf()")}} para obtener el prototipo de un objeto. -
-

Advertencia: Mientras Object.prototype.__proto__ es soportado hoy día por la mayoría de navegadores, su existencia y comportamiento exacto solo ha sido estandarizado en la especificación ECMAScript 6 como una característica de legado y para asegurar la compatibilidad entre los navegadores web. Para tener un mejor soporte, es recomendable que se utilice {{jsxref("Object.getPrototypeOf()")}} para obtener el prototipo de un objeto.

-
+{{JSRef}} -
{{JSRef}}
+La propiedad `__proto__` de {{jsxref("Object.prototype")}} es una propiedad llamada de acceso (una función getter y también función setter) que provee acceso al interior de `[[Prototype]]` (ya sea un objeto o {{jsxref("Global_Objects/null", "null")}}) del objeto a través del cual se accede a ella. -

La propiedad __proto__ de {{jsxref("Object.prototype")}} es una propiedad llamada de acceso (una función getter y también función setter) que provee acceso al interior de [[Prototype]] (ya sea un objeto o {{jsxref("Global_Objects/null", "null")}}) del objeto a través del cual se accede a ella.

+El uso de la propiedad `__proto__` es polémico actualmente, y está rechazado. Originalmente, nunca fué incluído en la especificación de EcmaScript, pero los navegadores modernos decidieron implementarla de todas maneras. Sólo actualmente, `la propiedad __proto__` ha sido estandarizada en la especificación del lenguaje ECMAScript 6, para asegurar la compatibilidad entre navegadores, por lo tanto, esta será soportada en el futuro. Actualmente está obsoleta en favor de {{jsxref("Object.getPrototypeOf")}}/{{jsxref("Reflect.getPrototypeOf")}} y {{jsxref("Object.setPrototypeOf")}}/{{jsxref("Reflect.setPrototypeOf")}} (aunque todavía establecer el `[[Prototype]]` de un objeto es una operación muy lenta, por lo que si nos preocupa el rendimiento, debemos de evitarlo). -

El uso de la propiedad __proto__ es polémico actualmente, y está rechazado. Originalmente, nunca fué incluído en la especificación de EcmaScript, pero los navegadores modernos decidieron implementarla de todas maneras. Sólo actualmente, la propiedad __proto__ ha sido estandarizada en la especificación del lenguaje ECMAScript 6, para asegurar la compatibilidad entre navegadores, por lo tanto, esta será soportada en el futuro. Actualmente está obsoleta en favor de {{jsxref("Object.getPrototypeOf")}}/{{jsxref("Reflect.getPrototypeOf")}} y {{jsxref("Object.setPrototypeOf")}}/{{jsxref("Reflect.setPrototypeOf")}} (aunque todavía establecer el [[Prototype]] de un objeto es una operación muy lenta, por lo que si nos preocupa el rendimiento, debemos de evitarlo).

+La propiedad `__proto__` puede ser usada también en un objeto definido de forma literal, para establecer el `[[Prototype]]` en la creación de este, como alternativa a {{jsxref("Object.create()")}}. Ver: [object initializer / literal syntax](/es/docs/Web/JavaScript/Reference/Operators/Object_initializer). -

La propiedad __proto__ puede ser usada también en un objeto definido de forma literal, para establecer el [[Prototype]] en la creación de este, como alternativa a {{jsxref("Object.create()")}}. Ver: object initializer / literal syntax.

+## Síntaxis -

Síntaxis

- -
var shape = {};
+```js
+var shape = {};
 var circle = new Circle();
 
 // Establecer el objeto prototype.
@@ -33,49 +28,36 @@ shape.__proto__ = circle;
 
 // Obtener el objeto prototype
 console.log(shape.__proto__ === circle); // true
-
+``` -

Nota: esto es, dos guiones bajos, seguidos de cinco carácteres "proto", seguido de dos guiones bajos mas.

+Nota: esto es, dos guiones bajos, seguidos de cinco carácteres "proto", seguido de dos guiones bajos mas. -

Descripción

+## Descripción -

La función getter __proto__el valor interno del [[Prototype]] de un objeto. Para objetos creados usando un objeto literal, el valor es {{jsxref("Object.prototype")}}. Para objetos creados usando literales de array, este valor es {{jsxref("Array.prototype")}}. Para funciones, este valor {{jsxref("Function.prototype")}}. Para objetos creados utilizando el operador new fun, donde fun es una función constructora incluída en JavaScript ({{jsxref("Array")}}, {{jsxref("Boolean")}}, {{jsxref("Date")}}, {{jsxref("Number")}}, {{jsxref("Object")}}, {{jsxref("String")}}, etcétera—incluyendo nuevos contrusctores conforme JavaScript evoluciona), este valor es fun.prototype. (Esto es, si el constructor no devuelve un objeto de forma explícita, o el fun.prototype ha sido reasignado desde que la instancia fué creada).

+La función getter `__proto__`el valor interno del `[[Prototype]]` de un objeto. Para objetos creados usando un objeto literal, el valor es {{jsxref("Object.prototype")}}. Para objetos creados usando literales de array, este valor es {{jsxref("Array.prototype")}}. Para funciones, este valor {{jsxref("Function.prototype")}}. Para objetos creados utilizando el operador new fun, donde **fun** es una función constructora incluída en JavaScript ({{jsxref("Array")}}, {{jsxref("Boolean")}}, {{jsxref("Date")}}, {{jsxref("Number")}}, {{jsxref("Object")}}, {{jsxref("String")}}, etcétera—incluyendo nuevos contrusctores conforme JavaScript evoluciona), este valor es `fun.prototype`. (Esto es, si el constructor no devuelve un objeto de forma explícita, o el `fun.prototype` ha sido reasignado desde que la instancia fué creada). -

El __proto__ setter la mutación del objeto [[Prototype]] de un objeto. El objeto debe ser extensible según {{jsxref("Object.isExtensible()")}}: si no, un {{jsxref("Global_Objects/TypeError", "TypeError")}} es lanzado. El valor proveído debe ser un objeto o {{jsxref("Global_Objects/null", "null")}}. Provetendo otro tipo de valor no hará nada.

+El `__proto__` setter la mutación del objeto `[[Prototype]]` de un objeto. El objeto debe ser extensible según {{jsxref("Object.isExtensible()")}}: si no, un {{jsxref("Global_Objects/TypeError", "TypeError")}} es lanzado. El valor proveído debe ser un objeto o {{jsxref("Global_Objects/null", "null")}}. Provetendo otro tipo de valor no hará nada. -

Para entender como los prototipos son usados para herencia, ver el artículo Inheritance and the prototype chain.

+Para entender como los prototipos son usados para herencia, ver el artículo [Inheritance and the prototype chain](/es/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain). -

La propiedad __proto__ es una simple propiedad de acceso a {{jsxref("Object.prototype")}} que consiste en una función getter y setter. Un acceso a la propiedad __proto__ que eventualmente consulta {{jsxref("Object.prototype")}} encontrará esta propiedad, pero un acceso que no consulta {{jsxref("Object.prototype")}} no lo encontrará. Si alguna otra propiedad __proto__ es encontrada antes {{jsxref("Object.prototype")}} es consultada, esta propiedad sera ocultada por la encontrada en {{jsxref("Object.prototype")}}.

+La propiedad `__proto__` es una simple propiedad de acceso a {{jsxref("Object.prototype")}} que consiste en una función getter y setter. Un acceso a la propiedad `__proto__` que eventualmente consulta {{jsxref("Object.prototype")}} encontrará esta propiedad, pero un acceso que no consulta {{jsxref("Object.prototype")}} no lo encontrará. Si alguna otra propiedad `__proto__` es encontrada antes {{jsxref("Object.prototype")}} es consultada, esta propiedad sera ocultada por la encontrada en {{jsxref("Object.prototype")}}. -

Especificaciones

+## Especificaciones - - - - - - - - - - - - - -
EspecificacionesEstadoComentario
{{SpecName('ES6', '#sec-additional-properties-of-the-object.prototype-object', 'Object.prototype.__proto__')}}{{Spec2('ES6')}}Incluída en el anexo (normativa) para características de legado ECMAScript para navegadores web (observar que la especificación de codificación es lo que ya está en las implementaciones).
+| Especificaciones | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| {{SpecName('ES6', '#sec-additional-properties-of-the-object.prototype-object', 'Object.prototype.__proto__')}} | {{Spec2('ES6')}} | Incluída en el anexo (normativa) para características de legado ECMAScript para navegadores web (observar que la especificación de codificación es lo que ya está en las implementaciones). | -

Compatibilidad de navegadores

+## Compatibilidad de navegadores {{Compat("javascript.builtins.Object.proto")}} -

Notas de compatibilidad

+## Notas de compatibilidad -

Mientras la especificación ECMAScript 2015 (ES6) dicta que el soporte para __proto__ es requerido solo para navegadores web (a pesar de ser normativo), otros medios pueden soportarlo por uso de legado.

+Mientras la especificación ECMAScript 2015 (ES6) dicta que el soporte para `__proto__` es requerido _solo_ para navegadores web (a pesar de ser normativo), otros medios pueden soportarlo por uso de legado. -

Ver también

+## Ver también -
    -
  • {{jsxref("Object.prototype.isPrototypeOf()")}}
  • -
  • {{jsxref("Object.getPrototypeOf()")}}
  • -
  • {{jsxref("Object.setPrototypeOf()")}}
  • -
+- {{jsxref("Object.prototype.isPrototypeOf()")}} +- {{jsxref("Object.getPrototypeOf()")}} +- {{jsxref("Object.setPrototypeOf()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/seal/index.md b/files/es/web/javascript/reference/global_objects/object/seal/index.md index 73d423a5b893bd..0f85298ba60d90 100644 --- a/files/es/web/javascript/reference/global_objects/object/seal/index.md +++ b/files/es/web/javascript/reference/global_objects/object/seal/index.md @@ -4,32 +4,31 @@ slug: Web/JavaScript/Reference/Global_Objects/Object/seal translation_of: Web/JavaScript/Reference/Global_Objects/Object/seal original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/seal --- -
{{JSRef}}
+{{JSRef}} -

El método Object.seal() sella un objeto, previniendo que puedan añadirse nuevas propiedades al mismo, y marcando todas las propiedades existentes como no-configurables. Los valores de las propiedades presentes permanecen pudiendo cambiarse en tanto en cuanto dichas propiedades sean de escritura.

+El método **`Object.seal()`** sella un objeto, previniendo que puedan añadirse nuevas propiedades al mismo, y marcando todas las propiedades existentes como no-configurables. Los valores de las propiedades presentes permanecen pudiendo cambiarse en tanto en cuanto dichas propiedades sean de escritura. -

Sintaxis

+## Sintaxis -
Object.seal(obj)
+ Object.seal(obj) -

Parámetros

+### Parámetros -
-
obj
-
El objeto que ha de ser sellado.
-
+- `obj` + - : El objeto que ha de ser sellado. -

Descripción

+## Descripción -

Por defecto, los objetos son {{jsxref("Object.isExtensible()", "extensibles", "", 1)}} (pueden añadirse nuevas propiedades a los mismos). Sellar un objeto previene que nuevas propiedades puedan ser añadidas y marca todas las propiedades existentes como no-configurables. Esto tiene el efecto de hacer fijo e inmutable el juego de propiedades del objeto. Al hacer todas las propiedades no-configurables previene también que se puedan convertir propiedades de datos en propiedades de acceso y viceversa, pero no evita que los valores de las propiedades de datos puedan ser modificados. Intentar eliminar o añadir propiedades a un objeto sellado, o convertir una propiedad de datos en una propiedad de acceso fallará, bien silenciadamente o bien produciendo un {{jsxref("TypeError")}} (más frecuentemente, aunque no exclusivamente, con código en {{jsxref("Strict_mode", "modo estricto", "", 1)}}).

+Por defecto, los objetos son {{jsxref("Object.isExtensible()", "extensibles", "", 1)}} (pueden añadirse nuevas propiedades a los mismos). Sellar un objeto previene que nuevas propiedades puedan ser añadidas y marca todas las propiedades existentes como no-configurables. Esto tiene el efecto de hacer fijo e inmutable el juego de propiedades del objeto. Al hacer todas las propiedades no-configurables previene también que se puedan convertir propiedades de datos en propiedades de acceso y viceversa, pero no evita que los valores de las propiedades de datos puedan ser modificados. Intentar eliminar o añadir propiedades a un objeto sellado, o convertir una propiedad de datos en una propiedad de acceso fallará, bien silenciadamente o bien produciendo un {{jsxref("TypeError")}} (más frecuentemente, aunque no exclusivamente, con código en {{jsxref("Strict_mode", "modo estricto", "", 1)}}). -

La cadena de prototiado permanece inalterada. No obstante, la propiedad {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}} es también sellada.

+La cadena de prototiado permanece inalterada. No obstante, la propiedad {{jsxref("Object.proto", "__proto__")}} {{deprecated_inline}} es también sellada. -

Retorna una referencia al Objeto pasado.

+Retorna una referencia al Objeto pasado. -

Ejemplos

+## Ejemplos -
var obj = {
+```js
+var obj = {
   prop: function() {},
   foo: 'bar'
 };
@@ -65,56 +64,36 @@ fail();
 // Intentar añadir propiedades mediante Object.defineProperty también fallará.
 Object.defineProperty(obj, 'ohai', { value: 17 }); // genera un TypeError
 Object.defineProperty(obj, 'foo', { value: 'eit' }); // cambia el valor exisitente
-
+``` -

Notas

+## Notas -

En ES5, si el argumento de este método no es un objeto (una primitiva), se generará un {{jsxref("TypeError")}}. En ES6, un argumento no-objeto será tratado como si se sellase un objeto ordinario, símplemente retornándolo.

+En ES5, si el argumento de este método no es un objeto (una primitiva), se generará un {{jsxref("TypeError")}}. En ES6, un argumento no-objeto será tratado como si se sellase un objeto ordinario, símplemente retornándolo. -
Object.seal(1);
+```js
+Object.seal(1);
 // TypeError: 1 no es un objeto (código ES5)
 
 Object.seal(1);
 // 1                             (código ES6)
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoObservaciones
{{SpecName('ES5.1', '#sec-15.2.3.8', 'Object.seal')}}{{Spec2('ES5.1')}}Definición inicial. Implementado en JavaScript 1.8.5.
{{SpecName('ES6', '#sec-object.seal', 'Object.seal')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-object.seal', 'Object.seal')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Observaciones | +| ---------------------------------------------------------------------------- | ---------------------------- | ----------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.2.3.8', 'Object.seal')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementado en JavaScript 1.8.5. | +| {{SpecName('ES6', '#sec-object.seal', 'Object.seal')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-object.seal', 'Object.seal')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Object.seal")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Object.isSealed()")}}
  • -
  • {{jsxref("Object.preventExtensions()")}}
  • -
  • {{jsxref("Object.isExtensible()")}}
  • -
  • {{jsxref("Object.freeze()")}}
  • -
  • {{jsxref("Object.isFrozen()")}}
  • -
+- {{jsxref("Object.isSealed()")}} +- {{jsxref("Object.preventExtensions()")}} +- {{jsxref("Object.isExtensible()")}} +- {{jsxref("Object.freeze()")}} +- {{jsxref("Object.isFrozen()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/setprototypeof/index.md b/files/es/web/javascript/reference/global_objects/object/setprototypeof/index.md index 3aae9baa861c4a..e82c370e4fe00c 100644 --- a/files/es/web/javascript/reference/global_objects/object/setprototypeof/index.md +++ b/files/es/web/javascript/reference/global_objects/object/setprototypeof/index.md @@ -10,54 +10,53 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/setPrototypeOf --- -

{{JSRef}}

+{{JSRef}} -

El método Object.setPrototypeOf() establece el prototipo (p.e., la propiedad interna [[Prototype]]) de un objeto especificado a otro objeto o sino establece {{jsxref("null")}}.

+El método **`Object.setPrototypeOf()`** establece el prototipo (p.e., la propiedad interna `[[Prototype]]`) de un objeto especificado a otro objeto o sino establece {{jsxref("null")}}. -
-

Adverdencia: Cambiar la propiedad [[Prototype]] de un objeto, debido a la naturaleza de la optimización del acceso a propiedades de los motores modernos de JavaScript, es una operación bastante lenta, en todo todo navegador y motor de JavaScript. Los efectos sobre el rendimiento al alterar la herencia son sutiles y vastos., y no están limitados a simplemente el tiempo gastado en la sentencia obj.__proto___ = ..., but may extend to any code that has access to any object whose [[Prototype]] has been altered. If you care about performance you should avoid setting the [[Prototype]] of an object. Instead, create a new object with the desired [[Prototype]] using {{jsxref("Object.create()")}}.

-
+> **Advertencia:** **Adverdencia:** Cambiar la propiedad `[[Prototype]]` de un objeto, debido a la naturaleza de la optimización del acceso a propiedades de los motores modernos de JavaScript, es una operación bastante lenta, en todo **_todo_** navegador y motor de JavaScript. Los efectos sobre el rendimiento al alterar la herencia son sutiles y vastos., y no están limitados a simplemente el tiempo gastado en la sentencia `obj.__proto___ = ...`, but may extend to **_any_** code that has access to **_any_** object whose `[[Prototype]]` has been altered. If you care about performance you should avoid setting the `[[Prototype]]` of an object. Instead, create a new object with the desired `[[Prototype]]` using {{jsxref("Object.create()")}}. -

Sintaxis

+## Sintaxis -
Object.setPrototypeOf(obj, prototype);
+ Object.setPrototypeOf(obj, prototype); -

Parámetros

+### Parámetros -
-
obj
-
El objeto al que se ha de establecer el prototipo.
-
prototype
-
El nuevo prototipo del objeto, (un objeto o {{jsxref("null")}}).
-
+- `obj` + - : El objeto al que se ha de establecer el prototipo. +- `prototype` + - : El nuevo prototipo del objeto, (un objeto o {{jsxref("null")}}). -

Descripción

+## Descripción -

Arroja una excepción del tipo {{jsxref("TypeError")}} si el objeto cuyo [[Prototype]] se va a modificar no es extensible de acuerdo con {{jsxref("Object.isExtensible()")}}. No hace nada si el parametro prototype no es un objeto o {{jsxref("null")}} (p.e., número, cadena, booleano, o {{jsxref("undefined")}}). De cualquier otra forma, este método cambia la propiedad [[Prototype]] del obj al valor nuevo.

+Arroja una excepción del tipo {{jsxref("TypeError")}} si el objeto cuyo `[[Prototype]]` se va a modificar no es extensible de acuerdo con {{jsxref("Object.isExtensible()")}}. No hace nada si el parametro `prototype` no es un objeto o {{jsxref("null")}} (p.e., número, cadena, booleano, o {{jsxref("undefined")}}). De cualquier otra forma, este método cambia la propiedad `[[Prototype]]` del `obj` al valor nuevo. -

Object.setPrototypeOf() está en el último borrador del estandar ECMAScript6. Es considerado generalmente la manera adecuada de establecer el prototipo de un objeto, contra la propiedad más controversial {{jsxref("Object.prototype.__proto__")}}.

+`Object.setPrototypeOf()` está en el último borrador del estandar ECMAScript6. Es considerado generalmente la manera adecuada de establecer el prototipo de un objeto, contra la propiedad más controversial {{jsxref("Object.prototype.__proto__")}}. -

Ejemplos

+## Ejemplos -
var dict = Object.setPrototypeOf({}, null);
-
+```js +var dict = Object.setPrototypeOf({}, null); +``` -

Polyfill

+## Polyfill -

Utilizando la vieja propiedad {{jsxref("Object.prototype.__proto__")}}, podemos definir facilmente Object.setPrototypeOf si aún no está disponible:

+Utilizando la vieja propiedad {{jsxref("Object.prototype.__proto__")}}, podemos definir facilmente `Object.setPrototypeOf` si aún no está disponible: -
// Solo funciona en Chrome y FirefoxOnly works in Chrome y FireFox, no funciona en IE:
+```js
+// Solo funciona en Chrome y FirefoxOnly works in Chrome y FireFox, no funciona en IE:
 Object.setPrototypeOf = Object.setPrototypeOf || function(obj, proto) {
   obj.__proto__ = proto;
   return obj;
 }
-
+``` -

Agregando cadenas de prototipo

+## Agregando cadenas de prototipo -

Una combinación de Object.getPrototypeOf() y {{jsxref("Object.proto", "Object.prototype.__proto__")}} permite agregar una nueva cadena de prototipos al nuevo prototipo del objeto.

+Una combinación de `Object.getPrototypeOf()` y {{jsxref("Object.proto", "Object.prototype.__proto__")}} permite agregar una nueva cadena de prototipos al nuevo prototipo del objeto. -
/**
+```js
+/**
 *** Object.appendChain(@object, @prototype)
 *
 * Agrega el primer prototipo no-nativo de una cadena a un nuevo prototipo.
@@ -73,7 +72,7 @@ Object.setPrototypeOf = Object.setPrototypeOf || function(obj, proto) {
 **/
 
 Object.appendChain = function(oChain, oProto) {
-  if (arguments.length < 2) {
+  if (arguments.length < 2) {
     throw new TypeError('Object.appendChain - Not enough arguments');
   }
   if (typeof oProto === 'number' || typeof oProto === 'boolean') {
@@ -84,7 +83,7 @@ Object.appendChain = function(oChain, oProto) {
       oReturn = o2nd = oLast = oChain instanceof this ? oChain : new oChain.constructor(oChain);
 
   for (var o1st = this.getPrototypeOf(o2nd);
-    o1st !== Object.prototype && o1st !== Function.prototype;
+    o1st !== Object.prototype && o1st !== Function.prototype;
     o1st = this.getPrototypeOf(o2nd)
   ) {
     o2nd = o1st;
@@ -99,13 +98,14 @@ Object.appendChain = function(oChain, oProto) {
   this.setPrototypeOf(o2nd, oNewProto);
   return oReturn;
 }
-
+``` -

Uso

+### Uso -

Primer ejemplo: Agregar una cadena a un prototipo

+#### Primer ejemplo: Agregar una cadena a un prototipo -
function Mammal() {
+```js
+function Mammal() {
   this.isMammal = 'yes';
 }
 
@@ -127,11 +127,12 @@ function Animal() {
 Object.appendChain(oCat, new Animal());
 
 console.log(oCat.breathing); // 'yes'
-
+``` -

Segundo ejemplo: Transformando un valor Primitivo en una instancia de su constructor y agregar su cadena al prototipo

+#### Segundo ejemplo: Transformando un valor Primitivo en una instancia de su constructor y agregar su cadena al prototipo -
function Symbol() {
+```js
+function Symbol() {
   this.isSymbol = 'yes';
 }
 
@@ -144,11 +145,12 @@ var oPrime = Object.appendChain(nPrime, new Symbol());
 console.log(oPrime); // '17'
 console.log(oPrime.isSymbol); // 'yes'
 console.log(typeof oPrime); // 'object'
-
+``` -

Tercer ejemplo: Agregando una cadena a la Function.prototype de un objeto y agregando una nueva función a la cadena

+#### Tercer ejemplo: Agregando una cadena a la Function.prototype de un objeto y agregando una nueva función a la cadena -
function Person(sName) {
+```js
+function Person(sName) {
   this.identity = sName;
 }
 
@@ -157,34 +159,21 @@ var george = Object.appendChain(new Person('George'),
 
 console.log(george.identity); // 'George'
 george(); // 'Hello guys!!'
-
- -

Especificaciones

- - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-object.setprototypeof', 'Object.setProtoypeOf')}}{{Spec2('ES6')}}Initial definition.
- -

Compatibilidad del navegador

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------ | -------------------- | ------------------- | +| {{SpecName('ES6', '#sec-object.setprototypeof', 'Object.setProtoypeOf')}} | {{Spec2('ES6')}} | Initial definition. | + +## Compatibilidad del navegador {{Compat("javascript.builtins.Object.setPrototypeOf")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Reflect.setPrototypeOf()")}}
  • -
  • {{jsxref("Object.prototype.isPrototypeOf()")}}
  • -
  • {{jsxref("Object.getPrototypeOf()")}}
  • -
  • {{jsxref("Object.prototype.__proto__")}}
  • -
+- {{jsxref("Reflect.setPrototypeOf()")}} +- {{jsxref("Object.prototype.isPrototypeOf()")}} +- {{jsxref("Object.getPrototypeOf()")}} +- {{jsxref("Object.prototype.__proto__")}} diff --git a/files/es/web/javascript/reference/global_objects/object/tolocalestring/index.md b/files/es/web/javascript/reference/global_objects/object/tolocalestring/index.md index 570c8e43d65576..989ed348708636 100644 --- a/files/es/web/javascript/reference/global_objects/object/tolocalestring/index.md +++ b/files/es/web/javascript/reference/global_objects/object/tolocalestring/index.md @@ -4,104 +4,93 @@ slug: Web/JavaScript/Reference/Global_Objects/Object/toLocaleString translation_of: Web/JavaScript/Reference/Global_Objects/Object/toLocaleString original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/toLocaleString --- -
{{JSRef}}
+{{JSRef}} -

El método toLocaleString() devuelve un string que representa a un objeto. Este método está pensado para ser redefinido en los objetos derivados, para los propósitos específicos de cada configuración regional.

+El método **`toLocaleString()`** devuelve un string que representa a un objeto. Este método está pensado para ser redefinido en los objetos derivados, para los propósitos específicos de cada configuración regional. -
{{EmbedInteractiveExample("pages/js/object-prototype-tolocalestring.html")}}
+{{EmbedInteractiveExample("pages/js/object-prototype-tolocalestring.html")}} +## Sintaxis + objeto.toLocaleString() -

Sintaxis

+### Valor de retorno -
objeto.toLocaleString()
+Un string que representa al objeto. -

Valor de retorno

+## Descripción -

Un string que representa al objeto.

+{{jsxref("Object")}}'s `toLocaleString` devuelve el resultado de llamar a {{jsxref("Object.toString", "toString()")}}. -

Descripción

+Se proporciona esta función para que los objetos dispongan de un método `toLocaleString` genérico, aunque puede que no todos la utilicen. Véase la lista siguiente. -

{{jsxref("Object")}}'s toLocaleString devuelve el resultado de llamar a {{jsxref("Object.toString", "toString()")}}.

+### Objetos que redefinen `toLocaleString` -

Se proporciona esta función para que los objetos dispongan de un método toLocaleString genérico, aunque puede que no todos la utilicen. Véase la lista siguiente.

+- {{jsxref("Array")}}: {{jsxref("Array.prototype.toLocaleString()")}} +- {{jsxref("Number")}}: {{jsxref("Number.prototype.toLocaleString()")}} +- {{jsxref("Date")}}: {{jsxref("Date.prototype.toLocaleString()")}} +- {{jsxref("TypedArray")}}: {{jsxref("TypedArray.prototype.toLocaleString()")}} +- {{jsxref("BigInt")}}: {{jsxref("BigInt.prototype.toLocaleString()")}} -

Objetos que redefinen toLocaleString

+## Ejemplos -
    -
  • {{jsxref("Array")}}: {{jsxref("Array.prototype.toLocaleString()")}}
  • -
  • {{jsxref("Number")}}: {{jsxref("Number.prototype.toLocaleString()")}}
  • -
  • {{jsxref("Date")}}: {{jsxref("Date.prototype.toLocaleString()")}}
  • -
  • {{jsxref("TypedArray")}}: {{jsxref("TypedArray.prototype.toLocaleString()")}}
  • -
  • {{jsxref("BigInt")}}: {{jsxref("BigInt.prototype.toLocaleString()")}}
  • -
+### Redefinición de toLocaleString() en Array -

Ejemplos

+En los objetos [`Array`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array) se puede utilizar [`toLocaleString()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toLocaleString) para imprimir los valores del _array_ como un string, con indicadores opcionales de configuración regional (como símbolos de moneda) aplicados. -

Redefinición de toLocaleString() en Array

+Por ejemplo: -

En los objetos Array se puede utilizar toLocaleString() para imprimir los valores del array como un string, con indicadores opcionales de configuración regional (como símbolos de moneda) aplicados.

- -

Por ejemplo:

- -
const unArray = [4, 7, 10];
+```js
+const unArray = [4, 7, 10];
 
 let preciosEnEuros = unArray.toLocaleString('fr', { style: 'currency', currency: 'EUR'});
-// "4,00 €,7,00 €,10,00 €"
+// "4,00 €,7,00 €,10,00 €" +``` -

Redefinición de toLocaleString() para Date

+### Redefinición de toLocaleString() para Date -

En los objetos Date se usa toLocaleString() para imprimir fechas en un formato adecuado a la configuración regional.

+En los objetos [`Date`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) se usa [`toLocaleString()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString) para imprimir fechas en un formato adecuado a la configuración regional. -

Por ejemplo:

+Por ejemplo: -
const unaFecha = new Date(Date.now());
-// "2020-07-07T19:51:44.046Z"
+```js
+const unaFecha = new Date(Date.now());
+// "2020-07-07T19:51:44.046Z"
 
-let fechaAleman = unaFecha.toLocaleString('de');
+let fechaAleman = unaFecha.toLocaleString('de');
 // "7.7.2020, 21:55:22"
 
 var fechaFrances= unaFecha.toLocaleString('fr');
-//"07/07/2020 à 21:55:22"
+//"07/07/2020 à 21:55:22" +``` -

Redefinición de toLocaleString() para Number

+### Redefinición de toLocaleString() para Number -

En los objetos Number se usa toLocaleString() para imprimir números de forma adecuada a la configuración regional, p. ej. para usar los separadores de miles correctos.

+En los objetos [`Number`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number) se usa [`toLocaleString()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString) para imprimir números de forma adecuada a la configuración regional, p. ej. para usar los separadores de miles correctos. -

Por ejemplo:

+Por ejemplo: -
const unNumero = 2901234564;
-// "2901234564"
+```js
+const unNumero = 2901234564;
+// "2901234564"
 
-let numeroAleman = unNumero.toLocaleString('de');
+let numeroAleman = unNumero.toLocaleString('de');
 // "2.901.234.564"
 
 let numeroFrances = unNumero.toLocaleString('fr');
-// "2 901 234 564"
- -

Especificaciones

- - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-object.prototype.tolocalestring', 'Object.prototype.toLocaleString')}}
+// "2 901 234 564" +``` -

Compatibilidad con navegadores

+## Especificaciones +| Especificación | +| ------------------------------------------------------------------------------------------------------------------------------------ | +| {{SpecName('ESDraft', '#sec-object.prototype.tolocalestring', 'Object.prototype.toLocaleString')}} | +## Compatibilidad con navegadores -

{{Compat("javascript.builtins.Object.toLocaleString")}}

+{{Compat("javascript.builtins.Object.toLocaleString")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Object.prototype.toString()")}}
  • -
+- {{jsxref("Object.prototype.toString()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/tostring/index.md b/files/es/web/javascript/reference/global_objects/object/tostring/index.md index 0b1605afa8c270..1e84de022f488f 100644 --- a/files/es/web/javascript/reference/global_objects/object/tostring/index.md +++ b/files/es/web/javascript/reference/global_objects/object/tostring/index.md @@ -9,33 +9,35 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/toString original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/toString --- -
{{JSRef("Objetos_globales", "Object")}}
+{{JSRef("Objetos_globales", "Object")}} -

Resumen

+## Resumen -

Devuelve una cadena que representa al objeto.

+Devuelve una cadena que representa al objeto. -

Sintaxis

+## Sintaxis -

toString()

+`toString()` -

Descripción

+## Descripción -

Todos los objetos tienen un método toString que se llama automáticamente cuando el objeto se representa como un valor de texto o cuando un objeto se referencia de tal manera que se espera una cadena. Por defecto, el método toString es heredado por todos los objetos que descienden de Object. Si este método no se sobreescribe en el objeto personalizado, toString devuelve {{ mediawiki.external('objecttype ') }}, donde type es el tipo de objeto. El siguiente código ilustra esto:

+Todos los objetos tienen un método `toString` que se llama automáticamente cuando el objeto se representa como un valor de texto o cuando un objeto se referencia de tal manera que se espera una cadena. Por defecto, el método `toString` es heredado por todos los objetos que descienden de `Object`. Si este método no se sobreescribe en el objeto personalizado, `toString` devuelve `{{ mediawiki.external('objecttype ') }}`, donde `type `es el tipo de objeto. El siguiente código ilustra esto: -
var objeto = new Object();
+```js
+var objeto = new Object();
 objeto.toString(); // Devuelve [object Object]
-
+``` -

Ejemplos

+### Ejemplos -

Sobreescribir el método por defecto toString

+#### Sobreescribir el método por defecto `toString` -

Puede crear una función que sea llamada en lugar del método predeterminado toString. El método toString no toma argumentos y debería devolver una cadena. El método toString que cree puede ser cualquier valor que quiera, pero será más útil si aporta información sobre el objeto.

+Puede crear una función que sea llamada en lugar del método predeterminado `toString`. El método `toString` no toma argumentos y debería devolver una cadena. El método `toString` que cree puede ser cualquier valor que quiera, pero será más útil si aporta información sobre el objeto. -

El siguiente código define el tipo de objeto Perro y crea elPerro, un objeto de tipo Perro:

+El siguiente código define el tipo de objeto `Perro` y crea `elPerro`, un objeto de tipo `Perro`: -
function Perro(nombre,criadero,color,sexo) {
+```js
+function Perro(nombre,criadero,color,sexo) {
    this.nombre=nombre;
    this.criadero=criadero;
    this.color=color;
@@ -43,29 +45,28 @@ objeto.toString(); // Devuelve [object Object]
 }
 
 elPerro = new Perro("Gabby","Laboratorio","chocolate","femenino")
-
+``` -

Si llama al método toString en el objeto personalizado, devuelve el valor predeterminado heredado de Object:

+Si llama al método `toString` en el objeto personalizado, devuelve el valor predeterminado heredado de `Object`: -
elPerro.toString() //devuelve [object Object]
-
+```js +elPerro.toString() //devuelve [object Object] +``` -

El siguiente código crea y asigna perroToString para sobreescribir el método predeterminado toString. Esta función genera una cadena que contiene nombre, criadero, color, y sexo del objeto, en la forma "propiedad = valor;".

+El siguiente código crea y asigna `perroToString` para sobreescribir el método predeterminado `toString`. Esta función genera una cadena que contiene nombre, criadero, color, y sexo del objeto, en la forma "`propiedad = valor;`". -
Perro.prototype.toString = function perroToString() {
+```js
+Perro.prototype.toString = function perroToString() {
   var retorno = "Perro " + this.nombre + " es " + this.sexo + " " + this.color + " " + this.criadero;
   return retorno;
 }
-
+``` -

Con el código precedente en su lugar, cualquier vez que se use elDog en un contexto de una cadena, JavaScript automáticamente llamará a la función perroToString, la cuál devuelve la siguiente cadena:

+Con el código precedente en su lugar, cualquier vez que se use `elDog` en un contexto de una cadena, JavaScript automáticamente llamará a la función `perroToString`, la cuál devuelve la siguiente cadena: -
Perro Gabby es femenino chocolate Laboratorio
-
+ Perro Gabby es femenino chocolate Laboratorio -

Vea También

+## Vea También -
    -
  • {{jsxref("Object.prototype.toSource()")}}
  • -
  • {{jsxref("Object.prototype.valueOf()")}}
  • -
+- {{jsxref("Object.prototype.toSource()")}} +- {{jsxref("Object.prototype.valueOf()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/valueof/index.md b/files/es/web/javascript/reference/global_objects/object/valueof/index.md index 6abcc8c3462b82..cc2d14fec700c5 100644 --- a/files/es/web/javascript/reference/global_objects/object/valueof/index.md +++ b/files/es/web/javascript/reference/global_objects/object/valueof/index.md @@ -4,55 +4,54 @@ slug: Web/JavaScript/Reference/Global_Objects/Object/valueOf translation_of: Web/JavaScript/Reference/Global_Objects/Object/valueOf original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/valueOf --- -
{{JSRef("Global_Objects", "Object")}}
+{{JSRef("Global_Objects", "Object")}} -

El método valueOf() retorna el valor primitivo del objeto especificado.

+El método **`valueOf()`** retorna el valor primitivo del objeto especificado. -

Sintaxis

+## Sintaxis -
object.valueOf()
+ object.valueOf() -

Valor de retorno

+### Valor de retorno -

El valor primitivo del objeto especificado.

+El valor primitivo del objeto especificado. -

+{{EmbedInteractiveExample("pages/js/object-prototype-valueof.html")}} -

{{EmbedInteractiveExample("pages/js/object-prototype-valueof.html")}}

+## Descripción -

+JavaScript utiliza el método valueOf para convertir un objeto a un valor primitivo. Raramente usted necesitará invocar el método valueOf por su cuenta; JavaScript lo realizará de forma automática cuando encuentre un objeto, donde un valor primitivo es esperado. -

Descripción

+Por defecto, el método valueOf es heredado por cada objeto descendiente de {{jsxref("Object")}}. Cada objeto incorporado en el núcleo del lenguaje sobreescribe este método para retornar un valor apropiado. Si un objeto no tiene un valor primitivo, valueOf devuelve el objeto en sí. -

JavaScript utiliza el método valueOf para convertir un objeto a un valor primitivo. Raramente usted necesitará invocar el método valueOf por su cuenta; JavaScript lo realizará de forma automática cuando encuentre un objeto, donde un valor primitivo es esperado.

+Puede utilizar valueOf dentro de su propio código para convertir un objeto incorporado en el núcleo del lenguaje en un valor primitivo. Cuando usted crea un objeto personalizado, puede sobreescribir el comportamiento de Object.prototype.valueOf() para invocar un método personalizado, en vez de utilizar el método por defecto {{jsxref("Object")}}. -

Por defecto, el método valueOf es heredado por cada objeto descendiente de {{jsxref("Object")}}. Cada objeto incorporado en el núcleo del lenguaje sobreescribe este método para retornar un valor apropiado. Si un objeto no tiene un valor primitivo, valueOf devuelve el objeto en sí.

+### Sobreescribiendo `valueOf` para objetos personalizados -

Puede utilizar valueOf dentro de su propio código para convertir un objeto incorporado en el núcleo del lenguaje en un valor primitivo. Cuando usted crea un objeto personalizado, puede sobreescribir el comportamiento de Object.prototype.valueOf() para invocar un método personalizado, en vez de utilizar el método por defecto {{jsxref("Object")}}.

+Puede crear una función para ser invocada en lugar de utilizar el método valueOf por defecto. Su función no debe contener ningún parámetro. -

Sobreescribiendo valueOf para objetos personalizados

+Suponga que tiene un objeto de tipo myNumberType y usted quiere crear un método valueOf para este. El código a continuación asigna una función personalizada al método valueOf: -

Puede crear una función para ser invocada en lugar de utilizar el método valueOf por defecto. Su función no debe contener ningún parámetro.

+```js +myNumberType.prototype.valueOf = function() { return customPrimitiveValue; }; +``` -

Suponga que tiene un objeto de tipo myNumberType y usted quiere crear un método valueOf para este. El código a continuación asigna una función personalizada al método valueOf:

+Al tener el código anterior funcionando, cada vez que un objeto de tipo myNumberType es utilizado en un contexto donde deba ser representado por un valor primitivo, JavaScript automáticamente invocará la función definida en el código anterior. -
myNumberType.prototype.valueOf = function() { return customPrimitiveValue; };
+El método valueOf es invocado usualmente por JavaScript pero usted puede invocarlo directamente como sigue a continuación: -

Al tener el código anterior funcionando, cada vez que un objeto de tipo myNumberType es utilizado en un contexto donde deba ser representado por un valor primitivo, JavaScript automáticamente invocará la función definida en el código anterior.

+```js +myNumber.valueOf() +``` -

El método valueOf es invocado usualmente por JavaScript pero usted puede invocarlo directamente como sigue a continuación:

+> **Nota:**Objetos en contextos de string realizan la conversión a string a través del método {{jsxref("Object.toString", "toString()")}} , el cual, es diferente de {{jsxref("String")}} para convertir objetos a primitivos string utilizando el método valueOf. Todos los objetos pueden ser convertidos a string, si solo "\[object _type_]". Pero muchos objetos no se pueden convertir a number, boolean o function. -
myNumber.valueOf()
+## Ejemplos -
-

Nota: Objetos en contextos de string realizan la conversión a string a través del método {{jsxref("Object.toString", "toString()")}} , el cual, es diferente de {{jsxref("String")}} para convertir objetos a primitivos string utilizando el método valueOf. Todos los objetos pueden ser convertidos a string, si solo "[object type]". Pero muchos objetos no se pueden convertir a number, boolean o function.

-
+### Utilizando `valueOf` -

Ejemplos

- -

Utilizando valueOf

- -
function myNumberType(n) {
+```js
+function myNumberType(n) {
     this.number = n;
 }
 
@@ -62,49 +61,22 @@ myNumberType.prototype.valueOf = function() {
 
 myObj = new myNumberType(4);
 myObj + 3; // 7
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoCommentario
ECMAScript 1ra Edición.EstándarDefinición inicial. Implementado en JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.2.4.4', 'Object.prototype.valueOf')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-object.prototype.valueof', 'Object.prototype.valueOf')}}{{Spec2('ES6')}} -

-
{{SpecName('ESDraft', '#sec-object.prototype.valueof', 'Object.prototype.valueOf')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con Navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Commentario | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| ECMAScript 1ra Edición. | Estándar | Definición inicial. Implementado en JavaScript 1.1. | +| {{SpecName('ES5.1', '#sec-15.2.4.4', 'Object.prototype.valueOf')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-object.prototype.valueof', 'Object.prototype.valueOf')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-object.prototype.valueof', 'Object.prototype.valueOf')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con Navegadores {{Compat("javascript.builtins.Object.valueOf")}} -

Vea también

+## Vea también -
    -
  • {{jsxref("Object.prototype.toString()")}}
  • -
  • {{jsxref("parseInt", "parseInt()")}}
  • -
+- {{jsxref("Object.prototype.toString()")}} +- {{jsxref("parseInt", "parseInt()")}} diff --git a/files/es/web/javascript/reference/global_objects/object/values/index.md b/files/es/web/javascript/reference/global_objects/object/values/index.md index e23b2d92b77a72..48475e78dcc0a8 100644 --- a/files/es/web/javascript/reference/global_objects/object/values/index.md +++ b/files/es/web/javascript/reference/global_objects/object/values/index.md @@ -9,34 +9,33 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Object/values original_slug: Web/JavaScript/Referencia/Objetos_globales/Object/values --- -
{{JSRef}}
+{{JSRef}} -

El método Object.values() devuelve un array con los valores correspondientes a las propiedades enumerables de un objeto. Las propiedades son devueltas en el mismo orden a como lo haría un bucle {{jsxref("Statements/for...in", "for...in")}} (la única diferencia es que un bucle for-in también enumera las propiedades en la cadena de prototipo de un objeto).

+El método **`Object.values()`\*\*** **devuelve un array con los valores correspondientes a las propiedades **enumerables\*\* de un objeto. Las propiedades son devueltas en el mismo orden a como lo haría un bucle {{jsxref("Statements/for...in", "for...in")}} (la única diferencia es que un bucle `for-in` también enumera las propiedades en la cadena de prototipo de un objeto). -

{{EmbedInteractiveExample("pages/js/object-values.html")}}

+{{EmbedInteractiveExample("pages/js/object-values.html")}} -

Sintaxis

+## Sintaxis -
Object.values(obj)
+ Object.values(obj) -

Parámetros

+### Parámetros -
-
obj
-
Objeto cuyas propiedades enumerables serán devueltas.
-
+- `obj` + - : Objeto cuyas propiedades enumerables serán devueltas. -

Valor devuelto

+### Valor devuelto -

Un array con las propiedades enumerables del objeto pasado como parámetro.

+Un `array`\*\* \*\*con las propiedades enumerables del objeto pasado como parámetro. -

Descripción

+## Descripción -

El método Object.values() devuelve un array cuyos elementos son valores de propiedades enumarables que se encuentran en el objeto. El orden de las propiedades es el mismo que el dado cuando se recorre el objeto de forma manual.

+El método `Object.values()`\*\* \*\*devuelve un array cuyos elementos son valores de propiedades enumarables que se encuentran en el objeto. El orden de las propiedades es el mismo que el dado cuando se recorre el objeto de forma manual. -

Ejemplos

+## Ejemplos -
var obj = { foo: 'bar', baz: 42 };
+```js
+var obj = { foo: 'bar', baz: 42 };
 console.log(Object.values(obj)); // ['bar', 42]
 
 // array como objeto
@@ -52,47 +51,30 @@ var my_obj = Object.create({}, { getFoo: { value: function() { return this.foo;
 my_obj.foo = 'bar';
 console.log(Object.values(my_obj)); // ['bar']
 
-// parámetros que no son Objetos se fuerzan a que se comporten como tal
+// parámetros que no son Objetos se fuerzan a que se comporten como tal
 console.log(Object.values('foo')); // ['f', 'o', 'o']
-
- -

Polyfill

- -

Para dar soporte compatible con Object.values() a entornos antiguos que no la soportan de forma nativa, puedes encontrar un Polyfill en tc39/proposal-object-values-entries o en los repositorios es-shims/Object.values.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ESDraft', '#sec-object.values', 'Object.values')}}{{Spec2('ESDraft')}}Definición inicial.
{{SpecName('ES8', '#sec-object.values', 'Object.values')}}{{Spec2('ES8')}}
- -

Compatibilidad en navegadores

- -
{{Compat("javascript.builtins.Object.values")}}
- -

Ver también

- -
    -
  • Enumeración y propietarios de propiedades
  • -
  • {{jsxref("Object.keys()")}}
  • -
  • {{jsxref("Object.entries()")}}
  • -
  • {{jsxref("Object.prototype.propertyIsEnumerable()")}}
  • -
  • {{jsxref("Object.create()")}}
  • -
  • {{jsxref("Object.getOwnPropertyNames()")}}
  • -
+``` + +## Polyfill + +Para dar soporte compatible con `Object.values()` a entornos antiguos que no la soportan de forma nativa, puedes encontrar un Polyfill\*\* \*\*en [tc39/proposal-object-values-entries](https://github.com/tc39/proposal-object-values-entries) o en los repositorios [es-shims/Object.values](https://github.com/es-shims/Object.values). + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ESDraft', '#sec-object.values', 'Object.values')}} | {{Spec2('ESDraft')}} | Definición inicial. | +| {{SpecName('ES8', '#sec-object.values', 'Object.values')}} | {{Spec2('ES8')}} | | + +## Compatibilidad en navegadores + +{{Compat("javascript.builtins.Object.values")}} + +## Ver también + +- [Enumeración y propietarios de propiedades](/es/docs/Web/JavaScript/enumeracion_y_propietario_de_propiedades) +- {{jsxref("Object.keys()")}} +- {{jsxref("Object.entries()")}} +- {{jsxref("Object.prototype.propertyIsEnumerable()")}} +- {{jsxref("Object.create()")}} +- {{jsxref("Object.getOwnPropertyNames()")}} diff --git a/files/es/web/javascript/reference/global_objects/parseint/index.md b/files/es/web/javascript/reference/global_objects/parseint/index.md index 80a62332cf70f0..4556f5d9ec3fa3 100644 --- a/files/es/web/javascript/reference/global_objects/parseint/index.md +++ b/files/es/web/javascript/reference/global_objects/parseint/index.md @@ -4,57 +4,54 @@ slug: Web/JavaScript/Reference/Global_Objects/parseInt translation_of: Web/JavaScript/Reference/Global_Objects/parseInt original_slug: Web/JavaScript/Referencia/Objetos_globales/parseInt --- -
{{jsSidebar("Objects")}}
+{{jsSidebar("Objects")}} -

Resumen

+## Resumen -

Convierte (parsea) un argumento de tipo cadena y devuelve un entero de la base especificada.

+Convierte (parsea) un argumento de tipo cadena y devuelve un entero de la base especificada. -

Sintaxis

+## Sintaxis -
parseInt(string, base);
+ parseInt(string, base); -

Parámetros

+### Parámetros -
-
cadena
-
Una cadena que representa el valor que se desea convertir.
-
+- `cadena` + - : Una cadena que representa el valor que se desea convertir. -
-
base
-
Un entero que representa la base de la mencionada cadena.
-
+ -

Descripción

+- `base` + - : Un entero que representa la base de la mencionada cadena. -

parseInt es una función de alto nivel y no está asociada a ningún objeto.

+## Descripción -

La función parseInt comprueba el primer argumento, una cadena, e intenta devolver un entero de la base especificada. Por ejemplo, una base de 10 indica una conversión a número decimal, 8 octal, 16 hexadecimal, y así sucesivamente. Para bases superiores a 10, las letras del alfabeto indican numerales mayores que 9. Por ejemplo, para números hexadecimales (base 16), se utiliza de la A hasta la F.

+`parseInt` es una función de alto nivel y no está asociada a ningún objeto. -

Si parseInt encuentra un carácter que no es un numeral de la base especificada, lo ignora a él y a todos los caracteres correctos siguientes, devolviendo el valor entero obtenido hasta ese punto. parseInt trunca los números en valores enteros. Se permiten espacios anteriores y posteriores.

+La función `parseInt` comprueba el primer argumento, una cadena, e intenta devolver un entero de la base especificada. Por ejemplo, una base de 10 indica una conversión a número decimal, 8 octal, 16 hexadecimal, y así sucesivamente. Para bases superiores a 10, las letras del alfabeto indican numerales mayores que 9. Por ejemplo, para números hexadecimales (base 16), se utiliza de la A hasta la F. -

Si no se especifica la base o se especifica como 0, JavaScript asume lo siguiente:

+Si `parseInt` encuentra un carácter que no es un numeral de la base especificada, lo ignora a él y a todos los caracteres correctos siguientes, devolviendo el valor entero obtenido hasta ese punto. `parseInt` trunca los números en valores enteros. Se permiten espacios anteriores y posteriores. -
    -
  • Si el parámetro cadena comienza por "0x", la base es 16 (hexadecimal).
  • -
  • Si el parámetro cadena comienza por "0", la base es de 8 (octal). Esta característica está desaconsejada.
  • -
  • Si el parámetro cadena comienza por cualquier otro valor, la base es 10 (decimal).
  • -
+Si no se especifica la base o se especifica como 0, JavaScript asume lo siguiente: -

Si el primer carácter no se puede convertir en número, parseInt devuelve NaN.

+- Si el parámetro `cadena` comienza por "0x", la base es 16 (hexadecimal). +- Si el parámetro `cadena` comienza por "0", la base es de 8 (octal). Esta característica está desaconsejada. +- Si el parámetro `cadena` comienza por cualquier otro valor, la base es 10 (decimal). -

Para fines aritméticos, el valor NaN no es un número en ninguna base. Puede llamar a la función {{jsxref("Objetos_globales/isNaN", "isNaN")}} para determinar se el resultado de parseInt es NaN. Si se pasa NaN en operaciones aritméticas, la operación resultante también será NaN.

+Si el primer carácter no se puede convertir en número, `parseInt` devuelve `NaN`. -

Para convertir números a su literal cadena en una base en particular, utilice intValue.toString(base).

+Para fines aritméticos, el valor `NaN` no es un número en ninguna base. Puede llamar a la función {{jsxref("Objetos_globales/isNaN", "isNaN")}} para determinar se el resultado de `parseInt` es `NaN`. Si se pasa `NaN` en operaciones aritméticas, la operación resultante también será `NaN`. -

Ejemplos

+Para convertir números a su literal cadena en una base en particular, utilice `intValue.toString(base)`. -

Ejemplo: Usando parseInt

+## Ejemplos -

Todos los siguientes ejemplos devuelven 15:

+### Ejemplo: Usando `parseInt` -
parseInt("F", 16);
+Todos los siguientes ejemplos devuelven 15:
+
+```js
+parseInt("F", 16);
 parseInt("17", 8);
 parseInt("15", 10);
 parseInt(15.99, 10);
@@ -62,29 +59,29 @@ parseInt("FXX123", 16);
 parseInt("1111", 2);
 parseInt("15*3", 10);
 parseInt("12", 13);
-
+``` -

Todos los siguientes ejemplos devuelven NaN:

+Todos los siguientes ejemplos devuelven `NaN`: -
parseInt("Hello", 8); // No es un número en absoluto
+```js
+parseInt("Hello", 8); // No es un número en absoluto
 parseInt("0x7", 10);  // No es de base 10
 parseInt("546", 2);   // Los dígitos no son válidos para representaciones binarias.
-
+``` -

Incluso aunque la base especificada es diferente, todos los siguientes ejemplos devuelven 17 ya que el argumento cadena comienza por "0x".

+Incluso aunque la base especificada es diferente, todos los siguientes ejemplos devuelven 17 ya que el argumento `cadena` comienza por "`0x`". -
parseInt("0x11", 16);
+```js
+parseInt("0x11", 16);
 parseInt("0x11", 0);
 parseInt("0x11");
-
- -

Véase También

- -
    -
  • {{jsxref("Objetos_globales/parseFloat", "parseFloat()")}}
  • -
  • {{jsxref("Number.parseFloat()")}}
  • -
  • {{jsxref("Number.parseInt()")}}
  • -
  • {{jsxref("Objetos_globales/isNaN", "isNaN()")}}
  • -
  • {{jsxref("Number.toString()")}}
  • -
  • {{jsxref("Object.valueOf")}}
  • -
+``` + +### Véase También + +- {{jsxref("Objetos_globales/parseFloat", "parseFloat()")}} +- {{jsxref("Number.parseFloat()")}} +- {{jsxref("Number.parseInt()")}} +- {{jsxref("Objetos_globales/isNaN", "isNaN()")}} +- {{jsxref("Number.toString()")}} +- {{jsxref("Object.valueOf")}} diff --git a/files/es/web/javascript/reference/global_objects/promise/all/index.md b/files/es/web/javascript/reference/global_objects/promise/all/index.md index b9ad08a59a731f..3bd08f082b5ad6 100644 --- a/files/es/web/javascript/reference/global_objects/promise/all/index.md +++ b/files/es/web/javascript/reference/global_objects/promise/all/index.md @@ -10,68 +10,69 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Promise/all original_slug: Web/JavaScript/Referencia/Objetos_globales/Promise/all --- -
{{JSRef}}
+{{JSRef}} -

El método Promise.all(iterable) devuelve una promesa que termina correctamente cuando todas las promesas en el argumento iterable han sido concluídas con éxito, o bien rechaza la petición con el motivo pasado por la primera promesa que es rechazada.

+El método **`Promise.all(iterable)`** devuelve una promesa que termina correctamente cuando todas las promesas en el argumento iterable han sido concluídas con éxito, o bien rechaza la petición con el motivo pasado por la primera promesa que es rechazada. -

Sintaxis

+## Sintaxis -
Promise.all(iterable);
+ Promise.all(iterable); -
-
iterable
-
Un objeto iterable, por ejemplo un {{jsxref("Array")}}. Vea iterable.
-
+- iterable + - : Un objeto iterable, por ejemplo un {{jsxref("Array")}}. Vea [iterable](/es/docs/Web/JavaScript/Guide/iterable). -

Valor devuelto

+### Valor devuelto -

Una {{jsxref("Promise")}} que se cumplirá cuando todas las promesas del argumento iterable hayan sido cumplidas, o bien se rechazará cuando alguna de ellas se rechace.

+Una {{jsxref("Promise")}} que se cumplirá cuando todas las promesas del argumento iterable hayan sido cumplidas, o bien se rechazará cuando alguna de ellas se rechace. -

Descripción

+## Descripción -

Promise.all se cumple cuando todas las promesas del iterable dado se han cumplido, o es rechazada si alguna promesa no se cumple. {{jsxref("Promise.resolve")}}.

+**`Promise.all` **se cumple cuando todas las promesas del iterable dado se han cumplido, o es rechazada si alguna promesa no se cumple. {{jsxref("Promise.resolve")}}. -

Si alguna de las promesas pasadas en el argumento iterable falla, la promesa all es rechazada inmediatamente con el valor de la promesa que fué rechazada, descartando todas las demás promesas hayan sido o no cumplidas. Si se pasa un array vacío a all , la promesa se cumple inmediatamente.

+Si alguna de las promesas pasadas en el argumento iterable falla, la promesa `all` es rechazada inmediatamente con el valor de la promesa que fué rechazada, descartando todas las demás promesas hayan sido o no cumplidas. Si se pasa un array vacío a `all` , la promesa se cumple inmediatamente. -

Ejemplos

+## Ejemplos -

Uso de Promise.all

+### Uso de `Promise.all` -

Promise.all espera a que todo se cumpla (o bien al primer rechazo).

+`Promise.all` espera a que todo se cumpla (o bien al primer rechazo). -
var p1 = Promise.resolve(3);
+```js
+var p1 = Promise.resolve(3);
 var p2 = 1337;
-var p3 = new Promise((resolve, reject) => {
+var p3 = new Promise((resolve, reject) => {
   setTimeout(resolve, 100, "foo");
 });
 
-Promise.all([p1, p2, p3]).then(values => {
+Promise.all([p1, p2, p3]).then(values => {
   console.log(values); // [3, 1337, "foo"]
-});
+}); +``` -

Promise.all comportamiento de fallo-rápido

+### `Promise.all` comportamiento de fallo-rápido -

Promise.all se rechaza si uno de los elementos ha sido rechazado y Promise.all falla rápido: Si tienes cuatro promesas que se resuelven después de un timeout y una de ellas falla inmediatamente, entonces Promise.all se rechaza inmediatamente.

+`Promise.all` se rechaza si uno de los elementos ha sido rechazado y `Promise.all` falla rápido: Si tienes cuatro promesas que se resuelven después de un timeout y una de ellas falla inmediatamente, entonces `Promise.all` se rechaza inmediatamente. -
var p1 = new Promise((resolve, reject) => {
+```js
+var p1 = new Promise((resolve, reject) => {
   setTimeout(resolve, 1000, "one");
 });
-var p2 = new Promise((resolve, reject) => {
+var p2 = new Promise((resolve, reject) => {
   setTimeout(resolve, 2000, "two");
 });
-var p3 = new Promise((resolve, reject) => {
+var p3 = new Promise((resolve, reject) => {
   setTimeout(resolve, 3000, "three");
 });
-var p4 = new Promise((resolve, reject) => {
+var p4 = new Promise((resolve, reject) => {
   setTimeout(resolve, 4000, "four");
 });
-var p5 = new Promise((resolve, reject) => {
+var p5 = new Promise((resolve, reject) => {
   reject("reject");
 });
 
-Promise.all([p1, p2, p3, p4, p5]).then(values => {
+Promise.all([p1, p2, p3, p4, p5]).then(values => {
   console.log(values);
-}, reason => {
+}, reason => {
   console.log(reason)
 });
 
@@ -79,46 +80,28 @@ Promise.all([p1, p2, p3, p4, p5]).then(values => {
 //"reject"
 
 // Evenly, it's possible to use .catch
-Promise.all([p1, p2, p3, p4, p5]).then(values => {
+Promise.all([p1, p2, p3, p4, p5]).then(values => {
   console.log(values);
-}).catch(reason => {
+}).catch(reason => {
   console.log(reason)
 });
 
 //From console:
 //"reject"
+```
+
+## Especificaciones
+
+| Especificación                                                               | Status                       | Comentario                              |
+| ---------------------------------------------------------------------------- | ---------------------------- | --------------------------------------- |
+| {{SpecName('ES6', '#sec-promise.all', 'Promise.all')}}     | {{Spec2('ES6')}}         | Initial definition in an ECMA standard. |
+| {{SpecName('ESDraft', '#sec-promise.all', 'Promise.all')}} | {{Spec2('ESDraft')}} |                                         |
+
+## Compatibilidad entre navegadores
+
+{{Compat("javascript/promise","Promise.all")}}
+
+## Vea también
 
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónStatusComentario
{{SpecName('ES6', '#sec-promise.all', 'Promise.all')}}{{Spec2('ES6')}}Initial definition in an ECMA standard.
{{SpecName('ESDraft', '#sec-promise.all', 'Promise.all')}}{{Spec2('ESDraft')}}
- -

Compatibilidad entre navegadores

- -

{{Compat("javascript/promise","Promise.all")}}

- -

Vea también

- -
    -
  • {{jsxref("Promise")}}
  • -
  • {{jsxref("Promise.race()")}}
  • -
+- {{jsxref("Promise")}} +- {{jsxref("Promise.race()")}} diff --git a/files/es/web/javascript/reference/global_objects/promise/catch/index.md b/files/es/web/javascript/reference/global_objects/promise/catch/index.md index d6c4b5391cd99e..f336179b6c28d8 100644 --- a/files/es/web/javascript/reference/global_objects/promise/catch/index.md +++ b/files/es/web/javascript/reference/global_objects/promise/catch/index.md @@ -4,48 +4,42 @@ slug: Web/JavaScript/Reference/Global_Objects/Promise/catch translation_of: Web/JavaScript/Reference/Global_Objects/Promise/catch original_slug: Web/JavaScript/Referencia/Objetos_globales/Promise/catch --- -
{{JSRef}}
+{{JSRef}} -

El método catch() retorna una Promise y solo se ejecuta en los casos en los que la promesa se marca como Reject. Se comporta igual que al llamar {{jsxref("Promise.then", "Promise.prototype.then(undefined, onRejected)")}} (de hecho, al llamar obj.catch(onRejected) internamente llama a obj.then(undefined, onRejected)).

+El método **catch()** retorna una `Promise` y solo se ejecuta en los casos en los que la promesa se marca como `Reject`. Se comporta igual que al llamar {{jsxref("Promise.then", "Promise.prototype.then(undefined, onRejected)")}} (de hecho, al llamar `obj.catch(onRejected)` internamente llama a `obj.then(undefined, onRejected)`). -

Síntaxis

+## Síntaxis -
p.catch(onRejected);
+    p.catch(onRejected);
 
-p.catch(function(reason) {
-   // rejection
-});
-
+ p.catch(function(reason) { + // rejection + }); -

Parámetros

+### Parámetros -
-
onRejected
-
Una {{jsxref("Function")}} llamada cuando la Promise es rechazada. Esta función tiene un argumento: -
-
reason
-
La razón del rechazo.
-
- La promesa devuelta por catch() es rechazada si onRejected lanza un error o retorna una Promise que a su vez se rechaza, de cualquier otra manera la Promise es resuelta.
-
+- onRejected + - : Una {{jsxref("Function")}} llamada cuando la `Promise` es rechazada. Esta función tiene un argumento:_ `reason` + _ : La razón del rechazo.La promesa devuelta por `catch()` es rechazada si `onRejected` lanza un error o retorna una `Promise` que a su vez se rechaza, de cualquier otra manera la `Promise` es resuelta. -

Valor de Retorno (Return)

+### Valor de Retorno (Return) -

Internamente llama a Promise.prototype.then en el objeto sobre el que se llama, pasándole el parámetro undefined y el manejador onRejected recibido; luego devuelve un valor de esa llamada (que es una {{jsxref("Promise")}}).

+Internamente llama a `Promise.prototype.then` en el objeto sobre el que se llama, pasándole el parámetro `undefined` y el manejador `onRejected` recibido; luego devuelve un valor de esa llamada (que es una {{jsxref("Promise")}}). -

Demostración de la llamada interna:

+**Demostración de la llamada interna:** -
// overriding original Promise.prototype.then/catch just to add some logs
+```js
+// overriding original Promise.prototype.then/catch just to add some logs
 (function(Promise){
     var originalThen = Promise.prototype.then;
     var originalCatch = Promise.prototype.catch;
 
     Promise.prototype.then = function(){
-        console.log('> > > > > > called .then on %o with arguments: %o', this, arguments);
+        console.log('> > > > > > called .then on %o with arguments: %o', this, arguments);
         return originalThen.apply(this, arguments);
     };
     Promise.prototype.catch = function(){
-        console.log('> > > > > > called .catch on %o with arguments: %o', this, arguments);
+        console.log('> > > > > > called .catch on %o with arguments: %o', this, arguments);
         return originalCatch.apply(this, arguments);
     };
 
@@ -57,19 +51,20 @@ p.catch(function(reason) {
 Promise.resolve().catch(function XXX(){});
 
 // logs:
-// > > > > > > called .catch on Promise{} with arguments: Arguments{1} [0: function XXX()]
-// > > > > > > called .then on Promise{} with arguments: Arguments{2} [0: undefined, 1: function XXX()]
-
+// > > > > > > called .catch on Promise{} with arguments: Arguments{1} [0: function XXX()] +// > > > > > > called .then on Promise{} with arguments: Arguments{2} [0: undefined, 1: function XXX()] +``` -

Descripción

+## Descripción -

El método catch puede ser muy útil para el manejo de errores en tu código con promesas.

+El método `catch` puede ser muy útil para el manejo de errores en tu código con promesas. -

Ejemplos

+## Ejemplos -

Usando y encadenando el método catch

+### Usando y encadenando el método `catch` -
var p1 = new Promise(function(resolve, reject) {
+```js
+var p1 = new Promise(function(resolve, reject) {
   resolve('Success');
 });
 
@@ -95,11 +90,12 @@ p1.then(function(value) {
 }, function () {
   console.log('Not fired due to the catch');
 });
-
+``` -

Trucos cuando lanzamos errores

+### Trucos cuando lanzamos errores -
// Hacer un throw llamará al método catch
+```js
+// Hacer un throw llamará al método catch
 var p1 = new Promise(function(resolve, reject) {
   throw 'Uh-oh!';
 });
@@ -127,11 +123,13 @@ var p3 = new Promise(function(resolve, reject) {
 
 p3.catch(function(e) {
    console.log(e); // Nunca será llamado
-});
+}); +``` -

Si se resuelve la promesa

+### Si se resuelve la promesa -
// Crea una promesa que no llamará a onReject
+```js
+// Crea una promesa que no llamará a onReject
 var p1 = Promise.resolve("calling next");
 
 var p2 = p1.catch(function (reason) {
@@ -146,39 +144,21 @@ p2.then(function (value) {
 }, function (reason) {
     console.log("next promise's onRejected");
     console.log(reason);
-});
- -

Especificación

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-promise.prototype.catch', 'Promise.prototype.catch')}}{{Spec2('ES2015')}}Definición inicial en el standar ECMA.
{{SpecName('ESDraft', '#sec-promise.prototype.catch', 'Promise.prototype.catch')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegadores

- - - -

{{Compat("javascript.builtins.promise.catch")}}

- -

Vea también

- -
    -
  • {{jsxref("Promise")}}
  • -
  • {{jsxref("Promise.prototype.then()")}}
  • -
+}); +``` + +## Especificación + +| Specification | Status | Comment | +| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | -------------------------------------- | +| {{SpecName('ES2015', '#sec-promise.prototype.catch', 'Promise.prototype.catch')}} | {{Spec2('ES2015')}} | Definición inicial en el standar ECMA. | +| {{SpecName('ESDraft', '#sec-promise.prototype.catch', 'Promise.prototype.catch')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegadores + +{{Compat("javascript.builtins.promise.catch")}} + +## Vea también + +- {{jsxref("Promise")}} +- {{jsxref("Promise.prototype.then()")}} diff --git a/files/es/web/javascript/reference/global_objects/promise/finally/index.md b/files/es/web/javascript/reference/global_objects/promise/finally/index.md index 0d2766bc7a1bc1..3577fe56c088c4 100644 --- a/files/es/web/javascript/reference/global_objects/promise/finally/index.md +++ b/files/es/web/javascript/reference/global_objects/promise/finally/index.md @@ -4,56 +4,50 @@ slug: Web/JavaScript/Reference/Global_Objects/Promise/finally translation_of: Web/JavaScript/Reference/Global_Objects/Promise/finally original_slug: Web/JavaScript/Referencia/Objetos_globales/Promise/finally --- -
{{JSRef}}
+{{JSRef}} -

El método finally() devuelve una {{jsxref("Promise")}}. Cuando la promesa se resuelve, sea exitosa o rechazada, la función de callback específicada será ejecutada. Esto ofrece una forma de ejecutar código sin importar como se haya resuelto la promesa.

+El método **`finally()`** devuelve una {{jsxref("Promise")}}. Cuando la promesa se resuelve, sea exitosa o rechazada, la función de callback específicada será ejecutada. Esto ofrece una forma de ejecutar código sin importar como se haya resuelto la promesa. -

Esto ayuda a evitar tener código duplicado tanto en el {{jsxref("Promise.then", "then()")}} como en el {{jsxref("Promise.catch", "catch()")}}.

+Esto ayuda a evitar tener código duplicado tanto en el {{jsxref("Promise.then", "then()")}} como en el {{jsxref("Promise.catch", "catch()")}}. -

Sintaxis

+## Sintaxis -
p.finally(alFinalizar);
+    p.finally(alFinalizar);
 
-p.finally(function() {
-   // finalizada (exitosa o rechazada)
-});
-
+ p.finally(function() { + // finalizada (exitosa o rechazada) + }); -

Parámetros

+### Parámetros -
-
alFinalizar
-
Una {{jsxref("Function")}} llamada cuando la Promise se resuelve con éxito o falla.
-
+- `alFinalizar` + - : Una {{jsxref("Function")}} llamada cuando la `Promise` se resuelve con éxito o falla. -

Valor de retorno

+### Valor de retorno -

Devuelve una {{jsxref("Promise")}} cuyo finally fue fijado a la función específicada en alFinalizar.

+Devuelve una {{jsxref("Promise")}} cuyo `finally` fue fijado a la función específicada en `alFinalizar`. -

Descripción

+## Descripción -

El método finally() puede ser de utilidad si quieres hacer algún proceso o limpieza una vez que la promesa termina, sin importar su resultado.

+El método `finally()` puede ser de utilidad si quieres hacer algún proceso o limpieza una vez que la promesa termina, sin importar su resultado. -

Utilizar finally() es muy similar a llamar .then(onFinally, onFinally), sin embargo tiene algunas diferencias:

+Utilizar `finally()` es muy similar a llamar `.then(onFinally, onFinally)`, sin embargo tiene algunas diferencias: -
    -
  • Cuando usamos una función inline, se la puede pasar una sola vez, en vez de estar forzado a declararla dos veces, o guardarla en una variable.
  • -
  • Un callback finally no recibe ningún argumento, ya que no hay una manera fehaciente de determinar si la promesa fue exitosa o fallida. Este caso de uso es precisamente para cuando no nos importa la razón por la que falló o el valor al que resuelve, y no hay necesidad de proveerlos.
  • -
  • A diferencia de Promise.resolve(2).then(() => {}, () => {}) (que va a resolver a undefined), Promise.resolve(2).finally(() => {}) resolverá con un 2.
  • -
  • Del mismo modo, a diferencia de Promise.reject(3).then(() => {}, () => {}) (que resolverá con undefined), Promise.reject(3).finally(() => {}) será rechazada con un 3.
  • -
+- Cuando usamos una función `inline`, se la puede pasar una sola vez, en vez de estar forzado a declararla dos veces, o guardarla en una variable. +- Un callback `finally` no recibe ningún argumento, ya que no hay una manera fehaciente de determinar si la promesa fue exitosa o fallida. Este caso de uso es precisamente para cuando _no nos importa_ la razón por la que falló o el valor al que resuelve, y no hay necesidad de proveerlos. +- A diferencia de `Promise.resolve(2).then(() => {}, () => {})` (que va a resolver a `undefined`), `Promise.resolve(2).finally(() => {})` resolverá con un `2`. +- Del mismo modo, a diferencia de `Promise.reject(3).then(() => {}, () => {})` (que resolverá con `undefined`), `Promise.reject(3).finally(() => {})` será rechazada con un `3`. -
-

Nota: Un throw (o retornar una promesa rechazada) en el callback finally va a rechazar la nueva promesa con la razón de rechazo especificada al llamar throw().

-
+> **Nota:** Un `throw` (o retornar una promesa rechazada) en el callback `finally` va a rechazar la nueva promesa con la razón de rechazo especificada al llamar `throw()`. -

Ejemplos

+## Ejemplos -
let isLoading = true;
+```js
+let isLoading = true;
 
 fetch(myRequest).then(function(response) {
     var contentType = response.headers.get("content-type");
-    if(contentType && contentType.includes("application/json")) {
+    if(contentType && contentType.includes("application/json")) {
       return response.json();
     }
     throw new TypeError("Oops, no hemos obtenido un JSON!");
@@ -61,36 +55,20 @@ fetch(myRequest).then(function(response) {
   .then(function(json) { /* procesar el JSON */ })
   .catch(function(error) { console.log(error); /* esta línea podría arrojar error, e.g. cuando console = {} */ })
   .finally(function() { isLoading = false; });
+```
 
-
+## Especificaciones -

Especificaciones

+| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ---------- | +| {{SpecName('ESDraft', '#sec-promise.prototype.finally', 'Promise.prototype.finally')}} | {{Spec2('ESDraft')}} | | - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ESDraft', '#sec-promise.prototype.finally', 'Promise.prototype.finally')}}{{Spec2('ESDraft')}}
+## Compatibilidad en navegador -

Compatibilidad en navegador

+{{Compat("javascript.builtins.Promise.finally")}} +## Ver también - -

{{Compat("javascript.builtins.Promise.finally")}}

- -

Ver también

- -
    -
  • {{jsxref("Promise")}}
  • -
  • {{jsxref("Promise.prototype.then()")}}
  • -
  • {{jsxref("Promise.prototype.catch()")}}
  • -
+- {{jsxref("Promise")}} +- {{jsxref("Promise.prototype.then()")}} +- {{jsxref("Promise.prototype.catch()")}} diff --git a/files/es/web/javascript/reference/global_objects/promise/race/index.md b/files/es/web/javascript/reference/global_objects/promise/race/index.md index a4d06e9df347f0..4478f97f8927d8 100644 --- a/files/es/web/javascript/reference/global_objects/promise/race/index.md +++ b/files/es/web/javascript/reference/global_objects/promise/race/index.md @@ -10,104 +10,86 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Promise/race original_slug: Web/JavaScript/Referencia/Objetos_globales/Promise/race --- -
{{JSRef}}
+{{JSRef}} -

El método Promise.race(iterable) retorna una promesa que se cumplirá o no tan pronto como una de las promesas del argumento iterable se cumpla o se rechace, con el valor o razón de rechazo de ésta.

+El método **`Promise.race(iterable)`** retorna una promesa que se cumplirá o no tan pronto como una de las promesas del argumento iterable se cumpla o se rechace, con el valor o razón de rechazo de ésta. -

Sintaxis

+## Sintaxis -
Promise.race(iterable);
+ Promise.race(iterable); -

Parámetros

+### Parámetros -
-
iterable
-
Un objeto iterable , como por ejemplo un {{jsxref("Array")}}. Vea iterable.
-
+- iterable + - : Un objeto iterable , como por ejemplo un {{jsxref("Array")}}. Vea [iterable](/es/docs/Web/JavaScript/Guide/iterable). -

Retorna

+### Retorna -

Una {{jsxref("Promise")}} que se cumple o se rechaza tan pronto como una de las promesas dadas en el argumento iterable se cumple o se rechaza.

+Una {{jsxref("Promise")}} que se cumple o se rechaza tan pronto como una de las promesas dadas en el argumento iterable se cumple o se rechaza. -

Descripción

+## Descripción -

La función race retorna una Promise que se comporta como tal. Se cumple o se rechaza, lo que suceda antes en alguno de sus argumentos (iterable).

+La función `race` retorna una `Promise` que se comporta como tal. Se cumple o se rechaza, lo que suceda antes en alguno de sus argumentos (iterable). -

Ejemplos

+## Ejemplos -

Usando Promise.race – ejemplos con setTimeout

+### Usando `Promise.race` – ejemplos con `setTimeout` -
var p1 = new Promise( (resolve, reject) => {
+```js
+var p1 = new Promise( (resolve, reject) => {
     setTimeout(resolve, 500, "uno");
 });
-var p2 = new Promise( (resolve, reject) => {
+var p2 = new Promise( (resolve, reject) => {
     setTimeout(resolve, 100, "dos");
 });
 
-Promise.race([p1, p2]).then( value => {
+Promise.race([p1, p2]).then( value => {
   console.log(value); // "dos"
   // Ambas se resuelven, pero la p2 antes.
 });
 
   // Ejemplo con un resolve y un reject en el mismo método race.
-var p3 = new Promise( (resolve, reject) => {
+var p3 = new Promise( (resolve, reject) => {
     setTimeout(resolve, 100, "tres");
 });
-var p4 = new Promise( (resolve, reject) => {
+var p4 = new Promise( (resolve, reject) => {
     setTimeout(reject, 500, "cuatro");
 });
 
-Promise.race([p3, p4]).then( value => {
+Promise.race([p3, p4]).then( value => {
   console.log(value); // "tres"
   // p3 es mas rápida, así que se resuelve el race
-}, reason => {
+}, reason => {
   // No es llamado
 });
 
-var p5 = new Promise( (resolve, reject) => {
+var p5 = new Promise( (resolve, reject) => {
     setTimeout(resolve, 500, "cinco");
 });
-var p6 = new Promise( (resolve, reject) => {
+var p6 = new Promise( (resolve, reject) => {
     setTimeout(reject, 100, "seis");
 });
 
-Promise.race([p5, p6]).then( value => {
+Promise.race([p5, p6]).then( value => {
   // No es llamado
-}, reason => {
+}, reason => {
   console.log(reason); // "seis"
   // p6 es mas rápida, así que se rechaza
 });
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónStatusComentar
{{SpecName('ES6', '#sec-promise.race', 'Promise.race')}}{{Spec2('ES6')}}Initial definition in an ECMA standard.
{{SpecName('ESDraft', '#sec-promise.race', 'Promise.race')}}{{Spec2('ESDraft')}}
- -

Compatibilidad entre navegadores

- -

{{Compat}}

- -

Vea también

- -
    -
  • {{jsxref("Promise")}}
  • -
  • {{jsxref("Promise.all()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Status | Comentar | +| -------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------- | +| {{SpecName('ES6', '#sec-promise.race', 'Promise.race')}} | {{Spec2('ES6')}} | Initial definition in an ECMA standard. | +| {{SpecName('ESDraft', '#sec-promise.race', 'Promise.race')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad entre navegadores + +{{Compat}} + +## Vea también + +- {{jsxref("Promise")}} +- {{jsxref("Promise.all()")}} diff --git a/files/es/web/javascript/reference/global_objects/promise/then/index.md b/files/es/web/javascript/reference/global_objects/promise/then/index.md index 297585b10a5634..0c86c48eabaaa6 100644 --- a/files/es/web/javascript/reference/global_objects/promise/then/index.md +++ b/files/es/web/javascript/reference/global_objects/promise/then/index.md @@ -10,84 +10,80 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Promise/then original_slug: Web/JavaScript/Referencia/Objetos_globales/Promise/then --- -
{{JSRef}}
+{{JSRef}} -

El método then() retorna una {{domxref("Promesa")}}. Recibe dos argumentos: funciones callback para los casos de éxito y fallo de Promise.

+El método **`then()`** retorna una {{domxref("Promesa")}}. Recibe dos argumentos: funciones callback para los casos de éxito y fallo de [`Promise`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Promise). -

Nota: Si ambos argumentos son omitidos, o se proveen métodos que no sean funciones, se creará una nueva Promesa sin handlers adicionales, que simplemente adoptan el estado final de la Promesa que entonces es llamado. Si el primer argumento es omitido o se provee una no-función, el nuevo Promise que es creado simplemente adopta el estado cumplido del Promise que entonces es llamado (si se convierte en fulfilled). Si el segundo argument es omitido o se provee una no-función, el nuevo Promise que es creado simplemente adopta el estado de rechazo del Promesa que entonces es llamado (si se convierte en rechazado).

+Nota: Si ambos argumentos son omitidos, o se proveen métodos que no sean funciones, se creará una nueva `Promesa` sin handlers adicionales, que simplemente adoptan el estado final de la `Promesa` que entonces es llamado. Si el primer argumento es omitido o se provee una no-función, el nuevo `Promise` que es creado simplemente adopta el estado cumplido del `Promise` que entonces es llamado (si se convierte en fulfilled). Si el segundo argument es omitido o se provee una no-función, el nuevo `Promise` que es creado simplemente adopta el estado de rechazo del `Promesa` que entonces es llamado (si se convierte en rechazado). -

Sintaxis

+## Sintaxis -
p.then(alCumplir[, enRechazo]);
+    p.then(alCumplir[, enRechazo]);
 
-p.then(function(value) {
-   // cumplimiento
-  }, function(reason) {
-  // rechazo
-});
-
+ p.then(function(value) { + // cumplimiento + }, function(reason) { + // rechazo + }); -

Parámetros

+### Parámetros -

Retorna un Promise el cual es determinado por las funciones input:

+Retorna un `Promise` el cual es determinado por las funciones input: -
    -
  • Si alCumplir o enRechazo arroja un error, o retorna un Promise rechazado, then retorna un Promise rechazado.
  • -
  • Si alCumplir o enRechazo retorna un Promise que resuelve, o retorna cualquier otro valor, then retorna un Promise resuelto.
  • -
+- Si alCumplir o `enRechazo` arroja un error, o retorna un [`Promise`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Promise) rechazado, `then` retorna un `Promise` rechazado. +- Si alCumplir o `enRechazo` retorna un `Promise` que resuelve, o retorna cualquier otro valor, `then` retorna un `Promise `resuelto. -
-
alCumplir {{optional_inline}}
-
Una Función es llamada si la Promesa se cumple. Esta función tiene un argumento, el valor de cumplimiento. Si no es una función, se reemplaza internamente con una función de "Identidad" (devuelve el argumento recibido).
-
enRechazo {{optional_inline}}
-
Una Función es llamada si la Promesa es rechazada. Esta función tiene un argumento, la razón de rechazo. Si no es una función, se reemplaza internamente con una función "Lanzador" (lanza un error que recibió como argumento).
-
+ -

Valor de retorno

+- alCumplir {{optional_inline}} + - : Una [Función](es/docs/Web/JavaScript/Referencia/Objetos_globales/Function) es llamada si la `Promesa` se cumple. Esta función tiene un argumento, el `valor de` cumplimiento. Si no es una función, se reemplaza internamente con una función de "Identidad" (devuelve el argumento recibido). +- `enRechazo` {{optional_inline}} + - : Una [Función](es/docs/Web/JavaScript/Referencia/Objetos_globales/Function) es llamada si la `Promesa `es rechazada. Esta función tiene un argumento, la `razón` de rechazo. Si no es una función, se reemplaza internamente con una función "Lanzador" (lanza un error que recibió como argumento). -

Un Promise en estado pendiente. La función de control (alCumplir o enRechazo) es llamada de forma asíncrona (tan pronto como el stack se vacíe). Después de la invocación de la función de control pueden darse diferentes casos:

+### Valor de retorno -
    -
  • Si se recibe un valor, la Promesa devuelta por el método then queda resuelta adoptando el valor de retorno.
  • -
  • Si se produce un error, la Promesa devuelta por el método then es rechazada, adoptando el error como su valor.
  • -
  • Si se devuelve una Promesa ya resuelta, la Promesa devuelta por el método then queda resuelta adoptando el valor de la promesa anterior.
  • -
  • Si se devuelve una Promesa con un objeto pendiente de resolver, la resolución o rechazo devueltos por then quedará a esperas de que la Promesa establecida para la función de control quede resuelta. Además, el valor de la Promesa en estado pendiente será el mismo que el valor devuelto por el controlador.
  • -
+Un [`Promise`](/es/docs/Web/JavaScript/Referencia/Objetos_globales/Promise) en estado **pendiente.** La función de control (`alCumplir o enRechazo)` es llamada de forma **asíncrona** (tan pronto como el stack se vacíe). Después de la invocación de la función de control pueden darse diferentes casos: -

Veamos un ejemplo para demostrar la asincronía del método then.

+- Si se recibe un valor, la Promesa devuelta por el método `then` queda resuelta adoptando el valor de retorno. +- Si se produce un error, la Promesa devuelta por el método `then` es rechazada, adoptando el error como su valor. +- Si se devuelve una Promesa ya resuelta, la Promesa devuelta por el método `then` queda resuelta adoptando el valor de la promesa anterior. +- Si se devuelve una Promesa con un objeto **pendiente** de resolver, la resolución o rechazo devueltos por `then` quedará a esperas de que la Promesa establecida para la función de control quede resuelta. Además, el valor de la Promesa en estado pendiente será el mismo que el valor devuelto por el controlador. -
// al usar una promesa revuelta, el bloque 'then' se lanzará automáticamente,
-// pero sus funciones controladoras se lanzarán asíncronamente,
-// como demuestran los console.logs
-var promResuelta = Promise.resolve(33);
+Veamos un ejemplo para demostrar la asincronía del método `then`.
 
-var thenProm = promResuelta.then(función(valor){
-    console.log("ésto será invocado cuando acabe el stack principal. El valor recibido y devuelto es: " + valor);
-    return valor;
-});
-// imprimimos al momento el valor de thenProm()
-console.log(thenProm);
+    // al usar una promesa revuelta, el bloque 'then' se lanzará automáticamente,
+    // pero sus funciones controladoras se lanzarán asíncronamente,
+    // como demuestran los console.logs
+    var promResuelta = Promise.resolve(33);
 
-// usando setTimeout podemos posponer la ejecución de una función al momento en el que el stack quede vacío.
-setTimeout(función(){
+    var thenProm = promResuelta.then(función(valor){
+        console.log("ésto será invocado cuando acabe el stack principal. El valor recibido y devuelto es: " + valor);
+        return valor;
+    });
+    // imprimimos al momento el valor de thenProm()
     console.log(thenProm);
-});
 
+    // usando setTimeout podemos posponer la ejecución de una función al momento en el que el stack quede vacío.
+    setTimeout(función(){
+        console.log(thenProm);
+    });
 
-// logs, en orden:
-// Promise {[[EstadoPromise¡]]: "pendiente", [[ValorPromise]]: undefined}
-// "ésto será invocado cuando acabe el stack principal. El valor recibido y devuelto es: "33"
-// Promise {[[EstadoPromise]]: "resuelta", [[ValorPromise]]: 33}
-

Descripción

+ // logs, en orden: + // Promise {[[EstadoPromise¡]]: "pendiente", [[ValorPromise]]: undefined} + // "ésto será invocado cuando acabe el stack principal. El valor recibido y devuelto es: "33" + // Promise {[[EstadoPromise]]: "resuelta", [[ValorPromise]]: 33} -

Ya que los métodos then y {{jsxref("Promise.prototype.catch()")}} devuelven promesas, pueden ser encadenados — una operación llamada composición.

+## Descripción -

Ejemplos

+Ya que los métodos `then` y {{jsxref("Promise.prototype.catch()")}} devuelven promesas, pueden ser encadenados — una operación llamada _composición_. -

Usando el metodo then

+## Ejemplos -
var p1 = new Promise(function(resolve, reject) {
+### Usando el metodo `then`
+
+```js
+var p1 = new Promise(function(resolve, reject) {
   resolve('Success!');
   // or
   // reject ("Error!");
@@ -98,15 +94,16 @@ p1.then(function(value) {
 }, function(reason) {
   console.log(reason); // Error!
 });
-
+``` -

Encadenamiento

+### Encadenamiento -

El método then devuelve una Promise que permite encadenar métodos.

+El método `then` devuelve una `Promise` que permite encadenar métodos. -

Puedes pasar una lambda a then y si devuelve una promesa, una Promise equivalente será expuesta al then subsecuente en la cadena de métodos. El fragmento incluido debajo simula un código asíncrono mediante la función setTimeout.

+Puedes pasar una lambda a `then` y si devuelve una promesa, una `Promise` equivalente será expuesta al `then` subsecuente en la cadena de métodos. El fragmento incluido debajo simula un código asíncrono mediante la función `setTimeout`. -
Promise.resolve('foo')
+```js
+Promise.resolve('foo')
   // 1. Recibe "foo", concatena "bar" con él, y resuelve la cadena con el siguiente 'then'
   .then(función(hilo) {
     return new Promise(function(resolve, reject) {
@@ -137,11 +134,13 @@ p1.then(function(value) {
     // Observemos que `string` no incluye el trozo 'baz' en éste punto. Ésto ocurre
     // porque lo hemos contruido para que ocurra asíncronamente con una función setTimeout
     console.log(hilo);
-});
+}); +``` -

Cuando un valor sencillamente se devuelve desde un lambda then , devolverá un Promise.resolve(<valor devuelto por el controlador que haya sido invocado>).

+Cuando un valor sencillamente se devuelve desde un lambda `then` , devolverá un `Promise.resolve()`. -
var p2 = nueva Promise(function(resolver, rechazar) {
+```js
+var p2 = nueva Promise(function(resolver, rechazar) {
   resolver(1);
 });
 
@@ -155,50 +154,56 @@ p2.then(función(valor) {
 p2.then(función(valor) {
   console.log(valor); // 1
 });
-
+``` -

Una llamada a then devolverá una promesa rechazada si la función lanza un error o devuelve una Promise rechazada.

+Una llamada a `then` devolverá una promesa rechazada si la función lanza un error o devuelve una Promise rechazada. -
Promise.resolve()
-  .then( () => {
+```js
+Promise.resolve()
+  .then( () => {
     // Hace que .then() devuelva una promera rechazada
     throw new Error('Oh no!');
   })
-  .then( () => {
+  .then( () => {
     console.log( 'No invocada.' );
-  }, error => {
+  }, error => {
     console.error( 'Función de rechazo llamada: ', error );
-});
+}); +``` -

En cualquier otro caso, una Promise en resolución será devuelta. El el siguiente ejemplo, el primer then() devolverá un 42 dentro de una Promise en resolución, aunque la Promise de la cadena fue rechazada.

+En cualquier otro caso, una Promise en resolución será devuelta. El el siguiente ejemplo, el primer `then()` devolverá un `42` dentro de una Promise en resolución, aunque la Promise de la cadena fue rechazada. -
Promise.reject()
-  .then( () => 99, () => 42 ) // enRechazo devuelve 42, que está dentro de una Promise en resolución
-  .then( respuesta => console.log( 'Resuelta con ' + respuesta ) ); // Resuelta con 42
+```js +Promise.reject() + .then( () => 99, () => 42 ) // enRechazo devuelve 42, que está dentro de una Promise en resolución + .then( respuesta => console.log( 'Resuelta con ' + respuesta ) ); // Resuelta con 42 +``` -

En la práctica, suele ser preferible capturar promesas rechazadas en lugar de utilizar la sintaxis de dos casos de then, como demostramos abajo.

+En la práctica, suele ser preferible capturar promesas rechazadas en lugar de utilizar la sintaxis de dos casos de `then,` como demostramos abajo. -
Promise.resolve()
-  .then( () => {
+```js
+Promise.resolve()
+  .then( () => {
     // Hace que .then() devuelva una promesa rechazada
     throw new Error('Oh no!');
   })
-  .catch( error => {
+  .catch( error => {
     console.error( 'función enRechazo invocada: ', error );
   })
-  .then( () => {
+  .then( () => {
     console.log( "Siempre soy invocada, incluso si la promesa del then previo es rechazada" );
-  });
+ }); +``` -


- También puedes usar encadenamiento para implementar una función con una API basada en promesas, sobre una función del mismo tipo.

+También puedes usar encadenamiento para implementar una función con una API basada en promesas, sobre una función del mismo tipo. -
function traer_datos_actuales() {
-  // La función fetch() de la API devuelve una Promesa. Esta función
+```js
+function traer_datos_actuales() {
+  // La función fetch() de la API devuelve una Promesa. Esta función
   // expone una API similar, pero el valor de cumplimiento
   // de la Promesa de esta función tiene más tareas
   // implementadas sobre ella.
-  return fetch('datos_actuales.json').then((response) => {
+  return fetch('datos_actuales.json').then((response) => {
     if (response.headers.get('content-type') != 'application/json') {
       throw new TypeError();
     }
@@ -208,11 +213,12 @@ p2.then(función(valor) {
               // fetch_datos_actuales().then()
   });
 }
-
+``` -

Si alCumplir devuelve una promesa, el valor de retorno de then será resuelto o rechazado por la promesa.

+Si `alCumplir` devuelve una promesa, el valor de retorno de `then` será resuelto o rechazado por la promesa. -
function resolverDespues(resolver, reject) {
+```js
+function resolverDespues(resolver, reject) {
   setTimeout(función () {
     resolver(10);
   }, 1000);
@@ -245,59 +251,40 @@ p3.then(funcion(v) {
 }, funcion(e) {
   console.log('rechazada', e); // "rechazada", 'Error'
 });
-
- -

window.setImmediate estilo polyfill basado en promesas

- -

Usar un método {{jsxref("Function.prototype.bind()")}}Reflect.apply ({{jsxref("Reflect.apply()")}}) para crear un (non-cancellable) setImmediate-style function.

- -
const nextTick = (() => {
-  const noop = () => {}; // literally
-  const nextTickPromise = () => Promise.resolve().then(noop);
-
-  const rfab = Reflect.apply.bind; // (thisArg, fn, thisArg, [...args])
-  const nextTick = (fn, ...args) => (
-    fn !== undefined
-    ? Promise.resolve(args).then(rfab(null, fn, null))
-    : nextTickPromise(),
-    undefined
-  );
-  nextTick.ntp = nextTickPromise;
-
-  return nextTick;
-})();
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES2015', '#sec-promise.prototype.then', 'Promise.prototype.then')}}{{Spec2('ES2015')}}Definición inicial en el estándar ECMA.
{{SpecName('ESDraft', '#sec-promise.prototype.then', 'Promise.prototype.then')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en navegador

- - - -

{{Compat("javascript/promise","Promise.prototype.then")}}

- -

Ver también

- -
    -
  • {{jsxref("Promise")}}
  • -
  • {{jsxref("Promise.prototype.catch()")}}
  • -
+``` + +### [`window.setImmediate`](/es/docs/Web/API/Window/setImmediate "This method is used to break up long running operations and run a callback function immediately after the browser has completed other operations such as events and display updates.") estilo polyfill basado en promesas + +Usar un método {{jsxref("Function.prototype.bind()")}}`Reflect.apply` ({{jsxref("Reflect.apply()")}}) para crear un (non-cancellable) setImmediate-style function. + + const nextTick = (() => { + const noop = () => {}; // literally + const nextTickPromise = () => Promise.resolve().then(noop); + + const rfab = Reflect.apply.bind; // (thisArg, fn, thisArg, [...args]) + const nextTick = (fn, ...args) => ( + fn !== undefined + ? Promise.resolve(args).then(rfab(null, fn, null)) + : nextTickPromise(), + undefined + ); + nextTick.ntp = nextTickPromise; + + return nextTick; + })(); + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | --------------------------------------- | +| {{SpecName('ES2015', '#sec-promise.prototype.then', 'Promise.prototype.then')}} | {{Spec2('ES2015')}} | Definición inicial en el estándar ECMA. | +| {{SpecName('ESDraft', '#sec-promise.prototype.then', 'Promise.prototype.then')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en navegador + +{{Compat("javascript/promise","Promise.prototype.then")}} + +## Ver también + +- {{jsxref("Promise")}} +- {{jsxref("Promise.prototype.catch()")}} diff --git a/files/es/web/javascript/reference/global_objects/proxy/proxy/getownpropertydescriptor/index.md b/files/es/web/javascript/reference/global_objects/proxy/proxy/getownpropertydescriptor/index.md index c8aea38506eb54..53287da15be3df 100644 --- a/files/es/web/javascript/reference/global_objects/proxy/proxy/getownpropertydescriptor/index.md +++ b/files/es/web/javascript/reference/global_objects/proxy/proxy/getownpropertydescriptor/index.md @@ -9,64 +9,58 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/getOwnPropertyDescriptor original_slug: Web/JavaScript/Reference/Global_Objects/Proxy/handler/getOwnPropertyDescriptor --- -
{{JSRef}}
+{{JSRef}}El método **`handler.getOwnPropertyDescriptor()`** captura {{jsxref("Object.getOwnPropertyDescriptor()")}}. -
El método handler.getOwnPropertyDescriptor() captura {{jsxref("Object.getOwnPropertyDescriptor()")}}.
+## Sintaxis -

Sintaxis

- -
var p = new Proxy(target, {
+```js
+var p = new Proxy(target, {
   getOwnPropertyDescriptor: function(target, prop) {
   }
 });
-
+``` -

Parámetros

+### Parámetros -

El método getOwnPropertyDescriptor recibe los siguiente parámetros. this está asociado al handler del proxy.

+El método `getOwnPropertyDescriptor` recibe los siguiente parámetros. `this` está asociado al handler del proxy. -
-
target
-
El objeto destino.
-
prop
-
El nombre de la propiedad cuya descripción ha de ser devuelta.
-
+- `target` + - : El objeto destino. +- `prop` + - : El nombre de la propiedad cuya descripción ha de ser devuelta. -

Valor Devuelto

+### Valor Devuelto -

El método getOwnPropertyDescriptor debe devolver un objeto o undefined.

+El método `getOwnPropertyDescriptor` debe devolver un objeto o `undefined`. -

Descripción

+## Descripción -

El método handler.getOwnPropertyDescriptor() captura {{jsxref("Object.getOwnPropertyDescriptor()")}}.

+El método **`handler.getOwnPropertyDescriptor()`** captura {{jsxref("Object.getOwnPropertyDescriptor()")}}. -

Intercepciones

+### Intercepciones -

Este método intercepta las siguientes operaciones:

+Este método intercepta las siguientes operaciones: -
    -
  • {{jsxref("Object.getOwnPropertyDescriptor()")}}
  • -
  • {{jsxref("Reflect.getOwnPropertyDescriptor()")}}
  • -
+- {{jsxref("Object.getOwnPropertyDescriptor()")}} +- {{jsxref("Reflect.getOwnPropertyDescriptor()")}} -

Invariantes

+### Invariantes -

Si los siguientes invariantes son violados, el proxy lanzará {{jsxref("TypeError")}}:

+Si los siguientes invariantes son violados, el proxy lanzará {{jsxref("TypeError")}}: -
    -
  • getOwnPropertyDescriptor debe devolver un objeto o undefined.
  • -
  • No puede devolver que una propiedad no existe si está presente en el objeto como no configurable.
  • -
  • No puede devolver que una propiedad no existe si esta está presente como una propiedad propia del objeto destino y el objeto no es extensible.
  • -
  • No puede devolver que una propuedad existe, si esta no está presente en el objeto destino y el objeto no es extensible.
  • -
  • No puede devolver que una propiedad es no configurable si esta no existe en el objeto destino o si existe pero sí es configurable.
  • -
  • El resultado de Object.getOwnPropertyDescriptor(target) puede ser aplicado al objeto destino mediante Object.defineProperty y no lanzará ningún tipo de excepción.
  • -
+- `getOwnPropertyDescriptor` debe devolver un objeto o `undefined`. +- No puede devolver que una propiedad no existe si está presente en el objeto como no configurable. +- No puede devolver que una propiedad no existe si esta está presente como una propiedad propia del objeto destino y el objeto no es extensible. +- No puede devolver que una propuedad existe, si esta no está presente en el objeto destino y el objeto no es extensible. +- No puede devolver que una propiedad es no configurable si esta no existe en el objeto destino o si existe pero sí es configurable. +- El resultado de `Object.getOwnPropertyDescriptor(target)` puede ser aplicado al objeto destino mediante `Object.defineProperty `y no lanzará ningún tipo de excepción. -

Ejemplos

+## Ejemplos -

El siguiente código captura {{jsxref("Object.getOwnPropertyDescriptor()")}}.

+El siguiente código captura {{jsxref("Object.getOwnPropertyDescriptor()")}}. -
var p = new Proxy({ a: 20}, {
+```js
+var p = new Proxy({ a: 20}, {
   getOwnPropertyDescriptor: function(target, prop) {
     console.log('called: ' + prop);
     return { configurable: true, enumerable: true, value: 10 };
@@ -75,11 +69,12 @@ original_slug: Web/JavaScript/Reference/Global_Objects/Proxy/handler/getOwnPrope
 
 console.log(Object.getOwnPropertyDescriptor(p, 'a').value); // "called: a"
                                                             // 10
-
+``` -

El siguiente código viola uno de los invariantes definidos previamente.

+El siguiente código viola uno de los invariantes definidos previamente. -
var obj = { a: 10 };
+```js
+var obj = { a: 10 };
 Object.preventExtensions(obj);
 var p = new Proxy(obj, {
   getOwnPropertyDescriptor: function(target, prop) {
@@ -88,43 +83,22 @@ var p = new Proxy(obj, {
 });
 
 Object.getOwnPropertyDescriptor(p, 'a'); // TypeError is thrown
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-getownproperty-p', '[[GetOwnProperty]]')}}{{Spec2('ES2015')}}Definición Inicial.
{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-getownproperty-p', '[[GetOwnProperty]]')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con buscadores

- -
- - -

{{Compat("javascript.builtins.Proxy.handler.getOwnPropertyDescriptor")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Proxy")}}
  • -
  • {{jsxref("Proxy.handler", "handler")}}
  • -
  • {{jsxref("Object.getOwnPropertyDescriptor()")}}
  • -
  • {{jsxref("Reflect.getOwnPropertyDescriptor()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots-getownproperty-p', '[[GetOwnProperty]]')}} | {{Spec2('ES2015')}} | Definición Inicial. | +| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots-getownproperty-p', '[[GetOwnProperty]]')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con buscadores + +{{Compat("javascript.builtins.Proxy.handler.getOwnPropertyDescriptor")}} + +## Ver también + +- {{jsxref("Proxy")}} +- {{jsxref("Proxy.handler", "handler")}} +- {{jsxref("Object.getOwnPropertyDescriptor()")}} +- {{jsxref("Reflect.getOwnPropertyDescriptor()")}} diff --git a/files/es/web/javascript/reference/global_objects/proxy/proxy/index.md b/files/es/web/javascript/reference/global_objects/proxy/proxy/index.md index 695cf4ce223e4e..bea08ce8068f38 100644 --- a/files/es/web/javascript/reference/global_objects/proxy/proxy/index.md +++ b/files/es/web/javascript/reference/global_objects/proxy/proxy/index.md @@ -11,75 +11,54 @@ translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/Proxy translation_of_original: Web/JavaScript/Reference/Global_Objects/Proxy/handler original_slug: Web/JavaScript/Reference/Global_Objects/Proxy/handler --- -
{{JSRef}}
+{{JSRef}} -

The proxy's handler object is a placeholder object which contains traps for {{jsxref("Proxy", "proxies", "", 1)}}.

+The proxy's handler object is a placeholder object which contains traps for {{jsxref("Proxy", "proxies", "", 1)}}. -

Methods

+## Methods -

All traps are optional. If a trap has not been defined, the default behavior is to forward the operation to the target.

+All traps are optional. If a trap has not been defined, the default behavior is to forward the operation to the target. -
-
{{jsxref("Global_Objects/Proxy/handler/getPrototypeOf", "handler.getPrototypeOf()")}}
-
A trap for {{jsxref("Object.getPrototypeOf")}}.
-
{{jsxref("Global_Objects/Proxy/handler/setPrototypeOf", "handler.setPrototypeOf()")}}
-
A trap for {{jsxref("Object.setPrototypeOf")}}.
-
{{jsxref("Global_Objects/Proxy/handler/isExtensible", "handler.isExtensible()")}}
-
A trap for {{jsxref("Object.isExtensible")}}.
-
{{jsxref("Global_Objects/Proxy/handler/preventExtensions", "handler.preventExtensions()")}}
-
A trap for {{jsxref("Object.preventExtensions")}}.
-
{{jsxref("Global_Objects/Proxy/handler/getOwnPropertyDescriptor", "handler.getOwnPropertyDescriptor()")}}
-
A trap for {{jsxref("Object.getOwnPropertyDescriptor")}}.
-
{{jsxref("Global_Objects/Proxy/handler/defineProperty", "handler.defineProperty()")}}
-
A trap for {{jsxref("Object.defineProperty")}}.
-
{{jsxref("Global_Objects/Proxy/handler/has", "handler.has()")}}
-
A trap for the {{jsxref("Operators/in", "in")}} operator.
-
{{jsxref("Global_Objects/Proxy/handler/get", "handler.get()")}}
-
A trap for getting property values.
-
{{jsxref("Global_Objects/Proxy/handler/set", "handler.set()")}}
-
A trap for setting property values.
-
{{jsxref("Global_Objects/Proxy/handler/deleteProperty", "handler.deleteProperty()")}}
-
A trap for the {{jsxref("Operators/delete", "delete")}} operator.
-
{{jsxref("Global_Objects/Proxy/handler/ownKeys", "handler.ownKeys()")}}
-
A trap for {{jsxref("Object.getOwnPropertyNames")}} and {{jsxref("Object.getOwnPropertySymbols")}}.
-
{{jsxref("Global_Objects/Proxy/handler/apply", "handler.apply()")}}
-
A trap for a function call.
-
{{jsxref("Global_Objects/Proxy/handler/construct", "handler.construct()")}}
-
A trap for the {{jsxref("Operators/new", "new")}} operator.
-
+- {{jsxref("Global_Objects/Proxy/handler/getPrototypeOf", "handler.getPrototypeOf()")}} + - : A trap for {{jsxref("Object.getPrototypeOf")}}. +- {{jsxref("Global_Objects/Proxy/handler/setPrototypeOf", "handler.setPrototypeOf()")}} + - : A trap for {{jsxref("Object.setPrototypeOf")}}. +- {{jsxref("Global_Objects/Proxy/handler/isExtensible", "handler.isExtensible()")}} + - : A trap for {{jsxref("Object.isExtensible")}}. +- {{jsxref("Global_Objects/Proxy/handler/preventExtensions", "handler.preventExtensions()")}} + - : A trap for {{jsxref("Object.preventExtensions")}}. +- {{jsxref("Global_Objects/Proxy/handler/getOwnPropertyDescriptor", "handler.getOwnPropertyDescriptor()")}} + - : A trap for {{jsxref("Object.getOwnPropertyDescriptor")}}. +- {{jsxref("Global_Objects/Proxy/handler/defineProperty", "handler.defineProperty()")}} + - : A trap for {{jsxref("Object.defineProperty")}}. +- {{jsxref("Global_Objects/Proxy/handler/has", "handler.has()")}} + - : A trap for the {{jsxref("Operators/in", "in")}} operator. +- {{jsxref("Global_Objects/Proxy/handler/get", "handler.get()")}} + - : A trap for getting property values. +- {{jsxref("Global_Objects/Proxy/handler/set", "handler.set()")}} + - : A trap for setting property values. +- {{jsxref("Global_Objects/Proxy/handler/deleteProperty", "handler.deleteProperty()")}} + - : A trap for the {{jsxref("Operators/delete", "delete")}} operator. +- {{jsxref("Global_Objects/Proxy/handler/ownKeys", "handler.ownKeys()")}} + - : A trap for {{jsxref("Object.getOwnPropertyNames")}} and {{jsxref("Object.getOwnPropertySymbols")}}. +- {{jsxref("Global_Objects/Proxy/handler/apply", "handler.apply()")}} + - : A trap for a function call. +- {{jsxref("Global_Objects/Proxy/handler/construct", "handler.construct()")}} + - : A trap for the {{jsxref("Operators/new", "new")}} operator. -

Some non-standard traps are obsolete and have been removed.

+Some non-standard traps are [obsolete and have been removed](/es/docs/Web/JavaScript/Reference/Deprecated_and_obsolete_features#Proxy). -

Specifications

+## Specifications - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}}{{Spec2('ESDraft')}}The enumerate handler has been removed.
+| Specification | Status | Comment | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ----------------------------------------- | +| {{SpecName('ES2015', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}} | {{Spec2('ES2015')}} | Initial definition. | +| {{SpecName('ESDraft', '#sec-proxy-object-internal-methods-and-internal-slots', 'Proxy Object Internal Methods and Internal Slots')}} | {{Spec2('ESDraft')}} | The `enumerate` handler has been removed. | -

Browser compatibility

+## Browser compatibility +{{Compat("javascript.builtins.Proxy.handler")}} +## See also -

{{Compat("javascript.builtins.Proxy.handler")}}

- -

See also

- -
    -
  • {{jsxref("Proxy")}}
  • -
+- {{jsxref("Proxy")}} diff --git a/files/es/web/javascript/reference/global_objects/referenceerror/index.md b/files/es/web/javascript/reference/global_objects/referenceerror/index.md index 0de1694249fd5f..a83a861785324d 100644 --- a/files/es/web/javascript/reference/global_objects/referenceerror/index.md +++ b/files/es/web/javascript/reference/global_objects/referenceerror/index.md @@ -12,39 +12,36 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/ReferenceError original_slug: Web/JavaScript/Referencia/Objetos_globales/ReferenceError --- -
{{JSRef("Objetos_globales", "ReferenceError")}}
+{{JSRef("Objetos_globales", "ReferenceError")}} -

El objeto ReferenceError representa un error cuando se hace referencia a una variable inexistente.

+El objeto **`ReferenceError`** representa un error cuando se hace referencia a una variable inexistente. -

Constructor

+## Constructor -
-
ReferenceError()
-
Crea un nuevo objeto ReferenceError.
-
+- [`ReferenceError()`](/es/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError/ReferenceError) + - : Crea un nuevo objeto `ReferenceError`. -

Propiedades de la instancia

+## Propiedades de la instancia -
-
{{jsxref("Error.prototype.message", "ReferenceError.prototype.message")}}
-
Mensaje de error. Aunque ECMA-262 especifica que {{jsxref("ReferenceError")}} debe proporcionar su propia propiedad message, en SpiderMonkey, hereda {{jsxref("Error.prototype.message")}}.
-
{{jsxref("Error.prototype.name", "ReferenceError.prototype.name")}}
-
Nombre del error. Heredado de {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.fileName", "ReferenceError.prototype.fileName")}}
-
Ruta al archivo que generó este error. Heredado de {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.lineNumber", "ReferenceError.prototype.lineNumber")}}
-
Número de línea en el archivo que generó este error. Heredado de {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.columnNumber", "ReferenceError.prototype.columnNumber")}}
-
Número de columna en la línea que generó este error. Heredado de {{jsxref("Error")}}.
-
{{jsxref("Error.prototype.stack", "ReferenceError.prototype.stack")}}
-
Seguimiento de la pila. Heredado de {{jsxref("Error")}}.
-
+- {{jsxref("Error.prototype.message", "ReferenceError.prototype.message")}} + - : Mensaje de error. Aunque ECMA-262 especifica que {{jsxref("ReferenceError")}} debe proporcionar su propia propiedad `message`, en [`SpiderMonkey`](/es/docs/Mozilla/Projects/SpiderMonkey), hereda {{jsxref("Error.prototype.message")}}. +- {{jsxref("Error.prototype.name", "ReferenceError.prototype.name")}} + - : Nombre del error. Heredado de {{jsxref("Error")}}. +- {{jsxref("Error.prototype.fileName", "ReferenceError.prototype.fileName")}} + - : Ruta al archivo que generó este error. Heredado de {{jsxref("Error")}}. +- {{jsxref("Error.prototype.lineNumber", "ReferenceError.prototype.lineNumber")}} + - : Número de línea en el archivo que generó este error. Heredado de {{jsxref("Error")}}. +- {{jsxref("Error.prototype.columnNumber", "ReferenceError.prototype.columnNumber")}} + - : Número de columna en la línea que generó este error. Heredado de {{jsxref("Error")}}. +- {{jsxref("Error.prototype.stack", "ReferenceError.prototype.stack")}} + - : Seguimiento de la pila. Heredado de {{jsxref("Error")}}. -

Ejemplos

+## Ejemplos -

Capturar un ReferenceError

+### Capturar un `ReferenceError` -
try {
+```js
+try {
   let a = undefinedVariable
 } catch (e) {
   console.log(e instanceof ReferenceError)  // true
@@ -55,11 +52,12 @@ original_slug: Web/JavaScript/Referencia/Objetos_globales/ReferenceError
   console.log(e.columnNumber)               // 6
   console.log(e.stack)                      // "@Scratchpad/2:2:7\n"
 }
-
+``` -

Crear un ReferenceError

+### Crear un `ReferenceError` -
try {
+```js
+try {
   throw new ReferenceError('Hola', 'someFile.js', 10)
 } catch (e) {
   console.log(e instanceof ReferenceError)  // true
@@ -70,31 +68,18 @@ original_slug: Web/JavaScript/Referencia/Objetos_globales/ReferenceError
   console.log(e.columnNumber)               // 0
   console.log(e.stack)                      // "@Scratchpad/2:2:9\n"
 }
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-native-error-types-used-in-this-standard-referenceerror', 'ReferenceError')}}
+| Especificación | +| -------------------------------------------------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-native-error-types-used-in-this-standard-referenceerror', 'ReferenceError')}} | -

Compatibilidad del navegador

+## Compatibilidad del navegador -
+{{Compat("javascript.builtins.ReferenceError")}} +## Ve también -

{{Compat("javascript.builtins.ReferenceError")}}

-
- -

Ve también

- -
    -
  • {{jsxref("Error")}}
  • -
+- {{jsxref("Error")}} diff --git a/files/es/web/javascript/reference/global_objects/reflect/index.md b/files/es/web/javascript/reference/global_objects/reflect/index.md index 1da00b5655b32a..c4254475a4a9bb 100644 --- a/files/es/web/javascript/reference/global_objects/reflect/index.md +++ b/files/es/web/javascript/reference/global_objects/reflect/index.md @@ -10,76 +10,57 @@ tags: - TopicStub translation_of: Web/JavaScript/Reference/Global_Objects/Reflect --- -
{{JSRef}}
+{{JSRef}} -

Reflect es un objecto incorporado que proporciona metodos para interceptar operaciones de javascript. Los métodos son los mismos que los de proxy handlers. Reflect no es un objeto de funciones y por lo tanto no puede ser construido.

+**Reflect** es un objecto incorporado que proporciona metodos para interceptar operaciones de javascript. Los métodos son los mismos que los de [proxy handlers](/es/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler). `Reflect` no es un objeto de funciones y por lo tanto no puede ser construido. -

Descripción

+## Descripción -

A diferencia de la mayoria de los objetos globales, Reflect no es un constructor. No puede ser instanciado con un operador new o invocando el objecto Reflect como una función. Todas las propiedades y métodos de Reflect son estáticos (igual que los del objeto {{jsxref("Math")}}).

+A diferencia de la mayoria de los objetos globales, `Reflect` no es un constructor. No puede ser instanciado con un [operador](/es/docs/Web/JavaScript/Reference/Operators/new) [`new` ](/es/docs/Web/JavaScript/Reference/Operators/new)o invocando el objecto `Reflect` como una función. Todas las propiedades y métodos de `Reflect` son estáticos (igual que los del objeto {{jsxref("Math")}}). -

Métodos

+## Métodos -

El objeto Reflect proporciona las siguientes funciones estáticas con los mismos nombres de los métodos de proxy handler. Algunos de estos métodos son correspondientes a los métodos de {{jsxref("Object")}}.

+El objeto `Reflect` proporciona las siguientes funciones estáticas con los mismos nombres de los métodos de [proxy handler](/es/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler). Algunos de estos métodos son correspondientes a los métodos de {{jsxref("Object")}}. -
-
{{jsxref("Reflect.apply()")}}
-
Calls a target function with arguments as specified by the args parameter. See also {{jsxref("Function.prototype.apply()")}}.
-
{{jsxref("Reflect.construct()")}}
-
The new operator as a function. Equivalent to calling new target(...args).
-
{{jsxref("Reflect.defineProperty()")}}
-
Similar to {{jsxref("Object.defineProperty()")}}. Returns a {{jsxref("Boolean")}}.
-
{{jsxref("Reflect.deleteProperty()")}}
-
The delete operator as a function. Equivalent to calling delete target[name].
-
{{jsxref("Reflect.get()")}}
-
A function that returns the value of properties.
-
{{jsxref("Reflect.getOwnPropertyDescriptor()")}}
-
Similar to {{jsxref("Object.getOwnPropertyDescriptor()")}}. Returns a property descriptor of the given property if it exists on the object, {{jsxref("undefined")}} otherwise.
-
{{jsxref("Reflect.getPrototypeOf()")}}
-
Same as {{jsxref("Object.getPrototypeOf()")}}.
-
{{jsxref("Reflect.has()")}}
-
The in operator as function. Returns a boolean indicating whether an own or inherited property exists.
-
{{jsxref("Reflect.isExtensible()")}}
-
Same as {{jsxref("Object.isExtensible()")}}.
-
{{jsxref("Reflect.ownKeys()")}}
-
Returns an array of the target object's own (not inherited) property keys.
-
{{jsxref("Reflect.preventExtensions()")}}
-
Similar to {{jsxref("Object.preventExtensions()")}}. Returns a {{jsxref("Boolean")}}.
-
{{jsxref("Reflect.set()")}}
-
A function that assigns values to properties. Returns a {{jsxref("Boolean")}} that is true if the update was successful.
-
{{jsxref("Reflect.setPrototypeOf()")}}
-
A function that sets the prototype of an object.
-
+- {{jsxref("Reflect.apply()")}} + - : Calls a target function with arguments as specified by the `args` parameter. See also {{jsxref("Function.prototype.apply()")}}. +- {{jsxref("Reflect.construct()")}} + - : The [`new` operator](/es/docs/Web/JavaScript/Reference/Operators/new) as a function. Equivalent to calling `new target(...args)`. +- {{jsxref("Reflect.defineProperty()")}} + - : Similar to {{jsxref("Object.defineProperty()")}}. Returns a {{jsxref("Boolean")}}. +- {{jsxref("Reflect.deleteProperty()")}} + - : The [`delete` operator](/es/docs/Web/JavaScript/Reference/Operators/delete) as a function. Equivalent to calling `delete target[name]`. +- {{jsxref("Reflect.get()")}} + - : A function that returns the value of properties. +- {{jsxref("Reflect.getOwnPropertyDescriptor()")}} + - : Similar to {{jsxref("Object.getOwnPropertyDescriptor()")}}. Returns a property descriptor of the given property if it exists on the object, {{jsxref("undefined")}} otherwise. +- {{jsxref("Reflect.getPrototypeOf()")}} + - : Same as {{jsxref("Object.getPrototypeOf()")}}. +- {{jsxref("Reflect.has()")}} + - : The [`in` operator](/es/docs/Web/JavaScript/Reference/Operators/in) as function. Returns a boolean indicating whether an own or inherited property exists. +- {{jsxref("Reflect.isExtensible()")}} + - : Same as {{jsxref("Object.isExtensible()")}}. +- {{jsxref("Reflect.ownKeys()")}} + - : Returns an array of the target object's own (not inherited) property keys. +- {{jsxref("Reflect.preventExtensions()")}} + - : Similar to {{jsxref("Object.preventExtensions()")}}. Returns a {{jsxref("Boolean")}}. +- {{jsxref("Reflect.set()")}} + - : A function that assigns values to properties. Returns a {{jsxref("Boolean")}} that is `true` if the update was successful. +- {{jsxref("Reflect.setPrototypeOf()")}} + - : A function that sets the prototype of an object. -

Especificaciones

+## Especificaciones - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-reflect-object', 'Reflect')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-reflect-object', 'Reflect')}}{{Spec2('ESDraft')}}Reflect.enumerate has been removed.
+| Specification | Status | Comment | +| ---------------------------------------------------------------------------- | ---------------------------- | ----------------------------------- | +| {{SpecName('ES2015', '#sec-reflect-object', 'Reflect')}} | {{Spec2('ES2015')}} | Initial definition. | +| {{SpecName('ESDraft', '#sec-reflect-object', 'Reflect')}} | {{Spec2('ESDraft')}} | Reflect.enumerate has been removed. | -

Compatibilidad en Navegadores

+## Compatibilidad en Navegadores {{Compat("javascript.builtins.Reflect")}} -

También ver

+## También ver -
    -
  • The {{jsxref("Proxy")}} global object.
  • -
  • The {{jsxref("Proxy.handler", "handler")}} object.
  • -
+- The {{jsxref("Proxy")}} global object. +- The {{jsxref("Proxy.handler", "handler")}} object. diff --git a/files/es/web/javascript/reference/global_objects/reflect/set/index.md b/files/es/web/javascript/reference/global_objects/reflect/set/index.md index 09e1f70d461893..613bd3d128b246 100644 --- a/files/es/web/javascript/reference/global_objects/reflect/set/index.md +++ b/files/es/web/javascript/reference/global_objects/reflect/set/index.md @@ -3,45 +3,43 @@ title: Reflect.set() slug: Web/JavaScript/Reference/Global_Objects/Reflect/set translation_of: Web/JavaScript/Reference/Global_Objects/Reflect/set --- -
{{JSRef}}
+{{JSRef}} -

El método estático Reflect.set() funciona igual que asignar una propiedad en un objeto.

+El método estático **`Reflect`\*\***`.set()`\*\* funciona igual que asignar una propiedad en un objeto. -

Sintaxis

+## Sintaxis -
Reflect.set(target, propertyKey, value[, receiver])
-
+ Reflect.set(target, propertyKey, value[, receiver]) -

Parámetros

+### Parámetros -
-
target
-
El objeto en el cual se va a asignar una propiedad.
-
propertyKey
-
El nombre de la propiedad a asignar.
-
value
-
El valor de la propiedad.
-
receiver
-
El valor de this para usar en la llamada a target si se encuentra un setter.
-
+- `target` + - : El objeto en el cual se va a asignar una propiedad. +- `propertyKey` + - : El nombre de la propiedad a asignar. +- value + - : El valor de la propiedad. +- receiver + - : El valor de `this` para usar en la llamada a `target` si se encuentra un setter. -

Valor de retorno

+### Valor de retorno -

Un {{jsxref("Boolean")}} indicando si se pudo o no asignar la propiedad.

+Un {{jsxref("Boolean")}} indicando si se pudo o no asignar la propiedad. -

Excepciones

+### Excepciones -

Un {{jsxref("TypeError")}}, si target no es un {{jsxref("Object")}}.

+Un {{jsxref("TypeError")}}, si `target` no es un {{jsxref("Object")}}. -

Descripción

+## Descripción -

El método Reflect.set permite asignar una propiedad a un objeto. It does property assignment and is like the property accessor syntax as a function.

+El método `Reflect.set` permite asignar una propiedad a un objeto. It does property assignment and is like the [property accessor](/es/docs/Web/JavaScript/Reference/Operators/Property_Accessors) syntax as a function. -

Ejemplos

+## Ejemplos -

Uso de Reflect.set()

+### `Uso de Reflect.set()` -
// Objeto
+```js
+// Objeto
 var obj = {};
 Reflect.set(obj, 'prop', 'value'); // true
 obj.prop; // "value"
@@ -60,37 +58,20 @@ var obj = {};
 Reflect.set(obj); // true
 Reflect.getOwnPropertyDescriptor(obj, 'undefined');
 // { value: undefined, writable: true, enumerable: true, configurable: true }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
{{SpecName('ES2015', '#sec-reflect.set', 'Reflect.set')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-reflect.set', 'Reflect.set')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentarios | +| ---------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-reflect.set', 'Reflect.set')}} | {{Spec2('ES2015')}} | Initial definition. | +| {{SpecName('ESDraft', '#sec-reflect.set', 'Reflect.set')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.Reflect.set")}} -

Ver también

+## Ver también - +- {{jsxref("Reflect")}} +- [Property accessors](/es/docs/Web/JavaScript/Reference/Operators/Property_Accessors) diff --git a/files/es/web/javascript/reference/global_objects/regexp/compile/index.md b/files/es/web/javascript/reference/global_objects/regexp/compile/index.md index ba8438a59b04be..6d6fc214161812 100644 --- a/files/es/web/javascript/reference/global_objects/regexp/compile/index.md +++ b/files/es/web/javascript/reference/global_objects/regexp/compile/index.md @@ -13,82 +13,54 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/compile original_slug: Web/JavaScript/Referencia/Objetos_globales/RegExp/compile --- -
{{JSRef}} {{deprecated_header}}
+{{JSRef}} {{deprecated_header}} -

El método obsoleto compile() es usado para (re-)compilar una expresión regular durante la ejecución del script. Es básicamente lo mismo que el constructor RegExp.

+El método obsoleto **`compile`\*\***`()`\*\* es usado para (re-)compilar una expresión regular durante la ejecución del script. Es básicamente lo mismo que el constructor `RegExp`. -

Sintaxis

+## Sintaxis -
regexObj.compile(patrón, flags)
+ regexObj.compile(patrón, flags) -

Parámetros

+### Parámetros -
-
patrón
-
El texto de la expresión regular.
-
flags
-
-

Si es especificado, las flags pueden tener cualquier combinación de los siguientes valores:

+- `patrón` + - : El texto de la expresión regular. +- `flags` + - : Si es especificado, las flags pueden tener cualquier combinación de los siguientes valores:_ `g` + _ : búsqueda global (global match) + - `i` + - : ignorar mayúsculas o minúsculas + - `m` + - : Tratar caracteres de inicio y fin (^ y $) como multiples líneas de texto(por ejemplo: encontrar el inicio o fin de cada línea delimitada por \n o \r, no sólo al inicio o fin de toda la entrada de texto) + - `y` + - : sticky; busca solamente desde el índice indicado por la propiedad `lastIndex` de esta expresión regular en la cadena objetivo (y no intenta buscar desde ningún índice posterior). -
-
g
-
búsqueda global (global match)
-
i
-
ignorar mayúsculas o minúsculas
-
m
-
Tratar caracteres de inicio y fin (^ y $) como multiples líneas de texto(por ejemplo: encontrar el inicio o fin de cada línea delimitada por \n o \r, no sólo al inicio o fin de toda la entrada de texto)
-
y
-
sticky; busca solamente desde el índice indicado por la propiedad lastIndex de esta expresión regular en la cadena objetivo (y no intenta buscar desde ningún índice posterior).
-
-
-
+## Descripción -

Descripción

+El método `compile` es obsoleto. Puedes simplemente utilizar el constructor `RegExp` para lograr el mismo efecto. -

El método compile es obsoleto. Puedes simplemente utilizar el constructor RegExp para lograr el mismo efecto.

+## Ejemplos -

Ejemplos

+### Usando `compile()` -

Usando compile()

+El siguiente ejemplo muestra como recompilar una expresión regultar con un nuevo patrón y nuevas flags. -

El siguiente ejemplo muestra como recompilar una expresión regultar con un nuevo patrón y nuevas flags.

- -
var regexObj = new RegExp('foo', 'gi');
+```js
+var regexObj = new RegExp('foo', 'gi');
 regexObj.compile('new foo', 'g');
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoCommentario
{{SpecName('ES6', '#sec-regexp.prototype.compile', 'RegExp.prototype.compile')}}{{Spec2('ES6')}}Definición inicial. Definido en la (norma) Annex B ECMAScript para Características Adicionales para Navegadores Web.
{{SpecName('ESDraft', '#sec-regexp.prototype.compile', 'RegExp.prototype.compile')}}{{Spec2('ESDraft')}}Definido en la (norma) Annex B ECMAScript para Características Adicionales para Navegadores Web.
- -

Compatiblidad con navegadores

- -
- - -

{{Compat("javascript.builtins.RegExp.compile")}}

-
- -

Ver también

- -
    -
  • {{jsxref("RegExp")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Commentario | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| {{SpecName('ES6', '#sec-regexp.prototype.compile', 'RegExp.prototype.compile')}} | {{Spec2('ES6')}} | Definición inicial. Definido en la (norma) Annex B ECMAScript para Características Adicionales para Navegadores Web. | +| {{SpecName('ESDraft', '#sec-regexp.prototype.compile', 'RegExp.prototype.compile')}} | {{Spec2('ESDraft')}} | Definido en la (norma) Annex B ECMAScript para Características Adicionales para Navegadores Web. | + +## Compatiblidad con navegadores + +{{Compat("javascript.builtins.RegExp.compile")}} + +## Ver también + +- {{jsxref("RegExp")}} diff --git a/files/es/web/javascript/reference/global_objects/regexp/exec/index.md b/files/es/web/javascript/reference/global_objects/regexp/exec/index.md index 6934bf34be7674..a91485c5d3b469 100644 --- a/files/es/web/javascript/reference/global_objects/regexp/exec/index.md +++ b/files/es/web/javascript/reference/global_objects/regexp/exec/index.md @@ -11,111 +11,127 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/exec original_slug: Web/JavaScript/Referencia/Objetos_globales/RegExp/exec --- -
{{JSRef}}
+{{JSRef}} -

El método exec() ejecuta una busqueda sobre las coincidencias de una expresión regular en una cadena especifica. Devuelve el resultado como array, o {{jsxref("null")}}.

+El método **`exec()`** ejecuta una busqueda sobre las coincidencias de una expresión regular en una cadena especifica. Devuelve el resultado como array, o {{jsxref("null")}}. -

Si está ejecutando una expresión regular solo para buscar si algo se cumple o no, usa el método {{jsxref("RegExp.prototype.test()")}} o el método {{jsxref("String.prototype.search()")}}.

+Si está ejecutando una expresión regular solo para buscar si algo se cumple o no, usa el método {{jsxref("RegExp.prototype.test()")}} o el método {{jsxref("String.prototype.search()")}}. -

Sintaxis

+## Sintaxis -
regexObj.exec(cadena)
+ regexObj.exec(cadena) -

Parametros

+### Parametros -
-
cadena
-
Cadena sobre la cual se quiere aplicar la expresión regular
-
+- `cadena` + - : Cadena sobre la cual se quiere aplicar la expresión regular -

Valor devuelto

+### Valor devuelto -

Si se encuentran coincidencial, el método exec() devuelve un array y actualiza las propiedades del objeto de la expresión regular. El array devuelto contiene los elementos encontrados en su primer elemento, y un elemento por cada parte de la expresión regular que se encuentra entre parentesis y se encuentra dentro del texto que fué capturado.

+Si se encuentran coincidencial, el método `exec()` devuelve un array y actualiza las propiedades del objeto de la expresión regular. El array devuelto contiene los elementos encontrados en su primer elemento, y un elemento por cada parte de la expresión regular que se encuentra entre parentesis y se encuentra dentro del texto que fué capturado. -

Si la busqueda falla, el método exec() devuelve {{jsxref("null")}}.

+Si la busqueda falla, el método `exec()` devuelve {{jsxref("null")}}. -

Descripción

+## Descripción -

Considerando el siguiente ejemplo:

+Considerando el siguiente ejemplo: -
// Busca "quick brown" seguido de "jumps", ignorando los caracteres que se
+```js
+// Busca "quick brown" seguido de "jumps", ignorando los caracteres que se
 // encuentren entre medias.
 // Recuerda "brown" y "jumps"
 // Ignora mayusculas y minusculas
 var re = /quick\s(brown).+?(jumps)/ig;
 var result = re.exec('The Quick Brown Fox Jumps Over The Lazy Dog');
-
+``` -

La siguiente tabla muestra el resultado de este script:

+La siguiente tabla muestra el resultado de este script: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ObjetoPropiedad/ÍndiceDescripciónEjemplo
result[0]Todas las partes de la cadena que cumplen la expresión regularQuick Brown Fox Jumps
[1],...[n] -

Las subcadenas entre parentesis que han sido encontradas, si hay alguna. El número de subcadenas encontradas es ilimitado

-
[1] = Brown
- [2] = Jumps
indexEl índice de base-0 del elemento encontrado en la cadena.4
inputLa cadena original.The Quick Brown Fox Jumps Over The Lazy Dog
relastIndexEl índice sobre el cual empieza la siguiente busqueda. Cuando no se usa g (busqueda global), esto va a ser siempre 0.25
ignoreCaseIndica si la bandera "i" ha sido usada para ignorar mayusculas y minusculas.true
globalIndica si la bandera "g" fue usada para hacer una busqueda global.true
multilineIndica si la bandera "m" fue usada para buscar en cadenas sobre multiples lineasfalse
sourceEl texto del patrón de busquedaquick\s(brown).+?(jumps)
ObjetoPropiedad/ÍndiceDescripciónEjemplo
result[0]Todas las partes de la cadena que cumplen la expresión regularQuick Brown Fox Jumps
[1],...[n] +

+ Las subcadenas entre parentesis que han sido encontradas, si hay + alguna. El número de subcadenas encontradas es ilimitado +

+
+ [1] = Brown
[2] = Jumps
+
indexEl índice de base-0 del elemento encontrado en la cadena.4
inputLa cadena original.The Quick Brown Fox Jumps Over The Lazy Dog
relastIndex + El índice sobre el cual empieza la siguiente busqueda. Cuando no se usa + g (busqueda global), esto va a ser siempre 0. + 25
ignoreCase + Indica si la bandera "i" ha sido usada para ignorar + mayusculas y minusculas. + true
global + Indica si la bandera "g" fue usada para hacer una busqueda + global. + true
multiline + Indica si la bandera "m" fue usada para buscar en cadenas + sobre multiples lineas + false
sourceEl texto del patrón de busquedaquick\s(brown).+?(jumps)
-

Ejemplos

+## Ejemplos -

Encontrando coincidencias sucesivas

+### Encontrando coincidencias sucesivas -

Si tu expresión regular contiene la bandera "g", puedes usar el método exec() varias veces para encontrar coincidencias sucesivas en la misma cadena. Cuando lo haces, la busqueda empieza en la subcadena str especificada por la propiedad {{jsxref("RegExp.lastIndex", "lastIndex")}} de la expresión regular ({{jsxref("RegExp.prototype.test()", "test()")}} también movera hacia adelante el indice de la propiedad {{jsxref("RegExp.lastIndex", "lastIndex")}}). Por ejemplo, asumiendo que tienes este script:

+Si tu expresión regular contiene la bandera "`g`", puedes usar el método `exec()` varias veces para encontrar coincidencias sucesivas en la misma cadena. Cuando lo haces, la busqueda empieza en la subcadena `str` especificada por la propiedad {{jsxref("RegExp.lastIndex", "lastIndex")}} de la expresión regular ({{jsxref("RegExp.prototype.test()", "test()")}} también movera hacia adelante el indice de la propiedad {{jsxref("RegExp.lastIndex", "lastIndex")}}). Por ejemplo, asumiendo que tienes este script: -
var myRe = /ab*/g;
+```js
+var myRe = /ab*/g;
 var str = 'abbcdefabh';
 var myArray;
 while ((myArray = myRe.exec(str)) !== null) {
@@ -123,65 +139,40 @@ while ((myArray = myRe.exec(str)) !== null) {
   msg += 'La siguiente coincidencia empieza en el indice ' + myRe.lastIndex;
   console.log(msg);
 }
-
+``` -

Este script muestra el siguiente texto:

+Este script muestra el siguiente texto: -
Se ha encontrado abb. La siguiente coincidencia empieza en el indice 3
-Se ha encontrado ab. La siguiente coincidencia empieza en el indice 9
-
+ Se ha encontrado abb. La siguiente coincidencia empieza en el indice 3 + Se ha encontrado ab. La siguiente coincidencia empieza en el indice 9 -

Nota: No uses la expresión regular literalmente (o el constructor {{jsxref("RegExp")}}) dentro de la condición del bucle while o se creará un bucle infinito si hay una coincidencia, por culpa de que la propiedad {{jsxref("RegExp.lastIndex", "lastIndex")}} va a ser reiniciada por cada iteración del bucle. Además asegurate de que has usado la bandera de busqueda global "g" o se creará un bucle también.

+Nota: No uses la expresión regular literalmente (o el constructor {{jsxref("RegExp")}}) dentro de la condición del bucle while o se creará un bucle infinito si hay una coincidencia, por culpa de que la propiedad {{jsxref("RegExp.lastIndex", "lastIndex")}} va a ser reiniciada por cada iteración del bucle. Además asegurate de que has usado la bandera de busqueda global "g" o se creará un bucle también. -

Usando exec() con RegExp literales

+### Usando `exec()` con `RegExp` literales -

También se puede usar exec() sin crear un objeto de {{jsxref("RegExp")}}:

+También se puede usar `exec() sin crear un objeto de `{{jsxref("RegExp")}}: -
var matches = /(hola \S+)/.exec('Esto es un hola mundo!');
+```js
+var matches = /(hola \S+)/.exec('Esto es un hola mundo!');
 console.log(matches[1]);
-
- -

Esto logueará un mensaje que contiene 'hola mundo!'.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónStatusComment
{{SpecName('ES3')}}{{Spec2('ES3')}}Definición inicial. Implementado en JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.10.6.21', 'RegExp.exec')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-regexp.prototype.exec', 'RegExp.exec')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-regexp.prototype.exec', 'RegExp.exec')}}{{Spec2('ESDraft')}}
+``` + +Esto logueará un mensaje que contiene 'hola mundo!'. + +## Especificaciones + +| Especificación | Status | Comment | +| -------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Definición inicial. Implementado en JavaScript 1.2. | +| {{SpecName('ES5.1', '#sec-15.10.6.21', 'RegExp.exec')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-regexp.prototype.exec', 'RegExp.exec')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-regexp.prototype.exec', 'RegExp.exec')}} | {{Spec2('ESDraft')}} | | -

Compatiblidad con navegadores

+## Compatiblidad con navegadores {{Compat("javascript.builtins.RegExp.exec")}} -

Ver también

+## Ver también - +- Capítulo de [Expresiones Regulares](/es/docs/Web/JavaScript/Guide/Regular_Expressions) en la [Guía de Javascript](/es/docs/Web/JavaScript/Guide) +- {{jsxref("RegExp")}} diff --git a/files/es/web/javascript/reference/global_objects/regexp/ignorecase/index.md b/files/es/web/javascript/reference/global_objects/regexp/ignorecase/index.md index 64a17f740d14fb..aa059b7d45c699 100644 --- a/files/es/web/javascript/reference/global_objects/regexp/ignorecase/index.md +++ b/files/es/web/javascript/reference/global_objects/regexp/ignorecase/index.md @@ -4,69 +4,45 @@ slug: Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/ignoreCase original_slug: Web/JavaScript/Referencia/Objetos_globales/RegExp/ignoreCase --- -
{{JSRef}}
+{{JSRef}} -

La propiedad ignoreCase indica si la expresión regular está usando la bandera "i". ignoreCase es una propiedad de sólo lectura de una instancia de expresión regular.

+La propiedad **`ignoreCase`** indica si la expresión regular está usando la bandera "i". `ignoreCase` es una propiedad de _sólo lectura_ de una instancia de expresión regular. -
{{js_property_attributes(0, 0, 1)}}
+{{js_property_attributes(0, 0, 1)}} -

Descripción

+## Descripción -

El valor de ignoreCase es un {{jsxref("Boolean")}} y true si la bandera "i" fue usada. De otra manera es false. La bandera "i" indica que el se debe ignorar la capitalización al tratar de encontrar los equivalentes en un texto.

+El valor de `ignoreCase es un `{{jsxref("Boolean")}} y `true si la bandera "i" fue usada. De otra manera es false. La bandera "i" indica que el se debe ignorar la capitalización al tratar de encontrar los equivalentes en un texto.` -

No se puede cambiar esta propiedad directamente.

+No se puede cambiar esta propiedad directamente. -

Ejemplos

+## Ejemplos -

Usando ignoreCase

+### Usando `ignoreCase` -
var regex = new RegExp('foo', 'i');
+```js
+var regex = new RegExp('foo', 'i');
 
 console.log(regex.ignoreCase); // true
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
{{SpecName('ES3')}}{{Spec2('ES3')}}Definición inicial. Implementado en JavaScript 1.2. JavaScript 1.5: ignoreCase es una propiedad de la instancia {{jsxref("RegExp")}}, y no del objecto {{jsxref("RegExp")}}.
{{SpecName('ES5.1', '#sec-15.10.7.3', 'RegExp.prototype.ignoreCase')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-get-regexp.prototype.ignorecase', 'RegExp.prototype.ignoreCase')}}{{Spec2('ES6')}}ignoreCase es ahora una propiedad accesora del prototipo en lugar de una propiedad de dato de una instancia.
{{SpecName('ESDraft', '#sec-get-regexp.prototype.ignorecase', 'RegExp.prototype.ignoreCase')}}{{Spec2('ESDraft')}}
+| Especificación | Estatus | Comentario | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Definición inicial. Implementado en JavaScript 1.2. JavaScript 1.5: `ignoreCase` es una propiedad de la instancia {{jsxref("RegExp")}}, y no del objecto {{jsxref("RegExp")}}. | +| {{SpecName('ES5.1', '#sec-15.10.7.3', 'RegExp.prototype.ignoreCase')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-get-regexp.prototype.ignorecase', 'RegExp.prototype.ignoreCase')}} | {{Spec2('ES6')}} | `ignoreCase` es ahora una propiedad accesora del prototipo en lugar de una propiedad de dato de una instancia. | +| {{SpecName('ESDraft', '#sec-get-regexp.prototype.ignorecase', 'RegExp.prototype.ignoreCase')}} | {{Spec2('ESDraft')}} | | -

Compatibilidad de navegadores

+## Compatibilidad de navegadores {{Compat("javascript.builtins.RegExp.ignoreCase")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("RegExp.lastIndex")}}
  • -
  • {{jsxref("RegExp.prototype.global")}}
  • -
  • {{jsxref("RegExp.prototype.multiline")}}
  • -
  • {{jsxref("RegExp.prototype.source")}}
  • -
  • {{jsxref("RegExp.prototype.sticky")}}
  • -
+- {{jsxref("RegExp.lastIndex")}} +- {{jsxref("RegExp.prototype.global")}} +- {{jsxref("RegExp.prototype.multiline")}} +- {{jsxref("RegExp.prototype.source")}} +- {{jsxref("RegExp.prototype.sticky")}} diff --git a/files/es/web/javascript/reference/global_objects/regexp/index.md b/files/es/web/javascript/reference/global_objects/regexp/index.md index 998c3fe74ff225..182cdaa6524565 100644 --- a/files/es/web/javascript/reference/global_objects/regexp/index.md +++ b/files/es/web/javascript/reference/global_objects/regexp/index.md @@ -10,184 +10,184 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/RegExp original_slug: Web/JavaScript/Referencia/Objetos_globales/RegExp --- -
{{JSRef}}
+{{JSRef}} -

El objeto RegExp se utiliza para hacer coincidir texto con un patrón.

+El objeto **`RegExp`** se utiliza para hacer coincidir texto con un patrón. -

Para obtener una introducción a las expresiones regulares, lee el {{JSxRef("../Guide/Regular_Expressions", "capítulo sobre expresiones regulares")}} en la {{JSxRef("../Guide/Regular_Expressions", "Guía de JavaScript")}}.

+Para obtener una introducción a las expresiones regulares, lee el {{JSxRef("../Guide/Regular_Expressions", "capítulo sobre expresiones regulares")}} en la {{JSxRef("../Guide/Regular_Expressions", "Guía de JavaScript")}}. -

Descripción

+## Descripción -

Notación literal y constructor

+### Notación literal y constructor -

Hay dos formas de crear un objeto RegExp: una notación literal y un constructor.

+Hay dos formas de crear un objeto `RegExp`: una _notación literal_ y un _constructor_. -
    -
  • Los parámetros de la notación literal se encierran entre barras y no utilizan comillas.
  • -
  • Los parámetros de la función constructora no se encierran entre barras, pero utilizan comillas.
  • -
+- Los parámetros de **la notación literal** se encierran entre barras y no utilizan comillas. +- Los parámetros de **la función constructora** no se encierran entre barras, pero utilizan comillas. -

Las siguientes tres expresiones crean el mismo objeto de expresión regular:

+Las siguientes tres expresiones crean el mismo objeto de expresión regular: -
let er = /ab+c/i; // notación literal
+```js
+let er = /ab+c/i; // notación literal
 let er = new RegExp('ab+c', 'i') // constructor con patrón de cadena como primer argumento
 let er = new RegExp(/ab+c/, 'i') // constructor con expresión regular literal como primer argumento (a partir de ECMAScript 6)
-
+``` -

La notación literal da como resultado la compilación de la expresión regular cuando se evalúa la expresión. Utiliza la notación literal cuando la expresión regular permanecerá constante. Por ejemplo, si usas notación literal para construir una expresión regular usada en un bucle, la expresión regular no se volverá a compilar en cada iteración.

+La notación literal da como resultado la compilación de la expresión regular cuando se evalúa la expresión. Utiliza la notación literal cuando la expresión regular permanecerá constante. Por ejemplo, si usas notación literal para construir una expresión regular usada en un bucle, la expresión regular no se volverá a compilar en cada iteración. -

El constructor del objeto de expresión regular, por ejemplo, new RegExp('ab+c'), da como resultado la compilación en tiempo de ejecución de la expresión regular. Utiliza la función constructora cuando sepas que el patrón de expresión regular cambiará, o no conozcas el patrón y lo obtienes de otra fuente, tal como la entrada del usuario.

+El constructor del objeto de expresión regular, por ejemplo, `new RegExp('ab+c')`, da como resultado la compilación en tiempo de ejecución de la expresión regular. Utiliza la función constructora cuando sepas que el patrón de expresión regular cambiará, o no conozcas el patrón y lo obtienes de otra fuente, tal como la entrada del usuario. -

Banderas en el constructor

+### Banderas en el constructor -

A partir de ECMAScript 6, new RegExp(/ab+c/, 'i') ya no arroja un {{JSxRef("TypeError")}} ("no puedes proporcionar banderas cuando construyes una expresión regular a partir de otra") cuando el primer argumento es una RegExp y el segundo argumento flags está presente. En su lugar, se crea una nueva RegExp a partir de los argumentos.

+A partir de ECMAScript 6, `new RegExp(/ab+c/, 'i')` ya no arroja un {{JSxRef("TypeError")}} (`"no puedes proporcionar banderas cuando construyes una expresión regular a partir de otra"`) cuando el primer argumento es una `RegExp` y el segundo argumento `flags` está presente. En su lugar, se crea una nueva `RegExp` a partir de los argumentos. -

Cuando se utiliza la función constructora, las reglas de escape de cadenas normales (antes de los caracteres especiales con \ cuando se incluyen en una cadena) son necesarias.

+Cuando se utiliza la función constructora, las reglas de escape de cadenas normales (antes de los caracteres especiales con `\` cuando se incluyen en una cadena) son necesarias. -

Por ejemplo, los siguientes son equivalentes:

+Por ejemplo, los siguientes son equivalentes: -
let er = /\w+/
+```js
+let er = /\w+/
 let er = new RegExp('\\w+')
-
- -

Propiedades de expresiones regulares similares a Perl

- -

Ten en cuenta que varias de las propiedades de {{JSxRef("RegExp")}} tienen nombres largos y cortos (tipo Perl). Ambos nombres siempre se refieren al mismo valor. (Perl es el lenguaje de programación a partir del cual JavaScript modeló sus expresiones regulares). Consulta también las propiedades {{JSxRef("Características_Desaprobadas", "en desuso de RegExp", "#Propiedades_de_RegExp")}}

- -

Constructor

- -
-
{{JSxRef("Objetos_globales/RegExp/RegExp", "RegExp()")}}
-
Crea un nuevo objeto RegExp.
-
- -

Propiedades estáticas

- -
-
{{JSxRef("RegExp.@@species", "get RegExp[@@species]")}}
-
La función constructora utilizada para crear objetos derivados.
-
{{JSxRef("RegExp.lastIndex")}}
-
El índice en el que comenzará la siguiente búsqueda.
-
- -

Propiedades de la instancia

- -
-
{{JSxRef("RegExp.prototype.flags")}}
-
Una cadena que contiene las banderas del objeto RegExp.
-
{{JSxRef("RegExp.prototype.dotAll")}}
-
Si el "." coincide con nuevas líneas o no.
-
{{JSxRef("RegExp.prototype.global")}}
-
Si se debe probar o no la expresión regular con todas las posibles ocurrencias en una cadena, o solo con la primera.
-
{{JSxRef("RegExp.prototype.ignoreCase")}}
-
Si se deben o no ignorar las mayúsculas/minúsculas al buscar en una cadena.
-
{{JSxRef("RegExp.prototype.multiline")}}
-
Si buscar o no en cadenas multilínea.
-
{{JSxRef("RegExp.prototype.source")}}
-
El texto del patrón.
-
{{JSxRef("RegExp.prototype.sticky")}}
-
Si la búsqueda es pegajosa o no.
-
{{JSxRef("RegExp.prototype.unicode")}}
-
Si las funciones Unicode están habilitadas o no.
-
- -

Métodos de instancia

- -
-
{{JSxRef("RegExp.prototype.compile()")}}
-
(Re)compila una expresión regular durante la ejecución de un script.
-
{{JSxRef("RegExp.prototype.exec()")}}
-
Ejecuta una búsqueda de una coincidencia en su parámetro de cadena.
-
{{JSxRef("RegExp.prototype.test()")}}
-
Prueba una coincidencia en su parámetro de cadena.
-
{{JSxRef("RegExp.prototype.toString()")}}
-
Devuelve una cadena que representa el objeto especificado. Redefine el método {{JSxRef("Object.prototype.toString()")}}.
-
{{JSxRef("RegExp.prototype.@@match()", "RegExp.prototype[@@match]()")}}
-
Realiza la coincidencia con la cadena dada y devuelve el resultado de la coincidencia.
-
{{JSxRef("RegExp.prototype.@@matchAll()", "RegExp.prototype[@@matchAll]()")}}
-
Devuelve todas las coincidencias de la expresión regular con una cadena.
-
{{JSxRef("RegExp.prototype.@@replace()", "RegExp.prototype[@@replace]()")}}
-
Reemplaza las coincidencias en una cadena dada con una nueva subcadena.
-
{{JSxRef("RegExp.prototype.@@search()", "RegExp.prototype[@@search]()")}}
-
Busca la coincidencia en la cadena dada y devuelve el índice del patrón encontrado en la cadena.
-
{{JSxRef("RegExp.prototype.@@split()", "RegExp.prototype[@@split]()")}}
-
Divide la cadena dada en un arreglo separando la cadena en subcadenas.
-
- -

Ejemplos

- -

Usar una expresión regular para cambiar el formato de los datos

- -

El siguiente script usa el método {{JSxRef("String.prototype.replace()", "replace()")}} de la instancia {{JSxRef("Objetos_globales/String", "String")}} para hacer coincidir una nombre en el formato primero último y enviarlo en el formato último, primero.

- -

En el texto de reemplazo, el script usa $1 y $2 para indicar los resultados de los correspondientes paréntesis coincidentes en el patrón de expresión regular.

- -
let er = /(\w+)\s(\w+)/
+```
+
+### Propiedades de expresiones regulares similares a Perl
+
+Ten en cuenta que varias de las propiedades de {{JSxRef("RegExp")}} tienen nombres largos y cortos (tipo Perl). Ambos nombres siempre se refieren al mismo valor. (Perl es el lenguaje de programación a partir del cual JavaScript modeló sus expresiones regulares). Consulta también las propiedades {{JSxRef("Características_Desaprobadas", "en desuso de RegExp", "#Propiedades_de_RegExp")}}
+
+## Constructor
+
+- {{JSxRef("Objetos_globales/RegExp/RegExp", "RegExp()")}}
+  - : Crea un nuevo objeto `RegExp`.
+
+## Propiedades estáticas
+
+- {{JSxRef("RegExp.@@species", "get RegExp[@@species]")}}
+  - : La función constructora utilizada para crear objetos derivados.
+- {{JSxRef("RegExp.lastIndex")}}
+  - : El índice en el que comenzará la siguiente búsqueda.
+
+## Propiedades de la instancia
+
+- {{JSxRef("RegExp.prototype.flags")}}
+  - : Una cadena que contiene las banderas del objeto `RegExp`.
+- {{JSxRef("RegExp.prototype.dotAll")}}
+  - : Si el "`.`" coincide con nuevas líneas o no.
+- {{JSxRef("RegExp.prototype.global")}}
+  - : Si se debe probar o no la expresión regular con todas las posibles ocurrencias en una cadena, o solo con la primera.
+- {{JSxRef("RegExp.prototype.ignoreCase")}}
+  - : Si se deben o no ignorar las mayúsculas/minúsculas al buscar en una cadena.
+- {{JSxRef("RegExp.prototype.multiline")}}
+  - : Si buscar o no en cadenas multilínea.
+- {{JSxRef("RegExp.prototype.source")}}
+  - : El texto del patrón.
+- {{JSxRef("RegExp.prototype.sticky")}}
+  - : Si la búsqueda es pegajosa o no.
+- {{JSxRef("RegExp.prototype.unicode")}}
+  - : Si las funciones Unicode están habilitadas o no.
+
+## Métodos de instancia
+
+- {{JSxRef("RegExp.prototype.compile()")}}
+  - : (Re)compila una expresión regular durante la ejecución de un script.
+- {{JSxRef("RegExp.prototype.exec()")}}
+  - : Ejecuta una búsqueda de una coincidencia en su parámetro de cadena.
+- {{JSxRef("RegExp.prototype.test()")}}
+  - : Prueba una coincidencia en su parámetro de cadena.
+- {{JSxRef("RegExp.prototype.toString()")}}
+  - : Devuelve una cadena que representa el objeto especificado. Redefine el método {{JSxRef("Object.prototype.toString()")}}.
+- {{JSxRef("RegExp.prototype.@@match()", "RegExp.prototype[@@match]()")}}
+  - : Realiza la coincidencia con la cadena dada y devuelve el resultado de la coincidencia.
+- {{JSxRef("RegExp.prototype.@@matchAll()", "RegExp.prototype[@@matchAll]()")}}
+  - : Devuelve todas las coincidencias de la expresión regular con una cadena.
+- {{JSxRef("RegExp.prototype.@@replace()", "RegExp.prototype[@@replace]()")}}
+  - : Reemplaza las coincidencias en una cadena dada con una nueva subcadena.
+- {{JSxRef("RegExp.prototype.@@search()", "RegExp.prototype[@@search]()")}}
+  - : Busca la coincidencia en la cadena dada y devuelve el índice del patrón encontrado en la cadena.
+- {{JSxRef("RegExp.prototype.@@split()", "RegExp.prototype[@@split]()")}}
+  - : Divide la cadena dada en un arreglo separando la cadena en subcadenas.
+
+## Ejemplos
+
+### Usar una expresión regular para cambiar el formato de los datos
+
+El siguiente script usa el método {{JSxRef("String.prototype.replace()", "replace()")}} de la instancia {{JSxRef("Objetos_globales/String", "String")}} para hacer coincidir una nombre en el formato _primero último_ y enviarlo en el formato _último, primero_.
+
+En el texto de reemplazo, el script usa `$1` y `$2` para indicar los resultados de los correspondientes paréntesis coincidentes en el patrón de expresión regular.
+
+```js
+let er = /(\w+)\s(\w+)/
 let str = 'John Smith'
 let newstr = str.replace(er, '$2, $1')
 console.log(newstr)
-
+``` -

Esto muestra "Smith, John".

+Esto muestra `"Smith, John"`. -

Uso de expresiones regulares para dividir líneas con diferentes finales de línea/saltos de línea

+### Uso de expresiones regulares para dividir líneas con diferentes finales de línea/saltos de línea -

El final de línea predeterminado varía según la plataforma (Unix, Windows, etc.). La división de líneas proporcionada en este ejemplo funciona en todas las plataformas.

+El final de línea predeterminado varía según la plataforma (Unix, Windows, etc.). La división de líneas proporcionada en este ejemplo funciona en todas las plataformas. -
let texto = 'Un poco de texto\ny un poco más\r\ny aún\reste es el final'
+```js
+let texto = 'Un poco de texto\ny un poco más\r\ny aún\reste es el final'
 let lineas = texto.split(/\r\n|\r|\n/)
 console.log(lineas) // logs [ 'Un poco de texto', 'y un poco más', 'y aún', 'este es el final' ]
-
+``` -

Ten en cuenta que el orden de los patrones en la expresión regular es importante.

+Ten en cuenta que el orden de los patrones en la expresión regular es importante. -

Usar expresiones regulares en varias líneas

+### Usar expresiones regulares en varias líneas -
let s = '¡Por favor, sí\nhazme el día!'
+```js
+let s = '¡Por favor, sí\nhazme el día!'
 
 s.match(/sí.*día/);
 // Devuelve null
 
 s.match(/sí[^]*día/);
 // Devuelve ["sí\nhazme el día"]
-
+``` -

Usar una expresión regular con la bandera pegajosa

+### Usar una expresión regular con la bandera pegajosa -

La bandera {{JSxRef("Objetos_globales/RegExp/sticky", "sticky")}} indica que la expresión regular realiza una coincidencia permanente en la cadena de destino al intentar hacer coincidir a partir de {{JSxRef("RegExp.prototype.lastIndex")}}.

+La bandera {{JSxRef("Objetos_globales/RegExp/sticky", "sticky")}} indica que la expresión regular realiza una coincidencia permanente en la cadena de destino al intentar hacer coincidir a partir de {{JSxRef("RegExp.prototype.lastIndex")}}. -
let str = '#foo#'
+```js
+let str = '#foo#'
 let regex = /foo/y
 
 regex.lastIndex = 1
 regex.test(str)      // true
 regex.lastIndex = 5
 regex.test(str)      // false (lastIndex se tiene en cuenta con una bandera pegajosa)
-regex.lastIndex      // 0 (restablecer después de un error de coincidencia)
+regex.lastIndex // 0 (restablecer después de un error de coincidencia) +``` -

La diferencia entre la bandera pegajosa y la bandera global

+### La diferencia entre la bandera pegajosa y la bandera global -

Con la bandera pegajosa y, la siguiente coincidencia tiene que ocurrir en la posición lastIndex, mientras que con la bandera global g, la coincidencia puede ocurrir en la posición lastIndex o posterior:

+Con la bandera pegajosa `y`, la siguiente coincidencia tiene que ocurrir en la posición `lastIndex`, mientras que con la bandera global `g`, la coincidencia puede ocurrir en la posición `lastIndex` o posterior: -
er = /\d/y;
+```js
+er = /\d/y;
 while (r = re.exec("123 456")) console.log(r, "Y er.lastIndex", er.lastIndex);
 
 // [ '1', index: 0, input: '123 456', groups: undefined ] AND er.lastIndex 1
 // [ '2', index: 1, input: '123 456', groups: undefined ] AND er.lastIndex 2
 // [ '3', index: 2, input: '123 456', groups: undefined ] AND er.lastIndex 3
-//   ... y no más coincidencias.
+// ... y no más coincidencias. +``` -

Con la bandera global g, coincidirían los 6 dígitos, no solo 3.

+Con la bandera global `g`, coincidirían los 6 dígitos, no solo 3. -

Expresión regular y caracteres Unicode

+### Expresión regular y caracteres Unicode -

\w y \W solo coincide con caracteres basados en ASCII; por ejemplo, a a z, A a Z, 0 a 9 y _.

+`\w` y `\W` solo coincide con caracteres basados en ASCII; por ejemplo, `a` a `z`, `A` a `Z`, `0` a `9` y `_`. -

Para hacer coincidir caracteres de otros idiomas como Cirílico o Hebreo, usa \uhhhh, donde hhhh es el Valor Unicode en hexadecimal.

+Para hacer coincidir caracteres de otros idiomas como Cirílico o Hebreo, usa `\uhhhh`, donde `hhhh` es el Valor Unicode en hexadecimal. -

Este ejemplo demuestra cómo se pueden separar los caracteres Unicode de una palabra.

+Este ejemplo demuestra cómo se pueden separar los caracteres Unicode de una palabra. -
let texto = 'Образец texto на русском языке'
+```js
+let texto = 'Образец texto на русском языке'
 let regex = /[\u0400-\u04FF]+/g
 
 let match = regex.exec(text)
@@ -199,48 +199,35 @@ console.log(match2[0])       // registra 'на' [no registró 'texto']
 console.log(regex.lastIndex) // registra '15'
 
 // y así sucesivamente
-
+``` -

La función {{JSxRef("../Guide/Regular_Expressions/Unicode_Property_Escapes", "Escapes de propiedad Unicode")}} presenta una solución, al permitir una declaración tan simple como \p{scx=Cyrl}.

+La función {{JSxRef("../Guide/Regular_Expressions/Unicode_Property_Escapes", "Escapes de propiedad Unicode")}} presenta una solución, al permitir una declaración tan simple como `\p{scx=Cyrl}`. -

Extraer el nombre de subdominio de la URL

+### Extraer el nombre de subdominio de la URL -
let url = 'http://xxx.dominio.com'
+```js
+let url = 'http://xxx.dominio.com'
 console.log(/[^.]+/.exec(url)[0].substr(7)) // registra 'xxx'
-
+``` -
-

En lugar de utilizar expresiones regulares para analizar las URL, normalmente es mejor utilizar el analizador de URL integrado en los navegadores mediante la API URL.

-
+> **Nota:** En lugar de utilizar expresiones regulares para analizar las URL, normalmente es mejor utilizar el analizador de URL integrado en los navegadores mediante la [API URL](/es/docs/Web/API/URL_API). -

Especificaciones

+## Especificaciones - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-regexp-regular-expression-objects', 'RegExp')}}
+| Especificación | +| ---------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-regexp-regular-expression-objects', 'RegExp')}} | -

Compatibilidad del navegador

+## Compatibilidad del navegador -
+{{Compat("javascript.builtins.RegExp")}} +### Notas específicas de Firefox -

{{Compat("javascript.builtins.RegExp")}}

-
+A partir de Firefox 34, en el caso de un grupo de captura con cuantificadores que impiden su ejercicio, el texto coincidente para un grupo de captura ahora es `undefined` en lugar de una cadena vacía: -

Notas específicas de Firefox

- -

A partir de Firefox 34, en el caso de un grupo de captura con cuantificadores que impiden su ejercicio, el texto coincidente para un grupo de captura ahora es undefined en lugar de una cadena vacía:

- -
// Firefox 33 o anterior
+```js
+// Firefox 33 o anterior
 'x'.replace(/x(.)?/g, function(m, group) {
   console.log("'grupo: " + group + "'");
 });
@@ -251,15 +238,13 @@ console.log(/[^.]+/.exec(url)[0].substr(7)) // registra 'xxx'
   console.log("'grupo: " + group + "'");
 });
 // 'grupo: undefined'
-
+``` -

Ten en cuenta que, debido a la compatibilidad web, RegExp.$N seguirá devolviendo una cadena vacía en lugar de undefined ({{bug(1053944)}}).

+Ten en cuenta que, debido a la compatibilidad web, `RegExp.$N` seguirá devolviendo una cadena vacía en lugar de `undefined` ({{bug(1053944)}}). -

Ve también

+## Ve también -
    -
  • El capítulo de {{JSxRef("../Guide/Regular_Expressions", "Expresiones regulares")}} en la {{JSxRef("../Guide", "Guía de JavaScript")}}
  • -
  • {{JSxRef("String.prototype.match()")}}
  • -
  • {{JSxRef("String.prototype.replace()")}}
  • -
  • {{JSxRef("String.prototype.split()")}}
  • -
+- El capítulo de {{JSxRef("../Guide/Regular_Expressions", "Expresiones regulares")}} en la {{JSxRef("../Guide", "Guía de JavaScript")}} +- {{JSxRef("String.prototype.match()")}} +- {{JSxRef("String.prototype.replace()")}} +- {{JSxRef("String.prototype.split()")}} diff --git a/files/es/web/javascript/reference/global_objects/regexp/rightcontext/index.md b/files/es/web/javascript/reference/global_objects/regexp/rightcontext/index.md index 7abe05786185c7..74b1de4e8e04c0 100644 --- a/files/es/web/javascript/reference/global_objects/regexp/rightcontext/index.md +++ b/files/es/web/javascript/reference/global_objects/regexp/rightcontext/index.md @@ -4,52 +4,46 @@ slug: Web/JavaScript/Reference/Global_Objects/RegExp/rightContext translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/rightContext original_slug: Web/JavaScript/Referencia/Objetos_globales/RegExp/rightContext --- -
{{JSRef}} {{non-standard_header}}
+{{JSRef}} {{non-standard_header}} -

La propiedad rightContext (No es estándar) es una propiedad estática y de solo lectura de expresiones regulares que contiene la subcadena que sigue a la coincidencia más reciente. el alias para esta propiedad es RegExp.$'.

+La propiedad **rightContext _(No es estándar)_** es una propiedad estática y de solo lectura de expresiones regulares que contiene la subcadena que sigue a la coincidencia más reciente. el alias para esta propiedad es `RegExp.$'`. -

Sintaxis

+## Sintaxis -
RegExp.rightContext
-RegExp["$'"]
-
+ RegExp.rightContext + RegExp["$'"] -

Descripción

+## Descripción -

La propiedad rightContext es estática, no es una propiedad de un objeto de expresión regular individual. Debe usarse como RegExp.rightContext o RegExp["$'"].

+La propiedad `rightContext` es estática, no es una propiedad de un objeto de expresión regular individual. Debe usarse como `RegExp.rightContext` o `RegExp["$'"].` -

El valor de la propiedad rightContext es de solo lectura y se modifica cada que hay una coincidencia exitosa.

+El valor de la propiedad `rightContext` es de solo lectura y se modifica cada que hay una coincidencia exitosa. -

Tenga presente que no puede usar la abreviatura (RegExp.$'), porque el analizador espera una cadena de inicio, si lo hace optendra un error de sintaxis {{jsxref("SyntaxError")}} , para este caso, usted debe usar corchetes. consulte notación de paréntesis para acceso a la propiedad.

+Tenga presente que no puede usar la abreviatura (`RegExp.$'`), porque el analizador espera una cadena de inicio, si lo hace optendra un error de sintaxis {{jsxref("SyntaxError")}} , para este caso, usted debe usar corchetes. consulte [notación de paréntesis para acceso a la propiedad](/es/docs/Web/JavaScript/Reference/Operators/Property_Accessors). -

Ejemplos

+## Ejemplos -

Usando rightContext y $'

+### Usando `rightContext` y `$'` -
var re = /hola/g;
+```js
+var re = /hola/g;
 re.test('hola mundo!');
 RegExp.rightContext; // " mundo!"
 RegExp["$'"];       // " mundo!"
-
+``` -

Especificaciones

+## Especificaciones -

No estándar. No forma parte de ninguna especificación actual.

+No estándar. No forma parte de ninguna especificación actual. - +## Navegadores compactibles -
+{{Compat("javascript.builtins.RegExp.rightContext")}} +## Ver también -

{{Compat("javascript.builtins.RegExp.rightContext")}}

-
- -

Ver también

- -
    -
  • {{non-standard_inline}} {{jsxref("RegExp.input", "RegExp.input ($_)")}}
  • -
  • {{non-standard_inline}} {{jsxref("RegExp.lastMatch", "RegExp.lastMatch ($&)")}}
  • -
  • {{non-standard_inline}} {{jsxref("RegExp.lastParen", "RegExp.lastParen ($+)")}}
  • -
  • {{non-standard_inline}} {{jsxref("RegExp.leftContext", "RegExp.leftContext ($`)")}}
  • -
  • {{non-standard_inline}} {{jsxref("RegExp.n", "RegExp.$1-$9")}}
  • -
+- {{non-standard_inline}} {{jsxref("RegExp.input", "RegExp.input ($_)")}} +- {{non-standard_inline}} {{jsxref("RegExp.lastMatch", "RegExp.lastMatch ($&)")}} +- {{non-standard_inline}} {{jsxref("RegExp.lastParen", "RegExp.lastParen ($+)")}} +- {{non-standard_inline}} {{jsxref("RegExp.leftContext", "RegExp.leftContext ($`)")}} +- {{non-standard_inline}} {{jsxref("RegExp.n", "RegExp.$1-$9")}} diff --git a/files/es/web/javascript/reference/global_objects/regexp/test/index.md b/files/es/web/javascript/reference/global_objects/regexp/test/index.md index 7fe149f9169c66..979bfe3a9e59ca 100644 --- a/files/es/web/javascript/reference/global_objects/regexp/test/index.md +++ b/files/es/web/javascript/reference/global_objects/regexp/test/index.md @@ -8,45 +8,45 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/test original_slug: Web/JavaScript/Referencia/Objetos_globales/RegExp/test --- -
{{JSRef}}
+{{JSRef}} -

El método test() ejecuta la búsqueda de una ocurrencia entre una expresión regular y una cadena especificada. Devuelve true o false.

+El método **`test()`** ejecuta la búsqueda de una ocurrencia entre una expresión regular y una cadena especificada. Devuelve `true` o `false`. -

Sintaxis

+## Sintaxis -
regexObj.test(cadena)
+ regexObj.test(cadena) -

Parámetros

+### Parámetros -
-
cadena
-
La cadena a comparar contra la expresión regular.
-
+- `cadena` + - : La cadena a comparar contra la expresión regular. -

Valor de Retorno

+### Valor de Retorno -

Retorna true si existe una coincidencia entre la expresión regular y la cadena especificada; de lo contrario retorna false.

+Retorna `true` si existe una coincidencia entre la expresión regular y la cadena especificada; de lo contrario retorna `false`. -

Descripción

+## Descripción -

Use test() cuando desee saber si existe la ocurrencia de un patrón en una cadena (similar al método {{jsxref("String.prototype.search()")}}, la diferencia es que test() devuelve un booleano, mientras que search() devuelve el índice de la coincidencia (si la encuentra) o -1 si no la encuentra).

+Use `test()` cuando desee saber si existe la ocurrencia de un patrón en una cadena (similar al método {{jsxref("String.prototype.search()")}}, la diferencia es que `test()` devuelve un booleano, mientras que `search()` devuelve el índice de la coincidencia (si la encuentra) o -1 si no la encuentra). -

Si requiere más información (a coste de una ejecución más lenta) utilice el método {{jsxref("RegExp.prototype.exec()", "exec()")}}. Al igual que este último, multiples llamadas a test() sobre la misma instancia global de una expresión regular avanzará desde de la ocurrencia anterior.

+Si requiere más información (a coste de una ejecución más lenta) utilice el método {{jsxref("RegExp.prototype.exec()", "exec()")}}. Al igual que este último, multiples llamadas a `test()` sobre la misma instancia global de una expresión regular avanzará desde de la ocurrencia anterior. -

Ejemplos

+## Ejemplos -

Usando test()

+### Usando `test()` -

Ejemplo simple que prueba si "hello" está contenido al principio de una cadena y devuelve un valor booleano.

+Ejemplo simple que prueba si "hello" está contenido al principio de una cadena y devuelve un valor booleano. -
var cadena = "hello world!";
+```js
+var cadena = "hello world!";
 var result = /^hello/.test(cadena);
 console.log(result); // true
-
+``` -

El siguiente ejemplo registra un mensaje que depende del éxito de la prueba:

+El siguiente ejemplo registra un mensaje que depende del éxito de la prueba: -
function probarEntrada(regexp, cadena){
+```js
+function probarEntrada(regexp, cadena){
   var subcadena;
   if (regexp.test(cadena)) {
     subcadena = ' contiene ';
@@ -55,47 +55,22 @@ console.log(result); // true
   }
   console.log(cadena + subcadena + regexp.source);
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES3')}}{{Spec2('ES3')}}Definition inicial. Implementado en JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.10.6.3', 'RegExp.test')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-regexp.prototype.test', 'RegExp.test')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-regexp.prototype.test', 'RegExp.test')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en Navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Definition inicial. Implementado en JavaScript 1.2. | +| {{SpecName('ES5.1', '#sec-15.10.6.3', 'RegExp.test')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-regexp.prototype.test', 'RegExp.test')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-regexp.prototype.test', 'RegExp.test')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en Navegadores {{Compat("javascript.builtins.RegExp.test")}} -

Vea también

+## Vea también - +- El capítulo [Expresiones Regulares](/es/docs/Web/JavaScript/Guide/Regular_Expressions) de la [Guía JavaScript](/es/docs/Web/JavaScript/Guide) +- {{jsxref("RegExp")}} diff --git a/files/es/web/javascript/reference/global_objects/regexp/tostring/index.md b/files/es/web/javascript/reference/global_objects/regexp/tostring/index.md index 1699180ed65338..eff6e971735d37 100644 --- a/files/es/web/javascript/reference/global_objects/regexp/tostring/index.md +++ b/files/es/web/javascript/reference/global_objects/regexp/tostring/index.md @@ -8,83 +8,60 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/RegExp/toString original_slug: Web/JavaScript/Referencia/Objetos_globales/RegExp/toString --- -
{{JSRef}}
+{{JSRef}} -

El método toString() devuelve una cadena que representa el patrón de la expresión regular.

+El método **`toString()`** devuelve una cadena que representa el patrón de la expresión regular. -

Sintaxis

+## Sintaxis -
regexObj.toString();
+ regexObj.toString(); -

Valor de Retorno

+### Valor de Retorno -

Una cadena que representa el objeto dado.

+Una cadena que representa el objeto dado. -

Descripción

+## Descripción -

El objeto {{jsxref("RegExp")}} reemplaza el método toString() del objeto {{jsxref("Object")}}; no hereda de {{jsxref("Object.prototype.toString()")}}. Para objetos {{jsxref("RegExp")}}, el método toString() retorna una cadena que representa el patrón de la expresión regular.

+El objeto {{jsxref("RegExp")}} reemplaza el método `toString()` del objeto {{jsxref("Object")}}; no hereda de {{jsxref("Object.prototype.toString()")}}. Para objetos {{jsxref("RegExp")}}, el método `toString()` retorna una cadena que representa el patrón de la expresión regular. -

Ejemplos

+## Ejemplos -

Usando toString()

+### Usando `toString()` -

El siguiente ejemplo muestra la cadena de representación de un objeto {{jsxref("RegExp")}}:

+El siguiente ejemplo muestra la cadena de representación de un objeto {{jsxref("RegExp")}}: -
var myExp = new RegExp('a+b+c');
+```js
+var myExp = new RegExp('a+b+c');
 console.log(myExp.toString());  // '/a+b+c/'
 
 var foo = new RegExp('bar', 'g');
 console.log(foo.toString());    // '/bar/g'
-
+``` -

Expresiones regulares vacías y escapado

+### Expresiones regulares vacías y escapado -

A partir de ECMAScript 5, una expresión regular vacía devuelve la cadena "/(?:)/" y los terminadores de línea tales como "\n" son escapados:

+A partir de ECMAScript 5, una expresión regular vacía devuelve la cadena "/(?:)/" y los terminadores de línea tales como "\n" son escapados: -
new RegExp().toString(); // "/(?:)/"
+```js
+new RegExp().toString(); // "/(?:)/"
 
 new RegExp('\n').toString() === "/\n/";  // true, antes de ES5
 new RegExp('\n').toString() === "/\\n/"; // true, desde ES5
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES3')}}{{Spec2('ES3')}}Definición inicial. Implementado en JavaScript 1.1.
{{SpecName('ES5.1', '#sec-15.9.5.2', 'RegExp.prototype.toString')}}{{Spec2('ES5.1')}}Agregado de la definición para escapado de caracteres especiales y "(?:)" para expresiones regulares vacías.
{{SpecName('ES6', '#sec-regexp.prototype.tostring', 'RegExp.prototype.toString')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-regexp.prototype.tostring', 'RegExp.prototype.toString')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en Navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------------------------------------------------------------------------------------------------ | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Definición inicial. Implementado en JavaScript 1.1. | +| {{SpecName('ES5.1', '#sec-15.9.5.2', 'RegExp.prototype.toString')}} | {{Spec2('ES5.1')}} | Agregado de la definición para escapado de caracteres especiales y "(?:)" para expresiones regulares vacías. | +| {{SpecName('ES6', '#sec-regexp.prototype.tostring', 'RegExp.prototype.toString')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-regexp.prototype.tostring', 'RegExp.prototype.toString')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en Navegadores {{Compat("javascript.builtins.RegExp.toString")}} -

Vea también

+## Vea también -
    -
  • {{jsxref("Object.prototype.toString()")}}
  • -
+- {{jsxref("Object.prototype.toString()")}} diff --git a/files/es/web/javascript/reference/global_objects/set/add/index.md b/files/es/web/javascript/reference/global_objects/set/add/index.md index e228ec9ec3bf9c..1c5e9e2a4abcbd 100644 --- a/files/es/web/javascript/reference/global_objects/set/add/index.md +++ b/files/es/web/javascript/reference/global_objects/set/add/index.md @@ -4,74 +4,54 @@ slug: Web/JavaScript/Reference/Global_Objects/Set/add translation_of: Web/JavaScript/Reference/Global_Objects/Set/add original_slug: Web/JavaScript/Referencia/Objetos_globales/Set/add --- -
{{JSRef}}
+{{JSRef}} -

El método add() añade un nuevo elemento con un valor específico al final del objeto Set.

+El método **`add()`** añade un nuevo elemento con un valor específico al final del objeto `Set`. -

Sintaxis

+## Sintaxis -
mySet.add(value);
+ mySet.add(value); -

Parameters

+### Parameters -
-
value
-
Requerido. El valor del elemento a ser añadido al objeto Set.
-
+- value + - : Requerido. El valor del elemento a ser añadido al objeto `Set`. -

Return value

+### Return value -

El objeto Set.

+El objeto `Set`. -

Ejemplos

+## Ejemplos -

Usando el método add

+### Usando el método add -
var mySet = new Set();
+```js
+var mySet = new Set();
 
 mySet.add(1);
 mySet.add(5).add("some text"); // chainable
 
 console.log(mySet);
 // Set [1, 5, "some text"]
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES6', '#sec-set.prototype.add', 'Set.prototype.add')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-set.prototype.add', 'Set.prototype.add')}}{{Spec2('ESDraft')}}
- -

Browser compatibility

+``` + +## Specifications + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-set.prototype.add', 'Set.prototype.add')}} | {{Spec2('ES6')}} | Initial definition. | +| {{SpecName('ESDraft', '#sec-set.prototype.add', 'Set.prototype.add')}} | {{Spec2('ESDraft')}} | | + +## Browser compatibility {{Compat("javascript.builtins.Set.add")}} -

Firefox-specific notes

+## Firefox-specific notes -
    -
  • Prior to Firefox 33 {{geckoRelease("33")}}, Set.prototype.add returned undefined and was not chainable. This has been fixed ({{bug(1031632)}}). The behavior can be found in Chrome/v8 as well (issue).
  • -
+- Prior to Firefox 33 {{geckoRelease("33")}}, `Set.prototype.add` returned `undefined` and was not chainable. This has been fixed ({{bug(1031632)}}). The behavior can be found in Chrome/v8 as well ([issue](https://code.google.com/p/v8/issues/detail?id=3410)). -

See also

+## See also -
    -
  • {{jsxref("Set")}}
  • -
  • {{jsxref("Set.prototype.delete()")}}
  • -
  • {{jsxref("Set.prototype.has()")}}
  • -
+- {{jsxref("Set")}} +- {{jsxref("Set.prototype.delete()")}} +- {{jsxref("Set.prototype.has()")}} diff --git a/files/es/web/javascript/reference/global_objects/set/clear/index.md b/files/es/web/javascript/reference/global_objects/set/clear/index.md index f20ddeaa23780b..422aa6198ffe70 100644 --- a/files/es/web/javascript/reference/global_objects/set/clear/index.md +++ b/files/es/web/javascript/reference/global_objects/set/clear/index.md @@ -9,23 +9,24 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Set/clear original_slug: Web/JavaScript/Referencia/Objetos_globales/Set/clear --- -
{{JSRef}}
+{{JSRef}} -

El método clear() remueve todos los elementos de un objeto Set.

+El método **`clear()`** remueve todos los elementos de un objeto `Set`. -

Syntaxis

+## Syntaxis -
mySet.clear();
+ mySet.clear(); -

Valor de retorno

+### Valor de retorno -

{{jsxref("undefined")}}.

+{{jsxref("undefined")}}. -

Ejemplos

+## Ejemplos -

Usando el método clear

+### Usando el método clear -
var mySet = new Set();
+```js
+var mySet = new Set();
 mySet.add(1);
 mySet.add("foo");
 
@@ -36,37 +37,20 @@ mySet.clear();
 
 mySet.size;       // 0
 mySet.has("bar")  // false
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-set.prototype.clear', 'Set.prototype.clear')}}{{Spec2('ES6')}}Initial definition.
{{SpecName('ESDraft', '#sec-set.prototype.clear', 'Set.prototype.clear')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-set.prototype.clear', 'Set.prototype.clear')}} | {{Spec2('ES6')}} | Initial definition. | +| {{SpecName('ESDraft', '#sec-set.prototype.clear', 'Set.prototype.clear')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegadores {{Compat("javascript.builtins.Set.clear")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Set")}}
  • -
  • {{jsxref("Set.prototype.delete()")}}
  • -
+- {{jsxref("Set")}} +- {{jsxref("Set.prototype.delete()")}} diff --git a/files/es/web/javascript/reference/global_objects/set/delete/index.md b/files/es/web/javascript/reference/global_objects/set/delete/index.md index 29813e5da432eb..098217f5da29f8 100644 --- a/files/es/web/javascript/reference/global_objects/set/delete/index.md +++ b/files/es/web/javascript/reference/global_objects/set/delete/index.md @@ -4,67 +4,49 @@ slug: Web/JavaScript/Reference/Global_Objects/Set/delete translation_of: Web/JavaScript/Reference/Global_Objects/Set/delete original_slug: Web/JavaScript/Referencia/Objetos_globales/Set/delete --- -
{{JSRef}}
+{{JSRef}} -

El método delete() remueve el elemento especificado del objeto Set.

+El método **`delete()`** remueve el elemento especificado del objeto `Set`. -

Syntaxis

+## Syntaxis -
mySet.delete(value);
+ mySet.delete(value); -

Parametros

+### Parametros -
-
valor
-
Requerido. El valor del elemento a remover del objeto Set.
-
+- valor + - : Requerido. El valor del elemento a remover del objeto `Set`. -

Valor de retorno

+### Valor de retorno -

true si el elemento ha sido removido exitosamente en el Set; de otra manera retorna false.

+`true` si el elemento ha sido removido exitosamente en el `Set`; de otra manera retorna `false`. -

Ejemplos

+## Ejemplos -

Usando el método delete

+### Usando el método `delete` -
var mySet = new Set();
+```js
+var mySet = new Set();
 mySet.add("foo");
 
 mySet.delete("bar"); // Retorna false. No hay elemento "bar" para ser removido.
 mySet.delete("foo"); // Retorna true.  Removido exitosamente.
 
 mySet.has("foo");    // Retorna false. El elemento "foo" ya no está presente.
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-set.prototype.delete', 'Set.prototype.delete')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-set.prototype.delete', 'Set.prototype.delete')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-set.prototype.delete', 'Set.prototype.delete')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-set.prototype.delete', 'Set.prototype.delete')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegadores {{Compat("javascript.builtins.Set.delete")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Set")}}
  • -
  • {{jsxref("Set.prototype.clear()")}}
  • -
+- {{jsxref("Set")}} +- {{jsxref("Set.prototype.clear()")}} diff --git a/files/es/web/javascript/reference/global_objects/set/has/index.md b/files/es/web/javascript/reference/global_objects/set/has/index.md index 263dee146693f8..4597d19ad2bcf8 100644 --- a/files/es/web/javascript/reference/global_objects/set/has/index.md +++ b/files/es/web/javascript/reference/global_objects/set/has/index.md @@ -9,69 +9,49 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Set/has original_slug: Web/JavaScript/Referencia/Objetos_globales/Set/has --- -
{{JSRef}}
+{{JSRef}} -

El método has() retorna un booleano indicando si el elemento especificado existe en el objeto Set o no.

+El método **`has()`** retorna un booleano indicando si el elemento especificado existe en el objeto `Set` o no. -

Syntaxis

+## Syntaxis -
mySet.has(value);
+ mySet.has(value); -

Parametros

+### Parametros -
-
valor
-
Requerido. El valor del cual se probará su presencia en el objeto Set.
-
+- valor + - : Requerido. El valor del cual se probará su presencia en el objeto `Set`. -

Valor de retorno

+### Valor de retorno -
-
Booleano
-
Retorna true si el elemento con el valor especificado existe en el objeto Set; de otra manera retorna false.
-
+- Booleano + - : Retorna `true` si el elemento con el valor especificado existe en el objeto `Set`; de otra manera retorna `false`. -

Ejemplos

+## Ejemplos -

Usando el método has

+### Usando el método `has` -
var mySet = new Set();
+```js
+var mySet = new Set();
 mySet.add("foo");
 
 mySet.has("foo");  // retorna true
 mySet.has("bar");  // retorna false
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-set.prototype.has', 'Set.prototype.has')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-set.prototype.has', 'Set.prototype.has')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-set.prototype.has', 'Set.prototype.has')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-set.prototype.has', 'Set.prototype.has')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegadores {{Compat("javascript.builtins.Set.has")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Set")}}
  • -
  • {{jsxref("Set.prototype.add()")}}
  • -
  • {{jsxref("Set.prototype.delete()")}}
  • -
+- {{jsxref("Set")}} +- {{jsxref("Set.prototype.add()")}} +- {{jsxref("Set.prototype.delete()")}} diff --git a/files/es/web/javascript/reference/global_objects/set/size/index.md b/files/es/web/javascript/reference/global_objects/set/size/index.md index 012efaf30e4c9e..adeb515295debb 100644 --- a/files/es/web/javascript/reference/global_objects/set/size/index.md +++ b/files/es/web/javascript/reference/global_objects/set/size/index.md @@ -4,54 +4,38 @@ slug: Web/JavaScript/Reference/Global_Objects/Set/size translation_of: Web/JavaScript/Reference/Global_Objects/Set/size original_slug: Web/JavaScript/Referencia/Objetos_globales/Set/size --- -
{{JSRef}}
+{{JSRef}} -

La propiedad de acceso size devuelve el número de elementos que hay en el objeto {{jsxref("Set")}}.

+La propiedad de acceso **`size`** devuelve el número de elementos que hay en el objeto {{jsxref("Set")}}. -

Descripción

+## Descripción -

El valor de size es un entero que representa cuantas entradas tiene el objeto Set. La función de accesso set para size es undefined; no se puede cambiar esta propiedad.

+El valor de `size` es un entero que representa cuantas entradas tiene el objeto `Set`. La función de accesso set para `size` es `undefined`; no se puede cambiar esta propiedad. -

Ejemplos

+## Ejemplos -

Usando size

+### Usando `size` -
var mySet = new Set();
+```js
+var mySet = new Set();
 mySet.add(1);
 mySet.add(5);
 mySet.add("un texto")
 
 mySet.size; // 3
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
{{SpecName('ES6', '#sec-get-set.prototype.size', 'Set.prototype.size')}}{{Spec2('ES6')}}Definición inicial
{{SpecName('ESDraft', '#sec-get-set.prototype.size', 'Set.prototype.size')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegadores

+``` + +## Especificaciones + +| Especificación | Estatus | Comentario | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------ | +| {{SpecName('ES6', '#sec-get-set.prototype.size', 'Set.prototype.size')}} | {{Spec2('ES6')}} | Definición inicial | +| {{SpecName('ESDraft', '#sec-get-set.prototype.size', 'Set.prototype.size')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegadores {{Compat("javascript.builtins.Set.size")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("Set")}}
  • -
+- {{jsxref("Set")}} diff --git a/files/es/web/javascript/reference/global_objects/set/values/index.md b/files/es/web/javascript/reference/global_objects/set/values/index.md index c61e088d750561..02ca2e17d7b927 100644 --- a/files/es/web/javascript/reference/global_objects/set/values/index.md +++ b/files/es/web/javascript/reference/global_objects/set/values/index.md @@ -4,30 +4,28 @@ slug: Web/JavaScript/Reference/Global_Objects/Set/values translation_of: Web/JavaScript/Reference/Global_Objects/Set/values original_slug: Web/JavaScript/Referencia/Objetos_globales/Set/values --- -
{{JSRef}}
+{{JSRef}} -

El método values() retorna un objeto de tipo Iterator que contiene los valores para cada elemento en el objecto Set en orden de inserción.

+El método **`values()`** retorna un objeto de tipo `Iterator` que contiene los valores para cada elemento en el objecto `Set` en orden de inserción. -

El metodo keys() es un alias para este metodo (por similaridad con objetos {{jsxref("Map")}}); se comporta exactamente igual y retorna valores para cada elemento de un Set.

+El metodo **`keys()`** es un alias para este metodo (por similaridad con objetos {{jsxref("Map")}}); se comporta exactamente igual y retorna **valores** para cada elemento de un `Set`. -
{{EmbedInteractiveExample("pages/js/set-prototype-values.html")}}
+{{EmbedInteractiveExample("pages/js/set-prototype-values.html")}} +## Syntax + mySet.values(); -

Syntax

+### Return value -
mySet.values();
-
+Un nuevo objeto **`Iterator`** que contiene los valores para cada elemento en el `Set` dado, en orden de inserción. -

Return value

+## Examples -

Un nuevo objeto Iterator que contiene los valores para cada elemento en el Set dado, en orden de inserción.

+### Using `values()` -

Examples

- -

Using values()

- -
var mySet = new Set();
+```js
+var mySet = new Set();
 mySet.add('foo');
 mySet.add('bar');
 mySet.add('baz');
@@ -36,38 +34,20 @@ var setIter = mySet.values();
 
 console.log(setIter.next().value); // "foo"
 console.log(setIter.next().value); // "bar"
-console.log(setIter.next().value); // "baz"
- -

Specifications

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-set.prototype.values', 'Set.prototype.values')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-set.prototype.values', 'Set.prototype.values')}}{{Spec2('ESDraft')}}
+console.log(setIter.next().value); // "baz" +``` -

Browser compatibility

+## Specifications +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-set.prototype.values', 'Set.prototype.values')}} | {{Spec2('ES2015')}} | Initial definition. | +| {{SpecName('ESDraft', '#sec-set.prototype.values', 'Set.prototype.values')}} | {{Spec2('ESDraft')}} | | +## Browser compatibility -

{{Compat("javascript.builtins.Set.values")}}

+{{Compat("javascript.builtins.Set.values")}} -

See also

+## See also -
    -
  • {{jsxref("Set.prototype.entries()")}}
  • -
+- {{jsxref("Set.prototype.entries()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/anchor/index.md b/files/es/web/javascript/reference/global_objects/string/anchor/index.md index 2a63c56bc6544c..1dc54a731c2a7b 100644 --- a/files/es/web/javascript/reference/global_objects/string/anchor/index.md +++ b/files/es/web/javascript/reference/global_objects/string/anchor/index.md @@ -10,48 +10,46 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/anchor original_slug: Web/JavaScript/Referencia/Objetos_globales/String/anchor --- -
{{JSRef("Objetos_globales", "String")}}
+{{JSRef("Objetos_globales", "String")}} -

Resumen

+## Resumen -

El método anchor() crea un ancla HTML, {{HTMLElement("a")}}, que se usa como un enlace a hipertexto.

+El método **`anchor()`** crea un ancla HTML, {{HTMLElement("a")}}, que se usa como un enlace a hipertexto. -

Sintaxis

+## Sintaxis -
cadena.anchor(nombreAtributo)
+ cadena.anchor(nombreAtributo) -

Parámetros

+### Parámetros -
-
nombreAtributo
-
Una cadena.
-
+- `nombreAtributo` + - : Una cadena. -

Descripción

+## Descripción -

Usa el método anchor con los métodos document.write o document.writeln para crear y mostrar programando un ancla en un documento. Crea el ancla con el método anchor, y entonces llama a write o writeln para mostrar el ancla en el documento. En JavaScript en el lado Servidor, usa la función write para mostrar el ancla.

+Usa el método `anchor` con los métodos `document.write` o `document.writeln` para crear y mostrar programando un ancla en un documento. Crea el ancla con el método `anchor`, y entonces llama a `write` o `writeln` para mostrar el ancla en el documento. En JavaScript en el lado Servidor, usa la función `write` para mostrar el ancla. -

En la sintaxis, la cadena de texto representa el texto literal que usted quiere que el usuario vea. La cadena nombreAtributo representa el atributo NAME de la etiqueta A.

+En la sintaxis, la cadena de texto representa el texto literal que usted quiere que el usuario vea. La cadena `nombreAtributo` representa el atributo `NAME` de la etiqueta A. -

Los anclas creados con el método anchor serán elementos del arreglo {{domxref("document.anchors")}}

+Los anclas creados con el método `anchor` serán elementos del arreglo {{domxref("document.anchors")}} -

Ejemplos

+## Ejemplos -

Ejemplo: Usando anchor

+### Ejemplo: Usando `anchor` -

El siguiente código de ejemplo dentro de un elemento HTML script:

+El siguiente código de ejemplo dentro de un elemento HTML `script`: -
var miCadena = "Tabla de Contenidos";
+```js
+var miCadena = "Tabla de Contenidos";
 document.body.innerHTML = miCadena.anchor("ancla_contenidos");
-
+``` -

obtendrá el siguiente HTML:

+obtendrá el siguiente HTML: -
<a name="ancla_contenidos">Tabla de Contenidos</A>
-
+```html +Tabla de Contenidos +``` -

Vea También

+### Vea También -
    -
  • {{jsxref("String.prototype.link()")}}
  • -
+- {{jsxref("String.prototype.link()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/big/index.md b/files/es/web/javascript/reference/global_objects/string/big/index.md index ad13429a094717..07bddfee66688c 100644 --- a/files/es/web/javascript/reference/global_objects/string/big/index.md +++ b/files/es/web/javascript/reference/global_objects/string/big/index.md @@ -11,45 +11,41 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/big original_slug: Web/JavaScript/Referencia/Objetos_globales/String/big --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -

{{deprecated_header}}

+{{deprecated_header}} -

Resumen

+## Resumen -

Provoca que una cadena sea mostrada con un tamaño de fuente grade, como si estuviese en una etiqueta {{HTMLElement("big")}}.

+Provoca que una cadena sea mostrada con un tamaño de fuente grade, como si estuviese en una etiqueta {{HTMLElement("big")}}. -

Sintaxis

+## Sintaxis -
cadena.big()
+ cadena.big() -

Descripción

+## Descripción -

Usa el método big para formatear y mostrar una cadena en un documento.

+Usa el método `big` para formatear y mostrar una cadena en un documento. -

Ejemplos

+## Ejemplos -

Ejemplo: Usando big

+### Ejemplo: Usando `big` -

El siguiente ejemplo usa los métodos de string para cambiar el tamañó de una cadena:

+El siguiente ejemplo usa los métodos de `string` para cambiar el tamañó de una cadena: -
var cadenaMundo="¡Hola Mundo!";
+    var cadenaMundo="¡Hola Mundo!";
 
-console.log(cadenaMundo.small());
-console.log("<P>" + cadenaMundo.big());
-console.log("<P>" + cadenaMundo.fontsize(7));
-
+ console.log(cadenaMundo.small()); + console.log("

" + cadenaMundo.big()); + console.log("

" + cadenaMundo.fontsize(7)); -

Este ejemplo produce el mismo resultado que el siguiente HTML:

+Este ejemplo produce el mismo resultado que el siguiente HTML: -
<small>¡Hola Mundo!</small>
-<p><big>¡Hola Mundo!</big>
-<p><fontsize=7>¡Hola Mundo!</fontsize>
-
+ ¡Hola Mundo! +

¡Hola Mundo! +

¡Hola Mundo! -

Vea También

+### Vea También -
    -
  • {{jsxref("String.prototype.fontsize()")}}
  • -
  • {{jsxref("String.prototype.small()")}}
  • -
+- {{jsxref("String.prototype.fontsize()")}} +- {{jsxref("String.prototype.small()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/blink/index.md b/files/es/web/javascript/reference/global_objects/string/blink/index.md index 390b4157770666..6cba3cadafb4f3 100644 --- a/files/es/web/javascript/reference/global_objects/string/blink/index.md +++ b/files/es/web/javascript/reference/global_objects/string/blink/index.md @@ -11,33 +11,48 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/blink original_slug: Web/JavaScript/Referencia/Objetos_globales/String/blink --- -

{{JSRef("Objetos_globales", "String")}}

-

{{deprecated_header}}

-

Resumen

-

Causa que una cadena parpadee como si estuviese en una etiqueta {{HTMLElement("blink")}}.

-

Sintaxis

-
cadena.blink()
-

Descripción

-

Usa el método blink para formatear y mostrar una cadena en un documento.

-

Ejemplos

-

Ejemplo: Usando métodos de string para cambiar el formateado de una cadena

-

El siguiente ejemplo usa métodos de string para cambiar el formateado de una cadena:

-
var cadenaMundo="¡Hola mundo!"
+{{JSRef("Objetos_globales", "String")}}
+
+{{deprecated_header}}
+
+## Resumen
+
+Causa que una cadena parpadee como si estuviese en una etiqueta {{HTMLElement("blink")}}.
+
+## Sintaxis
+
+    cadena.blink()
+
+## Descripción
+
+Usa el método `blink` para formatear y mostrar una cadena en un documento.
+
+## Ejemplos
+
+### Ejemplo: Usando métodos de `string` para cambiar el formateado de una cadena
+
+El siguiente ejemplo usa métodos de `string` para cambiar el formateado de una cadena:
+
+```js
+var cadenaMundo="¡Hola mundo!"
 
 console.log(cadenaMundo.blink())
 console.log(cadenaMundo.bold())
 console.log(cadenaMundo.italics())
 console.log(cadenaMundo.strike())
-
-

Este ejemplo produce el mismo resultado que el siguiente código HTML:

-
<blink>¡Hola mundo!</blink>
-<b>¡Hola mundo!</b>
-<i>¡Hola mundo!</b>
-<strike>¡Hola mundo!</strike>
-
-

Vea también

-
    -
  • {{jsxref("String.prototype.bold()")}}
  • -
  • {{jsxref("String.prototype.italics()")}}
  • -
  • {{jsxref("String.prototype.strike()")}}
  • -
+``` + +Este ejemplo produce el mismo resultado que el siguiente código HTML: + +```html +¡Hola mundo! +¡Hola mundo! +¡Hola mundo! +¡Hola mundo! +``` + +## Vea también + +- {{jsxref("String.prototype.bold()")}} +- {{jsxref("String.prototype.italics()")}} +- {{jsxref("String.prototype.strike()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/bold/index.md b/files/es/web/javascript/reference/global_objects/string/bold/index.md index 130e23b0013cb4..f020088ae14b77 100644 --- a/files/es/web/javascript/reference/global_objects/string/bold/index.md +++ b/files/es/web/javascript/reference/global_objects/string/bold/index.md @@ -11,34 +11,48 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/bold original_slug: Web/JavaScript/Referencia/Objetos_globales/String/bold --- -

{{JSRef("Objetos_globales", "String")}}
-
- {{Deprecated_header}}

-

Resumen

-

Provoca que una cadena se muestre en negrita como si estuviera en una etiqueta {{HTMLElement("b")}}.

-

Sintaxis

-
cadena.bold()
-

Descripción

-

Usa el método bold para formatear y mostrar una cadena en un documento.

-

Ejemplos

-

Ejemplo: Usando métodos de string para cambiar el formateado de una cadena

-

El siguiente ejemplo usa métodos de string para cambiar el formateado de una cadena:

-
var cadenaMundo="¡Hola mundo!"
+{{JSRef("Objetos_globales", "String")}}
+
+{{Deprecated_header}}
+
+## Resumen
+
+Provoca que una cadena se muestre en negrita como si estuviera en una etiqueta {{HTMLElement("b")}}.
+
+## Sintaxis
+
+    cadena.bold()
+
+## Descripción
+
+Usa el método `bold` para formatear y mostrar una cadena en un documento.
+
+## Ejemplos
+
+### Ejemplo: Usando métodos de `string` para cambiar el formateado de una cadena
+
+El siguiente ejemplo usa métodos de `string` para cambiar el formateado de una cadena:
+
+```js
+var cadenaMundo="¡Hola mundo!"
 
 console.log(cadenaMundo.blink())
 console.log(cadenaMundo.bold())
 console.log(cadenaMundo.italics())
 console.log(cadenaMundo.strike())
-
-

Este ejemplo produce el mismo resultado que el siguiente código HTML:

-
<blink>¡Hola mundo!</blink>
-<b>¡Hola mundo!</b>
-<i>¡Hola mundo!</i>
-<strike>¡Hola mundo!</strike>
-
-

Vea También

-
    -
  • {{jsxref("String.prototype.blink()")}}
  • -
  • {{jsxref("String.prototype.italics()")}}
  • -
  • {{jsxref("String.prototype.strike()")}}
  • -
+``` + +Este ejemplo produce el mismo resultado que el siguiente código HTML: + +```html +¡Hola mundo! +¡Hola mundo! +¡Hola mundo! +¡Hola mundo! +``` + +### Vea También + +- {{jsxref("String.prototype.blink()")}} +- {{jsxref("String.prototype.italics()")}} +- {{jsxref("String.prototype.strike()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/charat/index.md b/files/es/web/javascript/reference/global_objects/string/charat/index.md index abd4d0d6c8fb9f..46f96cb73e5c12 100644 --- a/files/es/web/javascript/reference/global_objects/string/charat/index.md +++ b/files/es/web/javascript/reference/global_objects/string/charat/index.md @@ -9,34 +9,33 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/charAt original_slug: Web/JavaScript/Referencia/Objetos_globales/String/charAt --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -

Resumen

+## Resumen -

El método charAt() de {{jsxref("String")}} devuelve en un nuevo String el carácter UTF-16 de una cadena.

+El método **`charAt() `**`de`**` `**{{jsxref("String")}} devuelve en un nuevo String el carácter UTF-16 de una cadena. -

Sintaxis

+## Sintaxis -
str.charAt(indice)
+ str.charAt(indice) -

Parámetros

+### Parámetros -
-
indice
-
Un entero entre 0 y 1 menos que la longitud de la cadena. Si no se proporciona ningún indice charAt() utilizará 0.
-
+- `indice` + - : Un entero entre 0 y 1 menos que la longitud de la cadena. Si no se proporciona ningún indice charAt() utilizará 0. -

Descripción

+## Descripción -

Los caracteres de una cadena se indexan de izquierda a derecha. El índice del primer caracter es 0, y el índice del último caracter en una cadena llamada nombreCadena es nombreCadena.length - 1. Si el indice que usted proporciona está fuera del rango, JavaScript devuelve una cadena vacía.

+Los caracteres de una cadena se indexan de izquierda a derecha. El índice del primer caracter es 0, y el índice del último caracter en una cadena llamada `nombreCadena` es `nombreCadena.length - 1`. Si el `indice` que usted proporciona está fuera del rango, JavaScript devuelve una cadena vacía. -

Ejemplos

+## Ejemplos -

Ejemplo: Mostrando caracteres de diferentes localizaciones en una cadena

+### Ejemplo: Mostrando caracteres de diferentes localizaciones en una cadena -

El siguiente ejemplo muestra caracteres de diferentes localizaciones en la cadena "Brave new world":

+El siguiente ejemplo muestra caracteres de diferentes localizaciones en la cadena "`Brave new world`": -
var cualquierCadena="Brave new world";
+```js
+var cualquierCadena="Brave new world";
 
 console.log("El carácter en el índice 0 es '" + cualquierCadena.charAt(0) + "'")
 console.log("El carácter en el índice 1 es '" + cualquierCadena.charAt(1) + "'")
@@ -44,55 +43,33 @@ console.log("El carácter en el índice 2 es '" + cualquierCadena.charAt(2) + "'
 console.log("El carácter en el índice 3 es '" + cualquierCadena.charAt(3) + "'")
 console.log("El carácter en el índice 4 es '" + cualquierCadena.charAt(4) + "'")
 console.log("El carácter en el índice 999 es '" + cualquierCadena.charAt(999) + "'")
-
- -

Estas líneas muestran lo siguiente:

- -
El carácter en el índice 0 es 'B'
-El carácter en el índice 1 es 'r'
-El carácter en el índice 2 es 'a'
-El carácter en el índice 3 es 'v'
-El carácter en el índice 4 es 'e'
-El carácter en el índice 999 es ''
-
- -

Especificaciónes

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
ECMAScript 1st Edition.EstándarPrimera definición
{{SpecName('ES5.1', '#sec-15.5.4.4', 'String.prototype.charAt')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-string.prototype.charat', 'String.prototype.charAt')}}{{Spec2('ES6')}}
- -

Compatibilidad de navegadores

+``` + +Estas líneas muestran lo siguiente: + + El carácter en el índice 0 es 'B' + El carácter en el índice 1 es 'r' + El carácter en el índice 2 es 'a' + El carácter en el índice 3 es 'v' + El carácter en el índice 4 es 'e' + El carácter en el índice 999 es '' + +## Especificaciónes + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------- | ------------------------ | ------------------ | +| ECMAScript 1st Edition. | Estándar | Primera definición | +| {{SpecName('ES5.1', '#sec-15.5.4.4', 'String.prototype.charAt')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-string.prototype.charat', 'String.prototype.charAt')}} | {{Spec2('ES6')}} | | + +## Compatibilidad de navegadores {{Compat("javascript.builtins.String.charAt")}} -

Vea También

+## Vea También -
    -
  • {{jsxref("String.prototype.indexOf()")}}, {{jsxref("String.prototype.lastIndexOf()")}}
  • -
  • {{jsxref("String.prototype.split()")}}
  • -
  • {{jsxref("String.prototype.charCodeAt()")}}
  • -
  • {{jsxref("String.fromCodePoint()")}}
  • -
  • {{jsxref("String.prototype.codePointAt()")}}
  • -
+- {{jsxref("String.prototype.indexOf()")}}, {{jsxref("String.prototype.lastIndexOf()")}} +- {{jsxref("String.prototype.split()")}} +- {{jsxref("String.prototype.charCodeAt()")}} +- {{jsxref("String.fromCodePoint()")}} +- {{jsxref("String.prototype.codePointAt()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/charcodeat/index.md b/files/es/web/javascript/reference/global_objects/string/charcodeat/index.md index cd0e1b478363a5..37cc7d42ec1a75 100644 --- a/files/es/web/javascript/reference/global_objects/string/charcodeat/index.md +++ b/files/es/web/javascript/reference/global_objects/string/charcodeat/index.md @@ -10,57 +10,48 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/charCodeAt original_slug: Web/JavaScript/Referencia/Objetos_globales/String/charCodeAt --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -

Resumen

+## Resumen -

El charCodeAt() método devuelve un número indicando el valor Unicode del carácter en el índice proporcionado.

+El **`charCodeAt()`** método devuelve un número indicando el valor Unicode del carácter en el índice proporcionado. -

Sintaxis

+## Sintaxis -
cadena.charCodeAt(indice);
-
+ cadena.charCodeAt(indice); -

Parámetros

+### Parámetros -
-
indice
-
Un entero entre 0 y 1 menos que la longitud de la cadena; si no se especifica, su valor predeterminado es 0.
-
+- `indice` + - : Un entero entre 0 y 1 menos que la longitud de la cadena; si no se especifica, su valor predeterminado es 0. -

Descripción

+## Descripción -

El rango del código Unicode va del 0 al 1,114,1110x10FFFF. Los primeros 128 códigos de Unicode encajan directamente con los códigos de caractéres de la codificación ASCII. Para información sobre Unicode, vea la Guía de JavaScript. Observe que charCodeAt siempre devolverá un valor menor de 65.536.

+El rango del código Unicode va del 0 al 1,114,1110x10FFFF. Los primeros 128 códigos de Unicode encajan directamente con los códigos de caractéres de la codificación ASCII. Para información sobre Unicode, vea la [Guía de JavaScript](/es/docs/Web/JavaScript/Guide/Valores,_variables_y_literales#Unicode). Observe que `charCodeAt` siempre devolverá un valor menor de 65.536. -

charCodeAt devuelve {{jsxref("NaN")}} si el indice proporcionado no está entre 0 y 1 menos de la longitud de la cadena.

+`charCodeAt` devuelve {{jsxref("NaN")}} si el indice proporcionado no está entre 0 y 1 menos de la longitud de la cadena. -

En JavaScript 1.2 el método charCodeAt devuelve un número indicando el valor de la hoja de códigos ISO-Latin-1 del carácter correspondiente al índice proporcionado. El rango de la hoja de códigos ISO-Latin-1 va del 0 al 255. Del 0 al 127 encajan directamente con la hoja de códigos ASCII.

+En JavaScript 1.2 el método `charCodeAt` devuelve un número indicando el valor de la hoja de códigos ISO-Latin-1 del carácter correspondiente al índice proporcionado. El rango de la hoja de códigos ISO-Latin-1 va del 0 al 255. Del 0 al 127 encajan directamente con la hoja de códigos ASCII. -

Ejemplos

+## Ejemplos -

Ejemplo: Usando charCodeAt

+### Ejemplo: Usando `charCodeAt` -

El siguiente ejemplo devuelve 65, el valor Unicode para A.

+El siguiente ejemplo devuelve 65, el valor Unicode para A. -
"ABC".charCodeAt(0) // returns 65
-
+ "ABC".charCodeAt(0) // returns 65 -

El siguiente ejemplo devuelve 83.

+El siguiente ejemplo devuelve 83. -
"AaSdas".charCodeAt(2) // returns 83
-
+ "AaSdas".charCodeAt(2) // returns 83 -

teniendo en cuenta que 2 es la posicion de la letra. Si `S` fuera minuscula, el Unicode es diferente

+teniendo en cuenta que 2 es la posicion de la letra. Si \`S\` fuera minuscula, el Unicode es diferente -
"Aasdas".charCodeAt(2) // returns 115
+ "Aasdas".charCodeAt(2) // returns 115 -

+## Vea También -

Vea También

- -
    -
  • {{jsxref("String.fromCharCode()")}}
  • -
  • {{jsxref("String.prototype.charAt()")}}
  • -
  • {{jsxref("String.fromCodePoint()")}}
  • -
  • {{jsxref("String.prototype.codePointAt()")}}
  • -
+- {{jsxref("String.fromCharCode()")}} +- {{jsxref("String.prototype.charAt()")}} +- {{jsxref("String.fromCodePoint()")}} +- {{jsxref("String.prototype.codePointAt()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/codepointat/index.md b/files/es/web/javascript/reference/global_objects/string/codepointat/index.md index 09286167fa1b2a..f1effaef85e407 100644 --- a/files/es/web/javascript/reference/global_objects/string/codepointat/index.md +++ b/files/es/web/javascript/reference/global_objects/string/codepointat/index.md @@ -4,46 +4,42 @@ slug: Web/JavaScript/Reference/Global_Objects/String/codePointAt translation_of: Web/JavaScript/Reference/Global_Objects/String/codePointAt original_slug: Web/JavaScript/Referencia/Objetos_globales/String/codePointAt --- -
{{JSRef}}
+{{JSRef}}El método **`codePointAt() `**`d`evuelve un entero no negativo que equivale al valor Unicode code point del carácter. -
+## Sintaxis -
El método codePointAt() devuelve un entero no negativo que equivale al valor Unicode code point del carácter.
+ str.codePointAt(indice) -

Sintaxis

+### Parámetros -
str.codePointAt(indice)
+- `indice` + - : Índice del carácter en la cadena del que se quiere obtener el valor del Unicode code point. -

Parámetros

+### Valor de retorno -
-
indice
-
Índice del carácter en la cadena del que se quiere obtener el valor del Unicode code point.
-
+Un número que equivale al valor code point del carácter especificado en el índice de la cadena; devuelve {{jsxref("undefined")}} si no se encuentra carácter en la posición especifica. -

Valor de retorno

+## Description -

Un número que equivale al valor code point del carácter especificado en el índice de la cadena; devuelve {{jsxref("undefined")}} si no se encuentra carácter en la posición especifica.

+If there is no element at the specified position, {{jsxref("undefined")}} is returned. If no UTF-16 surrogate pair begins at `pos`, the code unit at `pos` is returned. -

Description

+## Examples -

If there is no element at the specified position, {{jsxref("undefined")}} is returned. If no UTF-16 surrogate pair begins at pos, the code unit at pos is returned.

+### Using `codePointAt()` -

Examples

- -

Using codePointAt()

- -
'ABC'.codePointAt(1);          // 66
+```js
+'ABC'.codePointAt(1);          // 66
 '\uD800\uDC00'.codePointAt(0); // 65536
 
 'XYZ'.codePointAt(42); // undefined
-
+``` -

Polyfill

+## Polyfill -

The following extends Strings to include the codePointAt() function as specified in ECMAScript 2015 for browsers not supporting it natively.

+The following extends Strings to include the `codePointAt()` function as specified in ECMAScript 2015 for browsers not supporting it natively. -
/*! http://mths.be/codepointat v0.1.0 by @mathias */
+```js
+/*! http://mths.be/codepointat v0.1.0 by @mathias */
 if (!String.prototype.codePointAt) {
   (function() {
     'use strict'; // needed to support `apply`/`call` with `undefined`/`null`
@@ -59,18 +55,18 @@ if (!String.prototype.codePointAt) {
         index = 0;
       }
       // Account for out-of-bounds indices:
-      if (index < 0 || index >= size) {
+      if (index < 0 || index >= size) {
         return undefined;
       }
       // Get the first code unit
       var first = string.charCodeAt(index);
       var second;
       if ( // check if it’s the start of a surrogate pair
-        first >= 0xD800 && first <= 0xDBFF && // high surrogate
-        size > index + 1 // there is a next code unit
+        first >= 0xD800 && first <= 0xDBFF && // high surrogate
+        size > index + 1 // there is a next code unit
       ) {
         second = string.charCodeAt(index + 1);
-        if (second >= 0xDC00 && second <= 0xDFFF) { // low surrogate
+        if (second >= 0xDC00 && second <= 0xDFFF) { // low surrogate
           // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
           return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;
         }
@@ -88,39 +84,22 @@ if (!String.prototype.codePointAt) {
     }
   }());
 }
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES2015', '#sec-string.prototype.codepointat', 'String.prototype.codePointAt')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-string.prototype.codepointat', 'String.prototype.codePointAt')}}{{Spec2('ESDraft')}}
- -

Browser compatibility

- -

{{Compat("javascript.builtins.String.codePointAt")}}

- -

See also

- -
    -
  • {{jsxref("String.fromCodePoint()")}}
  • -
  • {{jsxref("String.fromCharCode()")}}
  • -
  • {{jsxref("String.prototype.charCodeAt()")}}
  • -
  • {{jsxref("String.prototype.charAt()")}}
  • -
+``` + +## Specifications + +| Specification | Status | Comment | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-string.prototype.codepointat', 'String.prototype.codePointAt')}} | {{Spec2('ES2015')}} | Initial definition. | +| {{SpecName('ESDraft', '#sec-string.prototype.codepointat', 'String.prototype.codePointAt')}} | {{Spec2('ESDraft')}} | | + +## Browser compatibility + +{{Compat("javascript.builtins.String.codePointAt")}} + +## See also + +- {{jsxref("String.fromCodePoint()")}} +- {{jsxref("String.fromCharCode()")}} +- {{jsxref("String.prototype.charCodeAt()")}} +- {{jsxref("String.prototype.charAt()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/concat/index.md b/files/es/web/javascript/reference/global_objects/string/concat/index.md index 8d96516f1949db..16a7a660c2b062 100644 --- a/files/es/web/javascript/reference/global_objects/string/concat/index.md +++ b/files/es/web/javascript/reference/global_objects/string/concat/index.md @@ -10,44 +10,43 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/concat original_slug: Web/JavaScript/Referencia/Objetos_globales/String/concat --- -
{{JSRef}}
+{{JSRef}} -

El método concat() combina dos o más cadenas de texto y devuelve una cadena de texto nueva.

+El método **`concat()`** combina dos o más cadenas de texto y devuelve una cadena de texto nueva. -
{{EmbedInteractiveExample("pages/js/string-concat.html")}}
+{{EmbedInteractiveExample("pages/js/string-concat.html")}} -

Sintaxis

+## Sintaxis -
str.concat(str2 [, ...strN])
+ str.concat(str2 [, ...strN]) -

Parámetros

+### Parámetros -
-
str2 [, ...strN]
-
Cadenas que se concatenarán con str.
-
+- `str2 [, ...strN]` + - : Cadenas que se concatenarán con `str`. -

Valor devuelto

+### Valor devuelto -

Una nueva cadena que contiene el texto combinado de las cadenas proporcionadas.

+Una nueva cadena que contiene el texto combinado de las cadenas proporcionadas. -

Descripción

+## Descripción -

La función concat() concatena los argumentos de tipo texto con la cadena de sobre la que se llama a la función y devuelve una nueva cadena de texto. Los cambios en la cadena original o la cadena devuelta no afectan al otro.

+La función `concat()` concatena los argumentos de tipo texto con la cadena de sobre la que se llama a la función y devuelve una nueva cadena de texto. Los cambios en la cadena original o la cadena devuelta no afectan al otro. -

Si los argumentos no son de tipo texto, son convertidos a texto antes de concatenarlos

+Si los argumentos no son de tipo texto, son convertidos a texto antes de concatenarlos -

Rendimiento

+## Rendimiento -

Es altamente recomendado que se utilicen {{jsxref("Operators/Assignment_Operators", "operadores de asignación", "", 1)}} (+, +=) en lugar del método concat().

+Es altamente recomendado que se utilicen {{jsxref("Operators/Assignment_Operators", "operadores de asignación", "", 1)}} (`+`, `+=`) en lugar del método `concat()`. -

Ejemplos

+## Ejemplos -

Usando concat()

+### Usando concat() -

El siguiente ejemplo combina cadenas de texto en una nueva.

+El siguiente ejemplo combina cadenas de texto en una nueva. -
let hello = 'Hello, '
+```js
+let hello = 'Hello, '
 console.log(hello.concat('Kevin', '. Have a nice day.'))
 // Hello, Kevin. Have a nice day.
 
@@ -59,33 +58,19 @@ let greetList = ['Hello', ' ', 'Venkat', '!']
 "".concat(null)  // "null"
 "".concat(true)  // "true"
 "".concat(4, 5)  // "45"
+```
 
-
+## Especificaciones -

Especificaciones

+| Especificación | +| ------------------------------------------------------------------------------------------------------------ | +| {{SpecName('ESDraft', '#sec-string.prototype.concat', 'String.prototype.concat')}} | - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-string.prototype.concat', 'String.prototype.concat')}}
+## Compatibilidad con navegadores -

Compatibilidad con navegadores

+{{Compat("javascript.builtins.String.concat")}} +## Ver también - -

{{Compat("javascript.builtins.String.concat")}}

- -

Ver también

- -
    -
  • {{jsxref("Array.prototype.concat()")}}
  • -
  • {{jsxref("Operators/Assignment_Operators", "Operadores de asignación", "", 1)}}
  • -
+- {{jsxref("Array.prototype.concat()")}} +- {{jsxref("Operators/Assignment_Operators", "Operadores de asignación", "", 1)}} diff --git a/files/es/web/javascript/reference/global_objects/string/endswith/index.md b/files/es/web/javascript/reference/global_objects/string/endswith/index.md index a8a2d9d568a9bf..b62b55db609f8f 100644 --- a/files/es/web/javascript/reference/global_objects/string/endswith/index.md +++ b/files/es/web/javascript/reference/global_objects/string/endswith/index.md @@ -10,80 +10,71 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/endsWith original_slug: Web/JavaScript/Referencia/Objetos_globales/String/endsWith --- -
{{JSRef}}
+{{JSRef}} -

El método endsWith() determina si una cadena de texto termina con los caracteres de una cadena indicada, devolviendo true o false según corresponda.

+El método **`endsWith()`** determina si una cadena de texto termina con los caracteres de una cadena indicada, devolviendo `true` o `false` según corresponda. -
{{EmbedInteractiveExample("pages/js/string-endswith.html")}}
+{{EmbedInteractiveExample("pages/js/string-endswith.html")}} -

Sintaxis

+## Sintaxis -
str.endsWith(searchString[, position])
+ str.endsWith(searchString[, position]) -

Parámetros

+### Parámetros -
-
searchString
-
Los caracteres a buscar hasta el final de la cadena str.
-
length {{optional_inline}}
-
Si se indica, se utiliza como el tamaño de str. Por defecto se usa str.length.
-
+- `searchString` + - : Los caracteres a buscar hasta el final de la cadena _`str`_. +- `length` {{optional_inline}} + - : Si se indica, se utiliza como el tamaño de _`str`_. Por defecto se usa `str.length`. -

Valor devuelto

+### Valor devuelto -

true si los caracteres proporcionados se encuentran al final de la cadena de texto; en caso contrario, false.

+**`true`** si los caracteres proporcionados se encuentran al final de la cadena de texto; en caso contrario, **`false`**. -

Descripción

+## Descripción -

Este método determina si una cadena de texto termina en otra cadena o no. Este método distingue entre mayúsculas y minúsculas.

+Este método determina si una cadena de texto termina en otra cadena o no. Este método distingue entre mayúsculas y minúsculas. -

Polyfill

+## Polyfill -

Este método ha sido añadido a la especificación ECMAScript 6 y puede no estar disponible en todas las implementaciones de JavaScript. Sin embargo, puedes implementar el polyfill String.prototype.endsWith() con el siguiente fragmento de código:

+Este método ha sido añadido a la especificación ECMAScript 6 y puede no estar disponible en todas las implementaciones de JavaScript. Sin embargo, puedes implementar el polyfill `String.prototype.endsWith()` con el siguiente fragmento de código: -
if (!String.prototype.endsWith) {
+```js
+if (!String.prototype.endsWith) {
 	String.prototype.endsWith = function(search, this_len) {
-		if (this_len === undefined || this_len > this.length) {
+		if (this_len === undefined || this_len > this.length) {
 			this_len = this.length;
 		}
 		return this.substring(this_len - search.length, this_len) === search;
 	};
 }
-
+``` -

Ejemplos

+## Ejemplos -

Usando endsWith()

+### Usando `endsWith()` -
let str = 'To be, or not to be, that is the question.'
+```js
+let str = 'To be, or not to be, that is the question.'
 
 console.log(str.endsWith('question.'))  // true
 console.log(str.endsWith('to be'))      // false
 console.log(str.endsWith('to be', 19))  // true
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-string.prototype.endswith', 'String.prototype.endsWith')}}
+| Specification | +| -------------------------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-string.prototype.endswith', 'String.prototype.endsWith')}} | -

Compatibilidad en navegadores

+## Compatibilidad en navegadores -

{{Compat("javascript.builtins.String.endsWith")}}

+{{Compat("javascript.builtins.String.endsWith")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("String.prototype.startsWith()")}}
  • -
  • {{jsxref("String.prototype.includes()")}}
  • -
  • {{jsxref("String.prototype.indexOf()")}}
  • -
  • {{jsxref("String.prototype.lastIndexOf()")}}
  • -
+- {{jsxref("String.prototype.startsWith()")}} +- {{jsxref("String.prototype.includes()")}} +- {{jsxref("String.prototype.indexOf()")}} +- {{jsxref("String.prototype.lastIndexOf()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/fixed/index.md b/files/es/web/javascript/reference/global_objects/string/fixed/index.md index dc9638944b3d73..2a26272679f414 100644 --- a/files/es/web/javascript/reference/global_objects/string/fixed/index.md +++ b/files/es/web/javascript/reference/global_objects/string/fixed/index.md @@ -11,26 +11,41 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/fixed original_slug: Web/JavaScript/Referencia/Objetos_globales/String/fixed --- -

{{JSRef("Objetos_globales", "String")}}

-

{{deprecated_header}}

-

Resumen

-

Causa que una cadena se muestre con una fuente de ancho fijo, como si estuviesde dentro de una etiqueta {{HTMLElement("tt")}}.

-

Sintaxis

-
cadena.fixed()
-

Descripción

-

Usa el método fixed para formatear y mostrar unacadena en un documento.

-

Ejemplos

-

Ejemplo: Usando fixed para cambiar el formateado de una cadena

-

El siguiente ejemplo usa el método fixed para cambiar el formateado de una cadena:

-
var cadenaMundo="¡Hola Mundo!"
+{{JSRef("Objetos_globales", "String")}}
+
+{{deprecated_header}}
+
+## Resumen
+
+Causa que una cadena se muestre con una fuente de ancho fijo, como si estuviesde dentro de una etiqueta {{HTMLElement("tt")}}.
+
+## Sintaxis
+
+    cadena.fixed()
+
+## Descripción
+
+Usa el método `fixed` para formatear y mostrar unacadena en un documento.
+
+## Ejemplos
+
+### Ejemplo: Usando `fixed` para cambiar el formateado de una cadena
+
+El siguiente ejemplo usa el método `fixed` para cambiar el formateado de una cadena:
+
+```js
+var cadenaMundo="¡Hola Mundo!"
 console.log(cadenaMundo.fixed())
-
-

Este ejemplo produce el mismo resultado que el siguiente código HTML:

-
<tt>¡Hola Mundo!</tt>
-
-

Vea También

-
    -
  • {{jsxref("String.prototype.bold()")}}
  • -
  • {{jsxref("String.prototype.italics()")}}
  • -
  • {{jsxref("String.prototype.strike()")}}
  • -
+``` + +Este ejemplo produce el mismo resultado que el siguiente código HTML: + +```html +¡Hola Mundo! +``` + +### Vea También + +- {{jsxref("String.prototype.bold()")}} +- {{jsxref("String.prototype.italics()")}} +- {{jsxref("String.prototype.strike()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/fontcolor/index.md b/files/es/web/javascript/reference/global_objects/string/fontcolor/index.md index 0140591796b74a..289370c7c08225 100644 --- a/files/es/web/javascript/reference/global_objects/string/fontcolor/index.md +++ b/files/es/web/javascript/reference/global_objects/string/fontcolor/index.md @@ -4,72 +4,57 @@ slug: Web/JavaScript/Reference/Global_Objects/String/fontcolor translation_of: Web/JavaScript/Reference/Global_Objects/String/fontcolor original_slug: Web/JavaScript/Referencia/Objetos_globales/String/fontcolor --- -
{{JSRef}} {{deprecated_header}}
+{{JSRef}} {{deprecated_header}} -

El método fontcolor() crea {{HTMLElement("font")}} elemento HTML que cambia el color de la cadena.

+`El método `**`fontcolor()`** crea {{HTMLElement("font")}} elemento HTML que cambia el color de la cadena. -
-

Usage note: La etiqueta <font> fue eliminada en HTML5 y no debe ser usada. En lugar de es, es necesario aplicar propiedades CSS.

-
+> **Nota:** **Usage note:** La etiqueta \ fue eliminada en [HTML5](/es/docs/Web/Guide/HTML/HTML5) y no debe ser usada. En lugar de es, es necesario aplicar propiedades [CSS](/es/docs/Web/CSS). -

Sintaxis

+## Sintaxis -
str.fontcolor(color)
+ str.fontcolor(color) -

Parametros

+### Parametros -
-
color
-
A string expressing the color as a hexadecimal RGB triplet or as a string literal. String literals for color names are listed in the CSS color reference.
-
+- `color` + - : A string expressing the color as a hexadecimal RGB triplet or as a string literal. String literals for color names are listed in the [CSS color reference](/es/docs/Web/CSS/color_value). -

Descripción

+## Descripción -

Si expresas el color como hexadecimal, usa el formato rrggbb. Por ejemplo, el color hexadecimal para salmón es R=FA, G=80, B=72, así que el valor será "FA8072".

+Si expresas el color como hexadecimal, usa el formato rrggbb. Por ejemplo, el color hexadecimal para salmón es R=FA, G=80, B=72, así que el valor será `"FA8072"`. -

Ejemplos

+## Ejemplos -

Usos fontcolor()

+### `Usos fontcolor()` -

Los siguientes ejemplos usan el método fontcolor() para cambiar el color de una cadena.

+Los siguientes ejemplos usan el método `fontcolor()` para cambiar el color de una cadena. -
var worldString = 'Hello, world';
+```js
+var worldString = 'Hello, world';
 
 console.log(worldString.fontcolor('red') +  ' en rojo');
-// '<font color="red">Hello, world</font> en rojo'
+// 'Hello, world en rojo'
 
 console.log(worldString.fontcolor('FF00') + ' es rojo en hexadecimal');
-// '<font color="FF00">Hello, world</font> es rojo en hexadecimal'
-
+// 'Hello, world es rojo en hexadecimal' +``` -

Con el objeto {{domxref("HTMLElement.style", "element.style")}} obtienes el atributo style y manipularlo:

+Con el objeto {{domxref("HTMLElement.style", "element.style")}} obtienes el atributo `style` y manipularlo: -
document.getElementById('yourElemId').style.color = 'red';
-
+```js +document.getElementById('yourElemId').style.color = 'red'; +``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
{{SpecName('ES6', '#sec-string.prototype.fontcolor', 'String.prototype.fontcolor')}}{{Spec2('ES6')}}Initial definition. Implemented in JavaScript 1.0. Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers.
+| Especificación | Estatus | Comentario | +| ---------------------------------------------------------------------------------------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| {{SpecName('ES6', '#sec-string.prototype.fontcolor', 'String.prototype.fontcolor')}} | {{Spec2('ES6')}} | Initial definition. Implemented in JavaScript 1.0. Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers. | -

Compatibilidad con navegadores

+## Compatibilidad con navegadores {{Compat("javascript.builtins.String.fontcolor")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("String.prototype.fontsize()")}}
  • -
+- {{jsxref("String.prototype.fontsize()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/fontsize/index.md b/files/es/web/javascript/reference/global_objects/string/fontsize/index.md index cb687b4309c8e6..ef95ee8070441d 100644 --- a/files/es/web/javascript/reference/global_objects/string/fontsize/index.md +++ b/files/es/web/javascript/reference/global_objects/string/fontsize/index.md @@ -4,73 +4,58 @@ slug: Web/JavaScript/Reference/Global_Objects/String/fontsize translation_of: Web/JavaScript/Reference/Global_Objects/String/fontsize original_slug: Web/JavaScript/Referencia/Objetos_globales/String/fontsize --- -
{{JSRef}} {{deprecated_header}}
+{{JSRef}} {{deprecated_header}} -

El método fontsize() crea {{HTMLElement("font")}} elemento HTML que muestra una cadena con el tamaño especificado.

+`El método `**`fontsize()`** crea {{HTMLElement("font")}} elemento HTML que muestra una cadena con el tamaño especificado. -
-

Usage note: El elemento <font> ha sido eliminado HTML5 y no se debe usar. Los desarrolladores web deben usar propiedades CSS.

-
+> **Nota:** **Usage note:** El elemento \ ha sido eliminado [HTML5](/es/docs/Web/Guide/HTML/HTML5) y no se debe usar. Los desarrolladores web deben usar propiedades [CSS](/es/docs/Web/CSS). -

Sintaxis

+## Sintaxis -
str.fontsize(size)
+ str.fontsize(size) -

Parámetros

+### Parámetros -
-
size
-
Un entero entre 1 y 7.
-
+- `size` + - : Un entero entre 1 y 7. -

Descripción

+## Descripción -

Cuando especificas el tamaño como entero, estableces el tamaño de la fuente. Cuando especificas el tamaño como cadena tal como "-2", se ajusta el tamaño de la fuente al de la etiqueta {{HTMLElement("basefont")}}.

+Cuando especificas el tamaño como entero, estableces el tamaño de la fuente. Cuando especificas el tamaño como cadena tal como "-2", se ajusta el tamaño de la fuente al de la etiqueta {{HTMLElement("basefont")}}. -

When you specify size as an integer, you set the font size of str to one of the 7 defined sizes. When you specify size as a string such as "-2", you adjust the font size of str relative to the size set in the {{HTMLElement("basefont")}} tag.

+When you specify size as an integer, you set the font size of `str` to one of the 7 defined sizes. When you specify `size` as a string such as "-2", you adjust the font size of `str` relative to the size set in the {{HTMLElement("basefont")}} tag. -

Ejemlpos

+## Ejemlpos -

Usos fontsize()

+### `Usos fontsize()` -

The following example uses string methods to change the size of a string:

+The following example uses string methods to change the size of a string: -
var worldString = 'Hello, world';
+```js
+var worldString = 'Hello, world';
 
-console.log(worldString.small());     // <small>Hello, world</small>
-console.log(worldString.big());       // <big>Hello, world</big>
-console.log(worldString.fontsize(7)); // <font size="7">Hello, world</fontsize>
-
+console.log(worldString.small()); // Hello, world +console.log(worldString.big()); // Hello, world +console.log(worldString.fontsize(7)); // Hello, world +``` -

With the {{domxref("HTMLElement.style", "element.style")}} object you can get the element's style attribute and manipulate it more generically, for example:

+With the {{domxref("HTMLElement.style", "element.style")}} object you can get the element's `style` attribute and manipulate it more generically, for example: -
document.getElementById('yourElemId').style.fontSize = '0.7em';
-
+```js +document.getElementById('yourElemId').style.fontSize = '0.7em'; +``` -

Specifications

+## Specifications - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES6', '#sec-string.prototype.fontsize', 'String.prototype.fontsize')}}{{Spec2('ES6')}}Initial definition. Implemented in JavaScript 1.0. Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers.
+| Specification | Status | Comment | +| ------------------------------------------------------------------------------------------------------------ | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| {{SpecName('ES6', '#sec-string.prototype.fontsize', 'String.prototype.fontsize')}} | {{Spec2('ES6')}} | Initial definition. Implemented in JavaScript 1.0. Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers. | -

Browser compatibility

+## Browser compatibility {{Compat("javascript.builtins.String.fontsize")}} -

See also

+## See also -
    -
  • {{jsxref("String.prototype.big()")}}
  • -
  • {{jsxref("String.prototype.small()")}}
  • -
+- {{jsxref("String.prototype.big()")}} +- {{jsxref("String.prototype.small()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/fromcharcode/index.md b/files/es/web/javascript/reference/global_objects/string/fromcharcode/index.md index e2bc7922c035b9..5f7442fb75424a 100644 --- a/files/es/web/javascript/reference/global_objects/string/fromcharcode/index.md +++ b/files/es/web/javascript/reference/global_objects/string/fromcharcode/index.md @@ -9,75 +9,52 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/fromCharCode original_slug: Web/JavaScript/Referencia/Objetos_globales/String/fromCharCode --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -

Resumen

+## Resumen -

El String.fromCharCode() método estático que devuelve una cadena creada mediante el uso de una secuencia de valores Unicode especificada.

+El **`String.fromCharCode()`** método estático que devuelve una cadena creada mediante el uso de una secuencia de valores Unicode especificada. -

Sintaxis

+## Sintaxis -
String.fromCharCode(num1, ..., numN) 
+ String.fromCharCode(num1, ..., numN) -

Parámetros

+### Parámetros -
-
num1, ..., numN
-
Secuencia de números con los valores Unicode.
-
+- `num1, ..., numN` + - : Secuencia de números con los valores Unicode. -

Descripción

+## Descripción -

Este método devuelve una cadena y no un objeto String.

+Este método devuelve una cadena y no un objeto `String`. -

Debido a que fromCharCode es un método estático de String, usted siempre lo usará como String.fromCharCode(), en vez de un método de un objeto String creado por usted.

+Debido a que `fromCharCode` es un método estático de `String`, usted siempre lo usará como `String.fromCharCode()`, en vez de un método de un objeto `String` creado por usted. -

Ejemplos

+## Ejemplos -

Ejemplo: Usando fromCharCode

+### Ejemplo: Usando `fromCharCode` -

El siguiene ejemplo devuelve la cadena "ABC".

+El siguiene ejemplo devuelve la cadena "ABC". -
String.fromCharCode(65,66,67)
-
+```js +String.fromCharCode(65,66,67) +``` -

Especificaciónes

+## Especificaciónes - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
ECMAScript 1st Edition.EstándarPrimera definicíon
- Implementada en JavaScript 1.2
{{SpecName('ES5.1', '#sec-15.5.3.2', 'StringfromCharCode')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-string.fromcharcodes', 'String.fromCharCode')}}{{Spec2('ES6')}}
+| Especificación | Estatus | Comentario | +| ------------------------------------------------------------------------------------------------ | ------------------------ | ------------------------------------------------- | +| ECMAScript 1st Edition. | Estándar | Primera definicíon Implementada en JavaScript 1.2 | +| {{SpecName('ES5.1', '#sec-15.5.3.2', 'StringfromCharCode')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-string.fromcharcodes', 'String.fromCharCode')}} | {{Spec2('ES6')}} | | -

Compatibilidad de navegadores

+## Compatibilidad de navegadores {{Compat("javascript.builtins.String.fromCharCode")}} -

Vea También

+## Vea También -
    -
  • {{jsxref("String.prototype.charCodeAt()")}}
  • -
  • {{jsxref("String.prototype.charAt()")}}
  • -
  • {{jsxref("String.fromCodePoint()")}}
  • -
  • {{jsxref("String.prototype.codePointAt()")}}
  • -
+- {{jsxref("String.prototype.charCodeAt()")}} +- {{jsxref("String.prototype.charAt()")}} +- {{jsxref("String.fromCodePoint()")}} +- {{jsxref("String.prototype.codePointAt()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/fromcodepoint/index.md b/files/es/web/javascript/reference/global_objects/string/fromcodepoint/index.md index 4a1b4386573182..61aa741f86dbc9 100644 --- a/files/es/web/javascript/reference/global_objects/string/fromcodepoint/index.md +++ b/files/es/web/javascript/reference/global_objects/string/fromcodepoint/index.md @@ -4,39 +4,36 @@ slug: Web/JavaScript/Reference/Global_Objects/String/fromCodePoint translation_of: Web/JavaScript/Reference/Global_Objects/String/fromCodePoint original_slug: Web/JavaScript/Referencia/Objetos_globales/String/fromCodePoint --- -
{{JSRef("Global_Objects", "String")}}
+{{JSRef("Global_Objects", "String")}} -

Resumen

+## Resumen -

El método estatico String.fromCodePoint() devuelve una cadena creada por una secuencia de puntos de codigo.

+El método estatico **`String.fromCodePoint()`** devuelve una cadena creada por una secuencia de puntos de codigo. -

Sintaxis

+## Sintaxis -
String.fromCodePoint(num1[, ...[, numN]])
+ String.fromCodePoint(num1[, ...[, numN]]) -

Parametros

+### Parametros -
-
num1, ..., numN
-
Una secuencia de puntos de código.
-
+- `num1, ..., numN` + - : Una secuencia de puntos de código. -

Throws

+### Throws -
-
{{jsxref("Global_Objects/RangeError", "RangeError")}}
-
A {{jsxref("Global_Objects/RangeError", "RangeError")}} is thrown if an invalid Unicode code point is given (e.g. "RangeError: NaN is not a valid code point").
-
+- {{jsxref("Global_Objects/RangeError", "RangeError")}} + - : A {{jsxref("Global_Objects/RangeError", "RangeError")}} is thrown if an invalid Unicode code point is given (e.g. "RangeError: NaN is not a valid code point"). -

Descripción

+## Descripción -

Because fromCodePoint() is a static method of {{jsxref("Global_Objects/String", "String")}}, you always use it as String.fromCodePoint(), rather than as a method of a {{jsxref("Global_Objects/String", "String")}} object you created.

+Because `fromCodePoint()` is a static method of {{jsxref("Global_Objects/String", "String")}}, you always use it as `String.fromCodePoint()`, rather than as a method of a {{jsxref("Global_Objects/String", "String")}} object you created. -

Ejemplos

+## Ejemplos -

Ejemplos: Usando fromCodePoint()

+### Ejemplos: Usando `fromCodePoint()` -
String.fromCodePoint(42);       // "*"
+```js
+String.fromCodePoint(42);       // "*"
 String.fromCodePoint(65, 90);   // "AZ"
 String.fromCodePoint(0x404);    // "\u0404"
 String.fromCodePoint(0x2F804);  // "\uD87E\uDC04"
@@ -49,20 +46,22 @@ String.fromCodePoint(-1);       // RangeError
 String.fromCodePoint(3.14);     // RangeError
 String.fromCodePoint(3e-2);     // RangeError
 String.fromCodePoint(NaN);      // RangeError
-
+``` -
// String.fromCharCode() alone cannot get the character at such a high code point
+```js
+// String.fromCharCode() alone cannot get the character at such a high code point
 // The following, on the other hand, can return a 4-byte character as well as the
 // usual 2-byte ones (i.e., it can return a single character which actually has
 // a string length of 2 instead of 1!)
 console.log(String.fromCodePoint(0x2F804)); // or 194564 in decimal
-
+``` -

Polyfill

+## Polyfill -

The String.fromCodePoint method has been added to the ECMAScript standard in version 6 and may not be supported in all web browsers or environments yet. Use the code below for a polyfill:

+The `String.fromCodePoint` method has been added to the ECMAScript standard in version 6 and may not be supported in all web browsers or environments yet. Use the code below for a polyfill: -
/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */
+```js
+/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */
 if (!String.fromCodePoint) {
   (function() {
     var defineProperty = (function() {
@@ -70,7 +69,7 @@ if (!String.fromCodePoint) {
       try {
         var object = {};
         var $defineProperty = Object.defineProperty;
-        var result = $defineProperty(object, object, object) && $defineProperty;
+        var result = $defineProperty(object, object, object) && $defineProperty;
       } catch(error) {}
       return result;
     }());
@@ -87,26 +86,26 @@ if (!String.fromCodePoint) {
         return '';
       }
       var result = '';
-      while (++index < length) {
+      while (++index < length) {
         var codePoint = Number(arguments[index]);
         if (
           !isFinite(codePoint) ||       // `NaN`, `+Infinity`, or `-Infinity`
-          codePoint < 0 ||              // not a valid Unicode code point
-          codePoint > 0x10FFFF ||       // not a valid Unicode code point
+          codePoint < 0 ||              // not a valid Unicode code point
+          codePoint > 0x10FFFF ||       // not a valid Unicode code point
           floor(codePoint) != codePoint // not an integer
         ) {
           throw RangeError('Invalid code point: ' + codePoint);
         }
-        if (codePoint <= 0xFFFF) { // BMP code point
+        if (codePoint <= 0xFFFF) { // BMP code point
           codeUnits.push(codePoint);
         } else { // Astral code point; split in surrogate halves
           // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae
           codePoint -= 0x10000;
-          highSurrogate = (codePoint >> 10) + 0xD800;
+          highSurrogate = (codePoint >> 10) + 0xD800;
           lowSurrogate = (codePoint % 0x400) + 0xDC00;
           codeUnits.push(highSurrogate, lowSurrogate);
         }
-        if (index + 1 == length || codeUnits.length > MAX_SIZE) {
+        if (index + 1 == length || codeUnits.length > MAX_SIZE) {
           result += stringFromCharCode.apply(null, codeUnits);
           codeUnits.length = 0;
         }
@@ -124,34 +123,21 @@ if (!String.fromCodePoint) {
     }
   }());
 }
-
- -

Specifications

- - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES6', '#sec-string.fromcodepoint', 'String.fromCodePoint')}}{{Spec2('ES6')}}Initial definition.
- -

Browser compatibility

+``` + +## Specifications + +| Specification | Status | Comment | +| ------------------------------------------------------------------------------------------------ | -------------------- | ------------------- | +| {{SpecName('ES6', '#sec-string.fromcodepoint', 'String.fromCodePoint')}} | {{Spec2('ES6')}} | Initial definition. | + +## Browser compatibility {{Compat("javascript.builtins.String.fromCodePoint")}} -

See also

+## See also -
    -
  • {{jsxref("String.fromCharCode()")}}
  • -
  • {{jsxref("String.prototype.charAt()")}}
  • -
  • {{jsxref("String.prototype.codePointAt()")}}
  • -
  • {{jsxref("String.prototype.charCodeAt()")}}
  • -
+- {{jsxref("String.fromCharCode()")}} +- {{jsxref("String.prototype.charAt()")}} +- {{jsxref("String.prototype.codePointAt()")}} +- {{jsxref("String.prototype.charCodeAt()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/includes/index.md b/files/es/web/javascript/reference/global_objects/string/includes/index.md index 6e7aaace11ef81..afb4f071b6e047 100644 --- a/files/es/web/javascript/reference/global_objects/string/includes/index.md +++ b/files/es/web/javascript/reference/global_objects/string/includes/index.md @@ -11,47 +11,47 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/includes original_slug: Web/JavaScript/Referencia/Objetos_globales/String/includes --- -
{{JSRef}}
+{{JSRef}} -

El método includes() determina si una cadena de texto puede ser encontrada dentro de otra cadena de texto, devolviendo true o false según corresponda.

+El método **`includes()`** determina si una cadena de texto puede ser encontrada dentro de otra cadena de texto, devolviendo **`true`** o **`false`** según corresponda. -
{{EmbedInteractiveExample("pages/js/string-includes.html", "shorter")}}
+{{EmbedInteractiveExample("pages/js/string-includes.html", "shorter")}} -

Sintaxis

+## Sintaxis -
str.includes(searchString[, position])
+ str.includes(searchString[, position]) -

Parametros

+### Parametros -
-
searchString
-
Una cadena a buscar en el texto str.
-
position {{optional_inline}}
-
La posición dentro de la cadena en la cual empieza la búsqueda de searchString (Por defecto este valor es 0).
-
+- `searchString` + - : Una cadena a buscar en el texto _`str`_. +- `position` {{optional_inline}} + - : La posición dentro de la cadena en la cual empieza la búsqueda de `searchString` (Por defecto este valor es 0). -

Valor devuelto

+### Valor devuelto -

true si la cadena de texto contiene la cadena buscada; en caso contrario, false.

+**`true`** si la cadena de texto contiene la cadena buscada; en caso contrario, **`false`**. -

Descripción

+## Descripción -

Este método permite determinar si una cadena de texto se encuentra incluida dentro de la otra.

+Este método permite determinar si una cadena de texto se encuentra incluida dentro de la otra. -

Sensibilidad a Mayúsculas/Minúsculas

+### Sensibilidad a Mayúsculas/Minúsculas -

El método includes() es "case sensitive" (tiene en cuenta mayúsculas y minúsculas). Por ejemplo, la siguiente expresión devolverá false:

+El método `includes()` es "case sensitive" (tiene en cuenta mayúsculas y minúsculas). Por ejemplo, la siguiente expresión devolverá `false`: -
'Ballena azul'.includes('ballena'); // devuelve false
-
+```js +'Ballena azul'.includes('ballena'); // devuelve false +``` -

Polyfill

+## Polyfill -

Este método ha sido agregado a la especificación ECMAScript 2015 y puede no estar disponible en toda las implementaciones de JavaScript.

+Este método ha sido agregado a la especificación ECMAScript 2015 y puede no estar disponible en toda las implementaciones de JavaScript. -

Sin embargo, puedes usar este método como polyfill:

+Sin embargo, puedes usar este método como polyfill: -
if (!String.prototype.includes) {
+```js
+if (!String.prototype.includes) {
   String.prototype.includes = function(search, start) {
     'use strict';
 
@@ -62,13 +62,14 @@ original_slug: Web/JavaScript/Referencia/Objetos_globales/String/includes
     return this.indexOf(search, start) !== -1;
   };
 }
-
+``` -

Ejemplos

+## Ejemplos -

Usando includes()

+### Usando `includes()` -
const str = 'To be, or not to be, that is the question.'
+```js
+const str = 'To be, or not to be, that is the question.'
 
 console.log(str.includes('To be'))        // true
 console.log(str.includes('question'))     // true
@@ -76,34 +77,23 @@ console.log(str.includes('nonexistent'))  // false
 console.log(str.includes('To be', 1))     // false
 console.log(str.includes('TO BE'))        // false
 console.log(str.includes(''))             // true
-
- -

Especificaciones

- - - - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-string.prototype.includes', 'String.prototype.includes')}}
- -

Compatibilidad en navegadores

- -

{{Compat("javascript.builtins.String.includes")}}

- -

Ver también

- -
    -
  • {{jsxref("Array.prototype.includes()")}}
  • -
  • {{jsxref("TypedArray.prototype.includes()")}}
  • -
  • {{jsxref("String.prototype.indexOf()")}}
  • -
  • {{jsxref("String.prototype.lastIndexOf()")}}
  • -
  • {{jsxref("String.prototype.startsWith()")}}
  • -
  • {{jsxref("String.prototype.endsWith()")}}
  • -
+``` + +## Especificaciones + +| Specification | +| -------------------------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-string.prototype.includes', 'String.prototype.includes')}} | + +## Compatibilidad en navegadores + +{{Compat("javascript.builtins.String.includes")}} + +## Ver también + +- {{jsxref("Array.prototype.includes()")}} +- {{jsxref("TypedArray.prototype.includes()")}} +- {{jsxref("String.prototype.indexOf()")}} +- {{jsxref("String.prototype.lastIndexOf()")}} +- {{jsxref("String.prototype.startsWith()")}} +- {{jsxref("String.prototype.endsWith()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/index.md b/files/es/web/javascript/reference/global_objects/string/index.md index 5efe7d3a0a73f4..66e8a25ba34f58 100644 --- a/files/es/web/javascript/reference/global_objects/string/index.md +++ b/files/es/web/javascript/reference/global_objects/string/index.md @@ -11,376 +11,298 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String original_slug: Web/JavaScript/Referencia/Objetos_globales/String --- -
{{JSRef}}
+{{JSRef}} -

El objeto String se utiliza para representar y manipular una secuencia de caracteres.

+El objeto **`String`** se utiliza para representar y manipular una secuencia de caracteres. -

Descripción

+## Descripción -

Las cadenas son útiles para almacenar datos que se pueden representar en forma de texto. Algunas de las operaciones más utilizadas en cadenas son verificar su {{jsxref("String.length", "length")}}, para construirlas y concatenarlas usando operadores de cadena + y +=, verificando la existencia o ubicación de subcadenas con {{jsxref("String.prototype.indexOf()", "indexOf()")}} o extraer subcadenas con el método {{jsxref("String.prototype.substring()", "substring()")}}.

+Las cadenas son útiles para almacenar datos que se pueden representar en forma de texto. Algunas de las operaciones más utilizadas en cadenas son verificar su {{jsxref("String.length", "length")}}, para construirlas y concatenarlas usando [operadores de cadena + y +=](/es/docs/Web/JavaScript/Reference/Operators/String_Operators), verificando la existencia o ubicación de subcadenas con {{jsxref("String.prototype.indexOf()", "indexOf()")}} o extraer subcadenas con el método {{jsxref("String.prototype.substring()", "substring()")}}. -

Crear cadenas

+### Crear cadenas -

Las cadenas se pueden crear como primitivas, a partir de cadena literales o como objetos, usando el constructor {{jsxref("String/String", "String()")}}:

+Las cadenas se pueden crear como primitivas, a partir de cadena literales o como objetos, usando el constructor {{jsxref("String/String", "String()")}}: -
const string1 = "Una cadena primitiva";
-const string2 = 'También una cadena primitiva';
-const string3 = `Otra cadena primitiva más`;
+ const string1 = "Una cadena primitiva"; + const string2 = 'También una cadena primitiva'; + const string3 = `Otra cadena primitiva más`; -
const string4 = new String("Un objeto String");
-
+ -

Las strings primitivas y los objetos string se pueden usar indistintamente en la mayoría de las situaciones. Consulta "Primitivas String y objetos String" a continuación.

+ const string4 = new String("Un objeto String"); -

Los cadena literales se pueden especificar usando comillas simples o dobles, que se tratan de manera idéntica, o usando el carácter de comilla invertida `. Esta última forma especifica una Plantilla literal: con esta forma puedes interpolar expresiones.

+Las `string`s primitivas y los objetos `string` se pueden usar indistintamente en la mayoría de las situaciones. Consulta "[Primitivas `String` y objetos `String`](#Primitivas_string_y_objetos_string)" a continuación. -

Acceder a un caracter

+Los cadena literales se pueden especificar usando comillas simples o dobles, que se tratan de manera idéntica, o usando el carácter de comilla invertida `. Esta última forma especifica una [Plantilla literal](/es/docs/Web/JavaScript/Reference/Template_literals): con esta forma puedes interpolar expresiones. -

Hay dos formas de acceder a un caracter individual en una cadena. La primera es con el método {{jsxref("String.prototype.charAt()", "charAt()")}}:

+### Acceder a un caracter -
return 'cat'.charAt(1) // devuelve "a"
-
+Hay dos formas de acceder a un caracter individual en una cadena. La primera es con el método {{jsxref("String.prototype.charAt()", "charAt()")}}: -

La otra forma (introducida en ECMAScript 5) es tratar a la cadena como un objeto similar a un arreglo, donde los caracteres individuales corresponden a un índice numérico:

+```js +return 'cat'.charAt(1) // devuelve "a" +``` -
return 'cat'[1] // devuelve "a"
-
+La otra forma (introducida en ECMAScript 5) es tratar a la cadena como un objeto similar a un arreglo, donde los caracteres individuales corresponden a un índice numérico: -

Cuando se usa la notación entre corchetes para acceder a los caracteres, no se puede intentar eliminar o asignar un valor a estas propiedades. Las propiedades involucradas no se pueden escribir ni configurar. (Ve {{jsxref("Object.defineProperty()")}} para más información).

+```js +return 'cat'[1] // devuelve "a" +``` -

Comparar cadenas

+Cuando se usa la notación entre corchetes para acceder a los caracteres, no se puede intentar eliminar o asignar un valor a estas propiedades. Las propiedades involucradas no se pueden escribir ni configurar. (Ve {{jsxref("Object.defineProperty()")}} para más información). -

En C, se usa la función strcmp() para comparar cadenas. En JavaScript, solo usas los operadores menor que y mayor que:

+### Comparar cadenas -
let a = 'a'
+En C, se usa la función `strcmp()` para comparar cadenas. En JavaScript, solo usas los [operadores menor que y mayor que](/es/docs/Web/JavaScript/Reference/Operators/Comparison_Operators):
+
+```js
+let a = 'a'
 let b = 'b'
-if (a < b) { // true
+if (a < b) { // true
   console.log(a + ' es menor que ' + b)
-} else if (a > b) {
+} else if (a > b) {
   console.log(a + ' es mayor que ' + b)
 } else {
   console.log(a + ' y ' + b + ' son iguales.')
 }
-
+``` -

Puedes lograr un resultado similar usando el método {{jsxref("String.prototype.localeCompare()", "localeCompare()")}} heredado por las instancias de String.

+Puedes lograr un resultado similar usando el método {{jsxref("String.prototype.localeCompare()", "localeCompare()")}} heredado por las instancias de `String`. -

Ten en cuenta que a == b compara las cadenas en a y b por ser igual en la forma habitual que distingue entre mayúsculas y minúsculas. Si deseas comparar sin tener en cuenta los caracteres en mayúsculas o minúsculas, usa una función similar a esta:

+Ten en cuenta que `a == b` compara las cadenas en `a` y `b` por ser igual en la forma habitual que distingue entre mayúsculas y minúsculas. Si deseas comparar sin tener en cuenta los caracteres en mayúsculas o minúsculas, usa una función similar a esta: -
function isEqual(str1, str2)
-{
-    return str1.toUpperCase() === str2.toUpperCase()
-} // isEqual
-
+ function isEqual(str1, str2) + { + return str1.toUpperCase() === str2.toUpperCase() + } // isEqual -

En esta función se utilizan mayúsculas en lugar de minúsculas, debido a problemas con ciertas conversiones de caracteres UTF-8.

+En esta función se utilizan mayúsculas en lugar de minúsculas, debido a problemas con ciertas conversiones de caracteres UTF-8. -

Primitivas String y objetos String

+### Primitivas `String` y objetos `String` -

Ten en cuenta que JavaScript distingue entre objetos String y valores de {{Glossary("Primitive", "primitivas string")}}. (Lo mismo ocurre con {{jsxref("Boolean", "Booleanos")}} y {{jsxref("Global_Objects/Number", "Números")}}).

+Ten en cuenta que JavaScript distingue entre objetos `String` y valores de {{Glossary("Primitive", "primitivas string")}}. (Lo mismo ocurre con {{jsxref("Boolean", "Booleanos")}} y {{jsxref("Global_Objects/Number", "Números")}}). -

Las cadenas literales (denotadas por comillas simples o dobles) y cadenas devueltas de llamadas a String en un contexto que no es de constructor (es decir, llamado sin usar la palabra clave {{jsxref("Operators/new", "new")}}) son cadenas primitivas. JavaScript automáticamente convierte las primitivas en objetos String, por lo que es posible utilizar métodos del objeto String en cadenas primitivas. En contextos donde se va a invocar a un método en una cadena primitiva o se produce una búsqueda de propiedad, JavaScript ajustará automáticamente la cadena primitiva y llamará al método o realizará la búsqueda de la propiedad.

+Las cadenas literales (denotadas por comillas simples o dobles) y cadenas devueltas de llamadas a `String` en un contexto que no es de constructor (es decir, llamado sin usar la palabra clave {{jsxref("Operators/new", "new")}}) son cadenas primitivas. JavaScript automáticamente convierte las primitivas en objetos `String`, por lo que es posible utilizar métodos del objeto `String` en cadenas primitivas. En contextos donde se va a invocar a un método en una cadena primitiva o se produce una búsqueda de propiedad, JavaScript ajustará automáticamente la cadena primitiva y llamará al método o realizará la búsqueda de la propiedad. -
let s_prim = 'foo'
+```js
+let s_prim = 'foo'
 let s_obj = new String(s_prim)
 
 console.log(typeof s_prim) // Registra "string"
 console.log(typeof s_obj)  // Registra "object"
-
+``` -

Las primitivas de String y los objetos String también dan diferente resultado cuando se usa {{jsxref("Global_Objects/eval", "eval()")}}. Las primitivas pasadas a eval se tratan como código fuente; Los objetos String se tratan como todos los demás objetos, devuelven el objeto. Por ejemplo:

+Las primitivas de `String` y los objetos `String` también dan diferente resultado cuando se usa {{jsxref("Global_Objects/eval", "eval()")}}. Las primitivas pasadas a `eval` se tratan como código fuente; Los objetos `String` se tratan como todos los demás objetos, devuelven el objeto. Por ejemplo: -
let s1 = '2 + 2'              // crea una string primitiva
+```js
+let s1 = '2 + 2'              // crea una string primitiva
 let s2 = new String('2 + 2')  // crea un objeto String
 console.log(eval(s1))         // devuelve el número 4
 console.log(eval(s2))         // devuelve la cadena "2 + 2"
-
- -

Por estas razones, el código se puede romper cuando encuentra objetos String y espera una string primitiva en su lugar, aunque generalmente los autores no necesitan preocuparse por la distinción.

- -

Un objeto String siempre se puede convertir a su contraparte primitiva con el método {{jsxref("String.prototype.valueOf()", "valueOf()")}}.

- -
console.log(eval(s2.valueOf()))  // devuelve el número 4
-
- -

Notación de escape

- -

Los caracteres especiales se pueden codificar mediante notación de escape:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CódigoSalida
\XXX
- (donde XXX es de 1 a 3 dígitos octales; rango de 0-377)
Punto de código Unicode/carácter ISO-8859-1 entre U+0000 y U+00FF
\'Comilla sencilla
\"Comilla doble
\\Barra inversa
\nNueva línea
\rRetorno de carro
\vTabulación vertical
\tTabulación
\bRetroceso
\fAvance de página
\uXXXX (donde XXXX son 4 dígitos hexadecimales; rango de 0x0000-0xFFFF)Unidad de código UTF-16/punto de código Unicode entre U+0000 y U+FFFF
\u{X} ... \u{XXXXXX}
- (donde XXXXXXX es de 1 a 6 dígitos hexadecimales; rango de 0x0-0x10FFFF)
Unidad de código UTF-32/punto de código Unicode entre U+0000 y U+10FFFF
\xXX
- (donde XX son 2 dígitos hexadecimales; rango de 0x00-0xFF)
Punto de código Unicode/carácter ISO-8859-1 entre U+0000 y U+00FF
- -

Cadenas literales largas

- -

A veces, tu código incluirá cadenas que son muy largas. En lugar de tener líneas que se prolongan interminablemente o que se ajustan según el capricho de tu editor, es posible que desees dividir específicamente la cadena en varias líneas en el código fuente sin afectar el contenido real de la cadena. hay dos maneras de conseguirlo.

- -

Método 1

- -

Puedes usar el operador + para agregar varias cadenas juntas, así:

- -
let longString = "Esta es una cadena muy larga que necesita " +
+```
+
+Por estas razones, el código se puede romper cuando encuentra objetos `String` y espera una `string` primitiva en su lugar, aunque generalmente los autores no necesitan preocuparse por la distinción.
+
+Un objeto `String` siempre se puede convertir a su contraparte primitiva con el método {{jsxref("String.prototype.valueOf()", "valueOf()")}}.
+
+```js
+console.log(eval(s2.valueOf()))  // devuelve el número 4
+```
+
+### Notación de escape
+
+Los caracteres especiales se pueden codificar mediante notación de escape:
+
+| Código                                                                                                   | Salida                                                                      |
+| -------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
+| `\XXX` (donde `XXX` es de 1 a 3 dígitos octales; rango de `0`-`377`)                                     | Punto de código Unicode/carácter ISO-8859-1 entre `U+0000` y `U+00FF`       |
+| `\'`                                                                                                     | Comilla sencilla                                                            |
+| `\"`                                                                                                     | Comilla doble                                                               |
+| `\\`                                                                                                     | Barra inversa                                                               |
+| `\n`                                                                                                     | Nueva línea                                                                 |
+| `\r`                                                                                                     | Retorno de carro                                                            |
+| `\v`                                                                                                     | Tabulación vertical                                                         |
+| `\t`                                                                                                     | Tabulación                                                                  |
+| `\b`                                                                                                     | Retroceso                                                                   |
+| `\f`                                                                                                     | Avance de página                                                            |
+| `\uXXXX` (donde `XXXX` son 4 dígitos hexadecimales; rango de `0x0000`-`0xFFFF`)                          | Unidad de código UTF-16/punto de código Unicode entre `U+0000` y `U+FFFF`   |
+| `\u{X}` ... `\u{XXXXXX}` (donde `X…XXXXXX` es de 1 a 6 dígitos hexadecimales; rango de `0x0`-`0x10FFFF`) | Unidad de código UTF-32/punto de código Unicode entre `U+0000` y `U+10FFFF` |
+| `\xXX` (donde `XX` son 2 dígitos hexadecimales; rango de `0x00`-`0xFF`)                                  | Punto de código Unicode/carácter ISO-8859-1 entre `U+0000` y `U+00FF`       |
+
+### Cadenas literales largas
+
+A veces, tu código incluirá cadenas que son muy largas. En lugar de tener líneas que se prolongan interminablemente o que se ajustan según el capricho de tu editor, es posible que desees dividir específicamente la cadena en varias líneas en el código fuente sin afectar el contenido real de la cadena. hay dos maneras de conseguirlo.
+
+#### Método 1
+
+Puedes usar el operador [+](/es/docs/Web/JavaScript/Reference/Operators/Addition) para agregar varias cadenas juntas, así:
+
+```js
+let longString = "Esta es una cadena muy larga que necesita " +
                  "que dividimos en varias líneas porque " +
                  "de lo contrario, mi código es ilegible."
-
+``` -

Método 2

+#### Método 2 -

Puedes usar el caracter de barra invertida (\) al final de cada línea para indicar que la cadena continúa en la siguiente línea. Asegúrate de que no haya ningún espacio ni ningún otro carácter después de la barra invertida (a excepción de un salto de línea) o como sangría; de lo contrario, no trabajará.

+Puedes usar el caracter de barra invertida (`\`) al final de cada línea para indicar que la cadena continúa en la siguiente línea. Asegúrate de que no haya ningún espacio ni ningún otro carácter después de la barra invertida (a excepción de un salto de línea) o como sangría; de lo contrario, no trabajará. -

Esa forma se ve así:

+Esa forma se ve así: -
let longString = "Esta es una cadena muy larga que necesita \
+```js
+let longString = "Esta es una cadena muy larga que necesita \
 que dividimos en varias líneas porque \
 de lo contrario, mi código es ilegible."
-
- -

Ambos métodos anteriores dan como resultado cadenas idénticas.

- -

Constructor

- -
-
{{jsxref("String/String", "String()")}}
-
Crea un nuevo objeto String. Realiza la conversión de tipos cuando se llama como función, en lugar de como constructor, lo cual suele ser más útil.
-
- -

Métodos estáticos

- -
-
{{jsxref("String.fromCharCode()", "String.fromCharCode(num1 [, ...[, numN]])")}}
-
Devuelve una cadena creada utilizando la secuencia de valores Unicode especificada.
-
{{jsxref("String.fromCodePoint()", "String.fromCodePoint(num1 [, ...[, numN]])")}}
-
Devuelve una cadena creada utilizando la secuencia de puntos de código especificada.
-
{{jsxref("String.raw()")}}
-
Devuelve una cadena creada a partir de una plantilla literal sin formato.
-
- -

Propiedades de la instancia

- -
-
{{jsxref("String.prototype.length")}}
-
Refleja la length de la cadena. Solo lectura.
-
- -

Métodos de instancia

- -
-
{{jsxref("String.prototype.charAt()", "String.prototype.charAt(index)")}}
-
Devuelve el caracter (exactamente una unidad de código UTF-16) en el index especificado.
-
{{jsxref("String.prototype.charCodeAt()", "String.prototype.charCodeAt(index)")}}
-
Devuelve un número que es el valor de la unidad de código UTF-16 en el index dado.
-
{{jsxref("String.prototype.codePointAt()", "String.prototype.codePointAt(pos)")}}
-
Devuelve un número entero no negativo que es el valor del punto de código del punto de código codificado en UTF-16 que comienza en la pos especificada.
-
{{jsxref("String.prototype.concat()", "String.prototype.concat(str[, ...strN])")}}
-
Combina el texto de dos (o más) cadenas y devuelve una nueva cadena.
-
{{jsxref("String.prototype.includes()", "String.prototype.includes(searchString [, position])")}}
-
Determina si la cadena de la llamada contiene searchString.
-
{{jsxref("String.prototype.endsWith()", "String.prototype.endsWith(searchString[, length])")}}
-
Determina si una cadena termina con los caracteres de la cadena searchString.
-
{{jsxref("String.prototype.indexOf()", "String.prototype.indexOf(searchValue[, fromIndex])")}}
-
Devuelve el índice dentro del objeto {{jsxref("String")}} llamador de la primera aparición de searchValue, o -1 si no lo encontró.
-
{{jsxref("String.prototype.lastIndexOf()", "String.prototype.lastIndexOf(searchValue[, fromIndex])")}}
-
Devuelve el índice dentro del objeto {{jsxref("String")}} llamador de la última aparición de searchValue, o -1 si no lo encontró.
-
{{jsxref("String.prototype.localeCompare()", "String.prototype.localeCompare(compareString[, locales[, options]])")}}
-
Devuelve un número que indica si la cadena de referencia compareString viene antes, después o es equivalente a la cadena dada en el orden de clasificación.
-
{{jsxref("String.prototype.match()", "String.prototype.match(regexp)")}}
-
Se utiliza para hacer coincidir la expresión regular regexp con una cadena.
-
{{jsxref("String.prototype.matchAll()", "String.prototype.matchAll(regexp)")}}
-
Devuelve un iterador de todas las coincidencias de regexp.
-
{{jsxref("String.prototype.normalize()", "String.prototype.normalize([form])")}}
-
Devuelve la forma de normalización Unicode del valor de la cadena llamada.
-
{{jsxref("String.prototype.padEnd()", "String.prototype.padEnd(targetLength[, padString])")}}
-
Rellena la cadena actual desde el final con una cadena dada y devuelve una nueva cadena de longitud targetLength.
-
{{jsxref("String.prototype.padStart()", "String.prototype.padStart(targetLength[, padString])")}}
-
Rellena la cadena actual desde el principio con una determinada cadena y devuelve una nueva cadena de longitud targetLength.
-
{{jsxref("String.prototype.repeat()", "String.prototype.repeat(count)")}}
-
Devuelve una cadena que consta de los elementos del objeto repetidos count veces.
-
{{jsxref("String.prototype.replace()" , "String.prototype.replace(searchFor, replaceWith)")}}
-
Se usa para reemplazar ocurrencias de searchFor usando replaceWith. searchFor puede ser una cadena o expresión regular, y replaceWith puede ser una cadena o función.
-
{{jsxref("String.prototype.replaceAll()", "String.prototype.replaceAll(searchFor, replaceWith)")}}
-
Se utiliza para reemplazar todas las apariciones de searchFor usando replaceWith. searchFor puede ser una cadena o expresión regular, y replaceWith puede ser una cadena o función.
-
{{jsxref("String.prototype.search()", "String.prototype.search(regexp)")}}
-
Busca una coincidencia entre una expresión regular regexp y la cadena llamadora.
-
{{jsxref("String.prototype.slice()", "String.prototype.slice(beginIndex[, endIndex])")}}
-
Extrae una sección de una cadena y devuelve una nueva cadena.
-
{{jsxref("String.prototype.split()", "String.prototype.split([sep[, limit] ])")}}
-
Devuelve un arreglo de cadenas pobladas al dividir la cadena llamadora en las ocurrencias de la subcadena sep.
-
{{jsxref("String.prototype.startsWith()", "String.prototype.startsWith(searchString[, length])")}}
-
Determina si la cadena llamadora comienza con los caracteres de la cadena searchString.
-
{{jsxref("String.prototype.substr()")}}
-
Devuelve los caracteres en una cadena que comienza en la ubicación especificada hasta el número especificado de caracteres.
-
{{jsxref("String.prototype.substring()", "String.prototype.substring(indexStart[, indexEnd])")}}
-
Devuelve una nueva cadena que contiene caracteres de la cadena llamadora de (o entre) el índice (o indeces) especificados.
-
{{jsxref("String.prototype.toLocaleLowerCase()", "String.prototype.toLocaleLowerCase( [locale, ...locales])")}}
-
-

Los caracteres dentro de una cadena se convierten a minúsculas respetando la configuración regional actual.

- -

Para la mayoría de los idiomas, devolverá lo mismo que {{jsxref("String.prototype.toLowerCase()", "toLowerCase()")}}.

-
-
{{jsxref("String.prototype.toLocaleUpperCase()", "String.prototype.toLocaleUpperCase( [locale, ...locales])")}}
-
-

Los caracteres dentro de una cadena se convierten a mayúsculas respetando la configuración regional actual.

- -

Para la mayoría de los idiomas, devolverá lo mismo que {{jsxref("String.prototype.toUpperCase()", "toUpperCase()")}}.

-
-
{{jsxref("String.prototype.toLowerCase()")}}
-
Devuelve el valor de la cadena llamadora convertido a minúsculas.
-
{{jsxref("String.prototype.toString()")}}
-
Devuelve una cadena que representa el objeto especificado. Redefine el método {{jsxref("Object.prototype.toString()")}}.
-
{{jsxref("String.prototype.toUpperCase()")}}
-
Devuelve el valor de la cadena llamadora convertido a mayúsculas.
-
{{jsxref("String.prototype.trim()")}}
-
Recorta los espacios en blanco desde el principio y el final de la cadena. Parte del estándar ECMAScript 5.
-
{{jsxref("String.prototype.trimStart()")}}
-
Recorta los espacios en blanco desde el principio de la cadena.
-
{{jsxref("String.prototype.trimEnd()")}}
-
Recorta los espacios en blanco del final de la cadena.
-
{{jsxref("String.prototype.valueOf()")}}
-
Devuelve el valor primitivo del objeto especificado. Redefine el método {{jsxref("Object.prototype.valueOf()")}}.
-
{{jsxref("String.prototype.@@iterator()")}}
-
Devuelve un nuevo objeto Iterator que itera sobre los puntos de código de un valor de cadena, devolviendo cada punto de código como un valor de cadena.
-
- -

Métodos de contenedor HTML

- -
-
-

Desaprobado. Evita estos métodos.

- -

Son de uso limitado, ya que proporcionan solo un subconjunto de las etiquetas y atributos HTML disponibles.

-
- -
-
{{jsxref("String.prototype.anchor()")}}
-
{{htmlattrxref("name", "a", "<a name=\"name\">")}} (hipertexto destino)
-
{{jsxref("String.prototype.big()")}}
-
{{HTMLElement("big")}}
-
{{jsxref("String.prototype.blink()")}}
-
{{HTMLElement("blink")}}
-
{{jsxref("String.prototype.bold()")}}
-
{{HTMLElement("b")}}
-
{{jsxref("String.prototype.fixed()")}}
-
{{HTMLElement("tt")}}
-
{{jsxref("String.prototype.fontcolor()")}}
-
{{htmlattrxref("color", "font", "<font color=\"color\">")}}
-
{{jsxref("String.prototype.fontsize()")}}
-
{{htmlattrxref("size", "font", "<font size=\"size\">")}}
-
{{jsxref("String.prototype.italics()")}}
-
{{HTMLElement("i")}}
-
{{jsxref("String.prototype.link()")}}
-
{{htmlattrxref("href", "a", "<a href=\"url\">")}} (enlace a URL)
-
{{jsxref("String.prototype.small()")}}
-
{{HTMLElement("small")}}
-
{{jsxref("String.prototype.strike()")}}
-
{{HTMLElement("strike")}}
-
{{jsxref("String.prototype.sub()")}}
-
{{HTMLElement("sub")}}
-
{{jsxref("String.prototype.sup()")}}
-
{{HTMLElement("sup")}}
-
-
- -

Ejemplos

- -

Conversión de cadenas

- -

Es posible usar String como una alternativa más confiable de {{jsxref("String.prototype.toString()", "toString()")}}, ya que funciona cuando se usa en {{jsxref( "null")}}, {{jsxref("undefined")}} y en {{jsxref("Symbol", "símbolos")}}. Por ejemplo:

- -
let outputStrings = []
-for (let i = 0, n = inputValues.length; i < n; ++i) {
+```
+
+Ambos métodos anteriores dan como resultado cadenas idénticas.
+
+## Constructor
+
+- {{jsxref("String/String", "String()")}}
+  - : Crea un nuevo objeto `String`. Realiza la conversión de tipos cuando se llama como función, en lugar de como constructor, lo cual suele ser más útil.
+
+## Métodos estáticos
+
+- {{jsxref("String.fromCharCode()", "String.fromCharCode(num1 [, ...[, numN]])")}}
+  - : Devuelve una cadena creada utilizando la secuencia de valores Unicode especificada.
+- {{jsxref("String.fromCodePoint()", "String.fromCodePoint(num1 [, ...[, numN]])")}}
+  - : Devuelve una cadena creada utilizando la secuencia de puntos de código especificada.
+- {{jsxref("String.raw()")}}
+  - : Devuelve una cadena creada a partir de una plantilla literal sin formato.
+
+## Propiedades de la instancia
+
+- {{jsxref("String.prototype.length")}}
+  - : Refleja la `length` de la cadena. Solo lectura.
+
+## Métodos de instancia
+
+- {{jsxref("String.prototype.charAt()", "String.prototype.charAt(index)")}}
+  - : Devuelve el caracter (exactamente una unidad de código UTF-16) en el `index` especificado.
+- {{jsxref("String.prototype.charCodeAt()", "String.prototype.charCodeAt(index)")}}
+  - : Devuelve un número que es el valor de la unidad de código UTF-16 en el `index` dado.
+- {{jsxref("String.prototype.codePointAt()", "String.prototype.codePointAt(pos)")}}
+  - : Devuelve un número entero no negativo que es el valor del punto de código del punto de código codificado en UTF-16 que comienza en la `pos` especificada.
+- {{jsxref("String.prototype.concat()", "String.prototype.concat(str[, ...strN])")}}
+  - : Combina el texto de dos (o más) cadenas y devuelve una nueva cadena.
+- {{jsxref("String.prototype.includes()", "String.prototype.includes(searchString [, position])")}}
+  - : Determina si la cadena de la llamada contiene `searchString`.
+- {{jsxref("String.prototype.endsWith()", "String.prototype.endsWith(searchString[, length])")}}
+  - : Determina si una cadena termina con los caracteres de la cadena `searchString`.
+- {{jsxref("String.prototype.indexOf()", "String.prototype.indexOf(searchValue[, fromIndex])")}}
+  - : Devuelve el índice dentro del objeto {{jsxref("String")}} llamador de la primera aparición de `searchValue`, o `-1` si no lo encontró.
+- {{jsxref("String.prototype.lastIndexOf()", "String.prototype.lastIndexOf(searchValue[, fromIndex])")}}
+  - : Devuelve el índice dentro del objeto {{jsxref("String")}} llamador de la última aparición de `searchValue`, o `-1` si no lo encontró.
+- {{jsxref("String.prototype.localeCompare()", "String.prototype.localeCompare(compareString[, locales[, options]])")}}
+  - : Devuelve un número que indica si la cadena de referencia `compareString` viene antes, después o es equivalente a la cadena dada en el orden de clasificación.
+- {{jsxref("String.prototype.match()", "String.prototype.match(regexp)")}}
+  - : Se utiliza para hacer coincidir la expresión regular `regexp` con una cadena.
+- {{jsxref("String.prototype.matchAll()", "String.prototype.matchAll(regexp)")}}
+  - : Devuelve un iterador de todas las coincidencias de `regexp`.
+- {{jsxref("String.prototype.normalize()", "String.prototype.normalize([form])")}}
+  - : Devuelve la forma de normalización Unicode del valor de la cadena llamada.
+- {{jsxref("String.prototype.padEnd()", "String.prototype.padEnd(targetLength[, padString])")}}
+  - : Rellena la cadena actual desde el final con una cadena dada y devuelve una nueva cadena de longitud `targetLength`.
+- {{jsxref("String.prototype.padStart()", "String.prototype.padStart(targetLength[, padString])")}}
+  - : Rellena la cadena actual desde el principio con una determinada cadena y devuelve una nueva cadena de longitud `targetLength`.
+- {{jsxref("String.prototype.repeat()", "String.prototype.repeat(count)")}}
+  - : Devuelve una cadena que consta de los elementos del objeto repetidos `count` veces.
+- {{jsxref("String.prototype.replace()" , "String.prototype.replace(searchFor, replaceWith)")}}
+  - : Se usa para reemplazar ocurrencias de `searchFor` usando `replaceWith`. `searchFor` puede ser una cadena o expresión regular, y `replaceWith` puede ser una cadena o función.
+- {{jsxref("String.prototype.replaceAll()", "String.prototype.replaceAll(searchFor, replaceWith)")}}
+  - : Se utiliza para reemplazar todas las apariciones de `searchFor` usando `replaceWith`. `searchFor` puede ser una cadena o expresión regular, y `replaceWith` puede ser una cadena o función.
+- {{jsxref("String.prototype.search()", "String.prototype.search(regexp)")}}
+  - : Busca una coincidencia entre una expresión regular `regexp` y la cadena llamadora.
+- {{jsxref("String.prototype.slice()", "String.prototype.slice(beginIndex[, endIndex])")}}
+  - : Extrae una sección de una cadena y devuelve una nueva cadena.
+- {{jsxref("String.prototype.split()", "String.prototype.split([sep[, limit] ])")}}
+  - : Devuelve un arreglo de cadenas pobladas al dividir la cadena llamadora en las ocurrencias de la subcadena `sep`.
+- {{jsxref("String.prototype.startsWith()", "String.prototype.startsWith(searchString[, length])")}}
+  - : Determina si la cadena llamadora comienza con los caracteres de la cadena `searchString`.
+- {{jsxref("String.prototype.substr()")}}
+  - : Devuelve los caracteres en una cadena que comienza en la ubicación especificada hasta el número especificado de caracteres.
+- {{jsxref("String.prototype.substring()", "String.prototype.substring(indexStart[, indexEnd])")}}
+  - : Devuelve una nueva cadena que contiene caracteres de la cadena llamadora de (o entre) el índice (o indeces) especificados.
+- {{jsxref("String.prototype.toLocaleLowerCase()", "String.prototype.toLocaleLowerCase( [locale, ...locales])")}}
+  - : Los caracteres dentro de una cadena se convierten a minúsculas respetando la configuración regional actual.Para la mayoría de los idiomas, devolverá lo mismo que {{jsxref("String.prototype.toLowerCase()", "toLowerCase()")}}.
+- {{jsxref("String.prototype.toLocaleUpperCase()", "String.prototype.toLocaleUpperCase( [locale, ...locales])")}}
+  - : Los caracteres dentro de una cadena se convierten a mayúsculas respetando la configuración regional actual.Para la mayoría de los idiomas, devolverá lo mismo que {{jsxref("String.prototype.toUpperCase()", "toUpperCase()")}}.
+- {{jsxref("String.prototype.toLowerCase()")}}
+  - : Devuelve el valor de la cadena llamadora convertido a minúsculas.
+- {{jsxref("String.prototype.toString()")}}
+  - : Devuelve una cadena que representa el objeto especificado. Redefine el método {{jsxref("Object.prototype.toString()")}}.
+- {{jsxref("String.prototype.toUpperCase()")}}
+  - : Devuelve el valor de la cadena llamadora convertido a mayúsculas.
+- {{jsxref("String.prototype.trim()")}}
+  - : Recorta los espacios en blanco desde el principio y el final de la cadena. Parte del estándar ECMAScript 5.
+- {{jsxref("String.prototype.trimStart()")}}
+  - : Recorta los espacios en blanco desde el principio de la cadena.
+- {{jsxref("String.prototype.trimEnd()")}}
+  - : Recorta los espacios en blanco del final de la cadena.
+- {{jsxref("String.prototype.valueOf()")}}
+  - : Devuelve el valor primitivo del objeto especificado. Redefine el método {{jsxref("Object.prototype.valueOf()")}}.
+- {{jsxref("String.prototype.@@iterator()")}}
+  - : Devuelve un nuevo objeto `Iterator` que itera sobre los puntos de código de un valor de cadena, devolviendo cada punto de código como un valor de cadena.
+
+## Métodos de contenedor HTML
+
+> **Nota:** **Desaprobado. Evita estos métodos.**Son de uso limitado, ya que proporcionan solo un subconjunto de las etiquetas y atributos HTML disponibles.
+
+- {{jsxref("String.prototype.anchor()")}}
+  - : {{htmlattrxref("name", "a", "<a name=\"name\">")}} (hipertexto destino)
+- {{jsxref("String.prototype.big()")}}
+  - : {{HTMLElement("big")}}
+- {{jsxref("String.prototype.blink()")}}
+  - : {{HTMLElement("blink")}}
+- {{jsxref("String.prototype.bold()")}}
+  - : {{HTMLElement("b")}}
+- {{jsxref("String.prototype.fixed()")}}
+  - : {{HTMLElement("tt")}}
+- {{jsxref("String.prototype.fontcolor()")}}
+  - : {{htmlattrxref("color", "font", "<font color=\"color\">")}}
+- {{jsxref("String.prototype.fontsize()")}}
+  - : {{htmlattrxref("size", "font", "<font size=\"size\">")}}
+- {{jsxref("String.prototype.italics()")}}
+  - : {{HTMLElement("i")}}
+- {{jsxref("String.prototype.link()")}}
+  - : {{htmlattrxref("href", "a", "<a href=\"url\">")}} (enlace a URL)
+- {{jsxref("String.prototype.small()")}}
+  - : {{HTMLElement("small")}}
+- {{jsxref("String.prototype.strike()")}}
+  - : {{HTMLElement("strike")}}
+- {{jsxref("String.prototype.sub()")}}
+  - : {{HTMLElement("sub")}}
+- {{jsxref("String.prototype.sup()")}}
+  - : {{HTMLElement("sup")}}
+
+## Ejemplos
+
+### Conversión de cadenas
+
+Es posible usar `String` como una alternativa más confiable de {{jsxref("String.prototype.toString()", "toString()")}}, ya que funciona cuando se usa en {{jsxref( "null")}}, {{jsxref("undefined")}} y en {{jsxref("Symbol", "símbolos")}}. Por ejemplo:
+
+```js
+let outputStrings = []
+for (let i = 0, n = inputValues.length; i < n; ++i) {
   outputStrings.push(String(inputValues[i]));
 }
-
- -

Especificaciones

- - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-string-objects', 'String')}}
+``` -

Compatibilidad del navegador

+## Especificaciones +| Especificación | +| ---------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-string-objects', 'String')}} | +## Compatibilidad del navegador -

{{Compat("javascript.builtins.String")}}

+{{Compat("javascript.builtins.String")}} -

Ve también

+## Ve también - +- [Formato de texto en la Guía de JavaScript](/es/docs/Web/JavaScript/Guide/Text_formatting) +- {{jsxref("RegExp")}} +- {{domxref("DOMString")}} +- [`StringView` — una representación similar a C de cadenas basada en arreglos tipados](/es/Add-ons/Code_snippets/StringView) +- [Cadenas binarias](/es/docs/Web/API/DOMString/Binary) diff --git a/files/es/web/javascript/reference/global_objects/string/indexof/index.md b/files/es/web/javascript/reference/global_objects/string/indexof/index.md index 7711332977a3cd..2b7e38e70d86c1 100644 --- a/files/es/web/javascript/reference/global_objects/string/indexof/index.md +++ b/files/es/web/javascript/reference/global_objects/string/indexof/index.md @@ -9,97 +9,98 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/indexOf original_slug: Web/JavaScript/Referencia/Objetos_globales/String/indexOf --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -

Resumen

+## Resumen -

El método indexOf()devuelve el índice, dentro del objeto String que realiza la llamada, de la primera ocurrencia del valor especificado, comenzando la búsqueda desde indiceDesde; o -1 si no se encuentra dicho valor.

+El método **`indexOf()`**devuelve el índice, dentro del objeto `String` que realiza la llamada, de la primera ocurrencia del valor especificado, comenzando la búsqueda desde `indiceDesde`; o -1 si no se encuentra dicho valor. -

Sintaxis

+## Sintaxis -
cadena.indexOf(valorBusqueda[, indiceDesde])
+ cadena.indexOf(valorBusqueda[, indiceDesde]) -

Parámetros

+### Parámetros -
-
valorBusqueda
-
Una cadena que representa el valor de búsqueda.
-
+- `valorBusqueda` + - : Una cadena que representa el valor de búsqueda. -
-
indiceDesde
-
La localización dentro de la cadena llamada desde la que empezará la búsqueda. Puede ser un entero entre 0 y la longitud de la cadena. El valor predeterminado es 0.
-
+ -

Descripción

+- `indiceDesde` + - : La localización dentro de la cadena llamada desde la que empezará la búsqueda. Puede ser un entero entre 0 y la longitud de la cadena. El valor predeterminado es 0. -

Los caracteres de una cadena se indexan de izquierda a derecha. El índice del primer carácter es 0, y el índice del último carácter de una cadena llamada nombreCadena es nombreCadena.length - 1.

+## Descripción -
"Blue Whale".indexOf("Blue")    // returns 0
+Los caracteres de una cadena se indexan de izquierda a derecha. El índice del primer carácter es 0, y el índice del último carácter de una cadena llamada `nombreCadena` es `nombreCadena.length - 1`.
+
+```js
+"Blue Whale".indexOf("Blue")    // returns 0
 "Blue Whale".indexOf("Blute")   // returns -1
 "Blue Whale".indexOf("Whale",0) // returns 5
 "Blue Whale".indexOf("Whale",5) // returns 5
 "Blue Whale".indexOf("",9)      // returns 9
 "Blue Whale".indexOf("",10)     // returns 10
 "Blue Whale".indexOf("",11)     // returns 10
-
+``` -

El método indexOf es sensible a mayúsculas. Por ejemplo, la siguiente expresión devuelve -1:

+El método `indexOf` es sensible a mayúsculas. Por ejemplo, la siguiente expresión devuelve -1: -
"Ballena Azul".indexOf("azul")
-
+```js +"Ballena Azul".indexOf("azul") +``` -

Ejemplos

+## Ejemplos -

Ejemplo: Usando indexOf y lastIndexOf

+### Ejemplo: Usando `indexOf` y `lastIndexOf` -

El siguiente ejemplo utiliza indexOf y lastIndexOf para localizar valores dentro de la cadena "Brave new world".

+El siguiente ejemplo utiliza `indexOf` y `lastIndexOf` para localizar valores dentro de la cadena "`Brave new world`". -
var cualquierCadena="Brave new world"
+```js
+var cualquierCadena="Brave new world"
 
 
-document.write("<P>The index of the first w from the beginning is " +
+document.write("

The index of the first w from the beginning is " + cualquierCadena.indexOf("w")) // Muestra 8 -document.write("<P>The index of the first w from the end is " + +document.write("

The index of the first w from the end is " + cualquierCadena.lastIndexOf("w")) // Muestra 10 -document.write("<P>The index of 'new' from the beginning is " + +document.write("

The index of 'new' from the beginning is " + cualquierCadena.indexOf("new")) // Muestra 6 -document.write("<P>The index of 'new' from the end is " + +document.write("

The index of 'new' from the end is " + cualquierCadena.lastIndexOf("new")) // Muestra 6 -

+``` -

Ejemplo: indexOf y sensibilidad a mayúsculas

+### Ejemplo: `indexOf` y sensibilidad a mayúsculas -

El siguiente ejemplo define dos variables de tipo cadena. Las variables contienen la misma cadena excepto que la segunda cadena contienen letras en mayúscula. El primer método writeln muestra 19. Pero a que el método indexOf es sensible a mayúsculas, no se encuentra la cadena "cheddar" en miCadenaMayusculas, así que el segundo método writeln muestra -1.

+El siguiente ejemplo define dos variables de tipo cadena. Las variables contienen la misma cadena excepto que la segunda cadena contienen letras en mayúscula. El primer método `writeln` muestra 19. Pero a que el método `indexOf` es sensible a mayúsculas, no se encuentra la cadena "`cheddar`" en `miCadenaMayusculas`, así que el segundo método `writeln` muestra -1. -
miCadena="brie, pepper jack, cheddar"
+```js
+miCadena="brie, pepper jack, cheddar"
 miCadenaMayusculas="Brie, Pepper Jack, Cheddar"
 document.writeln('miCadena.indexOf("cheddar") is ' +
    miCadena.indexOf("cheddar"))
-document.writeln('<P>miCadenaMayusculas.indexOf("cheddar") is ' +
+document.writeln('

miCadenaMayusculas.indexOf("cheddar") is ' + miCadenaMayusculas.indexOf("cheddar")) -

+``` -

Ejemplo: Usando indexOf para contar ocurrencias de una letra en una cadena

+### Ejemplo: Usando `indexOf` para contar ocurrencias de una letra en una cadena -

El siguiente ejemplo establece cuenta como el número de ocurrencias de la letra x dentro de la cadena miCadena:

+El siguiente ejemplo establece `cuenta` como el número de ocurrencias de la letra `x` dentro de la cadena `miCadena`: -
cuenta = 0;
+```js
+cuenta = 0;
 posicion = miCadena.indexOf("x");
 while ( posicion != -1 ) {
    cuenta++;
    posicion = miCadena.indexOf("x",posicion+1);
 }
-
+``` -

Vea También

+## Vea También -
    -
  • {{jsxref("String.prototype.charAt()")}}
  • -
  • {{jsxref("String.prototype.lastIndexOf()")}}
  • -
  • {{jsxref("String.prototype.split()")}}
  • -
  • {{jsxref("Array.prototype.indexOf()")}}
  • -
+- {{jsxref("String.prototype.charAt()")}} +- {{jsxref("String.prototype.lastIndexOf()")}} +- {{jsxref("String.prototype.split()")}} +- {{jsxref("Array.prototype.indexOf()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/italics/index.md b/files/es/web/javascript/reference/global_objects/string/italics/index.md index 858e66df91cdf8..e1f96f0863e7e5 100644 --- a/files/es/web/javascript/reference/global_objects/string/italics/index.md +++ b/files/es/web/javascript/reference/global_objects/string/italics/index.md @@ -11,40 +11,39 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/italics original_slug: Web/JavaScript/Referencia/Objetos_globales/String/italics --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -

{{deprecated_header}}

+{{deprecated_header}} -

Resumen

+## Resumen -

Provoca que una cadena ponga en cursiva, como si estuviese dentro de una etiqueta {{HTMLElement("i")}}.

+Provoca que una cadena ponga en cursiva, como si estuviese dentro de una etiqueta {{HTMLElement("i")}}. -

Sintaxis

+## Sintaxis -
cadena.italics()
+ cadena.italics() -

Descripción

+## Descripción -

Usa el método italics para formatear y mostrar una cadena en un documento.

+Usa el método `italics` para formatear y mostrar una cadena en un documento. -

Ejemplos

+## Ejemplos -

Ejemplo: Usando métodos de italics()

+### Ejemplo: Usando métodos de `italics()` -

El siguiente ejemplo usa métodos de string para cambiar el formateado de una cadena:

+El siguiente ejemplo usa métodos de `string` para cambiar el formateado de una cadena: -
var cadenaMundo="¡Hola mundo!";
+```js
+var cadenaMundo="¡Hola mundo!";
 
 console.log(cadenaMundo.blink());
 console.log(cadenaMundo.bold());
 console.log(cadenaMundo.italics());
 console.log(cadenaMundo.strike());
-
+``` -

Vea También

+## Vea También -
    -
  • {{jsxref("String.prototype.blink()")}}
  • -
  • {{jsxref("String.prototype.bold()")}}
  • -
  • {{jsxref("String.prototype.strike()")}}
  • -
+- {{jsxref("String.prototype.blink()")}} +- {{jsxref("String.prototype.bold()")}} +- {{jsxref("String.prototype.strike()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/lastindexof/index.md b/files/es/web/javascript/reference/global_objects/string/lastindexof/index.md index 99afb18a5d46b9..4573dd022b36b6 100644 --- a/files/es/web/javascript/reference/global_objects/string/lastindexof/index.md +++ b/files/es/web/javascript/reference/global_objects/string/lastindexof/index.md @@ -10,71 +10,70 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/lastIndexOf original_slug: Web/JavaScript/Referencia/Objetos_globales/String/lastIndexOf --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -

Resumen

+## Resumen -

El método lastIndexOf() devuelve la posicion (indice) en la que se encuentra el valorBusqueda, dentro del objeto String que realiza la llamada, de la última ocurrencia del valor especificado; o -1 si no se halla. La búsqueda se realiza empezando por el final de la cadena que realiza la llamada, empezando en indiceDesde.

+El método **`lastIndexOf() `**`devuelve `la posicion (indice) en la que se encuentra el **valorBusqueda**, dentro del objeto `String` que realiza la llamada, de la última ocurrencia del valor especificado; o -1 si no se halla. La búsqueda se realiza empezando por el final de la cadena que realiza la llamada, empezando en **`indiceDesde`**. -

Sintaxis

+## Sintaxis -
cadena.lastIndexOf(valorBusqueda[, indiceDesde])
+ cadena.lastIndexOf(valorBusqueda[, indiceDesde]) -

Parámetros

+### Parámetros -
-
valorBusqueda
-
Una cadena que representa el valor que se desea buscar.
-
+- `valorBusqueda` + - : Una cadena que representa el valor que se desea buscar. -
-
indiceDesde
-
La localización dentro de la cadena que realiza la llamada desde donde comenzará la búsqueda. Puede ser cualquier entero entre 0 y la longitud de la cadena. El valor predeterminado es la longitud de la cadena.
-
+ -

Descripción

+- `indiceDesde` + - : La localización dentro de la cadena que realiza la llamada desde donde comenzará la búsqueda. Puede ser cualquier entero entre 0 y la longitud de la cadena. El valor predeterminado es la longitud de la cadena. -

Los caracteres de una cadena se indexan de izquierda a derecha. El índice del primer carácter es 0, y el índice del último carácter es nombreCadena.length - 1.

+## Descripción -
"canal".lastIndexOf("a")   // returns 3
+Los caracteres de una cadena se indexan de izquierda a derecha. El índice del primer carácter es 0, y el índice del último carácter es `nombreCadena.length - 1`.
+
+```js
+"canal".lastIndexOf("a")   // returns 3
 "canal".lastIndexOf("a",2) // returns 1
 "canal".lastIndexOf("a",0) // returns -1
 "canal".lastIndexOf("x")   // returns -1
-
+``` -

El método lastIndexOf es sensible a mayúsculas. Por ejemplo, la siguiente expresión devuelve -1:

+El método `lastIndexOf` es sensible a mayúsculas. Por ejemplo, la siguiente expresión devuelve -1: -
"Ballena Azul, Ballena Asesina".lastIndexOf("azul")
-
+```js +"Ballena Azul, Ballena Asesina".lastIndexOf("azul") +``` -

Ejemplos

+## Ejemplos -

Ejemplo: Usando indexOf y lastIndexOf

+### Ejemplo: Usando `indexOf` y `lastIndexOf` -

El siguiente ejemplo utiliza indexOf y lastIndexOf para localizar valores en la cadena "Brave new world".

+El siguiente ejemplo utiliza `indexOf` y `lastIndexOf` para localizar valores en la cadena "`Brave new world`". -
var anyString="Brave new world"
+```js
+var anyString="Brave new world"
 
 // Displays 8
-document.write("<P>The index of the first w from the beginning is " +
+document.write("

The index of the first w from the beginning is " + anyString.indexOf("w")) // Displays 10 -document.write("<P>The index of the first w from the end is " + +document.write("

The index of the first w from the end is " + anyString.lastIndexOf("w")) // Displays 6 -document.write("<P>The index of 'new' from the beginning is " + +document.write("

The index of 'new' from the beginning is " + anyString.indexOf("new")) // Displays 6 -document.write("<P>The index of 'new' from the end is " + +document.write("

The index of 'new' from the end is " + anyString.lastIndexOf("new")) -

+``` -

Vea También

+## Vea También -
    -
  • {{jsxref("String.prototype.charAt()")}}
  • -
  • {{jsxref("String.prototype.indexOf()")}}
  • -
  • {{jsxref("String.prototype.split()")}}
  • -
  • {{jsxref("Array.prototype.indexOf()")}}
  • -
  • {{jsxref("Array.prototype.lastIndexOf()")}}
  • -
+- {{jsxref("String.prototype.charAt()")}} +- {{jsxref("String.prototype.indexOf()")}} +- {{jsxref("String.prototype.split()")}} +- {{jsxref("Array.prototype.indexOf()")}} +- {{jsxref("Array.prototype.lastIndexOf()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/length/index.md b/files/es/web/javascript/reference/global_objects/string/length/index.md index 6052e2289e65fd..234515fba58cc2 100644 --- a/files/es/web/javascript/reference/global_objects/string/length/index.md +++ b/files/es/web/javascript/reference/global_objects/string/length/index.md @@ -11,85 +11,63 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/length original_slug: Web/JavaScript/Referencia/Objetos_globales/String/length --- -
{{JSRef}}
+{{JSRef}} -

La propiedad length de un objeto {{jsxref("String")}} representa la longitud de una cadena, en unidades de código UTF-16.

+La propiedad** \*\***`length`\*\* de un objeto {{jsxref("String")}} representa la longitud de una cadena, en unidades de código UTF-16. -

Sintaxis

+## Sintaxis -
str.length
+ str.length -

Descripción

+## Descripción -

Esta propiedad devuelve el número de caracteres de una cadena. {{interwiki("wikipedia", "UTF-16")}}, el formato usado por JavaScript, usa 16-bit para representar los caracteres más comunes, pero necesita usar dos caracteres para otros menos usados, así que es posible que el valor devuelto por length no corresponda al número de caracteres de la cadena.

+Esta propiedad devuelve el número de caracteres de una cadena. {{interwiki("wikipedia", "UTF-16")}}, el formato usado por JavaScript, usa 16-bit para representar los caracteres más comunes, pero necesita usar dos caracteres para otros menos usados, así que es posible que el valor devuelto por `length` no corresponda al número de caracteres de la cadena. -

ECMASCript 2016 (ed. 7) estableció una longitud máxima de 2^53 - 1 elementos. Anteriormente, ninguna longitud máxima era especificada.

+ECMASCript 2016 (ed. 7) estableció una longitud máxima de `2^53 - 1` elementos. Anteriormente, ninguna longitud máxima era especificada. -

Para una cadena vacía, length es 0.

+Para una cadena vacía, `length` es 0. -

La propiedad static String.length devuelve 1.

+La propiedad static `String.length` devuelve 1. -

Ejemplos

+## Ejemplos -

Uso Básico

+### Uso Básico -
var x = 'Mozilla';
+```js
+var x = 'Mozilla';
 var empty = '';
 
 console.log('Mozilla is ' + x.length + ' code units long');
 /* "Mozilla is 7 code units long" */
 
 console.log('The empty string has a length of ' + empty.length);
-/* "The empty string has a length of 0" */
+/* "The empty string has a length of 0" */ +``` -

Asignando a length

+### Asignando a length -
var myString = "bluebells";
+```js
+var myString = "bluebells";
 
 // Attempting to assign a value to a string's .length property has no observable effect.
 myString.length = 4;
 console.log(myString);
 /* "bluebells" */
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
ECMAScript 1st Edition.EstándarPrimera definicíon. Implementado en JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.5.5.1', 'String.prototype.length')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-properties-of-string-instances-length', 'String.prototype.length')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-properties-of-string-instances-length', 'String.prototype.length')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- -

{{Compat("javascript.builtins.String.length")}}

- -

Ver también

- - +``` + +## Especificaciones + +| Especificación | Estatus | Comentario | +| -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| ECMAScript 1st Edition. | Estándar | Primera definicíon. Implementado en JavaScript 1.0. | +| {{SpecName('ES5.1', '#sec-15.5.5.1', 'String.prototype.length')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-properties-of-string-instances-length', 'String.prototype.length')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-properties-of-string-instances-length', 'String.prototype.length')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.String.length")}} + +## Ver también + +- [JavaScript String.length and Internationalizing Web Applications](http://developer.teradata.com/blog/jasonstrimpel/2011/11/javascript-string-length-and-internationalizing-web-applications) diff --git a/files/es/web/javascript/reference/global_objects/string/link/index.md b/files/es/web/javascript/reference/global_objects/string/link/index.md index 5cab4dd8e6fc03..6c80215156b51c 100644 --- a/files/es/web/javascript/reference/global_objects/string/link/index.md +++ b/files/es/web/javascript/reference/global_objects/string/link/index.md @@ -10,48 +10,46 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/link original_slug: Web/JavaScript/Referencia/Objetos_globales/String/link --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -

Resumen

+## Resumen -

Crea un enlace de hipertexto HTML, {{HTMLElement("a")}}, que solicita otra URL.

+Crea un enlace de hipertexto HTML, {{HTMLElement("a")}}, que solicita otra URL. -

Sintaxis

+## Sintaxis -
cadena.link(atributoHref)
+ cadena.link(atributoHref) -

Parámetros

+### Parámetros -
-
atributoHref
-
Cualquier cadena que especifique el atributo {{htmlattrxref("href", "a")}} de la etiqueta {{HTMLElement("a")}}; debería ser una URL válida (relativa o absoluta).
-
+- `atributoHref` + - : Cualquier cadena que especifique el atributo {{htmlattrxref("href", "a")}} de la etiqueta {{HTMLElement("a")}}; debería ser una URL válida (relativa o absoluta). -

Descripción

+## Descripción -

Usa el método link para crear un atajo HTML para un enlace de hipertexto. La cadena devuelta puede ser añadida al documento vía {{domxref("element.innerHTML")}}.

+Usa el método `link` para crear un atajo HTML para un enlace de hipertexto. La cadena devuelta puede ser añadida al documento vía {{domxref("element.innerHTML")}}. -

Los enlaces creados con el método link serán elementos del array links del objeto document. Vea {{domxref("document.links")}}.

+Los enlaces creados con el método `link` serán elementos del array `links` del objeto `document`. Vea {{domxref("document.links")}}. -

Ejemplos

+## Ejemplos - +### Ejemplo: Usando `link` -

El siguiente ejemplo muestra la palabra "Netscape" como un enlace de hipertexto que devuelve al usuario a la página inicial de Netscape:

+El siguiente ejemplo muestra la palabra "Netscape" como un enlace de hipertexto que devuelve al usuario a la página inicial de Netscape: -
var textoActivo="MDN"
-var URL="https://developer.mozilla.org/"
+```js
+var textoActivo="MDN"
+var URL="https://developer.mozilla.org/"
 
 console.log("Haga click para volver a " + textoActivo.link(URL))
-
+``` -

Este ejemplo produce el mismo resultado que el siguiente código HTML:

+Este ejemplo produce el mismo resultado que el siguiente código HTML: -
Haga click para volver a <a href="http://developer.mozilla.org/">MDN</a>
-
+```html +Haga click para volver a MDN +``` -

Vea También

+## Vea También -
    -
  • {{jsxref("String.prototype.anchor()")}}
  • -
+- {{jsxref("String.prototype.anchor()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/match/index.md b/files/es/web/javascript/reference/global_objects/string/match/index.md index 4fc95a5678e3e8..a95b128b3852ae 100644 --- a/files/es/web/javascript/reference/global_objects/string/match/index.md +++ b/files/es/web/javascript/reference/global_objects/string/match/index.md @@ -11,69 +11,65 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/match original_slug: Web/JavaScript/Referencia/Objetos_globales/String/match --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -

Resumen

+## Resumen -

El método match() se usa para obtener todas las ocurrencias de una expresión regular dentro de una cadena.

+El método **`match()`** se usa para obtener todas las ocurrencias de una _expresión regular_ dentro de una _cadena_. -

Sintaxis

+## Sintaxis -
cadena.match(regexp)
+ cadena.match(regexp) -

Parámetros

+### Parámetros -
-
regexp
-
Un objeto expresión regular. Si se pasa un objeto obj que no es expresión regular, se convierte implícitamente a RegExp usando new RegExp(obj).
-
+- `regexp` + - : Un objeto [expresión regular](/es/docs/Web/JavaScript/Referencia/Objetos_globales/RegExp). Si se pasa un objeto `obj` que no es expresión regular, se convierte implícitamente a RegExp usando `new RegExp(obj)`. -

Descripción

+## Descripción -

Si la expresión regular no incluye el flag g, devuelve el mismo resultado que {{jsxref("Regexp.exec()")}}.

+Si la expresión regular no incluye el flag `g`, devuelve el mismo resultado que {{jsxref("Regexp.exec()")}}. -

Si la expresión regular incluye el flag g, el método devuelve un {{jsxref("Array")}} que contiene todos los emparejamientos.

+Si la expresión regular incluye el flag `g`, el método devuelve un {{jsxref("Array")}} que contiene todos los emparejamientos. -

Notas

+### Notas -
    -
  • Si necesita conocer si una cadena se empareja con una expresión regular regexp, use {{jsxref("Regexp.test()")}}.
  • -
  • Si sólo quiere el primer emparejamiento hallado, podría querer usar {{jsxref("Regexp.exec()")}} a cambio.
  • -
+- Si necesita conocer si una cadena se empareja con una expresión regular `regexp`, use {{jsxref("Regexp.test()")}}. +- Si sólo quiere el primer emparejamiento hallado, podría querer usar {{jsxref("Regexp.exec()")}} a cambio. -

Ejemplos

+## Ejemplos -

Ejemplo: Usando match

+### Ejemplo: Usando `match` -

En el siguiente ejemplo, se usa match para hallar "Capítulo" seguido de 1 o más caracteres numéricos seguidos de un punto decimal y caracteres numéricos cero o más veces. La expresión regular incluye el flag i por lo que las mayúsculas serán ignoradas.

+En el siguiente ejemplo, se usa `match` para hallar "`Capítulo`" seguido de 1 o más caracteres numéricos seguidos de un punto decimal y caracteres numéricos cero o más veces. La expresión regular incluye el flag `i` por lo que las mayúsculas serán ignoradas. -
cadena = "Para más información, vea Capítulo 3.4.5.1";
+```js
+cadena = "Para más información, vea Capítulo 3.4.5.1";
 expresion = /(capítulo \d+(\.\d)*)/i;
 hallado = cadena.match(expresion);
 console.log(hallado);
-
+``` -

Esto devuelve un array que contiene Capítulo 3.4.5.1,Capítulo 3.4.5.1,.1

+Esto devuelve un array que contiene Capítulo 3.4.5.1,Capítulo 3.4.5.1,.1 -

"Capítulo 3.4.5.1" es el primer emparejamiento y el primer valor referenciado por (Chapter \d+(\.\d)*).

+"`Capítulo 3.4.5.1`" es el primer emparejamiento y el primer valor referenciado por `(Chapter \d+(\.\d)*)`. -

".1" es el segundo valor referenciado por (\.\d).

+"`.1`" es el segundo valor referenciado por `(\.\d)`. -

Ejemplo: Usando los flags global e ignorar mayúsculas con match

+### Ejemplo: Usando los flags global e ignorar mayúsculas con `match` -

El siguiente ejemplo demuestra el uso de los flags global e ignorar mayúsculas con match. Todas las letras de A hasta E y de a hasta e son devueltas, en su propio elemento dentro del array.

+El siguiente ejemplo demuestra el uso de los flags global e ignorar mayúsculas con `match`. Todas las letras de A hasta E y de a hasta e son devueltas, en su propio elemento dentro del array. -
var cadena = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+```js
+var cadena = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
 var expresion = /[A-E]/gi;
 var array_emparejamientos = cadena.match(expresion);
 console.log(array_emparejamientos);
-
+``` -

array_emparejamientos será {{ mediawiki.external('\'A\', \'B\', \'C\', \'D\', \'E\', \'a\', \'b\', \'c\', \'d\', \'e\'') }}

+`array_emparejamientos` será `{{ mediawiki.external('\'A\', \'B\', \'C\', \'D\', \'E\', \'a\', \'b\', \'c\', \'d\', \'e\'') }}` -

Vea También

+## Vea También -
    -
  • {{jsxref("RegExp.prototype.exec()")}}
  • -
  • {{jsxref("RegExp.prototype.test()")}}
  • -
+- {{jsxref("RegExp.prototype.exec()")}} +- {{jsxref("RegExp.prototype.test()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/matchall/index.md b/files/es/web/javascript/reference/global_objects/string/matchall/index.md index 74141952fea288..ce368348fb223f 100644 --- a/files/es/web/javascript/reference/global_objects/string/matchall/index.md +++ b/files/es/web/javascript/reference/global_objects/string/matchall/index.md @@ -11,36 +11,33 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/matchAll original_slug: Web/JavaScript/Referencia/Objetos_globales/String/matchAll --- -
{{JSRef}}
+{{JSRef}} -

El método matchAll() retorna un iterador de todos los resultados de ocurrencia en una cadena de texto contra una expresión regular, incluyendo grupos de captura.

+El método **`matchAll()`** retorna un iterador de todos los resultados de ocurrencia en una _cadena de texto_ contra una expresión regular, incluyendo grupos de captura. -
{{EmbedInteractiveExample("pages/js/string-matchall.html")}}
+{{EmbedInteractiveExample("pages/js/string-matchall.html")}} +## Sintaxis + cadena.matchAll(expresionRegular) -

Sintaxis

+### Parámetros -
cadena.matchAll(expresionRegular)
+- _expresionRegular_ + - : Un objeto expresión regular. Si se pasa un objeto no-RegExp `obj`, este es implícitamente convertido a {{jsxref("RegExp")}} vía `new RegExp(obj)`. -

Parámetros

+### Valor devuelto -
-
expresionRegular
-
Un objeto expresión regular. Si se pasa un objeto no-RegExp obj, este es implícitamente convertido a {{jsxref("RegExp")}} vía new RegExp(obj).
-
+Un [iterador](/es/docs/Web/JavaScript/Guide/Iterators_and_Generators) (el cual no es reiniciable). -

Valor devuelto

+## Ejemplo -

Un iterador (el cual no es reiniciable).

+### Regexp.exec() y matchAll() -

Ejemplo

+Antes de la adición de `matchAll` a JavaScript, fue posible hacer llamados a [regexp.exec](/es/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec) (y usar expresiones regulares con la bandera `/g`) en un ciclo para obtener las ocurrencias: -

Regexp.exec() y matchAll()

- -

Antes de la adición de matchAll a JavaScript, fue posible hacer llamados a regexp.exec (y usar expresiones regulares con la bandera /g) en un ciclo para obtener las ocurrencias:

- -
const regexp = RegExp('foo[a-z]*','g');
+```js
+const regexp = RegExp('foo[a-z]*','g');
 const cadena = 'mesa football, foosball';
 let ocurrencia;
 
@@ -48,11 +45,13 @@ while ((ocurrencia = regexp.exec(cadena)) !== null) {
   console.log(`Encontrado ${ocurrencia[0]} inicio=${ocurrencia.index} final=${regexp.lastIndex}.`);
   // salida esperada: "Encontrado football inicio=5 final=13."
   // salida esperada: "Encontrado foosball inicio=15 final=23."
-}
+} +``` -

Con matchAll disponible, puedes evitar el ciclo while y exec con /g. Por el contrario, usando matchAll, obtienes un iterador con el cual puedes usar con constructores más convenientes for...of, array spread, o {{jsxref("Array.from()")}}:

+Con `matchAll` disponible, puedes evitar el ciclo [`while`](/en-US/docs/Web/JavaScript/Reference/Statements/while) y `exec` con `/g`. Por el contrario, usando `matchAll`, obtienes un iterador con el cual puedes usar con constructores más convenientes [`for...of`](/en-US/docs/Web/JavaScript/Reference/Statements/for...of), [array spread](/es/docs/Web/JavaScript/Reference/Operators/Spread_syntax), o {{jsxref("Array.from()")}}: -
const regexp = RegExp('foo[a-z]*','g');
+```js
+const regexp = RegExp('foo[a-z]*','g');
 const cadena = 'mesa football, foosball';
 const ocurrencias = cadena.matchAll(regexp);
 
@@ -64,72 +63,64 @@ for (const ocurrencia of ocurrencias) {
 
 // el iterador ocurrencias es agotado después de la iteración for..of
 // Llama matchAll de nuevo para crear un nuevo iterador
-Array.from(cadena.matchAll(regexp), m => m[0]);
-// Array [ "football", "foosball" ]
+Array.from(cadena.matchAll(regexp), m => m[0]); +// Array [ "football", "foosball" ] +``` -

matchAll solo devuelve la primer ocurrencia si la bandera /g está ausente.

+`matchAll` solo devuelve la primer ocurrencia si la bandera `/g` está ausente. -
const regexp = RegExp('[a-c]','');
+```js
+const regexp = RegExp('[a-c]','');
 const cadena = 'abc';
-Array.from(cadena.matchAll(regexp), m => m[0]);
+Array.from(cadena.matchAll(regexp), m => m[0]);
 // Array [ "a" ]
-
+``` -

matchAll internamente hace un clon de la expresión regular, entonces a diferencia de regexp.exec, lastIndex no cambia a medida que la cadena es escaneada.

+`matchAll` internamente hace un clon de la expresión regular, entonces a diferencia de [regexp.exec](/es/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec), `lastIndex` no cambia a medida que la cadena es escaneada. -
const regexp = RegExp('[a-c]','g');
+```js
+const regexp = RegExp('[a-c]','g');
 regexp.lastIndex = 1;
 const cadena = 'abc';
-Array.from(cadena.matchAll(regexp), m => `${regexp.lastIndex} ${m[0]}`);
-// Array [ "1 b", "1 c" ]
+Array.from(cadena.matchAll(regexp), m => `${regexp.lastIndex} ${m[0]}`); +// Array [ "1 b", "1 c" ] +``` -

Mejor acceso para capturar grupos

+### Mejor acceso para capturar grupos -

Otra buena razón para matchAll es el mejorado acceso a los grupos de captura. Los grupos de captura son ignorados cuando se usa match() con la bandera global /g:

+Otra buena razón para `matchAll` es el mejorado acceso a los grupos de captura. Los grupos de captura son ignorados cuando se usa [`match()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match) con la bandera global `/g`: -
var regexp = /t(e)(st(\d?))/g;
+```js
+var regexp = /t(e)(st(\d?))/g;
 var cadena = 'test1test2';
 
 cadena.match(regexp);
-// Array ['test1', 'test2']
+// Array ['test1', 'test2'] +``` -

Con matchAll puedes acceder a ellos:

+Con `matchAll` puedes acceder a ellos: -
let array = [...str.matchAll(regexp)];
+```js
+let array = [...str.matchAll(regexp)];
 
 array[0];
 // ['test1', 'e', 'st1', '1', index: 0, input: 'test1test2', length: 4]
 array[1];
 // ['test2', 'e', 'st2', '2', index: 5, input: 'test1test2', length: 4]
-
- -

Especificaciones

- - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ESDraft', '#sec-string.prototype.matchall', 'String.prototype.matchAll')}}{{Spec2('ESDraft')}}
+``` -

Compatibilidad de navegadores

+## Especificaciones +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ---------- | +| {{SpecName('ESDraft', '#sec-string.prototype.matchall', 'String.prototype.matchAll')}} | {{Spec2('ESDraft')}} | | +## Compatibilidad de navegadores -

{{Compat("javascript.builtins.String.matchAll")}}

+{{Compat("javascript.builtins.String.matchAll")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("RegExp")}}
  • -
  • {{jsxref("RegExp.prototype.exec()")}}
  • -
  • {{jsxref("RegExp.prototype.test()")}}
  • -
+- {{jsxref("RegExp")}} +- {{jsxref("RegExp.prototype.exec()")}} +- {{jsxref("RegExp.prototype.test()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/normalize/index.md b/files/es/web/javascript/reference/global_objects/string/normalize/index.md index 662df8ee2b4cb4..327c588475ca10 100644 --- a/files/es/web/javascript/reference/global_objects/string/normalize/index.md +++ b/files/es/web/javascript/reference/global_objects/string/normalize/index.md @@ -13,48 +13,41 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/normalize original_slug: Web/JavaScript/Referencia/Objetos_globales/String/normalize --- -
{{JSRef}}
+{{JSRef}} -

El método normalize() retorna la Forma de Normalización Unicode de la cadena dada (si el valor no es una cadena, primero será convertido a ese tipo).

+El método **`normalize()`** retorna la Forma de Normalización Unicode de la cadena dada (si el valor no es una cadena, primero será convertido a ese tipo). -

Sintaxis

+## Sintaxis -
str.normalize([form])
+ str.normalize([form]) -

Parámetros

+### Parámetros -
-
form
-
Uno de"NFC", "NFD", "NFKC", o "NFKD", especificando la Forma de Normalización Unicode. Si es omitida o {{jsxref("undefined")}}, se utiliza "NFC". -
    -
  • NFC — Forma de Normalización de Composición Canónica.
  • -
  • NFD — Forma de Normalización de Descomposición Canónica.
  • -
  • NFKC — Forma de Normalización de Composición de Compatibilidad.
  • -
  • NFKD — Forma de Normalización de Descomposición de Compatibilidad.
  • -
-
-
+- `form` + - : Uno de`"NFC"`, `"NFD"`, `"NFKC"`, o `"NFKD"`, especificando la Forma de Normalización Unicode. Si es omitida o {{jsxref("undefined")}}, se utiliza `"NFC"`.\* `NFC` — Forma de Normalización de Composición Canónica. + - `NFD` — Forma de Normalización de Descomposición Canónica. + - `NFKC` — Forma de Normalización de Composición de Compatibilidad. + - `NFKD` — Forma de Normalización de Descomposición de Compatibilidad. -

Valor de retorno

+### Valor de retorno -

Una cadena que contiene la Forma de Normalización Unicode de la cadena dada.

+Una cadena que contiene la Forma de Normalización Unicode de la cadena dada. -

Errores lanzados

+### Errores lanzados -
-
{{jsxref("RangeError")}}
-
Un error {{jsxref("RangeError")}} es lanzado si form no es uno de los valores especificados arriba.
-
+- {{jsxref("RangeError")}} + - : Un error {{jsxref("RangeError")}} es lanzado si `form` no es uno de los valores especificados arriba. -

Descripción

+## Descripción -

El método normalize() retorna la Forma de Normalización Unicode de una cadena. No afecta el valor de la cadena en sí misma.

+El método `normalize()` retorna la Forma de Normalización Unicode de una cadena. No afecta el valor de la cadena en sí misma. -

Ejemplos

+## Ejemplos -

Uso de normalize()

+### Uso de `normalize()` -
// Cadena inicial
+```js
+// Cadena inicial
 
 // U+1E9B: LETRA S LATINA MINÚSCULA CON PUNTO ARRIBA
 // U+0323: COMBINACIÓN CON PUNTO ABAJO
@@ -89,39 +82,20 @@ str.normalize('NFKC'); // '\u1E69'
 // U+0323: COMBINACIÓN CON PUNTO ABAJO
 // U+0307: COMBINACIÓN CON PUNTO ARRIBA
 str.normalize('NFKD'); // '\u0073\u0323\u0307'
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES2015', '#sec-string.prototype.normalize', 'String.prototype.normalize')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-string.prototype.normalize', 'String.prototype.normalize')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de Navegadores

- - - -

{{Compat("javascript.builtins.String.normalize")}}

- -

Vea también

- - +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-string.prototype.normalize', 'String.prototype.normalize')}} | {{Spec2('ES2015')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-string.prototype.normalize', 'String.prototype.normalize')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de Navegadores + +{{Compat("javascript.builtins.String.normalize")}} + +## Vea también + +- [Anexo del Estándar Unicode #15, Formas de Normalización Unicode](http://www.unicode.org/reports/tr15/) +- [Equivalencia Unicode](http://en.wikipedia.org/wiki/Unicode_equivalence) diff --git a/files/es/web/javascript/reference/global_objects/string/padstart/index.md b/files/es/web/javascript/reference/global_objects/string/padstart/index.md index 5440d3e8298e5e..e139159c6cd7f1 100644 --- a/files/es/web/javascript/reference/global_objects/string/padstart/index.md +++ b/files/es/web/javascript/reference/global_objects/string/padstart/index.md @@ -10,44 +10,41 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/padStart original_slug: Web/JavaScript/Referencia/Objetos_globales/String/padStart --- -
{{JSRef}}{{SeeCompatTable}}
+{{JSRef}}{{SeeCompatTable}} -

El método padStart() rellena la cadena actual con una cadena dada (repetida eventualmente) de modo que la cadena resultante alcance una longitud dada. El relleno es aplicado desde el inicio (izquierda) de la cadena actual.

+El método **`padStart()`** rellena la cadena actual con una cadena dada (repetida eventualmente) de modo que la cadena resultante alcance una longitud dada. El relleno es aplicado desde el inicio (izquierda) de la cadena actual. -

Sintaxis

+## Sintaxis -
str.padStart(targetLength [, padString])
+ str.padStart(targetLength [, padString]) -

Parámetros

+### Parámetros -
-
targetLength
-
La longitud de la cadena resultante una vez la cadena actual haya sido rellenada. Si este parámetro es más pequeño que la longitud de la cadena actual, la cadena actual será devuelta sin modificar.
-
padString {{optional_inline}}
-
La cadena para rellenar la cadena actual. Si esta cadena es muy larga, será recortada y la parte más a la izquierda será aplicada. El valor por defecto para este parámetro es " " (U+0020).
-
+- `targetLength` + - : La longitud de la cadena resultante una vez la cadena actual haya sido rellenada. Si este parámetro es más pequeño que la longitud de la cadena actual, la cadena actual será devuelta sin modificar. +- `padString` {{optional_inline}} + - : La cadena para rellenar la cadena actual. Si esta cadena es muy larga, será recortada y la parte más a la izquierda será aplicada. El valor por defecto para este parámetro es " " (U+0020). -

Valor devuelto

+### Valor devuelto -

Un {{jsxref("String")}} de la longitud específicada con la cadena de relleno aplicada desde el inicio.

+Un {{jsxref("String")}} de la longitud específicada con la cadena de relleno aplicada desde el inicio. -

Ejemplos

+## Ejemplos -
'abc'.padStart(10);         // "       abc"
+```js
+'abc'.padStart(10);         // "       abc"
 'abc'.padStart(10, "foo");  // "foofoofabc"
 'abc'.padStart(6,"123465"); // "123abc"
-
+``` -

Especificaciones

+## Especificaciones -

Este método aún no ha alcanzado el estándar ECMAScript. Actualmente es una propuesta para ECMAScript.

+Este método aún no ha alcanzado el estándar ECMAScript. Actualmente es una [propuesta para ECMAScript](https://github.com/tc39/proposal-string-pad-start-end). -

Compatibilidad con navegadores

+## Compatibilidad con navegadores {{Compat("javascript.builtins.String.padStart")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("String.padEnd()")}}
  • -
+- {{jsxref("String.padEnd()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/raw/index.md b/files/es/web/javascript/reference/global_objects/string/raw/index.md index 4187edebd40466..bee327f43aacb7 100644 --- a/files/es/web/javascript/reference/global_objects/string/raw/index.md +++ b/files/es/web/javascript/reference/global_objects/string/raw/index.md @@ -4,50 +4,46 @@ slug: Web/JavaScript/Reference/Global_Objects/String/raw translation_of: Web/JavaScript/Reference/Global_Objects/String/raw original_slug: Web/JavaScript/Referencia/Objetos_globales/String/raw --- -
{{JSRef}}
+{{JSRef}} -

El método estatico String.raw() es una función de plantilla de literales, similar al prefijo r en Python o al prefijo @ en C# para strings literales (con ciertas diferencias: ver la explicación en este problema). Se utiliza para obtener un string crudo a partir de plantillas de string (es decir, el original, texto no interpretado).

+El método estatico **`String.raw()` **es una función de [plantilla de literales](/es/docs/Web/JavaScript/Reference/template_strings), similar al prefijo `r` en Python o al prefijo `@` en C# para strings literales (con ciertas diferencias: ver la explicación en [este problema](https://bugs.chromium.org/p/v8/issues/detail?id=5016)). Se utiliza para obtener un _string_ crudo a partir de plantillas de _string_ (es decir, el original, texto no interpretado). -

Sintaxis

+## Sintaxis -
String.raw(callSite, ...substitutions)
+    String.raw(callSite, ...substitutions)
 
-String.raw`templateString`
-
+ String.raw`templateString` -

Parametros

+### Parametros -
-
callSite
-
Plantilla bien estructurada, similar a { raw: ['foo', 'bar', 'baz'] }.
-
...substitutions
-
Contiene valores de sustitución.
-
templateString
-
[opcional] Una plantilla string, con sustituciones (${...}).
-
+- `callSite` + - : Plantilla bien estructurada, similar a `{ raw: ['foo', 'bar', 'baz'] }`. +- `...substitutions` + - : Contiene valores de sustitución. +- `templateString` + - : \[opcional] Una [plantilla _string_](/es/docs/Web/JavaScript/Reference/template_strings), con sustituciones (`${...}`). -

Valor de regreso

+### Valor de regreso -

La forma cruda del string de una plantilla string proporcionada.

+La forma cruda del _string_ de una plantilla _string_ proporcionada. -

Excepciones

+### Excepciones -
-
{{jsxref("TypeError")}}
-
Un {{jsxref("TypeError")}} es arrojado si el primer argumento no es un objeto bien estructurado.
-
+- {{jsxref("TypeError")}} + - : Un {{jsxref("TypeError")}} es arrojado si el primer argumento no es un objeto bien estructurado. -

Descripción

+## Descripción -

En la mayoría de los casos, String.raw() es usado con plantillas string. La primera sintaxis mencionada arriba es raramente usada, porque el motor de JavaScript hará la llamada por ti con los argumentos apropiados, al igual que otras funciones de etiqueta.

+En la mayoría de los casos, `String.raw()` es usado con plantillas _string_. La primera sintaxis mencionada arriba es raramente usada, porque el motor de JavaScript hará la llamada por ti con los argumentos apropiados, al igual que otras [funciones de etiqueta](/es/docs/Web/JavaScript/Reference/template_strings#Tagged_template_literals). -

String.raw() es la unica función de etiqueta incorporada en las plantillas string; trabaja igual que la función de la plantilla por defecto y ejecuta la concatenación. Incluso puedes reimplementarlo con código normal de JavaScript.

+`String.raw()` es la unica función de etiqueta incorporada en las plantillas _string_; trabaja igual que la función de la plantilla por defecto y ejecuta la concatenación. Incluso puedes reimplementarlo con código normal de JavaScript. -

Ejemplos

+## Ejemplos -

Usando String.raw()

+### Usando `String.raw()` -
String.raw`Hi\n${2+3}!`;
+```js
+String.raw`Hi\n${2+3}!`;
 // 'Hi\n5!', the character after 'Hi'
 // is not a newline character,
 // '\' and 'n' are two characters.
@@ -73,39 +69,21 @@ String.raw({ raw: 'test' }, 0, 1, 2); // 't0e1s2t'
 String.raw({
   raw: ['foo', 'bar', 'baz']
 }, 2 + 3, 'Java' + 'Script'); // 'foo5barJavaScriptbaz'
+```
 
-
- -

Especificaciónes

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES2015', '#sec-string.raw', 'String.raw')}}{{Spec2('ES2015')}}Definicion inicial.
{{SpecName('ESDraft', '#sec-string.raw', 'String.raw')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegador

- -

{{Compat("javascript.builtins.String.raw")}}

- -

Tambien ver

- - +## Especificaciónes + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-string.raw', 'String.raw')}} | {{Spec2('ES2015')}} | Definicion inicial. | +| {{SpecName('ESDraft', '#sec-string.raw', 'String.raw')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegador + +{{Compat("javascript.builtins.String.raw")}} + +## Tambien ver + +- [Template strings](/es/docs/Web/JavaScript/Reference/template_strings) +- {{jsxref("String")}} +- [Lexical grammar](/es/docs/Web/JavaScript/Reference/Lexical_grammar) diff --git a/files/es/web/javascript/reference/global_objects/string/repeat/index.md b/files/es/web/javascript/reference/global_objects/string/repeat/index.md index f49b45876d13b7..0b75b070939d7b 100644 --- a/files/es/web/javascript/reference/global_objects/string/repeat/index.md +++ b/files/es/web/javascript/reference/global_objects/string/repeat/index.md @@ -11,53 +11,50 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/repeat original_slug: Web/JavaScript/Referencia/Objetos_globales/String/repeat --- -
{{JSRef}}
+{{JSRef}} -

El método repeat() construye y devuelve una nueva cadena que contiene el número especificado de copias de la cadena en la cual fue llamada, concatenados.

+El método **`repeat()`** construye y devuelve una nueva cadena que contiene el número especificado de copias de la cadena en la cual fue llamada, concatenados. -

Sintáxis

+## Sintáxis -
str.repeat(count)
+ str.repeat(count) -

Parámetros

+### Parámetros -
-
count
-
Un entero entre 0 y +∞: [0, +∞), indicando el número de veces a repetir la cadena en la nueva cadenada creada que será devuelta.
-
+- `count` + - : Un entero entre 0 y +∞: \[0, +∞), indicando el número de veces a repetir la cadena en la nueva cadenada creada que será devuelta. -

Valor devuelto

+### Valor devuelto -

Un nuevo string que contiene el número especificado de copias del string original.

+Un nuevo string que contiene el número especificado de copias del string original. -

Excepciones

+### Excepciones -
    -
  • {{jsxref("Errors/Negative_repetition_count", "RangeError")}}: El número de repeticiones no debe ser negativo.
  • -
  • {{jsxref("Errors/Resulting_string_too_large", "RangeError")}}: El número de repeticiones debe ser menor que infinito y no desbordar el tamaño máximo para un string.
  • -
+- {{jsxref("Errors/Negative_repetition_count", "RangeError")}}: El número de repeticiones no debe ser negativo. +- {{jsxref("Errors/Resulting_string_too_large", "RangeError")}}: El número de repeticiones debe ser menor que infinito y no desbordar el tamaño máximo para un string. -
-
+ -

Ejemplos

+## Ejemplos -
'abc'.repeat(-1);   // RangeError
+```js
+'abc'.repeat(-1);   // RangeError
 'abc'.repeat(0);    // ''
 'abc'.repeat(1);    // 'abc'
 'abc'.repeat(2);    // 'abcabc'
 'abc'.repeat(3.5);  // 'abcabcabc' (count will be converted to integer)
 'abc'.repeat(1/0);  // RangeError
 
-({ toString: () => 'abc', repeat: String.prototype.repeat }).repeat(2);
+({ toString: () => 'abc', repeat: String.prototype.repeat }).repeat(2);
 // 'abcabc' (repeat() is a generic method)
-
+``` -

Polyfill

+## Polyfill -

Este método ha sido añadido a la especificación ECMAScript 6 y tal vez aún no se encuentre disponible en todas las implementaciones de JavaScript. Sin embargo, usted puede establecer String.prototype.repeat() con el siguiente fragmento de código:

+Este método ha sido añadido a la especificación ECMAScript 6 y tal vez aún no se encuentre disponible en todas las implementaciones de JavaScript. Sin embargo, usted puede establecer `String.prototype.repeat()` con el siguiente fragmento de código: -
if (!String.prototype.repeat) {
+```js
+if (!String.prototype.repeat) {
   String.prototype.repeat = function(count) {
     'use strict';
     if (this == null) {
@@ -68,7 +65,7 @@ original_slug: Web/JavaScript/Referencia/Objetos_globales/String/repeat
     if (count != count) {
       count = 0;
     }
-    if (count < 0) {
+    if (count < 0) {
       throw new RangeError('repeat count must be non-negative');
     }
     if (count == Infinity) {
@@ -80,16 +77,16 @@ original_slug: Web/JavaScript/Referencia/Objetos_globales/String/repeat
     }
     // Ensuring count is a 31-bit integer allows us to heavily optimize the
     // main part. But anyway, most current (August 2014) browsers can't handle
-    // strings 1 << 28 chars or longer, so:
-    if (str.length * count >= 1 << 28) {
+    // strings 1 << 28 chars or longer, so:
+    if (str.length * count >= 1 << 28) {
       throw new RangeError('repeat count must not overflow maximum string size');
     }
     var rpt = '';
     for (;;) {
-      if ((count & 1) == 1) {
+      if ((count & 1) == 1) {
         rpt += str;
       }
-      count >>>= 1;
+      count >>>= 1;
       if (count == 0) {
         break;
       }
@@ -98,32 +95,15 @@ original_slug: Web/JavaScript/Referencia/Objetos_globales/String/repeat
     return rpt;
   }
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
{{SpecName('ES6', '#sec-string.prototype.repeat', 'String.prototype.repeat')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-string.prototype.repeat', 'String.prototype.repeat')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en Navegadores

- -
{{Compat("javascript.builtins.String.repeat")}}
- -
+``` + +## Especificaciones + +| Especificación | Estado | Comentarios | +| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-string.prototype.repeat', 'String.prototype.repeat')}} | {{Spec2('ES2015')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-string.prototype.repeat', 'String.prototype.repeat')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en Navegadores + +{{Compat("javascript.builtins.String.repeat")}} diff --git a/files/es/web/javascript/reference/global_objects/string/search/index.md b/files/es/web/javascript/reference/global_objects/string/search/index.md index 6e2a9b4e96f778..1ef5289560ce35 100644 --- a/files/es/web/javascript/reference/global_objects/string/search/index.md +++ b/files/es/web/javascript/reference/global_objects/string/search/index.md @@ -11,38 +11,37 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/search original_slug: Web/JavaScript/Referencia/Objetos_globales/String/search --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -

Resumen

+## Resumen -

El método search() ejecuta una búsqueda que encaje entre una expresión regular y el objeto String desde el que se llama.

+El método **`search() `**ejecuta una búsqueda que encaje entre una expresión regular y el objeto `String` desde el que se llama. -

Sintaxis

+## Sintaxis -
str.search(expresionregular)
+ str.search(expresionregular) -

Parámetros

+### Parámetros -
-
regexp
-
Un objeto expresión regular. Si se pasa un objeto obj que no sea una expresión regular, se convierte implicitamente en una expresión regualar usando new RegExp(obj).
-
+- regexp + - : Un objeto [expresión regular](/es/docs/Web/JavaScript/Referencia/Objetos_globales/RegExp). Si se pasa un objeto `obj `que no sea una expresión regular, se convierte implicitamente en una expresión regualar usando `new RegExp(obj)`. -

Valor devuelto

+### Valor devuelto -

El índice de la primera coincidencia entre la expresión regular y la cadena de texto proporcionada, si no se encuentra devuelve -1.

+El índice de la primera coincidencia entre la expresión regular y la cadena de texto proporcionada, si no se encuentra devuelve **-1**. -

Descripción

+## Descripción -

Cuando se desee saber en qué casos un patrón se encuentra en una cadena de texto utiliza search() (si sólo deseas saber si existe, utiliza el método {{jsxref("RegExp.prototype.test()", "test()")}} del prototipo de RegExp); para más información (pero de ejecución más lenta) utiliza {{jsxref("String.prototype.match()", "match()")}} (similar al método {{jsxref("RegExp.prototype.exec()", "exec()")}} de las expresiones regulares).

+Cuando se desee saber en qué casos un patrón se encuentra en una cadena de texto utiliza `search()` (si sólo deseas saber si existe, utiliza el método {{jsxref("RegExp.prototype.test()", "test()")}} del prototipo de `RegExp`); para más información (pero de ejecución más lenta) utiliza {{jsxref("String.prototype.match()", "match()")}} (similar al método {{jsxref("RegExp.prototype.exec()", "exec()")}} de las expresiones regulares). -

Ejemplos

+## Ejemplos - +### Utilizando `search()` -

El siguiente ejemplo imprime un mensaje dependiendo de cuál sea el resultado de la evaluación.

+El siguiente ejemplo imprime un mensaje dependiendo de cuál sea el resultado de la evaluación. -
function testinput(re, str) {
+```js
+function testinput(re, str) {
   var midstring;
   if (str.search(re) != -1) {
     midstring = ' contains ';
@@ -51,56 +50,29 @@ original_slug: Web/JavaScript/Referencia/Objetos_globales/String/search
   }
   console.log(str + midstring + re);
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificacionesEstadoComentario
{{SpecName('ES3')}}{{Spec2('ES3')}}Definición inicial. Implementado en JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.5.4.12', 'String.prototype.search')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-string.prototype.search', 'String.prototype.search')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-string.prototype.search', 'String.prototype.search')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificaciones | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Definición inicial. Implementado en JavaScript 1.2. | +| {{SpecName('ES5.1', '#sec-15.5.4.12', 'String.prototype.search')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-string.prototype.search', 'String.prototype.search')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-string.prototype.search', 'String.prototype.search')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.String.search")}} -

Notas específicas de Gecko

+## Notas específicas de Gecko -
    -
  • Antes de {{Gecko("8.0")}}, search() estaba mal implementado; cuando se invocaba sin parámetros o con {{jsxref("undefined")}}, buscaría coincidencias con la cadena 'undefined' en lugar de la cadena vacía. Esto está corregido; ahora 'a'.search() y 'a'.search(undefined) devuelven correctamente un 0.
  • -
  • Desde Gecko 39 {{geckoRelease(39)}}, el argumento no estándar flags está obsoleto y muestra un aviso en la consola ({{bug(1142351)}}).
  • -
  • Desde Gecko 47 {{geckoRelease(47)}}, el argumento no estándar flags no es soportado en compilaciones que no sean lanzamientos y pronto serán eliminadas por completo ({{bug(1245801)}}).
  • -
  • Desde Gecko 49 {{geckoRelease(49)}}, el argumento no estándar flags no es soportado ({{bug(1108382)}}).
  • -
+- Antes de {{Gecko("8.0")}}, `search()` estaba mal implementado; cuando se invocaba sin parámetros o con {{jsxref("undefined")}}, buscaría coincidencias con la cadena 'undefined' en lugar de la cadena vacía. Esto está corregido; ahora `'a'.search()` y `'a'.search(undefined)` devuelven correctamente un 0. +- Desde Gecko 39 {{geckoRelease(39)}}, el argumento no estándar `flags `está obsoleto y muestra un aviso en la consola ({{bug(1142351)}}). +- Desde Gecko 47 {{geckoRelease(47)}}, el argumento no estándar `flags` no es soportado en compilaciones que no sean lanzamientos y pronto serán eliminadas por completo ({{bug(1245801)}}). +- Desde Gecko 49 {{geckoRelease(49)}}, el argumento no estándar `flags `no es soportado ({{bug(1108382)}}). -

Vea también

+## Vea también -
    -
  • {{jsxref("String.prototype.match()")}}
  • -
  • {{jsxref("RegExp.prototype.exec()")}}
  • -
+- {{jsxref("String.prototype.match()")}} +- {{jsxref("RegExp.prototype.exec()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/slice/index.md b/files/es/web/javascript/reference/global_objects/string/slice/index.md index c1de6241a02e91..0dabd0ed1980bd 100644 --- a/files/es/web/javascript/reference/global_objects/string/slice/index.md +++ b/files/es/web/javascript/reference/global_objects/string/slice/index.md @@ -10,105 +10,80 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/slice original_slug: Web/JavaScript/Referencia/Objetos_globales/String/slice --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -

Resumen

+## Resumen -

El método slice() extrae una sección de una cadena y devuelve una cadena nueva.

+El método **`slice()`** extrae una sección de una cadena y devuelve una cadena nueva. -

Sintaxis

+## Sintaxis -
cadena.slice(inicioTrozo[, finTrozo])
-
+```html +cadena.slice(inicioTrozo[, finTrozo]) +``` -

Parameters

+### Parameters -
-
inicioTrozo
-
El índice basado en cero en el cual empieza la extracción. Si es negativo, se trata como longCadena + inicioTrozo donde longCadena es la longitud de la cadena (por ejemplo, si inicioTrozo es -3 se trata como longCadena - 3)
-
+- `inicioTrozo` + - : El índice basado en cero en el cual empieza la extracción. Si es negativo, se trata como `longCadena + inicioTrozo` donde `longCadena` es la longitud de la cadena (por ejemplo, si `inicioTrozo` es `-3` se trata como `longCadena - 3`) -
-
finTrozo
-
Opcional. El índice basado en cero en el que termina la extracción. Si se omite, slice extrae hasta el final de la cadena. Si es negativo, se trata como longCadena + finTrozo donde longCadena es la longitud de la cadena (por ejemplo, si finTrozo es -3 se trata como longCadena - 3).
-
+ -

Valor retornado

+- `finTrozo` + - : Opcional. El índice basado en cero en el que termina la extracción. Si se omite, `slice` extrae hasta el final de la cadena. Si es negativo, se trata como `longCadena + finTrozo` donde `longCadena` es la longitud de la cadena (por ejemplo, si `finTrozo `es `-3` se trata como `longCadena - 3`). -

Una nueva cadena que contiene la sección de la cadena.

+### Valor retornado -

Descripción

+Una nueva cadena que contiene la sección de la cadena. -

slice extrae el texto de una cadena y devuelve una nueva cadena. Los cambios en el texto de una cadena no afectan a la otra cadena.

+## Descripción -

slice extrae hasta, pero sin incluir finalTrozo. string.slice(1,4) extrae del segundo carácter hasta el cuarto carácter (caracteres con índice 1, 2 y 3).

+`slice` extrae el texto de una cadena y devuelve una nueva cadena. Los cambios en el texto de una cadena no afectan a la otra cadena. -

Si se usa un índice negativo, finalTrozo indica el punto desde el final de la cadena.string.slice(2, -1) extrae desde tercer carácter hasta el último carácter de la cadena.

+`slice` extrae hasta, pero sin incluir `finalTrozo`. `string.slice(1,4)` extrae del segundo carácter hasta el cuarto carácter (caracteres con índice 1, 2 y 3). -

Ejemplos

+Si se usa un índice negativo, finalTrozo indica el punto desde el final de la cadena.string.slice(2, -1) extrae desde tercer carácter hasta el último carácter de la cadena. -

Ejemplo: Uso de slice() para crear una nueva cadena

+## Ejemplos -

El siguiente ejemplo usa slice() para crear una nueva cadena.

+### Ejemplo: Uso de `slice()` para crear una nueva cadena -
var cadena1 = "La mañana se nos echa encima.";
+El siguiente ejemplo usa `slice()` para crear una nueva cadena.
+
+```js
+var cadena1 = "La mañana se nos echa encima.";
 var cadena2 = cadena1.slice(3, -2);
 console.log(cadena2);
-
- -

Esto escribe:

- -
mañana se nos echa encim
- -

Uso de slice() con índices negativos

- -

El siguiente ejemplo usa slice() con índices negativos.

- -
var cad = "La mañana se nos echa encima.";
-cad.slice(-3);     // retorna 'ma.'
-cad.slice(-3, -1); // retorna 'ma'
-cad.slice(0, -1);  // retorna 'La mañana se nos echa encima'
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES3')}}{{Spec2('ES3')}}Definición inicial. Implementado en JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.5.4.13', 'String.prototype.slice')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-string.prototype.slice', 'String.prototype.slice')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-string.prototype.slice', 'String.prototype.slice')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en navegadores

+``` + +Esto escribe: + + mañana se nos echa encim + +### Uso de `slice()` con índices negativos + +El siguiente ejemplo usa `slice()` con índices negativos. + + var cad = "La mañana se nos echa encima."; + cad.slice(-3); // retorna 'ma.' + cad.slice(-3, -1); // retorna 'ma' + cad.slice(0, -1); // retorna 'La mañana se nos echa encima' + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Definición inicial. Implementado en JavaScript 1.2. | +| {{SpecName('ES5.1', '#sec-15.5.4.13', 'String.prototype.slice')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-string.prototype.slice', 'String.prototype.slice')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-string.prototype.slice', 'String.prototype.slice')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en navegadores {{Compat("javascript.builtins.String.slice")}} -

Vea También

+## Vea También -
    -
  • {{jsxref("String.prototype.substr()")}}
  • -
  • {{jsxref("String.prototype.substring()")}}
  • -
  • {{jsxref("Array.prototype.slice()")}}
  • -
+- {{jsxref("String.prototype.substr()")}} +- {{jsxref("String.prototype.substring()")}} +- {{jsxref("Array.prototype.slice()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/small/index.md b/files/es/web/javascript/reference/global_objects/string/small/index.md index 4f31bd7a2bf220..0e542dae5639e2 100644 --- a/files/es/web/javascript/reference/global_objects/string/small/index.md +++ b/files/es/web/javascript/reference/global_objects/string/small/index.md @@ -11,29 +11,43 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/small original_slug: Web/JavaScript/Referencia/Objetos_globales/String/small --- -

{{JSRef("Objetos_globales", "String")}}

-

{{deprecated_header}}

-

Resumen

-

Causa que una cadena se muestra con una fuente pequeña, como si estuviese dentro de una etiqueta {{HTMLElement("small")}}.

-

Sintaxis

-
cadena.small()
-

Descripción

-

Usa el método small para formatear y mostrar una cadena en un documento.

-

Ejemplos

-

Ejemplo: Usando métodos de string para cambiar el tamaño de una cadena

-
var cadenaMundo="¡Hola mundo!"
+{{JSRef("Objetos_globales", "String")}}
+
+{{deprecated_header}}
+
+## Resumen
+
+Causa que una cadena se muestra con una fuente pequeña, como si estuviese dentro de una etiqueta {{HTMLElement("small")}}.
+
+## Sintaxis
+
+    cadena.small()
+
+## Descripción
+
+Usa el método `small` para formatear y mostrar una cadena en un documento.
+
+## Ejemplos
+
+### Ejemplo: Usando métodos de `string` para cambiar el tamaño de una cadena
+
+```js
+var cadenaMundo="¡Hola mundo!"
 
 console.log(cadenaMundo.small())
 console.log(cadenaMundo.big())
 console.log(cadenaMundo.fontsize(7))
-
-

Este ejemplo produce el mismo resultado que el siguiente código HTML:

-
<small>¡Hola mundo!</small>
-<big>¡Hola mundo!</big>
-<fontsize=7>¡Hola mundo!</fontsize>
-
-

Vea También

-
    -
  • {{jsxref("String.prototype.fontsize()")}}
  • -
  • {{jsxref("String.prototype.big()")}}
  • -
+``` + +Este ejemplo produce el mismo resultado que el siguiente código HTML: + +```html +¡Hola mundo! +¡Hola mundo! +¡Hola mundo! +``` + +### Vea También + +- {{jsxref("String.prototype.fontsize()")}} +- {{jsxref("String.prototype.big()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/startswith/index.md b/files/es/web/javascript/reference/global_objects/string/startswith/index.md index 710f8ede316279..62d02adedbdd5b 100644 --- a/files/es/web/javascript/reference/global_objects/string/startswith/index.md +++ b/files/es/web/javascript/reference/global_objects/string/startswith/index.md @@ -14,85 +14,74 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/startsWith original_slug: Web/JavaScript/Referencia/Objetos_globales/String/startsWith --- -
{{JSRef}}
+{{JSRef}} -

El método startsWith() indica si una cadena de texto comienza con los caracteres de una cadena de texto concreta, devolviendo true o false según corresponda.

+El método **`startsWith()`** indica si una cadena de texto comienza con los caracteres de una cadena de texto concreta, devolviendo `true` o `false` según corresponda. -
{{EmbedInteractiveExample("pages/js/string-startswith.html")}}
+{{EmbedInteractiveExample("pages/js/string-startswith.html")}} -

Sintaxis

+## Sintaxis -
str.startsWith(stringBuscada[, posicion])
+ str.startsWith(stringBuscada[, posicion]) -

Parámetros

+### Parámetros -
-
stringBuscada
-
Los caracteres a ser buscados al inicio de la cadena de texto.
-
posicion {{optional_inline}}
-
La posición de str en la cual debe comenzar la búsqueda de stringBuscada. El valor por defecto es 0.
-
+- `stringBuscada` + - : Los caracteres a ser buscados al inicio de la cadena de texto. +- `posicion` {{optional_inline}} + - : La posición de `str` en la cual debe comenzar la búsqueda de `stringBuscada`. El valor por defecto es `0`. -

Valor devuelto

+### Valor devuelto -

true si los caracteres dados se encuentran al inicio de la cadena de texto; false en cualquier otro caso.

+**`true`** si los caracteres dados se encuentran al inicio de la cadena de texto; **`false`** en cualquier otro caso. -

Descripción

+## Descripción -

Este método te permite saber si una cadena de texto comienza o no con otra cadena de texto. Este método distingue entre mayúsculas y minúsculas.

+Este método te permite saber si una cadena de texto comienza o no con otra cadena de texto. Este método distingue entre mayúsculas y minúsculas. -

Polyfill

+## Polyfill -

Este método se ha añadido a la especificación ECMAScript 2015 y podría no estar disponible aún en todas las implementaciones de JavaScript. Sin embargo, puedes utilizar un polyfill de String.prototype.startsWith() con el siguiente fragmento de código:

+Este método se ha añadido a la especificación ECMAScript 2015 y podría no estar disponible aún en todas las implementaciones de JavaScript. Sin embargo, puedes utilizar un _polyfill_ de `String.prototype.startsWith()` con el siguiente fragmento de código: -
if (!String.prototype.startsWith) {
+```js
+if (!String.prototype.startsWith) {
     Object.defineProperty(String.prototype, 'startsWith', {
         value: function(search, rawPos) {
-            var pos = rawPos > 0 ? rawPos|0 : 0;
+            var pos = rawPos > 0 ? rawPos|0 : 0;
             return this.substring(pos, pos + search.length) === search;
         }
     });
 }
-
+``` -

Un polyfill más robusto (totalmente compatible con la especificación ES2015), pero con menos rendimiento y menos compacto está disponible en GitHub, por Mathias Bynens.

+Un _polyfill_ más robusto (totalmente compatible con la especificación ES2015), pero con menos rendimiento y menos compacto está disponible [en GitHub, por Mathias Bynens](https://github.com/mathiasbynens/String.prototype.startsWith). -

Ejemplos

+## Ejemplos -

Usando startsWith()

+### Usando `startsWith()` -
//startswith
+```js
+//startswith
 var str = 'Ser, o no ser. ¡Esa es la cuestión!';
 
 console.log(str.startsWith('Ser'));           // true
 console.log(str.startsWith('no ser'));        // false
 console.log(str.startsWith('Esa es la', 16)); // true
-
- -

Especificaciones

- - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-string.prototype.startswith', 'String.prototype.startsWith')}}
- -

Compatibilidad en navegadores

- -

{{Compat("javascript.builtins.String.startsWith")}}

- -

Ver también

- -
    -
  • {{jsxref("String.prototype.endsWith()")}}
  • -
  • {{jsxref("String.prototype.includes()")}}
  • -
  • {{jsxref("String.prototype.indexOf()")}}
  • -
  • {{jsxref("String.prototype.lastIndexOf()")}}
  • -
+``` + +## Especificaciones + +| Especificación | +| ------------------------------------------------------------------------------------------------------------------------ | +| {{SpecName('ESDraft', '#sec-string.prototype.startswith', 'String.prototype.startsWith')}} | + +## Compatibilidad en navegadores + +{{Compat("javascript.builtins.String.startsWith")}} + +## Ver también + +- {{jsxref("String.prototype.endsWith()")}} +- {{jsxref("String.prototype.includes()")}} +- {{jsxref("String.prototype.indexOf()")}} +- {{jsxref("String.prototype.lastIndexOf()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/strike/index.md b/files/es/web/javascript/reference/global_objects/string/strike/index.md index 2acdb238811fc9..89215646a39043 100644 --- a/files/es/web/javascript/reference/global_objects/string/strike/index.md +++ b/files/es/web/javascript/reference/global_objects/string/strike/index.md @@ -11,33 +11,48 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/strike original_slug: Web/JavaScript/Referencia/Objetos_globales/String/strike --- -

{{JSRef("Objetos_globales", "String")}}

-

{{deprecated_header}}

-

Resumen

-

Causa que una cadena se muestre como texto tachado, como si estuviese dentro de una etiqueta {{HTMLElement("strike")}}.

-

Sintaxis

-
cadena.strike()
-

Descripción

-

Usa el método strike para formatear y mostrar una cadena en un documento.

-

Ejemplos

-

Ejemplo: Usando métodos de string para cambiar el formateado de una cadena

-

El siguiente ejemplo usa los métodos de string para cambiar el formateado de una cadena:

-
var cadenaMundo="¡Hola mundo!"
+{{JSRef("Objetos_globales", "String")}}
+
+{{deprecated_header}}
+
+## Resumen
+
+Causa que una cadena se muestre como texto tachado, como si estuviese dentro de una etiqueta {{HTMLElement("strike")}}.
+
+## Sintaxis
+
+    cadena.strike()
+
+## Descripción
+
+Usa el método `strike` para formatear y mostrar una cadena en un documento.
+
+## Ejemplos
+
+### Ejemplo: Usando métodos de `string` para cambiar el formateado de una cadena
+
+El siguiente ejemplo usa los métodos de `string` para cambiar el formateado de una cadena:
+
+```js
+var cadenaMundo="¡Hola mundo!"
 
 console.log(cadenaMundo.blink())
 console.log(cadenaMundo.bold())
 console.log(cadenaMundo.italics())
 console.log(cadenaMundo.strike())
-
-

Este ejemplo produce el mismo resultado que el siguiente código HTML:

-
<blink>¡Hola mundo!</blink>
-<b>¡Hola mundo!</b>
-<i>¡Hola mundo!</i>
-<strike>¡Hola mundo!</strike>
-
-

Vea También

-
    -
  • {{jsxref("String.prototype.blink()")}}
  • -
  • {{jsxref("String.prototype.bold()")}}
  • -
  • {{jsxref("String.prototype.italics()")}}
  • -
+``` + +Este ejemplo produce el mismo resultado que el siguiente código HTML: + +```html +¡Hola mundo! +¡Hola mundo! +¡Hola mundo! +¡Hola mundo! +``` + +## Vea También + +- {{jsxref("String.prototype.blink()")}} +- {{jsxref("String.prototype.bold()")}} +- {{jsxref("String.prototype.italics()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/sub/index.md b/files/es/web/javascript/reference/global_objects/string/sub/index.md index 7d11d8612d2522..4c8d021b50778a 100644 --- a/files/es/web/javascript/reference/global_objects/string/sub/index.md +++ b/files/es/web/javascript/reference/global_objects/string/sub/index.md @@ -10,27 +10,41 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/sub original_slug: Web/JavaScript/Referencia/Objetos_globales/String/sub --- -

{{JSRef("Objetos_globales", "String")}}

-

Resumen

-

Causa que una cadena se muestre como subíndice, como si estuviese dentro de una etiqueta {{HTMLElement("sub")}}.

-

Sintaxis

-
cadena.sub()
-

Descripción

-

Usa el método sub junto para formatear y mostrar una cadena en un documento.

-

Ejemplos

-

Ejemplo: Usando los métodos sub y sup para formatear una cadena

-

El siguiente ejemplo usa los métodos sub y sup para formatear una cadena:

-
var superText="superscript"
+{{JSRef("Objetos_globales", "String")}}
+
+## Resumen
+
+Causa que una cadena se muestre como subíndice, como si estuviese dentro de una etiqueta {{HTMLElement("sub")}}.
+
+## Sintaxis
+
+    cadena.sub()
+
+## Descripción
+
+Usa el método `sub` junto para formatear y mostrar una cadena en un documento.
+
+## Ejemplos
+
+### Ejemplo: Usando los métodos `sub` y `sup` para formatear una cadena
+
+El siguiente ejemplo usa los métodos `sub` y `sup` para formatear una cadena:
+
+```js
+var superText="superscript"
 var subText="subscript"
 
 console.log("Esto es lo que un " + superText.sup() + " parece.")
 console.log("Esto es lo que un " + subText.sub() + " parece.")
-
-

Este ejemplo produce el mismo resultado que el siguiente código HTML:

-
Esto es lo que <sup>superscript</sup> parece.
-Esto es lo que <sub>subscript</sub> parece.
-
-

Vea También

-
    -
  • {{jsxref("String.prototype.sup()")}}
  • -
+``` + +Este ejemplo produce el mismo resultado que el siguiente código HTML: + +```html +Esto es lo que superscript parece. +Esto es lo que subscript parece. +``` + +### Vea También + +- {{jsxref("String.prototype.sup()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/substr/index.md b/files/es/web/javascript/reference/global_objects/string/substr/index.md index aedee46f714a82..075dbe9a1eedbb 100644 --- a/files/es/web/javascript/reference/global_objects/string/substr/index.md +++ b/files/es/web/javascript/reference/global_objects/string/substr/index.md @@ -9,76 +9,67 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/substr original_slug: Web/JavaScript/Referencia/Objetos_globales/String/substr --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -
Advertencia: Aunque String.prototype.substr(…) no está estrictamente obsoleto (como en "eliminado de los estándares web"), se define en el anexo B de la norma ECMA-262, cuya introducción establece: +> **Advertencia:** Advertencia: Aunque `String.prototype.substr(…) `no está estrictamente obsoleto (como en "eliminado de los estándares web"), se define en el anexo B de la norma ECMA-262, cuya introducción establece:> ... Todas las características y comportamientos del lenguaje especificados en este anexo tienen una o más características indeseables y, en ausencia de uso heredado, se eliminarían de esta especificación. ... ... Los programadores no deben usar ni asumir la existencia de estas características y comportamientos al escribir un nuevo código ECMAScript. -
... Todas las características y comportamientos del lenguaje especificados en este anexo tienen una o más características indeseables y, en ausencia de uso heredado, se eliminarían de esta especificación. ... ... Los programadores no deben usar ni asumir la existencia de estas características y comportamientos al escribir un nuevo código ECMAScript.
-
+## Resumen -

+El método **`substr()`** devuelve los caracteres de una cadena que comienzan en una localización especificada y de acuerdo al número de caracteres que se especifiquen. -

Resumen

+## Sintaxis -

El método substr() devuelve los caracteres de una cadena que comienzan en una localización especificada y de acuerdo al número de caracteres que se especifiquen.

+ cadena.substr(inicio[, longitud]) -

Sintaxis

+### Parámetros -
cadena.substr(inicio[, longitud])
+- `inicio` + - : Localización en la cual se empiezan a extraer caracteres. Si se da un número negativo, se trata como `longCad + inicio` donde `longCad` es la longitud de la cadena (por ejemplo, si `inicio` es -3 se trata como `longCad - 3`). -

Parámetros

+ -
-
inicio
-
Localización en la cual se empiezan a extraer caracteres. Si se da un número negativo, se trata como longCad + inicio donde longCad es la longitud de la cadena (por ejemplo, si inicio es -3 se trata como longCad - 3).
-
+- `longitud` + - : Opcional. El número de caracteres a extraer. Si este argumento es {{jsxref("undefined")}}, todos los caracteres desde `inicio` hasta el final de la cadena serán extraidos. -
-
longitud
-
Opcional. El número de caracteres a extraer. Si este argumento es {{jsxref("undefined")}}, todos los caracteres desde inicio hasta el final de la cadena serán extraidos.
-
+### Valor retornado -

Valor retornado

+Una nueva cadena que contiende la sección extraída de la cadena dada. Sí la longitud es 0 o un número negativo, retorna la cadena vacía. -

Una nueva cadena que contiende la sección extraída de la cadena dada. Sí la longitud es 0 o un número negativo, retorna la cadena vacía.

+## Descripción -

Descripción

+`inicio` es el índice de un carácter. El índice del primer carácter es 0, y el índice del último carácter es la longitud de la cadena menos 1. `substr` comienza extrayendo caracteres a partir de `inicio` y recolecta `longitud` caracteres (a menos que se alcance primero el final de la cadena, en cuyo caso devuelve menos). -

inicio es el índice de un carácter. El índice del primer carácter es 0, y el índice del último carácter es la longitud de la cadena menos 1. substr comienza extrayendo caracteres a partir de inicio y recolecta longitud caracteres (a menos que se alcance primero el final de la cadena, en cuyo caso devuelve menos).

+Si `inicio` es positivo y es mayor o igual que la longitud de la cadena, `substr()` devuelve una cadena vacía. -

Si inicio es positivo y es mayor o igual que la longitud de la cadena, substr() devuelve una cadena vacía.

+Si `inicio` es negativo, `substr()` lo usa como un índice de carácter desde el final de la cadena. Si `inicio` es negativo y `abs(inicio)` es mayor que la longitud de la cadena, `substr` usa 0 como índice inical. Nota: el uso descrito de valores negativos del argumento `inicio` no es soportado por Microsoft JScript [.](http://msdn2.microsoft.com/en-us/library/0esxc5wy.aspx) -

Si inicio es negativo, substr() lo usa como un índice de carácter desde el final de la cadena. Si inicio es negativo y abs(inicio) es mayor que la longitud de la cadena, substr usa 0 como índice inical. Nota: el uso descrito de valores negativos del argumento inicio no es soportado por Microsoft JScript .

+Si `longitud` es 0 o negativa, `substr` devuelve una cadena vacía. Si se omite `longitud`, `inicio` extrae caracteres hasta el final de la cadena. -

Si longitud es 0 o negativa, substr devuelve una cadena vacía. Si se omite longitud, inicio extrae caracteres hasta el final de la cadena.

+## Ejemplos -

Ejemplos

+### Ejemplo: Uso de `substr()` -

Ejemplo: Uso de substr()

+```js +var cadena = "abcdefghij"; -
var cadena = "abcdefghij";
-
-console.log("(1,2): "    + cadena.substr(1,2));   // '(1, 2): bc'
-console.log("(-3,2): "   + cadena.substr(-3,2));  // '(-3, 2): hi'
+console.log("(1,2): "    + cadena.substr(1,2));   // '(1, 2): bc'
+console.log("(-3,2): "   + cadena.substr(-3,2));  // '(-3, 2): hi'
 console.log("(-3): "     + cadena.substr(-3));    // '(-3): hij'
 console.log("(1): "      + cadena.substr(1));     // '(1): bcdefghij'
 console.log("(-20, 2): " + cadena.substr(-20,2)); // '(-20, 2): ab'
 console.log("(20, 2): "  + cadena.substr(20,2));  // '(20, 2): '
-
+``` -

Este script muestra:

+Este script muestra: -
(1,2): bc
-(-3,2): hi
-(-3): hij
-(1): bcdefghij
-(-20, 2): ab
-(20, 2):
-
+ (1,2): bc + (-3,2): hi + (-3): hij + (1): bcdefghij + (-20, 2): ab + (20, 2): -

Vea También

+## Vea También -
    -
  • {{jsxref("String.prototype.slice()")}}
  • -
  • {{jsxref("String.prototype.substring()")}}
  • -
+- {{jsxref("String.prototype.slice()")}} +- {{jsxref("String.prototype.substring()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/substring/index.md b/files/es/web/javascript/reference/global_objects/string/substring/index.md index 8c14c9fff03363..190d3170135cad 100644 --- a/files/es/web/javascript/reference/global_objects/string/substring/index.md +++ b/files/es/web/javascript/reference/global_objects/string/substring/index.md @@ -9,45 +9,42 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/substring original_slug: Web/JavaScript/Referencia/Objetos_globales/String/substring --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -

Resumen

+## Resumen -

El substring() método devuelve un subconjunto de un objeto String.

+El **`substring()`** método devuelve un subconjunto de un objeto `String`. -

Sintaxis

+## Sintaxis -
cadena.substring(indiceA[, indiceB'])
+ cadena.substring(indiceA[, indiceB']) -

Parámetros

+### Parámetros -
-
indiceA
-
Un entero entre 0 y la longitud de la cadena menos 1.
-
indiceB
-
(opcional) Un entero entre 0 y la longitud de la cadena.
-
+- `indiceA` + - : Un entero entre 0 y la longitud de la cadena menos 1. +- `indiceB` + - : (opcional) Un entero entre 0 y la longitud de la cadena. -

Descripción

+## Descripción -

substring extrae caracteres desde indiceA hasta indiceB sin incluirlo. En particular:

+`substring` extrae caracteres desde `indiceA` hasta `indiceB` sin incluirlo. En particular: -
    -
  • Si indiceA es igual a indiceB, substring devuelve una cadena vacía.
  • -
  • Si se omite el indiceB, substring extrae caracteres hasta el final de la cadena.
  • -
  • Si el argumento es menor que 0 o es NaN, se trata como si fuese 0.
  • -
  • Si el argumento es mayor que nombreCadena.length, se trata como si fuese nombreCadena.length.
  • -
+- Si `indiceA` es igual a `indiceB`, `substring` devuelve una cadena vacía. +- Si se omite el `indiceB`, `substring` extrae caracteres hasta el final de la cadena. +- Si el argumento es menor que 0 o es `NaN`, se trata como si fuese 0. +- Si el argumento es mayor que `nombreCadena.length`, se trata como si fuese `nombreCadena.length`. -

Si indiceA es mayor que indiceB, entonces el efecto de substring es como si los dos argumentos se intercambiasen; por ejemplo, cadena.substring(1, 0) == cadena.substring(0, 1).

+Si `indiceA` es mayor que `indiceB`, entonces el efecto de `substring` es como si los dos argumentos se intercambiasen; por ejemplo, `cadena.substring(1, 0) == cadena.substring(0, 1)`. -

Ejemplos

+## Ejemplos -

Ejemplo: Usando substring

+### Ejemplo: Usando `substring` -

El siguiente ejemplo usa substring para mostrar caracteres de la cadena "Mozilla":

+El siguiente ejemplo usa `substring` para mostrar caracteres de la cadena "`Mozilla`": -
// asume una función print ya definida
+```js
+// asume una función print ya definida
 var cualquierCadena = "Mozilla";
 
 // Muestra "Moz"
@@ -65,16 +62,17 @@ print(cualquierCadena.substring(6,0));
 // Muestra "Mozilla"
 print(cualquierCadena.substring(0,7));
 print(cualquierCadena.substring(0,10));
-
+``` -

Ejemplo: Reemplazar una subcadena dentro de una cadena

+### Ejemplo: Reemplazar una subcadena dentro de una cadena -

El siguiente ejemplo reemplaza una subcadena dentro de una cadena. Reemplazará tanto caracteres individuales como subcadenas. La llamada de la función al final del ejemplo cambia la cadena "Bravo Nuevo Mundo" por "Bravo Nueva Web".

+El siguiente ejemplo reemplaza una subcadena dentro de una cadena. Reemplazará tanto caracteres individuales como subcadenas. La llamada de la función al final del ejemplo cambia la cadena "`Bravo Nuevo Mundo`" por "`Bravo Nueva Web`". -
function reemplazarCadena(cadenaVieja, cadenaNueva, cadenaCompleta) {
+```js
+function reemplazarCadena(cadenaVieja, cadenaNueva, cadenaCompleta) {
 // Reemplaza cadenaVieja por cadenaNueva en cadenaCompleta
 
-   for (var i = 0; i < cadenaCompleta.length; i++) {
+   for (var i = 0; i < cadenaCompleta.length; i++) {
       if (cadenaCompleta.substring(i, i + cadenaVieja.length) == cadenaVieja) {
          cadenaCompleta= cadenaCompleta.substring(0, i) + cadenaNueva + cadenaCompleta.substring(i + cadenaVieja.length, cadenaCompleta.length);
       }
@@ -83,11 +81,9 @@ print(cualquierCadena.substring(0,10));
 }
 
 reemplazarCadena("Mundo", "Web", "Bravo Nuevo Mundo");
-
+``` -

Vea También

+## Vea También -
    -
  • {{jsxref("String.prototype.substr()")}}
  • -
  • {{jsxref("String.prototype.slice()")}}
  • -
+- {{jsxref("String.prototype.substr()")}} +- {{jsxref("String.prototype.slice()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/sup/index.md b/files/es/web/javascript/reference/global_objects/string/sup/index.md index cf9670f0640f53..5fbf92c0ddf8f4 100644 --- a/files/es/web/javascript/reference/global_objects/string/sup/index.md +++ b/files/es/web/javascript/reference/global_objects/string/sup/index.md @@ -10,27 +10,41 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/sup original_slug: Web/JavaScript/Referencia/Objetos_globales/String/sup --- -

{{JSRef("Objetos_globales", "String")}}

-

Resumen

-

Causa que una cadena se muestre como superíndice, como si estuviese dentro de una etiqueta {{HTMLElement("sup")}}.

-

Sintaxis

-
cadena.sup()
-

Descripción

-

Usa el método sup junto para formatear y mostrar una cadena en un documento.

-

Ejemplos

-

Ejemplo: Usando los métodos sub y sup para formatear una cadena

-

El siguiente ejemplo usa los métodos sub y sup para formatear una cadena:

-
var textoSuper="superscript"
+{{JSRef("Objetos_globales", "String")}}
+
+## Resumen
+
+Causa que una cadena se muestre como superíndice, como si estuviese dentro de una etiqueta {{HTMLElement("sup")}}.
+
+## Sintaxis
+
+    cadena.sup()
+
+## Descripción
+
+Usa el método `sup` junto para formatear y mostrar una cadena en un documento.
+
+## Ejemplos
+
+### Ejemplo: Usando los métodos `sub` y `sup` para formatear una cadena
+
+El siguiente ejemplo usa los métodos `sub` y `sup` para formatear una cadena:
+
+```js
+var textoSuper="superscript"
 var textoSub="subscript"
 
 console.log("Esto es lo que un " + textoSuper.sup() + " parece.")
 console.log("Esto es lo que un " + textoSub.sub() + " parece.")
-
-

Este ejemplo produce el mismo resultado que el siguiente código HTML:

-
Esto es lo que <sup>superscript</sup> parece.
-Esto es lo que <sub>subscript</sub> parece.
-
-

Vea También

-
    -
  • {{jsxref("String.prototype.sub()")}}
  • -
+``` + +Este ejemplo produce el mismo resultado que el siguiente código HTML: + +```html +Esto es lo que superscript parece. +Esto es lo que subscript parece. +``` + +### Vea También + +- {{jsxref("String.prototype.sub()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/tolocaleuppercase/index.md b/files/es/web/javascript/reference/global_objects/string/tolocaleuppercase/index.md index 6e08248a3058f7..295bc1d0327e66 100644 --- a/files/es/web/javascript/reference/global_objects/string/tolocaleuppercase/index.md +++ b/files/es/web/javascript/reference/global_objects/string/tolocaleuppercase/index.md @@ -4,96 +4,63 @@ slug: Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase translation_of: Web/JavaScript/Reference/Global_Objects/String/toLocaleUpperCase original_slug: Web/JavaScript/Referencia/Objetos_globales/String/toLocaleUpperCase --- -
{{JSRef}}
+{{JSRef}} -

El método toLocaleUpperCase() devuelve el valor de la cadena que lo llama convertido en mayúsculas, de acuerdo con las asignaciones de casos específicos de la configuración regional.

+El método **`toLocaleUpperCase()`** devuelve el valor de la cadena que lo llama convertido en mayúsculas, de acuerdo con las asignaciones de casos específicos de la configuración regional. -

Syntaxis

+## Syntaxis -
str.toLocaleUpperCase()
-str.toLocaleUpperCase(locale)
-str.toLocaleUpperCase([locale, locale, ...])
-
+ str.toLocaleUpperCase() + str.toLocaleUpperCase(locale) + str.toLocaleUpperCase([locale, locale, ...]) -

Parámetros

+### Parámetros -
-
locale {{optional_inline}}
-
El parámetro locale indica la configuración regional que se va a utilizar para convertir en mayúsculas según las asignaciones de casos específicos de la configuración regional. Si se proporcionan varios locales en un {{jsxref ("Array")}}, se utiliza la mejor configuración regional disponible. La configuración regional predeterminada es la configuración regional actual del entorno de host.
-
+- `locale` {{optional_inline}} + - : El parámetro `locale` indica la configuración regional que se va a utilizar para convertir en mayúsculas según las asignaciones de casos específicos de la configuración regional. Si se proporcionan varios locales en un {{jsxref ("Array")}}, se utiliza la mejor configuración regional disponible. La configuración regional predeterminada es la configuración regional actual del entorno de host. -

Valor de retorno

+### Valor de retorno -

Una nueva cadena que representa la cadena de llamada convertida en mayúsculas, de acuerdo con cualquier asignación de mayúsculas de idioma específico.

+Una nueva cadena que representa la cadena de llamada convertida en mayúsculas, de acuerdo con cualquier asignación de mayúsculas de idioma específico. -

Exceciones

+### Exceciones -
    -
  • Un {{jsxref("RangeError")}} ("invalid language tag: xx_yy") se arroja si un argumento de configuración regional no es una etiqueta de idioma válida.
  • -
  • Un {{jsxref("TypeError")}} ("invalid element in locales argument") se lanzará si un elemento de matriz no es de tipo cadena.
  • -
+- Un {{jsxref("RangeError")}} ("invalid language tag: xx_yy") se arroja si un argumento de configuración regional no es una etiqueta de idioma válida. +- Un {{jsxref("TypeError")}} ("invalid element in locales argument") se lanzará si un elemento de matriz no es de tipo cadena. -

Descripción

+## Descripción -

El método toLocaleUpperCase() devuelve el valor de la cadena convertida en mayúsculas según las asignaciones de casos específicos de la configuración regional. toLocaleUpperCase() no afecta al valor de la cadena en sí. En la mayoría de los casos, esto producirá el mismo resultado que {{jsxref("String.prototype.toUpperCase()", "toUpperCase()")}}, pero para algunas localidades, como turco, cuyas asignaciones de mayúsculas y minúsculas no siguen la mayúsculas y minúsculas en Unicode, puede haber un resultado diferente.

+El método `toLocaleUpperCase()` devuelve el valor de la cadena convertida en mayúsculas según las asignaciones de casos específicos de la configuración regional. `toLocaleUpperCase()` no afecta al valor de la cadena en sí. En la mayoría de los casos, esto producirá el mismo resultado que {{jsxref("String.prototype.toUpperCase()", "toUpperCase()")}}, pero para algunas localidades, como turco, cuyas asignaciones de mayúsculas y minúsculas no siguen la mayúsculas y minúsculas en Unicode, puede haber un resultado diferente. -

Ejemplos

+## Ejemplos -

Usando toLocaleUpperCase()

+### Usando `toLocaleUpperCase()` -
'alphabet'.toLocaleUpperCase(); // 'ALPHABET'
+```js
+'alphabet'.toLocaleUpperCase(); // 'ALPHABET'
 
 'i\u0307'.toLocaleUpperCase('lt-LT'); // 'I'
 
 let locales = ['lt', 'LT', 'lt-LT', 'lt-u-co-phonebk', 'lt-x-lietuva'];
 'i\u0307'.toLocaleUpperCase(locales); // 'I'
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónStatusComentario
{{SpecName('ES3')}}{{Spec2('ES3')}}Initial definition. Implemented in JavaScript 1.2.
{{SpecName('ES5.1', '#sec-15.5.4.19', 'String.prototype.toLocaleUpperCase')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-string.prototype.tolocaleuppercase', 'String.prototype.toLocaleUpperCase')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-string.prototype.tolocaleuppercase', 'String.prototype.toLocaleUpperCase')}}{{Spec2('ESDraft')}}
{{SpecName('ES Int Draft', '#sup-string.prototype.tolocaleuppercase', 'String.prototype.toLocaleUpperCase')}}{{Spec2('ES Int Draft')}}ES Intl 2017 added the locale parameter.
- -

Compatibilidad de navegadores

- -

{{Compat("javascript.builtins.String.toLocaleUpperCase")}}

- -

Ver también

- -
    -
  • {{jsxref("String.prototype.toLocaleLowerCase()")}}
  • -
  • {{jsxref("String.prototype.toLowerCase()")}}
  • -
  • {{jsxref("String.prototype.toUpperCase()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Status | Comentario | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------- | -------------------------------------------------- | +| {{SpecName('ES3')}} | {{Spec2('ES3')}} | Initial definition. Implemented in JavaScript 1.2. | +| {{SpecName('ES5.1', '#sec-15.5.4.19', 'String.prototype.toLocaleUpperCase')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-string.prototype.tolocaleuppercase', 'String.prototype.toLocaleUpperCase')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-string.prototype.tolocaleuppercase', 'String.prototype.toLocaleUpperCase')}} | {{Spec2('ESDraft')}} | | +| {{SpecName('ES Int Draft', '#sup-string.prototype.tolocaleuppercase', 'String.prototype.toLocaleUpperCase')}} | {{Spec2('ES Int Draft')}} | ES Intl 2017 added the `locale` parameter. | + +## Compatibilidad de navegadores + +{{Compat("javascript.builtins.String.toLocaleUpperCase")}} + +## Ver también + +- {{jsxref("String.prototype.toLocaleLowerCase()")}} +- {{jsxref("String.prototype.toLowerCase()")}} +- {{jsxref("String.prototype.toUpperCase()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/tolowercase/index.md b/files/es/web/javascript/reference/global_objects/string/tolowercase/index.md index 0b29db43392223..5689cb7e9fe459 100644 --- a/files/es/web/javascript/reference/global_objects/string/tolowercase/index.md +++ b/files/es/web/javascript/reference/global_objects/string/tolowercase/index.md @@ -9,33 +9,30 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/toLowerCase original_slug: Web/JavaScript/Referencia/Objetos_globales/String/toLowerCase --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -

Resumen

+## Resumen -

El método toLowerCase() devuelve el valor en minúsculas de la cadena que realiza la llamada.

+El método **`toLowerCase()`** devuelve el valor **en minúsculas** de la cadena que realiza la llamada. -

Sintaxis

+## Sintaxis -
cadena.toLowerCase() 
+ cadena.toLowerCase() -

Descripción

+## Descripción -

El método toLowerCase devuelve el valor de la cadena convertida a minúsculas. toLowerCase no afecta al valor de la cadena en sí misma.

+El método `toLowerCase` devuelve el valor de la cadena convertida a minúsculas. `toLowerCase` no afecta al valor de la cadena en sí misma. -

Ejemplos

+## Ejemplos -

Ejemplo: Usando toLowerCase

+### Ejemplo: Usando `toLowerCase` -

El siguiente ejemplo muestra la cadena "alfabeto" en minúsculas:

+El siguiente ejemplo muestra la cadena "alfabeto" en minúsculas: -
var textoMayusculas="ALFABETO"
-document.write(textoMayusculas.toLowerCase())
-
+ var textoMayusculas="ALFABETO" + document.write(textoMayusculas.toLowerCase()) -

Vea También

+## Vea También -
    -
  • {{jsxref("String.prototype.toLocaleLowerCase()")}}
  • -
  • {{jsxref("String.prototype.toUpperCase()")}}
  • -
+- {{jsxref("String.prototype.toLocaleLowerCase()")}} +- {{jsxref("String.prototype.toUpperCase()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/tostring/index.md b/files/es/web/javascript/reference/global_objects/string/tostring/index.md index 52f14051a0fe5d..613333963df67e 100644 --- a/files/es/web/javascript/reference/global_objects/string/tostring/index.md +++ b/files/es/web/javascript/reference/global_objects/string/tostring/index.md @@ -9,21 +9,32 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/toString original_slug: Web/JavaScript/Referencia/Objetos_globales/String/toString --- -

{{JSRef("Objetos_globales", "String")}}

-

Resumen

-

El toString() método devuelve una cadena que representa al objeto especificado.

-

Sintaxis

-
cadena.toString() 
-

Descripción

-

El objeto String sobreescribe el método toString del objeto {{jsxref("Object")}} object; no hereda {{jsxref("Object.toString()")}}. Para objetos String, el método toString devuelve una cadena que representa al objeto.

-

Ejemplos

-

Ejemplo: Usando toString

-

El siguiente ejemplo muestra el valor cadena de un objeto String:

-
cadena = new String("Hello world");
+{{JSRef("Objetos_globales", "String")}}
+
+## Resumen
+
+El **`toString()`** método devuelve una cadena que representa al objeto especificado.
+
+## Sintaxis
+
+    cadena.toString()
+
+## Descripción
+
+El objeto `String` sobreescribe el método `toString` del objeto {{jsxref("Object")}} object; no hereda {{jsxref("Object.toString()")}}. Para objetos `String`, el método `toString` devuelve una cadena que representa al objeto.
+
+## Ejemplos
+
+### Ejemplo: Usando `toString`
+
+El siguiente ejemplo muestra el valor cadena de un objeto String:
+
+```js
+cadena = new String("Hello world");
 alert(cadena.toString())      // Displays "Hello world"
-
-

Vea También

-
    -
  • {{jsxref("Object.prototype.toSource()")}}
  • -
  • {{jsxref("String.prototype.valueOf()")}}
  • -
+``` + +## Vea También + +- {{jsxref("Object.prototype.toSource()")}} +- {{jsxref("String.prototype.valueOf()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/touppercase/index.md b/files/es/web/javascript/reference/global_objects/string/touppercase/index.md index 27eef892e53c63..edee768b10a457 100644 --- a/files/es/web/javascript/reference/global_objects/string/touppercase/index.md +++ b/files/es/web/javascript/reference/global_objects/string/touppercase/index.md @@ -9,32 +9,31 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/toUpperCase original_slug: Web/JavaScript/Referencia/Objetos_globales/String/toUpperCase --- -

{{JSRef("Objetos_globales", "String")}}

+{{JSRef("Objetos_globales", "String")}} -

Resumen

+## Resumen -

El toUpperCase() método devuelve el valor convertido en mayúsculas de la cadena que realiza la llamada.

+El **`toUpperCase()`** método devuelve el valor convertido en mayúsculas de la cadena que realiza la llamada. -

Sintaxis

+## Sintaxis -
cadena.toUpperCase() 
+ cadena.toUpperCase() -

Descripción

+## Descripción -

El método toUpperCase devuelve el valor de la cadena convertida a mayúsculas. toUpperCase no afecta al valor de la cadena en sí mismo.

+El método `toUpperCase` devuelve el valor de la cadena convertida a mayúsculas. `toUpperCase` no afecta al valor de la cadena en sí mismo. -

Ejemplos

+## Ejemplos -

Ejemplo: Usando toUpperCase

+### Ejemplo: Usando `toUpperCase` -

El siguiente ejemplo muestra la cadena "ALPHABET":

+El siguiente ejemplo muestra la cadena "`ALPHABET`": -
console.log( "alphabet".toUpperCase() ); // "ALPHABET"
-
+```js +console.log( "alphabet".toUpperCase() ); // "ALPHABET" +``` -

Vea También

+### Vea También -
    -
  • {{jsxref("String.prototype.toLocaleUpperCase()")}}
  • -
  • {{jsxref("String.prototype.toLowerCase()")}}
  • -
+- {{jsxref("String.prototype.toLocaleUpperCase()")}} +- {{jsxref("String.prototype.toLowerCase()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/trim/index.md b/files/es/web/javascript/reference/global_objects/string/trim/index.md index 593e177bf481d5..43134e52404594 100644 --- a/files/es/web/javascript/reference/global_objects/string/trim/index.md +++ b/files/es/web/javascript/reference/global_objects/string/trim/index.md @@ -4,42 +4,44 @@ slug: Web/JavaScript/Reference/Global_Objects/String/Trim translation_of: Web/JavaScript/Reference/Global_Objects/String/Trim original_slug: Web/JavaScript/Referencia/Objetos_globales/String/Trim --- -
{{JSRef("Global_Objects", "String")}}
+{{JSRef("Global_Objects", "String")}} -

Resumen

+## Resumen -

El método trim( ) elimina los espacios en blanco en ambos extremos del string. Los espacios en blanco en este contexto, son todos los caracteres sin contenido (espacio, tabulación, etc.) y todos los caracteres de nuevas lineas (LF,CR,etc.).

+El método **trim( )** elimina los espacios en blanco en ambos extremos del string. Los espacios en blanco en este contexto, son todos los caracteres sin contenido (espacio, tabulación, etc.) y todos los caracteres de nuevas lineas (LF,CR,etc.). -

Sintaxis

+## Sintaxis -
str.trim()
+ str.trim() -

Una nueva cadena que representa la cadena de llamada sin espacios en blanco de ambos extremos.

+Una nueva cadena que representa la cadena de llamada sin espacios en blanco de ambos extremos. -

Descripción

+## Descripción -

El método trim( ) devuelve la cadena de texto despojada de los espacios en blanco en ambos extremos. El método no afecta al valor de la cadena de texto.

+El método **trim( )** devuelve la cadena de texto despojada de los espacios en blanco en ambos extremos. El método no afecta al valor de la cadena de texto. -

Ejemplos

+## Ejemplos -

Ejemplo: Uso de trim()

+### Ejemplo: Uso de `trim()` -

El siguiente ejemplo muestra la cadena de texto en minúsculas 'foo':

+El siguiente ejemplo muestra la cadena de texto en minúsculas 'foo': -
var orig = '   foo  ';
+```js
+var orig = '   foo  ';
 console.log(orig.trim()); // 'foo'
 
 // Otro ejemplo de .trim() eliminando el espacio en blanco sólo de un lado.
 
 var orig = 'foo    ';
 console.log(orig.trim()); // 'foo'
-
+``` -

Polyfill

+## Polyfill -

Ejecutar el siguiente código antes de cualquier otro código creará un trim ( ) si este no está disponible de manera nativa.

+Ejecutar el siguiente código antes de cualquier otro código creará un trim ( ) si este no está disponible de manera nativa. -
if (!String.prototype.trim) {
+```js
+if (!String.prototype.trim) {
   (function() {
     // Make sure we trim BOM and NBSP
     var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;
@@ -48,39 +50,20 @@ console.log(orig.trim()); // 'foo'
     };
   })();
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
{{SpecName('ES5.1', '#sec-15.5.4.20', 'String.prototype.trim')}}{{Spec2('ES5.1')}} -

Definición inicial. Implementado en JavaScript 1.8.1.

-
{{SpecName('ES6', '#sec-string.prototype.trim', 'String.prototype.trim')}}{{Spec2('ES6')}}
- -

Compatibilidad en Navegadores

+``` + +## Especificaciones + +| Especificación | Estatus | Comentario | +| ---------------------------------------------------------------------------------------------------- | ------------------------ | ----------------------------------------------------- | +| {{SpecName('ES5.1', '#sec-15.5.4.20', 'String.prototype.trim')}} | {{Spec2('ES5.1')}} | Definición inicial. Implementado en JavaScript 1.8.1. | +| {{SpecName('ES6', '#sec-string.prototype.trim', 'String.prototype.trim')}} | {{Spec2('ES6')}} | | + +## Compatibilidad en Navegadores {{Compat("javascript.builtins.String.trim")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("String.prototype.trimLeft()")}} {{non-standard_inline}}
  • -
  • {{jsxref("String.prototype.trimRight()")}} {{non-standard_inline}}
  • -
+- {{jsxref("String.prototype.trimLeft()")}} {{non-standard_inline}} +- {{jsxref("String.prototype.trimRight()")}} {{non-standard_inline}} diff --git a/files/es/web/javascript/reference/global_objects/string/trimend/index.md b/files/es/web/javascript/reference/global_objects/string/trimend/index.md index 9a3aea74950abc..77f73fe0c12363 100644 --- a/files/es/web/javascript/reference/global_objects/string/trimend/index.md +++ b/files/es/web/javascript/reference/global_objects/string/trimend/index.md @@ -12,70 +12,60 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/trimEnd original_slug: Web/JavaScript/Referencia/Objetos_globales/String/trimEnd --- -
{{JSRef}}
+{{JSRef}} -

El método trimEnd() elimina los espacios en blanco al final de una cadena de carácteres. trimRight() es el alias de este método.

+El método **`trimEnd()`** elimina los espacios en blanco al final de una cadena de carácteres. `trimRight()` es el alias de este método. -
{{EmbedInteractiveExample("pages/js/string-trimend.html")}}
+{{EmbedInteractiveExample("pages/js/string-trimend.html")}} +## Sintaxis + str.trimEnd(); + str.trimRight(); -

Sintaxis

+### Valor de retorno -
str.trimEnd();
-str.trimRight();
+Una nueva cadena de texto que representa la cadena de texto llamada sin espacios en blanco de su extremo (derecho). -

Valor de retorno

+## Descripción -

Una nueva cadena de texto que representa la cadena de texto llamada sin espacios en blanco de su extremo (derecho).

+`trimEnd()` / `trimRight()` Los metodos devuelven una cadena de texto sin espacios en blanco desde su extremo derecho. `trimEnd()` ó `trimRight()` no afectan el valor de la cadena de texto en sí. -

Descripción

+### Superposición -

trimEnd() / trimRight() Los metodos devuelven una cadena de texto sin espacios en blanco desde su extremo derecho. trimEnd() ó trimRight() no afectan el valor de la cadena de texto en sí.

+Por coherencia de funciones como {{jsxref("String.prototype.padEnd")}} el nombre del método estandar es `trimEnd`. Sin embargo por compatibilidad web, `trimRight` permanece como un alias para `trimEnd`. En algunos motores esto significa: -

Superposición

+```js +String.prototype.trimRight.name === "trimEnd"; +``` -

Por coherencia de funciones como {{jsxref("String.prototype.padEnd")}} el nombre del método estandar es trimEnd. Sin embargo por compatibilidad web, trimRight permanece como un alias para trimEnd. En algunos motores esto significa:

+## Ejemplo -
String.prototype.trimRight.name === "trimEnd";
+### Usando `trimEnd()` -

Ejemplo

+El siguiente ejemplo muestra la cadena de texto en minusculas `' foo'`: -

Usando trimEnd()

- -

El siguiente ejemplo muestra la cadena de texto en minusculas ' foo':

- -
var str = '   foo  ';
+```js
+var str = '   foo  ';
 
 console.log(str.length); // 8
 
 str = str.trimEnd();
 console.log(str.length); // 6
 console.log(str);        // '   foo'
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-string.prototype.trimend', 'String.prototype.trimEnd')}}
+| Especificación | +| ---------------------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-string.prototype.trimend', 'String.prototype.trimEnd')}} | -

Compatibilidad en Navegadores

+## Compatibilidad en Navegadores -

{{Compat("javascript.builtins.String.trimEnd")}}

+{{Compat("javascript.builtins.String.trimEnd")}} -

Ver también

+## Ver también -
    -
  • {{jsxref("String.prototype.trim()")}}
  • -
  • {{jsxref("String.prototype.trimStart()")}}
  • -
+- {{jsxref("String.prototype.trim()")}} +- {{jsxref("String.prototype.trimStart()")}} diff --git a/files/es/web/javascript/reference/global_objects/string/valueof/index.md b/files/es/web/javascript/reference/global_objects/string/valueof/index.md index a744d783b0e303..eea925fef5a768 100644 --- a/files/es/web/javascript/reference/global_objects/string/valueof/index.md +++ b/files/es/web/javascript/reference/global_objects/string/valueof/index.md @@ -9,21 +9,32 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/String/valueOf original_slug: Web/JavaScript/Referencia/Objetos_globales/String/valueOf --- -

{{JSRef("Objetos_globales", "String")}}

-

Resumen

-

The valueOf() método devuelve el valor primitivo de un objeto String.

-

Sintaxis

-
caneda.valueOf() 
-

Descripción

-

El método valueOf de String devuelve el valor primitivo de un objeto String como un tipo de dato cadena. Este valor es equivalente a String.toString.

-

Normalmente este método es llamado internamente por JavaScript y no en el código.

-

Ejemplos

-

Ejemplo: Usando valueOf

-
cadena = new String("Hello world");
+{{JSRef("Objetos_globales", "String")}}
+
+## Resumen
+
+The **`valueOf()`** método devuelve el valor primitivo de un objeto String.
+
+## Sintaxis
+
+    caneda.valueOf()
+
+## Descripción
+
+El método `valueOf` de `String` devuelve el valor primitivo de un objeto String como un tipo de dato cadena. Este valor es equivalente a String.toString.
+
+Normalmente este método es llamado internamente por JavaScript y no en el código.
+
+## Ejemplos
+
+### Ejemplo: Usando `valueOf`
+
+```js
+cadena = new String("Hello world");
 alert(cadena.valueOf())          // Displays "Hello world"
-
-

Vea También

-
    -
  • {{jsxref("String.prototype.toString()")}}
  • -
  • {{jsxref("Object.prototype.valueOf()")}}
  • -
+``` + +## Vea También + +- {{jsxref("String.prototype.toString()")}} +- {{jsxref("Object.prototype.valueOf()")}} diff --git a/files/es/web/javascript/reference/global_objects/typedarray/buffer/index.md b/files/es/web/javascript/reference/global_objects/typedarray/buffer/index.md index 17e4b50f0289be..4f9ee9f616fb5b 100644 --- a/files/es/web/javascript/reference/global_objects/typedarray/buffer/index.md +++ b/files/es/web/javascript/reference/global_objects/typedarray/buffer/index.md @@ -8,56 +8,40 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/TypedArray/buffer original_slug: Web/JavaScript/Referencia/Objetos_globales/TypedArray/buffer --- -
{{JSRef}}
+{{JSRef}} -

La propiedad de acceso buffer representa el {{jsxref("ArrayBuffer")}} referenciada por un TypedArray en tiempo de construcción.

+La propiedad de acceso **`buffer`** representa el {{jsxref("ArrayBuffer")}} referenciada por un _TypedArray_ en tiempo de construcción. -

Sintaxis

+## Sintaxis -
typedArray.buffer
+ typedArray.buffer -

Descripción

+## Descripción -

La propiedad buffer es una propiedad de acceso cuya función set accessor es undefined, significa que tu sólo puedes leer esta propiedad. El valor es establecido cuando TypedArray se construye y no puede ser cambiado. TypedArray es uno de los TypedArray objects.

+La propiedad `buffer` es una propiedad de acceso cuya función _set accessor_ es `undefined`, significa que tu sólo puedes leer esta propiedad. El valor es establecido cuando _TypedArray_ se construye y no puede ser cambiado. _TypedArray_ es uno de los [TypedArray objects](/es/docs/Web/JavaScript/Reference/Global_Objects/TypedArray#TypedArray_objects). -

Ejemplos

+## Ejemplos -

Usando la propiedad buffer

+### Usando la propiedad `buffer` -
var buffer = new ArrayBuffer(8);
+```js
+var buffer = new ArrayBuffer(8);
 var uint16 = new Uint16Array(buffer);
 uint16.buffer; // ArrayBuffer { byteLength: 8 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
{{SpecName('ES6', '#sec-get-%typedarray%.prototype.buffer', 'TypedArray.prototype.buffer')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-get-%typedarray%.prototype.buffer', 'TypedArray.prototype.buffer')}}{{Spec2('ESDraft')}}
- -

Compatibilidad del navegador

+``` + +## Especificaciones + +| Especificación | Estatus | Comentario | +| -------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-get-%typedarray%.prototype.buffer', 'TypedArray.prototype.buffer')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-get-%typedarray%.prototype.buffer', 'TypedArray.prototype.buffer')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad del navegador {{Compat("javascript.builtins.TypedArray.buffer")}} -

Véase también

+## Véase también - +- [JavaScript typed arrays](/es/docs/Web/JavaScript/Typed_arrays) +- {{jsxref("TypedArray")}} diff --git a/files/es/web/javascript/reference/global_objects/uint8array/index.md b/files/es/web/javascript/reference/global_objects/uint8array/index.md index d2a22d1be6b4ee..558d02e7b31d98 100644 --- a/files/es/web/javascript/reference/global_objects/uint8array/index.md +++ b/files/es/web/javascript/reference/global_objects/uint8array/index.md @@ -8,124 +8,115 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/Uint8Array original_slug: Web/JavaScript/Referencia/Objetos_globales/Uint8Array --- -
{{JSRef}}
- -

Los Uint8Array representan un array de enteros sin signo de 8 bits. El contenido se inicializa a 0. Una vez establecido, puedes hacer referencia a un elemento usando los métodos del objeto o usando la sintaxis de array estándar (esto es, usando la notación de corchetes).

- -

Sintaxis

- -
new Uint8Array(tamaño);
-new Uint8Array(typedArray);
-new Uint8Array(objeto);
-new Uint8Array(buffer [, byteOffset [, tamaño]]);
- -

Para más información acerca de la sintaxis del constructor y sus parámetros, mire TypedArray.

- -

Propiedades

- -
-
{{jsxref("TypedArray.BYTES_PER_ELEMENT", "Uint8Array.BYTES_PER_ELEMENT")}}
-
Retorna un número con el valor del tamaño del elemento. 1 en el caso del Uint8Array.
-
Uint8Array.length
-
Propiedad estática de tamaño cuyo valor es 3. Para el tamaño actual (número d elementos), mire {{jsxref("TypedArray.prototype.length", "Uint8Array.prototype.length")}}.
-
{{jsxref("TypedArray.name", "Uint8Array.name")}}
-
Devuelve el nombre del constructor en un string. En el caso de Uint8Array devuelve: "Uint8Array".
-
{{jsxref("TypedArray.prototype", "Uint8Array.prototype")}}
-
Prototipo para los objetos TypedArray .
-
- -

Métodos

- -
-
{{jsxref("TypedArray.from", "Uint8Array.from()")}}
-
Crea un nuevo Uint8Array desde un array o un objeto iterable. Véase también {{jsxref("Array.from()")}}.
-
{{jsxref("TypedArray.of", "Uint8Array.of()")}}
-
Crea un Uint8Array con un número variable de argumentos. Véase también {{jsxref("Array.of()")}}.
-
- -

Uint8Array prototype

- -

Todos los objetos Uint8Array son heredados de {{jsxref("TypedArray.prototype", "%TypedArray%.prototype")}}.

- -

Propiedades

- -
-
Uint8Array.prototype.constructor
-
Retorna la función que crea una instancia del prototype. Éste es el constructor por defecto de Uint8Array.
-
{{jsxref("TypedArray.prototype.buffer", "Uint8Array.prototype.buffer")}} {{readonlyInline}}
-
Retorna el {{jsxref("ArrayBuffer")}} con la referencia del Uint8Array. Fijado en el tiempo de construcción y es de sólo lectura.
-
{{jsxref("TypedArray.prototype.byteLength", "Uint8Array.prototype.byteLength")}} {{readonlyInline}}
-
Retorna el tamaño (en bytes) del array Uint8Array. Fijado en el tiempo de construcción y es de sólo lectura.
-
{{jsxref("TypedArray.prototype.byteOffset", "Uint8Array.prototype.byteOffset")}} {{readonlyInline}}
-
Retorna el offset (en bytes) del Uint8Array desde el inicio de su {{jsxref("ArrayBuffer")}}. Fijado en el tiempo de construcción y es de sólo lectura.
-
{{jsxref("TypedArray.prototype.length", "Uint8Array.prototype.length")}} {{readonlyInline}}
-
Retorna el número de elementos contenidos en el Uint8Array. Fijado en el tiempo de construcción y es de sólo lectura.
-
- -

Métodos

- -
-
{{jsxref("TypedArray.copyWithin", "Uint8Array.prototype.copyWithin()")}}
-
Copia una secuencia de elementos del array dentro del array. Véase también {{jsxref("Array.prototype.copyWithin()")}}.
-
{{jsxref("TypedArray.entries", "Uint8Array.prototype.entries()")}}
-
Retorna un nuevo objeto Array Iterator que contiene los pares de valores para cada índice del array. Véase también {{jsxref("Array.prototype.entries()")}}.
-
{{jsxref("TypedArray.every", "Uint8Array.prototype.every()")}}
-
Prueba si todos los elementos del array cumplen las condiciones de una función. Véase también {{jsxref("Array.prototype.every()")}}.
-
{{jsxref("TypedArray.fill", "Uint8Array.prototype.fill()")}}
-
Llena todos los elementos del array desde el principio hasta el final con un valor dado. Véase también {{jsxref("Array.prototype.fill()")}}.
-
{{jsxref("TypedArray.filter", "Uint8Array.prototype.filter()")}}
-
Crea un nuevo array con todos los elementos del array que satisfacen las condiciones de una función que devuelve verdadero. Véase también {{jsxref("Array.prototype.filter()")}}.
-
{{jsxref("TypedArray.find", "Uint8Array.prototype.find()")}}
-
Devuelve el valor encontrado en el array, si un elemento del array satisface una función dada de prueba o undefined si no es encontrada. Véase también {{jsxref("Array.prototype.find()")}}.
-
{{jsxref("TypedArray.findIndex", "Uint8Array.prototype.findIndex()")}}
-
Devuelve el índice encontrado en el array, si un elemento del array satisface una función dada de prueba o -1 si no es encontrada. Véase también {{jsxref("Array.prototype.findIndex()")}}.
-
{{jsxref("TypedArray.forEach", "Uint8Array.prototype.forEach()")}}
-
Llama a una función para cada elemento del array. Véase también {{jsxref("Array.prototype.forEach()")}}.
-
{{jsxref("TypedArray.includes", "Uint8Array.prototype.includes()")}} {{experimental_inline}}
-
Determina si un array incluye un cierto elemento, retornando true o false según corresponda. Véase también {{jsxref("Array.prototype.includes()")}}.
-
{{jsxref("TypedArray.indexOf", "Uint8Array.prototype.indexOf()")}}
-
Devuelve el primer (menor) índice de un elemento dentro del array igual al valor especificado, o -1 si no es encontrado. Véase también {{jsxref("Array.prototype.indexOf()")}}.
-
{{jsxref("TypedArray.join", "Uint8Array.prototype.join()")}}
-
Une todos los elementos de un array a una cadena. Véase también {{jsxref("Array.prototype.join()")}}.
-
{{jsxref("TypedArray.keys", "Uint8Array.prototype.keys()")}}
-
Retorna un nuevo Array Iterator que contiene las claves para cada índice en el array. Véase también {{jsxref("Array.prototype.keys()")}}.
-
{{jsxref("TypedArray.lastIndexOf", "Uint8Array.prototype.lastIndexOf()")}}
-
Devuelve el último (mayor) índice de un elemento dentro del array igual al valor especificado, o -1 si no fue encontrado. Véase también {{jsxref("Array.prototype.lastIndexOf()")}}.
-
{{jsxref("TypedArray.map", "Uint8Array.prototype.map()")}}
-
Crea un nuevo array con los resultados de la llamada a la función indicada aplicados a cada uno de sus elementos. Véase también {{jsxref("Array.prototype.map()")}}.
-
{{jsxref("TypedArray.move", "Uint8Array.prototype.move()")}} {{non-standard_inline}} {{unimplemented_inline}}
-
Primera versión no-estandar de {{jsxref("TypedArray.copyWithin", "Uint8Array.prototype.copyWithin()")}}.
-
{{jsxref("TypedArray.reduce", "Uint8Array.prototype.reduce()")}}
-
-

Aplica una función a un acumulador y a cada valor de un array (de izquierda a derecha) para reducirlo a un único valor. Véase también {{jsxref("Array.prototype.reduce()")}}.

-
-
{{jsxref("TypedArray.reduceRight", "Uint8Array.prototype.reduceRight()")}}
-
Aplica una función a un acumulador y a cada valor de un array (de derecha a izquierda) para reducirlo a un único valor. Véase también {{jsxref("Array.prototype.reduceRight()")}}.
-
{{jsxref("TypedArray.reverse", "Uint8Array.prototype.reverse()")}}
-
Inverte el orden de los elementos de un array, el primero se convierte en el último y el último en el primero. See also {{jsxref("Array.prototype.reverse()")}}.
-
{{jsxref("TypedArray.set", "Uint8Array.prototype.set()")}}
-
Almacena múltiples valores en el array, leyendo los valores de entrada de un array específico.
-
{{jsxref("TypedArray.slice", "Uint8Array.prototype.slice()")}}
-
Extrae una porción de un array y devuelve uno nuevo. Véase también {{jsxref("Array.prototype.slice()")}}.
-
{{jsxref("TypedArray.some", "Uint8Array.prototype.some()")}}
-
Devuelve true si al menos un elemento de este array satisface la función de prueba proporcionada. Véase también {{jsxref("Array.prototype.some()")}}.
-
{{jsxref("TypedArray.sort", "Uint8Array.prototype.sort()")}}
-
Ordena los elementos de un array localmente y devuelve el array. Véase también {{jsxref("Array.prototype.sort()")}}.
-
{{jsxref("TypedArray.subarray", "Uint8Array.prototype.subarray()")}}
-
Retorna un nuevo Uint8Array desde el índice de elementos iniciales y finales proporcionados.
-
{{jsxref("TypedArray.values", "Uint8Array.prototype.values()")}}
-
Retorna un nuevo objeto Array Iterator que contiene los valores para cada índice en el array. Véase también {{jsxref("Array.prototype.values()")}}.
-
{{jsxref("TypedArray.toLocaleString", "Uint8Array.prototype.toLocaleString()")}}
-
Devuelve una cadena localizada que representa el array y sus elementos. Véase también {{jsxref("Array.prototype.toLocaleString()")}}.
-
{{jsxref("TypedArray.toString", "Uint8Array.prototype.toString()")}}
-
Retorna una cadena representando el array sus elementos. Véase también {{jsxref("Array.prototype.toString()")}}.
-
{{jsxref("TypedArray.@@iterator", "Uint8Array.prototype[@@iterator]()")}}
-
Retorna un nuevo objeto Array Iterator que contiene los valores para cada índice en el array.
-
- -

Ejemplos

- -
// Desde una longitud
+{{JSRef}}
+
+Los **`Uint8Array`** representan un array de enteros sin signo de 8 bits. El contenido se inicializa a 0. Una vez establecido, puedes hacer referencia a un elemento usando los métodos del objeto o usando la sintaxis de array estándar (esto es, usando la notación de corchetes).
+
+## Sintaxis
+
+    new Uint8Array(tamaño);
+    new Uint8Array(typedArray);
+    new Uint8Array(objeto);
+    new Uint8Array(buffer [, byteOffset [, tamaño]]);
+
+Para más información acerca de la sintaxis del constructor y sus parámetros, mire _[TypedArray](/es/docs/Web/JavaScript/Reference/Global_Objects/TypedArray#Syntax)_.
+
+## Propiedades
+
+- {{jsxref("TypedArray.BYTES_PER_ELEMENT", "Uint8Array.BYTES_PER_ELEMENT")}}
+  - : Retorna un número con el valor del tamaño del elemento. `1` en el caso del `Uint8Array`.
+- Uint8Array.length
+  - : Propiedad estática de tamaño cuyo valor es 3. Para el tamaño actual (número d elementos), mire {{jsxref("TypedArray.prototype.length", "Uint8Array.prototype.length")}}.
+- {{jsxref("TypedArray.name", "Uint8Array.name")}}
+  - : Devuelve el nombre del constructor en un string. En el caso de `Uint8Array` devuelve: "Uint8Array".
+- {{jsxref("TypedArray.prototype", "Uint8Array.prototype")}}
+  - : Prototipo para los objetos _TypedArray_ .
+
+## Métodos
+
+- {{jsxref("TypedArray.from", "Uint8Array.from()")}}
+  - : Crea un nuevo `Uint8Array` desde un array o un objeto iterable. Véase también {{jsxref("Array.from()")}}.
+- {{jsxref("TypedArray.of", "Uint8Array.of()")}}
+  - : Crea un `Uint8Array con un número variable de argumentos`. Véase también {{jsxref("Array.of()")}}.
+
+## `Uint8Array` prototype
+
+Todos los objetos `Uint8Array` son heredados de {{jsxref("TypedArray.prototype", "%TypedArray%.prototype")}}.
+
+### Propiedades
+
+- `Uint8Array.prototype.constructor`
+  - : Retorna la función que crea una instancia del prototype. Éste es el constructor por defecto de `Uint8Array`.
+- {{jsxref("TypedArray.prototype.buffer", "Uint8Array.prototype.buffer")}} {{readonlyInline}}
+  - : Retorna el {{jsxref("ArrayBuffer")}} con la referencia del `Uint8Array. `Fijado en el tiempo de construcción y es de **sólo lectura**.
+- {{jsxref("TypedArray.prototype.byteLength", "Uint8Array.prototype.byteLength")}} {{readonlyInline}}
+  - : Retorna el tamaño (en bytes) del array `Uint8Array`. Fijado en el tiempo de construcción y es de **sólo lectura**.
+- {{jsxref("TypedArray.prototype.byteOffset", "Uint8Array.prototype.byteOffset")}} {{readonlyInline}}
+  - : Retorna el offset (en bytes) del `Uint8Array` desde el inicio de su {{jsxref("ArrayBuffer")}}. Fijado en el tiempo de construcción y es de **sólo lectura**.
+- {{jsxref("TypedArray.prototype.length", "Uint8Array.prototype.length")}} {{readonlyInline}}
+  - : Retorna el número de elementos contenidos en el `Uint8Array`. Fijado en el tiempo de construcción y es de **sólo lectura**.
+
+### Métodos
+
+- {{jsxref("TypedArray.copyWithin", "Uint8Array.prototype.copyWithin()")}}
+  - : Copia una secuencia de elementos del array dentro del array. Véase también {{jsxref("Array.prototype.copyWithin()")}}.
+- {{jsxref("TypedArray.entries", "Uint8Array.prototype.entries()")}}
+  - : Retorna un nuevo objeto `Array Iterator` que contiene los pares de valores para cada índice del array. Véase también {{jsxref("Array.prototype.entries()")}}.
+- {{jsxref("TypedArray.every", "Uint8Array.prototype.every()")}}
+  - : Prueba si todos los elementos del array cumplen las condiciones de una función. Véase también {{jsxref("Array.prototype.every()")}}.
+- {{jsxref("TypedArray.fill", "Uint8Array.prototype.fill()")}}
+  - : Llena todos los elementos del array desde el principio hasta el final con un valor dado. Véase también {{jsxref("Array.prototype.fill()")}}.
+- {{jsxref("TypedArray.filter", "Uint8Array.prototype.filter()")}}
+  - : Crea un nuevo array con todos los elementos del array que satisfacen las condiciones de una función que devuelve verdadero. Véase también {{jsxref("Array.prototype.filter()")}}.
+- {{jsxref("TypedArray.find", "Uint8Array.prototype.find()")}}
+  - : Devuelve el valor encontrado en el array, si un elemento del array satisface una función dada de prueba o undefined si no es encontrada. Véase también {{jsxref("Array.prototype.find()")}}.
+- {{jsxref("TypedArray.findIndex", "Uint8Array.prototype.findIndex()")}}
+  - : Devuelve el índice encontrado en el array, si un elemento del array satisface una función dada de prueba o -1 si no es encontrada. Véase también {{jsxref("Array.prototype.findIndex()")}}.
+- {{jsxref("TypedArray.forEach", "Uint8Array.prototype.forEach()")}}
+  - : Llama a una función para cada elemento del array. Véase también {{jsxref("Array.prototype.forEach()")}}.
+- {{jsxref("TypedArray.includes", "Uint8Array.prototype.includes()")}} {{experimental_inline}}
+  - : Determina si un array incluye un cierto elemento, retornando `true` o `false` según corresponda. Véase también {{jsxref("Array.prototype.includes()")}}.
+- {{jsxref("TypedArray.indexOf", "Uint8Array.prototype.indexOf()")}}
+  - : Devuelve el primer (menor) índice de un elemento dentro del array igual al valor especificado, o -1 si no es encontrado. Véase también {{jsxref("Array.prototype.indexOf()")}}.
+- {{jsxref("TypedArray.join", "Uint8Array.prototype.join()")}}
+  - : Une todos los elementos de un array a una cadena. Véase también {{jsxref("Array.prototype.join()")}}.
+- {{jsxref("TypedArray.keys", "Uint8Array.prototype.keys()")}}
+  - : Retorna un nuevo `Array Iterator` que contiene las claves para cada índice en el array. Véase también {{jsxref("Array.prototype.keys()")}}.
+- {{jsxref("TypedArray.lastIndexOf", "Uint8Array.prototype.lastIndexOf()")}}
+  - : Devuelve el último (mayor) índice de un elemento dentro del array igual al valor especificado, o -1 si no fue encontrado. Véase también {{jsxref("Array.prototype.lastIndexOf()")}}.
+- {{jsxref("TypedArray.map", "Uint8Array.prototype.map()")}}
+  - : Crea un nuevo array con los resultados de la llamada a la función indicada aplicados a cada uno de sus elementos. Véase también {{jsxref("Array.prototype.map()")}}.
+- {{jsxref("TypedArray.move", "Uint8Array.prototype.move()")}} {{non-standard_inline}} {{unimplemented_inline}}
+  - : Primera versión no-estandar de {{jsxref("TypedArray.copyWithin", "Uint8Array.prototype.copyWithin()")}}.
+- {{jsxref("TypedArray.reduce", "Uint8Array.prototype.reduce()")}}
+  - : Aplica una función a un acumulador y a cada valor de un array (de izquierda a derecha) para reducirlo a un único valor. Véase también {{jsxref("Array.prototype.reduce()")}}.
+- {{jsxref("TypedArray.reduceRight", "Uint8Array.prototype.reduceRight()")}}
+  - : Aplica una función a un acumulador y a cada valor de un array (de derecha a izquierda) para reducirlo a un único valor. Véase también {{jsxref("Array.prototype.reduceRight()")}}.
+- {{jsxref("TypedArray.reverse", "Uint8Array.prototype.reverse()")}}
+  - : Inverte el orden de los elementos de un array, el primero se convierte en el último y el último en el primero. See also {{jsxref("Array.prototype.reverse()")}}.
+- {{jsxref("TypedArray.set", "Uint8Array.prototype.set()")}}
+  - : Almacena múltiples valores en el array, leyendo los valores de entrada de un array específico.
+- {{jsxref("TypedArray.slice", "Uint8Array.prototype.slice()")}}
+  - : Extrae una porción de un array y devuelve uno nuevo. Véase también {{jsxref("Array.prototype.slice()")}}.
+- {{jsxref("TypedArray.some", "Uint8Array.prototype.some()")}}
+  - : Devuelve `true` si al menos un elemento de este array satisface la función de prueba proporcionada. Véase también {{jsxref("Array.prototype.some()")}}.
+- {{jsxref("TypedArray.sort", "Uint8Array.prototype.sort()")}}
+  - : Ordena los elementos de un array localmente y devuelve el array. Véase también {{jsxref("Array.prototype.sort()")}}.
+- {{jsxref("TypedArray.subarray", "Uint8Array.prototype.subarray()")}}
+  - : Retorna un nuevo `Uint8Array` desde el índice de elementos iniciales y finales proporcionados.
+- {{jsxref("TypedArray.values", "Uint8Array.prototype.values()")}}
+  - : Retorna un nuevo objeto `Array Iterator` que contiene los valores para cada índice en el array. Véase también {{jsxref("Array.prototype.values()")}}.
+- {{jsxref("TypedArray.toLocaleString", "Uint8Array.prototype.toLocaleString()")}}
+  - : Devuelve una cadena localizada que representa el array y sus elementos. Véase también {{jsxref("Array.prototype.toLocaleString()")}}.
+- {{jsxref("TypedArray.toString", "Uint8Array.prototype.toString()")}}
+  - : Retorna una cadena representando el array sus elementos. Véase también {{jsxref("Array.prototype.toString()")}}.
+- {{jsxref("TypedArray.@@iterator", "Uint8Array.prototype[@@iterator]()")}}
+  - : Retorna un nuevo objeto `Array Iterator` que contiene los valores para cada índice en el array.
+
+## Ejemplos
+
+```js
+// Desde una longitud
 var uint8 = new Uint8Array(2);
 uint8[0] = 42;
 console.log(uint8[0]); // 42
@@ -144,53 +135,36 @@ console.log(y[0]); // 21
 // Desde un ArrayBuffer
 var buffer = new ArrayBuffer(8);
 var z = new Uint8Array(buffer, 1, 4);
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
{{SpecName('Typed Array')}}{{Spec2('Typed Array')}}Sustituida por ECMAScript 6.
{{SpecName('ES6', '#table-49', 'TypedArray constructors')}}{{Spec2('ES6')}}Definición inicial en un ECMA standard. Se especificó que new es requirerido.
{{SpecName('ESDraft', '#table-49', 'TypedArray constructors')}}{{Spec2('ESDraft')}}
- -

Compatibilidad del navegador

+``` + +## Especificaciones + +| Especificación | Estatus | Comentario | +| ------------------------------------------------------------------------------------ | -------------------------------- | ------------------------------------------------------------------------------- | +| {{SpecName('Typed Array')}} | {{Spec2('Typed Array')}} | Sustituida por ECMAScript 6. | +| {{SpecName('ES6', '#table-49', 'TypedArray constructors')}} | {{Spec2('ES6')}} | Definición inicial en un ECMA standard. Se especificó que `new` es requirerido. | +| {{SpecName('ESDraft', '#table-49', 'TypedArray constructors')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad del navegador {{Compat("javascript.builtins.Uint8Array")}} -

Notas de compatibilidad

+## Notas de compatibilidad -

A partir de ECMAScript 2015 (ES6), los constructors de Uint8Array requiren ser construidos con un operador {{jsxref("Operators/new", "new")}}. Llamar a un contructor de Uint8Array como una función sin new, lanzará un {{jsxref("TypeError")}} de ahora en adelante.

+A partir de ECMAScript 2015 (ES6), los constructors de `Uint8Array` requiren ser construidos con un operador {{jsxref("Operators/new", "new")}}. Llamar a un contructor de `Uint8Array` como una función sin `new`, lanzará un {{jsxref("TypeError")}} de ahora en adelante. -
var dv = Uint8Array([1, 2, 3]);
+```js example-bad
+var dv = Uint8Array([1, 2, 3]);
 // TypeError: calling a builtin Uint8Array constructor
-// without new is forbidden
+// without new is forbidden +``` -
var dv = new Uint8Array([1, 2, 3]);
+```js example-good +var dv = new Uint8Array([1, 2, 3]); +``` -

Véase también

+## Véase también - +- [JavaScript typed arrays](/es/docs/Web/JavaScript/Typed_arrays) +- {{jsxref("ArrayBuffer")}} +- {{jsxref("DataView")}} diff --git a/files/es/web/javascript/reference/global_objects/undefined/index.md b/files/es/web/javascript/reference/global_objects/undefined/index.md index 6e99dc0ba16fc2..e31c111d31aed4 100644 --- a/files/es/web/javascript/reference/global_objects/undefined/index.md +++ b/files/es/web/javascript/reference/global_objects/undefined/index.md @@ -6,73 +6,74 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/undefined original_slug: Web/JavaScript/Referencia/Objetos_globales/undefined --- -
{{jsSidebar("Objects")}}
+{{jsSidebar("Objects")}} -

Resumen

+## Resumen -

La propiedad global undefined representa el valor primitivo {{Glossary("Undefined", "undefined")}}. Es uno de los {{Glossary("Primitive", "valores primitivos")}} de JavaScript.

+La propiedad global **undefined** representa el valor primitivo `{{Glossary("Undefined", "undefined")}}`. Es uno de los {{Glossary("Primitive", "valores primitivos")}} de JavaScript. -

{{js_property_attributes(0,0,0)}}

+{{js_property_attributes(0,0,0)}} -

Sintaxis

+## Sintaxis -
undefined
+ undefined -

Descripción

+## Descripción -

undefined es una propiedad del objeto global, es decir, una variable de alcance global. El valor inicial de undefined es el valor primitivo {{Glossary("Undefined", "undefined")}}.this needs clarification, but that would require explaining primitive values

+`undefined` es una propiedad del _objeto global_, es decir, una variable de alcance global. El valor inicial de `undefined` es el valor primitivo `{{Glossary("Undefined", "undefined")}}`.this needs clarification, but that would require explaining primitive values -

En navegadores modernos (JavaScript 1.8.5 / Firefox 4+), undefined es una propiedad no-configurable, no-grabable según la especificación ECMAScript 5. Aún cuando este no sea el caso, evite sobreescribirlo.

+En navegadores modernos (JavaScript 1.8.5 / Firefox 4+), `undefined `es una propiedad _no-configurable_, _no-grabable_ según la especificación ECMAScript 5. Aún cuando este no sea el caso, evite sobreescribirlo. -

Una variable a la que no se le ha asignado valor, o no se ha declarado en absoluto (no se declara, no existe) son de tipo undefined. Un método o sentencia también devuelve undefined si la variable que se está evaluando no tiene asignado un valor. Una función devuelve undefined si no se ha {{jsxref("Sentencias/return", "devuelto")}} un valor.

+Una variable a la que no se le ha asignado valor, o no se ha declarado en absoluto (no se declara, no existe) son de tipo `undefined`. Un método o sentencia también devuelve `undefined` si la variable que se está evaluando no tiene asignado un valor. Una función devuelve `undefined` si no se ha {{jsxref("Sentencias/return", "devuelto")}} un valor. -
-

Ten en cuenta que si no se ha declarado una variable ni explícita ni implícitamente, no puedes compararla con undefined ya que obtendrías un ReferenceError, pero puedes comparar su tipo con la cadena (String) "undefined". En el ejemplo más abajo se podrá ver cómo conseguir esto usando el operador typeof.

-
+> **Nota:** Ten en cuenta que si no se ha declarado una variable ni explícita ni implícitamente, no puedes compararla con **undefined** ya que obtendrías un **[ReferenceError](/es/docs/Web/JavaScript/Reference/Global_Objects/ReferenceError),** pero puedes comparar su tipo con la cadena ([String](/es/docs/Web/JavaScript/Referencia/Objetos_globales/String)) "undefined". En el ejemplo más abajo se podrá ver cómo conseguir esto usando el operador [typeof](/es/docs/Web/JavaScript/Referencia/Operadores/typeof). -
-

Aunque es posible usarlo como un {{Glossary("Identifier", "identificador")}} (nombre de variable) en cualquier otro ámbito que no sea el ámbito global (porque undefined no es una {{jsxref("Reserved_Words", "palabra reservada")}}), hacerlo es una mala idea que provocará que tú código sea difícil de mantener y depurar.

+> **Advertencia:** Aunque es posible usarlo como un {{Glossary("Identifier", "identificador")}} (nombre de variable) en cualquier otro ámbito que no sea el ámbito global (porque `undefined `no es una {{jsxref("Reserved_Words", "palabra reservada")}}), hacerlo es una mala idea que provocará que tú código sea difícil de mantener y depurar.```js +> //NO HAGAS ESTO +> +> // registra "foo string" +> (function(){ var undefined = 'foo'; console.log(undefined, typeof undefined); })() +> +> // registra "foo string" +> (function(undefined){ console.log(undefined, typeof undefined); })('foo'); +> +> ``` +> +> ``` -
//NO HAGAS ESTO
+## Ejemplos
 
-// registra "foo string"
-(function(){ var undefined = 'foo'; console.log(undefined, typeof undefined); })()
+### Igualdad estricta y `undefined`
 
-// registra "foo string"
-(function(undefined){ console.log(undefined, typeof undefined); })('foo');
-
+Puedes usar `undefined` y los operadores de igualdad y desigualdad estricta para determinar si una variable tiene un valor asignado. En el siguiente ejemplo la variable `x` no está inicializada, y la sentencia `if` se evalúa como verdadera. -

Ejemplos

- -

Igualdad estricta y undefined

- -

Puedes usar undefined y los operadores de igualdad y desigualdad estricta para determinar si una variable tiene un valor asignado. En el siguiente ejemplo la variable x no está inicializada, y la sentencia if se evalúa como verdadera.

- -
var x;
+```js
+var x;
 if (x === undefined) {
    // se ejecutan estas instrucciones
 }
 else {
    // estas instrucciones no se ejecutan
-}
+} +``` -
-

Nota: Aquí se debe usar el operador de igualdad estricta en lugar del operador de igualdad estándar, ya que x == undefined también verifica si x es null, mientras que el de igualdad estricta no. null no es equivalente a undefined. Vea {{jsxref("Operadores/Comparison_Operators", "operadores de comparación")}} para más detalles.

-
+> **Nota:** Nota: Aquí se debe usar el operador de igualdad estricta en lugar del operador de igualdad estándar, ya que `x == undefined` también verifica si `x` es `null`, mientras que el de igualdad estricta no. `null` no es equivalente a `undefined`. Vea {{jsxref("Operadores/Comparison_Operators", "operadores de comparación")}} para más detalles. -

Typeof operador y undefined

+### Typeof operador y `undefined` -

Alternativamente se puede usar {{jsxref("Operadores/typeof","typeof")}}. Recuerda que este siempre devolverá una cadena de texto con el tipo:

+Alternativamente se puede usar {{jsxref("Operadores/typeof","typeof")}}. Recuerda que este siempre devolverá una cadena de texto con el tipo: -
var x;
+```js
+var x;
 if (typeof x === 'undefined') {
    // se ejecutan estas instrucciones
 }
-
+``` -

Una razón para usar {{jsxref("Operadores/typeof","typeof")}} es que no devuelve un error si la variable no fue declarada.

+Una razón para usar {{jsxref("Operadores/typeof","typeof")}} es que no devuelve un error si la variable no fue declarada. -
// x no fue declarada antes
+```js
+// x no fue declarada antes
 if (typeof x === 'undefined') { // devuelve true
    //se ejecutan estas instrucciones
 }
@@ -80,15 +81,16 @@ if (typeof x === 'undefined') { // devuelve true
 if (x === undefined) { // lanza un ReferenceError
 
 }
-
+``` -

Sin embargo, este tipo de técnica debe evitarse. JavaScript es un lenguaje de ámbito estático, por lo que determinar si una variable se encuentra declarada puede ser definido al ver si está declarada en un contexto de inclusión. La única excepción es el ámbito global, pero el ámbito global está vinculado al objeto global, por lo que comprobar la existencia de una variable en el contexto global puede realizarse comprobando la existencia de una propiedad del objeto global (utilizando el operador {{jsxref("Operators/in", "in")}}, por ejemplo).

+Sin embargo, este tipo de técnica debe evitarse. JavaScript es un lenguaje de ámbito estático, por lo que determinar si una variable se encuentra declarada puede ser definido al ver si está declarada en un contexto de inclusión. La única excepción es el ámbito global, pero el ámbito global está vinculado al objeto global, por lo que comprobar la existencia de una variable en el contexto global puede realizarse comprobando la existencia de una propiedad del _objeto global_ (utilizando el operador {{jsxref("Operators/in", "in")}}, por ejemplo). -

Operador void y undefined

+### Operador void y `undefined` -

El operador {{jsxref("Operadores/void", "void")}} es una tercer alternativa.

+El operador {{jsxref("Operadores/void", "void")}} es una tercer alternativa. -
var x;
+```js
+var x;
 if (x === void 0) {
    // se ejecutan estas instrucciones
 }
@@ -97,40 +99,17 @@ if (x === void 0) {
 if (y === void 0) {
    // lanza un ReferenceError (a diferencia de  `typeof`)
 }
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES1', '#sec-4.3.9', 'undefined')}}{{Spec2('ES1')}}Definición inicial. Implementado en JavaScript 1.3.
{{SpecName('ES5.1', '#sec-15.1.1.3', 'undefined')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-undefined', 'undefined')}}{{Spec2('ES6')}}
{{SpecName('ESDraft', '#sec-undefined', 'undefined')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en Navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------ | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ES1', '#sec-4.3.9', 'undefined')}} | {{Spec2('ES1')}} | Definición inicial. Implementado en JavaScript 1.3. | +| {{SpecName('ES5.1', '#sec-15.1.1.3', 'undefined')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-undefined', 'undefined')}} | {{Spec2('ES6')}} | | +| {{SpecName('ESDraft', '#sec-undefined', 'undefined')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en Navegadores {{Compat("javascript.builtins.undefined")}} diff --git a/files/es/web/javascript/reference/global_objects/unescape/index.md b/files/es/web/javascript/reference/global_objects/unescape/index.md index 70604cdc1500d3..2466882885d236 100644 --- a/files/es/web/javascript/reference/global_objects/unescape/index.md +++ b/files/es/web/javascript/reference/global_objects/unescape/index.md @@ -4,73 +4,47 @@ slug: Web/JavaScript/Reference/Global_Objects/unescape translation_of: Web/JavaScript/Reference/Global_Objects/unescape original_slug: Web/JavaScript/Referencia/Objetos_globales/unescape --- -
{{jsSidebar("Objects")}}
+{{jsSidebar("Objects")}} -

La función deprecada unescape() calcula un nuevo string en el cual secuencia de valores hexadecimales son reemplazados con el caracter que representa. La secuencia de calculo deber{ia ser introducida por una función como {{jsxref("escape")}}. Por que unescape está deprecada, usar {{jsxref("decodeURI")}} or {{jsxref("decodeURIComponent")}}.

+La función deprecada **`unescape()`** calcula un nuevo string en el cual secuencia de valores hexadecimales son reemplazados con el caracter que representa. La secuencia de calculo deber{ia ser introducida por una función como {{jsxref("escape")}}. Por que `unescape` está deprecada, usar {{jsxref("decodeURI")}} or {{jsxref("decodeURIComponent")}}. -
Note: Do not use unescape to decode URIs, use decodeURI instead.
+> **Nota:** Do not use `unescape` to decode URIs, use `decodeURI` instead. -

Syntax

+## Syntax -
unescape(str)
+ unescape(str) -

Parameters

+### Parameters -
-
str
-
A string to be decoded.
-
+- `str` + - : A string to be decoded. -

Description

+## Description -

The unescape function is a property of the global object.

+The `unescape` function is a property of the _global object_. -

Examples

+## Examples -
unescape("abc123");     // "abc123"
+```js
+unescape("abc123");     // "abc123"
 unescape("%E4%F6%FC");  // "äöü"
 unescape("%u0107");     // "ć"
-
- -

Specifications

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ES1', '#sec-15.1.2.5', 'unescape')}}{{Spec2('ES1')}}Initial definition.
{{SpecName('ES5.1', '#sec-B.2.2', 'unescape')}}{{Spec2('ES5.1')}}Defined in the (informative) Compatibility Annex B
{{SpecName('ES6', '#sec-unescape-string', 'unescape')}}{{Spec2('ES6')}}Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers
{{SpecName('ESDraft', '#sec-unescape-string', 'unescape')}}{{Spec2('ESDraft')}}Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers
- -

Browser compatibility

+``` + +## Specifications + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------- | ---------------------------- | -------------------------------------------------------------------------------------- | +| {{SpecName('ES1', '#sec-15.1.2.5', 'unescape')}} | {{Spec2('ES1')}} | Initial definition. | +| {{SpecName('ES5.1', '#sec-B.2.2', 'unescape')}} | {{Spec2('ES5.1')}} | Defined in the (informative) Compatibility Annex B | +| {{SpecName('ES6', '#sec-unescape-string', 'unescape')}} | {{Spec2('ES6')}} | Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers | +| {{SpecName('ESDraft', '#sec-unescape-string', 'unescape')}} | {{Spec2('ESDraft')}} | Defined in the (normative) Annex B for Additional ECMAScript Features for Web Browsers | + +## Browser compatibility {{Compat("javascript.builtins.unescape")}} -

See also

+## See also -
    -
  • {{jsxref("decodeURI")}}
  • -
  • {{jsxref("decodeURIComponent")}}
  • -
+- {{jsxref("decodeURI")}} +- {{jsxref("decodeURIComponent")}} diff --git a/files/es/web/javascript/reference/global_objects/weakmap/clear/index.md b/files/es/web/javascript/reference/global_objects/weakmap/clear/index.md index 70d001d106bbba..3c95db43417882 100644 --- a/files/es/web/javascript/reference/global_objects/weakmap/clear/index.md +++ b/files/es/web/javascript/reference/global_objects/weakmap/clear/index.md @@ -9,19 +9,20 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/clear original_slug: Web/JavaScript/Referencia/Objetos_globales/WeakMap/clear --- -
{{JSRef}} {{obsolete_header}}
+{{JSRef}} {{obsolete_header}} -

El método clear() es utilizado para suprimir todos los elementos del objeto WeakMap, sin embargo, ya no es parte de ECMAScript, ni de sus implementaciones.

+El método **`clear()`** es utilizado para suprimir todos los elementos del objeto `WeakMap`, sin embargo, ya no es parte de ECMAScript, ni de sus implementaciones. -

Sintaxis

+## Sintaxis -
wm.clear();
+ wm.clear(); -

Ejemplos

+## Ejemplos -

Utilización del método clear

+### Utilización del método `clear` -
var wm = new WeakMap();
+```plain example-bad
+var wm = new WeakMap();
 var obj = {};
 
 wm.set(obj, 'foo');
@@ -34,20 +35,16 @@ wm.clear();
 
 wm.has(obj)  // false
 wm.has(window)  // false
-
+``` -

Especificaciones

+## Especificaciones -

No es parte de ninguna especificación actual o borrador. Este método fue parte de ECMAScript 6 como un bosquejo hasta la revisión 28 (versión de Octubre 14, 2014), sin embargo ha sido eliminado en versiones posteriores. No es parte de la última versión estándar.

+No es parte de ninguna especificación actual o borrador. Este método fue parte de ECMAScript 6 como un bosquejo hasta la revisión 28 (versión de Octubre 14, 2014), sin embargo ha sido eliminado en versiones posteriores. No es parte de la última versión estándar. -

Compatibilidad con navegadores

+## Compatibilidad con navegadores +{{Compat("javascript.builtins.WeakMap.clear")}} +## Vea también -

{{Compat("javascript.builtins.WeakMap.clear")}}

- -

Vea también

- -
    -
  • {{jsxref("WeakMap")}}
  • -
+- {{jsxref("WeakMap")}} diff --git a/files/es/web/javascript/reference/global_objects/weakmap/get/index.md b/files/es/web/javascript/reference/global_objects/weakmap/get/index.md index baa6f2bcc7a427..90ae89dfc75788 100644 --- a/files/es/web/javascript/reference/global_objects/weakmap/get/index.md +++ b/files/es/web/javascript/reference/global_objects/weakmap/get/index.md @@ -10,72 +10,50 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/get original_slug: Web/JavaScript/Referencia/Objetos_globales/WeakMap/get --- -
{{JSRef}}
+{{JSRef}} -

El método get() devuelve un elemento específico del objeto WeakMap.

+El método **`get()`** devuelve un elemento específico del objeto `WeakMap`. -
{{EmbedInteractiveExample("pages/js/weakmap-prototype-get.html")}}
+{{EmbedInteractiveExample("pages/js/weakmap-prototype-get.html")}} +## Sintaxis + wm.get(key); -

Sintaxis

+### Parámetros -
wm.get(key);
+- key + - : Requerido. Es la llave del elemento a retornar desde el objeto WeakMap. -

Parámetros

+### Valores devueltos -
-
key
-
Requerido. Es la llave del elemento a retornar desde el objeto WeakMap.
-
+El elemento asociado con la llave específica en el objeto WeakMap. Si la llave no está presente, devolverá {{jsxref("undefined")}}. -

Valores devueltos

+## Ejemplos -

El elemento asociado con la llave específica en el objeto WeakMap. Si la llave no está presente, devolverá {{jsxref("undefined")}}.

+### Usando el método `get` -

Ejemplos

- -

Usando el método get

- -
var wm = new WeakMap();
+```js
+var wm = new WeakMap();
 wm.set(window, 'foo');
 
 wm.get(window); // Devuelve "foo".
 wm.get('baz');  // Devuelve undefined.
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
{{SpecName('ES2015', '#sec-weakmap.prototype.get', 'WeakMap.prototype.get')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-weakmap.prototype.get', 'WeakMap.prototype.get')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- - - -

{{Compat("javascript.builtins.WeakMap.get")}}

- -

Vea también

- -
    -
  • {{jsxref("WeakMap")}}
  • -
  • {{jsxref("WeakMap.set()")}}
  • -
  • {{jsxref("WeakMap.has()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentarios | +| -------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-weakmap.prototype.get', 'WeakMap.prototype.get')}} | {{Spec2('ES2015')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-weakmap.prototype.get', 'WeakMap.prototype.get')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.WeakMap.get")}} + +## Vea también + +- {{jsxref("WeakMap")}} +- {{jsxref("WeakMap.set()")}} +- {{jsxref("WeakMap.has()")}} diff --git a/files/es/web/javascript/reference/global_objects/weakmap/has/index.md b/files/es/web/javascript/reference/global_objects/weakmap/has/index.md index af1b1f71cd6ff3..27c9e44513f005 100644 --- a/files/es/web/javascript/reference/global_objects/weakmap/has/index.md +++ b/files/es/web/javascript/reference/global_objects/weakmap/has/index.md @@ -10,75 +10,51 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/has original_slug: Web/JavaScript/Referencia/Objetos_globales/WeakMap/has --- -
{{JSRef}}
+{{JSRef}} -

El método has() devuelve un boleano indicando ya sea, si el elemento con la llave específica existe o no en el objeto WeakMap.

+El método **`has()`** devuelve un boleano indicando ya sea, si el elemento con la llave específica existe o no en el objeto `WeakMap`. -
{{EmbedInteractiveExample("pages/js/weakmap-prototype-has.html")}}
+{{EmbedInteractiveExample("pages/js/weakmap-prototype-has.html")}} +## Sintaxis + wm.has(key); -

Sintaxis

+### Parámetros -
wm.has(key);
+- identificador (key) + - : Requerido. La llave del elemento a comprobar en el objeto `WeakMap`. -

Parámetros

+### Valor devuelto -
-
identificador (key)
-
Requerido. La llave del elemento a comprobar en el objeto WeakMap.
-
+- Boolean + - : Devuelve `true` si el elemento con la llave específica existe en el objeto `WeakMap`; de no encontrarse, devolverá `false`. -

Valor devuelto

+## Ejemplos -
-
Boolean
-
Devuelve true si el elemento con la llave específica existe en el objeto WeakMap; de no encontrarse, devolverá false.
-
+### Utilización del método `has` -

Ejemplos

- -

Utilización del método has

- -
var wm = new WeakMap();
+```js
+var wm = new WeakMap();
 wm.set(window, 'foo');
 
 wm.has(window); // Devuelve true
 wm.has('baz');  // Devuelve false
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
{{SpecName('ES2015', '#sec-weakmap.prototype.has', 'WeakMap.prototype.has')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-weakmap.prototype.has', 'WeakMap.prototype.has')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

- - - -

{{Compat("javascript.builtins.WeakMap.has")}}

- -

Vea también

- -
    -
  • {{jsxref("WeakMap")}}
  • -
  • {{jsxref("WeakMap.prototype.set()")}}
  • -
  • {{jsxref("WeakMap.prototype.get()")}}
  • -
+``` + +## Especificaciones + +| Especificación | Estado | Comentarios | +| -------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-weakmap.prototype.has', 'WeakMap.prototype.has')}} | {{Spec2('ES2015')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-weakmap.prototype.has', 'WeakMap.prototype.has')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores + +{{Compat("javascript.builtins.WeakMap.has")}} + +## Vea también + +- {{jsxref("WeakMap")}} +- {{jsxref("WeakMap.prototype.set()")}} +- {{jsxref("WeakMap.prototype.get()")}} diff --git a/files/es/web/javascript/reference/global_objects/weakmap/set/index.md b/files/es/web/javascript/reference/global_objects/weakmap/set/index.md index 2446a6763b87d5..7b14a6299e5747 100644 --- a/files/es/web/javascript/reference/global_objects/weakmap/set/index.md +++ b/files/es/web/javascript/reference/global_objects/weakmap/set/index.md @@ -10,83 +10,58 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/WeakMap/set original_slug: Web/JavaScript/Referencia/Objetos_globales/WeakMap/set --- -
{{JSRef}}
+{{JSRef}} -

El método set() añade un nuevo elemento con su key y value específicos al objeto WeakMap.

+El método **`set()`** añade un nuevo elemento con su `key` y `value` específicos al objeto `WeakMap`. -
{{EmbedInteractiveExample("pages/js/weakmap-prototype-set.html")}}
+{{EmbedInteractiveExample("pages/js/weakmap-prototype-set.html")}} +## Sintaxis + wm.set(key, value); -

Sintaxis

+### Parámetros -
wm.set(key, value);
+- indentificador (key) + - : Requerido. El identificador (objeto) del elemento a añadir al objeto `WeakMap`. +- valor (value) + - : Requerido. El valor del elemento a añadir al objeto `WeakMap`. -

Parámetros

+### Valor devuelto -
-
indentificador (key)
-
Requerido. El identificador (objeto) del elemento a añadir al objeto WeakMap.
-
valor (value)
-
Requerido. El valor del elemento a añadir al objeto WeakMap.
-
+El objeto `WeakMap`. -

Valor devuelto

+## Ejemplos -

El objeto WeakMap.

+### Utilización del método `set` -

Ejemplos

- -

Utilización del método set

- -
var wm = new WeakMap();
+```js
+var wm = new WeakMap();
 var obj = {};
 
 // Agregando nuevos elementos a WeakMap
 wm.set(obj, 'foo').set(window, 'bar'); // encadenamiento
 // Actualiza el un elemento en el objeto WeakMap
 wm.set(obj, 'baz');
+```
 
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
{{SpecName('ES2015', '#sec-weakmap.prototype.set', 'WeakMap.prototype.set')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-weakmap.prototype.set', 'WeakMap.prototype.set')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

+## Especificaciones +| Especificación | Estado | Comentarios | +| -------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-weakmap.prototype.set', 'WeakMap.prototype.set')}} | {{Spec2('ES2015')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-weakmap.prototype.set', 'WeakMap.prototype.set')}} | {{Spec2('ESDraft')}} | | +## Compatibilidad con navegadores -

{{Compat("javascript.builtins.WeakMap.set")}}

+{{Compat("javascript.builtins.WeakMap.set")}} -

Notas específicas de Firefox

+## Notas específicas de Firefox -
    -
  • Antes de Firefox 33 {{geckoRelease("33")}}, WeakMap.prototype.set devolvía undefined y no permitía el encadenamiento. Esto ha sido corregido ({{bug(1031632)}}). Este comportamiento puede encontrarse también en Chrome/v8 (fallo).
  • -
+- Antes de Firefox 33 {{geckoRelease("33")}}, `WeakMap.prototype.set` devolvía `undefined` y no permitía el encadenamiento. Esto ha sido corregido ({{bug(1031632)}}). Este comportamiento puede encontrarse también en Chrome/v8 ([fallo](https://code.google.com/p/v8/issues/detail?id=3410)). -

Vea también

+## Vea también -
    -
  • {{jsxref("WeakMap")}}
  • -
  • {{jsxref("WeakMap.prototype.get()")}}
  • -
  • {{jsxref("WeakMap.prototype.has()")}}
  • -
+- {{jsxref("WeakMap")}} +- {{jsxref("WeakMap.prototype.get()")}} +- {{jsxref("WeakMap.prototype.has()")}} diff --git a/files/es/web/javascript/reference/global_objects/webassembly/index.md b/files/es/web/javascript/reference/global_objects/webassembly/index.md index ddbe0ec54a7ead..c4361129980cc3 100644 --- a/files/es/web/javascript/reference/global_objects/webassembly/index.md +++ b/files/es/web/javascript/reference/global_objects/webassembly/index.md @@ -11,61 +11,56 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/WebAssembly original_slug: Web/JavaScript/Referencia/Objetos_globales/WebAssembly --- -
{{JSRef}}
- -

El objeto WebAssembly de JavaScript actua como un namespace para todas las funcionalidades realcionados con WebAssembly.

- -

A diferencia de otros objetos globales, WebAssembly no tiene un constructor (no tiene una función para crear el objeto). Puedes ser comparado con el objeto {{jsxref("Math")}}, que también es un namespace, para funciones y constantes matemáticas, o también con {{jsxref("Intl")}} que es un namespace para internacionalización y otras funciones de idioma.

- -

Descripción

- -

Los usos primarios para el objeto WebAssembly son:

- -
    -
  • Cargar código WebAssembly, utilizando la función {{jsxref("WebAssembly.instantiate()")}}.
  • -
  • Crear nuevas instancias de memoria y de tablas mediante los constructores {{jsxref("WebAssembly.Memory()")}}/{{jsxref("WebAssembly.Table()")}}.
  • -
  • Facilitar el manejo de errores que ocurren dentro de un WebAssembly mediante los constructores:{{jsxref("WebAssembly.CompileError()")}}/{{jsxref("WebAssembly.LinkError()")}}/{{jsxref("WebAssembly.RuntimeError()")}}.
  • -
- -

Métodos

- -
-
{{jsxref("WebAssembly.instantiate()")}}
-
El API primaria para compilar e instanciar código WebAssembly, ambos regresan un Module y el primero Instance.
-
{{jsxref("WebAssembly.instantiateStreaming()")}}
-
Compila e instancia un módulo WebAssembly directamente desde un flujo de origen subyacente, ambos regresan un Module y el primero Instance.
-
{{jsxref("WebAssembly.compile()")}}
-
Compila un {{jsxref("WebAssembly.Module")}} desde el código binario de un WebAssembly, manteniendo la creación de la instancia como un objeto separado.
-
{{jsxref("WebAssembly.compileStreaming()")}}
-
compila un {{jsxref("WebAssembly.Module")}} directamente desde un flujo de origen subyacente, manteniendo la creación de la instancia como un objeto sepraado.
-
{{jsxref("WebAssembly.validate()")}}
-
Valida un arreglo con tipo de código binario de un WebAssembly, regresando si los bytes son código válido WebAssembly (true) o de lo contrario (false).
-
- -

Constructores

- -
-
{{jsxref("WebAssembly.Module()")}}
-
Crea un nuevo objeto WebAssembly Module.
-
{{jsxref("WebAssembly.Instance()")}}
-
Crear un nuevo objeto WebAssembly Instance.
-
{{jsxref("WebAssembly.Memory()")}}
-
Crear un nuevo objeto WebAssembly Memory.
-
{{jsxref("WebAssembly.Table()")}}
-
Crear un nuevo objeto WebAssembly Table.
-
{{jsxref("WebAssembly.CompileError()")}}
-
Crear un nuevo objeto WebAssembly CompileError.
-
{{jsxref("WebAssembly.LinkError()")}}
-
Crear un nuevo objeto WebAssembly LinkError.
-
{{jsxref("WebAssembly.RuntimeError()")}}
-
Crear un nuevo objeto WebAssembly RuntimeError.
-
- -

Ejemplos

- -

Después de obtener algún bytecode de WebAssembly usando la sentencia fetch, nosotros compilamos e instanciamos el módulo usando la función {{jsxref("WebAssembly.instantiate()")}} , importando una función de JavaScript en el WebAssembly Module en el proceso. Esta premisa resuelve a un objeto (result) que contenga un objeto Module compilado y un objeto Instance . Entonces tenemos una llamada a Exported WebAssembly function que es exportada por Instance.

- -
var importObject = {
+{{JSRef}}
+
+El objeto **`WebAssembly`** de JavaScript actua como un namespace para todas las funcionalidades realcionados con [WebAssembly](/es/docs/WebAssembly).
+
+A diferencia de otros objetos globales, `WebAssembly` no tiene un constructor (no tiene una función para crear el objeto). Puedes ser comparado con el objeto {{jsxref("Math")}}, que también es un namespace, para funciones y constantes matemáticas, o también con {{jsxref("Intl")}} que es un namespace para internacionalización y otras funciones de idioma.
+
+## Descripción
+
+Los usos primarios para el objeto `WebAssembly` son:
+
+- Cargar código WebAssembly, utilizando la función {{jsxref("WebAssembly.instantiate()")}}.
+- Crear nuevas instancias de memoria y de tablas mediante los constructores {{jsxref("WebAssembly.Memory()")}}/{{jsxref("WebAssembly.Table()")}}.
+- Facilitar el manejo de errores que ocurren dentro de un WebAssembly mediante los constructores:{{jsxref("WebAssembly.CompileError()")}}/{{jsxref("WebAssembly.LinkError()")}}/{{jsxref("WebAssembly.RuntimeError()")}}.
+
+## Métodos
+
+- {{jsxref("WebAssembly.instantiate()")}}
+  - : El API primaria para compilar e instanciar código WebAssembly, ambos regresan un `Module` y el primero `Instance`.
+- {{jsxref("WebAssembly.instantiateStreaming()")}}
+  - : Compila e instancia un módulo WebAssembly directamente desde un flujo de origen subyacente, ambos regresan un `Module` y el primero `Instance`.
+- {{jsxref("WebAssembly.compile()")}}
+  - : Compila un {{jsxref("WebAssembly.Module")}} desde el código binario de un WebAssembly, manteniendo la creación de la instancia como un objeto separado.
+- {{jsxref("WebAssembly.compileStreaming()")}}
+  - : compila un {{jsxref("WebAssembly.Module")}} directamente desde un flujo de origen subyacente, manteniendo la creación de la instancia como un objeto sepraado.
+- {{jsxref("WebAssembly.validate()")}}
+  - : Valida un arreglo con tipo de código binario de un WebAssembly, regresando si los bytes son código válido WebAssembly (`true`) o de lo contrario (`false`).
+
+## Constructores
+
+- {{jsxref("WebAssembly.Module()")}}
+  - : Crea un nuevo objeto WebAssembly `Module`.
+- {{jsxref("WebAssembly.Instance()")}}
+  - : Crear un nuevo objeto WebAssembly `Instance`.
+- {{jsxref("WebAssembly.Memory()")}}
+  - : Crear un nuevo objeto WebAssembly `Memory`.
+- {{jsxref("WebAssembly.Table()")}}
+  - : Crear un nuevo objeto WebAssembly `Table`.
+- {{jsxref("WebAssembly.CompileError()")}}
+  - : Crear un nuevo objeto WebAssembly `CompileError`.
+- {{jsxref("WebAssembly.LinkError()")}}
+  - : Crear un nuevo objeto WebAssembly `LinkError`.
+- {{jsxref("WebAssembly.RuntimeError()")}}
+  - : Crear un nuevo objeto WebAssembly `RuntimeError`.
+
+## Ejemplos
+
+Después de obtener algún bytecode de WebAssembly usando la sentencia fetch, nosotros compilamos e instanciamos el módulo usando la función {{jsxref("WebAssembly.instantiate()")}} , importando una función de JavaScript en el WebAssembly Module en el proceso. Esta premisa resuelve a un objeto (`result`) que contenga un objeto [`Module`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Module) compilado y un objeto [`Instance`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/Instance) . Entonces tenemos una llamada a [Exported WebAssembly function](/es/docs/WebAssembly/Exported_functions) que es exportada por `Instance`.
+
+```js
+var importObject = {
   imports: {
     imported_func: function(arg) {
       console.log(arg);
@@ -73,49 +68,29 @@ original_slug: Web/JavaScript/Referencia/Objetos_globales/WebAssembly
   }
 };
 
-fetch('simple.wasm').then(response =>
+fetch('simple.wasm').then(response =>
   response.arrayBuffer()
-).then(bytes =>
+).then(bytes =>
   WebAssembly.instantiate(bytes, importObject)
-).then(result =>
+).then(result =>
   result.instance.exports.exported_func()
-);
- -
-

Nota: Ver index.html en GitHub (view it live also) para un ejemplo que hace uso de la función fetchAndInstantiate().

-
- -

Especificaciones

- - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('WebAssembly JS', '#the-webassembly-object', 'WebAssembly')}}{{Spec2('WebAssembly JS')}}Definición inicial del borrador.
- -

Compatibilidad de Navegadores

- -
- - -

{{Compat("javascript.builtins.WebAssembly")}}

-
- -

Ver también

- - +); +``` + +> **Nota:** Ver [index.html](https://github.com/mdn/webassembly-examples/blob/master/js-api-examples/index.html) en GitHub ([view it live also](https://mdn.github.io/webassembly-examples/js-api-examples/)) para un ejemplo que hace uso de la función [`fetchAndInstantiate()`](https://github.com/mdn/webassembly-examples/blob/master/wasm-utils.js#L1). + +## Especificaciones + +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------------------------------ | ------------------------------------ | -------------------------------- | +| {{SpecName('WebAssembly JS', '#the-webassembly-object', 'WebAssembly')}} | {{Spec2('WebAssembly JS')}} | Definición inicial del borrador. | + +## Compatibilidad de Navegadores + +{{Compat("javascript.builtins.WebAssembly")}} + +## Ver también + +- [Vista General de WebAssembly](/es/docs/WebAssembly) +- [Conceptos de WebAssembly](/es/docs/WebAssembly/Concepts) +- [Uso de la API de JavaScript de WebAssembly](/es/docs/WebAssembly/Using_the_JavaScript_API) diff --git a/files/es/web/javascript/reference/lexical_grammar/index.md b/files/es/web/javascript/reference/lexical_grammar/index.md index 92eca26c451e67..3c896987d1401a 100644 --- a/files/es/web/javascript/reference/lexical_grammar/index.md +++ b/files/es/web/javascript/reference/lexical_grammar/index.md @@ -10,447 +10,348 @@ tags: translation_of: Web/JavaScript/Reference/Lexical_grammar original_slug: Web/JavaScript/Referencia/Gramatica_lexica --- -
{{JsSidebar("Más")}}
- -

Esta página describe la gramática léxica de JavaScript. El texto fuente de los scripts de ECMAScript se escanea de izquierda a derecha y se convierte en una secuencia de elementos de entrada que son segmentos, caracteres de control, terminadores de línea, comentarios o {{Glossary("Espacio en blanco")}}. ECMAScript también define ciertas palabras clave y literales y tiene reglas para la inserción automática del punto y coma en las declaraciones finales.

- -

Caracteres de control

- -

Los caracteres de control no tienen representación visual, pero se utilizan para controlar la interpretación del texto.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Caracteres de control de formato Unicode
Punto de códigoNombreAbreviaturaDescripción
U+200CSeparador de ancho cero<ZWNJ>Colocado entre caracteres para evitar que se conecten a ligaduras en ciertos idiomas (Wikipedia).
U+200DConector de ancho cero<ZWJ>Colocado entre caracteres que normalmente no estarían conectados para hacer que los caracteres se rendericen usando su forma conectada en ciertos idiomas (Wikipedia).
U+FEFFMarca de orden de bytes<BOM>Se usa al comienzo del script para marcarlo como Unicode y el orden de bytes del texto (Wikipedia).
- -

Espacio en blanco

- -

Los caracteres de {{Glossary("Espacio_en_blanco")}} mejoran la legibilidad del texto fuente y separan los fragmentos entre sí. Estos caracteres suelen ser innecesarios para la funcionalidad del código. Las herramientas de minificación se utilizan a menudo para eliminar espacios en blanco con el fin de reducir la cantidad de datos que se deben transferir.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Caracteres de espacio en blanco
Punto de códigoNombreAbreviaturaDescripciónSecuencia de escape
U+0009Caracter de tabulación<HT>Tabulación horizontal\t
U+000BTabulación de línea<VT>Tabulación vertical\v
U+000CAvance de Página<FF>Carácter de control de salto de página (Wikipedia).\f
U+0020Espacio<SP>Espacio normal
U+00A0Espacio irrompible<NBSP>Espacio normal, pero ningún punto en el que una línea se pueda romper
OtrosOtros caracteres de espacio Unicode<USP>Espacios Unicode en Wikipedia
- -

Terminadores de línea

- -

Además de los caracteres de {{Glossary("Espacio_en_blanco", "espacio en blanco")}}, los caracteres de terminación de línea se utilizan para mejorar la legibilidad del texto fuente. Sin embargo, en algunos casos, los terminadores de línea pueden influir en la ejecución del código JavaScript, ya que hay algunos lugares donde están prohibidos. Los terminadores de línea también afectan el proceso de la inserción automática de punto y coma. Los terminadores de línea se corresponden con la clase \s en expresiones regulares.

- -

Solo los siguientes puntos de código Unicode se tratan como terminadores de línea en ECMAScript, otros caracteres de salto de línea se tratan como espacios en blanco (por ejemplo, Next Line, NEL, U+0085 se consideran como espacios en blanco).

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Caracteres terminadores de línea
Punto de códigoNombreAbreviaturaDescripciónSecuencia de escape
U+000AAlimentación de linea<LF>Caracter de nueva línea en sistemas UNIX.\n
U+000DRetorno de carro<CR>Caracter de nueva línea en Commodore y los primeros sistemas Mac.\r
U+2028Separador de línea<LS>Wikipedia
U+2029Separador de párrafos<PS>Wikipedia
- -

Comentarios

- -

Los comentarios se utilizan para agregar consejos, notas, sugerencias o advertencias al código JavaScript. Esto puede facilitar su lectura y comprensión. También se pueden utilizar para deshabilitar el código y evitar que se ejecute; esta puede ser una valiosa herramienta de depuración.

- -

JavaScript tiene dos formas antiguas de agregar comentarios al código.

- -

La primera forma son las dobles barras inclinadas // comentario; esta convierte en comentario todo el texto que le sigue en la misma línea. Por ejemplo:

- -
function comment() {
+{{JsSidebar("Más")}}
+
+Esta página describe la gramática léxica de JavaScript. El texto fuente de los scripts de ECMAScript se escanea de izquierda a derecha y se convierte en una secuencia de elementos de entrada que son segmentos, caracteres de control, terminadores de línea, comentarios o {{Glossary("Espacio en blanco")}}. ECMAScript también define ciertas palabras clave y literales y tiene reglas para la inserción automática del punto y coma en las declaraciones finales.
+
+## Caracteres de control
+
+Los caracteres de control no tienen representación visual, pero se utilizan para controlar la interpretación del texto.
+
+| Punto de código | Nombre                  | Abreviatura | Descripción                                                                                                                                                                                                               |
+| --------------- | ----------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `U+200C`        | Separador de ancho cero |       | Colocado entre caracteres para evitar que se conecten a ligaduras en ciertos idiomas ([Wikipedia](https://en.wikipedia.org/wiki/Zero-width_non-joiner)).                                                                  |
+| `U+200D`        | Conector de ancho cero  |        | Colocado entre caracteres que normalmente no estarían conectados para hacer que los caracteres se rendericen usando su forma conectada en ciertos idiomas ([Wikipedia](https://en.wikipedia.org/wiki/Zero-width_joiner)). |
+| `U+FEFF`        | Marca de orden de bytes |        | Se usa al comienzo del script para marcarlo como Unicode y el orden de bytes del texto ([Wikipedia](https://en.wikipedia.org/wiki/Marca_de_orden_de_bytes)).                                                              |
+
+## Espacio en blanco
+
+Los caracteres de {{Glossary("Espacio_en_blanco")}} mejoran la legibilidad del texto fuente y separan los fragmentos entre sí. Estos caracteres suelen ser innecesarios para la funcionalidad del código. Las [herramientas de minificación](https://en.wikipedia.org/wiki/Minification_%28programming%29) se utilizan a menudo para eliminar espacios en blanco con el fin de reducir la cantidad de datos que se deben transferir.
+
+| Punto de código | Nombre                              | Abreviatura | Descripción                                                                                               | Secuencia de escape |
+| --------------- | ----------------------------------- | ----------- | --------------------------------------------------------------------------------------------------------- | ------------------- |
+| U+0009          | Caracter de tabulación              |         | Tabulación horizontal                                                                                     | \t                  |
+| U+000B          | Tabulación de línea                 |         | Tabulación vertical                                                                                       | \v                  |
+| U+000C          | Avance de Página                    |         | Carácter de control de salto de página ([Wikipedia](https://en.wikipedia.org/wiki/Page_break#Form_feed)). | \f                  |
+| U+0020          | Espacio                             |         | Espacio normal                                                                                            |                     |
+| U+00A0          | Espacio irrompible                  |       | Espacio normal, pero ningún punto en el que una línea se pueda romper                                     |                     |
+| Otros           | Otros caracteres de espacio Unicode |        | [Espacios Unicode en Wikipedia]()                |                     |
+
+## Terminadores de línea
+
+Además de los caracteres de {{Glossary("Espacio_en_blanco", "espacio en blanco")}}, los caracteres de terminación de línea se utilizan para mejorar la legibilidad del texto fuente. Sin embargo, en algunos casos, los terminadores de línea pueden influir en la ejecución del código JavaScript, ya que hay algunos lugares donde están prohibidos. Los terminadores de línea también afectan el proceso de la [inserción automática de punto y coma](#Inserción_automática_de_punto_y_coma). Los terminadores de línea se corresponden con la clase **\s** en [expresiones regulares](/es/docs/Web/JavaScript/Guide/Regular_Expressions).
+
+Solo los siguientes puntos de código Unicode se tratan como terminadores de línea en ECMAScript, otros caracteres de salto de línea se tratan como espacios en blanco (por ejemplo, `Next Line`, `NEL`, `U+0085` se consideran como espacios en blanco).
+
+| Punto de código | Nombre                | Abreviatura | Descripción                                                       | Secuencia de escape |
+| --------------- | --------------------- | ----------- | ----------------------------------------------------------------- | ------------------- |
+| U+000A          | Alimentación de linea |         | Caracter de nueva línea en sistemas UNIX.                         | \n                  |
+| U+000D          | Retorno de carro      |         | Caracter de nueva línea en Commodore y los primeros sistemas Mac. | \r                  |
+| U+2028          | Separador de línea    |         | [Wikipedia](https://es.wikipedia.org/wiki/Nueva_l%C3%ADnea)       |                     |
+| U+2029          | Separador de párrafos |         | [Wikipedia](https://es.wikipedia.org/wiki/Nueva_l%C3%ADnea)       |                     |
+
+## Comentarios
+
+Los comentarios se utilizan para agregar consejos, notas, sugerencias o advertencias al código JavaScript. Esto puede facilitar su lectura y comprensión. También se pueden utilizar para deshabilitar el código y evitar que se ejecute; esta puede ser una valiosa herramienta de depuración.
+
+JavaScript tiene dos formas antiguas de agregar comentarios al código.
+
+La primera forma son las dobles barras inclinadas `//` comentario**;** esta convierte en comentario todo el texto que le sigue en la misma línea. Por ejemplo:
+
+```js
+function comment() {
   // Este es un comentario JavaScript de una línea
   console.log('¡Hola mundo!');
 }
 comment();
-
+``` -

La segunda forma es el estilo /* */, que es mucho más flexible.

+La segunda forma es el estilo `/* */`, que es mucho más flexible. -

Por ejemplo, lo puedes usar en una sola línea:

+Por ejemplo, lo puedes usar en una sola línea: -
function comment() {
+```js
+function comment() {
   /* Este es un comentario JavaScript de una línea */
   console.log('¡Hola mundo!');
 }
-comment();
+comment(); +``` -

También puedes hacer comentarios de varias líneas, como este:

+También puedes hacer comentarios de varias líneas, como este: -
function comment() {
+```js
+function comment() {
   /* Este comentario abarca varias líneas. Aviso
      No necesitamos cerrar el comentario hasta que terminemos. */
   console.log('¡Hola mundo!');
 }
-comment();
+comment(); +``` -

También lo puedes usar en medio de una línea, si lo deseas, aunque esto puede hacer que tu código sea más difícil de leer, por lo que se debe usar con precaución:

+También lo puedes usar en medio de una línea, si lo deseas, aunque esto puede hacer que tu código sea más difícil de leer, por lo que se debe usar con precaución: -
function comment(x) {
+```js
+function comment(x) {
   console.log('¡Hola' + x /* inserta el valor de x */ + ' !');
 }
-comment('mundo');
+comment('mundo'); +``` -

Además, lo puedes usar para deshabilitar el código y evitar que se ejecute, envolviendo el código en un comentario, como este:

+Además, lo puedes usar para deshabilitar el código y evitar que se ejecute, envolviendo el código en un comentario, como este: -
function comment() {
+```js
+function comment() {
   /* console.log('¡Hola mundo!'); */
 }
-comment();
+comment(); +``` -

En este caso, la llamada a console.log() nunca se emite, debido a que está dentro de un comentario. De esta forma se puede desactivar cualquier número de líneas de código.

+En este caso, la llamada a `console.log()` nunca se emite, debido a que está dentro de un comentario. De esta forma se puede desactivar cualquier número de líneas de código. -

Comentarios hashbang

+## Comentarios `hashbang` -

Una sintaxis de tercer comentario especializado, el comentario hashbang, está en proceso de estandarización en ECMAScript (consulta la Propuesta de gramática Hashbang).

+Una sintaxis de tercer comentario especializado, el **comentario `hashbang`**, está en proceso de estandarización en ECMAScript (consulta la [Propuesta de gramática `Hashbang`](https://github.com/tc39/proposal-hashbang)). -

Un comentario hashbang se comporta exactamente como un comentario de una sola línea (//). En cambio, comienza con #! y solo son válidos al comienzo absoluto de un script o módulo. También ten en cuenta que no se permiten espacios en blanco de ningún tipo antes del #!. El comentario consta de todos los caracteres después de #! hasta el final de la primera línea; sólo se permite uno de esos comentarios.

+Un comentario `hashbang` se comporta exactamente como un comentario de una sola línea (`//`). En cambio, comienza con `#!` y **solo son válidos al comienzo absoluto de un script o módulo**. También ten en cuenta que no se permiten espacios en blanco de ningún tipo antes del `#!`. El comentario consta de todos los caracteres después de `#!` hasta el final de la primera línea; sólo se permite uno de esos comentarios. -

El comentario hashbang especifica la ruta a un intérprete de JavaScript específico que deseas utilizar para ejecutar el script. Aquí tienes un sencillo ejemplo:

+El comentario `hashbang` especifica la ruta a un intérprete de JavaScript específico que deseas utilizar para ejecutar el script. Aquí tienes un sencillo ejemplo: -
#!/usr/bin/env node
+```js
+#!/usr/bin/env node
 
 console.log("Hola mundo");
-
- -
-

Nota: Los comentarios hashbang en JavaScript imitan a los shebangs en Unix utilizados para ejecutar archivos con el intérprete apropiado.

-
- -
-

Aunque BOM antes de que el comentario hashbang funcione en un navegador, no se recomienda utilizar BOM en un script con hashbang. BOM no funcionará cuando intentes ejecutar el script en Unix/Linux. Por lo tanto, usa UTF-8 sin BOM si deseas ejecutar scripts directamente desde el intérprete.

-
- -

¡Solo debes usar el estilo de comentario #! para especificar un intérprete de JavaScript. En todos los demás casos, utiliza un comentario // (o un comentario multilínea).

- -

Palabras clave

- -

Palabras clave reservadas a partir de ECMAScript 2015

- -
    -
  • {{jsxref("Statements/break", "break")}}
  • -
  • {{jsxref("Statements/switch", "case")}}
  • -
  • {{jsxref("Statements/try...catch", "catch")}}
  • -
  • {{jsxref("Statements/class", "class")}}
  • -
  • {{jsxref("Statements/const", "const")}}
  • -
  • {{jsxref("Statements/continue", "continue")}}
  • -
  • {{jsxref("Statements/debugger", "debugger")}}
  • -
  • {{jsxref("Statements/default", "default")}}
  • -
  • {{jsxref("Operators/delete", "delete")}}
  • -
  • {{jsxref("Statements/do...while", "do")}}
  • -
  • {{jsxref("Statements/if...else", "else")}}
  • -
  • {{jsxref("Statements/export", "export")}}
  • -
  • {{jsxref("Statements/class", "extends")}}
  • -
  • {{jsxref("Statements/try...catch", "finally")}}
  • -
  • {{jsxref("Statements/for", "for")}}
  • -
  • {{jsxref("Statements/function", "function")}}
  • -
  • {{jsxref("Statements/if...else", "if")}}
  • -
  • {{jsxref("Statements/import", "import")}}
  • -
  • {{jsxref("Operators/in", "in")}}
  • -
  • {{jsxref("Operators/instanceof", "instanceof")}}
  • -
  • {{jsxref("Operators/new", "new")}}
  • -
  • {{jsxref("Statements/return", "return")}}
  • -
  • {{jsxref("Operators/super", "super")}}
  • -
  • {{jsxref("Statements/switch", "switch")}}
  • -
  • {{jsxref("Operators/this", "this")}}
  • -
  • {{jsxref("Statements/throw", "throw")}}
  • -
  • {{jsxref("Statements/try...catch", "try")}}
  • -
  • {{jsxref("Operators/typeof", "typeof")}}
  • -
  • {{jsxref("Statements/var", "var")}}
  • -
  • {{jsxref("Operators/void", "void")}}
  • -
  • {{jsxref("Statements/while", "while")}}
  • -
  • {{jsxref("Statements/with", "with")}}
  • -
  • {{jsxref("Operators/yield", "yield")}}
  • -
- -

Futuras palabras clave reservadas

- -

Las siguientes están reservadas como palabras clave futuras por la especificación ECMAScript. No tienen ninguna funcionalidad especial en la actualidad, pero es posible que lo hagan en el futuro, por lo que no se pueden utilizar como identificadores.

- -

Estas siempre están reservadas:

- -
    -
  • enum
  • -
- -

Las siguientes solo están reservadas cuando se encuentran en código de modo estricto:

- -
    -
  • implements
  • -
  • interface
  • -
  • {{jsxref("Statements/let", "let")}}
  • -
  • package
  • -
  • private
  • -
  • protected
  • -
  • public
  • -
  • static
  • -
  • {{jsxref("Operators/yield", "yield")}}
  • -
- -

Las siguientes solo están reservadas cuando se encuentran en código de módulo:

- -
    -
  • await
  • -
- -

Futuras palabras clave reservadas en estándares más antiguos

- -

Las siguientes están reservadas como palabras clave futuras según las especificaciones de ECMAScript anteriores (ECMAScript 1 a 3).

- -
    -
  • abstract
  • -
  • boolean
  • -
  • byte
  • -
  • char
  • -
  • double
  • -
  • final
  • -
  • float
  • -
  • goto
  • -
  • int
  • -
  • long
  • -
  • native
  • -
  • short
  • -
  • synchronized
  • -
  • throws
  • -
  • transient
  • -
  • volatile
  • -
- -

Además, los literales null, true y false no se pueden utilizar como identificadores en ECMAScript.

- -

Uso de palabras reservadas

- -

Las palabras reservadas en realidad solo se aplican a los identificadores (frente a los nombres de identificadores). Como se describe en es5.github.com/#A.1, todos estos son IdentifierNames que no excluyen Palabras reservadas.

- -
a.import
+```
+
+> **Nota:** Los comentarios `hashbang` en JavaScript imitan a los [`shebangs` en Unix]() utilizados para ejecutar archivos con el intérprete apropiado.
+
+> **Advertencia:** Aunque [BOM](https://https://es.wikipedia.org/wiki/Marca_de_orden_de_bytes) antes de que el comentario `hashbang` funcione en un navegador, no se recomienda utilizar BOM en un script con `hashbang`. BOM no funcionará cuando intentes ejecutar el script en Unix/Linux. Por lo tanto, usa UTF-8 sin BOM si deseas ejecutar scripts directamente desde el intérprete.
+
+¡Solo debes usar el estilo de comentario `#!` para especificar un intérprete de JavaScript. En todos los demás casos, utiliza un comentario `//` (o un comentario multilínea).
+
+## Palabras clave
+
+### Palabras clave reservadas a partir de ECMAScript 2015
+
+- {{jsxref("Statements/break", "break")}}
+- {{jsxref("Statements/switch", "case")}}
+- {{jsxref("Statements/try...catch", "catch")}}
+- {{jsxref("Statements/class", "class")}}
+- {{jsxref("Statements/const", "const")}}
+- {{jsxref("Statements/continue", "continue")}}
+- {{jsxref("Statements/debugger", "debugger")}}
+- {{jsxref("Statements/default", "default")}}
+- {{jsxref("Operators/delete", "delete")}}
+- {{jsxref("Statements/do...while", "do")}}
+- {{jsxref("Statements/if...else", "else")}}
+- {{jsxref("Statements/export", "export")}}
+- {{jsxref("Statements/class", "extends")}}
+- {{jsxref("Statements/try...catch", "finally")}}
+- {{jsxref("Statements/for", "for")}}
+- {{jsxref("Statements/function", "function")}}
+- {{jsxref("Statements/if...else", "if")}}
+- {{jsxref("Statements/import", "import")}}
+- {{jsxref("Operators/in", "in")}}
+- {{jsxref("Operators/instanceof", "instanceof")}}
+- {{jsxref("Operators/new", "new")}}
+- {{jsxref("Statements/return", "return")}}
+- {{jsxref("Operators/super", "super")}}
+- {{jsxref("Statements/switch", "switch")}}
+- {{jsxref("Operators/this", "this")}}
+- {{jsxref("Statements/throw", "throw")}}
+- {{jsxref("Statements/try...catch", "try")}}
+- {{jsxref("Operators/typeof", "typeof")}}
+- {{jsxref("Statements/var", "var")}}
+- {{jsxref("Operators/void", "void")}}
+- {{jsxref("Statements/while", "while")}}
+- {{jsxref("Statements/with", "with")}}
+- {{jsxref("Operators/yield", "yield")}}
+
+### Futuras palabras clave reservadas
+
+Las siguientes están reservadas como palabras clave futuras por la especificación ECMAScript. No tienen ninguna funcionalidad especial en la actualidad, pero es posible que lo hagan en el futuro, por lo que no se pueden utilizar como identificadores.
+
+Estas siempre están reservadas:
+
+- `enum`
+
+Las siguientes solo están reservadas cuando se encuentran en código de modo estricto:
+
+- `implements`
+- `interface`
+- {{jsxref("Statements/let", "let")}}
+- `package`
+- `private`
+- `protected`
+- `public`
+- `static`
+- {{jsxref("Operators/yield", "yield")}}
+
+Las siguientes solo están reservadas cuando se encuentran en código de módulo:
+
+- `await`
+
+#### Futuras palabras clave reservadas en estándares más antiguos
+
+Las siguientes están reservadas como palabras clave futuras según las especificaciones de ECMAScript anteriores (ECMAScript 1 a 3).
+
+- `abstract`
+- `boolean`
+- `byte`
+- `char`
+- `double`
+- `final`
+- `float`
+- `goto`
+- `int`
+- `long`
+- `native`
+- `short`
+- `synchronized`
+- `throws`
+- `transient`
+- `volatile`
+
+Además, los literales `null`, `true` y `false` no se pueden utilizar como identificadores en ECMAScript.
+
+### Uso de palabras reservadas
+
+Las palabras reservadas en realidad solo se aplican a los _identificadores_ (frente a los _nombres de identificadores_). Como se describe en [es5.github.com/#A.1](http://es5.github.com/#A.1), todos estos son _IdentifierName_s que no excluyen \_Palabras reservadas_.
+
+```js
+a.import
 a['import']
 a = { import: 'test' }.
-
+``` -

Por otro lado, lo siguiente es ilegal porque es un Identificador, que es un IdentifierName sin palabras reservadas. Los identificadores se utilizan para FunctionDeclaration, FunctionExpression, VariableDeclaration y así sucesivamente. Los IdentifierNames se utilizan para MemberExpression, CallExpression y así sucesivamente.

+Por otro lado, lo siguiente es ilegal porque es un _Identificador_, que es un _IdentifierName_ sin palabras reservadas. Los identificadores se utilizan para _FunctionDeclaration_, _FunctionExpression_, _VariableDeclaration_ y así sucesivamente. Los _IdentifierNames_ se utilizan para _MemberExpression_, _CallExpression_ y así sucesivamente. -
function import() {} // Ilegal.
+```js +function import() {} // Ilegal. +``` -

Identificadores con significado especial

+### Identificadores con significado especial -

Algunos identificadores tienen un significado especial en algunos contextos sin ser palabras clave de ningún tipo. Estos incluyen:

+Algunos identificadores tienen un significado especial en algunos contextos sin ser palabras clave de ningún tipo. Estos incluyen: -
    -
  • {{jsxref("Functions/arguments", "arguments")}}
  • -
  • {{jsxref("Functions/get", "get")}}
  • -
  • {{jsxref("Functions/set", "set")}}
  • -
+- {{jsxref("Functions/arguments", "arguments")}} +- {{jsxref("Functions/get", "get")}} +- {{jsxref("Functions/set", "set")}} -

Literales

+## Literales -

null literal

+### `null` literal -

Consulta también {{jsxref("null")}} para obtener más información.

+Consulta también {{jsxref("null")}} para obtener más información. -
null
+```js +null +``` -

Booleanos literales

+### Booleanos literales -

Consulta también {{jsxref("Boolean", "Booleano")}} para obtener más información.

+Consulta también {{jsxref("Boolean", "Booleano")}} para obtener más información. -
true
-false
+```js +true +false +``` -

Literales numéricos

+### Literales numéricos -

Los tipos {{jsxref("Number")}} y {{jsxref("BigInt")}} usan literales numéricos.

+Los tipos {{jsxref("Number")}} y {{jsxref("BigInt")}} usan literales numéricos. -

Decimal

+#### Decimal -
1234567890
+```js
+1234567890
 42
 
 // Precaución al usar con un cero a la izquierda:
 0888 // 888 procesado como decimal
 0777 // procesado como octal, 511 en decimal
-
+``` -

Ten en cuenta que los decimales literales pueden comenzar con un cero (0) seguido de otro dígito decimal, pero si todos los dígitos después del 0 inicial son menores que 8, el número se interpreta como un número octal. Esto no arrojará JavaScript, consulta error 957513. Consulta también la página sobre {{jsxref("parseInt", "parseInt()")}}

+Ten en cuenta que los decimales literales pueden comenzar con un cero (`0`) seguido de otro dígito decimal, pero si todos los dígitos después del `0` inicial son menores que 8, el número se interpreta como un número octal. Esto no arrojará JavaScript, consulta [error 957513](https://bugzilla.mozilla.org/show_bug.cgi?id=957513). Consulta también la página sobre {{jsxref("parseInt", "parseInt()")}} -
Exponencial
+##### Exponencial -

El literal exponencial decimal se especifica mediante el siguiente formato: beN; donde b es un número base (entero o flotante), seguido del caracter e (que sirve como separador o indicador de exponente) y N, que es un número exponente o potencia: un entero con signo (según las especificaciones ECMA-262 de 2019):

+El literal exponencial decimal se especifica mediante el siguiente formato: `beN`; donde `b` es un número base (entero o flotante), seguido del caracter `e` (que sirve como separador o _indicador de exponente_) y `N`, que es un número _exponente_ o _potencia_: un entero con signo (según las especificaciones ECMA-262 de 2019): -
0e-5   // => 0
-0e+5   // => 0
-5e1    // => 50
-175e-2 // => 1.75
-1e3    // => 1000
-1e-3   // => 0.001
-
+```js +0e-5 // => 0 +0e+5 // => 0 +5e1 // => 50 +175e-2 // => 1.75 +1e3 // => 1000 +1e-3 // => 0.001 +``` -

Binario

+#### Binario -

La sintaxis de números binarios utiliza un cero inicial seguido de una letra "B" latina en minúscula o mayúscula (0b o 0B). Debido a que esta sintaxis es nueva en ECMAScript 2015, consulta la tabla de compatibilidad del navegador a continuación. Si los dígitos después de 0b no son 0 o 1, se muestra el siguiente {{jsxref("SyntaxError")}}: "Faltan dígitos binarios después de 0b".

+La sintaxis de números binarios utiliza un cero inicial seguido de una letra "B" latina en minúscula o mayúscula (`0b` o `0B`). Debido a que esta sintaxis es nueva en ECMAScript 2015, consulta la tabla de compatibilidad del navegador a continuación. Si los dígitos después de `0b` no son 0 o 1, se muestra el siguiente {{jsxref("SyntaxError")}}: "Faltan dígitos binarios después de 0b". -
var FLT_SIGNBIT  = 0b10000000000000000000000000000000; // 2147483648
+```js
+var FLT_SIGNBIT  = 0b10000000000000000000000000000000; // 2147483648
 var FLT_EXPONENT = 0b01111111100000000000000000000000; // 2139095040
-var FLT_MANTISSA = 0B00000000011111111111111111111111; // 8388607
+var FLT_MANTISSA = 0B00000000011111111111111111111111; // 8388607 +``` -

Octal

+#### Octal -

La sintaxis de números octales utiliza un cero inicial seguido de una letra "O" latina en minúscula o mayúscula (0o o 0O). Debido a que esta sintaxis es nueva en ECMAScript 2015, consulta la tabla de compatibilidad del navegador a continuación. Si los dígitos después del 0o están fuera del rango (01234567), se lanza el siguiente {{jsxref("SyntaxError")}}: "Dígitos octales faltantes después del 0o".

+La sintaxis de números octales utiliza un cero inicial seguido de una letra "O" latina en minúscula o mayúscula (`0o` o `0O`). Debido a que esta sintaxis es nueva en ECMAScript 2015, consulta la tabla de compatibilidad del navegador a continuación. Si los dígitos después del `0o` están fuera del rango (01234567), se lanza el siguiente {{jsxref("SyntaxError")}}: "Dígitos octales faltantes después del 0o". -
var n = 0O755; // 493
+```js
+var n = 0O755; // 493
 var m = 0o644; // 420
 
 // También es posible con solo un cero inicial (ve la nota sobre los decimales arriba)
 0755
 0644
-
+``` -

Hexadecimal

+#### Hexadecimal -

La sintaxis de números hexadecimales utiliza un cero inicial seguido de una letra "X" latina en minúscula o mayúscula (0x o 0X). Si los dígitos después de 0x están fuera del rango (0123456789ABCDEF), se lanza el siguiente {{jsxref("SyntaxError")}}: "El identificador comienza inmediatamente después del literal numérico".

+La sintaxis de números hexadecimales utiliza un cero inicial seguido de una letra "X" latina en minúscula o mayúscula (`0x` o `0X`). Si los dígitos después de 0x están fuera del rango (0123456789ABCDEF), se lanza el siguiente {{jsxref("SyntaxError")}}: "El identificador comienza inmediatamente después del literal numérico". -
0xFFFFFFFFFFFFFFFFF // 295147905179352830000
+```js
+0xFFFFFFFFFFFFFFFFF // 295147905179352830000
 0x123456789ABCDEF   // 81985529216486900
 0XA                 // 10
-
+``` -

BigInt literal

+#### BigInt literal -

El tipo {{jsxref("BigInt")}} es una primitiva numérica en JavaScript que puede representar números enteros con precisión arbitraria. Los BigInt literales se crean agregando n al final de un número entero.

+El tipo {{jsxref("BigInt")}} es una primitiva numérica en JavaScript que puede representar números enteros con precisión arbitraria. Los BigInt literales se crean agregando `n` al final de un número entero. -
123456789123456789n     // 123456789123456789
+```js
+123456789123456789n     // 123456789123456789
 0o777777777777n         // 68719476735
 0x123456789ABCDEFn      // 81985529216486895‬
 0b11101001010101010101n // 955733
-
+``` -

Ten en cuenta que los números octales heredados con solo un cero a la izquierda no funcionarán para BigInt:

+Ten en cuenta que los números octales heredados con solo un cero a la izquierda no funcionarán para `BigInt`: -
// 0755n
-// SyntaxError: sintaxis de BigInt no válida
+```js example-bad +// 0755n +// SyntaxError: sintaxis de BigInt no válida +``` -

Para números BigInt octales, siempre utiliza cero seguido de la letra "o" (mayúscula o minúscula):

+Para números `BigInt` octales, siempre utiliza cero seguido de la letra "o" (mayúscula o minúscula): -
0o755n
+```js example-good +0o755n +``` -

Para obtener más información sobre BigInt, consulta también estructuras de datos JavaScript.

+Para obtener más información sobre `BigInt`, consulta también [estructuras de datos JavaScript](/es/docs/Web/JavaScript/Data_structures#BigInt_type). -

Separadores numéricos

+#### Separadores numéricos -

Para mejorar la legibilidad de literales numéricos, se pueden usar guiones bajos (_, U+005F) como separadores:

+Para mejorar la legibilidad de literales numéricos, se pueden usar guiones bajos (`_`, `U+005F`) como separadores: -
// separadores en números decimales
+```js
+// separadores en números decimales
 1_000_000_000_000
 1_050.95
 
@@ -465,11 +366,12 @@ var m = 0o644; // 420
 
 // separadores en BigInts
 1_000_000_000_000_000_000_000n
-
+``` -

Ten en cuenta estas limitaciones:

+Ten en cuenta estas limitaciones: -
 // No se permite más de un guión bajo en una fila
+```js example-bad
+ // No se permite más de un guión bajo en una fila
 100__000; // SyntaxError
 
 // No permitido al final de literales numéricos
@@ -477,13 +379,14 @@ var m = 0o644; // 420
 
 // No se puede usar después de 0
 0_1; // SyntaxError
-
+``` -

Objetos literales

+### Objetos literales -

Consulta también {{jsxref("Object")}} e Iniciador de objeto para obtener más información.

+Consulta también {{jsxref("Object")}} e [Iniciador de objeto](/es/docs/Web/JavaScript/Reference/Operators/Object_initializer) para obtener más información. -
var o = { a: 'foo', b: 'bar', c: 42 };
+```js
+var o = { a: 'foo', b: 'bar', c: 42 };
 
 // notación abreviada. Nueva en ES2015
 var a = 'foo', b = 'bar', c = 42;
@@ -491,166 +394,164 @@ var o = {a, b, c};
 
 // en vez de
 var o = { a: a, b: b, c: c };
-
+``` -

Arreglos literales

+### Arreglos literales -

Consulta también {{jsxref("Array")}} para obtener más información.

+Consulta también {{jsxref("Array")}} para obtener más información. -
[1954, 1974, 1990, 2014]
+```js +[1954, 1974, 1990, 2014] +``` -

Cadenas literales

+### Cadenas literales -

Una cadena literal es cero o más puntos de código Unicode entre comillas simples o dobles. Los puntos de código Unicode también se pueden representar mediante una secuencia de escape. Literalmente todos los puntos de código pueden aparecer en una cadena literal, excepto estos puntos de código de cierre de cita:

+Una cadena literal es cero o más puntos de código Unicode entre comillas simples o dobles. Los puntos de código Unicode también se pueden representar mediante una secuencia de escape. Literalmente todos los puntos de código pueden aparecer en una cadena literal, excepto estos puntos de código de cierre de cita: -
    -
  • U+005C \ (backslash),
  • -
  • U+000D <CR>,
  • -
  • y U+000A <LF>.
  • -
+- U+005C \ (backslash), +- U+000D \, +- y U+000A \. -

Antes de la propuesta para hacer que todo el texto JSON sea ECMA-262 válido, U+2028 <LS> y U+2029 <PS>, tampoco se permitió que aparecieran sin escape en las cadenas literales.

+Antes de la [propuesta para hacer que todo el texto JSON sea ECMA-262 válido](https://github.com/tc39/proposal-json-superset), U+2028 \ y U+2029 \, tampoco se permitió que aparecieran sin escape en las cadenas literales. -

Cualquier punto de código puede aparecer en forma de secuencia de escape. Las cadenas literales se evalúan como valores de cadena de ECMAScript. Al generar estos valores de cadena, los puntos de código Unicode están codificados en UTF-16.

+Cualquier punto de código puede aparecer en forma de secuencia de escape. Las cadenas literales se evalúan como valores de cadena de ECMAScript. Al generar estos valores de cadena, los puntos de código Unicode están codificados en UTF-16. -
'foo'
-"bar"
+```js +'foo' +"bar" +``` -

Secuencias de escape hexadecimales

+#### Secuencias de escape hexadecimales -

Las secuencias de escape hexadecimales constan de \x seguido de exactamente dos dígitos hexadecimales que representan una unidad de código o un punto de código en el rango de 0x0000 a 0x00FF.

+Las secuencias de escape hexadecimales constan de `\x` seguido de exactamente dos dígitos hexadecimales que representan una unidad de código o un punto de código en el rango de 0x0000 a 0x00FF. -
'\xA9' // "©"
-
+```js +'\xA9' // "©" +``` -

Secuencias de escape Unicode

+#### Secuencias de escape Unicode -

Una secuencia de escape Unicode consta exactamente de cuatro dígitos hexadecimales después de \u. Representa una unidad de código en la codificación UTF-16. Para los puntos de código U+0000 a U+FFFF, la unidad de código es igual al punto de código. Los puntos de código U+10000 a U+10FFFF requieren dos secuencias de escape que representan las dos unidades de código (un par sustituto) utilizadas para codificar el carácter; el par sustituto es distinto del punto de código.

+Una secuencia de escape Unicode consta exactamente de cuatro dígitos hexadecimales después de `\u`. Representa una unidad de código en la codificación UTF-16. Para los puntos de código U+0000 a U+FFFF, la unidad de código es igual al punto de código. Los puntos de código U+10000 a U+10FFFF requieren dos secuencias de escape que representan las dos unidades de código (un par sustituto) utilizadas para codificar el carácter; el par sustituto es distinto del punto de código. -

Consulta también {{jsxref("String.fromCharCode()")}} y {{jsxref("String.prototype.charCodeAt()")}}.

+Consulta también {{jsxref("String.fromCharCode()")}} y {{jsxref("String.prototype.charCodeAt()")}}. -
'\u00A9' // "©" (U+A9)
+```js +'\u00A9' // "©" (U+A9) +``` -

Puntos de escape de código Unicode

+#### Puntos de escape de código Unicode -

Un punto de código de escape Unicode consta de \u{, seguido de un punto de código en base hexadecimal, seguido de }. El valor de los dígitos hexadecimales debe estar en el rango 0 y 0x10FFFF inclusive. Los puntos de código en el rango U+10000 a U+10FFFF no necesitan representarse como un par sustituto. Se agregaron puntos de código de escape a JavaScript en ECMAScript 2015 (ES6).

+Un punto de código de escape Unicode consta de `\u{`, seguido de un punto de código en base hexadecimal, seguido de `}`. El valor de los dígitos hexadecimales debe estar en el rango 0 y 0x10FFFF inclusive. Los puntos de código en el rango U+10000 a U+10FFFF no necesitan representarse como un par sustituto. Se agregaron puntos de código de escape a JavaScript en ECMAScript 2015 (ES6). -

Consulta también {{jsxref("String.fromCodePoint()")}} y {{jsxref("String.prototype.codePointAt()")}}.

+Consulta también {{jsxref("String.fromCodePoint()")}} y {{jsxref("String.prototype.codePointAt()")}}. -
'\u{2F804}' // CJK COMPATIBILIDAD IDEOGRÁFICA-2F804 (U+2F804)
+```js
+'\u{2F804}' // CJK COMPATIBILIDAD IDEOGRÁFICA-2F804 (U+2F804)
 
 // el mismo caracter representado como un par suplente
-'\uD87E\uDC04'
+'\uD87E\uDC04' +``` -

Expresión regular literal

+### Expresión regular literal -

Consulta también {{jsxref("RegExp")}} para obtener más información.

+Consulta también {{jsxref("RegExp")}} para obtener más información. -
/ab+c/g
+```js
+/ab+c/g
 
 // Una expresión regular literal "vacía"
 // El grupo de no captura vacío es necesario
 // para evitar la ambigüedad con comentarios de una sola línea.
-/(?:)/
+/(?:)/ +``` -

Plantillas literales

+### Plantillas literales -

Consulta también cadenas de plantilla para obtener más información.

+Consulta también [cadenas de plantilla](/es/docs/Web/JavaScript/Reference/template_strings) para obtener más información. -
`string text`
+```js
+`string text`
 
 `string text line 1
  string text line 2`
 
 `string text ${expression} string text`
 
-tag `string text ${expression} string text`
+tag `string text ${expression} string text` +``` -

Inserción automática de punto y coma

+## Inserción automática de punto y coma -

Algunas declaraciones JavaScript se deben terminar con punto y coma y, por lo tanto, se ven afectadas por la inserción automática del punto y coma (IAPC):

+Algunas [declaraciones JavaScript](/es/docs/Web/JavaScript/Reference/Statements) se deben terminar con punto y coma y, por lo tanto, se ven afectadas por la inserción automática del punto y coma (IAPC): -
    -
  • Declaración vacía
  • -
  • let, const, declaración de variable
  • -
  • import, export, declaración de módulo
  • -
  • Declaración de expresión
  • -
  • debugger
  • -
  • continue, break, throw
  • -
  • return
  • -
+- Declaración vacía +- `let`, `const`, declaración de variable +- `import`, `export`, declaración de módulo +- Declaración de expresión +- `debugger` +- `continue`, `break`, `throw` +- `return` -

La especificación ECMAScript menciona tres reglas de inserción de punto y coma.

+La especificación ECMAScript menciona [tres reglas de inserción de punto y coma](https://tc39.github.io/ecma262/#sec-rules-of-automatic-semicolon-insertion). -

1. Se inserta un punto y coma antes, cuando se encuentra un terminador de línea o "}" que no está permitido por la gramática.

+1\. Se inserta un punto y coma antes, cuando se encuentra un [terminador de línea](#Line_terminators) o "}" que no está permitido por la gramática. -
{ 1 2 } 3
+```js
+{ 1 2 } 3
 
 // La IAPC lo transforma en
 
-{ 1 2 ;} 3;
+{ 1 2 ;} 3; +``` -

2. Se inserta un punto y coma al final, cuando se detecta el final del flujo de entrada de símbolos y el analizador no puede procesar el único flujo de entrada como un programa completo.

+2\. Se inserta un punto y coma al final, cuando se detecta el final del flujo de entrada de símbolos y el analizador no puede procesar el único flujo de entrada como un programa completo. -

Aquí ++ no se trata como un operador sufijo que se aplica a la variable b, porque se produce un terminador de línea entre b y ++.

+Aquí `++` no se trata como un [operador sufijo](/es/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Increment) que se aplica a la variable `b`, porque se produce un terminador de línea entre `b` y `++`. -
a = b
+```js
+a = b
 ++c
 
 // IAPC lo transforma en
 
 a = b;
 ++c;
-
+``` -

3. Se inserta un punto y coma al final, cuando una declaración con producción restringida en la gramática va seguida de un terminador de línea. Estas declaraciones con reglas "no LineTerminator aquí" son:

+3\. Se inserta un punto y coma al final, cuando una declaración con producción restringida en la gramática va seguida de un terminador de línea. Estas declaraciones con reglas "no LineTerminator aquí" son: -
    -
  • PostfixExpressions (++ y --)
  • -
  • continue
  • -
  • break
  • -
  • return
  • -
  • yield, yield*
  • -
  • module
  • -
+- PostfixExpressions (`++` y `--`) +- `continue` +- `break` +- `return` +- `yield`, `yield*` +- `module` -
return
+```js
+return
 a + b
 
 // La IAPC lo transforma en
 
 return;
 a + b;
-
- -

Especificaciones

- - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-ecmascript-language-lexical-grammar', 'Gramática léxica')}}
+``` -

Compatibilidad del navegador

+## Especificaciones +| Especificación | +| ------------------------------------------------------------------------------------------------------------------------ | +| {{SpecName('ESDraft', '#sec-ecmascript-language-lexical-grammar', 'Gramática léxica')}} | +## Compatibilidad del navegador -

{{Compat("javascript.grammar")}}

+{{Compat("javascript.grammar")}} -

Ve también

+## Ve también - +- [Jeff Walden: números binarios y octales](http://whereswalden.com/2013/08/12/micro-feature-from-es6-now-in-firefox-aurora-and-nightly-binary-and-octal-numbers/) +- [Mathias Bynens: caracteres de secuencias de escape JavaScript](http://mathiasbynens.be/notes/javascript-escapes) +- {{jsxref("Boolean", "Booleanos")}} +- {{jsxref("Number", "Números")}} +- {{jsxref("RegExp")}} +- {{jsxref("String", "Cadenas de texto (Strings)")}} diff --git a/files/es/web/javascript/reference/operators/assignment/index.md b/files/es/web/javascript/reference/operators/assignment/index.md index 1b9e7fa4d31d19..1e528dac6d2ac6 100644 --- a/files/es/web/javascript/reference/operators/assignment/index.md +++ b/files/es/web/javascript/reference/operators/assignment/index.md @@ -10,54 +10,40 @@ tags: translation_of: Web/JavaScript/Reference/Operators/Assignment original_slug: Web/JavaScript/Referencia/Operadores/Asignacion --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

El operador de asignación (=) se utiliza para asignar un valor a una variable. La operación de asignación evalúa el valor asignado. Es posible encadenar el operador de asignación para asignar un solo valor a múltiples variables

+El operador de asignación (=) se utiliza para asignar un valor a una variable. La operación de asignación evalúa el valor asignado. Es posible encadenar el operador de asignación para asignar un solo valor a múltiples variables -
{{EmbedInteractiveExample("pages/js/expressions-assignment.html")}}
+{{EmbedInteractiveExample("pages/js/expressions-assignment.html")}} +## Sintaxis + Operador: x = y +## Ejemplos +### Asignación -

Sintaxis

- -
Operador: x = y
-
- -

Ejemplos

- -

Asignación

- -
// Asumimos las siguientes variables
+```js
+// Asumimos las siguientes variables
 //  x = 5
 //  n = 10
 //  z = 25
 
 x = n     // La variable x contiene el valor 10
-x = n = z // x = n (es decir 10) y z pisa el valor total remplazandolo por 25
- -

Especificaciones

- - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}}
+x = n = z // x = n (es decir 10) y z pisa el valor total remplazandolo por 25 +``` -

Compatibilidad con Navegadores

+## Especificaciones +| Especificación | +| ---------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-assignment-operators', 'Assignment operators')}} | +## Compatibilidad con Navegadores -

{{Compat("javascript.operators.assignment")}}

+{{Compat("javascript.operators.assignment")}} -

Ver también

+## Ver también - +- [Assignment operators in the JS guide](/es/docs/Web/JavaScript/Guide/Expressions_and_Operators#Assignment) diff --git a/files/es/web/javascript/reference/operators/async_function/index.md b/files/es/web/javascript/reference/operators/async_function/index.md index f93dc46b8d8d52..9e8f5bd4179776 100644 --- a/files/es/web/javascript/reference/operators/async_function/index.md +++ b/files/es/web/javascript/reference/operators/async_function/index.md @@ -9,42 +9,41 @@ tags: translation_of: Web/JavaScript/Reference/Operators/async_function original_slug: Web/JavaScript/Referencia/Operadores/async_function --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

La palabra clave async function puede ser utilizada para definir funciones async dentro de expresiones.

+La palabra clave **`async function`** puede ser utilizada para definir funciones `async` dentro de expresiones. -

También se pueden definir funciones asíncronas utilizando un enunciado de función asíncrona.

+También se pueden definir funciones asíncronas utilizando un[ enunciado de función asíncrona](/es/docs/Web/JavaScript/Reference/Statements/async_function "The async function keyword can be used to define async functions inside expressions."). -

Sintaxis

+## Sintaxis -
async function [nombre]([param1[, param2[, ..., paramN]]]) {
-   enunciados
-}
+ async function [nombre]([param1[, param2[, ..., paramN]]]) { + enunciados + } -

A partir de ES2015 (ES6), también se pueden emplear funciones flecha.

+A partir de ES2015 (ES6), también se pueden emplear [funciones flecha.](/es/docs/Web/JavaScript/Reference/Functions/Arrow_functions) -

Parámetros

+### Parámetros -
-
name
-
El nombre de la función. Puede ser omitida, en cuyo caso la función es anónima. El nombre es sólo local al cuerpo de la función.
-
paramN
-
El nombre de un argumento a ser pasado a la función.
-
statements
-
Los enunciados que componen el cuerpo de la función.
-
+- `name` + - : El nombre de la función. Puede ser omitida, en cuyo caso la función es _anónima_. El nombre es sólo local al cuerpo de la función. +- `paramN` + - : El nombre de un argumento a ser pasado a la función. +- `statements` + - : Los enunciados que componen el cuerpo de la función. -

Descripción

+## Descripción -

Una expresión async function es muy similar, y casi tiene la misma sintaxis que, una {{jsxref('Statements/async_function', 'async function statement')}}. La principal diferencia entre una expresión async function y un enunciado async function es el nombre de la función, que puede ser omitido en una expresión async function para crear funciones anonymous. Una expresión async function puede ser utilizada como un {{Glossary("IIFE")}} (Expresión de función inmediatamente invocada, Immediately Invoked Function Expression) que se ejecuta tan rápido como es definida. Ver el capítulo sobre funciones para tener más información.

+Una expresión `async function` es muy similar, y casi tiene la misma sintaxis que, una {{jsxref('Statements/async_function', 'async function statement')}}. La principal diferencia entre una expresión `async function` y un enunciado `async function` es el _nombre de la función_, que puede ser omitido en una expresión `async function` para crear funciones _anonymous_. Una expresión `async function` puede ser utilizada como un {{Glossary("IIFE")}} (Expresión de función inmediatamente invocada, Immediately Invoked Function Expression) que se ejecuta tan rápido como es definida. Ver el capítulo sobre [funciones](/es/docs/Web/JavaScript/Reference/Functions) para tener más información. -

Ejemplos

+## Ejemplos -

Ejemplo sencillo

+### Ejemplo sencillo -
function resuelve2SegundosDespues(x) {
-  return new Promise(resolve => {
-    setTimeout(() => {
+```js
+function resuelve2SegundosDespues(x) {
+  return new Promise(resolve => {
+    setTimeout(() => {
       resolve(x);
     }, 2000);
   });
@@ -57,7 +56,7 @@ const agregar= async function(x) { // Expresión de una función asíncrona asig
   return x + a + b;
 };
 
-agregar(10).then(v => {
+agregar(10).then(v => {
   console.log(v);  // imprime 60 después de 4 segundos.
 });
 
@@ -66,38 +65,23 @@ agregar(10).then(v => {
   let p_a = resuelve2SegundosDespues(20);
   let p_b = resuelve2SegundosDespues(30);
   return x + await p_a + await p_b;
-})(10).then(v => {
+})(10).then(v => {
   console.log(v);  // imprime 60 después de 2 segundos.
 });
-
+``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-async-function-definitions', 'async function')}}
+| Especificación | +| ---------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-async-function-definitions', 'async function')}} | -

Compatibilidad de los navegadores

+## Compatibilidad de los navegadores -
+{{Compat("javascript.operators.async_function_expression")}} +## Ver también -

{{Compat("javascript.operators.async_function_expression")}}

-
- -

Ver también

- -
    -
  • {{jsxref("Statements/async_function", "async function")}}
  • -
  • Objeto {{jsxref("AsyncFunction")}}
  • -
  • {{jsxref("Operators/await", "await")}}
  • -
+- {{jsxref("Statements/async_function", "async function")}} +- Objeto {{jsxref("AsyncFunction")}} +- {{jsxref("Operators/await", "await")}} diff --git a/files/es/web/javascript/reference/operators/await/index.md b/files/es/web/javascript/reference/operators/await/index.md index bb8e2dd7635b95..23b4e4d1cceb19 100644 --- a/files/es/web/javascript/reference/operators/await/index.md +++ b/files/es/web/javascript/reference/operators/await/index.md @@ -4,38 +4,33 @@ slug: Web/JavaScript/Reference/Operators/await translation_of: Web/JavaScript/Reference/Operators/await original_slug: Web/JavaScript/Referencia/Operadores/await --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}}El operador `await` es usado para esperar a una {{jsxref("Promise")}}. Sólo puede ser usado dentro de una función {{jsxref("Statements/async_function", "async function")}}. -
El operador await es usado para esperar a una {{jsxref("Promise")}}. Sólo puede ser usado dentro de una función {{jsxref("Statements/async_function", "async function")}}.
+## Sintaxis -

Sintaxis

+ [rv] = await expression; -
[rv] = await expression;
+- `expression` + - : Una {{jsxref("Promise")}} o cualquier otro valor por el cual haya que esperar. +- `rv` + - : Regresa el valor terminado de la promesa o solamente un valor si no es una`Promise`. -
-
expression
-
Una {{jsxref("Promise")}} o cualquier otro valor por el cual haya que esperar.
-
rv
-
-

Regresa el valor terminado de la promesa o solamente un valor si no es unaPromise.

-
-
+## Descripción -

Descripción

+La expresión `await` provoca que la ejecución de una función `async` sea pausada hasta que una `Promise` sea terminada o rechazada, y regresa a la ejecución de la función `async` después del término. Al regreso de la ejecución, el valor de la expresión `await` es la regresada por una promesa terminada. -

La expresión await provoca que la ejecución de una función async sea pausada hasta que una Promise sea terminada o rechazada, y regresa a la ejecución de la función async después del término. Al regreso de la ejecución, el valor de la expresión await es la regresada por una promesa terminada.

+Si la `Promise` es rechazada, el valor de la expresión `await` tendrá el valor de rechazo. -

Si la Promise es rechazada, el valor de la expresión await tendrá el valor de rechazo.

+Si el valor de la expresión seguida del operador `await` no es una promesa, será convertido a una [resolved Promise](/es/docs/Web/JavaScript/Reference/Global_Objects/Promise/resolve). -

Si el valor de la expresión seguida del operador await no es una promesa, será convertido a una resolved Promise.

+## Ejemplos -

Ejemplos

+Si una `Promise` se pasa a una expresión `await`, espera a que la `Promise` se resuelva y devuelve el valor resuelto. -

Si una Promise se pasa a una expresión await, espera a que la Promise se resuelva y devuelve el valor resuelto.

- -
function resolveAfter2Seconds(x) {
-  return new Promise(resolve => {
-    setTimeout(() => {
+```js
+function resolveAfter2Seconds(x) {
+  return new Promise(resolve => {
+    setTimeout(() => {
       resolve(x);
     }, 2000);
   });
@@ -46,58 +41,43 @@ async function f1() {
   console.log(x); // 10
 }
 f1();
-
+``` -

Si el valor no es una Promise, convierte el valor a una Promise resuelta, y espera por dicho valor.

+Si el valor no es una `Promise`, convierte el valor a una `Promise` resuelta, y espera por dicho valor. -
async function f2() {
+```js
+async function f2() {
   var y = await 20;
   console.log(y); // 20
 }
-f2();
+f2(); +``` -

Si la Promise es rechazada, se lanza una excepción con dicho el valor.

+Si la `Promise` es rechazada, se lanza una excepción con dicho el valor. -
async function f3() {
+```js
+async function f3() {
   try {
     var z = await Promise.reject(30);
   } catch(e) {
     console.log(e); // 30
   }
 }
-f3();
- -

Especificaciones

- - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-async-function-definitions', 'async functions')}}{{Spec2('ESDraft')}}Initial definition in ES2017.
- -

Compatibilidad con navegadores

- -
- - -

{{Compat("javascript.operators.await")}}

-
- -

Véase también

- -
    -
  • {{jsxref("Statements/async_function", "async function")}}
  • -
  • {{jsxref("Operators/async_function", "async function expression")}}
  • -
  • {{jsxref("AsyncFunction")}} object
  • -
+f3(); +``` + +## Especificaciones + +| Specification | Status | Comment | +| -------------------------------------------------------------------------------------------------------- | ---------------------------- | ----------------------------- | +| {{SpecName('ESDraft', '#sec-async-function-definitions', 'async functions')}} | {{Spec2('ESDraft')}} | Initial definition in ES2017. | + +## Compatibilidad con navegadores + +{{Compat("javascript.operators.await")}} + +## Véase también + +- {{jsxref("Statements/async_function", "async function")}} +- {{jsxref("Operators/async_function", "async function expression")}} +- {{jsxref("AsyncFunction")}} object diff --git a/files/es/web/javascript/reference/operators/class/index.md b/files/es/web/javascript/reference/operators/class/index.md index 50630b50ed743c..4f5671f40eab4e 100644 --- a/files/es/web/javascript/reference/operators/class/index.md +++ b/files/es/web/javascript/reference/operators/class/index.md @@ -11,23 +11,24 @@ tags: translation_of: Web/JavaScript/Reference/Operators/class original_slug: Web/JavaScript/Referencia/Operadores/class --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

La expresión class es una forma de definir una clase en ECMAScript 2015 (ES6). Similar a las funciones, las expresiones de clase pueden ser nombradas o no. Si se nombran, el nombre de la clase es local sólo en el cuerpo de la clase. Las clases en JavaScript utilizan herencia basada en prototipos.

+La **expresión class** es una forma de definir una clase en ECMAScript 2015 (ES6). Similar a las [funciones](/es/docs/Web/JavaScript/Referencia/Operadores/function), las expresiones de clase pueden ser nombradas o no. Si se nombran, el nombre de la clase es local sólo en el cuerpo de la clase. Las clases en JavaScript utilizan herencia basada en prototipos. -

Sintaxis

+## Sintaxis -
var MyClass = class [className] [extends] {
-  // class body
-};
+ var MyClass = class [className] [extends] { + // class body + }; -

Descripción

+## Descripción -

Una expresión de clase tiene una sintaxis similar a la declaración de una clase. Sin embargo, con las expresiones de clases, está permitido omitir el nombre de la clase ("identificador de enlace"), cosa que no se puede hacer con las declaraciones de clases. Además, las expresiones de clases permiten redefinir/redeclarar clases y no lanzar ningún tipo de error como las declaraciones de clases. La propiedad constructor es opcional. Y el typeof de las clases generadas con esta palabra clave siempre será "function".

+Una expresión de clase tiene una sintaxis similar a la [declaración de una clase](/es/docs/Web/JavaScript/Referencia/Sentencias/class). Sin embargo, con las expresiones de clases, está permitido omitir el nombre de la clase ("identificador de enlace"), cosa que no se puede hacer con las declaraciones de clases. Además, las expresiones de clases permiten redefinir/redeclarar clases y **no lanzar** ningún tipo de error como las [declaraciones de clases](/es/docs/Web/JavaScript/Referencia/Sentencias/class). La propiedad `constructor` es opcional. Y el _typeof_ de las clases generadas con esta palabra clave siempre será "function". -

Tal y como en la declaración de clases, el cuerpo de la expresión de clase se ejecuta en modo estricto.

+Tal y como en la declaración de clases, el cuerpo de la expresión de clase se ejecuta en [modo estricto](/es/docs/Web/JavaScript/Referencia/Modo_estricto). -
'use strict';
+```js
+'use strict';
 var Foo = class {}; // la propiedad constructor es opcional
 var Foo = class {}; // Se permite repetir declaraciones
 
@@ -37,15 +38,16 @@ typeof class {}; // devuelve "function"
 Foo instanceof Object; // true
 Foo instanceof Function; // true
 class Foo {}; // Lanza TypeError, no permite volver a declararla
-
+``` -

Ejemplo

+## Ejemplo -

Una clase sencilla

+### Una clase sencilla -

Esta es una sencilla expresión de clase anónima a la que se puede hacer referencia utilizando la variable "Foo".

+Esta es una sencilla expresión de clase anónima a la que se puede hacer referencia utilizando la variable "Foo". -
var Foo = class {
+```js
+var Foo = class {
   constructor() {}
   bar() {
     return "Hello World!";
@@ -55,13 +57,14 @@ class Foo {}; // Lanza TypeError, no permite volver a declararla
 var instance = new Foo();
 instance.bar(); // "Hello World!"
 Foo.name; // "Foo"
-
+``` -

Expresiones de clase con nombre

+### Expresiones de clase con nombre -

Si se quiere hacer referencia a la clase actual dentro del cuerpo de la clase, se puede crear una expresión de clase con nombre. Este nombre sólo será visible en el mismo contexto de la expresión de clase.

+Si se quiere hacer referencia a la clase actual dentro del cuerpo de la clase, se puede crear una expresión de clase con nombre. Este nombre sólo será visible en el mismo contexto de la expresión de clase. -
var Foo = class NamedFoo {
+```js
+var Foo = class NamedFoo {
   constructor() {}
   whoIsThere() {
     return NamedFoo.name;
@@ -71,38 +74,21 @@ var bar = new Foo();
 bar.whoIsThere(); // "NamedFoo"
 NamedFoo.name; // ReferenceError: NamedFoo no está definido
 Foo.name; // "NamedFoo"
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-class-definitions', 'Class definitions')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-class-definitions', 'Class definitions')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en navegadores {{Compat("javascript.operators.class")}} -

Ver también

+## Ver también - +- [expresión `function`](/es/docs/Web/JavaScript/Referencia/Operadores/function) +- [`declaración class`](/es/docs/Web/JavaScript/Referencia/Sentencias/class) +- [Clases](/es/docs/Web/JavaScript/Referencia/Classes) diff --git a/files/es/web/javascript/reference/operators/decrement/index.md b/files/es/web/javascript/reference/operators/decrement/index.md index edf55c561276fe..af0f4f7cce0d0c 100644 --- a/files/es/web/javascript/reference/operators/decrement/index.md +++ b/files/es/web/javascript/reference/operators/decrement/index.md @@ -9,76 +9,62 @@ tags: translation_of: Web/JavaScript/Reference/Operators/Decrement original_slug: Web/JavaScript/Referencia/Operadores/Decremento --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

El operador de decremento (--) disminuye (o resta de a uno) su operando y retorna un valor.

+El operador de decremento (--) disminuye (o resta de a uno) su operando y retorna un valor. -
{{EmbedInteractiveExample("pages/js/expressions-decrement.html")}}
+{{EmbedInteractiveExample("pages/js/expressions-decrement.html")}} +## Sintaxis + Operadores: x-- o --x +## Descripción +Si usamos la forma de sufijo, operador después del operando (por ejemplo, `x--`), el operador de disminución disminuye y devuelve el valor antes de disminuir. -

Sintaxis

+Si se usamos la forma de prefijo, operador antes del operando (por ejemplo, `--x`), el operador de disminución disminuye y devuelve el valor después de disminuir. -
Operadores: x-- o --x
-
+## Ejemplos -

Descripción

+### Usando Sufijo -

Si usamos la forma de sufijo, operador después del operando (por ejemplo, x--), el operador de disminución disminuye y devuelve el valor antes de disminuir.

- -

Si se usamos la forma de prefijo, operador antes del operando (por ejemplo, --x), el operador de disminución disminuye y devuelve el valor después de disminuir.

- -

Ejemplos

- -

Usando Sufijo

- -
let x = 3;
+```js
+let x = 3;
 y = x--;
 
 // y = 3
 // x = 2
-
+``` -

Usando Prefijo

+### Usando Prefijo -
let a = 2;
+```js
+let a = 2;
 b = --a;
 
 // a = 1
 // b = 1
-
- -

Especificaciones

- - - - - - - - - - -
Especificaciones
{{SpecName('ESDraft', '#sec-postfix-decrement-operator', 'Decrement operator')}}
+``` -

Compatibilidad con navegadores

+## Especificaciones +| Especificaciones | +| ------------------------------------------------------------------------------------------------------------ | +| {{SpecName('ESDraft', '#sec-postfix-decrement-operator', 'Decrement operator')}} | +## Compatibilidad con navegadores -

{{Compat("javascript.operators.decrement")}}

+{{Compat("javascript.operators.decrement")}} -

Ver también

+## Ver también - +- [Addition operator](/es/docs/Web/JavaScript/Reference/Operators/Addition) +- [Subtraction operator](/es/docs/Web/JavaScript/Reference/Operators/Subtraction) +- [Division operator](/es/docs/Web/JavaScript/Reference/Operators/Division) +- [Multiplication operator](/es/docs/Web/JavaScript/Reference/Operators/Multiplication) +- [Remainder operator](/es/docs/Web/JavaScript/Reference/Operators/Remainder) +- [Exponentiation operator](/es/docs/Web/JavaScript/Reference/Operators/Exponentiation) +- [Increment operator](/es/docs/Web/JavaScript/Reference/Operators/Increment) +- [Unary negation operator](/es/docs/Web/JavaScript/Reference/Operators/Unary_negation) +- [Unary plus operator](/es/docs/Web/JavaScript/Reference/Operators/Unary_plus) diff --git a/files/es/web/javascript/reference/operators/division/index.md b/files/es/web/javascript/reference/operators/division/index.md index 40a21802147d17..6548043f410fda 100644 --- a/files/es/web/javascript/reference/operators/division/index.md +++ b/files/es/web/javascript/reference/operators/division/index.md @@ -10,69 +10,56 @@ tags: translation_of: Web/JavaScript/Reference/Operators/Division original_slug: Web/JavaScript/Referencia/Operadores/Division --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

El operador de división (/) produce el cociente de sus operandos donde el operando izquierdo es el dividendo y el operando derecho es el divisor.

+El operador de división (`/`) produce el cociente de sus operandos donde el operando izquierdo es el dividendo y el operando derecho es el divisor. -
{{EmbedInteractiveExample("pages/js/expressions-division.html")}}
+{{EmbedInteractiveExample("pages/js/expressions-division.html")}} +## Sintaxis + Operador: x / y +## Ejemplos +### Division basica -

Sintaxis

- -
Operador: x / y
-
- -

Ejemplos

- -

Division basica

- -
1 / 2              // 0.5
+```js
+1 / 2              // 0.5
 
 Math.floor(3 / 2) // 1
 
 1.0 / 2.0         // 0.5
-
+``` -

Division por cero

+### Division por cero -
2.0 / 0     // Retorna Infinity
+```js
+2.0 / 0     // Retorna Infinity
 
 2.0 / 0.0   // Retorna Infinity, Dado que 0.0 === 0
 
-2.0 / -0.0  // Retorna -Infinity
- -

Especificaciones

- - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-multiplicative-operators', 'Division operator')}}
+2.0 / -0.0 // Retorna -Infinity +``` -

Compatibilidad con Navegadores

+## Especificaciones +| Specification | +| -------------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-multiplicative-operators', 'Division operator')}} | +## Compatibilidad con Navegadores -

{{Compat("javascript.operators.division")}}

+{{Compat("javascript.operators.division")}} -

Ver también

+## Ver también - +- [Addition operator](/es/docs/Web/JavaScript/Reference/Operators/Addition) +- [Subtraction operator](/es/docs/Web/JavaScript/Reference/Operators/Subtraction) +- [Multiplication operator](/es/docs/Web/JavaScript/Reference/Operators/Multiplication) +- [Remainder operator](/es/docs/Web/JavaScript/Reference/Operators/Remainder) +- [Exponentiation operator](/es/docs/Web/JavaScript/Reference/Operators/Exponentiation) +- [Increment operator](/es/docs/Web/JavaScript/Reference/Operators/Increment) +- [Decrement operator](/es/docs/Web/JavaScript/Reference/Operators/Decrement) +- [Unary negation operator](/es/docs/Web/JavaScript/Reference/Operators/Unary_negation) +- [Unary plus operator](/es/docs/Web/JavaScript/Reference/Operators/Unary_plus) diff --git a/files/es/web/javascript/reference/operators/function/index.md b/files/es/web/javascript/reference/operators/function/index.md index 912a6f0491bd35..38f56146511ab5 100644 --- a/files/es/web/javascript/reference/operators/function/index.md +++ b/files/es/web/javascript/reference/operators/function/index.md @@ -9,66 +9,63 @@ tags: translation_of: Web/JavaScript/Reference/Operators/function original_slug: Web/JavaScript/Referencia/Operadores/function --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

Resumen

+## Resumen -

El operador function define una función dentro de una expresión.

+El operador `function` define una función dentro de una expresión. -

Sintaxis

+## Sintaxis -
function [name]([param1, param2, ..., paramN]) {
-   statements
-}
-
+ function [name]([param1, param2, ..., paramN]) { + statements + } -

Parámetros

+## Parámetros -
-
name
-
El nombre de la función. Puede ser omitido, en cuyo caso la función es anonymous. El nombre sólo es local para el cuerpo de la función.
-
+- `name` + - : El nombre de la función. Puede ser omitido, en cuyo caso la función es _anonymous_. El nombre sólo es local para el cuerpo de la función. -
-
paramN
-
El nombre de un argumento que será pasado a la función. Una función puede tener hasta 255 argumentos.
-
+ -
-
statements
-
Las declaraciones que conforman el cuerpo de la función.
-
+- `paramN` + - : El nombre de un argumento que será pasado a la función. Una función puede tener hasta 255 argumentos. -

Descripción

+ -

La expresión de una función es muy similar y tiene casi la misma sintaxis que la declaración de una función (véase {{jsxref("Sentencias/function", "function")}} para más detalles). Véase Funciones para ver más información sobre las diferencias entre declaraciones de funciones y expresiones de funciones.

+- `statements` + - : Las declaraciones que conforman el cuerpo de la función. -

Ejemplos

+## Descripción -

El siguiente ejemplo define una función sin nombre y se le asigna a la variable x. La función devuelve como resultado el cuadrado de su argumento:

+La expresión de una función es muy similar y tiene casi la misma sintaxis que la declaración de una función (véase {{jsxref("Sentencias/function", "function")}} para más detalles). Véase [Funciones](/es/docs/Web/JavaScript/Referencia/Funciones) para ver más información sobre las diferencias entre declaraciones de funciones y expresiones de funciones. -
var x = function(y) {
+## Ejemplos
+
+El siguiente ejemplo define una función sin nombre y se le asigna a la variable x. La función devuelve como resultado el cuadrado de su argumento:
+
+```js
+var x = function(y) {
    return y * y;
 };
-
+``` -

Expresión de función nombrada

+### Expresión de función nombrada -

Si quiere referirse a la función actual dentro del cuerpo de la función, debe crear una expresión de función nombrada. Luego, este nombre será local solo para el cuerpo de la función (alcance). Esto también evita usar la propiedad no estándar {{jsxref("Funciones/arguments/callee", "arguments.callee")}}.

+Si quiere referirse a la función actual dentro del cuerpo de la función, debe crear una expresión de función nombrada. Luego, este nombre será local solo para el cuerpo de la función (alcance). Esto también evita usar la propiedad no estándar {{jsxref("Funciones/arguments/callee", "arguments.callee")}}. -
var math = {
+```js
+var math = {
   'factorial': function factorial(n) {
-    if (n <= 1)
+    if (n <= 1)
       return 1;
     return n * factorial(n - 1);
   }
 };
-
+``` -

Consulte también

+## Consulte también -
    -
  • Funciones
  • -
  • {{jsxref("Function")}}
  • -
  • Sentencias {{jsxref("Sentencias/function", "function")}}
  • -
+- [Funciones](/es/docs/Web/JavaScript/Referencia/Funciones) +- {{jsxref("Function")}} +- Sentencias {{jsxref("Sentencias/function", "function")}} diff --git a/files/es/web/javascript/reference/operators/grouping/index.md b/files/es/web/javascript/reference/operators/grouping/index.md index 13ec919e0c4f17..86aab464d37be7 100644 --- a/files/es/web/javascript/reference/operators/grouping/index.md +++ b/files/es/web/javascript/reference/operators/grouping/index.md @@ -8,23 +8,24 @@ tags: translation_of: Web/JavaScript/Reference/Operators/Grouping original_slug: Web/JavaScript/Referencia/Operadores/Grouping --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

El operador de agrupación ( ) controla la precedencia de las expresiones a evaluar.

+El operador de agrupación `( )` controla la precedencia de las expresiones a evaluar. -

Sintaxis

+## Sintaxis -
 ( )
+ ( ) -

Descripción

+## Descripción -

El operador de agrupación consiste en un par de paréntesis alrededor de la expresión (o sub-expresión) que sobrescribe el comportamiento por defecto de la precedencia de operadores, lo que causa que expresiones con menor precedencia puedan ser evaluadas antes que expresiones con una mayor precedencia.

+El operador de agrupación consiste en un par de paréntesis alrededor de la expresión (o sub-expresión) que sobrescribe el comportamiento por defecto de la [precedencia de operadores](/es/docs/Web/JavaScript/Reference/Operators/Operator_Precedence), lo que causa que expresiones con menor precedencia puedan ser evaluadas antes que expresiones con una mayor precedencia. -

Ejemplos

+## Ejemplos -

Sobrescribir la precedencia de operadores aritméticos por defecto para que se evalúe primero la adición y luego la multiplicación.

+Sobrescribir la precedencia de operadores aritméticos por defecto para que se evalúe primero la adición y luego la multiplicación. -
var a = 1;
+```js
+var a = 1;
 var b = 2;
 var c = 3;
 
@@ -39,43 +40,22 @@ a + (b * c)   // 7
 
 // que es equivalente a:
 a * c + b * c // 9
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
ECMAScript 1st Edition.EstándarDefinición inicial. Implementado en JavaScript 1.0
{{SpecName('ES5.1', '#sec-11.1.6', 'The Grouping Operator')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-grouping-operator', 'The Grouping Operator')}}{{Spec2('ES6')}}
- -

Compatibilidad en navegadores

+``` + +## Especificaciones + +| Especificación | Estatus | Comentario | +| -------------------------------------------------------------------------------------------- | ------------------------ | -------------------------------------------------- | +| ECMAScript 1st Edition. | Estándar | Definición inicial. Implementado en JavaScript 1.0 | +| {{SpecName('ES5.1', '#sec-11.1.6', 'The Grouping Operator')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-grouping-operator', 'The Grouping Operator')}} | {{Spec2('ES6')}} | | + +## Compatibilidad en navegadores {{Compat("javascript.operators.grouping")}} -

Temas relacionados

+## Temas relacionados - +- [Precedencia de operadores](/es/docs/Web/JavaScript/Reference/Operators/Operator_Precedence) +- {{jsxref("Operators/delete", "delete")}} +- {{jsxref("Operators/typeof", "typeof")}} diff --git a/files/es/web/javascript/reference/operators/import.meta/index.md b/files/es/web/javascript/reference/operators/import.meta/index.md index e25d2f0ab7eb06..f6a01619f09bac 100644 --- a/files/es/web/javascript/reference/operators/import.meta/index.md +++ b/files/es/web/javascript/reference/operators/import.meta/index.md @@ -4,85 +4,81 @@ slug: Web/JavaScript/Reference/Operators/import.meta translation_of: Web/JavaScript/Reference/Statements/import.meta original_slug: Web/JavaScript/Reference/Statements/import.meta --- -
{{JSSidebar("Statements")}}
+{{JSSidebar("Statements")}} -

El objeto import.meta expone el contenido especifico de la metadata al módulo JavaScript. Este contiene informacion sobre el módulo, como por ejemplo, la URL del mismo.

+El objeto** `import.meta`** expone el contenido especifico de la metadata al módulo JavaScript. Este contiene informacion sobre el módulo, como por ejemplo, la URL del mismo. -

Syntax

+## Syntax -
import.meta
+ import.meta -

Descripción

+## Descripción -

La sintasis consiste de la palabra clave {{JSxRef("Statements/import","import")}},un punto, y un identificador meta. Normalmente, la parte a la izquierda del punto es el objeto sobre el cual la accion es realizada, pero aqui import no es realmente un objeto.

+La sintasis consiste de la palabra clave {{JSxRef("Statements/import","import")}},un punto, y un identificador `meta`. Normalmente, la parte a la izquierda del punto es el objeto sobre el cual la accion es realizada, pero aqui `import` no es realmente un objeto. -

El objeto import.meta es creado por la implementacion ECMAScript , con un prototipo {{JSxRef("null")}} . El objeto es extensible y sus propiedades son grabables, editables y enumerables.

+El objeto `import.meta` es creado por la implementacion ECMAScript , con un prototipo {{JSxRef("null")}} . El objeto es extensible y sus propiedades son grabables, editables y enumerables. -

Ejemplos

+## Ejemplos -

Usando import.meta

+### Usando import.meta -

Dado un módulo my-module.js

+Dado un módulo `my-module.js` -
<script type="module" src="my-module.js"></script>
-
+```html + +``` -

puedes acceder a la meta información sobre el módulo usando el objeto import.meta.

+puedes acceder a la meta información sobre el módulo usando el objeto `import.meta`. -
console.log(import.meta); // { url: "file:///home/user/my-module.js" }
+```js +console.log(import.meta); // { url: "file:///home/user/my-module.js" } +``` -

Este retorna un objeto con una propiedad url indicando la URL base del módulo.Esta será la URL de la que el script fue obtenido, por scripts externos, o la URL base del documento que contiene el documento, por scripts inline.

+Este retorna un objeto con una propiedad `url` indicando la URL base del módulo.Esta será la URL de la que el script fue obtenido, por scripts externos, o la URL base del documento que contiene el documento, por scripts inline. -

Nota que este incluirá parametros de la consulta y/o el hash (ej: seguido del ? or #).

+Nota que este incluirá parametros de la consulta y/o el hash (ej: seguido del `?` or `#`). -

Por ejemplo, con el siguiente HTML:

+Por ejemplo, con el siguiente HTML: -
<script type="module">
+```html
+
+```
 
-

..El siguiente archivo JavaScript registrará el parámetro someURLInfo:

+..El siguiente archivo JavaScript registrará el parámetro `someURLInfo`: -
// index.mjs
-new URL(import.meta.url).searchParams.get('someURLInfo'); // 5
+```js +// index.mjs +new URL(import.meta.url).searchParams.get('someURLInfo'); // 5 +``` -

Lo mismo aplica cuando un archivo importa otro:

+Lo mismo aplica cuando un archivo importa otro: -
// index.mjs
+```js
+// index.mjs
 import './index2.mjs?someURLInfo=5';
 
 // index2.mjs
-new URL(import.meta.url).searchParams.get('someURLInfo'); // 5
+new URL(import.meta.url).searchParams.get('someURLInfo'); // 5 +``` -

Nota que mientras Node.js pasa en la consulta los parámetros (o el hash ) como en el último ejemplo, a partir de Node 14.1.0, una URL con parametros en la consulta fallará cuando se carguen en el formato node --experimental-modules index.mjs?someURLInfo=5 (es tratado como un archivo en lugar de una URL en este contexto).

+Nota que mientras Node.js pasa en la consulta los parámetros (o el hash ) como en el último ejemplo, a partir de Node 14.1.0, una URL con parametros en la consulta fallará cuando se carguen en el formato `node --experimental-modules index.mjs?someURLInfo=5` (es tratado como un archivo en lugar de una URL en este contexto). -

Tal argumento específico del archivo podria ser complementario al usado en toda la aplicacion location.href (con consultas strings o hash añadidas despues de la ruta HTML) (o en Node.js, mediante process.argv).

+Tal argumento específico del archivo podria ser complementario al usado en toda la aplicacion `location.href` (con consultas strings o hash añadidas despues de la ruta HTML) (o en Node.js, mediante `process.argv`). -

Especificaciones

+## Especificaciones - - - - - - - - - - - - -
Especificaciones
import.meta proposal
{{SpecName("HTML WHATWG", "webappapis.html#hostgetimportmetaproperties", "import.meta")}}
+| Especificaciones | +| ------------------------------------------------------------------------------------------------------------------------ | +| [`import.meta`](https://tc39.es/proposal-import-meta/#prod-ImportMeta) proposal | +| {{SpecName("HTML WHATWG", "webappapis.html#hostgetimportmetaproperties", "import.meta")}} | -

Browser compatibility

+## Browser compatibility +{{Compat("javascript.statements.import_meta")}} +## Ver también -

{{Compat("javascript.statements.import_meta")}}

- -

Ver también

- -
    -
  • {{JSxRef("Statements/import", "import")}}
  • -
  • {{JSxRef("Statements/export", "export")}}
  • -
+- {{JSxRef("Statements/import", "import")}} +- {{JSxRef("Statements/export", "export")}} diff --git a/files/es/web/javascript/reference/operators/in/index.md b/files/es/web/javascript/reference/operators/in/index.md index 10ecab39e2b813..18714cd24667e7 100644 --- a/files/es/web/javascript/reference/operators/in/index.md +++ b/files/es/web/javascript/reference/operators/in/index.md @@ -8,31 +8,28 @@ tags: translation_of: Web/JavaScript/Reference/Operators/in original_slug: Web/JavaScript/Referencia/Operadores/in --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}}El **operador `in`** devuelve `true` si la propiedad especificada está en el objeto especificado o su prototipo. -
El operador in devuelve true si la propiedad especificada está en el objeto especificado o su prototipo.
+## Sintaxis -

Sintaxis

+ prop in object -
prop in object
+### Parámetros -

Parámetros

+- `prop` + - : Una cadena o expresión númerica que representa el nombre de una propiedad o el índice de un array (lo que no sea un símbolo se forzará a string). -
-
prop
-
Una cadena o expresión númerica que representa el nombre de una propiedad o el índice de un array (lo que no sea un símbolo se forzará a string).
-
+ -
-
object
-
El objeto (o su cadena de prototipo) sobre el que comprobar si contiene la propiedad con el nombre especificado.
-
+- `object` + - : El objeto (o su cadena de prototipo) sobre el que comprobar si contiene la propiedad con el nombre especificado. -

Descripción

+## Descripción -

Los siguientes ejemplos muestran algunos de los usos del operador in.

+Los siguientes ejemplos muestran algunos de los usos del operador `in`. -
// Arrays
+```js
+// Arrays
 var arboles = new Array("secoya", "pino", "cedro", "roble", "arce");
 0 in arboles        // devuelve true
 3 in arboles        // devuelve true
@@ -48,93 +45,71 @@ var arboles = new Array("secoya", "pino", "cedro", "roble", "arce");
 var micoche = {marca: "Honda", modelo: "Accord", año: 1998};
 "marca" in micoche  // devuelve true
 "modelo" in micoche // devuelve true
-
+``` -

Debe especificar un objeto en el lado derecho del operador in. Por ejemplo, puede especificar una cadena creada con el constructor String , pero no puede especificar una cadena literal.

+Debe especificar un objeto en el lado derecho del operador `in`. Por ejemplo, puede especificar una cadena creada con el constructor `String` , pero no puede especificar una cadena literal. -
var color1 = new String("verde");
+```js
+var color1 = new String("verde");
 "length" in color1 // devuelve true
 
 var color2 = "coral";
 "length" in color2 // genera un error (color2 no es un objeto String)
-
+``` -

Usando in con propiedades eliminadas o no definidas

+### Usando `in` con propiedades eliminadas o no definidas -

Si se elimina una propiedad con el operador {{jsxref("Operadores/delete", "delete")}}, el operador in devuelve false para esa propiedad.

+Si se elimina una propiedad con el operador {{jsxref("Operadores/delete", "delete")}}, el operador `in` devuelve `false` para esa propiedad. -
var micoche= {marca: "Honda", modelo: "Accord", año: 1998};
+```js
+var micoche= {marca: "Honda", modelo: "Accord", año: 1998};
 delete micoche.marca;
 "marca" in micoche;  // devuelve false
 
 var arboles = new Array("secoya", "pino", "cedro", "roble", "arce");
 delete arboles[3];
 3 in arboles; // devuelve false
-
+``` -

Si se cambia una propiedad a {{jsxref("Objetos_globales/undefined", "undefined")}} pero no se elimina, el operador in devuelve true para esa propiedad.

+Si se cambia una propiedad a {{jsxref("Objetos_globales/undefined", "undefined")}} pero no se elimina, el operador `in` devuelve true para esa propiedad. -
var micoche = {marca: "Honda", modelo: "Accord", año: 1998};
+```js
+var micoche = {marca: "Honda", modelo: "Accord", año: 1998};
 micoche.marca = undefined;
 "marca" in micoche;  // devuelve true
-
+``` -
var arboles = new Array("secayo", "pino", "cedro", "roble", "arce");
+```js
+var arboles = new Array("secayo", "pino", "cedro", "roble", "arce");
 arboles[3] = undefined;
 3 in arboles; // devuelve true
-
- -

Propiedades heredadas

- -

El operador in devuelve true para propiedades en la cadena del prototipo.

- -
"toString" in {}; // devuelve true
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ESDraft', '#sec-relational-operators', 'Relational Operators')}}{{Spec2('ESDraft')}}
{{SpecName('ES2015', '#sec-relational-operators', 'Relational Operators')}}{{Spec2('ES2015')}}
{{SpecName('ES5.1', '#sec-11.8.7', 'The in Operator')}}{{Spec2('ES5.1')}}
{{SpecName('ES3', '#sec-11.8.7', 'The in Operator')}}{{Spec2('ES3')}}Definición inicial. Implementado en JavaScript 1.4.
- -

Compatibilidad en navegadores

- - - -

{{Compat("javascript.operators.in")}}

- -

Vea también

- - +``` + +### Propiedades heredadas + +El operador `in` devuelve `true` para propiedades en la cadena del prototipo. + +```js +"toString" in {}; // devuelve true +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------------------- | ---------------------------- | --------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-relational-operators', 'Relational Operators')}} | {{Spec2('ESDraft')}} | | +| {{SpecName('ES2015', '#sec-relational-operators', 'Relational Operators')}} | {{Spec2('ES2015')}} | | +| {{SpecName('ES5.1', '#sec-11.8.7', 'The in Operator')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES3', '#sec-11.8.7', 'The in Operator')}} | {{Spec2('ES3')}} | Definición inicial. Implementado en JavaScript 1.4. | + +## Compatibilidad en navegadores + +{{Compat("javascript.operators.in")}} + +## Vea también + +- [`for...in`](/es-ES/docs/Web/JavaScript/Reference/Statements/for...in) +- [`delete`](/es-ES/docs/Web/JavaScript/Reference/Operators/delete) +- {{jsxref("Object.prototype.hasOwnProperty()")}} +- {{jsxref("Reflect.has()")}} +- [Enumerability and ownership of properties](/es/docs/Enumerability_and_ownership_of_properties) diff --git a/files/es/web/javascript/reference/operators/index.md b/files/es/web/javascript/reference/operators/index.md index 35e6f1530f81ea..12bded7454fc12 100644 --- a/files/es/web/javascript/reference/operators/index.md +++ b/files/es/web/javascript/reference/operators/index.md @@ -10,272 +10,229 @@ tags: translation_of: Web/JavaScript/Reference/Operators original_slug: Web/JavaScript/Referencia/Operadores --- -
{{jsSidebar("Operators", "Operadores")}}
- -

Este capítulo documenta todos los operadores, expresiones y palabras clave del lenguaje JavaScript.

- -

Expresiones y operadores por categoría

- -

Para obtener una lista alfabética, consulta la barra lateral de la izquierda.

- -

Expresiones primarias

- -

Palabras clave básicas y expresiones generales en JavaScript.

- -
-
{{jsxref("Operators/this", "this")}}
-
La palabra clave this se refiere a una propiedad especial de un contexto de ejecución.
-
{{jsxref("Operators/function", "function")}}
-
La palabra clave function define una expresión de función.
-
{{jsxref("Operators/class", "class")}}
-
La palabra clave class define una expresión de clase.
-
{{jsxref("Operators/function", "function")}}
-
La palabra clave function* define una expresión de función generadora.
-
{{jsxref("Operators/yield", "yield")}}
-
Pausar y reanudar una función generadora.
-
{{jsxref("Operators/yield*", "yield*")}}
-
Delegar a otra función generadora u objeto iterable.
-
{{jsxref("Operators/async_function", "async function")}}
-
La async function define una expresión de función asíncrona.
-
{{jsxref("Operators/await", "await")}}
-
Pausa y reanuda una función asíncrona y espera la resolución/rechazo de la promesa.
-
{{jsxref("Global_Objects/Array", "[]")}}
-
Iniciador de arreglo/sintaxis literal.
-
{{jsxref("Operators/Object_initializer", "{}")}}
-
Iniciador de objeto/sintaxis literal.
-
{{jsxref("Global_Objects/RegExp", "/ab+c/i")}}
-
Sintaxis de expresión regular literal.
-
{{jsxref("Operators/Grouping", "( )")}}
-
Operador de agrupación.
-
- -

Expresiones del lado izquierdo

- -

Los valores de la izquierda son el destino de una asignación.

- -
-
{{jsxref("Operators/Property_accessors", "Propiedad accessors", "", 1)}}
-
Los operadores miembro proporcionan acceso a una propiedad o método de un objeto
- (object.property y object["property"]).
-
{{jsxref("Operators/new", "new")}}
-
El operador new crea una instancia auxiliado por un constructor.
-
{{jsxref("Operators/new%2Etarget", "new.target")}}
-
En los constructores, new.target se refiere al constructor que fue invocado por {{jsxref("Operators/new", "new")}}.
-
{{jsxref("Operators/super", "super")}}
-
La palabra clave super llama al constructor padre.
-
{{jsxref("Operators/Spread_syntax", "...obj")}}
-
La sintaxis de extensión permite expandir una expresión en lugares donde se esperan múltiples argumentos (para llamadas a funciones) o múltiples elementos (para arreglos literales).
-
- -

Incremento y decremento

- -

Operadores de incremento sufijo/prefijo y decremento sufijo/prefijo.

- -
-
{{jsxref("Operators/Increment", "A++")}}
-
Operador de incremento sufijo.
-
{{jsxref("Operators/Decrement", "A--")}}
-
Operador de incremento sufijo.
-
{{jsxref("Operators/Increment", "++A")}}
-
Operador de incremento prefijo.
-
{{jsxref("Operators/Decrement", "--A")}}
-
Operador de decremento prefijo.
-
- -

Operadores unarios

- -

Una operación unaria es una operación con un solo operando.

- -
-
{{jsxref("Operators/delete", "delete")}}
-
El operador delete elimina una propiedad de un objeto.
-
{{jsxref("Operators/void", "void")}}
-
El operador void descarta el valor de retorno de una expresión.
-
{{jsxref("Operators/typeof", "typeof")}}
-
El operador typeof determina el tipo de un objeto dado.
-
{{jsxref("Operators/Unary_plus", "+")}}
-
El operador unario más convierte su operando al tipo Number.
-
{{jsxref("Operators/Unary_negation", "-")}}
-
El operador unario de negación convierte su operando al tipo Number y luego lo niega.
-
{{jsxref("Operators/Bitwise_NOT", "~")}}
-
Operador NOT bit a bit.
-
{{jsxref("Operators/Logical_NOT", "!")}}
-
Operador NOT lógico.
-
- -

Operadores aritméticos

- -

Los operadores aritméticos toman valores numéricos (ya sean literales o variables) como sus operandos y devuelven un solo valor numérico.

- -
-
{{jsxref("Operators/Addition", "+")}}
-
Operador de adición o suma.
-
{{jsxref("Operators/Subtraction", "-")}}
-
Operador de sustracción o resta.
-
{{jsxref("Operators/Division", "/")}}
-
Operador de división.
-
{{jsxref("Operators/Multiplication", "*")}}
-
Operador de multiplicación.
-
{{jsxref("Operators/Remainder", "%")}}
-
Operador de residuo.
-
{{jsxref("Operators/Exponentiation", "**")}}
-
Operador de exponenciación.
-
- -

Operadores relacionales

- -

Un operador de comparación compara sus operandos y devuelve un valor Boolean basado en si la comparación es verdadera o no.

- -
-
{{jsxref("Operators/in", "in")}}
-
El operador in determina si un objeto tiene una determinada propiedad.
-
{{jsxref("Operators/instanceof", "instanceof")}}
-
El operador instanceof determina si un objeto es una instancia de otro objeto.
-
{{jsxref("Operators/Less_than", "<")}}
-
Operador menor que.
-
{{jsxref("Operators/Greater_than", ">")}}
-
Operador mayor que.
-
{{jsxref("Operators/Less_than_or_equal", "<=")}}
-
Operador menor o igual a.
-
{{jsxref("Operators/Greater_than_or_equal", ">=")}}
-
Operador mayor o igual a.
-
- -
-

Nota: => no es un operador, sino la notación para {{jsxref("Functions/Arrow_functions", "Funciones de flecha")}}.

-
- -

Operadores de igualdad

- -

El resultado de evaluar un operador de igualdad siempre es de tipo Boolean basado en si la comparación es verdadera.

- -
-
{{jsxref("Operators/Equality", "==")}}
-
Operador de igualdad.
-
{{jsxref("Operators/Inequality", "!=")}}
-
Operador de desigualdad.
-
{{jsxref("Operators/Strict_equality", "===")}}
-
Operador de igualdad estricta.
-
{{jsxref("Operators/Strict_inequality", "!==")}}
-
Operador de desigualdad estricta.
-
- -

Operadores de desplazamiento de bits

- -

Operaciones para cambiar todos los bits del operando.

- -
-
{{jsxref("Operators/Left_shift", "<<")}}
-
Operador de desplazamiento bit a bit a la izquierda.
-
{{jsxref("Operators/Right_shift", ">>")}}
-
Operador de desplazamiento bit a bit a la derecha.
-
{{jsxref("Operators/Unsigned_right_shift", ">>>")}}
-
Operador de desplazamiento bit a bit a la derecha sin signo.
-
- -

Operadores binarios bit a bit

- -

Los operadores bit a bit tratan a sus operandos como un conjunto de 32 bits (ceros y unos) y devuelven valores numéricos estándar de JavaScript.

- -
-
{{jsxref("Operators/Bitwise_AND", "&")}}
-
AND bit a bit.
-
{{jsxref("Operators/Bitwise_OR", "|")}}
-
OR bit a bit.
-
{{jsxref("Operators/Bitwise_XOR", "^")}}
-
XOR bit a bit.
-
- -

Operadores lógicos binarios

- -

Los operadores lógicos se utilizan normalmente con valores booleanos (lógicos); cuando lo son, devuelven un valor booleano.

- -
-
{{jsxref("Operators/Logical_AND", "&&")}}
-
AND lógico.
-
{{jsxref("Operators/Logical_OR", "||")}}
-
OR lógico.
-
- -

Operador condicional (ternario)

- -
-
{{jsxref("Operators/Conditional_Operator", "(condition ? ifTrue : ifFalse)")}}
-
-

El operador condicional devuelve uno de dos valores según el valor lógico de la condición.

-
-
- -

Operadores de asignación

- -

Un operador de asignación asigna un valor a su operando izquierdo basándose en el valor de su operando derecho.

- -
-
{{jsxref("Operators/Assignment", "=")}}
-
Operador de asignación.
-
{{jsxref("Operators/Multiplication_assignment", "*=")}}
-
Asignación de multiplicación.
-
{{jsxref("Operators/Division_assignment", "/=")}}
-
Asignación de división.
-
{{jsxref("Operators/Remainder_assignment", "%=")}}
-
Asignación de residuo.
-
{{jsxref("Operators/Addition_assignment", "+=")}}
-
Asignación de suma.
-
{{jsxref("Operators/Subtraction_assignment", "-=")}}
-
Asignación de sustracción
-
{{jsxref("Operators/Left_shift_assignment", "<<=")}}
-
Asignación de desplazamiento a la izquierda.
-
{{jsxref("Operators/Right_shift_assignment", ">>=")}}
-
Asignación de desplazamiento a la derecha.
-
{{jsxref("Operators/Unsigned_right_shift_assignment", ">>>=")}}
-
Asignación de desplazamiento a la derecha sin signo.
-
{{jsxref("Operators/Bitwise_AND_assignment", "&=")}}
-
Asignación de AND bit a bit.
-
{{jsxref("Operators/Bitwise_XOR_assignment", "^=")}}
-
Asignación de XOR bit a bit.
-
{{jsxref("Operators/Bitwise_OR_assignment", "|=")}}
-
Asignación de OR bit a bit.
-
{{jsxref("Operators/Logical_AND_assignment", "&&=")}}
-
Asignación de AND lógico.
-
{{jsxref("Operators/Logical_OR_assignment", "||=")}}
-
Asignación de OR lógico.
-
{{jsxref("Operators/Logical_nullish_assignment", "??=")}}
-
Asignación de anulación lógica.
-
{{jsxref("Operators/Destructuring_assignment", "[a, b] = [1, 2]")}}
- {{jsxref("Operators/Destructuring_assignment", "{a, b} = {a:1, b:2}")}}
-
-

La desestructuración te permite asignar las propiedades de un arreglo u objeto a variables utilizando una sintaxis que se parece a los arreglos u objetos literales.

-
-
- -

Operador coma

- -
-
{{jsxref("Operators/Comma_Operator", ",")}}
-
El operador coma permite evaluar múltiples expresiones en una sola declaración y devuelve el resultado de la última expresión.
-
- -

Especificaciones

- - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-ecmascript-language-expressions', 'ECMAScript Language: Expressions')}}
- -

Compatibilidad del navegador

- - - -

{{Compat("javascript.operators")}}

- -

Ve también

- -
    -
  • {{jsxref("Operators/Operator_Precedence", "Operator de precedencia")}}
  • -
+{{jsSidebar("Operators", "Operadores")}} + +Este capítulo documenta todos los operadores, expresiones y palabras clave del lenguaje JavaScript. + +## Expresiones y operadores por categoría + +Para obtener una lista alfabética, consulta la barra lateral de la izquierda. + +### Expresiones primarias + +Palabras clave básicas y expresiones generales en JavaScript. + +- {{jsxref("Operators/this", "this")}} + - : La palabra clave `this` se refiere a una propiedad especial de un contexto de ejecución. +- {{jsxref("Operators/function", "function")}} + - : La palabra clave `function` define una expresión de función. +- {{jsxref("Operators/class", "class")}} + - : La palabra clave `class` define una expresión de clase. +- {{jsxref("Operators/function", "function")}} + - : La palabra clave `function*` define una expresión de función generadora. +- {{jsxref("Operators/yield", "yield")}} + - : Pausar y reanudar una función generadora. +- {{jsxref("Operators/yield*", "yield*")}} + - : Delegar a otra función generadora u objeto iterable. +- {{jsxref("Operators/async_function", "async function")}} + - : La `async function` define una expresión de función asíncrona. +- {{jsxref("Operators/await", "await")}} + - : Pausa y reanuda una función asíncrona y espera la resolución/rechazo de la promesa. +- {{jsxref("Global_Objects/Array", "[]")}} + - : Iniciador de arreglo/sintaxis literal. +- {{jsxref("Operators/Object_initializer", "{}")}} + - : Iniciador de objeto/sintaxis literal. +- {{jsxref("Global_Objects/RegExp", "/ab+c/i")}} + - : Sintaxis de expresión regular literal. +- {{jsxref("Operators/Grouping", "( )")}} + - : Operador de agrupación. + +### Expresiones del lado izquierdo + +Los valores de la izquierda son el destino de una asignación. + +- {{jsxref("Operators/Property_accessors", "Propiedad accessors", "", 1)}} + - : Los operadores miembro proporcionan acceso a una propiedad o método de un objeto + (`object.property` y `object["property"]`). +- {{jsxref("Operators/new", "new")}} + - : El operador `new` crea una instancia auxiliado por un constructor. +- {{jsxref("Operators/new%2Etarget", "new.target")}} + - : En los constructores, `new.target` se refiere al constructor que fue invocado por {{jsxref("Operators/new", "new")}}. +- {{jsxref("Operators/super", "super")}} + - : La palabra clave `super` llama al constructor padre. +- {{jsxref("Operators/Spread_syntax", "...obj")}} + - : La sintaxis de extensión permite expandir una expresión en lugares donde se esperan múltiples argumentos (para llamadas a funciones) o múltiples elementos (para arreglos literales). + +### Incremento y decremento + +Operadores de incremento sufijo/prefijo y decremento sufijo/prefijo. + +- {{jsxref("Operators/Increment", "A++")}} + - : Operador de incremento sufijo. +- {{jsxref("Operators/Decrement", "A--")}} + - : Operador de incremento sufijo. +- {{jsxref("Operators/Increment", "++A")}} + - : Operador de incremento prefijo. +- {{jsxref("Operators/Decrement", "--A")}} + - : Operador de decremento prefijo. + +### Operadores unarios + +Una operación unaria es una operación con un solo operando. + +- {{jsxref("Operators/delete", "delete")}} + - : El operador `delete` elimina una propiedad de un objeto. +- {{jsxref("Operators/void", "void")}} + - : El operador `void` descarta el valor de retorno de una expresión. +- {{jsxref("Operators/typeof", "typeof")}} + - : El operador `typeof` determina el tipo de un objeto dado. +- {{jsxref("Operators/Unary_plus", "+")}} + - : El operador unario `más` convierte su operando al tipo `Number`. +- {{jsxref("Operators/Unary_negation", "-")}} + - : El operador unario de negación convierte su operando al tipo `Number` y luego lo niega. +- {{jsxref("Operators/Bitwise_NOT", "~")}} + - : Operador `NOT` bit a bit. +- {{jsxref("Operators/Logical_NOT", "!")}} + - : Operador `NOT` lógico. + +### Operadores aritméticos + +Los operadores aritméticos toman valores numéricos (ya sean literales o variables) como sus operandos y devuelven un solo valor numérico. + +- {{jsxref("Operators/Addition", "+")}} + - : Operador de adición o suma. +- {{jsxref("Operators/Subtraction", "-")}} + - : Operador de sustracción o resta. +- {{jsxref("Operators/Division", "/")}} + - : Operador de división. +- {{jsxref("Operators/Multiplication", "*")}} + - : Operador de multiplicación. +- {{jsxref("Operators/Remainder", "%")}} + - : Operador de residuo. +- {{jsxref("Operators/Exponentiation", "**")}} + - : Operador de exponenciación. + +### Operadores relacionales + +Un operador de comparación compara sus operandos y devuelve un valor `Boolean` basado en si la comparación es verdadera o no. + +- {{jsxref("Operators/in", "in")}} + - : El operador `in` determina si un objeto tiene una determinada propiedad. +- {{jsxref("Operators/instanceof", "instanceof")}} + - : El operador `instanceof` determina si un objeto es una instancia de otro objeto. +- {{jsxref("Operators/Less_than", "<")}} + - : Operador menor que. +- {{jsxref("Operators/Greater_than", ">")}} + - : Operador mayor que. +- {{jsxref("Operators/Less_than_or_equal", "<=")}} + - : Operador menor o igual a. +- {{jsxref("Operators/Greater_than_or_equal", ">=")}} + - : Operador mayor o igual a. + +> **Nota:** **Nota: =>** no es un operador, sino la notación para {{jsxref("Functions/Arrow_functions", "Funciones de flecha")}}. + +### Operadores de igualdad + +El resultado de evaluar un operador de igualdad siempre es de tipo `Boolean` basado en si la comparación es verdadera. + +- {{jsxref("Operators/Equality", "==")}} + - : Operador de igualdad. +- {{jsxref("Operators/Inequality", "!=")}} + - : Operador de desigualdad. +- {{jsxref("Operators/Strict_equality", "===")}} + - : Operador de igualdad estricta. +- {{jsxref("Operators/Strict_inequality", "!==")}} + - : Operador de desigualdad estricta. + +### Operadores de desplazamiento de bits + +Operaciones para cambiar todos los bits del operando. + +- {{jsxref("Operators/Left_shift", "<<")}} + - : Operador de desplazamiento bit a bit a la izquierda. +- {{jsxref("Operators/Right_shift", ">>")}} + - : Operador de desplazamiento bit a bit a la derecha. +- {{jsxref("Operators/Unsigned_right_shift", ">>>")}} + - : Operador de desplazamiento bit a bit a la derecha sin signo. + +### Operadores binarios bit a bit + +Los operadores bit a bit tratan a sus operandos como un conjunto de 32 bits (ceros y unos) y devuelven valores numéricos estándar de JavaScript. + +- {{jsxref("Operators/Bitwise_AND", "&")}} + - : `AND` bit a bit. +- {{jsxref("Operators/Bitwise_OR", "|")}} + - : `OR` bit a bit. +- {{jsxref("Operators/Bitwise_XOR", "^")}} + - : `XOR` bit a bit. + +### Operadores lógicos binarios + +Los operadores lógicos se utilizan normalmente con valores booleanos (lógicos); cuando lo son, devuelven un valor booleano. + +- {{jsxref("Operators/Logical_AND", "&&")}} + - : `AND` lógico. +- {{jsxref("Operators/Logical_OR", "||")}} + - : `OR` lógico. + +### Operador condicional (ternario) + +- {{jsxref("Operators/Conditional_Operator", "(condition ? ifTrue : ifFalse)")}} + - : El operador condicional devuelve uno de dos valores según el valor lógico de la condición. + +### Operadores de asignación + +Un operador de asignación asigna un valor a su operando izquierdo basándose en el valor de su operando derecho. + +- {{jsxref("Operators/Assignment", "=")}} + - : Operador de asignación. +- {{jsxref("Operators/Multiplication_assignment", "*=")}} + - : Asignación de multiplicación. +- {{jsxref("Operators/Division_assignment", "/=")}} + - : Asignación de división. +- {{jsxref("Operators/Remainder_assignment", "%=")}} + - : Asignación de residuo. +- {{jsxref("Operators/Addition_assignment", "+=")}} + - : Asignación de suma. +- {{jsxref("Operators/Subtraction_assignment", "-=")}} + - : Asignación de sustracción +- {{jsxref("Operators/Left_shift_assignment", "<<=")}} + - : Asignación de desplazamiento a la izquierda. +- {{jsxref("Operators/Right_shift_assignment", ">>=")}} + - : Asignación de desplazamiento a la derecha. +- {{jsxref("Operators/Unsigned_right_shift_assignment", ">>>=")}} + - : Asignación de desplazamiento a la derecha sin signo. +- {{jsxref("Operators/Bitwise_AND_assignment", "&=")}} + - : Asignación de `AND` bit a bit. +- {{jsxref("Operators/Bitwise_XOR_assignment", "^=")}} + - : Asignación de `XOR` bit a bit. +- {{jsxref("Operators/Bitwise_OR_assignment", "|=")}} + - : Asignación de `OR` bit a bit. +- {{jsxref("Operators/Logical_AND_assignment", "&&=")}} + - : Asignación de `AND` lógico. +- {{jsxref("Operators/Logical_OR_assignment", "||=")}} + - : Asignación de `OR` lógico. +- {{jsxref("Operators/Logical_nullish_assignment", "??=")}} + - : Asignación de anulación lógica. +- {{jsxref("Operators/Destructuring_assignment", "[a, b] = [1, 2]")}} + {{jsxref("Operators/Destructuring_assignment", "{a, b} = {a:1, b:2}")}} + - : La desestructuración te permite asignar las propiedades de un arreglo u objeto a variables utilizando una sintaxis que se parece a los arreglos u objetos literales. + +### Operador coma + +- {{jsxref("Operators/Comma_Operator", ",")}} + - : El operador `coma` permite evaluar múltiples expresiones en una sola declaración y devuelve el resultado de la última expresión. + +## Especificaciones + +| Especificación | +| ------------------------------------------------------------------------------------------------------------------------------------ | +| {{SpecName('ESDraft', '#sec-ecmascript-language-expressions', 'ECMAScript Language: Expressions')}} | + +## Compatibilidad del navegador + +{{Compat("javascript.operators")}} + +## Ve también + +- {{jsxref("Operators/Operator_Precedence", "Operator de precedencia")}} diff --git a/files/es/web/javascript/reference/operators/instanceof/index.md b/files/es/web/javascript/reference/operators/instanceof/index.md index 3cd59cc0c014d3..21b1fdf8e70307 100644 --- a/files/es/web/javascript/reference/operators/instanceof/index.md +++ b/files/es/web/javascript/reference/operators/instanceof/index.md @@ -8,82 +8,74 @@ tags: translation_of: Web/JavaScript/Reference/Operators/instanceof original_slug: Web/JavaScript/Referencia/Operadores/instanceof --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

Resumen

+## Resumen -

El operador instanceof verifica si un objeto en su cadena de prototipos contiene la propiedad prototype de un constructor.

+El operador **`instanceof`** verifica si un objeto en su cadena de prototipos contiene la propiedad `prototype` de un constructor. -

Sintaxis

+## Sintaxis -
objeto instanceof constructor
+ objeto instanceof constructor -

Parámetros

+### Parámetros -
-
objeto
-
Objeto a verificar.
-
+- `objeto` + - : Objeto a verificar. -
-
constructor
-
Función contra la que se hará la verificación.
-
+ -

Descripción

+- `constructor` + - : Función contra la que se hará la verificación. -

Utilice instanceof cuando necesite confirmar el tipo de un objeto en tiempo de ejecución. Por ejemplo, cuando controle excepciones, puede recurrir a diferentes códigos de manipulación de excepciones dependiendo del tipo de excepción tomada.

+## Descripción -

Debe especificar un objeto en el lado derecho del operador instanceof. Por ejemplo, puede especificar una cadena creada con el constructor String, pero no puede especificar un literal de cadena.

+Utilice `instanceof` cuando necesite confirmar el tipo de un objeto en tiempo de ejecución. Por ejemplo, cuando controle excepciones, puede recurrir a diferentes códigos de manipulación de excepciones dependiendo del tipo de excepción tomada. -
color1=new String("verde")
-color1 instanceof String // devuelve verdadero (true)
-color2="coral"
-color2 instanceof String // devuelve falso (color2 no es un objeto String)
-
+Debe especificar un objeto en el lado derecho del operador `instanceof`. Por ejemplo, puede especificar una cadena creada con el constructor `String`, pero no puede especificar un literal de cadena. -

Ejemplos

+ color1=new String("verde") + color1 instanceof String // devuelve verdadero (true) + color2="coral" + color2 instanceof String // devuelve falso (color2 no es un objeto String) -

También vea los ejemplos de {{jsxref("Sentencias/throw", "throw")}}.

+### Ejemplos -

Ejemplo: Determinando si elDia es un objeto Date

+También vea los ejemplos de {{jsxref("Sentencias/throw", "throw")}}. -

El siguiente código utiliza instanceof para determinar si elDia es un objeto Date. Debido a que elDia es un objeto Date, las instrucciones de la sentencia if se ejecutan.

+#### Ejemplo: Determinando si `elDia` es un objeto `Date` -
elDia = new Date(1995, 12, 17)
-if (elDia instanceof Date) {
-   // instrucciones a ejecutar
-}
-
+El siguiente código utiliza `instanceof` para determinar si `elDia` es un objeto `Date`. Debido a que `elDia` es un objeto `Date`, las instrucciones de la sentencia if se ejecutan. -

Ejemplo: Demostrando que String y Date son del tipo Object

+ elDia = new Date(1995, 12, 17) + if (elDia instanceof Date) { + // instrucciones a ejecutar + } -

El siguiente código utiliza instanceof para demostrar que los objetos String y Date son también del tipo Object (éstos se derivan de Object).

+#### Ejemplo: Demostrando que `String` y `Date` son del tipo `Object` -
miCadena = new String()
-miFecha = new Date()
+El siguiente código utiliza `instanceof` para demostrar que los objetos `String` y `Date` son también del tipo `Object` (éstos se derivan de `Object`).
 
-miCadena instanceof String // devuelve true
-miCadena instanceof Object // devuelve true
-miCadena instanceof Date   // devuelve false
+    miCadena = new String()
+    miFecha = new Date()
 
-miFecha instanceof Date     // devuelve true
-miFecha instanceof Object   // devuelve true
-miFecha instanceof String   // devuelve false
-
+ miCadena instanceof String // devuelve true + miCadena instanceof Object // devuelve true + miCadena instanceof Date // devuelve false -

Ejemplo: Demostrando que miCoche es del tipo Coche y del tipo Object

+ miFecha instanceof Date // devuelve true + miFecha instanceof Object // devuelve true + miFecha instanceof String // devuelve false -

El siguiente código crea un objeto del tipo Coche y una instancia de ese tipo de objeto, miCoche. El operador instanceof demuestra que el objeto miCoche es del tipo Coche y del tipo Object.

+#### Ejemplo: Demostrando que `miCoche` es del tipo `Coche` y del tipo `Object` -
function Coche(fabricante, modelo, ejercicio) {
-   this.fabricante = fabricante
-   this.modelo = modelo
-   this.ejercicio= ejercicio
-}
-miCoche = new Coche("Honda", "Accord", 1998)
-a = miCoche instanceof Coche // devuelve verdadero (true)
-b = miCoche instanceof Object // devuelve verdadero (true)
-
+El siguiente código crea un objeto del tipo `Coche` y una instancia de ese tipo de objeto, `miCoche`. El operador `instanceof` demuestra que el objeto `miCoche` es del tipo `Coche` y del tipo `Object`. -
+ function Coche(fabricante, modelo, ejercicio) { + this.fabricante = fabricante + this.modelo = modelo + this.ejercicio= ejercicio + } + miCoche = new Coche("Honda", "Accord", 1998) + a = miCoche instanceof Coche // devuelve verdadero (true) + b = miCoche instanceof Object // devuelve verdadero (true) diff --git a/files/es/web/javascript/reference/operators/new.target/index.md b/files/es/web/javascript/reference/operators/new.target/index.md index 7786be3753c557..b1ad7187dd3e5e 100644 --- a/files/es/web/javascript/reference/operators/new.target/index.md +++ b/files/es/web/javascript/reference/operators/new.target/index.md @@ -9,40 +9,42 @@ tags: translation_of: Web/JavaScript/Reference/Operators/new.target original_slug: Web/JavaScript/Referencia/Operadores/new.target --- -
{{JSSidebar("Operators")}}
+{{JSSidebar("Operators")}} -

La propiedad new.target te permite detectar si una función o constructor fue llamado usando el operador new. En constructores y funciones instanciadas con el operador new, new.target devuelve una referencia al constructor o función. En llamadas a funciones normales, new.target es {{jsxref("undefined")}}.

+La propiedad** `new.target`** te permite detectar si una función o constructor fue llamado usando el operador [new](/es/docs/Web/JavaScript/Referencia/Operadores/new). En constructores y funciones instanciadas con el operador [new](/es/docs/Web/JavaScript/Referencia/Operadores/new), `new.target` devuelve una referencia al constructor o función. En llamadas a funciones normales, `new.target` es {{jsxref("undefined")}}. -

Sintaxis

+## Sintaxis -
new.target
+ new.target -

Descripción

+## Descripción -

La sintaxis new.target consiste en el keyword "new", un punto, y el nombre de propiedad "target". Normalmente "new." sirve como contexto para el acceso a la propiedad, pero aquí, "new." no es realmente un objeto. En llamadas a constructores, sin embargo, new.target hace referencia al constructor invocado por new por lo que "new." se convierte en un contexto virtual.

+La sintaxis `new.target` consiste en el keyword `"new`", un punto, y el nombre de propiedad `"target"`. Normalmente "`new."` sirve como contexto para el acceso a la propiedad, pero aquí, `"new."` no es realmente un objeto. En llamadas a constructores, sin embargo, `new.target` hace referencia al constructor invocado por new por lo que "`new.`" se convierte en un contexto virtual. -

La propiedad new.target es una meta propiedad que está disponible para todas las funciones. En funciones flecha, new.target se refiere al new.target de la función que la contiene.

+La propiedad `new.target` es una meta propiedad que está disponible para todas las funciones. En [funciones flecha](/es/docs/Web/JavaScript/Referencia/Funciones/Arrow_functions), `new.target` se refiere al `new.target` de la función que la contiene. -

Ejemplos

+## Ejemplos -

new.target en llamadas a funciones

+### new\.target en llamadas a funciones -

En llamadas a funciones normales (en contraposición a llamadas a constructores), new.target es {{jsxref("undefined")}}. Esto te permite detectar si la función fue llamada con new como constructor.

+En llamadas a funciones normales (en contraposición a llamadas a constructores), `new.target` es {{jsxref("undefined")}}. Esto te permite detectar si la función fue llamada con [new](/es/docs/Web/JavaScript/Referencia/Operadores/new) como constructor. -
function Foo() {
+```js
+function Foo() {
   if (!new.target) throw 'Foo() debe ser llamado con new';
   console.log('Foo instanciado con new');
 }
 
 Foo(); // Lanza "Foo() debe ser llamado con new"
 new Foo(); // escribe en el log "Foo instanciado con new"
-
+``` -

new.target en constructores

+### new\.target en constructores -

En constructores de clase, new.target hace referencia al constructor que fue directamente invocado por new. Este también es el caso si el constructor está en una clase padre y fue delegado desdes el constructor hijo.

+En constructores de clase, `new.target` hace referencia al constructor que fue directamente invocado por `new`. Este también es el caso si el constructor está en una clase padre y fue delegado desdes el constructor hijo. -
class A {
+```js
+class A {
   constructor() {
     console.log(new.target.name);
   }
@@ -52,39 +54,22 @@ class B extends A { constructor() { super(); } }
 
 var a = new A(); // escribe en el log "A"
 var b = new B(); // escribe en el log "B"
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstatusComentario
{{SpecName('ES2015', '#sec-built-in-function-objects', 'Built-in Function Objects')}}{{Spec2('ES2015')}}Initial definition.
{{SpecName('ESDraft', '#sec-built-in-function-objects', 'Built-in Function Objects')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en navegadores

+``` + +## Especificaciones + +| Especificación | Estatus | Comentario | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-built-in-function-objects', 'Built-in Function Objects')}} | {{Spec2('ES2015')}} | Initial definition. | +| {{SpecName('ESDraft', '#sec-built-in-function-objects', 'Built-in Function Objects')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en navegadores {{Compat("javascript.operators.new_target")}} -

Ver también

+## Ver también - +- [Funciones](/es/docs/Web/JavaScript/Guide/Funciones) +- [Clases](/es/docs/Web/JavaScript/Referencia/Classes) +- [`new`](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Operadores/new) +- [`this`](/en-US/docs/Web/JavaScript/Reference/Operators/this) diff --git a/files/es/web/javascript/reference/operators/new/index.md b/files/es/web/javascript/reference/operators/new/index.md index a94cbc794b91bf..57871223534375 100644 --- a/files/es/web/javascript/reference/operators/new/index.md +++ b/files/es/web/javascript/reference/operators/new/index.md @@ -11,61 +11,54 @@ tags: translation_of: Web/JavaScript/Reference/Operators/new original_slug: Web/JavaScript/Referencia/Operadores/new --- -
{{jsSidebar("Operators", "Operadores")}}
+{{jsSidebar("Operators", "Operadores")}} -

El operador new permite a los desarrolladores crear una instancia de un tipo de objeto definido por el usuario o de uno de los tipos de objeto integrados que tiene un función constructora.

+El **operador `new`** permite a los desarrolladores crear una instancia de un tipo de objeto definido por el usuario o de uno de los tipos de objeto integrados que tiene un función constructora. -
{{EmbedInteractiveExample("pages/js/expressions-newoperator.html")}}
+{{EmbedInteractiveExample("pages/js/expressions-newoperator.html")}} -

Sintaxis

+## Sintaxis -
new constructor[([arguments])]
+ new constructor[([arguments])] -

Parámetros

+### Parámetros -
-
constructor
-
Una clase o función que especifica el tipo de instancia del objeto.
-
+- `constructor` + - : Una clase o función que especifica el tipo de instancia del objeto. -
-
arguments
-
Una lista de valores con los que se llamará al constructor.
-
+ -

Descripción

+- `arguments` + - : Una lista de valores con los que se llamará al `constructor`. -

La palabra clave new hace lo siguiente:

+## Descripción -
    -
  1. Crea un objeto JavaScript simple y en blanco;
  2. -
  3. Vincula (establece el constructor de) este objeto a otro objeto;
  4. -
  5. Pasa el objeto recién creado del Paso 1 como el contexto this;
  6. -
  7. Devuelve this si la función no devuelve un objeto.
  8. -
+La palabra clave **`new`** hace lo siguiente: -

La creación de un objeto definido por el usuario requiere dos pasos:

+1. Crea un objeto JavaScript simple y en blanco; +2. Vincula (establece el constructor de) este objeto a otro objeto; +3. Pasa el objeto recién creado del _Paso 1_ como el contexto `this`; +4. Devuelve `this` si la función no devuelve un objeto. -
    -
  1. Defina el tipo de objeto escribiendo una función.
  2. -
  3. Crea una instancia del objeto con new.
  4. -
+La creación de un objeto definido por el usuario requiere dos pasos: -

Para definir un tipo de objeto, crea una función para el tipo de objeto que especifique su nombre y propiedades. Un objeto puede tener una propiedad que en sí misma es otro objeto. Ve los siguientes ejemplos.

+1. Defina el tipo de objeto escribiendo una función. +2. Crea una instancia del objeto con `new`. -

Cuando se ejecuta el código new Foo(...), sucede lo siguiente:

+Para definir un tipo de objeto, crea una función para el tipo de objeto que especifique su nombre y propiedades. Un objeto puede tener una propiedad que en sí misma es otro objeto. Ve los siguientes ejemplos. -
    -
  1. Se crea un nuevo objeto, heredado de Foo.prototype.
  2. -
  3. La función constructora Foo se llama con los argumentos especificados y con {{JSxRef("Operators/this", "this")}} vinculado al objeto recién creado. new Foo es equivalente a new Foo(), es decir, si no se especifica una lista de argumentos, Foo se llama sin argumentos.
  4. -
  5. El objeto (no nulo, false, 3.1415 u otros tipos primitivos) devuelto por la función constructora se convierte en el resultado de toda la expresión new. Si la función constructora no devuelve explícitamente un objeto, en su lugar se utiliza el objeto creado en el paso 1. (Normalmente, los constructores no devuelven un valor, pero pueden elegir hacerlo si quieren redefinir el proceso normal de creación de objetos).
  6. -
+Cuando se ejecuta el código `new Foo(...)`, sucede lo siguiente: -

Siempre puedes agregar una propiedad a un objeto definido previamente. Por ejemplo, la instrucción car1.color = "black" agrega una propiedad color a car1 y le asigna un valor de "black". Sin embargo, esto no afecta a ningún otro objeto. Para agregar la nueva propiedad a todos los objetos del mismo tipo, debes agregar la propiedad a la definición del tipo de objeto Car.

+1. Se crea un nuevo objeto, heredado de `Foo.prototype`. +2. La función constructora `Foo` se llama con los argumentos especificados y con {{JSxRef("Operators/this", "this")}} vinculado al objeto recién creado. `new Foo` es equivalente a `new Foo()`, es decir, si no se especifica una lista de argumentos, `Foo` se llama sin argumentos. +3. El objeto (no nulo, `false`, 3.1415 u otros tipos primitivos) devuelto por la función constructora se convierte en el resultado de toda la expresión `new`. Si la función constructora no devuelve explícitamente un objeto, en su lugar se utiliza el objeto creado en el paso 1. (Normalmente, los constructores no devuelven un valor, pero pueden elegir hacerlo si quieren redefinir el proceso normal de creación de objetos). -

Puedes agregar una propiedad compartida a un tipo de objeto definido previamente mediante la propiedad {{JSxRef("Global_Objects/Function/prototype", "Function.prototype")}}. Esto define una propiedad que comparten todos los objetos creados con esa función, en lugar de solo una instancia del tipo de objeto. El siguiente código agrega una propiedad de color con el valor "color original" a todos los objetos de tipo Car, y luego redefine ese valor con la cadena "black" solo en la instancia car1 del objeto. Para obtener más información, consulta {{JSxRef("Global_Objects/Function/prototype", "prototype")}}.

+Siempre puedes agregar una propiedad a un objeto definido previamente. Por ejemplo, la instrucción `car1.color = "black"` agrega una propiedad `color` a `car1` y le asigna un valor de "`black`". Sin embargo, esto no afecta a ningún otro objeto. Para agregar la nueva propiedad a todos los objetos del mismo tipo, debes agregar la propiedad a la definición del tipo de objeto `Car`. -
function Car() {}
+Puedes agregar una propiedad compartida a un tipo de objeto definido previamente mediante la propiedad {{JSxRef("Global_Objects/Function/prototype", "Function.prototype")}}. Esto define una propiedad que comparten todos los objetos creados con esa función, en lugar de solo una instancia del tipo de objeto. El siguiente código agrega una propiedad de color con el valor `"color original"` a todos los objetos de tipo `Car`, y luego redefine ese valor con la cadena "`black`" solo en la instancia `car1` del objeto. Para obtener más información, consulta {{JSxRef("Global_Objects/Function/prototype", "prototype")}}.
+
+```js
+function Car() {}
 car1 = new Car();
 car2 = new Car();
 
@@ -81,100 +74,93 @@ console.log(Object.getPrototypeOf(car1).color); // 'color original'
 console.log(Object.getPrototypeOf(car2).color); // 'color original'
 console.log(car1.color);   // 'black'
 console.log(car2.color);   // 'color original'
-
+``` -
-

Si no escribiste el operador new, la función constructor se invocará como cualquier función normal, sin crear un objeto. En este caso, el valor de this también es diferente.

-
+> **Nota:** Si no escribiste el operador `new`, **la función `constructor` se invocará como cualquier función normal**, _sin crear un objeto._ En este caso, el valor de `this` también es diferente. -

Ejemplos

+## Ejemplos -

Tipo de objeto e instancia de objeto

+### Tipo de objeto e instancia de objeto -

Supongamos que deseas crear un tipo de objeto para cars. Quieres que este tipo de objeto se llame Car, y quieres que tenga propiedades para marca, modelo y año (make, model y year en inglés respectivamente). Para ello, podrías escribir la siguiente función:

+Supongamos que deseas crear un tipo de objeto para `cars`. Quieres que este tipo de objeto se llame `Car`, y quieres que tenga propiedades para marca, modelo y año (`make`, `model` y `year` en inglés respectivamente). Para ello, podrías escribir la siguiente función: -
function Car(make, model, year) {
+```js
+function Car(make, model, year) {
   this.make = make;
   this.model = model;
   this.year = year;
 }
-
+``` -

Ahora puedes crear un objeto llamado myCar de la siguiente manera:

+Ahora puedes crear un objeto llamado `myCar` de la siguiente manera: -
var myCar = new Car('Eagle', 'Talon TSi', 1993);
-
+```js +var myCar = new Car('Eagle', 'Talon TSi', 1993); +``` -

Esta declaración crea myCar y le asigna los valores especificados para sus propiedades. Entonces el valor de myCar.make es la cadena "Eagle", myCar.year es el entero 1993, y así sucesivamente.

+Esta declaración crea `myCar` y le asigna los valores especificados para sus propiedades. Entonces el valor de `myCar.make` es la cadena "Eagle", `myCar.year` es el entero 1993, y así sucesivamente. -

Puedes crear cualquier número de objetos car mediante llamadas a new. Por ejemplo:

+Puedes crear cualquier número de objetos `car` mediante llamadas a `new`. Por ejemplo: -
var kensCar = new Car('Nissan', '300ZX', 1992);
-
+```js +var kensCar = new Car('Nissan', '300ZX', 1992); +``` -

Propiedad del objeto que en sí mismo es otro objeto

+### Propiedad del objeto que en sí mismo es otro objeto -

Supongamos que defines un objeto llamado Person de la siguiente manera:

+Supongamos que defines un objeto llamado `Person` de la siguiente manera: -
function Person(name, age, sex) {
+```js
+function Person(name, age, sex) {
   this.name = name;
   this.age = age;
   this.sex = sex;
 }
-
+``` -

Y luego creas una instancia de dos nuevos objetos Person de la siguiente manera:

+Y luego creas una instancia de dos nuevos objetos `Person` de la siguiente manera: -
var rand = new Person('Rand McNally', 33, 'M');
+```js
+var rand = new Person('Rand McNally', 33, 'M');
 var ken = new Person('Ken Jones', 39, 'M');
-
+``` -

Luego, puedes reescribir la definición de Car para incluir una propiedad para owner (propietario en español) que tome un objeto Person, de la siguiente manera:

+Luego, puedes reescribir la definición de `Car` para incluir una propiedad para `owner` (propietario en español) que tome un objeto `Person`, de la siguiente manera: -
function Car(make, model, year, owner) {
+```js
+function Car(make, model, year, owner) {
   this.make = make;
   this.model = model;
   this.year = year;
   this.owner = owner;
 }
-
+``` -

Para crear instancias de los nuevos objetos, utiliza lo siguiente:

+Para crear instancias de los nuevos objetos, utiliza lo siguiente: -
var car1 = new Car('Eagle', 'Talon TSi', 1993, rand);
+```js
+var car1 = new Car('Eagle', 'Talon TSi', 1993, rand);
 var car2 = new Car('Nissan', '300ZX', 1992, ken);
-
- -

En lugar de pasar una cadena literal o un valor entero al crear los nuevos objetos, las declaraciones anteriores pasan los objetos rand y ken como parámetros para los propietarios. Para conocer el nombre del propietario de car2, puedes acceder a la siguiente propiedad:

- -
car2.owner.name
-
+``` -

Especificaciones

+En lugar de pasar una cadena literal o un valor entero al crear los nuevos objetos, las declaraciones anteriores pasan los objetos `rand` y `ken` como parámetros para los propietarios. Para conocer el nombre del propietario de `car2`, puedes acceder a la siguiente propiedad: - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-new-operator', 'El operador new')}}
+```js +car2.owner.name +``` -

Compatibilidad del navegador

+## Especificaciones +| Especificación | +| ------------------------------------------------------------------------------------ | +| {{SpecName('ESDraft', '#sec-new-operator', 'El operador new')}} | +## Compatibilidad del navegador -

{{Compat("javascript.operators.new")}}

+{{Compat("javascript.operators.new")}} -

Ve también

+## Ve también -
    -
  • {{JSxRef("Function", "Funciones")}}
  • -
  • {{jsxref("Reflect.construct()")}}
  • -
  • {{jsxref("Object.prototype")}}
  • -
+- {{JSxRef("Function", "Funciones")}} +- {{jsxref("Reflect.construct()")}} +- {{jsxref("Object.prototype")}} diff --git a/files/es/web/javascript/reference/operators/null/index.md b/files/es/web/javascript/reference/operators/null/index.md index 62c5a2119a1420..41a18f17a7cd48 100644 --- a/files/es/web/javascript/reference/operators/null/index.md +++ b/files/es/web/javascript/reference/operators/null/index.md @@ -8,75 +8,54 @@ tags: translation_of: Web/JavaScript/Reference/Global_Objects/null original_slug: Web/JavaScript/Reference/Global_Objects/null --- -
{{jsSidebar("Objects")}}
+{{jsSidebar("Objects")}} -

Resumen

+## Resumen -

El valor null es un literal de Javascript que representa intencionalmente un valor nulo o "vacío". Es uno de los {{Glossary("Primitive", "valores primitivos")}} de Javascript.

+El valor `null` es un literal de Javascript que representa intencionalmente un valor nulo o "vacío". Es uno de los {{Glossary("Primitive", "valores primitivos")}} de Javascript. -
{{EmbedInteractiveExample("pages/js/globalprops-null.html")}}
+{{EmbedInteractiveExample("pages/js/globalprops-null.html")}} +## Sintaxis + null -

Sintaxis

+## Descripción -
null 
+El valor `null` es un literal (no una propiedad del objeto global como podría ser `{{jsxref("undefined", "undefined")}}`). En APIs, se devuelve `null` normalmente dónde se espera un objeto pero éste no es relevante. Al comparar con `null` o ` {{jsxref("undefined", "undefined")}}`` `hay que tener en cuenta las [diferencias entre los operadores de igualdad (==) e identidad (===) ](/es/docs/Web/JavaScript/Referencia/Operadores/Comparison_Operators)(con el primero se realiza una conversión de tipo). -

Descripción

- -

El valor null es un literal (no una propiedad del objeto global como podría ser {{jsxref("undefined", "undefined")}}). En APIs, se devuelve null normalmente dónde se espera un objeto pero éste no es relevante. Al comparar con null o {{jsxref("undefined", "undefined")}} hay que tener en cuenta las diferencias entre los operadores de igualdad (==) e identidad (===) (con el primero se realiza una conversión de tipo).

- -
// foo no existe, no está definido y nunca ha sido inicializado:
-> foo
+```js
+// foo no existe, no está definido y nunca ha sido inicializado:
+> foo
 "ReferenceError: foo is not defined"
 
 // foo existe, pero no tiene tipo ni valor:
-> var foo = null; foo
+> var foo = null; foo
 "null"
-
+``` -

Diferencias entre null y undefined

+### Diferencias entre `null` y `undefined` -
typeof null        // object (bug en ECMAScript, debería ser null)
+```js
+typeof null        // object (bug en ECMAScript, debería ser null)
 typeof undefined   // undefined
 null === undefined // false
 null  == undefined // true
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
ECMAScript 1st Edition.StandardDefinición inicial.
{{SpecName('ES5.1', '#sec-4.3.11', 'null value')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-null-value', 'null value')}}{{Spec2('ES6')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentarios | +| -------------------------------------------------------------------- | ------------------------ | ------------------- | +| ECMAScript 1st Edition. | Standard | Definición inicial. | +| {{SpecName('ES5.1', '#sec-4.3.11', 'null value')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-null-value', 'null value')}} | {{Spec2('ES6')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.builtins.null")}} -

Véase también

+## Véase también -
    -
  • {{jsxref("undefined", "undefined")}}
  • -
  • {{jsxref("NaN", "NaN")}}
  • -
+- {{jsxref("undefined", "undefined")}} +- {{jsxref("NaN", "NaN")}} diff --git a/files/es/web/javascript/reference/operators/property_accessors/index.md b/files/es/web/javascript/reference/operators/property_accessors/index.md index 32f20fd1506796..ad940dd26a6add 100644 --- a/files/es/web/javascript/reference/operators/property_accessors/index.md +++ b/files/es/web/javascript/reference/operators/property_accessors/index.md @@ -7,80 +7,88 @@ tags: translation_of: Web/JavaScript/Reference/Operators/Property_Accessors original_slug: Web/JavaScript/Referencia/Operadores/Miembros --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

Resumen

+## Resumen -

Los operadores de miembros proporcionan acceso a las propiedades y métodos de un objeto.

+Los operadores de miembros proporcionan acceso a las propiedades y métodos de un objeto. -

Un objeto es en realidad un arreglo asociativo (por ejemplo map ,dictionary ,hash ,lookup table ). Las claves en este arreglo son los nombres de las propiedades y los métodos (propiedades que hacen referencia a funciones). Hay dos modos de acceder a estas propiedades: notación por punto y notación por corchete (es decir, operador de subscripción).

+Un objeto es en realidad un _arreglo asociativo_ (por ejemplo _map_ ,_dictionary_ ,_hash_ ,_lookup table_ ). Las _claves_ en este arreglo son los nombres de las propiedades y los métodos (propiedades que hacen referencia a funciones). Hay dos modos de acceder a estas propiedades: notación por punto y notación por corchete (es decir, operador de subscripción). -

Nota: La especificación ECMAScript etiqueta estos operadores como "property accessors" en vez de "operadores de miembro" (member operators).

+Nota: La especificación [ECMAScript](/es/docs/Glossary/ECMAScript) etiqueta estos operadores como "property accessors" en vez de "operadores de miembro" (member operators). -

Notación por punto

+### Notación por punto -
get = objeto.propiedad;
+```js
+get = objeto.propiedad;
 objeto.propiedad = set;
-
+``` -

propiedad debe ser un identificador válido de JavaScript, esto es, una secuencia alfanumérica de caracteres, incluyendo también el guión bajo ("_") y el signo dolar ("$"), que no puede comenzar por un número. Por ejemplo, objeto.$1 es válido, mientras que objeto.1 no lo es.

+`propiedad` debe ser un identificador válido de JavaScript, esto es, una secuencia alfanumérica de caracteres, incluyendo también el guión bajo ("`_`") y el signo dolar ("`$`"), que no puede comenzar por un número. Por ejemplo, `objeto.$1` es válido, mientras que `objeto.1` no lo es. -

Ejemplo:

+Ejemplo: -
document.createElement('pre');
-
+```js +document.createElement('pre'); +``` -

Aquí, el método llamado "createElement" se recupera de document y se le llama.

+Aquí, el método llamado "createElement" se recupera de `document` y se le llama. -

Notación por corchetes

+### Notación por corchetes -
get = objeto[nombre_propiedad];
+```js
+get = objeto[nombre_propiedad];
 objeto[nombre_propiedad] = set;
-
+``` -

nombre_propiedad es una cadena. La cadena no tiene que ser un identificador válido; puede tener cualquier valor, por ejemplo "1foo", "!bar!", o incluso " " (un espacio).

+`nombre_propiedad` es una cadena. La cadena no tiene que ser un identificador válido; puede tener cualquier valor, por ejemplo "1foo", "!bar!", o incluso " " (un espacio). -

Ejemplo:

+Ejemplo: -
document['createElement']('pre');
-
+```js +document['createElement']('pre'); +``` -

Esto hace exactamente lo mismo que el ejemplo anterior.

+Esto hace exactamente lo mismo que el ejemplo anterior. -

Nombres de propiedades

+### Nombres de propiedades -

Los nombres de propiedades deben ser cadenas. Esto significa que no pueden usarse objetos distintos a cadenas como claves en un objeto. Cualquier objeto que no sea una cadena, incluyendo números, se convierte al tipo cadena a través de su método {{jsxref("Object.toString")}}.

+Los nombres de propiedades deben ser cadenas. Esto significa que no pueden usarse objetos distintos a cadenas como claves en un objeto. Cualquier objeto que no sea una cadena, incluyendo números, se convierte al tipo cadena a través de su método {{jsxref("Object.toString")}}. -

Ejemplos:

+Ejemplos: -
var objeto = {};
+```js
+var objeto = {};
 objeto['1'] = 'valor';
 alert(objeto[1]);
-
+``` -

Ésto tendrá como resultado "valor", ya que 1 se convertirá por tipo a '1'.

+Ésto tendrá como resultado "valor", ya que 1 se convertirá por tipo a '1'. -
var foo = {propiedad_unica: 1}, bar = {propiedad_unica: 2}, objeto = {};
+```js
+var foo = {propiedad_unica: 1}, bar = {propiedad_unica: 2}, objeto = {};
 objeto[foo] = 'valor';
 alert(objeto[bar]);
-
+``` -

Ésto también tiene como resultado "valor", ya que tanto foo como bar se convierten a la misma cadena. En el motor de JavaScript SpiderMonkey, esta cadena sería "{{ mediawiki.external('objeto Object') }}".

+Ésto también tiene como resultado "valor", ya que tanto foo como bar se convierten a la misma cadena. En el motor de JavaScript [SpiderMonkey](/es/docs/Mozilla/SpiderMonkey), esta cadena sería "{{ mediawiki.external('objeto Object') }}". -

Enlace a métodos

+### Enlace a métodos -

Un método no está enlazado al objeto del que es método. Específicamente, this no está establecido en un método, es decir, this no se refiere necesariamente a un objeto conteniendo el método. this, en cambio, se "pasa" mediante la llamada de función.

+Un método no está enlazado al objeto del que es método. Específicamente, `this` no está establecido en un método, es decir, `this` no se refiere necesariamente a un objeto conteniendo el método. `this`, en cambio, se "pasa" mediante la llamada de función. -

Vea enlace a métodos.

+Vea [enlace a métodos](/es/docs/Web/JavaScript/Referencia/Operadores/this#Funciones_enlazadas). -

Nota sobre eval

+### Nota sobre `eval` -

Los principiantes en JavaScript a menudo tienen el error de usar {{jsxref("eval")}} cuando la notación por corchetes puede usarse a cambio. Por ejemplo, la siguiente sintaxis se ve a menudo en muchos scripts.

+Los principiantes en JavaScript a menudo tienen el error de usar {{jsxref("eval")}} cuando la notación por corchetes puede usarse a cambio. Por ejemplo, la siguiente sintaxis se ve a menudo en muchos scripts. -
x = eval('document.nombre_formulario.' + cadenaControlFormulario + '.value');
-
+```js +x = eval('document.nombre_formulario.' + cadenaControlFormulario + '.value'); +``` -

eval es lenta y se debería evitar en la medida de lo posible. Es mejor usar la notación por corchetes a cambio:

+`eval` es lenta y se debería evitar en la medida de lo posible. Es mejor usar la notación por corchetes a cambio: -
x = document.nombre_formulario[cadenaControlFormulario].value;
-
+```js +x = document.nombre_formulario[cadenaControlFormulario].value; +``` diff --git a/files/es/web/javascript/reference/operators/subtraction/index.md b/files/es/web/javascript/reference/operators/subtraction/index.md index b265406819cf23..3b9f5f4a743e19 100644 --- a/files/es/web/javascript/reference/operators/subtraction/index.md +++ b/files/es/web/javascript/reference/operators/subtraction/index.md @@ -6,61 +6,49 @@ tags: translation_of: Web/JavaScript/Reference/Operators/Subtraction original_slug: Web/JavaScript/Referencia/Operadores/Sustracción --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

El operador de sustracción (-) sustrae dos operandos, produciendo su diferencia.

+El operador de sustracción (`-`) sustrae dos operandos, produciendo su diferencia. -
{{EmbedInteractiveExample("pages/js/expressions-subtraction.html")}}
+{{EmbedInteractiveExample("pages/js/expressions-subtraction.html")}} +## Sintaxis + Operator: x - y +## Ejemplos +### Sustracción con números -

Sintaxis

+```js +5 - 3 // 2 +3 - 5 // -2 +``` -
Operator: x - y
-
+### Sustracción de no numéricos -

Ejemplos

+```js +'foo' - 3 // NaN +``` -

Sustracción con números

+## Especificaciones -
5 - 3     // 2
-3 - 5     // -2
+| Specification | +| ------------------------------------------------------------------------------------------------------------ | +| {{SpecName('ESDraft', '#sec-subtraction-operator-minus', 'Subtraction operator')}} | -

Sustracción de no numéricos

+## Compatibilidad entre exploradores -
'foo' - 3 // NaN
+{{Compat("javascript.operators.subtraction")}} -

Especificaciones

+## También revisa - - - - - - - - - -
Specification
{{SpecName('ESDraft', '#sec-subtraction-operator-minus', 'Subtraction operator')}}
- -

Compatibilidad entre exploradores

- - - -

{{Compat("javascript.operators.subtraction")}}

- -

También revisa

- - +- [Addition operator](/es/docs/Web/JavaScript/Reference/Operators/Addition) +- [Division operator](/es/docs/Web/JavaScript/Reference/Operators/Division) +- [Multiplication operator](/es/docs/Web/JavaScript/Reference/Operators/Multiplication) +- [Remainder operator](/es/docs/Web/JavaScript/Reference/Operators/Remainder) +- [Exponentiation operator](/es/docs/Web/JavaScript/Reference/Operators/Exponentiation) +- [Increment operator](/es/docs/Web/JavaScript/Reference/Operators/Increment) +- [Decrement operator](/es/docs/Web/JavaScript/Reference/Operators/Decrement) +- [Unary negation operator](/es/docs/Web/JavaScript/Reference/Operators/Unary_negation) +- [Unary plus operator](/es/docs/Web/JavaScript/Reference/Operators/Unary_plus) diff --git a/files/es/web/javascript/reference/operators/super/index.md b/files/es/web/javascript/reference/operators/super/index.md index 1d0690a20364d9..7a6b7fc41e7059 100644 --- a/files/es/web/javascript/reference/operators/super/index.md +++ b/files/es/web/javascript/reference/operators/super/index.md @@ -9,32 +9,32 @@ tags: translation_of: Web/JavaScript/Reference/Operators/super original_slug: Web/JavaScript/Referencia/Operadores/super --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

La palabra clave super es usada para acceder y llamar funciones del padre de un objeto.

+La palabra clave **super** es usada para acceder y llamar funciones del padre de un objeto. -

Las expresiones super.prop y super[expr] son válidas en cualquier definición de método tanto para clases como para objetos literales.

+Las expresiones `super.prop` y `super[expr]` son válidas en cualquier [definición de método](/es/docs/Web/JavaScript/Reference/Functions/Method_definitions) tanto para [clases](/es/docs/Web/JavaScript/Reference/Classes) como para [objetos literales](/es/docs/Web/JavaScript/Reference/Operators/Object_initializer). -

Sintaxis

+## Sintaxis -
// llama al método constructor del objeto padre.
-super([arguments]);
+    // llama al método constructor del objeto padre.
+    super([arguments]);
 
-// llama cualquier otro método del objeto padre.
-super.functionOnParent([arguments]);
-
+ // llama cualquier otro método del objeto padre. + super.functionOnParent([arguments]); -

Descripción

+## Descripción -

Cuando es usado en un constructor, la palabra clave super aparece sola lo cual invoca el constructor del objeto padre. En este caso debe usarse antes de que la palabra clave this sea usada. La palabra clave super también puede utilizarse para llamar otras funciones del objeto padre.

+Cuando es usado en un constructor, la palabra clave `super` aparece sola lo cual invoca el constructor del objeto padre. En este caso debe usarse antes de que la palabra clave `this` sea usada. La palabra clave `super` también puede utilizarse para llamar otras funciones del objeto padre. -

Ejemplo

+## Ejemplo -

Usando super en clases

+### Usando `super` en clases -

Este fragmento de código se toma del ejemplo de clases (demo en vivo). Aquí se llama a super() para evitar la duplicación de las partes del constructor que son comunes entre Rectangle y Square.

+Este fragmento de código se toma del [ejemplo de clases](https://github.com/GoogleChrome/samples/blob/gh-pages/classes-es6/index.html) ([demo en vivo](https://googlechrome.github.io/samples/classes-es6/index.html)). Aquí se llama a `super()` para evitar la duplicación de las partes del constructor que son comunes entre `Rectangle` y `Square`. -
class Rectangle {
+```js
+class Rectangle {
   constructor(height, width) {
     this.name = 'Rectangle';
     this.height = height;
@@ -63,13 +63,15 @@ class Square extends Rectangle {
     // poder usar 'this'. Salir de esto provocará un error de referencia.
     this.name = 'Square';
   }
-}
+} +``` -

Super-llamando a métodos estáticos

+### Super-llamando a métodos estáticos -

También puede llamar a super en métodos estáticos.

+También puede llamar a super en métodos estáticos. -
class Rectangle {
+```js
+class Rectangle {
   constructor() {}
   static logNbSides() {
     return 'I have 4 sides';
@@ -83,13 +85,14 @@ class Square extends Rectangle {
   }
 }
 Square.logDescription(); // 'Tengo 4 lados que son todos iguales'
-
+``` -

Eliminar propiedades super generará un error

+### Eliminar propiedades `super` generará un error -

No puede usar el operador de eliminación y super.prop o super[expr] para eliminar la propiedad de una clase principal, lanzará {{jsxref("ReferenceError")}}.

+No puede usar el [operador de eliminación](/es/docs/Web/JavaScript/Reference/Operators/delete) y `super.prop` o `super[expr]` para eliminar la propiedad de una clase principal, lanzará {{jsxref("ReferenceError")}}. -
class Base {
+```js
+class Base {
   constructor() {}
   foo() {}
 }
@@ -100,13 +103,15 @@ class Derived extends Base {
   }
 }
 
-new Derived().delete(); // ReferenceError: eliminación no válida que implica 'super'. 
+new Derived().delete(); // ReferenceError: eliminación no válida que implica 'super'. +``` -

super.prop no puede sobrescribir las propiedades no modificables

+### `super.prop` no puede sobrescribir las propiedades no modificables -

Al definir propiedades que no se pueden escribir, p. Ej. {{jsxref("Object.defineProperty")}}, super no puede sobrescribir el valor de la propiedad.

+Al definir propiedades que no se pueden escribir, p. Ej. {{jsxref("Object.defineProperty")}}, `super` no puede sobrescribir el valor de la propiedad. -
class X {
+```js
+class X {
   constructor() {
     Object.defineProperty(this, 'prop', {
       configurable: true,
@@ -122,13 +127,14 @@ new Derived().delete(); // ReferenceError: eliminación no válida que implica '
 var x = new X();
 x.f(); // TypeError: "prop" es de solo lectura
 console.log(x.prop); // 1
-
+``` -

Usando super.prop en objetos literales

+### Usando `super.prop` en objetos literales -

Super también se puede usar en el inicializador de objetos / notación literal. En este ejemplo, dos objetos definen un método. En el segundo objeto, super llama al primer método del objeto. Esto funciona con la ayuda de {{jsxref("Object.setPrototypeOf()")}} con el que podemos establecer el prototipo de obj2 en obj1, de modo que super pueda encontrar el method1 en obj1.

+Super también se puede usar en el [inicializador de objetos / notación literal](/es/docs/Web/JavaScript/Reference/Operators/Object_initializer). En este ejemplo, dos objetos definen un método. En el segundo objeto, `super` llama al primer método del objeto. Esto funciona con la ayuda de {{jsxref("Object.setPrototypeOf()")}} con el que podemos establecer el prototipo de `obj2` en `obj1`, de modo que `super` pueda encontrar el `method1` en `obj1`. -
var obj1 = {
+```js
+var obj1 = {
   method1() {
     console.log('method 1');
   }
@@ -142,38 +148,19 @@ var obj2 = {
 
 Object.setPrototypeOf(obj2, obj1);
 obj2.method2(); // logs "method 1"
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES2015', '#sec-super-keyword', 'super')}}{{Spec2('ES2015')}}Definición inicial.
{{SpecName('ESDraft', '#sec-super-keyword', 'super')}}{{Spec2('ESDraft')}}
+``` -

Compatibilidad con navegadores

+## Especificaciones +| Especificación | Estado | Comentario | +| ------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ES2015', '#sec-super-keyword', 'super')}} | {{Spec2('ES2015')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-super-keyword', 'super')}} | {{Spec2('ESDraft')}} | | +## Compatibilidad con navegadores -

{{Compat("javascript.operators.super")}}

+{{Compat("javascript.operators.super")}} -

Ver también

+## Ver también - +- [Clases](/es/docs/Web/JavaScript/Reference/Classes) diff --git a/files/es/web/javascript/reference/operators/this/index.md b/files/es/web/javascript/reference/operators/this/index.md index c15b1238f12c8a..bdd59d82808ce5 100644 --- a/files/es/web/javascript/reference/operators/this/index.md +++ b/files/es/web/javascript/reference/operators/this/index.md @@ -4,82 +4,77 @@ slug: Web/JavaScript/Reference/Operators/this translation_of: Web/JavaScript/Reference/Operators/this original_slug: Web/JavaScript/Referencia/Operadores/this --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

Introducción

+## Introducción -

La palabra clave this de una función se comporta un poco diferente en Javascript en comparación con otros lenguajes. Además tiene algunas diferencias entre el modo estricto y el modo no estricto.

+La palabra clave **`this`** de una función se comporta un poco diferente en Javascript en comparación con otros lenguajes. Además tiene algunas diferencias entre el [modo estricto](/es/docs/Web/JavaScript/Referencia/Funciones/Modo_estricto "en-US/docs/JavaScript/Strict mode") y el modo no estricto. -

En general, el valor de this está determinado por cómo se invoca a la función. No puede ser establecida mediante una asignación en tiempo de ejecución, y puede ser diferente cada vez que la función es invocada. ES5 introdujo el método {{jsxref("Function.bind()", "bind()")}} para establecer el valor de la función this independientemente de como es llamada, y ES2015 introdujo las funciones flecha que no proporcionan su propio "binding" de this (se mantiene el valor de this del contexto léxico que envuelve a la función)

+En general, el valor de `this` está determinado por cómo se invoca a la función. No puede ser establecida mediante una asignación en tiempo de ejecución, y puede ser diferente cada vez que la función es invocada. ES5 introdujo el método {{jsxref("Function.bind()", "bind()")}} para [establecer el valor de la función `this` independientemente de como es llamada](#Funciones_enlazadas "https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Special/this#Bound_functions"), y ES2015 introdujo las [funciones flecha](/es/docs/Web/JavaScript/Referencia/Funciones/Arrow_functions) que no proporcionan su propio "binding" de `this` (se mantiene el valor de `this` del contexto léxico que envuelve a la función) -

{{EmbedInteractiveExample("pages/js/expressions-this.html")}}

+{{EmbedInteractiveExample("pages/js/expressions-this.html")}} -

Sintaxis

+## Sintaxis -
this
+ this -

Valor

+### Valor -

El objeto contexto de JavaScript en el cual se está ejecutando el código actual.

+El objeto contexto de JavaScript en el cual se está ejecutando el código actual. -

Contexto global

+## Contexto global -

En el contexto de ejecución global (fuera de cualquier función), this se refiere al objeto global, ya sea en modo estricto o no.

+En el contexto de ejecución global (fuera de cualquier función), **`this`** se refiere al objeto global, ya sea en modo estricto o no. -
console.log(this.document === document); // true
+```js
+console.log(this.document === document); // true
 
 // En los navegadores web, el objeto window también es un objeto global:
 console.log(this === window); // true
 
 this.a = 37;
 console.log(window.a); // 37
-
+``` -
-

Nota: Puedes obtener el objeto global usando la propieda global globalThis, no importa el contexto donde se ejecute esta propiedad, siempre hará referencia al objeto global.

-
+> **Nota:** Nota: Puedes obtener el objeto global usando la propieda global `globalThis`, no importa el contexto donde se ejecute esta propiedad, siempre hará referencia al objeto global. -

Contexto de la función

+## Contexto de la función -

Dentro de una función, el valor de this depende de cómo la función es llamada.

+Dentro de una función, el valor de this depende de cómo la función es llamada. -

Llamada simple

+### Llamada simple -
function f1(){
+```js
+function f1(){
   return this;
 }
 
 f1() === window; // objeto global
-
+``` -
En este caso, el valor de this no está establecido por la llamada. Dado que el código no está en modo estricto, el valor de this debe ser siempre un objeto por lo que por defecto es el objeto global.
+En este caso, el valor de **this** no está establecido por la llamada. Dado que el código no está en modo estricto, el valor de this debe ser siempre un objeto por lo que por defecto es el objeto global. - - -
-
function f2(){
+```js
+function f2(){
   "use strict"; // consultar modo estricto
   return this;
 }
 
-f2() === undefined;
-
- -
En modo estricto, el valor de this se mantiene en lo que está establecida al entrar en el contexto de ejecución. Si no está definido, permanece undefined. También se puede ajustar a cualquier valor, tales como null o 42 o "Yo no soy this".
+f2() === undefined; +``` +En modo estricto, el valor de **this** se mantiene en lo que está establecida al entrar en el contexto de ejecución. Si no está definido, permanece undefined. También se puede ajustar a cualquier valor, tales como **null** o **42** o "**Yo no soy this**". +> **Nota:** En el segundo ejemplo, **`this`** debería ser {{jsxref("undefined")}}, porque `f2` fue llamado sin proporcionar ninguna base (ej. `window.f2()`). Esta característica no fue implementada en algunos navegadores cuando se comenzó a dar soporte al [modo estricto](/es/docs/Web/JavaScript/Referencia/Funciones/Modo_estricto "Strict mode"). Como resultado, retorna incorrectamente el objeto window. -
-

Nota: En el segundo ejemplo, this debería ser {{jsxref("undefined")}}, porque f2 fue llamado sin proporcionar ninguna base (ej. window.f2()). Esta característica no fue implementada en algunos navegadores cuando se comenzó a dar soporte al modo estricto. Como resultado, retorna incorrectamente el objeto window.

-
+Como un método de un objeto -
Como un método de un objeto
+Cuando una función es llamada como un método de un objeto, el **`this`** cambia por el metodo del objeto llamado. -

Cuando una función es llamada como un método de un objeto, el this cambia por el metodo del objeto llamado.

+En el siguiente ejemplo, cuando **`o.f()`** es invocado, dentro de la función **`this`** es ligado al objeto **`o`**. -

En el siguiente ejemplo, cuando o.f() es invocado, dentro de la función this es ligado al objeto o.

- -
var o = {
+```js
+var o = {
   prop: 37,
   f: function() {
     return this.prop;
@@ -87,11 +82,12 @@ f2() === undefined;
}; console.log(o.f()); // logs 37 -
+``` -

Note que el comportamiento no es del todo afectado por cómo o dónde la función fue definida. En el ejemplo anterior, nosotros definimos la función en línea como el elemento f durante la definición de o. Sin embargo, podriamos haber definido con la misma facilidad la primera función y luego adjuntarlo a o.f. Hacerlo da como resultado el mismo comportamiento.

+Note que el comportamiento no es del todo afectado por cómo o dónde la función fue definida. En el ejemplo anterior, nosotros definimos la función en línea como el elemento `f` durante la definición de `o`. Sin embargo, podriamos haber definido con la misma facilidad la primera función y luego adjuntarlo a `o.f`. Hacerlo da como resultado el mismo comportamiento. -
var o = {prop: 37};
+```js
+var o = {prop: 37};
 
 function independent() {
   return this.prop;
@@ -100,35 +96,38 @@ function independent() {
 o.f = independent;
 
 console.log(o.f()); // logs 37
-
+``` -

Esto demuestra que sólo importa que la función fue invocada del elemento f de o.

+Esto demuestra que sólo importa que la función fue invocada del elemento `f` de `o`. -

Asimismo, el enlace this sólo se ve afectado por la referencia del miembro más inmediata. En el siguiente ejemplo, cuando invocamos a la función, lo llamamos como metodo g del objeto o.b. Esta vez durante la ejecución, this dentro de la función se referirá a o.b. El hecho de que el objeto es en sí mismo un elemento de o no tiene ninguna consecuencia, la referencia más inmediata es todo lo que importa.

+Asimismo, el enlace `this` sólo se ve afectado por la referencia del miembro más inmediata. En el siguiente ejemplo, cuando invocamos a la función, lo llamamos como metodo `g` del objeto `o.b`. Esta vez durante la ejecución, `this `dentro de la función se referirá a `o.b`. El hecho de que el objeto es en sí mismo un elemento de `o` no tiene ninguna consecuencia, la referencia más inmediata es todo lo que importa. -
o.b = {g: independent, prop: 42};
+```js
+o.b = {g: independent, prop: 42};
 console.log(o.b.g()); // logs 42
-
+``` -

... en la cadena de prototipo

+#### ... en la cadena de prototipo -

El mismo concepto es válido para los métodos definidos en alguna parte de la cadena de prototipo del objeto. Si el método esta sobre una cadena de prototipo del objeto, this se referirá al objeto donde está el método de donde fue llamado. Como si ese método estuviera dentro del objeto.

+El mismo concepto es válido para los métodos definidos en alguna parte de la cadena de prototipo del objeto. Si el método esta sobre una cadena de prototipo del objeto, `this` se referirá al objeto donde está el método de donde fue llamado. Como si ese método estuviera dentro del objeto. -
var o = {f:function(){ return this.a + this.b; }};
+```js
+var o = {f:function(){ return this.a + this.b; }};
 var p = Object.create(o);
 p.a = 1;
 p.b = 4;
 
 console.log(p.f()); // 5
-
+``` -

En este ejemplo, el objeto asignado a la variable p no tiene su propia propiedad f, esto lo hereda de su prototipo. Pero no importa que la búsqueda de f eventualmente encuentre un elemento con ese nombre en o; la búsqueda comenzó como una referencia a p.f, asi this dentro de la funcion toma el valor del objeto referido como p. Es decir, desde que f es llamado como método de p, su this refiere a p. Esto es una interesante característica de la herencia de prototipo de JavaScript.

+En este ejemplo, el objeto asignado a la variable `p` no tiene su propia propiedad `f`, esto lo hereda de su prototipo. Pero no importa que la búsqueda de `f` eventualmente encuentre un elemento con ese nombre en `o`; la búsqueda comenzó como una referencia a `p.f`, asi `this `dentro de la funcion toma el valor del objeto referido como `p`. Es decir, desde que `f` es llamado como método de `p`, su `this` refiere a `p`. Esto es una interesante característica de la herencia de prototipo de JavaScript. -

... o como un getter o setter

+#### ... o como un getter o setter -

Nuevamente, el mismo concepto es válido cuando una función es invocada de un getter o un setter. Una función usado como getter o setter tiene su enlace this al objeto desde el cual la propiedad esta siendo establecida u obtenida.

+Nuevamente, el mismo concepto es válido cuando una función es invocada de un getter o un setter. Una función usado como getter o setter tiene su enlace `this` al objeto desde el cual la propiedad esta siendo establecida u obtenida. -
function modulus(){
+```js
+function modulus(){
   return Math.sqrt(this.re * this.re + this.im * this.im);
 }
 
@@ -143,13 +142,14 @@ var o = {
 Object.defineProperty(o, 'modulus', {get: modulus, enumerable:true, configurable:true});
 
 console.log(o.phase, o.modulus); // logs -0.78 1.4142
-
+``` -

Como un constructor

+### Como un constructor -

Cuando una función es usada como un constructor (con la palabra clave {{jsxref("Operadores/new", "new")}}), su this es enlazado al nuevo objeto en construcción, a menos que la ejecución de los resultados del constructor en el motor JavaScript encuentren una instrucción de retorno donde el valor de retorno sea un objeto.

+Cuando una función es usada como un constructor (con la palabra clave {{jsxref("Operadores/new", "new")}}), su `this` es enlazado al nuevo objeto en construcción, a menos que la ejecución de los resultados del constructor en el motor JavaScript encuentren una instrucción de retorno donde el valor de retorno sea un objeto. -
/*
+```js
+/*
  * Los constructores trabajan algo asi:
  *
  * function MyConstructor(){
@@ -180,15 +180,16 @@ function C2(){
 
 o = new C2();
 console.log(o.a); // logs 38
-
+``` -

En el último ejemplo (C2), debido a que un objeto fue devuelto durante la construcción, el nuevo objeto que fue enlazado a this simplemente se descarta.( Esto esencialmente hace de la declaración "this.a = 37;" codigo muerto. No esta exactamente muerto,porque es ejecutado pero se puede eliminar sin efectos externos.)

+En el último ejemplo (`C2`), debido a que un objeto fue devuelto durante la construcción, el nuevo objeto que fue enlazado a `this` simplemente se descarta.( Esto esencialmente hace de la declaración "`this.a = 37;`" codigo muerto. No esta exactamente muerto,porque es ejecutado pero se puede eliminar sin efectos externos.) -

call y apply

+### `call` y `apply` -

Cuando una función usa la plabra clave this en su cuerpo, su valor puede ser enlazado a un objeto particular durante la ejecución del método {{jsxref("Function.call()", "call()")}} or {{jsxref("Function.apply()", "apply()")}} que todas las funciones hereden de Function.prototype.

+Cuando una función usa la plabra clave `this` en su cuerpo, su valor puede ser enlazado a un objeto particular durante la ejecución del método {{jsxref("Function.call()", "call()")}} or {{jsxref("Function.apply()", "apply()")}} que todas las funciones hereden de `Function.prototype`. -
function add(c, d){
+```js
+function add(c, d){
   return this.a + this.b + c + d;
 }
 
@@ -201,13 +202,14 @@ add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16
 //El primer parámetro es el objeto a usar como 'this''this', la segunda es una matriz cuyos elementos
 //  se utilizan como argumentos en la llamada a la función
 add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34
-
+``` -

Funciones enlazadas

+### Funciones enlazadas -

ECMAScript 5 introduce {{jsxref("Function.prototype.bind()")}}. Llamando a f.bind(someObject) crea una nueva función con el mismo cuerpo y alcance de f, pero donde this se produce en la función original, en la nueva función esto esta permanentemente ligado al primer argumento de bind, independientemente de cómo la función está siendo utilizada.

+ECMAScript 5 introduce {{jsxref("Function.prototype.bind()")}}. Llamando a `f.bind(someObject)` crea una nueva función con el mismo cuerpo y alcance de `f`, pero donde `this` se produce en la función original, en la nueva función esto esta permanentemente ligado al primer argumento de `bind`, independientemente de cómo la función está siendo utilizada. -
function f(){
+```js
+function f(){
   return this.a;
 }
 
@@ -216,13 +218,14 @@ console.log(g()); // azerty
 
 var o = {a:37, f:f, g:g};
 console.log(o.f(), o.g()); // 37, azerty
-
+``` -

Como un controlador de eventos DOM

+### Como un controlador de eventos DOM -

Cuando una función es usada como un controlador de eventos, su this es cambiado desde el elemento del evento disparado (algunos navegadores no siguen esta convención para los listeners agregados dinámicamente con otros métodos addEventListener).

+Cuando una función es usada como un controlador de eventos, su `this` es cambiado desde el elemento del evento disparado (algunos navegadores no siguen esta convención para los listeners agregados dinámicamente con otros métodos `addEventListener`). -
// Cuando se llama como un listener, convierte en azul el elemento
+```js
+// Cuando se llama como un listener, convierte en azul el elemento
 // relacionado
 function bluify(e){
   console.log(this === e.currentTarget); // Siempre true
@@ -235,6 +238,7 @@ var elements = document.getElementsByTagName('*');
 
 // Añade bluify como un click listener asi cuando se hace click sobre el elemento,
 // este cambia a azul
-for(var i=0 ; i<elements.length ; i++){
+for(var i=0 ; i
+}
+```
diff --git a/files/es/web/javascript/reference/operators/void/index.md b/files/es/web/javascript/reference/operators/void/index.md
index 41ce0f6abbaa5a..4c36163e699d97 100644
--- a/files/es/web/javascript/reference/operators/void/index.md
+++ b/files/es/web/javascript/reference/operators/void/index.md
@@ -8,30 +8,28 @@ tags:
 translation_of: Web/JavaScript/Reference/Operators/void
 original_slug: Web/JavaScript/Referencia/Operadores/void
 ---
-
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

Resumen

+## Resumen -

El operador void se usa en cualquiera de los siguientes modos:

+El operador `void` se usa en cualquiera de los siguientes modos: -
    -
  1. void (expresion )
  2. -
  3. void expresion
  4. -
+1. `void (expresion )` +2. `void expresion` -

El operador void especifica una expresión que se evalúa sin devolver un valor. expresion es una expresión JavaScript para evaluar. El paréntesis rodeando la expresión es opcional, pero usarlos es una buena práctica al programar.

+El operador `void` especifica una expresión que se evalúa sin devolver un valor. `expresion` es una expresión JavaScript para evaluar. El paréntesis rodeando la expresión es opcional, pero usarlos es una buena práctica al programar. -

Puede usar el operador void para especificar una expresión como un enlace de hipertexto. La expresión se evalúa pero no se carga en lugar del documento actual.

+Puede usar el operador `void` para especificar una expresión como un enlace de hipertexto. La expresión se evalúa pero no se carga en lugar del documento actual. -

El siguiente código crea un enlace de hipertexto que no hace nada cuando el usuario hace click en él. Cuando el usuario hace click en el enlace, void(0) se evalúa como 0, pero eso no tiene ningún efecto en JavaScript.

+El siguiente código crea un enlace de hipertexto que no hace nada cuando el usuario hace click en él. Cuando el usuario hace click en el enlace, void(0) se evalúa como 0, pero eso no tiene ningún efecto en JavaScript. -
<a href="javascript:void(0)">Haga click aquí para no hacer nada</a>
-
+```html +Haga click aquí para no hacer nada +``` -

El siguiente código crea un enlace de hipertexto que envía un formulario cuando el usuario hace click en él.

+El siguiente código crea un enlace de hipertexto que envía un formulario cuando el usuario hace click en él. -
<a href="javascript:void(document.forms["miFormulario"].submit())">
-Haga click aquí para enviar</a>
-
- -
+```html + +Haga click aquí para enviar +``` diff --git a/files/es/web/javascript/reference/operators/yield_star_/index.md b/files/es/web/javascript/reference/operators/yield_star_/index.md index a0ea0e830de60c..1d2a646cca637c 100644 --- a/files/es/web/javascript/reference/operators/yield_star_/index.md +++ b/files/es/web/javascript/reference/operators/yield_star_/index.md @@ -7,32 +7,31 @@ tags: translation_of: Web/JavaScript/Reference/Operators/yield* original_slug: Web/JavaScript/Referencia/Operadores/yield* --- -
{{jsSidebar("Operators")}}
+{{jsSidebar("Operators")}} -

La expresión yield* es usada para delegar a otro {{jsxref("Statements/function*", "generator")}} u objeto iterable.

+`La expresión `**`yield*`\*\*** \*\*es usada para delegar a otro {{jsxref("Statements/function*", "generator")}} u objeto iterable. -

Sintaxis

+## Sintaxis -
 yield* [[expression]];
+ yield* [[expression]]; -
-
expression
-
La expresión que retorna un objeto iterable
-
+- `expression` + - : La expresión que retorna un objeto iterable -

Descripción

+## Descripción -

La expresión yield* itera sobre el operador realizando yield de cada valor retornado por este.

+La expresión `yield*` itera sobre el operador realizando yield de cada valor retornado por este. -

El valor de la expresion yield* es el valor retornado por el iterador en si mismo cuando es finalizado (ej., cuando done es true).

+El valor de la expresion `yield*` es el valor retornado por el iterador en si mismo cuando es finalizado (ej., cuando `done` es true). -

Ejemplos

+## Ejemplos -

Delegando a otro generator

+### Delegando a otro generator -

En el siguiente código, los valores declarados con yield en g1() son devueltos por las llamadas a next() al igual que en g2().

+En el siguiente código, los valores declarados con yield en `g1()` son devueltos por las llamadas a `next() al igual que en` `g2()`. -
function* g1() {
+```js
+function* g1() {
   yield 2;
   yield 3;
   yield 4;
@@ -52,13 +51,14 @@ console.log(iterator.next()); // { value: 3, done: false }
 console.log(iterator.next()); // { value: 4, done: false }
 console.log(iterator.next()); // { value: 5, done: false }
 console.log(iterator.next()); // { value: undefined, done: true }
-
+``` -

Otros objetos iterables

+### Otros objetos iterables -

Además de los objetos generator, yield* también se puede usar yield sobre otros tipos de iterables, ej. arrays, strings u objetos arguments.

+Además de los objetos generator, `yield*` también se puede usar `yield sobre otros tipos de iterables`, ej. arrays, strings u objetos arguments. -
function* g3() {
+```js
+function* g3() {
   yield* [1, 2];
   yield* "34";
   yield* Array.from(arguments);
@@ -73,13 +73,14 @@ console.log(iterator.next()); // { value: "4", done: false }
 console.log(iterator.next()); // { value: 5, done: false }
 console.log(iterator.next()); // { value: 6, done: false }
 console.log(iterator.next()); // { value: undefined, done: true }
-
+``` -

El valor de la expresión yield*

+### El valor de la expresión `yield*` -

yield* es una expresión, no una declaración, por lo que se evalua como un valor.

+`yield*` es una expresión, no una declaración, por lo que se evalua como un valor. -
function* g4() {
+```js
+function* g4() {
   yield* [1, 2, 3];
   return "foo";
 }
@@ -99,56 +100,35 @@ console.log(iterator.next()); // { value: undefined, done: true },
                               // g4() returned { value: "foo", done: true } at this point
 
 console.log(result);          // "foo"
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
{{SpecName('ES6', '#', 'Yield')}}{{Spec2('ES6')}}Definición inical.
{{SpecName('ESDraft', '#', 'Yield')}}{{Spec2('ESDraft')}}
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificación | Estado | Comentarios | +| ------------------------------------------------ | ---------------------------- | ------------------ | +| {{SpecName('ES6', '#', 'Yield')}} | {{Spec2('ES6')}} | Definición inical. | +| {{SpecName('ESDraft', '#', 'Yield')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad con navegadores {{Compat("javascript.operators.yield_star")}} -

Notas específicas de Firefox

- -
    -
  • Iniciando con Gecko 33 {{geckoRelease(33)}}, el análisis del yield expression ha sido actualizado para cumplir con la última especificación ES6 ({{bug(981599)}}): -
      -
    • Ahora está implementada la restricción de salto de línea. No está permitido el salto de línea entre "yield" y "*". Código como el siguiente lanzará una {{jsxref("SyntaxError")}}: -
      function* foo() {
      -  yield
      -  *[];
      -}
      -
    • -
    -
  • -
- -

Ver también

- -
    -
  • Protocolos de iteración
  • -
  • {{jsxref("Statements/function*", "function*")}}
  • -
  • {{jsxref("Operators/function*", "function* expression")}}
  • -
  • {{jsxref("Operators/yield", "yield")}}
  • -
+## Notas específicas de Firefox + +- Iniciando con Gecko 33 {{geckoRelease(33)}}, el análisis del yield expression ha sido actualizado para cumplir con la última especificación ES6 ({{bug(981599)}}): + + - Ahora está implementada la restricción de salto de línea. No está permitido el salto de línea entre "yield" y "\*". Código como el siguiente lanzará una {{jsxref("SyntaxError")}}: + + ```js + function* foo() { + yield + *[]; + } + ``` + +## Ver también + +- [Protocolos de iteración](/es/docs/Web/JavaScript/Referencia/Iteration_protocols) +- {{jsxref("Statements/function*", "function*")}} +- {{jsxref("Operators/function*", "function* expression")}} +- {{jsxref("Operators/yield", "yield")}} diff --git a/files/es/web/javascript/reference/statements/block/index.md b/files/es/web/javascript/reference/statements/block/index.md index 1b86599d47adfb..cea3f78dfca8cd 100644 --- a/files/es/web/javascript/reference/statements/block/index.md +++ b/files/es/web/javascript/reference/statements/block/index.md @@ -9,82 +9,77 @@ tags: translation_of: Web/JavaScript/Reference/Statements/block original_slug: Web/JavaScript/Referencia/Sentencias/block --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

Resumen

+## Resumen -

Una sentencia block se utiliza para agrupar cero o más sentencias. Este grupo block se delimita por un par de llaves.

+Una sentencia block se utiliza para agrupar cero o más sentencias. Este grupo block se delimita por un par de llaves. -

Sintaxis

+## Sintaxis -
{ sentencia_1; sentencia_2; ... sentencia_n; }
-
+ { sentencia_1; sentencia_2; ... sentencia_n; } -
-
sentencia_1, sentencia_2, sentencia_n
-
Sentencias agrupadas dentro de una sentencia block.
-
+- `sentencia_1`, `sentencia_2`, `sentencia_n` + - : Sentencias agrupadas dentro de una sentencia block. -

Descripción

+## Descripción -

Esta sentencia se utiliza comúnmente para controlar sentencias de flujo (es decir if, for, while). Por ejemplo:

+Esta sentencia se utiliza comúnmente para controlar sentencias de flujo (es decir `if`, `for`, `while`). Por ejemplo: -
while (x < 10) {
+```js
+while (x < 10) {
    x++;
 }
-
+``` -

Las variables declaradas con var no tienen alcance de bloque(block scope). Las variables introducidas dentro de un grupo block tienen el alcance de la función que lo contiene o del script, y los efectos de su asignación persisten más allá del grupo block en sí mismo. En otras palabras, las sentencias block no incluyen ningún alcance. Aunque los grupos block "en solitario" (standalone) son una sintaxis válida, usted no querrá utilizar grupos block en solitario en JavaScript, ya que ellos no hacen lo que parecen, si piensa que funcionan de manera similar a los bloques en C o Java. Por ejemplo:

+Las variables declaradas con `var` **no** tienen alcance de bloque(block scope). Las variables introducidas dentro de un grupo block tienen el alcance de la función que lo contiene o del script, y los efectos de su asignación persisten más allá del grupo block en sí mismo. En otras palabras, las sentencias block no incluyen ningún alcance. Aunque los grupos block "en solitario" (standalone) son una sintaxis válida, usted no querrá utilizar grupos block en solitario en JavaScript, ya que ellos no hacen lo que parecen, si piensa que funcionan de manera similar a los bloques en C o Java. Por ejemplo: -
var x = 1;
+```js
+var x = 1;
 {
    var x = 2;
 }
 alert(x); // resultado 2
-
+``` -

Este obtiene el resultado 2 ya que la sentencia var x dentro del grupo block tiene el mismo alcance que la sentencia var x antes del mismo. En C o Java, el código equivalente tendría como resultado 1.

+Este obtiene el resultado 2 ya que la sentencia `var x` dentro del grupo block tiene el mismo alcance que la sentencia `var x` antes del mismo. En C o Java, el código equivalente tendría como resultado 1. -

Con let y const

+#### Con `let `y [const](/es/docs/Web/JavaScript/Referencia/Sentencias/const) -

Por el contrario, las variables declaradas con let y const tienen alcance de bloque.

+Por el contrario, las variables declaradas con `let` y `const` tienen alcance de bloque. -
let x = 1;
-{
-  let x = 2;
-}
-console.log(x); // logs 1
-
+ let x = 1; + { + let x = 2; + } + console.log(x); // logs 1 -

El alcance x = 2 es limitado solamente al bloque en el que está definido.

+El alcance `x = 2` es limitado solamente al bloque en el que está definido. -

Lo mismo para const:

+Lo mismo para `const`: -
const c = 1;
-{
-  const c = 2;
-}
-console.log(c); // logs 1 y no lanza SyntaxError...
-
+ const c = 1; + { + const c = 2; + } + console.log(c); // logs 1 y no lanza SyntaxError... -

Tenga en cuenta que la variable const c = 2 con alcance de bloque, no lanza un SyntaxError: El identificador 'c' ya ha sido declarado. Esto es porque se puede declarar de forma única dentro del bloque, sin interferir con la otra que tiene un alcance global.

+Tenga en cuenta que la variable `const c = 2 con alcance de bloque, `**_no_ lanza** un `SyntaxError: `El identificador 'c' ya ha sido declarado. Esto es porque **se puede declarar de forma única** dentro del bloque, sin interferir con la otra que tiene un alcance global. -

Con function

+#### Con `function` -

La declaración de una función también tiene un alcance limitado dentro del bloque donde se produce la declaración:

+La [declaración de una función](/es/docs/Web/JavaScript/Reference/Statements/function) también tiene un alcance limitado dentro del bloque donde se produce la declaración: -
nacion('frances');  // TypeError: nacion no es una función
+```js
+nacion('frances');  // TypeError: nacion no es una función
 {
   function nacion(nacionalidad) {
    console.log('Yo soy ' + nacionalidad);
   }
 nacion('español'); // correcto. logs Yo soy español
-}
- -

+} +``` -

Vea También

+## Vea También -
    -
  • {{jsxref("Sentencias/while", "while")}}
  • -
+- {{jsxref("Sentencias/while", "while")}} diff --git a/files/es/web/javascript/reference/statements/break/index.md b/files/es/web/javascript/reference/statements/break/index.md index 26d2b95506dac7..1b8595e2817bb1 100644 --- a/files/es/web/javascript/reference/statements/break/index.md +++ b/files/es/web/javascript/reference/statements/break/index.md @@ -7,36 +7,43 @@ tags: translation_of: Web/JavaScript/Reference/Statements/break original_slug: Web/JavaScript/Referencia/Sentencias/break --- -
- {{jsSidebar("Statements")}}
-

Resumen

-

Termina el bucle actual, sentecia switch o label y transfiere el control del programa a la siguiente sentencia a la sentecia de terminación de éstos elementos.

-

Sintaxis

-
break [etiqueta];
-
-
- etiqueta
-
- Identificador asociado con la etiqueta de la sentencia.
-
-

Descripción

-

La sentencia break incluye una etiqueta opcional que permite al programa salir de una sentencia etiquetada. La sentencia break necesita estar anidada dentro de la sentencia etiquetada. La sentencia etiquetada puede ser cualquier tipo de sentencia; no tiene que ser una sentencia de bucle.

-

Ejemplos

-

Ejemplo: Usando break

-

La siguiente función tiene una sentencia que termina el bucle {{jsxref("Sentencias/while", "while")}} cuando i es 3, y entonces devuelve el valor 3 * x.

-
function comprobarBreak(x) {
+{{jsSidebar("Statements")}}
+
+## Resumen
+
+Termina el bucle actual, sentecia switch o label y transfiere el control del programa a la siguiente sentencia a la sentecia de terminación de éstos elementos.
+
+## Sintaxis
+
+    break [etiqueta];
+
+- `etiqueta`
+  - : Identificador asociado con la etiqueta de la sentencia.
+
+## Descripción
+
+La sentencia `break` incluye una etiqueta opcional que permite al programa salir de una sentencia etiquetada. La sentencia `break` necesita estar anidada dentro de la sentencia etiquetada. La sentencia etiquetada puede ser cualquier tipo de sentencia; no tiene que ser una sentencia de bucle.
+
+### Ejemplos
+
+#### Ejemplo: Usando `break`
+
+La siguiente función tiene una sentencia que termina el bucle {{jsxref("Sentencias/while", "while")}} cuando `i` es 3, y entonces devuelve el valor 3 \* `x`.
+
+```js
+function comprobarBreak(x) {
    var i = 0;
-   while (i < 6) {
+   while (i < 6) {
       if (i == 3)
          break;
       i++;
    }
    return i * x;
 }
-
-

Vea También

-
    -
  • {{jsxref("Sentencias/continue", "continue")}}
  • -
  • {{jsxref("Sentencias/label", "label")}}
  • -
  • {{jsxref("Sentencias/switch", "switch")}}
  • -
+``` + +## Vea También + +- {{jsxref("Sentencias/continue", "continue")}} +- {{jsxref("Sentencias/label", "label")}} +- {{jsxref("Sentencias/switch", "switch")}} diff --git a/files/es/web/javascript/reference/statements/class/index.md b/files/es/web/javascript/reference/statements/class/index.md index 8514e470e704ed..84bbfe9eca341f 100644 --- a/files/es/web/javascript/reference/statements/class/index.md +++ b/files/es/web/javascript/reference/statements/class/index.md @@ -4,34 +4,34 @@ slug: Web/JavaScript/Reference/Statements/class translation_of: Web/JavaScript/Reference/Statements/class original_slug: Web/JavaScript/Referencia/Sentencias/class --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

La declaración class crea una nueva clase con el nombre proporcionado utilizando la herencia basada en prototipos

+La **declaración class** crea una nueva clase con el nombre proporcionado utilizando la herencia basada en prototipos -
-

También se puede definir una clase usando una {{jsxref("Operators/class", "expresión de clase", "", 1)}}. Pero a diferencia de las expresiones de clases, la declaración de clases no permite que una clase existente sea declarada de nuevo y en caso de hacerse, lanzará un error de tipo.

-
+También se puede definir una clase usando una {{jsxref("Operators/class", "expresión de clase", "", 1)}}. Pero a diferencia de las expresiones de clases, la declaración de clases no permite que una clase existente sea declarada de nuevo y en caso de hacerse, lanzará un error de tipo. -

Sintaxis

+## Sintaxis -
class name [extends] {
+```js
+class name [extends] {
   // Contenido de la clase
 }
-
+``` -

Descripción

+## Descripción -

De la misma manera que con las expresiones de clase, el contenido de una clase se ejecuta en modo estricto.

+De la misma manera que con las expresiones de clase, el contenido de una clase se ejecuta en [modo estricto](/es/docs/Web/JavaScript/Reference/Strict_mode). -

Las declaraciones de clases no están {{Glossary("Hoisting", "izadas")}} (al contrario que las declaraciones de funciones).

+Las declaraciones de clases no están {{Glossary("Hoisting", "izadas")}} (al contrario que las [declaraciones de funciones](/es/docs/Web/JavaScript/Reference/Statements/function)). -

Ejemplos

+## Ejemplos -

Declaración sencilla de una clase

+### Declaración sencilla de una clase -

En el siguiente ejemplo, primero definimos la clase Polygon, luego extendemos de ella para crear la clase Square. Notar que super(), utilizado en el constructor, sólo puede ser llamado dentro del constructor y debe ser llamado antes de que la palabra clave this pueda ser usada.

+En el siguiente ejemplo, primero definimos la clase `Polygon`, luego extendemos de ella para crear la clase `Square`. Notar que `super()`, utilizado en el constructor, sólo puede ser llamado dentro del constructor y debe ser llamado antes de que la palabra clave `this` pueda ser usada. -
class Polygon {
+```js
+class Polygon {
   constructor(height, width) {
     this.name = 'Polygon';
     this.height = height;
@@ -44,38 +44,22 @@ class Square extends Polygon {
     super(length, length);
     this.name = 'Square';
   }
-}
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentarios
{{SpecName('ES6', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-class-definitions', 'Class definitions')}}{{Spec2('ESDraft')}}
- -

Compatibilidad en navegadores

+} +``` + +## Especificaciones + +| Especificación | Estado | Comentarios | +| -------------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-class-definitions', 'Class definitions')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-class-definitions', 'Class definitions')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad en navegadores {{Compat("javascript.statements.class")}} -

Ver también

+## Ver también - +- [`declaración de funciones`](/es/docs/Web/JavaScript/Reference/Statements/function) +- [`expresión de clases`](/es/docs/Web/JavaScript/Reference/Operators/class) +- [Clases](/es/docs/Web/JavaScript/Reference/Classes) diff --git a/files/es/web/javascript/reference/statements/const/index.md b/files/es/web/javascript/reference/statements/const/index.md index 15bd7f89e189e6..aab7b0246f80fd 100644 --- a/files/es/web/javascript/reference/statements/const/index.md +++ b/files/es/web/javascript/reference/statements/const/index.md @@ -10,59 +10,53 @@ tags: translation_of: Web/JavaScript/Reference/Statements/const original_slug: Web/JavaScript/Referencia/Sentencias/const --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

Resumen

+## Resumen -

Las variables constantes presentan un ámbito de bloque (block scope) tal y como lo hacen las variables definidas usando la instrucción let, con la particularidad de que el valor de una constante no puede cambiarse a través de la reasignación. Las constantes no se pueden redeclarar.

+Las variables constantes presentan un **ámbito de bloque** ([block ](/es/docs/Web/JavaScript/Referencia/Sentencias/block)scope) tal y como lo hacen las variables definidas usando la instrucción [let](/es/docs/Web/JavaScript/Referencia/Sentencias/let), con la particularidad de que el valor de una constante no puede cambiarse a través de la reasignación. Las constantes **no se pueden redeclarar**. -
-

La redeclaración de la misma variable bajo un mismo ámbito léxico terminaría en un error de tipo SyntaxError. Esto también es extensible si usamos var dentro del ámbito léxico. Esto nos salvaguarda de redeclarar una variable accidentalmente y que no era posible solo con var.

-
+> **Advertencia:** La **redeclaración** de la misma variable bajo un mismo [ámbito léxico](https://www.ecma-international.org/ecma-262/6.0/#sec-lexical-environments) terminaría en un error de tipo [`SyntaxError`](https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/SyntaxError "SyntaxError"). Esto también es **extensible** si usamos `var` dentro del ámbito léxico. Esto nos salvaguarda de redeclarar una variable accidentalmente y que no era posible solo con `var.` -

Sintaxis

+## Sintaxis -
const varname1 = value1 [, varname2 = value2 [, varname3 = value3 [, ... [, varnameN = valueN]]]];
+ const varname1 = value1 [, varname2 = value2 [, varname3 = value3 [, ... [, varnameN = valueN]]]]; -
-
varnameN
-
Nombre de la constante. Puede ser un identificador legal.
-
+- `varnameN` + - : Nombre de la constante. Puede ser un identificador legal. -
-
valueN
-
Valor de la constante. Puede ser cualquier expresión legal.
-
+ -

Descripción

+- `valueN` + - : Valor de la constante. Puede ser cualquier expresión legal. -

Esta declaración crea una constante cuyo alcance puede ser global o local para el bloque en el que se declara. Es necesario inicializar la constante, es decir, se debe especificar su valor en la misma sentencia en la que se declara, lo que tiene sentido, dado que no se puede cambiar posteriormente.

+## Descripción -

La declaración de una constante crea una referencia de sólo lectura. No significa que el valor que tiene sea inmutable, sino que el identificador de variable no puede ser reasignado, por lo tanto, en el caso de que la asignación a la constante sea un objeto, el objeto sí que puede ser alterado.

+Esta declaración crea una constante cuyo alcance puede ser **global o local para el bloque en el que se declara**. Es necesario **inicializar** la constante, es decir, se debe especificar su valor en la misma sentencia en la que se declara, lo que tiene sentido, dado que no se puede cambiar posteriormente. -

Una constante no puede compartir su nombre con una función o variable en el mismo ámbito.

+La declaración de una constante crea una referencia de sólo lectura. No significa que el valor que tiene sea inmutable, sino que el identificador de variable no puede ser reasignado, por lo tanto, en el caso de que la asignación a la constante sea un objeto, el objeto sí que puede ser alterado. -

Todas las consideraciones acerca de la " zona muerta temporal " se aplican tanto a letyconst.

+Una constante **no puede compartir su nombre** con una función o variable en el mismo ámbito. -
-

const es fue una extensión especifica de Mozilla, no es era soportado en IE, pero tiene tenia soporte parcial por Opera desde la versión 9.0 y por Safari.

-
+Todas las consideraciones acerca de la " [zona muerta temporal](/es/docs/Web/JavaScript/Referencia/Sentencias/let#muerta) " se aplican tanto a [`let`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let)y`const`. -

Ejemplos

+> **Advertencia:** `const` ~~es~~ **fue** una **extensión especifica de Mozilla**, no ~~es~~ **era** soportado en IE, pero ~~tiene~~ **tenia** soporte parcial por Opera desde la versión 9.0 y por Safari. -

El siguiente ejemplo produce una salida "a es 7."

+## Ejemplos -
const a = 7;
+El siguiente ejemplo produce una salida `"a es 7."`
+
+```js
+const a = 7;
 document.writeln("a es " + a + ".");
-
+``` -

Las siguientes instrucciones demuestra como se comporta const

+Las siguientes instrucciones demuestra como se comporta `const` -
-

Las instrucciones deberán ser ordenadas correctamente para conseguir la salida esperada a los ejemplos

-
+> **Advertencia:** Las instrucciones deberán ser ordenadas correctamente para conseguir la salida esperada a los ejemplos -
// NOTA: Las constantes pueden ser declaradas en mayusculas o minusculaas,
+```js
+// NOTA: Las constantes pueden ser declaradas en mayusculas o minusculaas,
 //pero por convencion para distinguirlas del resto de variables se escribe todo en mayusculas
 
 // definimos MY_FAV como constante y le damos un valor de 7
@@ -117,12 +111,11 @@ const MY_ARRAY = [];
 // es posible empujar elementos en el array
 MY_ARRAY.push('A'); // ["A"]
 // Sin embargo, asignar un nuevo array a la variable lanza error
-MY_ARRAY = ['B']
+MY_ARRAY = ['B'] +``` -

Ver también

+## Ver también - +- {{jsxref("Sentencias/var", "var")}} +- {{jsxref("Sentencias/let", "let")}} +- [Constants in JavaScript Guide](/en/JavaScript/Guide/Values,_Variables,_and_Literals#Constants "en/JavaScript/Guide/Values, Variables, and Literals#Constants") diff --git a/files/es/web/javascript/reference/statements/continue/index.md b/files/es/web/javascript/reference/statements/continue/index.md index 04945494536655..f06c5b5f406c2c 100644 --- a/files/es/web/javascript/reference/statements/continue/index.md +++ b/files/es/web/javascript/reference/statements/continue/index.md @@ -7,61 +7,72 @@ tags: translation_of: Web/JavaScript/Reference/Statements/continue original_slug: Web/JavaScript/Referencia/Sentencias/continue --- -
- {{jsSidebar("Statements")}}
-

Resumen

-

Termina la ejecución de las sentencias de la iteración actual del bucle actual o la etiqueta y continua la ejecución del bucle con la próxima iteración.

-

Sintaxis

-
continue [ etiqueta ];
-
-
- label
-
- Identificador asociado con la etiqueta de la sentencia.
-
-

Descripción

-

En contraste con la sentencia {{jsxref("Sentencias/break", "break")}}, continue no termina la ejecución del bucle por completo; en cambio,

-
    -
  • En un bucle {{jsxref("Sentencias/while", "while")}}, salta de regreso a la condición.
  • -
-
    -
  • En un bucle {{jsxref("Sentencias/for", "for")}}, salta a la expresión actualizada.
  • -
-

La sentencia continue puede incluir una etiqueta opcional que permite al programa saltar a la siguiente iteración del bucle etiquetado en vez del bucle actual. En este caso, la sentencia continue necesita estar anidada dentro de esta sentecia etiquetada.

-

Ejemplos

-

Ejemplo: Usando continue con while

-

El siguiente ejemplo muestra un bucle {{jsxref("Sentencias/while", "while")}} que tiene una sentencia continue que se ejecuta cuando el valor de i es 3. Así, n toma los valores 1, 3, 7 y 12.

-
i = 0;
+{{jsSidebar("Statements")}}
+
+## Resumen
+
+Termina la ejecución de las sentencias de la iteración actual del bucle actual o la etiqueta y continua la ejecución del bucle con la próxima iteración.
+
+## Sintaxis
+
+    continue [ etiqueta ];
+
+- `label`
+  - : Identificador asociado con la etiqueta de la sentencia.
+
+### Descripción
+
+En contraste con la sentencia {{jsxref("Sentencias/break", "break")}}, `continue` no termina la ejecución del bucle por completo; en cambio,
+
+- En un bucle {{jsxref("Sentencias/while", "while")}}, salta de regreso a la condición.
+
+
+
+- En un bucle {{jsxref("Sentencias/for", "for")}}, salta a la expresión actualizada.
+
+La sentencia `continue` puede incluir una etiqueta opcional que permite al programa saltar a la siguiente iteración del bucle etiquetado en vez del bucle actual. En este caso, la sentencia `continue` necesita estar anidada dentro de esta sentecia etiquetada.
+
+## Ejemplos
+
+### Ejemplo: Usando `continue` con `while`
+
+El siguiente ejemplo muestra un bucle {{jsxref("Sentencias/while", "while")}} que tiene una sentencia `continue` que se ejecuta cuando el valor de `i` es 3. Así, `n` toma los valores 1, 3, 7 y 12.
+
+```js
+i = 0;
 n = 0;
-while (i < 5) {
+while (i < 5) {
    i++;
    if (i == 3)
       continue;
    n += i;
 }
-
-

Ejemplo: Usando continue con una etiqueta

-

En el siguiente ejemplo, una sentencia etiquetada checkiandj contiene una sentencia etiquetada checkj. Si se encuentra continue, el programa continua hasta encima de la sentencia checkj. Cada vez que se encuentra continue, checkj se reitera hasta que su condición devuelve false. Cuando se devuelve false, el recordatorio de la sentencia checkiandj se completa.

-

Si continue tuviese una etiqueta checkiandj, el programa continuaría hasta encima de la sentencia checkiandj.

-
checkiandj:
-while (i < 4) {
-   document.write(i + "<br>");
-   i += 1;
-
-   checkj:
-   while (j > 4) {
-      document.write(j + "<br>");
-      j -= 1;
-      if ((j % 2) == 0)
-         continue checkj;
-      document.write(j + " is odd.<br>");
-   }
-   document.write("i = " + i + "<br>");
-   document.write("j = " + j + "<br>");
-}
-
-

Vea También

-
    -
  • {{jsxref("Sentencias/break", "break")}}
  • -
  • {{jsxref("Sentencias/label", "label")}}
  • -
+``` + +### Ejemplo: Usando `continue` con una etiqueta + +En el siguiente ejemplo, una sentencia etiquetada `checkiandj` contiene una sentencia etiquetada `checkj`. Si se encuentra `continue`, el programa continua hasta encima de la sentencia `checkj`. Cada vez que se encuentra `continue`, `checkj` se reitera hasta que su condición devuelve false. Cuando se devuelve false, el recordatorio de la sentencia `checkiandj` se completa. + +Si `continue` tuviese una etiqueta `checkiandj`, el programa continuaría hasta encima de la sentencia `checkiandj`. + + checkiandj: + while (i < 4) { + document.write(i + "
"); + i += 1; + + checkj: + while (j > 4) { + document.write(j + "
"); + j -= 1; + if ((j % 2) == 0) + continue checkj; + document.write(j + " is odd.
"); + } + document.write("i = " + i + "
"); + document.write("j = " + j + "
"); + } + +## Vea También + +- {{jsxref("Sentencias/break", "break")}} +- {{jsxref("Sentencias/label", "label")}} diff --git a/files/es/web/javascript/reference/statements/debugger/index.md b/files/es/web/javascript/reference/statements/debugger/index.md index 429e81973ea3b8..4c6d75e77d8754 100644 --- a/files/es/web/javascript/reference/statements/debugger/index.md +++ b/files/es/web/javascript/reference/statements/debugger/index.md @@ -7,72 +7,45 @@ tags: translation_of: Web/JavaScript/Reference/Statements/debugger original_slug: Web/JavaScript/Referencia/Sentencias/debugger --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

La sentencia debugger invoca cualquier funcionalidad de depuración disponible, tiene la misma función que un breakpoint. Si la funcionalidad de depuración no está disponible, esta sentencia no tiene efecto alguno.

+La sentencia **debugger** invoca cualquier funcionalidad de depuración disponible, tiene la misma función que un breakpoint. Si la funcionalidad de depuración no está disponible, esta sentencia no tiene efecto alguno. -

Sintaxis

+## Sintaxis -
debugger;
+ debugger; -

Ejemplos

+## Ejemplos -

El siguiente ejemplo muestra un bloque de código donde ha sido insertada una sentencia debugger, para invocar el depurador (si existe) cuando la función es ejecutada.

+El siguiente ejemplo muestra un bloque de código donde ha sido insertada una sentencia debugger, para invocar el depurador (si existe) cuando la función es ejecutada. -
function codigoPotencialmenteDefectuoso() {
+```js
+function codigoPotencialmenteDefectuoso() {
     debugger;
     // realizar paso a paso o examinar código que contiene
     // potenciales errores
-}
+} +``` -

Cuando el depurador es invocado, la ejecución se detiene en la sentencia debugger. Es como un punto de interrupción en el script.

+Cuando el depurador es invocado, la ejecución se detiene en la sentencia debugger. Es como un punto de interrupción en el script. -

Paused at a debugger statement.

+[![Paused at a debugger statement.](https://mdn.mozillademos.org/files/6963/Screen%20Shot%202014-02-07%20at%209.14.35%20AM.png)]() -

Especificaciones

+## Especificaciones - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('ESDraft', '#sec-debugger-statement', 'Debugger statement')}}{{Spec2('ESDraft')}}
{{SpecName('ES6', '#sec-debugger-statement', 'Debugger statement')}}{{Spec2('ES6')}}
{{SpecName('ES5.1', '#sec-12.15', 'Debugger statement')}}{{Spec2('ES5.1')}}Definición inicial
{{SpecName('ES3', '#sec-7.5.3', 'Debugger statement')}}{{Spec2('ES3')}}
{{SpecName('ES1', '#sec-7.4.3', 'Debugger statement')}}{{Spec2('ES1')}}Solo mencionada como palabra reservada
+| Specification | Status | Comment | +| ------------------------------------------------------------------------------------------------ | ---------------------------- | -------------------------------------- | +| {{SpecName('ESDraft', '#sec-debugger-statement', 'Debugger statement')}} | {{Spec2('ESDraft')}} | | +| {{SpecName('ES6', '#sec-debugger-statement', 'Debugger statement')}} | {{Spec2('ES6')}} | | +| {{SpecName('ES5.1', '#sec-12.15', 'Debugger statement')}} | {{Spec2('ES5.1')}} | Definición inicial | +| {{SpecName('ES3', '#sec-7.5.3', 'Debugger statement')}} | {{Spec2('ES3')}} | | +| {{SpecName('ES1', '#sec-7.4.3', 'Debugger statement')}} | {{Spec2('ES1')}} | Solo mencionada como palabra reservada | -

Compatibilidad con navegadores

+## Compatibilidad con navegadores {{Compat("javascript.statements.debugger")}} -

Vea también

+## Vea también - +- [Debugging JavaScript](/es/docs/Debugging_JavaScript) +- [The Debugger in the Firefox Developer Tools](/es/docs/Tools/Debugger) diff --git a/files/es/web/javascript/reference/statements/do...while/index.md b/files/es/web/javascript/reference/statements/do...while/index.md index b1c6ff2ea8c2d8..6680adcbcc47f8 100644 --- a/files/es/web/javascript/reference/statements/do...while/index.md +++ b/files/es/web/javascript/reference/statements/do...while/index.md @@ -7,44 +7,40 @@ tags: translation_of: Web/JavaScript/Reference/Statements/do...while original_slug: Web/JavaScript/Referencia/Sentencias/do...while --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

La sentencia (hacer mientras) crea un bucle que ejecuta una sentencia especificada, hasta que la condición de comprobación se evalúa como falsa. La condición se evalúa después de ejecutar la sentencia, dando como resultado que la sentencia especificada se ejecute al menos una vez.

+La sentencia (hacer mientras) crea un bucle que ejecuta una sentencia especificada, hasta que la condición de comprobación se evalúa como falsa. La condición se evalúa después de ejecutar la sentencia, dando como resultado que la sentencia especificada se ejecute al menos una vez. -
{{EmbedInteractiveExample("pages/js/statement-dowhile.html")}}
+{{EmbedInteractiveExample("pages/js/statement-dowhile.html")}} -

Sintaxis

+## Sintaxis -
do
-   sentencia
-while (condición);
-
+ do + sentencia + while (condición); -
-
sentencia
-
Una sentencia que se ejecuta al menos una vez y es reejecutada cada vez que la condición se evalúa a verdadera. Para ejecutar múltiples sentencias dentro de un bucle, utilice la sentencia {{jsxref("Statements/block", "block")}} ({ ... }) para agrupar aquellas sentencias.
-
+- `sentencia` + - : Una sentencia que se ejecuta al menos una vez y es reejecutada cada vez que la condición se evalúa a verdadera. Para ejecutar múltiples sentencias dentro de un bucle, utilice la sentencia {{jsxref("Statements/block", "block")}} (`{ ... }`) para agrupar aquellas sentencias. -
-
condición
-
Una expresión se evalúa después de cada pase del bucle. Si condición se evalúa como verdadera, la sentencia se re-ejecuta. Cuando condición se evalúa como falsa, el control pasa a la siguiente sentencia hacer mientras.
-
+ -

Ejemplos

+- `condición` + - : Una expresión se evalúa después de cada pase del bucle. Si `condición` se evalúa como verdadera, la `sentencia` se re-ejecuta. Cuando `condición` se evalúa como falsa, el control pasa a la siguiente sentencia hacer mientras. -

Usando hacer mientras

+## Ejemplos -

En el siguiente ejemplo, el bucle hacer mientras itera al menos una vez y se reitera hasta que i ya no sea menor que 5.

+### Usando `hacer mientras` -
do {
+En el siguiente ejemplo, el bucle hacer mientras itera al menos una vez y se reitera hasta que `i` ya no sea menor que 5.
+
+```js
+do {
    i += 1;
    document.write(i);
-} while (i < 5);
-
+} while (i < 5); +``` -

Vea También

+## Vea También -
    -
  • {{jsxref("Sentencias/while", "while")}}
  • -
  • {{jsxref("Sentencias/for", "for")}}
  • -
+- {{jsxref("Sentencias/while", "while")}} +- {{jsxref("Sentencias/for", "for")}} diff --git a/files/es/web/javascript/reference/statements/empty/index.md b/files/es/web/javascript/reference/statements/empty/index.md index 64613571ad4431..bb720acb6e586a 100644 --- a/files/es/web/javascript/reference/statements/empty/index.md +++ b/files/es/web/javascript/reference/statements/empty/index.md @@ -8,87 +8,61 @@ tags: translation_of: Web/JavaScript/Reference/Statements/Empty original_slug: Web/JavaScript/Referencia/Sentencias/Empty --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

Un empty statement o sentencia vacía es usada para no proveer una sentencia, incluso si la sintaxis JavaScript esperase una.

+Un **empty statement** o sentencia vacía es usada para no proveer una sentencia, incluso si la sintaxis JavaScript esperase una. -

Sintaxis

+## Sintaxis -
;
-
+ ; -

Descripción

+## Descripción -

La sentencia vacía es un punto y coma (;) que indica que no se ejecutará ninguna sentencia, incluso si la sintaxis JavaScript requiere una. El comportamiento opuesto, donde se desean ejecutar varias sentencias pero JavaScript solo permite una sola, es posible usando una sentencia de bloque; la cual combina varias declaraciones en una.

+La sentencia vacía es un punto y coma (;) que indica que no se ejecutará ninguna sentencia, incluso si la sintaxis JavaScript requiere una. El comportamiento opuesto, donde se desean ejecutar varias sentencias pero JavaScript solo permite una sola, es posible usando una [sentencia de bloque](/es/docs/Web/JavaScript/Referencia/Sentencias/block); la cual combina varias declaraciones en una. -

Ejemplos

+## Ejemplos -

La sentencia vacía es comúnmente usada en bucles. Por ejemplo, un bucle for sin bloque de sentencias:

+La sentencia vacía es comúnmente usada en bucles. Por ejemplo, un bucle for sin bloque de sentencias: -
var arr = [1, 2, 3];
+```js
+var arr = [1, 2, 3];
 
 // Asignar el valor 0 a todos los elementos del array
-for (i = 0; i < arr.length; arr[i++] = 0) /* sentencia vacía */ ;
+for (i = 0; i < arr.length; arr[i++] = 0) /* sentencia vacía */ ;
 
 console.log(arr);
 // [0, 0, 0]
-
+``` -

Nota: Es una buena práctica comentar el uso intencional de la sentencia vacía, ya que no es fácilmente distinguible de un punto y coma normal. Un ejemplo de uso probablemente no intencional:

+**Nota:** Es una buena práctica comentar el uso intencional de la sentencia vacía, ya que no es fácilmente distinguible de un punto y coma normal. Un ejemplo de uso probablemente no intencional: -
if (condicion);  // Esta condición no ejerce ningún control!
+```js
+if (condicion);  // Esta condición no ejerce ningún control!
    borrarTodo()  // Por lo cual esta sentencia será ejecutada siempre!!!
-
- -

Otro ejemplo de uso:

- -
var a = 1, b = 1;
-if((a == 0) || (b = 0)); // Asigna a 'b' el valor cero si 'a' no es cero.
-console.log(b); // 0
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ESDraft', '#sec-empty-statement', 'Empty statement')}}{{Spec2('ESDraft')}}
{{SpecName('ES6', '#sec-empty-statement', 'Empty statement')}}{{Spec2('ES6')}}
{{SpecName('ES5.1', '#sec-12.3', 'Empty statement')}}{{Spec2('ES5.1')}}
{{SpecName('ES3', '#sec-12.3', 'Empty statement')}}{{Spec2('ES3')}}
{{SpecName('ES1', '#sec-12.3', 'Empty statement')}}{{Spec2('ES1')}}Definición inicial.
- -

Compatibilidad en Navegadores

+``` + +Otro ejemplo de uso: + +```js +var a = 1, b = 1; +if((a == 0) || (b = 0)); // Asigna a 'b' el valor cero si 'a' no es cero. +console.log(b); // 0 +``` + +## Especificaciones + +| Especificación | Estado | Comentario | +| ---------------------------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ESDraft', '#sec-empty-statement', 'Empty statement')}} | {{Spec2('ESDraft')}} | | +| {{SpecName('ES6', '#sec-empty-statement', 'Empty statement')}} | {{Spec2('ES6')}} | | +| {{SpecName('ES5.1', '#sec-12.3', 'Empty statement')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES3', '#sec-12.3', 'Empty statement')}} | {{Spec2('ES3')}} | | +| {{SpecName('ES1', '#sec-12.3', 'Empty statement')}} | {{Spec2('ES1')}} | Definición inicial. | + +## Compatibilidad en Navegadores {{Compat("javascript.statements.empty")}} -

Vea también

+## Vea también -
    -
  • {{jsxref("Sentencias/block", "Sentencia de bloque")}}
  • -
+- {{jsxref("Sentencias/block", "Sentencia de bloque")}} diff --git a/files/es/web/javascript/reference/statements/export/index.md b/files/es/web/javascript/reference/statements/export/index.md index 2c700f6f944c29..4de1384b97edb9 100644 --- a/files/es/web/javascript/reference/statements/export/index.md +++ b/files/es/web/javascript/reference/statements/export/index.md @@ -10,85 +10,97 @@ tags: translation_of: Web/JavaScript/Reference/Statements/export original_slug: Web/JavaScript/Referencia/Sentencias/export --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

La declaración export se utiliza al crear módulos de JavaScript para exportar funciones, objetos o tipos de dato primitivos del módulo para que puedan ser utilizados por otros programas con la sentencia {{jsxref("Statements/import", "import")}}.

+La declaración **`export`** se utiliza al crear módulos de JavaScript para exportar funciones, objetos o tipos de dato primitivos del módulo para que puedan ser utilizados por otros programas con la sentencia {{jsxref("Statements/import", "import")}}. -

Los módulos exportados están en {{jsxref("Strict_mode","strict mode")}} tanto si se declaran así como si no. La sentencia export no puede ser utilizada en scripts embebidos.

+Los módulos exportados están en {{jsxref("Strict_mode","strict mode")}} tanto si se declaran así como si no. La sentencia export no puede ser utilizada en scripts embebidos. -

Sintaxis

+## Sintaxis -
export { name1, name2, …, nameN };
-export { variable1 as name1, variable2 as name2, …, nameN };
-export let name1, name2, …, nameN; // también var
-export let name1 = …, name2 = …, …, nameN; // también var, const
+```js
+export { name1, name2, …, nameN };
+export { variable1 as name1, variable2 as name2, …, nameN };
+export let name1, name2, …, nameN; // también var
+export let name1 = …, name2 = …, …, nameN; // también var, const
 export function FunctionName(){...}
 export class ClassName {...}
 
-export default expression;
+export default expression;
 export default function (…) { … } // también class, function*
 export default function name1(…) { … } // también class, function*
-export { name1 as default, … };
+export { name1 as default, … };
 
 export * from …;
-export { name1, name2, …, nameN } from …;
-export { import1 as name1, import2 as name2, …, nameN } from …;
+export { name1, name2, …, nameN } from …;
+export { import1 as name1, import2 as name2, …, nameN } from …;
 export { default } from …;
-
+``` -
-
nameN
-
Identificador a ser exportado (es posible importarlo a través de {{jsxref("Statements/import", "import")}} en otro script).
-
+- `nameN` + - : Identificador a ser exportado (es posible importarlo a través de {{jsxref("Statements/import", "import")}} en otro script). -

Descripción

+## Descripción -

Existen dos tipos diferentes de exportación , nombrada y por defecto. Se pueden tener varias exportaciones nombradas por módulo pero sólo una exportación por defecto. Cada tipo corresponde a una de las sintaxis siguientes:

+Existen dos tipos diferentes de exportación , **nombrada** y **por defecto**. Se pueden tener varias exportaciones nombradas por módulo pero sólo una exportación por defecto. Cada tipo corresponde a una de las sintaxis siguientes: -
    -
  • Exports con nombre: -
    // exporta la función previamente declarada
    -export { myFunction };
    +- Exports con nombre:
     
    -// exporta una constante
    -export const foo = Math.sqrt(2);
    -
  • -
  • Exports por defecto (function): -
    export default function() {} 
    -
  • -
  • Exports por defecto (class): -
    export default class {} 
    -
  • -
+ ```js + // exporta la función previamente declarada + export { myFunction }; -

Los export con nombre son útiles cuando se necesitan exportar múltiples valores. Durante el import, es obligatorio usar el mismo nombre que el correspondiente objeto.

+ // exporta una constante + export const foo = Math.sqrt(2); + ``` -

Pero un export por defecto puede ser importado con cualquier nombre, por ejemplo:

+- Exports por defecto (function): -
export default k = 12; // en el archivo test.js
+  ```js
+  export default function() {}
+  ```
+
+- Exports por defecto (class):
+
+  ```js
+  export default class {}
+  ```
+
+Los export con nombre son útiles cuando se necesitan exportar múltiples valores. Durante el import, es obligatorio usar el mismo nombre que el correspondiente objeto.
+
+Pero un export por defecto puede ser importado con cualquier nombre, por ejemplo:
+
+```js
+export default k = 12; // en el archivo test.js
 
 import m from './test' // notese que tenemos la libertad de usar import m en lugar de import k, porque k era el export por defecto
 
-console.log(m); // escribirá 12
+console.log(m); // escribirá 12 +``` -

Sólo puede haber un export por defecto.

+Sólo puede haber un export por defecto. -

La siguiente sintaxis no exporta un export por defecto del módulo importado:

+La siguiente sintaxis no exporta un export por defecto del módulo importado: -
export * from …;
+```js +export * from …; +``` -

Si necesita exportar por defecto, escriba lo siguiente en su lugar:

+Si necesita exportar por defecto, escriba lo siguiente en su lugar: -
import mod from 'mod';
-export default mod;
+```js +import mod from 'mod'; +export default mod; +``` -

Ejemplos

+## Ejemplos -

Usando exports con nombre

+### Usando exports con nombre -

En el módulo, podremos usar el siguiente código:

+En el módulo, podremos usar el siguiente código: -
// module "my-module.js"
+```js
+// module "my-module.js"
 function cube(x) {
   return x * x * x;
 }
@@ -102,12 +114,14 @@ var graph = {
         console.log('From graph draw function');
     }
 }
-export { cube, foo, graph };
+export { cube, foo, graph }; +``` -

De esta forma, en otro script, podemos tener:

+De esta forma, en otro script, podemos tener: -
//You should use this script in html with the type module ,
-//eg ''<script type="module" src="demo.js"></script>",
+```js
+//You should use this script in html with the type module ,
+//eg ''",
 //open the page in a httpserver,otherwise there will be a CORS policy error.
 //script demo.js
 
@@ -119,58 +133,42 @@ graph.options = {
 graph.draw();
 console.log(cube(3)); // 27
 console.log(foo);    // 4.555806215962888
-
+``` -

Usando el export por defecto

+### Usando el export por defecto -

Si queremos exportar un sólo valor o tener uno por defecto para nuestro módulo, podemos usar un export por defecto:

+Si queremos exportar un sólo valor o tener uno por defecto para nuestro módulo, podemos usar un export por defecto: -
// module "my-module.js"
+```js
+// module "my-module.js"
 export default function cube(x) {
   return x * x * x;
 }
-
- -

De esta forma la importación de un export default será sumamemte sencilla:

- -
import cube from 'my-module';
-console.log(cube(3)); // 27
- -

Tenga en cuenta que no es posible usar var, let o const con export default.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{SpecName('ES6', '#sec-exports', 'Exports')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-exports', 'Exports')}}{{Spec2('ESDraft')}}
- -

Compatiblidad en navegadores

- -

{{Compat("javascript.statements.export")}}

- -

Vea también

- - - -

+``` + +De esta forma la importación de un export default será sumamemte sencilla: + +```js +import cube from 'my-module'; +console.log(cube(3)); // 27 +``` + +Tenga en cuenta que no es posible usar `var`, `let` o `const` con `export default`. + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-exports', 'Exports')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-exports', 'Exports')}} | {{Spec2('ESDraft')}} | | + +## Compatiblidad en navegadores + +{{Compat("javascript.statements.export")}} + +## Vea también + +- {{jsxref("Sentencias/import", "import")}} +- [ES6 in Depth: Modules](https://hacks.mozilla.org/2015/08/es6-in-depth-modules/), publicación del blog de Hacks por Jason Orendorff +- [ES modules: A cartoon deep-dive](https://hacks.mozilla.org/2018/03/es-modules-a-cartoon-deep-dive/), publicación del blog de Hacks por Lin Clark +- [Libro de Axel Rauschmayer: "Exploring JS: Modules"](http://exploringjs.com/es6/ch_modules.html) diff --git a/files/es/web/javascript/reference/statements/for...of/index.md b/files/es/web/javascript/reference/statements/for...of/index.md index 593c48f2cf1024..c62abb26821069 100644 --- a/files/es/web/javascript/reference/statements/for...of/index.md +++ b/files/es/web/javascript/reference/statements/for...of/index.md @@ -9,31 +9,27 @@ tags: translation_of: Web/JavaScript/Reference/Statements/for...of original_slug: Web/JavaScript/Referencia/Sentencias/for...of --- -
-
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

La sentencia sentencia for...of ejecuta un bloque de código para cada elemento de un objeto iterable, como lo son: {{jsxref("String")}}, {{jsxref("Array")}}, objetos similares a array (por ejemplo, {{jsxref("Functions/arguments", "arguments")}} or NodeList), {{jsxref("TypedArray")}}, {{jsxref("Map")}}, {{jsxref("Set")}} e iterables definidos por el usuario.

-
+La sentencia **sentencia `for...of`** ejecuta un bloque de código para cada elemento de un [objeto iterable](/es/docs/Web/JavaScript/Guide/iterable), como lo son: {{jsxref("String")}}, {{jsxref("Array")}}, objetos similares a array (por ejemplo, {{jsxref("Functions/arguments", "arguments")}} or [`NodeList`](/es/docs/Web/API/NodeList "NodeList objects are collections of nodes, usually returned by properties such as Node.childNodes and methods such as document.querySelectorAll().")), {{jsxref("TypedArray")}}, {{jsxref("Map")}}, {{jsxref("Set")}} e iterables definidos por el usuario. -

Sintaxis

+## Sintaxis -
for (variable of iterable) {
-  statement
-}
-
+ for (variable of iterable) { + statement + } -
-
variable
-
En cada iteración el elemento (propiedad enumerable) correspondiente es asignado a variable.
-
iterable
-
Objeto cuyas propiedades enumerables son iteradas.
-
+- `variable` + - : En cada iteración el elemento (propiedad enumerable) correspondiente es asignado a _variable_. +- `iterable` + - : Objeto cuyas propiedades enumerables son iteradas. -

Ejemplos

+## Ejemplos -

Iterando un {{jsxref("Array")}}

+### Iterando un {{jsxref("Array")}} -
let iterable = [10, 20, 30];
+```js
+let iterable = [10, 20, 30];
 
 for (let value of iterable) {
   value += 1;
@@ -42,43 +38,50 @@ for (let value of iterable) {
 // 11
 // 21
 // 31
-
+``` -

Es posible usar const en lugar de let si no se va a modificar la variable dentro del bloque.

+Es posible usar `const` en lugar de `let `si no se va a modificar la variable dentro del bloque. -
let iterable = [10, 20, 30];
+```js
+let iterable = [10, 20, 30];
 
 for (const value of iterable) {
   console.log(value);
 }
 // 10
 // 20
-// 30
+// 30 +``` -

Iterando un {{jsxref("String")}}

+### Iterando un {{jsxref("String")}} -
let iterable = "boo";
+```js
+let iterable = "boo";
 
 for (let value of iterable) {
   console.log(value);
 }
 // "b"
 // "o"
-// "o"
+// "o" +``` -

Iterando un {{jsxref("TypedArray")}}

+### Iterando un {{jsxref("TypedArray")}} -
let iterable = new Uint8Array([0x00, 0xff]);
+```js
+let iterable = new Uint8Array([0x00, 0xff]);
 
 for (let value of iterable) {
   console.log(value);
 }
 // 0
-// 255
+// 255 +``` -

Iterando un {{jsxref("Map")}}

+### Iterando un {{jsxref("Map")}} -
let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]);
+```js
+let iterable = new Map([["a", 1], ["b", 2], ["c", 3]]);
 
 for (let entry of iterable) {
   console.log(entry);
@@ -92,22 +95,26 @@ for (let [key, value] of iterable) {
 }
 // 1
 // 2
-// 3
+// 3 +``` -

Iterando un {{jsxref("Set")}}

+### Iterando un {{jsxref("Set")}} -
let iterable = new Set([1, 1, 2, 2, 3, 3]);
+```js
+let iterable = new Set([1, 1, 2, 2, 3, 3]);
 
 for (let value of iterable) {
   console.log(value);
 }
 // 1
 // 2
-// 3
+// 3 +``` -

Iterando un objeto arguments

+### Iterando un objeto [arguments](/es/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments) -
(function() {
+```js
+(function() {
   for (let argument of arguments) {
     console.log(argument);
   }
@@ -115,40 +122,44 @@ for (let value of iterable) {
 
 // 1
 // 2
-// 3
+// 3 +``` -

Iterando una colección del DOM

+### Iterando una colección del DOM -

Iterando colecciones del DOM como un {{domxref("NodeList")}}: el siguiente ejemplo añade la clase "read" a los párrafos (<p>) que son descendientes directos de un (<article>):

+Iterando colecciones del DOM como un {{domxref("NodeList")}}: el siguiente ejemplo añade la clase "read" a los párrafos (`

`) que son descendientes directos de un (`

`): -
// Nota: Esto solo funcionará en plataformas que tengan
+```js
+// Nota: Esto solo funcionará en plataformas que tengan
 // implementado NodeList.prototype[Symbol.iterator]
-let articleParagraphs = document.querySelectorAll("article > p");
+let articleParagraphs = document.querySelectorAll("article > p");
 
 for (let paragraph of articleParagraphs) {
   paragraph.classList.add("read");
-}
+} +``` -

Clausurando iteraciones

+### Clausurando iteraciones -

En los bucles for...of, se puede causar que la iteración termine de un modo brusco usando: break, continue[4], throw or return[5]. En estos casos la iteración se cierra.

+En los bucles `for...of`, se puede causar que la iteración termine de un modo brusco usando: `break`, `continue[4]`, `throw` or `return[5]`. En estos casos la iteración se cierra. -
function* foo(){
-  yield 1;
-  yield 2;
-  yield 3;
-};
+    function* foo(){
+      yield 1;
+      yield 2;
+      yield 3;
+    };
 
-for (let o of foo()) {
-  console.log(o);
-  break; // closes iterator, triggers return
-}
+ for (let o of foo()) { + console.log(o); + break; // closes iterator, triggers return + } -

Iterando generadores

+### Iterando generadores -

También es posible iterar las nuevas funciones generator:

+También es posible iterar las nuevas funciones **[generator](/es/docs/Web/JavaScript/Reference/Statements/function*)**: -
function* fibonacci() { // una función generador
+```js
+function* fibonacci() { // una función generador
   let [prev, curr] = [0, 1];
   while (true) {
     [prev, curr] = [curr, prev + curr];
@@ -159,18 +170,16 @@ for (let o of foo()) {
 for (let n of fibonacci()) {
   console.log(n);
   // interrumpir la secuencia en 1000
-  if (n >= 1000) {
+  if (n >= 1000) {
     break;
   }
-}
- -
-

No se deben reutilizar los generadores

+} +``` -

Los generadores no deben ser reutilizados, incluso si el bucle for...of se ha terminado antes de tiempo con la sentencia break. Una vez abandonado el bucle, el generador está cerrado y tratar de iterar sobre él de nuevo no dará más resultados. Firefox no ha implementado aún este comportamiento y el generador puede ser reutilizado en contra de lo escrito en el estándar ES6 (13.7.5.13, step 5m), pero esto cambiará una vez que el bug {{Bug(1147371)}} haya sido corregido.

-
+> **Nota:** #### No se deben reutilizar los generadoresLos generadores no deben ser reutilizados, incluso si el bucle **`for...of`** se ha terminado antes de tiempo con la sentencia [break](/es/docs/Web/JavaScript/Referencia/Sentencias/break). Una vez abandonado el bucle, el generador está cerrado y tratar de iterar sobre él de nuevo no dará más resultados. Firefox no ha implementado aún este comportamiento y el generador puede ser reutilizado en contra de lo escrito en el estándar ES6 ([13.7.5.13, step 5m](https://www.ecma-international.org/ecma-262/6.0/#sec-13.7.5.13)), pero esto cambiará una vez que el bug {{Bug(1147371)}} haya sido corregido. -
var gen = (function *(){
+```js example-bad
+var gen = (function *(){
   yield 1;
   yield 2;
   yield 3;
@@ -183,18 +192,20 @@ for (let o of gen) {
 // El generador no debe ser reutilizado, lo siguiente no tiene sentido
 for (let o of gen) {
   console.log(o); // Nunca será llamado
-}
+} +``` -

Iterando otros objetos iterables

+### Iterando otros objetos iterables -

Es posible, además, iterar un objeto que explicitamente implemente el protocolo iterable:

+Es posible, además, iterar un objeto que explicitamente implemente el protocolo [iterable](/es/docs/Web/JavaScript/Reference/Iteration_protocols#iterable): -
var iterable = {
+```js
+var iterable = {
   [Symbol.iterator]() {
     return {
       i: 0,
       next() {
-        if (this.i < 3) {
+        if (this.i < 3) {
           return { value: this.i++, done: false };
         }
         return { value: undefined, done: true };
@@ -208,17 +219,19 @@ for (var value of iterable) {
 }
 // 0
 // 1
-// 2
+// 2 +``` -

Diferencia entre for...of y for...in

+### Diferencia entre `for...of` y `for...in` -

El bucle for...in iterará sobre todas las propiedades de un objeto. Más tecnicamente, iterará sobre cualquier propiedad en el objeto que haya sido internamente definida con su propiedad [[Enumerable]] configurada como true.

+El bucle `for...in iterará sobre todas las propiedades de un objeto.` Más tecnicamente, iterará sobre cualquier propiedad en el objeto que haya sido internamente definida con su propiedad `[[Enumerable]] `configurada como `true`. -

La sintaxis de for...of es específica para las colecciones, y no para todos los objetos. Esta Iterará sobre cualquiera de los elementos de una colección que tengan la propiedad [Symbol.iterator].

+La sintaxis de **`for...of` **es específica para las **colecciones**, y no para todos los objetos. Esta Iterará sobre cualquiera de los elementos de una colección que tengan la propiedad `[Symbol.iterator]`. -

El siguiente ejemplo muestra las diferencias entre un bucle for...of y un bucle for...in.

+El siguiente ejemplo muestra las diferencias entre un bucle** `for...of`** y un bucle **f`or...in`**. -
let arr = [3, 5, 7];
+```js
+let arr = [3, 5, 7];
 arr.foo = "hola";
 
 for (let i in arr) {
@@ -227,37 +240,21 @@ for (let i in arr) {
 
 for (let i of arr) {
    console.log(i); // logs "3", "5", "7"
-}
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoCometario
{{SpecName('ES6', '#sec-for-in-and-for-of-statements', 'for...of statement')}}{{Spec2('ES6')}}Definición inicial.
{{SpecName('ESDraft', '#sec-for-in-and-for-of-statements', 'for...of statement')}}{{Spec2('ESDraft')}}
- -

Compatibilidad de navegadores

+} +``` + +## Especificaciones + +| Especificación | Estado | Cometario | +| ------------------------------------------------------------------------------------------------------------ | ---------------------------- | ------------------- | +| {{SpecName('ES6', '#sec-for-in-and-for-of-statements', 'for...of statement')}} | {{Spec2('ES6')}} | Definición inicial. | +| {{SpecName('ESDraft', '#sec-for-in-and-for-of-statements', 'for...of statement')}} | {{Spec2('ESDraft')}} | | + +## Compatibilidad de navegadores {{Compat("javascript.statements.for_of")}} -

Vea también

+## Vea también -
    -
  • {{jsxref("Array.prototype.forEach()")}}
  • -
  • {{jsxref("Map.prototype.forEach()")}}
  • -
+- {{jsxref("Array.prototype.forEach()")}} +- {{jsxref("Map.prototype.forEach()")}} diff --git a/files/es/web/javascript/reference/statements/for/index.md b/files/es/web/javascript/reference/statements/for/index.md index 8cb0c1131f9933..f3b73c74403e61 100644 --- a/files/es/web/javascript/reference/statements/for/index.md +++ b/files/es/web/javascript/reference/statements/for/index.md @@ -7,52 +7,51 @@ tags: translation_of: Web/JavaScript/Reference/Statements/for original_slug: Web/JavaScript/Referencia/Sentencias/for --- -
- {{jsSidebar("Statements")}}
-

Resumen

-

Crea un bucle que consiste en tres expresiones opcionales, encerradas en paréntesis y separadas por puntos y comas, seguidas de una sentencia ejecutada en un bucle.

-

Sintaxis

-
for ([expresion-inicial]; [condicion]; [expresion-final])sentencia
-
-
-
- expresion-inicial
-
- Una expresión (incluyendo las expresiones de asignación) o la declaración de variable. Típicamente se utiliza para usarse como variable contador. Esta expresión puede opcionalmente declarar nuevas variables con la palabra clave var. Estas variables no son locales del bucle, es decir, están en el mismo alcance en el que está el bucle for. El resultado de esta expresión es descartado.
-
-
-
- condicion
-
- Una expresión para ser evaluada antes de cada iteración del bucle. Si esta expresión se evalúa como verdadera, se ejecuta sentencia. Esta comprobación condicional es opcional. Si se omite, la condición siempre se evalúa como verdadera. Si la expresión se evalúa como falsa, la ejecución salta a la primera expresión que sigue al constructor de for.
-
-
-
- expresion-final
-
- Una expresión para ser evaluada al final de cada iteración del bucle. Esto ocurre antes de la siguiente evaluación de la condicion. Generalmente se usa para actualizar o incrementar la variable contador.
-
-
-
- sentencia
-
- Una sentencia que se ejecuta mientras la condición se evalúa como verdadera. Para ejecutar múltiples sentencias dentro del bucle, utilice una sentencia {{jsxref("Sentencias/block", "block")}} ({ ... }) para agrupar aquellas sentecias.
-
-

Ejemplos

-

Ejemplo: Usando for

-

La siguiente sentencia for comienza mediante la declaración de la variable i y se inicializa a 0. Comprueba que i es menor que nueve, realiza las dos sentencias con éxito e incrementa i en 1 después de cada pase del bucle.

-
for (var i = 0; i < 9; i++) {
-   n += i;
-   mifuncion(n);
-}
-
-

Vea También

-
    -
  • {{jsxref("Sentencias/break", "break")}}
  • -
  • {{jsxref("Sentencias/continue", "continue")}}
  • -
  • {{jsxref("Sentencias/empty", "empty")}}
  • -
  • {{jsxref("Sentencias/while", "while")}}
  • -
  • {{jsxref("Sentencias/do...while", "do...while")}}
  • -
  • {{jsxref("Sentencias/for...in", "for...in")}}
  • -
  • {{jsxref("Sentencias/for...of", "for...of")}}
  • -
+{{jsSidebar("Statements")}} + +## Resumen + +Crea un bucle que consiste en tres expresiones opcionales, encerradas en paréntesis y separadas por puntos y comas, seguidas de una sentencia ejecutada en un bucle. + +## Sintaxis + + for ([expresion-inicial]; [condicion]; [expresion-final])sentencia + +- `expresion-inicial` + - : Una expresión (incluyendo las expresiones de asignación) o la declaración de variable. Típicamente se utiliza para usarse como variable contador. Esta expresión puede opcionalmente declarar nuevas variables con la palabra clave `var`. Estas variables no son locales del bucle, es decir, están en el mismo alcance en el que está el bucle `for`. El resultado de esta expresión es descartado. + + + +- `condicion` + - : Una expresión para ser evaluada antes de cada iteración del bucle. Si esta expresión se evalúa como verdadera, se ejecuta `sentencia`. Esta comprobación condicional es opcional. Si se omite, la condición siempre se evalúa como verdadera. Si la expresión se evalúa como falsa, la ejecución salta a la primera expresión que sigue al constructor de `for`. + + + +- `expresion-final` + - : Una expresión para ser evaluada al final de cada iteración del bucle. Esto ocurre antes de la siguiente evaluación de la `condicion`. Generalmente se usa para actualizar o incrementar la variable contador. + + + +- `sentencia` + - : Una sentencia que se ejecuta mientras la condición se evalúa como verdadera. Para ejecutar múltiples sentencias dentro del bucle, utilice una sentencia {{jsxref("Sentencias/block", "block")}} (`{ ... }`) para agrupar aquellas sentecias. + +### Ejemplos + +#### Ejemplo: Usando `for` + +La siguiente sentencia `for` comienza mediante la declaración de la variable `i` y se inicializa a `0`. Comprueba que `i` es menor que nueve, realiza las dos sentencias con éxito e incrementa `i` en 1 después de cada pase del bucle. + + for (var i = 0; i < 9; i++) { + n += i; + mifuncion(n); + } + +## Vea También + +- {{jsxref("Sentencias/break", "break")}} +- {{jsxref("Sentencias/continue", "continue")}} +- {{jsxref("Sentencias/empty", "empty")}} +- {{jsxref("Sentencias/while", "while")}} +- {{jsxref("Sentencias/do...while", "do...while")}} +- {{jsxref("Sentencias/for...in", "for...in")}} +- {{jsxref("Sentencias/for...of", "for...of")}} diff --git a/files/es/web/javascript/reference/statements/function/index.md b/files/es/web/javascript/reference/statements/function/index.md index 675b8da2f260d8..5734ad9a8b2933 100644 --- a/files/es/web/javascript/reference/statements/function/index.md +++ b/files/es/web/javascript/reference/statements/function/index.md @@ -7,47 +7,55 @@ tags: translation_of: Web/JavaScript/Reference/Statements/function original_slug: Web/JavaScript/Referencia/Sentencias/function --- -
- {{jsSidebar("Statements")}}
-

Resumen

-

Declara una función con los parámetros especificados.

-

Puede también definir funciones usando el constructor {{jsxref("Function")}} y el {{jsxref("Operadors/function", "function")}} (expresión function).

-

Sintaxis

-
function nombre([parametro1] [,parametro2] [..., parametroN]) {sentencias}
-
-
-
- nombre
-
- El nombre de la función.
-
-
-
- parametroN
-
- El nombre de un argumento que se pasa a la función. Una función puede tener hasta 255 argumentos.
-
-
-
- sentencias
-
- Las sentencias que comprenden el cuerpo de la función.
-
-

Descripción

-

Para devolver un valor, la función debe tener una sentencia {{jsxref("Sentencias/return", "return")}} que especifica el valor a devolver.

-

Una función creada con la sentencia function es un objeto Function y tiene todas las propiedades, métodos, y comportamiento de los objetos Function. Vea {{jsxref("Function")}} para información detallada sobre funciones.

-

Una función puede también ser declarada dentro de una expresión. En este caso la función es normalmente anónima. Vea {{jsxref("Operadores/function", "function expression")}} para más información acerca de function (expresión function).

-

Las funciones pueden declararse condicionalmente. Es decir, una definición de una función puede estar anidada dentro de una sentecia if. Técnicamente, tales declaraciones no son en realidad declaraciones de funciones; son expresiones function (expresiones de función).

-

Ejemplo

-

Ejemplo: Usando function

-

El siguiente código declara una función que devuelve la cantidad total de ventas, cuando se da el número de unidades vendidas de productos a, b, y c.

-
function calcular_ventas(unidades_a, unidades_b, unidades_c) {
+{{jsSidebar("Statements")}}
+
+## Resumen
+
+Declara una función con los parámetros especificados.
+
+Puede también definir funciones usando el constructor {{jsxref("Function")}} y el {{jsxref("Operadors/function", "function")}} (expresión function).
+
+## Sintaxis
+
+    function nombre([parametro1] [,parametro2] [..., parametroN]) {sentencias}
+
+- `nombre`
+  - : El nombre de la función.
+
+
+
+- `parametroN`
+  - : El nombre de un argumento que se pasa a la función. Una función puede tener hasta 255 argumentos.
+
+
+
+- `sentencias`
+  - : Las sentencias que comprenden el cuerpo de la función.
+
+## Descripción
+
+Para devolver un valor, la función debe tener una sentencia {{jsxref("Sentencias/return", "return")}} que especifica el valor a devolver.
+
+Una función creada con la sentencia `function` es un objeto `Function` y tiene todas las propiedades, métodos, y comportamiento de los objetos `Function`. Vea {{jsxref("Function")}} para información detallada sobre funciones.
+
+Una función puede también ser declarada dentro de una expresión. En este caso la función es normalmente anónima. Vea {{jsxref("Operadores/function", "function expression")}} para más información acerca de `function` (expresión function).
+
+Las funciones pueden declararse condicionalmente. Es decir, una definición de una función puede estar anidada dentro de una sentecia `if`. Técnicamente, tales declaraciones no son en realidad declaraciones de funciones; son expresiones function (expresiones de función).
+
+## Ejemplo
+
+### Ejemplo: Usando `function`
+
+El siguiente código declara una función que devuelve la cantidad total de ventas, cuando se da el número de unidades vendidas de productos `a`, `b`, y `c`.
+
+```js
+function calcular_ventas(unidades_a, unidades_b, unidades_c) {
    return unidades_a*79 + unidades_b * 129 + unidades_c * 699;
 }
-
-

Vea También

-
    -
  • Funciones
  • -
  • {{jsxref("Function")}}
  • -
  • Operadores{{jsxref("Operadores/function", "function")}}
  • -
+``` + +## Vea También + +- [Funciones](/es/docs/Web/JavaScript/Referencia/Funciones) +- {{jsxref("Function")}} +- Operadores{{jsxref("Operadores/function", "function")}} diff --git a/files/es/web/javascript/reference/statements/function_star_/index.md b/files/es/web/javascript/reference/statements/function_star_/index.md index af20ab4d24086b..a434f227e4bf72 100644 --- a/files/es/web/javascript/reference/statements/function_star_/index.md +++ b/files/es/web/javascript/reference/statements/function_star_/index.md @@ -10,49 +10,45 @@ tags: translation_of: Web/JavaScript/Reference/Statements/function* original_slug: Web/JavaScript/Referencia/Sentencias/function* --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

La declaración function* (la palabra clave function seguida de un asterisco) define una función generadora, que devuelve un objeto {{jsxref("Global_Objects/Generator","Generator")}}.

+La declaración **`function*`** (la palabra clave `function` seguida de un asterisco) define una _función generadora_, que devuelve un objeto {{jsxref("Global_Objects/Generator","Generator")}}. -
-

También puedes definir funciones generadoras usando el constructor {{jsxref("GeneratorFunction")}} y una {{jsxref("Operators/function*", "function* expression")}}.

-
+También puedes definir funciones generadoras usando el constructor {{jsxref("GeneratorFunction")}} y una {{jsxref("Operators/function*", "function* expression")}}. -

Sintaxis

+## Sintaxis -
function* nombre([param[, param[, ... param]]]) {
-   instrucciones
-}
-
+ function* nombre([param[, param[, ... param]]]) { + instrucciones + } + +- `nombre` + - : El nombre de la función. + + -
-
nombre
-
El nombre de la función.
-
+- `param` + - : El nombre de los argumentos que se le van a pasar a la función. Una función puede tener hasta 255 argumentos. -
-
param
-
El nombre de los argumentos que se le van a pasar a la función. Una función puede tener hasta 255 argumentos.
-
+ -
-
instrucciones
-
Las instrucciones que componen el cuerpo de la función.
-
+- `instrucciones` + - : Las instrucciones que componen el cuerpo de la función. -

Descripción

+## Descripción -

Los generadores son funciones de las que se puede salir y volver a entrar. Su contexto (asociación de variables) será conservado entre las reentradas.

+Los generadores son funciones de las que se puede salir y volver a entrar. Su contexto (asociación de variables) será conservado entre las reentradas. -

La llamada a una función generadora no ejecuta su cuerpo inmediatamente; se devuelve un objeto iterador para la función en su lugar. Cuando el metodo next() del iterador es llamado , el cuerpo de la función generadora es ejecutado hasta la primera expresión {{jsxref("Operators/yield", "yield")}}, la cual especifica el valor que será retornado por el iterador o con, {{jsxref("Operators/yield*", "yield*")}}, delega a otra función generadora. El método next() retorna un objeto con una propiedad value que contiene el valor bajo el operador yield y una propiedad done que indica, con un booleano, si la función generadora ha hecho yield al último valor.

+La llamada a una función generadora no ejecuta su cuerpo inmediatamente; se devuelve un objeto [iterador](/es/docs/Web/JavaScript/Reference/Iteration_protocols#iterator) para la función en su lugar. Cuando el metodo `next()` del iterador es llamado , el cuerpo de la función generadora es ejecutado hasta la primera expresión {{jsxref("Operators/yield", "yield")}}, la cual especifica el valor que será retornado por el iterador o con, {{jsxref("Operators/yield*", "yield*")}}, delega a otra función generadora. El método `next()` retorna un objeto con una propiedad _value_ que contiene el valor bajo el operador yield y una propiedad _done_ que indica, con un booleano, si la función generadora ha hecho yield al último valor. -

Ejemplos

+## Ejemplos -

Ejemplo simple

+### Ejemplo simple -
function* idMaker(){
+```js
+function* idMaker(){
   var index = 0;
-  while(index < 3)
+  while(index < 3)
     yield index++;
 }
 
@@ -62,11 +58,13 @@ console.log(gen.next().value); // 0
 console.log(gen.next().value); // 1
 console.log(gen.next().value); // 2
 console.log(gen.next().value); // undefined
-// ...
+// ... +``` -

Ejemplo con yield*

+### Ejemplo con yield\* -
function* anotherGenerator(i) {
+```js
+function* anotherGenerator(i) {
   yield i + 1;
   yield i + 2;
   yield i + 3;
@@ -85,49 +83,32 @@ console.log(gen.next().value); // 11
 console.log(gen.next().value); // 12
 console.log(gen.next().value); // 13
 console.log(gen.next().value); // 20
-
- -

Especificaciones

- - - - - - - - - - - - - - - - -
EspecificacionesStatusComentarios
{{SpecName('ES2015', '#', 'function*')}}{{Spec2('ES2015')}}Initial definition.
- -

Compatibilidad con navegadores

+``` + +## Especificaciones + +| Especificaciones | Status | Comentarios | +| ---------------------------------------------------- | ------------------------ | ------------------- | +| {{SpecName('ES2015', '#', 'function*')}} | {{Spec2('ES2015')}} | Initial definition. | + +## Compatibilidad con navegadores {{Compat("javascript.statements.generator_function")}} -

Ver también

- - +## Ver también + +- {{jsxref("Operators/function*", "function* expression")}} +- {{jsxref("GeneratorFunction")}} object +- [The Iterator protocol](/es/docs/Web/JavaScript/Guide/The_Iterator_protocol) +- {{jsxref("Operators/yield", "yield")}} +- {{jsxref("Operators/yield*", "yield*")}} +- {{jsxref("Function")}} object +- {{jsxref("Statements/function", "function declaration")}} +- {{jsxref("Operators/function", "function expression")}} +- {{jsxref("Functions_and_function_scope", "Functions and function scope")}} +- Other web resources: + + - [Regenerator](http://facebook.github.io/regenerator/) an ES2015 generator compiler to ES5 + - [Forbes Lindesay: Promises and Generators: control flow utopia -- JSConf EU 2013](http://www.youtube.com/watch?v=qbKWsbJ76-s) + - [Hemanth.HM: The New gen of \*gen(){}](https://www.youtube.com/watch?v=ZrgEZykBHVo&list=PLuoyIZT5fPlG44bPq50Wgh0INxykdrYX7&index=1) + - [Task.js](http://taskjs.org/) diff --git a/files/es/web/javascript/reference/statements/if...else/index.md b/files/es/web/javascript/reference/statements/if...else/index.md index 32a044324f6605..3157ec970241c2 100644 --- a/files/es/web/javascript/reference/statements/if...else/index.md +++ b/files/es/web/javascript/reference/statements/if...else/index.md @@ -7,104 +7,102 @@ tags: translation_of: Web/JavaScript/Reference/Statements/if...else original_slug: Web/JavaScript/Referencia/Sentencias/if...else --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

Resumen

+## Resumen -

Ejecuta una sentencia si una condición específicada es evaluada como verdadera. Si la condición es evaluada como falsa, otra sentencia puede ser ejecutada.

+Ejecuta una sentencia si una condición específicada es evaluada como verdadera. Si la condición es evaluada como falsa, otra sentencia puede ser ejecutada. -

Sintaxis

+## Sintaxis -
if (condición) sentencia1 [else sentencia2]
-
+ if (condición) sentencia1 [else sentencia2] -
-
condición
-
Una expresión que puede ser evaluada como verdadera o falsa.
-
+- `condición` + - : Una expresión que puede ser evaluada como verdadera o falsa. -
-
sentencia1
-
Sentencia que se ejecutará si condición es evaluada como verdadera. Puede ser cualquier sentencia, incluyendo otras sentenccias if anidadas. Para ejecutar múltiples sentencias, use una sentencia {{jsxref("Sentencias/block", "block")}} ({ ... }) para agruparlas.
-
+ -
-
sentencia2
-
Sentencia que se ejecutará si condición se evalúa como falsa, y exista una cláusula else. Puede ser cualquier sentencia, incluyendo sentencias block y otras sentencias if anidadas.
-
+- `sentencia1` + - : Sentencia que se ejecutará si `condición` es evaluada como verdadera. Puede ser cualquier sentencia, incluyendo otras sentenccias `if` anidadas. Para ejecutar múltiples sentencias, use una sentencia {{jsxref("Sentencias/block", "block")}} ({ ... }) para agruparlas. -

Descripción

+ -

Multiples sentencias if...else pueden ser anidadas para crear una cláusula else if:

+- `sentencia2` + - : Sentencia que se ejecutará si `condición` se evalúa como falsa, y exista una cláusula `else`. Puede ser cualquier sentencia, incluyendo sentencias block y otras sentencias `if` anidadas. -
if (condición1)
-   sentencia1
-else if (condición2)
-   sentencia2
-else if (condición3)
-   sentencia3
-...
-else
-   sentenciaN
-
+## Descripción -

Para entender como esto funciona, así es como se vería si el anidamiento hubiera sido indentado correctamente:

+Multiples sentencias `if...else` pueden ser anidadas para crear una cláusula `else if`: -
if (condición1)
-   sentencia1
-else
-   if (condición2)
-      sentencia2
-   else
-      if (condición3)
-        ...
-
+ if (condición1) + sentencia1 + else if (condición2) + sentencia2 + else if (condición3) + sentencia3 + ... + else + sentenciaN -

Para ejecutar varias sentencias en una cláusula, use una sentencia block ({ ... }) para agruparlas. Generalmente, es una buena práctica usar siempre sentencias block, especialmente en código que incluya sentencias if anidadas:

+Para entender como esto funciona, así es como se vería si el anidamiento hubiera sido indentado correctamente: -
if (condición) {
+    if (condición1)
+       sentencia1
+    else
+       if (condición2)
+          sentencia2
+       else
+          if (condición3)
+            ...
+
+Para ejecutar varias sentencias en una cláusula, use una sentencia block (`{ ... }`) para agruparlas. Generalmente, es una buena práctica usar siempre sentencias block, especialmente en código que incluya sentencias if anidadas:
+
+```js
+if (condición) {
    sentencia1
 } else {
    sentencia2
 }
-
+``` -

No confundir los valores primitivos true y false con los valores true y false del objeto {{jsxref("Boolean")}}. Cualquier valor diferente de undefined, null, 0, -0, NaN, o la cadena vacía (""), y cualquier objecto, incluso un objeto Boolean cuyo valor es false, se evalúa como verdadero en una sentencia condicional. Por ejemplo:

+No confundir los valores primitivos `true` y `false` con los valores true y false del objeto {{jsxref("Boolean")}}. Cualquier valor diferente de `undefined`, `null`, `0`, `-0`, `NaN`, o la cadena vacía (`""`), y cualquier objecto, incluso un objeto Boolean cuyo valor es false, se evalúa como verdadero en una sentencia condicional. Por ejemplo: -
var b = new Boolean(false);
+```js
+var b = new Boolean(false);
 if (b) // Esta condición se evalúa como verdadera
-
+``` -

Ejemplos

+## Ejemplos -

Ejemplo: Uso de if...else

+### Ejemplo: Uso de `if...else` -
if (cipher_char == from_char) {
+```js
+if (cipher_char == from_char) {
    result = result + to_char;
    x++;
 } else
    result = result + clear_char;
-
+``` -

Ejemplo: Asignación en una expresión condicional

+### Ejemplo: Asignación en una expresión condicional -

Es aconsejable no usar asignaciones simples en una expresión condicional, porque la asignación puede ser confundida con igualdad (operador relacional) cuando se lee el código. Por ejemplo, no use el siguiente código:

+Es aconsejable no usar asignaciones simples en una expresión condicional, porque la asignación puede ser confundida con igualdad (operador relacional) cuando se lee el código. Por ejemplo, no use el siguiente código: -
if (x = y) {
+```js
+if (x = y) {
    /* sentencia */
 }
-
+``` -

Si realmente necesita una asignación dentro de una exprsión condicional, una práctica común es poner paréntesis adicionales alrededor del la asignación, por ejemplo:

+Si realmente necesita una asignación dentro de una exprsión condicional, una práctica común es poner paréntesis adicionales alrededor del la asignación, por ejemplo: -
if ((x = y)) {
+```js
+if ((x = y)) {
    /* sentencia */
 }
-
+``` -

Vea También

+## Vea También -
    -
  • {{jsxref("Sentencias/block", "block")}}
  • -
  • {{jsxref("Sentencias/switch", "switch")}}
  • -
+- {{jsxref("Sentencias/block", "block")}} +- {{jsxref("Sentencias/switch", "switch")}} diff --git a/files/es/web/javascript/reference/statements/index.md b/files/es/web/javascript/reference/statements/index.md index bd6ef1f8368f3b..693777b9b16dd5 100644 --- a/files/es/web/javascript/reference/statements/index.md +++ b/files/es/web/javascript/reference/statements/index.md @@ -8,135 +8,96 @@ tags: translation_of: Web/JavaScript/Reference/Statements original_slug: Web/JavaScript/Referencia/Sentencias --- -
{{jsSidebar("Statements")}}
- -

Las aplicaciones JavaScript se componen de sentencias con una sintaxis propia. Una sentencia puede estar formada por múltiples líneas. Puede haber varias sentencias en una sola línea si separamos cada una de las sentencias por un punto y coma. No es una palabra clave, sino un grupo de palabras clave.

- -

Sentencias y declaraciones por categoría

- -

Puedes encontrarlas por orden alfabético en la columna de la izquierda .

- -

Control de flujo

- -
-
{{jsxref("Sentencias/block", "Block")}}
-
Un bloque de sentencias se utiliza para agrupar cero o mas sentencias. El bloque se delimita por un par de llaves.
-
{{jsxref("Sentencias/break", "break")}}
-
Finaliza la sentencia actual loop, switch, o label y transfiere el control del programa a la siguiente sentencia de la sentencia finalizada.
-
{{jsxref("Sentencias/continue", "continue")}}
-
Finaliza la ejecucion de las sentencias dentro de la iteracion actual del actual bucle, y continua la ejecucion del bucle con la siguiente iteracion.
-
{{jsxref("Sentencias/Empty", "Empty")}}
-
Una sentencia vacía se utiliza para proveer una "no sentencia", aunque la sintaxis de JavaScript esperaba una.
-
{{jsxref("Sentencias/if...else", "if...else")}}
-
Ejecuta una sentencia si una condición especificada es true. Si la condición es false, otra sentencia puede ser ejecutada.
-
{{jsxref("Sentencias/switch", "switch")}}
-
Evalua una expresión, igualando el valor de la expresión a una clausula case y ejecuta las sentencias asociadas con dicho case.
-
{{jsxref("Sentencias/throw", "throw")}}
-
Lanza una excepción definida por el usuario.
-
{{jsxref("Sentencias/try...catch", "try...catch")}}
-
Marca un bloque de sentencias para ser probadas (try) y especifica una respuesta, en caso de que se lance una excepción.
-
- -

Declaraciones

- -
-
{{jsxref("Sentencias/var", "var")}}
-
Declara una variable, opcionalmente inicializándola a un valor.
-
{{jsxref("Sentencias/let", "let")}}
-
Declara una variable local de ambito de bloque, opcionalmente inicializándola a un valor.
-
{{jsxref("Sentencias/const", "const")}}
-
Declara una constante de solo lectura.
-
- -

Funciones

- -
-
{{jsxref("Sentencias/function", "function")}}
-
Declara una función con los parámetros especificados.
-
{{jsxref("Sentencias/function*", "function*")}}
-
Los generadores de funciones permiten escribir {{jsxref("Iteration_protocols", "iteradores")}} con mas facilidad.
-
{{experimental_inline}} {{jsxref("Statements/async_function", "async function")}}
-
Declara una función asíncrona con los parámetros especificados.
-
{{jsxref("Statements/return", "return")}}
-
Especifica el valor a ser retornado por una función.
-
{{jsxref("Statements/class", "class")}}
-
Declara una clase.
-
- -

Iteraciones

- -
-
{{jsxref("Sentencias/do...while", "do...while")}}
-
Crea un bucle que ejecuta una instrucción especificada hasta que la condición de prueba se evalúa como falsa. La condición se evalúa después de ejecutar la instrucción, lo que da como resultado que la instrucción especificada se ejecute al menos una vez.
-
{{jsxref("Sentencias/for", "for")}}
-
Creates a loop that consists of three optional expressions, enclosed in parentheses and separated by semicolons, followed by a statement executed in the loop.
-
{{deprecated_inline()}} {{non-standard_inline()}}{{jsxref("Sentencias/for_each...in", "for each...in")}}
-
Itera una variable especificada sobre todos los valores de las propiedades del objeto. Para cada propiedad distinta, se ejecuta una instrucción especificada.
-
{{jsxref("Sentencias/for...in", "for...in")}}
-
Itera sobre las propiedades enumerables de un objeto, en orden albitrario. Para cada propiedad distinta, las instrucciones pueden ser ejecutadas.
-
{{jsxref("Sentencias/for...of", "for...of")}}
-
Iterates over iterable objects (including {{jsxref("Array", "array")}}, array-like objects, iterators and generators), invoking a custom iteration hook with statements to be executed for the value of each distinct property.
-
{{jsxref("Sentencias/while", "while")}}
-
Crea un bucle que ejecuta la instrucción especificada siempre que la condición de prueba se evalúe como verdadera. La condición se evalúa antes de ejecutar la instrucción.
-
- -

Otros

- -
-
{{jsxref("Sentencias/debugger", "debugger")}}
-
Invoca cualquier funcionalidad de depuración disponible. Si no hay funcionalidad de depuración disponible, esta isntrucción no tiene efecto.
-
{{jsxref("Sentencias/export", "export")}}
-
Usada para permitir a un script firmada proveer propiedades, funciones y objetos a otros scripts firmada o sin firmar. Esta antigua funcionalidad de Netscape ha sido removida y será redefinida por los modulos de ECMAScript 6
-
{{jsxref("Sentencias/import", "import")}}
-
Usada para permitir a un escript importar propiedades, funciones y objetos desde otro script firmado que ha exportado su información. Esta antigua funcionalidad de Netscape ha sido removida y será redefinida por los modulos de ECMAScript 6.
-
{{jsxref("Sentencias/label", "label")}}
-
Provee una instrucción con un identificador que puedes referir usando una instrucción break o continue .
-
- -
-
{{deprecated_inline()}} {{jsxref("Sentencias/with", "with")}}
-
Extiende la cadena de alcance para una instrucción.
-
- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EspecificaciónStatusComentario
{{SpecName('ES1', '#sec-12', 'Statements')}}{{Spec2('ES1')}}Definición inicial
{{SpecName('ES3', '#sec-12', 'Statements')}}{{Spec2('ES3')}}
{{SpecName('ES5.1', '#sec-12', 'Statements')}}{{Spec2('ES5.1')}}
{{SpecName('ES6', '#sec-ecmascript-language-statements-and-declarations', 'ECMAScript Language: Statements and Declarations')}}{{Spec2('ES6')}}Nuevo: function*, let, for...of, yield, class
{{SpecName('ESDraft', '#sec-ecmascript-language-statements-and-declarations', 'ECMAScript Language: Statements and Declarations')}}{{Spec2('ESDraft')}}
- -

Vea También

- - +{{jsSidebar("Statements")}} + +Las aplicaciones JavaScript se componen de sentencias con una sintaxis propia. Una sentencia puede estar formada por múltiples líneas. Puede haber varias sentencias en una sola línea si separamos cada una de las sentencias por un punto y coma. No es una palabra clave, sino un grupo de palabras clave. + +## Sentencias y declaraciones por categoría + +Puedes encontrarlas por orden alfabético en la columna de la izquierda . + +### Control de flujo + +- {{jsxref("Sentencias/block", "Block")}} + - : Un bloque de sentencias se utiliza para agrupar cero o mas sentencias. El bloque se delimita por un par de llaves. +- {{jsxref("Sentencias/break", "break")}} + - : Finaliza la sentencia actual loop, switch, o label y transfiere el control del programa a la siguiente sentencia de la sentencia finalizada. +- {{jsxref("Sentencias/continue", "continue")}} + - : Finaliza la ejecucion de las sentencias dentro de la iteracion actual del actual bucle, y continua la ejecucion del bucle con la siguiente iteracion. +- {{jsxref("Sentencias/Empty", "Empty")}} + - : Una sentencia vacía se utiliza para proveer una "no sentencia", aunque la sintaxis de JavaScript esperaba una. +- {{jsxref("Sentencias/if...else", "if...else")}} + - : Ejecuta una sentencia si una condición especificada es true. Si la condición es false, otra sentencia puede ser ejecutada. +- {{jsxref("Sentencias/switch", "switch")}} + - : Evalua una expresión, igualando el valor de la expresión a una clausula case y ejecuta las sentencias asociadas con dicho case. +- {{jsxref("Sentencias/throw", "throw")}} + - : Lanza una excepción definida por el usuario. +- {{jsxref("Sentencias/try...catch", "try...catch")}} + - : Marca un bloque de sentencias para ser probadas (try) y especifica una respuesta, en caso de que se lance una excepción. + +### Declaraciones + +- {{jsxref("Sentencias/var", "var")}} + - : Declara una variable, opcionalmente inicializándola a un valor. +- {{jsxref("Sentencias/let", "let")}} + - : Declara una variable local de ambito de bloque, opcionalmente inicializándola a un valor. +- {{jsxref("Sentencias/const", "const")}} + - : Declara una constante de solo lectura. + +### Funciones + +- {{jsxref("Sentencias/function", "function")}} + - : Declara una función con los parámetros especificados. +- {{jsxref("Sentencias/function*", "function*")}} + - : Los generadores de funciones permiten escribir {{jsxref("Iteration_protocols", "iteradores")}} con mas facilidad. +- {{experimental_inline}} {{jsxref("Statements/async_function", "async function")}} + - : Declara una función asíncrona con los parámetros especificados. +- {{jsxref("Statements/return", "return")}} + - : Especifica el valor a ser retornado por una función. +- {{jsxref("Statements/class", "class")}} + - : Declara una clase. + +### Iteraciones + +- {{jsxref("Sentencias/do...while", "do...while")}} + - : Crea un bucle que ejecuta una instrucción especificada hasta que la condición de prueba se evalúa como falsa. La condición se evalúa después de ejecutar la instrucción, lo que da como resultado que la instrucción especificada se ejecute al menos una vez. +- {{jsxref("Sentencias/for", "for")}} + - : Creates a loop that consists of three optional expressions, enclosed in parentheses and separated by semicolons, followed by a statement executed in the loop. +- {{deprecated_inline()}} {{non-standard_inline()}}{{jsxref("Sentencias/for_each...in", "for each...in")}} + - : Itera una variable especificada sobre todos los valores de las propiedades del objeto. Para cada propiedad distinta, se ejecuta una instrucción especificada. +- {{jsxref("Sentencias/for...in", "for...in")}} + - : Itera sobre las propiedades enumerables de un objeto, en orden albitrario. Para cada propiedad distinta, las instrucciones pueden ser ejecutadas. +- {{jsxref("Sentencias/for...of", "for...of")}} + - : Iterates over iterable objects (including {{jsxref("Array", "array")}}, array-like objects, [iterators and generators](/es/docs/JavaScript/Guide/Iterators_and_Generators "Iterators and generators")), invoking a custom iteration hook with statements to be executed for the value of each distinct property. +- {{jsxref("Sentencias/while", "while")}} + - : Crea un bucle que ejecuta la instrucción especificada siempre que la condición de prueba se evalúe como verdadera. La condición se evalúa antes de ejecutar la instrucción. + +### Otros + +- {{jsxref("Sentencias/debugger", "debugger")}} + - : Invoca cualquier funcionalidad de depuración disponible. Si no hay funcionalidad de depuración disponible, esta isntrucción no tiene efecto. +- {{jsxref("Sentencias/export", "export")}} + - : Usada para permitir a un script firmada proveer propiedades, funciones y objetos a otros scripts firmada o sin firmar. Esta antigua funcionalidad de Netscape ha sido removida y será redefinida por los modulos de ECMAScript 6 +- {{jsxref("Sentencias/import", "import")}} + - : Usada para permitir a un escript importar propiedades, funciones y objetos desde otro script firmado que ha exportado su información. Esta antigua funcionalidad de Netscape ha sido removida y será redefinida por los modulos de ECMAScript 6. +- {{jsxref("Sentencias/label", "label")}} + - : Provee una instrucción con un identificador que puedes referir usando una instrucción `break` o `continue` . + + + +- {{deprecated_inline()}} {{jsxref("Sentencias/with", "with")}} + - : Extiende la cadena de alcance para una instrucción. + +## Especificaciones + +| Especificación | Status | Comentario | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ---------------------------------------------- | +| {{SpecName('ES1', '#sec-12', 'Statements')}} | {{Spec2('ES1')}} | Definición inicial | +| {{SpecName('ES3', '#sec-12', 'Statements')}} | {{Spec2('ES3')}} | | +| {{SpecName('ES5.1', '#sec-12', 'Statements')}} | {{Spec2('ES5.1')}} | | +| {{SpecName('ES6', '#sec-ecmascript-language-statements-and-declarations', 'ECMAScript Language: Statements and Declarations')}} | {{Spec2('ES6')}} | Nuevo: function\*, let, for...of, yield, class | +| {{SpecName('ESDraft', '#sec-ecmascript-language-statements-and-declarations', 'ECMAScript Language: Statements and Declarations')}} | {{Spec2('ESDraft')}} | | + +## Vea También + +- [Operadores](/es/docs/Web/JavaScript/Referencia/Operadores) diff --git a/files/es/web/javascript/reference/statements/label/index.md b/files/es/web/javascript/reference/statements/label/index.md index 4bdb5a6386af02..0fc9b07d5f4d75 100644 --- a/files/es/web/javascript/reference/statements/label/index.md +++ b/files/es/web/javascript/reference/statements/label/index.md @@ -7,30 +7,31 @@ tags: translation_of: Web/JavaScript/Reference/Statements/label original_slug: Web/JavaScript/Referencia/Sentencias/label --- -
- {{jsSidebar("Statements")}}
-

Resumen

-

Proporciona una sentencia con un identificador al que se puede referir al usar las sentencias {{jsxref("Sentencias/break", "break")}} o {{jsxref("Sentencias/continue", "continue")}}.

-

Por ejemplo, puede usar una etiqueta para identificar un bucle, y entonces usar las sentencias break o continue para indicar si un programa debería interrumpir el bucle o continuar su ejecución.

-

Sintaxis

-
etiqueta :sentencia
-
-
-
- etiqueta
-
- Cualquier identificador JavaScript que no sea una palabra reservada.
-
-
-
- sentencia
-
- Sentencias. break puede ser usado con cualquier sentencia etiquetada, y continue puede usarse con bucles etiquetados de sentencias.
-
-

Ejemplos

-

Para un ejemplo de una sentencia label usando break, vea break. Para un ejemplo de una sentencia label usando continue, vea continue.

-

Vea También

-
    -
  • {{jsxref("Sentencias/break", "break")}}
  • -
  • {{jsxref("Sentencias/continue", "continue")}}
  • -
+{{jsSidebar("Statements")}} + +## Resumen + +Proporciona una sentencia con un identificador al que se puede referir al usar las sentencias {{jsxref("Sentencias/break", "break")}} o {{jsxref("Sentencias/continue", "continue")}}. + +Por ejemplo, puede usar una etiqueta para identificar un bucle, y entonces usar las sentencias `break` o `continue` para indicar si un programa debería interrumpir el bucle o continuar su ejecución. + +## Sintaxis + + etiqueta :sentencia + +- `etiqueta` + - : Cualquier identificador JavaScript que no sea una palabra reservada. + + + +- `sentencia` + - : Sentencias. `break` puede ser usado con cualquier sentencia etiquetada, y `continue` puede usarse con bucles etiquetados de sentencias. + +## Ejemplos + +Para un ejemplo de una sentencia label usando `break`, vea `break`. Para un ejemplo de una sentencia label usando `continue`, vea `continue`. + +## Vea También + +- {{jsxref("Sentencias/break", "break")}} +- {{jsxref("Sentencias/continue", "continue")}} diff --git a/files/es/web/javascript/reference/statements/return/index.md b/files/es/web/javascript/reference/statements/return/index.md index 3301106d0211fe..e6f3b1719ec5fe 100644 --- a/files/es/web/javascript/reference/statements/return/index.md +++ b/files/es/web/javascript/reference/statements/return/index.md @@ -7,68 +7,63 @@ tags: translation_of: Web/JavaScript/Reference/Statements/return original_slug: Web/JavaScript/Referencia/Sentencias/return --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

Resumen

+## Resumen -

La sentencia return finaliza la ejecución de la función y especifica un valor para ser devuelto a quien llama a la función.

+La sentencia `return` finaliza la ejecución de la función y especifica un valor para ser devuelto a quien llama a la función. -

Sintaxis

+## Sintaxis -
return [[ expresion ]];
+ return [[ expresion ]]; -
-
expresion
-
La expresión a retornar. Si se omite, undefined es retornado en su lugar.
-
+- expresion + - : La expresión a retornar. Si se omite, `undefined` es retornado en su lugar. -

Description

+## Description -

Cuando una instrucción de retorno se llama en una función, se detiene la ejecución de esta. Si se especifica un valor dado, este se devuelve a quien llama a la función. Si se omite la expresión, undefined se devuelve en su lugar. Todas las siguientes sentencias de retorno rompen la ejecución de la función:

+Cuando una instrucción de retorno se llama en una función, se detiene la ejecución de esta. Si se especifica un valor dado, este se devuelve a quien llama a la función. Si se omite la expresión, `undefined` se devuelve en su lugar. Todas las siguientes sentencias de retorno rompen la ejecución de la función: -
return;
-return true;
-return false;
-return x;
-return x + y / 3;
+```js +return; +return true; +return false; +return x; +return x + y / 3; +``` -


- La inserción automática Punto y coma

+##
La inserción automática Punto y coma -

La instrucción de retorno se ve afectada por la inserción automática de punto y coma (ASI). No se permite el terminador de línea entre la palabra clave de retorno y la expresión.

+La instrucción de retorno se ve afectada por la inserción automática de punto y coma (ASI). No se permite el terminador de línea entre la palabra clave de retorno y la expresión. -
return
-a + b;
+```js +return +a + b; +``` -
-
+se transforma por ASI en: -


- se transforma por ASI en:

+```html +return; +a + b; +``` -
return;
-a + b;
+La consola le advertirá "código inalcanzable después de la declaración de retorno". -


- La consola le advertirá "código inalcanzable después de la declaración de retorno".

+> **Nota:** A partir de Gecko 40 {{geckoRelease(40)}}, una advertencia es mostrada en la consola si se encuentra código inalcanzable despues de una instrucción return. -
-

A partir de Gecko 40 {{geckoRelease(40)}}, una advertencia es mostrada en la consola si se encuentra código inalcanzable despues de una instrucción return.

-
+## Ejemplos -

Ejemplos

+### Ejemplo: Usando `return` -

Ejemplo: Usando return

+La siguiente función devuelve el cuadrado de su argumento, `x`, donde `x` es un número. -

La siguiente función devuelve el cuadrado de su argumento, x, donde x es un número.

- -
function cuadrado(x) {
+```js
+function cuadrado(x) {
    return x * x;
 }
-
+``` -

Vea También

+## Vea También - +- [Funciones](/es/docs/Web/JavaScript/Referencia/Funciones) diff --git a/files/es/web/javascript/reference/statements/switch/index.md b/files/es/web/javascript/reference/statements/switch/index.md index 47bf70e149ffcf..cbc60439643108 100644 --- a/files/es/web/javascript/reference/statements/switch/index.md +++ b/files/es/web/javascript/reference/statements/switch/index.md @@ -4,82 +4,81 @@ slug: Web/JavaScript/Reference/Statements/switch translation_of: Web/JavaScript/Reference/Statements/switch original_slug: Web/JavaScript/Referencia/Sentencias/switch --- -
{{jsSidebar("Statements")}}
- -

La declaración switch evalúa una expresión, comparando el valor de esa expresión con una instancia case, y ejecuta declaraciones asociadas a ese case, así como las declaraciones en los case que siguen.

- -

Syntaxis

- -
switch (expresión) {
-  case valor1:
-    //Declaraciones ejecutadas cuando el resultado de expresión coincide con el valor1
-    [break;]
-  case valor2:
-    //Declaraciones ejecutadas cuando el resultado de expresión coincide con el valor2
-    [break;]
-  ...
-  case valorN:
-    //Declaraciones ejecutadas cuando el resultado de expresión coincide con valorN
-    [break;]
-  default:
-    //Declaraciones ejecutadas cuando ninguno de los valores coincide con el valor de la expresión
-    [break;]
-}
+{{jsSidebar("Statements")}} -
-
expresión
-
Es una expresión que es comparada con el valor de cada instancia case.
-
case valorN
-
Una instancia case valorN es usada para ser comparada con la expresión. Si la expresión coincide con el valorN, las declaraciones dentro de la instancia case se ejecutan hasta que se encuentre el final de la declaración switch o hasta encontrar una interrupción break.
-
+La **declaración** **`switch`** evalúa una [expresión](/es/docs/Web/JavaScript/Guide/Expressions_and_Operators), comparando el valor de esa expresión con una instancia **`case`**, y ejecuta [declaraciones](/es/docs/Web/JavaScript/Referencia/Sentencias) asociadas a ese `case`, así como las declaraciones en los `case` que siguen. -
-
default
-
Una instancia default, cuando es declarada, es ejecutada si el valor de la expresión no coincide con cualquiera de las otras instancias case valorN.
-
+## Syntaxis -

Descripción

+ switch (expresión) { + case valor1: + //Declaraciones ejecutadas cuando el resultado de expresión coincide con el valor1 + [break;] + case valor2: + //Declaraciones ejecutadas cuando el resultado de expresión coincide con el valor2 + [break;] + ... + case valorN: + //Declaraciones ejecutadas cuando el resultado de expresión coincide con valorN + [break;] + default: + //Declaraciones ejecutadas cuando ninguno de los valores coincide con el valor de la expresión + [break;] + } -

Si ocurre una coincidencia, el programa ejecuta las declaraciones asociadas correspondientes. Si la expresión coincide con múltiples entradas, la primera será la seleccionada, incluso si las mayúsculas son tenidas en cuenta.

+- `expresión` + - : Es una expresión que es comparada con el valor de cada instancia `case`. +- `case valorN` + - : Una instancia `case valorN` es usada para ser comparada con la `expresión`. Si la `expresión` coincide con el `valorN`, las declaraciones dentro de la instancia `case` se ejecutan hasta que se encuentre el final de la declaración `switch` o hasta encontrar una interrupción `break`. -

El programa primero busca la primer instacia case cuya expresión se evalúa con el mismo valor de la expresión de entrada (usando comparación estricta, ===) y luego transfiere el control a esa cláusula, ejecutando las declaraciones asociadas. Si no se encuentra una cláusula de case coincidente, el programa busca la cláusula default opcional, y si se encuentra, transfiere el control a esa instancia, ejecutando las declaraciones asociadas. Si no se encuentra una instancia default el programa continúa la ejecución en la instrucción siguiente al final del switch. Por convención, la instancia default es la última cláusula, pero no tiene que ser así.

+ -

La declaración break es opcional y está asociada con cada etiqueta de case y asegura que el programa salga del switch una vez que se ejecute la instrucción coincidente y continúe la ejecución en la instrucción siguiente. Si se omite el break el programa continúa la ejecución en la siguiente instrucción en la declaración de switch .

+- default + - : Una instancia `default`, cuando es declarada, es ejecutada si el valor de la `expresión` no coincide con cualquiera de las otras instancias `case valorN`. -

Ejemplos

+## Descripción -

Usando switch

+Si ocurre una coincidencia, el programa ejecuta las declaraciones asociadas correspondientes. Si la expresión coincide con múltiples entradas, la primera será la seleccionada, incluso si las mayúsculas son tenidas en cuenta. -

En el siguiente ejemplo, si expresión se resuelve a "Platanos", el algoritmo compara el valor con el case "Platanos" y ejecuta la declaración asociada. Cuando se encuentra un break, el programa sale del condicional switch y ejecuta la declaración que lo procede. Si se omite el break, el case "Cerezas" también es ejecutado.

+El programa primero busca la primer instacia `case` cuya expresión se evalúa con el mismo valor de la expresión de entrada (usando [comparación estricta](/es/docs/Web/JavaScript/Reference/Operators/Comparison_Operators), `===)` y luego transfiere el control a esa cláusula, ejecutando las declaraciones asociadas. Si no se encuentra una cláusula de `case` coincidente, el programa busca la cláusula `default` opcional, y si se encuentra, transfiere el control a esa instancia, ejecutando las declaraciones asociadas. Si no se encuentra una instancia `default` el programa continúa la ejecución en la instrucción siguiente al final del `switch`. Por convención, la instancia `default` es la última cláusula, pero no tiene que ser así. -
switch (expr) {
-  case 'Naranjas':
-    console.log('El kilogramo de naranjas cuesta $0.59.');
-    break;
-  case 'Manzanas':
-    console.log('El kilogramo de manzanas cuesta $0.32.');
-    break;
-  case 'Platanos':
-    console.log('El kilogramo de platanos cuesta $0.48.');
-    break;
-  case 'Cerezas':
-    console.log('El kilogramo de cerezas cuesta $3.00.');
-    break;
-  case 'Mangos':
-  case 'Papayas':
-    console.log('El kilogramo de mangos y papayas cuesta $2.79.');
-    break;
-  default:
-    console.log('Lo lamentamos, por el momento no disponemos de ' + expr + '.');
-}
+La declaración [`break`](/en-US/docs/Web/JavaScript/Reference/Statements/break "JavaScript/Reference/Statements/break") es opcional y está asociada con cada etiqueta de `case` y asegura que el programa salga del `switch` una vez que se ejecute la instrucción coincidente y continúe la ejecución en la instrucción siguiente. Si se omite el `break` el programa continúa la ejecución en la siguiente instrucción en la declaración de `switch` .
+
+## Ejemplos
+
+### Usando `switch`
+
+En el siguiente ejemplo, si `expresión` se resuelve a "Platanos", el algoritmo compara el valor con el `case` "Platanos" y ejecuta la declaración asociada. Cuando se encuentra un `break`, el programa sale del condicional `switch` y ejecuta la declaración que lo procede. Si se omite el `break`, el `case` "Cerezas" también es ejecutado.
+
+    switch (expr) {
+      case 'Naranjas':
+        console.log('El kilogramo de naranjas cuesta $0.59.');
+        break;
+      case 'Manzanas':
+        console.log('El kilogramo de manzanas cuesta $0.32.');
+        break;
+      case 'Platanos':
+        console.log('El kilogramo de platanos cuesta $0.48.');
+        break;
+      case 'Cerezas':
+        console.log('El kilogramo de cerezas cuesta $3.00.');
+        break;
+      case 'Mangos':
+      case 'Papayas':
+        console.log('El kilogramo de mangos y papayas cuesta $2.79.');
+        break;
+      default:
+        console.log('Lo lamentamos, por el momento no disponemos de ' + expr + '.');
+    }
 
-console.log("¿Hay algo más que te quisiera consultar?");
+ console.log("¿Hay algo más que te quisiera consultar?"); -

¿Qué pasa si olvido un break?

+### ¿Qué pasa si olvido un break? -

Si olvidas un break, el script se ejecutará desde donde se cumple la condición y ejecutará el siguiente case independientemente si esta condición se cumple o no. Ver el siguiente ejemplo:

+Si olvidas un `break`, el script se ejecutará desde donde se cumple la condición y ejecutará el siguiente `case` independientemente si esta condición se cumple o no. Ver el siguiente ejemplo: -
var foo = 0;
+```js
+var foo = 0;
 switch (foo) {
   case -1:
     console.log('1 negativo');
@@ -96,39 +95,40 @@ switch (foo) {
   default:
     console.log('default');
 }
-
+``` -

¿Puedo usar un <default> entre condiciones?

+### ¿Puedo usar un \ entre condiciones? -

Sí, ¡es posible! JavaScript retornará a la instancia default en caso de no encontrar una coincidencia:

+Sí, ¡es posible! JavaScript retornará a la instancia `default` en caso de no encontrar una coincidencia: -
var foo = 5;
-switch (foo) {
-  case 2:
-    console.log(2);
-    break; // al encontrar este 'break' no se continuará con el siguiente 'default:'
-  default:
-    console.log('default')
-    // fall-through
-  case 1:
-    console.log('1');
-}
+ var foo = 5; + switch (foo) { + case 2: + console.log(2); + break; // al encontrar este 'break' no se continuará con el siguiente 'default:' + default: + console.log('default') + // fall-through + case 1: + console.log('1'); + } -

Al estar el case 1: a continuación de default, y al no haber un break de por medio, veremos que la declaración del case 1: será ejecutada, apareciendo el resultado 1 en el log de consola.

+Al estar el `case 1:` a continuación de `default`, y al no haber un `break `de por medio, veremos que la declaración del `case 1:` será ejecutada, apareciendo el resultado `1` en el _log de consola._ -

Metodos para casos con múltiple criterio

+### Metodos para casos con múltiple criterio -

La fuente de esta técnica esta aquí:

+La fuente de esta técnica esta aquí: -

Switch statement multiple cases in JavaScript (Stack Overflow)

+[Switch statement multiple cases in JavaScript (Stack Overflow)](http://stackoverflow.com/questions/13207927/switch-statement-multiple-cases-in-javascript) -

Operación única con múltiples casos

+#### Operación única con múltiples casos -

Este método toma ventaja del hecho de que, si no hay un break debajo de una declaración case, continuará la ejecución hasta el siguiente case, ignorando si en dicho caso se cumple o no el criterio indicado. Comprobar en la sección ¿Qué pasa si olvido un break?

+Este método toma ventaja del hecho de que, si no hay un `break` debajo de una declaración `case`, continuará la ejecución hasta el siguiente `case`, ignorando si en dicho caso se cumple o no el criterio indicado. Comprobar en la sección _¿Qué pasa si olvido un `break`?_ -

Este es un ejemplo de operación única con sentencia switch secuencial, donde cuatro valores diferentes se comportan exactamente de la misma manera:

+Este es un ejemplo de operación única con sentencia `switch` secuencial, donde cuatro valores diferentes se comportan exactamente de la misma manera: -
var Animal = 'Jirafa';
+```js
+var Animal = 'Jirafa';
 switch (Animal) {
   case 'Vaca':
   case 'Jirafa':
@@ -139,13 +139,15 @@ switch (Animal) {
   case 'Dinosaurio':
   default:
     console.log('Este animal no lo hará.');
-}
+} +``` -

Operaciones encadenadas con múltiples casos

+#### Operaciones encadenadas con múltiples casos -

Este es un ejemplo de una sentencia switch secuencial con múltiples operaciones, donde, dependiendo del valor entero dado, se pueden recibir diferentes resultados. Esto demuestra que el algoritmo correrá en el orden en que se coloquen las declaraciones case, y que no tiene que ser numéricamente secuencial. En JavaScript, también es posible combinar definiciones con valores "string" dentro de estas declaraciones case.

+Este es un ejemplo de una sentencia `switch` secuencial con múltiples operaciones, donde, dependiendo del valor entero dado, se pueden recibir diferentes resultados. Esto demuestra que el algoritmo correrá en el orden en que se coloquen las declaraciones `case`, y que no tiene que ser numéricamente secuencial. En JavaScript, también es posible combinar definiciones con valores \_`"string"` \_dentro de estas declaraciones `case`. -
var foo = 1;
+```js
+var foo = 1;
 var output = 'Salida: ';
 switch (foo) {
   case 10:
@@ -167,57 +169,29 @@ switch (foo) {
     break;
   default:
     console.log('Por favor, selecciona un valor del 1 al 6.');
-}
- -

La salida (output) de este ejemplo:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ValueLog text
foo es NaN o no es 1, 2, 3, 4, 5 ni 10Por favor, selecciona un valor del 1 al 6.
10Salida: ¿Y Cuál Es Tu Nombre?
1Salida: Cuál Es Tu Nombre?
2Salida: Tu Nombre?
3Salida: Nombre?
4Salida: ?
5Salida: !
- -

Variables centradas en bloques sin un estamento de switch

- -

Con ECMAScript 2015 (ES6)

- -

Compatibilidad en Navegadores

+} +``` + +La salida (output) de este ejemplo: + +| Value | Log text | +| -------------------------------------- | ------------------------------------------ | +| foo es NaN o no es 1, 2, 3, 4, 5 ni 10 | Por favor, selecciona un valor del 1 al 6. | +| 10 | Salida: ¿Y Cuál Es Tu Nombre? | +| 1 | Salida: Cuál Es Tu Nombre? | +| 2 | Salida: Tu Nombre? | +| 3 | Salida: Nombre? | +| 4 | Salida: ? | +| 5 | Salida: ! | + +### Variables centradas en bloques sin un estamento de switch + +Con ECMAScript 2015 (ES6) + +## Compatibilidad en Navegadores {{Compat("javascript.statements.switch")}} -

Ver también

+## Ver también - +- [`if...else`](/es/docs/Web/JavaScript/Reference/Statements/if...else) diff --git a/files/es/web/javascript/reference/statements/throw/index.md b/files/es/web/javascript/reference/statements/throw/index.md index abe7bcc7cfdc30..30317fd747cd98 100644 --- a/files/es/web/javascript/reference/statements/throw/index.md +++ b/files/es/web/javascript/reference/statements/throw/index.md @@ -7,36 +7,37 @@ tags: translation_of: Web/JavaScript/Reference/Statements/throw original_slug: Web/JavaScript/Referencia/Sentencias/throw --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

Resumen

+## Resumen -

Lanza una excepcion definida por el usuario.

+Lanza una excepcion definida por el usuario. -

Sintaxis

+## Sintaxis -
throw expresion;
+ throw expresion; -
-
expresion
-
Expresión a lanzar.
-
+- `expresion` + - : Expresión a lanzar. -

Descripción

+## Descripción -

Utilice la sentencia throw para lanzar una excepción. Cuando lanza una excepción, expresion especifica el valor de la excepción. Cada uno de los siguientes ejemplos lanza una excepción:

+Utilice la sentencia `throw` para lanzar una excepción. Cuando lanza una excepción, `expresion` especifica el valor de la excepción. Cada uno de los siguientes ejemplos lanza una excepción: -
throw "Error2"; // genera una excepción con un valor cadena
+```js
+throw "Error2"; // genera una excepción con un valor cadena
 throw 42; // genera una excepción con un valor 42
-throw true; // genera una excepción con un valor true
+throw true; // genera una excepción con un valor true +``` -

Ejemplos

+## Ejemplos -

Ejemplo: Lanzar un objeto

+### Ejemplo: Lanzar un objeto -

Puede especificar un objeto cuando lanza una excepción. Puede entonces referenciar las propiedades del objeto en el bloque catch. El siguiente ejemplo crea un objeto miExcepcionUsuario del tipo ExceptionUsuario y la utiliza usándola en una sentencia throw.

+Puede especificar un objeto cuando lanza una excepción. Puede entonces referenciar las propiedades del objeto en el bloque `catch`. El siguiente ejemplo crea un objeto `miExcepcionUsuario` del tipo `ExceptionUsuario` y la utiliza usándola en una sentencia `throw`. -
function ExceptionUsuario(mensaje) {
+```js
+function ExceptionUsuario(mensaje) {
    this.mensaje = mensaje;
    this.nombre = "ExceptionUsuario";
 }
@@ -60,13 +61,14 @@ try {
    nombreMes = "desconocido";
    registrarMisErrores(excepcion.mensaje, excepcion.nombre); // pasa el objeto exception al manejador de errores
 }
-
+``` -

Ejemplo: Otro ejemplo sobre lanzar un objeto

+### Ejemplo: Otro ejemplo sobre lanzar un objeto -

El siguiente ejemplo comprueba una cadena de entrada para un código postal de EE.UU. Si el código postal utiliza un formato no válido, la sentencia throw lanza una excepción creando un objeto de tipo ExcepcionFormatoCodigoPostal.

+El siguiente ejemplo comprueba una cadena de entrada para un código postal de EE.UU. Si el código postal utiliza un formato no válido, la sentencia throw lanza una excepción creando un objeto de tipo `ExcepcionFormatoCodigoPostal`. -
/*
+```js
+/*
  * Creates a ZipCode object.
  *
  * Accepted formats for a zip code are:
@@ -129,26 +131,23 @@ b = verificarCodigoPostal(9560;)          // devuelve -1
 c = verificarCodigoPostal("a");           // devuelve -1
 d = verificarCodigoPostal("95060");       // devuelve 95060
 e = verificarCodigoPostal("95060 1234");  // devuelve 95060 1234
-
+``` -

Ejemplo: Relanzar una excepción

+### Ejemplo: Relanzar una excepción -

Puede usar throw para volver a lanzar una excepción después de cogerla. El siguiente ejemplo coge una excepción con un valor numérico y la vuelve a lanzar si el valor es superior a 50. La excepción relanzada propaga hacia arriba la función adjunta o a un nivel superior para que el usuario pueda verla.

+Puede usar `throw` para volver a lanzar una excepción después de cogerla. El siguiente ejemplo coge una excepción con un valor numérico y la vuelve a lanzar si el valor es superior a 50. La excepción relanzada propaga hacia arriba la función adjunta o a un nivel superior para que el usuario pueda verla. -
try {
-   throw n; // lanza una excepción con un valor numérico
-} catch (excepcion) {
-   if (excepcion <= 50) {
-      // sentencias para manejar la excepción 1-50
-   } else {
-      // no se puede manejar esta excepción, así que se vuelve a lanzar
-      throw excepcion;
-   }
-}
-
+ try { + throw n; // lanza una excepción con un valor numérico + } catch (excepcion) { + if (excepcion <= 50) { + // sentencias para manejar la excepción 1-50 + } else { + // no se puede manejar esta excepción, así que se vuelve a lanzar + throw excepcion; + } + } -

Vea También

+## Vea También -
    -
  • {{jsxref("Sentencias/try...catch", "try...catch")}}
  • -
+- {{jsxref("Sentencias/try...catch", "try...catch")}} diff --git a/files/es/web/javascript/reference/statements/try...catch/index.md b/files/es/web/javascript/reference/statements/try...catch/index.md index 4beed9c786822f..17fe141bf4ff2e 100644 --- a/files/es/web/javascript/reference/statements/try...catch/index.md +++ b/files/es/web/javascript/reference/statements/try...catch/index.md @@ -9,136 +9,136 @@ tags: translation_of: Web/JavaScript/Reference/Statements/try...catch original_slug: Web/JavaScript/Referencia/Sentencias/try...catch --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

La declaración try...catch señala un bloque de instrucciones a intentar (try), y especifica una respuesta si se produce una excepción (catch).

+La declaración **`try...catch`** señala un bloque de instrucciones a intentar (**`try`**), y especifica una respuesta si se produce una excepción (**`catch`**). -
{{EmbedInteractiveExample("pages/js/statement-trycatch.html")}}
+{{EmbedInteractiveExample("pages/js/statement-trycatch.html")}} -

Sintaxis

+## Sintaxis -
try {
-   try_statements
-}
-[catch (exception_var_1 if condition_1) { // non-standard
-   catch_statements_1
-}]
-...
-[catch (exception_var_2) {
-   catch_statements_2
-}]
-[finally {
-   finally_statements
-}]
-
+ try { + try_statements + } + [catch (exception_var_1 if condition_1) { // non-standard + catch_statements_1 + }] + ... + [catch (exception_var_2) { + catch_statements_2 + }] + [finally { + finally_statements + }] + +- `try_statements` + - : Las sentencias que serán ejecutadas. + + + +- `catch_statements_1`, `catch_statements_2` + - : Sentencias que se ejecutan si una excepción es lanzada en el bloque `try`. -
-
try_statements
-
Las sentencias que serán ejecutadas.
-
+ -
-
catch_statements_1, catch_statements_2
-
Sentencias que se ejecutan si una excepción es lanzada en el bloque try.
-
+- `exception_var_1`, `exception_var_2` + - : Identificador que contiene un objeto de excepcion asociado a la cláusula `catch`. -
-
exception_var_1, exception_var_2
-
Identificador que contiene un objeto de excepcion asociado a la cláusula catch.
-
+ -
-
condition_1
-
Una expresión condicional.
-
+- `condition_1` + - : Una expresión condicional. -
-
finally_statements
-
Sentencias que se ejecutan después de que se completa la declaración try . Estas sentencias se ejecutan independientemente de si una excepcion fue lanzada o capturada.
-
+ -

Descripción

+- `finally_statements` + - : Sentencias que se ejecutan después de que se completa la declaración `try` . Estas sentencias se ejecutan independientemente de si una excepcion fue lanzada o capturada. -

La sentencia try consiste en un bloque try que contiene una o más sentencias. Las llaves {} se deben utilizar siempre, incluso para una bloques de una sola sentencia. Al menos un bloque catch o un bloque finally debe estar presente. Esto nos da tres formas posibles para la sentencia try:

+## Descripción -
    -
  1. try...catch
  2. -
  3. try...finally
  4. -
  5. try...catch...finally
  6. -
+La sentencia `try` consiste en un bloque `try` que contiene una o más sentencias. Las llaves `{}` se deben utilizar siempre`,` incluso para una bloques de una sola sentencia. Al menos un bloque `catch` o un bloque `finally` debe estar presente. Esto nos da tres formas posibles para la sentencia `try`: -

Un bloque catch contiene sentencias que especifican que hacer si una excepción es lanzada en el bloque try. Si cualquier sentencia dentro del bloque try (o en una funcion llamada desde dentro del bloque try) lanza una excepción, el control cambia inmediatamente al bloque catch . Si no se lanza ninguna excepcion en el bloque try, el bloque catch se omite.

+1. `try...catch` +2. `try...finally` +3. `try...catch...finally` -

La bloque finally se ejecuta despues del bloque try y el/los bloque(s) catch hayan finalizado su ejecución. Éste bloque siempre se ejecuta, independientemente de si una excepción fue lanzada o capturada.

+Un bloque `catch` contiene sentencias que especifican que hacer si una excepción es lanzada en el bloque `try`. Si cualquier sentencia dentro del bloque `try` (o en una funcion llamada desde dentro del bloque `try`) lanza una excepción, el control cambia inmediatamente al bloque `catch` . Si no se lanza ninguna excepcion en el bloque `try`, el bloque `catch` se omite. -

Puede anidar una o más sentencias try. Si una sentencia try interna no tiene una bloque catch, se ejecuta el bloque catch de la sentencia try que la encierra.

+La bloque `finally` se ejecuta despues del bloque `try` y el/los bloque(s) `catch` hayan finalizado su ejecución. Éste bloque siempre se ejecuta, independientemente de si una excepción fue lanzada o capturada. -

Usted también puede usar la declaración try para manejar excepciones de JavaScript. Consulte la Guía de JavaScript para obtener mayor información sobre excepciones de JavaScript.
-

+Puede anidar una o más sentencias `try`. Si una sentencia `try` interna no tiene una bloque `catch`, se ejecuta el bloque `catch` de la sentencia `try` que la encierra. -

Bloque catch incondicional

+Usted también puede usar la declaración `try` para manejar excepciones de JavaScript. Consulte la [Guía de JavaScript](/es/docs/Web/JavaScript/Guide) para obtener mayor información sobre excepciones de JavaScript. -

Cuando solo se utiliza un bloque catch, el bloque catch es ejecutado cuando cualquier excepción es lanzada. Por ejemplo, cuando la excepción ocurre en el siguiente código, el control se transfiere a la cláusula catch.

+### Bloque catch incondicional -
try {
+Cuando solo se utiliza un bloque `catch`, el bloque `catch` es ejecutado cuando cualquier excepción es lanzada. Por ejemplo, cuando la excepción ocurre en el siguiente código, el control se transfiere a la cláusula `catch`.
+
+```js
+try {
    throw "myException"; // genera una excepción
 }
 catch (e) {
    // sentencias para manejar cualquier excepción
    logMyErrors(e); // pasa el objeto de la excepción al manejador de errores
 }
-
+``` -

El bloque catch especifíca un identificador ( e en el ejemplo anterior) que contiene el valor de la excepción. Este valor está solo disponible en el {{Glossary("Scope", "scope")}} de el bloque catch

+El bloque `catch` especifíca un identificador ( `e` en el ejemplo anterior) que contiene el valor de la excepción. Este valor está solo disponible en el {{Glossary("Scope", "scope")}} de el bloque` catch` -

Bloques catch condicionales

+### Bloques catch condicionales -

Tambien se pueden crear "bloques catch condicionales", combinando bloques try...catch con estructuras if...else if...else como estas:

+Tambien se pueden crear "bloques `catch` condicionales", combinando bloques `try...catch` con estructuras `if...else if...else` como estas: -
try {
-    myroutine();  // puede lanzar tres tipos de excepciones
-} catch (e) {
-    if (e instanceof TypeError) {
-        // sentencias para manejar excepciones TypeError
-    } else if (e instanceof RangeError) {
-        // sentencias para manejar excepciones RangeError
-    } else if (e instanceof EvalError) {
-        // sentencias para manejar excepciones EvalError
-    } else {
-       // sentencias para manejar cualquier excepción no especificada
-       logMyErrors(e); // pasa el objeto de la excepción al manejador de errores
-}
+```js +try { + myroutine(); // puede lanzar tres tipos de excepciones +} catch (e) { + if (e instanceof TypeError) { + // sentencias para manejar excepciones TypeError + } else if (e instanceof RangeError) { + // sentencias para manejar excepciones RangeError + } else if (e instanceof EvalError) { + // sentencias para manejar excepciones EvalError + } else { + // sentencias para manejar cualquier excepción no especificada + logMyErrors(e); // pasa el objeto de la excepción al manejador de errores +} +``` -

El identificador de excepciones

+### El identificador de excepciones -

Cuando una excepción es lanzada en el bloque try, exception_var (por ejemplo, la e en catch (e)) guarda el valor de la excepción. Se puede usar éste identificador para obtener información acerca de la excepción que fue lanzada. Este valor está solo disponible en el {{Glossary("Scope", "scope")}} de el bloque catch.

+Cuando una excepción es lanzada en el bloque `try`, `exception_var` (por ejemplo, la `e` en `catch (e)`) guarda el valor de la excepción. Se puede usar éste identificador para obtener información acerca de la excepción que fue lanzada. Este valor está solo disponible en el {{Glossary("Scope", "scope")}} de el bloque` catch.` -
function isValidJSON(text) {
+```js
+function isValidJSON(text) {
   try {
     JSON.parse(text);
     return true;
   } catch {
     return false;
   }
-}
+} +``` -

La cláusula finally

+### La cláusula `finally` -

La cláusula finally contiene sentencias a ejecutarse después de que las cláusulas try y catch se ejecuten, pero antes de las sentencias que le siguen al bloque try..catch..finally. Note que la cláusula finally se ejecuta sin importar si una excepción es o no lanzada. Si una excepción es lanzada, las instrucciones en la cláusula finally se ejecutan incluso si ninguna cláusula catch maneja la excepción.

+La cláusula `finally` contiene sentencias a ejecutarse después de que las cláusulas `try` y `catch` se ejecuten, pero antes de las sentencias que le siguen al bloque `try..catch..finally`. Note que la cláusula `finally` se ejecuta sin importar si una excepción es o no lanzada. Si una excepción es lanzada, las instrucciones en la cláusula `finally` se ejecutan incluso si ninguna cláusula `catch` maneja la excepción. -

Usted puede usar la cláusula finally para hacer que su script falle plácidamente cuando una excepción ocurra; por ejemplo, para hacer una limpieza general, usted puede necesitar liberar un recurso que su script haya retenido.

+Usted puede usar la cláusula finally para hacer que su script falle plácidamente cuando una excepción ocurra; por ejemplo, para hacer una limpieza general, usted puede necesitar liberar un recurso que su script haya retenido. -

Puede parecer extraño tener una cláusula relacionada a una excepción que se ejecuta sin importar si hay una excepción o no, pero esta concepción en realidad sirve a un propósito. El punto importante no es que la cláusula finally siempre se ejecuta, si no más bien que el codigo ordinario que le sigue a try..catch no.

+Puede parecer extraño tener una cláusula relacionada a una excepción que se ejecuta sin importar si hay una excepción o no, pero esta concepción en realidad sirve a un propósito. El punto importante no es que la cláusula `finally` siempre se ejecuta, si no más bien que el codigo ordinario que le sigue a `try..catch` no. -

Por ejemplo, si otra excepción ocurre dentro de un bloque catch de una declaración try, cualquier codigo restante en el mismo bloque exterior try que encierra ese try..catch (o en el flujo principal, si no es un bloque try exterior) , no será ejecutado, dado que el control es inmediatamente transferido al bloque catch del try exterior (o el generador de error interno, si no es en un bloque try).

+Por ejemplo, si otra excepción ocurre dentro de un bloque `catch` de una declaración `try`, cualquier codigo restante en el mismo bloque exterior `try` que encierra ese `try..catch` (o en el flujo principal, si no es un bloque `try` exterior) , no será ejecutado, dado que el control es inmediatamente transferido al bloque `catch` del `try` exterior (o el generador de error interno, si no es en un bloque `try`). -

Por lo tanto, cualquier rutina de limpieza hecha en esa sección encerrada (o la principal) antes de que exista, será saltada. Sin embargo, si la declaración try tiene un bloque finally, entonces el código de ese bloque finally será ejecutado primero para permitir tal limpieza, y ENTONCES el bloque catch de la otra declaración try (o el generador de error) tomará el control para manejar la segunda excepción.

+Por lo tanto, cualquier rutina de limpieza hecha en esa sección encerrada (o la principal) antes de que exista, será saltada. Sin embargo, si la declaración `try` tiene un bloque `finally`, entonces el código de ese bloque `finally` será ejecutado primero para permitir tal limpieza, y ENTONCES el bloque `catch` de la otra declaración `try` (o el generador de error) tomará el control para manejar la segunda excepción. -

Ahora, si esa rutina de limpieza debiera ser hecha ya sea que el código del try..catch tenga éxito o no, entonces si el bloque finally se ejecutase solo después de una excepción, el mismo código de limpieza tendría que estar presente dentro y fuera del bloque finally, y por lo tanto no hay razón para no tener el bloque finally solo, y dejarlo ejecutarse sin importar si hay excepciones o no.

+Ahora, si esa rutina de limpieza debiera ser hecha ya sea que el código del `try..catch` tenga éxito o no, entonces si el bloque `finally` se ejecutase solo después de una excepción, el mismo código de limpieza tendría que estar presente dentro y fuera del bloque `finally`, y por lo tanto no hay razón para no tener el bloque `finally` solo, y dejarlo ejecutarse sin importar si hay excepciones o no. -

El siguiente ejemplo abre un archivo y despues ejecuta sentencias que usan el archivo (JavaScript del lado del servidor permite acceder a archivos). Si una excepción es lanzada mientras el archivo está abierto, la cláusula finally cierra el archivo antes de que el script falle. El código en finally también se ejecuta después de un retorno explícito de los bloques try o catch.

+El siguiente ejemplo abre un archivo y despues ejecuta sentencias que usan el archivo (JavaScript del lado del servidor permite acceder a archivos). Si una excepción es lanzada mientras el archivo está abierto, la cláusula `finally` cierra el archivo antes de que el script falle. El código en `finally` también se ejecuta después de un retorno explícito de los bloques `try` o `catch`. -
openMyFile()
+```js
+openMyFile()
 try {
    // retiene un recurso
    writeMyFile(theData);
@@ -146,110 +146,116 @@ try {
 finally {
    closeMyFile(); // siempre cierra el recurso
 }
-
- -

Ejemplos

- -

Bloques try anidados

- -

Primero, veamos que pasa con esto:

- -
try {
-  try {
-    throw new Error('oops');
-  }
-  finally {
-    console.log('finally');
-  }
-}
-catch (ex) {
-  console.error('outer', ex.message);
-}
-
-// Output:
-// "finally"
-// "outer" "oops"
- -

Ahora, si nosotros ya capturamos la excepción en una declaración try interna agregando un bloque catch.

- -
try {
-  try {
-    throw new Error('oops');
-  }
-  catch (ex) {
-    console.error('inner', ex.message);
-  }
-  finally {
-    console.log('finally');
-  }
-}
-catch (ex) {
-  console.error('outer', ex.message);
-}
-
-// Output:
-// "inner" "oops"
-// "finally"
- -

Y ahora vamos a relanzar el error.

- -
try {
-  try {
-    throw new Error('oops');
-  }
-  catch (ex) {
-    console.error('inner', ex.message);
-    throw ex;
-  }
-  finally {
-    console.log('finally');
-  }
-}
-catch (ex) {
-  console.error('outer', ex.message);
-}
-
-// Output:
-// "inner" "oops"
-// "finally"
-// "outer" "oops"
- -

Cualquier excepción dada será capturada solo una vez por el bloque catch más cercano a menos que sea relanzado. Por supuesto cualquier nueva excepción que se origine en el bloque 'interno' (porque el código en el bloque catch puede hacer algo que lanze un error), será capturado por el bloque 'externo'.

- -

Retornando de un bloque finally

- -

Si el bloque finally retorna un valor, este valor se convierte en el valor de retorno de toda la producción try-catch-finally, a pesar de cualquier sentencia return en los bloques try y catch. Esto incluye excepciones lanzadas dentro del bloque catch.

- -
(function() {
-  try {
-    try {
-      throw new Error('oops');
-    }
-    catch (ex) {
-      console.error('inner', ex.message);
-      throw ex;
-    }
-    finally {
-      console.log('finally');
-      return;
-    }
-  }
-  catch (ex) {
-    console.error('outer', ex.message);
-  }
-})();
-
-// Output:
-// "inner" "oops"
-// "finally"
- -

El "oops" externo no es lanzado debido al retorno en el bloque finally. Lo mismo aplicaría para cualquier valor retornado del bloque catch.

- -

Vea los ejemplos para {{jsxref("Sentencias/throw", "throw")}}.

- -

Vea también

- -
    -
  • {{jsxref("Error")}}
  • -
  • {{jsxref("Sentencias/throw", "throw")}}
  • -
+``` + +## Ejemplos + +### Bloques try anidados + +Primero, veamos que pasa con esto: + +```js +try { + try { + throw new Error('oops'); + } + finally { + console.log('finally'); + } +} +catch (ex) { + console.error('outer', ex.message); +} + +// Output: +// "finally" +// "outer" "oops" +``` + +Ahora, si nosotros ya capturamos la excepción en una declaración try interna agregando un bloque catch. + +```js +try { + try { + throw new Error('oops'); + } + catch (ex) { + console.error('inner', ex.message); + } + finally { + console.log('finally'); + } +} +catch (ex) { + console.error('outer', ex.message); +} + +// Output: +// "inner" "oops" +// "finally" +``` + +Y ahora vamos a relanzar el error. + +```js +try { + try { + throw new Error('oops'); + } + catch (ex) { + console.error('inner', ex.message); + throw ex; + } + finally { + console.log('finally'); + } +} +catch (ex) { + console.error('outer', ex.message); +} + +// Output: +// "inner" "oops" +// "finally" +// "outer" "oops" +``` + +Cualquier excepción dada será capturada solo una vez por el bloque catch más cercano a menos que sea relanzado. Por supuesto cualquier nueva excepción que se origine en el bloque 'interno' (porque el código en el bloque catch puede hacer algo que lanze un error), será capturado por el bloque 'externo'. + +### Retornando de un bloque finally + +Si el bloque `finally` retorna un valor, este valor se convierte en el valor de retorno de toda la producción `try-catch-finally`, a pesar de cualquier sentencia `return` en los bloques `try` y `catch`. Esto incluye excepciones lanzadas dentro del bloque catch. + +```js +(function() { + try { + try { + throw new Error('oops'); + } + catch (ex) { + console.error('inner', ex.message); + throw ex; + } + finally { + console.log('finally'); + return; + } + } + catch (ex) { + console.error('outer', ex.message); + } +})(); + +// Output: +// "inner" "oops" +// "finally" +``` + +El "oops" externo no es lanzado debido al retorno en el bloque finally. Lo mismo aplicaría para cualquier valor retornado del bloque catch. + +Vea los ejemplos para {{jsxref("Sentencias/throw", "throw")}}. + +## Vea también + +- {{jsxref("Error")}} +- {{jsxref("Sentencias/throw", "throw")}} diff --git a/files/es/web/javascript/reference/statements/var/index.md b/files/es/web/javascript/reference/statements/var/index.md index 02f59b44edec29..d38779b050f1c1 100644 --- a/files/es/web/javascript/reference/statements/var/index.md +++ b/files/es/web/javascript/reference/statements/var/index.md @@ -7,158 +7,176 @@ tags: translation_of: Web/JavaScript/Reference/Statements/var original_slug: Web/JavaScript/Referencia/Sentencias/var --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

Resumen

+## Resumen -

La sentencia var declara una variable, opcionalmente inicializándola con un valor.

+La sentencia **`var`** declara una variable, opcionalmente inicializándola con un valor. -

Sintaxis

+## Sintaxis -
var nombreDeVariable1 [= valor1] [, nombreDeVariable2 [= valor2] ... [, nombreDeVariableN [=valorN]]]; 
+ var nombreDeVariable1 [= valor1] [, nombreDeVariable2 [= valor2] ... [, nombreDeVariableN [=valorN]]]; -
-
nombreDeVariableN
-
Representa el nombre que el programador da a la variable. Puede ser cualquier identificador legal.
-
+- `nombreDeVariableN` + - : Representa el nombre que el programador da a la variable. Puede ser cualquier identificador legal. -
-
valorN
-
Valor inicial de la variable. Puede ser cualquier expresión legal. El valor predeterminado es undefined (en español, indefinida).
-
+ -

Descripción

+- `valorN` + - : Valor inicial de la variable. Puede ser cualquier expresión legal. El valor predeterminado es _undefined_ (en español, _indefinida_). -

Las declaraciones de variables, donde sea que ocurran, son procesadas antes de que cualquier otro código sea ejecutado. El ámbito de una variable declarada con la palabra reservada var es su contexto de ejecución en curso, que puede ser la función que la contiene o, para las variables declaradas afuera de cualquier función, un ámbito global. Si re-declaras una variable Javascript, esta no perderá su valor.

+## Descripción -

Asignar un valor a una variable no declarada implica crearla como variable global (se convierte en una propiedad del objeto global) cuando la asignación es ejecutada. Las diferencias entre una variable declarada y otra sin declarar son:

+Las declaraciones de variables, donde sea que ocurran, son procesadas antes de que cualquier otro código sea ejecutado. El ámbito de una variable declarada con la palabra reservada **`var`** es su _contexto de ejecución_ en curso*,* que puede ser la función que la contiene o, para las variables declaradas afuera de cualquier función, un ámbito global. Si re-declaras una variable Javascript, esta no perderá su valor. -

1. Las variables declaradas se limitan al contexto de ejecución en el cual son declaradas. Las variables no declaradas siempre son globales.

+Asignar un valor a una variable no declarada implica crearla como variable global (se convierte en una propiedad del objeto global) cuando la asignación es ejecutada. Las diferencias entre una variable declarada y otra sin declarar son: -
function x() {
-  y = 1;   // Lanza un error de tipo "ReferenceError" en modo estricto ('use strict')
-  var z = 2;
-}
+1\. Las variables declaradas se limitan al contexto de ejecución en el cual son declaradas. Las variables no declaradas siempre son globales.
 
-x();
+```js
+function x() {
+  y = 1;   // Lanza un error de tipo "ReferenceError" en modo estricto ('use strict')
+  var z = 2;
+}
 
-console.log(y); // Imprime "1" 
-console.log(z); // Lanza un error de tipo "ReferenceError": z no está definida afuera de x
+x(); -

2. Las variables declaradas son creadas antes de ejecutar cualquier otro código. Las variables sin declarar no existen hasta que el código que las asigna es ejecutado.

+console.log(y); // Imprime "1" +console.log(z); // Lanza un error de tipo "ReferenceError": z no está definida afuera de x +``` -
console.log(a);                // Lanza un error de tipo "ReferenceError".
-console.log('trabajando...'); // Nunca se ejecuta.
+2\. Las variables declaradas son creadas antes de ejecutar cualquier otro código. Las variables sin declarar no existen hasta que el código que las asigna es ejecutado. -
var a;
-console.log(a);                // Imprime "undefined" o "" dependiendo del navegador.
-console.log('trabajando...'); // Imprime "trabajando...".
+```js +console.log(a); // Lanza un error de tipo "ReferenceError". +console.log('trabajando...'); // Nunca se ejecuta. +``` -

3. Las variables declaradas son una propiedad no-configurable de su contexto de ejecución (de función o global). Las variables sin declarar son configurables (p. ej. pueden borrarse).

+```js +var a; +console.log(a); // Imprime "undefined" o "" dependiendo del navegador. +console.log('trabajando...'); // Imprime "trabajando...". +``` -
var a = 1;
-b = 2;
+3\. Las variables declaradas son una propiedad no-configurable de su contexto de ejecución (de función o global). Las variables sin declarar son configurables (p. ej. pueden borrarse).
 
-delete this.a; // Lanza un error de tipo "ReferenceError" en modo estricto ('use strict'), de lo contrario falla silenciosamente.
-delete this.b;
+```js
+var a = 1;
+b = 2;
 
-console.log(a, b); // Lanza un error de tipo "ReferenceError". 
-// La propiedad 'b' se eliminó y ya no existe.
+delete this.a; // Lanza un error de tipo "ReferenceError" en modo estricto ('use strict'), de lo contrario falla silenciosamente. +delete this.b; -

Debido a esas tres diferencias, fallar al declarar variables muy probablemente llevará a resultados inesperados. Por tanto se recomienda siempre declarar las variables, sin importar si están en una función o un ámbito global. Y en el modo estricto (strict mode) de ECMAScript 5, asignar valor a una variable sin declarar lanzará un error.

+console.log(a, b); // Lanza un error de tipo "ReferenceError". +// La propiedad 'b' se eliminó y ya no existe. +``` -

Elevación de variables

+Debido a esas tres diferencias, fallar al declarar variables muy probablemente llevará a resultados inesperados. Por tanto **se recomienda siempre declarar las variables, sin importar si están en una función o un ámbito global**. Y en el modo estricto ([strict mode](/es/docs/Web/JavaScript/Reference/Functions_and_function_scope/Strict_mode)) de ECMAScript 5, asignar valor a una variable sin declarar lanzará un error. -

Como la declaración de variables (y todas las declaraciones en general) se procesa antes de ejecutar cualquier código, declarar una variable en cualquier parte del código es equivalente a declararla al inicio del mismo. Esto también significa que una variable puede parecer usarse antes de ser declarada. Este comportamiento es llamado hoisting (del inglés "elevación"), ya que la declaración de una variable parecer haber sido movida a la cima de la función o código global.

+### Elevación de variables -
bla = 2;
-var bla;
-// ...
+Como la declaración de variables (y todas las declaraciones en general) se procesa antes de ejecutar cualquier código, declarar una variable en cualquier parte del código es equivalente a declararla al inicio del mismo. Esto también significa que una variable puede parecer usarse antes de ser declarada. Este comportamiento es llamado _hoisting_ (del inglés "elevación"), ya que la declaración de una variable parecer haber sido movida a la cima de la función o código global.
 
-// Es entendido implicitamente como:
+```js
+bla = 2;
+var bla;
+// ...
 
-var bla;
-bla = 2;
+// Es entendido implicitamente como: -

Por esa razón, se recomienda siempre declarar variables al inicio de su ámbito (la cima del código global y la cima del código de función) para que sea claro cuáles variables pertenecen al ámbito de función (local) y cuáles son resueltas en la cadena de ámbito.

+var bla; +bla = 2; +``` -

Es importante señalar que la elevación afectará la declaración de variables, pero no su inicialización. El valor será asignado precisamente cuando la sentencia de asignación sea alcanzada:

+Por esa razón, se recomienda siempre declarar variables al inicio de su ámbito (la cima del código global y la cima del código de función) para que sea claro cuáles variables pertenecen al ámbito de función (local) y cuáles son resueltas en la cadena de ámbito. -
function haz_algo() {
-  console.log(bar); // undefined (valor indefinido)
-  var bar = 111;
-  console.log(bar); // 111
-}
+Es importante señalar que **la elevación afectará la declaración** de variables, pero **no su inicialización**. El valor será asignado precisamente cuando la sentencia de asignación sea alcanzada:
 
-// Se entiende implícitamente como: 
-function haz_algo() {
-  var bar;
-  console.log(bar); // undefined (valor indefinido)
-  bar = 111;
-  console.log(bar); // 111
-}
+```js +function haz_algo() { + console.log(bar); // undefined (valor indefinido) + var bar = 111; + console.log(bar); // 111 +} -

+// Se entiende implícitamente como: +function haz_algo() { + var bar; + console.log(bar); // undefined (valor indefinido) + bar = 111; + console.log(bar); // 111 +} +``` -

Ejemplos

+## Ejemplos -

Declarando e inicializando dos variables

+### Declarando e inicializando dos variables -
var a = 0, b = 0;
+```js +var a = 0, b = 0; +``` -

Asignando dos variables con un solo valor de cadena

+### Asignando dos variables con un solo valor de cadena -
var a = 'A';
-var b = a;
+```js
+var a = 'A';
+var b = a;
 
-// Equivalente a:
+// Equivalente a:
 
-var a, b = a = 'A';
+var a, b = a = 'A'; +``` -

Sé consciente del orden:

+Sé consciente del orden: -
var x = y, y = 'A';
-console.log(x + y); // Imprimirá "undefinedA"
+```js +var x = y, y = 'A'; +console.log(x + y); // Imprimirá "undefinedA" +``` -

Aquí, 'x' & 'y' son declaradas antes de ejecutarse cualquier código, y la asignación ocurre después. Al momento de evaluar "x = y", 'y' existe así que ningún error "ReferenceError" es lanzado y su valor es 'undefined', de modo que 'x' también tiene asignada el valor 'undefined'. Después, a 'y' se le asigna el valor 'A'. Consecuentemente, luego de la primera línea, 'x' es exactamente igual a 'undefined' & 'y' es igual a 'A', de ahí el resultado.

+Aquí, '`x`' & '`y`' son declaradas antes de ejecutarse cualquier código, y la asignación ocurre después. Al momento de evaluar "`x = y`", '`y`' existe así que ningún error "`ReferenceError`" es lanzado y su valor es '`undefined`', de modo que '`x`' también tiene asignada el valor '`undefined`'. Después, a 'y' se le asigna el valor 'A'. Consecuentemente, luego de la primera línea, '`x`' es exactamente igual a `'undefined`' & '`y`' es igual a `'A'`, de ahí el resultado. -

Initialización de muchas variables

+### Initialización de muchas variables -
var x = 0;
+```js
+var x = 0;
 
-function f() {
-  var x = y = 1; // 'x' es declarada localmente, ¡'y' no lo es!
-}
-f();
+function f() {
+  var x = y = 1; // 'x' es declarada localmente, ¡'y' no lo es!
+}
+f();
 
-console.log(x, y); // Lanza un error de tipo "ReferenceError" en modo estricto ('y' no está definida). De lo contrario se imprimiría "0, 1".
-// En modo no-estricto:
-// 'x' es la variable global como se esperaría
-// 'y' sin embargo, se sale de la función
+console.log(x, y); // Lanza un error de tipo "ReferenceError" en modo estricto ('y' no está definida). De lo contrario se imprimiría "0, 1". +// En modo no-estricto: +// 'x' es la variable global como se esperaría +// 'y' sin embargo, se sale de la función +``` -

Globales implícitas y ámbito externo a una función

+### Globales implícitas y ámbito externo a una función -

Las variables que parecen ser globales implícitas pueden ser referencias a variables en un ámbito externo a la función:

+Las variables que parecen ser globales implícitas pueden ser referencias a variables en un ámbito externo a la función: -
var x = 0;  // 'x' es declarada globalmente, luego se le asigna el valor 0.
+```js
+var x = 0;  // 'x' es declarada globalmente, luego se le asigna el valor 0.
 
-console.log(typeof z); // Imprime "undefined", pues 'z' aún no existe.
+console.log(typeof z); // Imprime "undefined", pues 'z' aún no existe.
 
-function a() { // Cuando 'a()' es invocada,
-  var y = 2;   // 'y' es declarada localmente en la function 'a()', después se le asigna el valor 2.
+function a() { // Cuando 'a()' es invocada,
+  var y = 2;   // 'y' es declarada localmente en la function 'a()', después se le asigna el valor 2.
 
-  console.log(x, y);   // Imprime "0, 2".
+  console.log(x, y);   // Imprime "0, 2".
 
-  function b() {       // Cuando 'b()' es invocada,
-    x = 3;  // Asigna el valor 3 a la global 'x' ya existente, no crea una nueva variable global.
-    y = 4;  // Asigna 4 a la externa existente 'y', no crea una nueva variable global.
-    z = 5;  // Crea una nueva variable global 'z' y le asigna un valor de 5. 
-  }         // (Lanza un error de tipo "ReferenceError" en modo estricto.)
+  function b() {       // Cuando 'b()' es invocada,
+    x = 3;  // Asigna el valor 3 a la global 'x' ya existente, no crea una nueva variable global.
+    y = 4;  // Asigna 4 a la externa existente 'y', no crea una nueva variable global.
+    z = 5;  // Crea una nueva variable global 'z' y le asigna un valor de 5.
+  }         // (Lanza un error de tipo "ReferenceError" en modo estricto.)
 
-  b();     // Invocar 'b()' crea 'z' como variable global.
-  console.log(x, y, z);  // Imprime "3, 4, 5".
-}
+  b();     // Invocar 'b()' crea 'z' como variable global.
+  console.log(x, y, z);  // Imprime "3, 4, 5".
+}
 
-a();                   // Invocar 'a()' también llama a 'b()'.
-console.log(x, z);     // Imprime "3, 5", porque 'z' ya es una global.
-console.log(typeof y); // Imprime 'undefined' porque 'y' es local en la función 'a()'
+a(); // Invocar 'a()' también llama a 'b()'. +console.log(x, z); // Imprime "3, 5", porque 'z' ya es una global. +console.log(typeof y); // Imprime 'undefined' porque 'y' es local en la función 'a()' +``` diff --git a/files/es/web/javascript/reference/statements/while/index.md b/files/es/web/javascript/reference/statements/while/index.md index babb025e1ae22e..e625aae11ac44a 100644 --- a/files/es/web/javascript/reference/statements/while/index.md +++ b/files/es/web/javascript/reference/statements/while/index.md @@ -7,53 +7,47 @@ tags: translation_of: Web/JavaScript/Reference/Statements/while original_slug: Web/JavaScript/Referencia/Sentencias/while --- -
{{jsSidebar("Statements")}}
+{{jsSidebar("Statements")}} -

Resumen

+## Resumen -

Crea un bucle que ejecuta una sentencia especificada mientras cierta condición se evalúe como verdadera. Dicha condición es evaluada antes de ejecutar la sentencia

+Crea un bucle que ejecuta una sentencia especificada mientras cierta condición se evalúe como verdadera. Dicha condición es evaluada antes de ejecutar la sentencia -

Sintaxis

+## Sintaxis -
while (condicion)
-  sentencia
-
+ while (condicion) + sentencia -
-
condicion
-
Una expresión que se evalúa antes de cada paso del bucle. Si esta condición se evalúa como verdadera, se ejecuta sentencia. Cuando la condición se evalúa como false, la ejecución continúa con la sentencia posterior al bucle while.
-
+- `condicion` + - : Una expresión que se evalúa antes de cada paso del bucle. Si esta condición se evalúa como verdadera, se ejecuta `sentencia`. Cuando la condición se evalúa como false, la ejecución continúa con la `sentencia `posterior al bucle `while`. -
-
sentencia
-
Una sentecia que se ejecuta mientras la condición se evalúa como verdadera. Para ejecutar múltiples sentencias dentro de un bucle, utiliza una sentencia {{jsxref("Sentencias/block", "block")}} ({ ... }) para agrupar esas sentencias.
-
+ -

Ejemplos

+- `sentencia` + - : Una sentecia que se ejecuta mientras la condición se evalúa como verdadera. Para ejecutar múltiples sentencias dentro de un bucle, utiliza una sentencia {{jsxref("Sentencias/block", "block")}} (`{ ... }`) para agrupar esas sentencias. -

El siguiente bucle while itera mientras n es menor que tres.

+## Ejemplos -
n = 0;
+El siguiente bucle `while` itera mientras `n` es menor que tres.
+
+```js
+n = 0;
 x = 0;
-while (n < 3) {
+while (n < 3) {
   n ++;
   x += n;
 }
-
+``` -

Cada interación, el bucle incrementa n y la añade a x. Por lo tanto, x y n toman los siguientes valores:

+Cada interación, el bucle incrementa `n` y la añade a `x`. Por lo tanto, `x` y `n` toman los siguientes valores: -
    -
  • Después del primer pase: n = 1 y x = 1
  • -
  • Después del segundo pase: n = 2 y x = 3
  • -
  • Después del tercer pase: n = 3 y x = 6
  • -
+- Después del primer pase: `n` = 1 y `x` = 1 +- Después del segundo pase: `n` = 2 y `x` = 3 +- Después del tercer pase: `n` = 3 y `x` = 6 -

Después de completar el tercer pase, la condición n < 3 no será verdadera más tiempo, por lo que el bucle terminará.

+Después de completar el tercer pase, la condición `n` < 3 no será verdadera más tiempo, por lo que el bucle terminará. -

Vea También

+## Vea También -
    -
  • {{jsxref("Sentencias/do...while", "do...while")}}
  • -
  • {{jsxref("Sentencias/for", "for")}}
  • -
+- {{jsxref("Sentencias/do...while", "do...while")}} +- {{jsxref("Sentencias/for", "for")}} diff --git a/files/es/web/javascript/reference/strict_mode/index.md b/files/es/web/javascript/reference/strict_mode/index.md index 5f9b3b680524e9..16625a6ad32061 100644 --- a/files/es/web/javascript/reference/strict_mode/index.md +++ b/files/es/web/javascript/reference/strict_mode/index.md @@ -9,81 +9,82 @@ tags: translation_of: Web/JavaScript/Reference/Strict_mode original_slug: Web/JavaScript/Referencia/Modo_estricto --- -
{{JsSidebar("More", "Más")}}
+{{JsSidebar("More", "Más")}}A veces, verás que llaman {{Glossary("Sloppy_mode", "sloppy mode — modo poco riguroso")}} al modo no estricto predeterminado. Este no es un término oficial, pero tenlo en cuenta, por si acaso. -
A veces, verás que llaman {{Glossary("Sloppy_mode", "sloppy mode — modo poco riguroso")}} al modo no estricto predeterminado. Este no es un término oficial, pero tenlo en cuenta, por si acaso.
+El modo estricto de [ECMAScript 5](http://www.ecma-international.org/publications/standards/Ecma-262.htm) es una forma de elegir una variante _restringida_ de _JavaScript_, así implícitamente se deja de lado el modo poco riguroso. El modo estricto no es sólo un subconjunto: _intencionalmente_ tiene diferencia semántica del código normal. Los navegadores que no admiten el modo estricto ejecutarán el código con un comportamiento diferente a los que sí lo soportan, por lo tanto no confíes en el modo estricto sin antes hacer pruebas de sus características más relevantes. Los modos estricto y no estricto pueden coexistir, por lo tanto el código se puede transformar a modo estricto incrementalmente. -

El modo estricto de ECMAScript 5 es una forma de elegir una variante restringida de JavaScript, así implícitamente se deja de lado el modo poco riguroso. El modo estricto no es sólo un subconjunto: intencionalmente tiene diferencia semántica del código normal. Los navegadores que no admiten el modo estricto ejecutarán el código con un comportamiento diferente a los que sí lo soportan, por lo tanto no confíes en el modo estricto sin antes hacer pruebas de sus características más relevantes. Los modos estricto y no estricto pueden coexistir, por lo tanto el código se puede transformar a modo estricto incrementalmente.

+El modo estricto tiene varios cambios en la semántica normal de JavaScript: -

El modo estricto tiene varios cambios en la semántica normal de JavaScript:

+1. Elimina algunos errores silenciosos de JavaScript cambiándolos para que lancen errores. +2. Corrige errores que hacen difícil para los motores de JavaScript realizar optimizaciones: a veces, el código en modo estricto puede correr más rápido que un código idéntico pero no estricto. +3. Prohíbe cierta sintaxis que probablemente sea definida en futuras versiones de ECMAScript. -
    -
  1. Elimina algunos errores silenciosos de JavaScript cambiándolos para que lancen errores.
  2. -
  3. Corrige errores que hacen difícil para los motores de JavaScript realizar optimizaciones: a veces, el código en modo estricto puede correr más rápido que un código idéntico pero no estricto.
  4. -
  5. Prohíbe cierta sintaxis que probablemente sea definida en futuras versiones de ECMAScript.
  6. -
+Ve [transición a modo estricto](/es/docs/Web/JavaScript/Reference/Strict_mode/Transitioning_to_strict_mode), si deseas cambiar tu código para trabajar en la variante estricta de JavaScript. -

Ve transición a modo estricto, si deseas cambiar tu código para trabajar en la variante estricta de JavaScript.

+## Invocar el modo estricto -

Invocar el modo estricto

+El modo estricto se aplica a un _script completo_ o a _funciones individuales_. No se aplica a bloques entre corchetes `{}`; intentar aplicarlo en tales contextos no hace nada. Código `eval`, código `Function`, atributos de controladores de eventos, cadenas pasadas a [`setTimeout`](/es/docs/Web/API/WindowTimers.setTimeout "es/DOM/window.setTimeout"), y similares son scripts enteros, de modo que invocar modo estricto en tales contextos funciona como se espera. -

El modo estricto se aplica a un script completo o a funciones individuales. No se aplica a bloques entre corchetes {}; intentar aplicarlo en tales contextos no hace nada. Código eval, código Function, atributos de controladores de eventos, cadenas pasadas a setTimeout, y similares son scripts enteros, de modo que invocar modo estricto en tales contextos funciona como se espera.

+### Modo estricto para scripts -

Modo estricto para scripts

+Para invocar el modo estricto en todo un script, escribe _exactamente_ `"use strict";` (o `'use strict';`) antes de cualquier otra expresión. -

Para invocar el modo estricto en todo un script, escribe exactamente "use strict"; (o 'use strict';) antes de cualquier otra expresión.

- -
// Sintaxis del modo estricto para todo el script
+```js
+// Sintaxis del modo estricto para todo el script
 'use strict';
 var v = "¡Hola! ¡Estoy en modo estricto para script!";
-
+``` -

Esta sintaxis tiene un problema que ya ha afectado a cierta página bien conocida: no es posible concatenar ciegamente scripts conflictivos entre sí. Si concatena un script en modo estricto con otro que no es, la concatenación de ambos producirá código en modo estricto. Lo contrario también es cierto: código en modo no estricto mas código estricto produce código que no es estricto. Concatenar scripts no produce problemas si todos están en modo estricto (o si todos están en modo no estricto). El problema es mezclar scripts en modo estricto con scripts en modo no estricto. Por eso se recomienda habilitar el modo estricto a nivel de función solamente (al menos durante el periodo de transición de un programa).

+Esta sintaxis tiene un problema que [ya ha afectado](https://bugzilla.mozilla.org/show_bug.cgi?id=579119) a [cierta página bien conocida](https://bugzilla.mozilla.org/show_bug.cgi?id=627531): no es posible concatenar ciegamente scripts conflictivos entre sí. Si concatena un script en modo estricto con otro que no es, la concatenación de ambos producirá código en modo estricto. Lo contrario también es cierto: código en modo no estricto mas código estricto produce código que no es estricto. Concatenar scripts no produce problemas si todos están en modo estricto (o si todos están en modo no estricto). El problema es mezclar scripts en modo estricto con scripts en modo no estricto. Por eso se recomienda habilitar el modo estricto a nivel de función solamente (al menos durante el periodo de transición de un programa). -

Otra opción es envolver el contenido completo del script en una función y tener esa función externa en modo estricto. Así se elimina el problema de la concatenación, pero entonces tienes que hacerte cargo de exportar explícitamente las variables globales fuera del ámbito de la función.

+Otra opción es envolver el contenido completo del script en una función y tener esa función externa en modo estricto. Así se elimina el problema de la concatenación, pero entonces tienes que hacerte cargo de exportar explícitamente las variables globales fuera del ámbito de la función. -

Modo estricto para funciones

+### Modo estricto para funciones -

De igual forma, para invocar el modo estricto para una función, escribe exactamente "use strict"; (o 'use strict';) en el cuerpo de la función antes de cualquier otra expresión.

+De igual forma, para invocar el modo estricto para una función, escribe _exactamente_ `"use strict";` (o `'use strict';`) en el cuerpo de la función antes de cualquier otra expresión. -
function strict() {
+```js
+function strict() {
   // Sintaxis del modo estricto a nivel de función
   'use strict';
   function nested() { return "¡Y yo también!"; }
   return "¡Hola!  ¡Soy una función en modo estricto!  " + nested();
 }
 function notStrict() { return "Yo no soy estricto."; }
-
+``` -

Modo estricto para módulos

+### Modo estricto para módulos -

ECMAScript 2015 introdujo módulos y por tanto una tercera manera de entrar en el modo estricto. Todo el contenido de los módulos de JavaScript se encuentra automáticamente en modo estricto, sin necesidad de una declaración para iniciarlo.

+ECMAScript 2015 introdujo módulos y por tanto una tercera manera de entrar en el modo estricto. Todo el contenido de los módulos de JavaScript se encuentra automáticamente en modo estricto, sin necesidad de una declaración para iniciarlo. -
function strict() {
+```js
+function strict() {
     // debido a que este es un módulo, soy estricto por omisión
 }
 export default strict;
-
+``` -

Cambios en modo estricto

+## Cambios en modo estricto -

El modo estricto cambia la sintaxis y el comportamiento en tiempo de ejecución. Los cambios generalmente caen dentro de estas categorías: cambios que convierten equivocaciones en errores (como errores de sintaxis o en tiempo de ejecución), cambios que simplifican cómo se calcula el nombre de una variable particular, cambios que simplifican el uso de eval y arguments, cambios que hacen más fácil escribir JavaScript "seguro", y cambios que anticipan la evolución futura de ECMAScript.

+El modo estricto cambia la sintaxis y el comportamiento en tiempo de ejecución. Los cambios generalmente caen dentro de estas categorías: cambios que convierten equivocaciones en errores (como errores de sintaxis o en tiempo de ejecución), cambios que simplifican cómo se calcula el nombre de una variable particular, cambios que simplifican el uso de `eval` y `arguments`, cambios que hacen más fácil escribir JavaScript "seguro", y cambios que anticipan la evolución futura de ECMAScript. -

Convertir equivocaciones en errores

+### Convertir equivocaciones en errores -

El modo estricto cambia algunos errores de sintaxis tolerados en modo no estricto y los convierte en errores. JavaScript fue diseñado de modo que fuera fácil para programadores novatos, y puede haber operaciones semánticas que deberían ser errores pero son tratadas como libres de error. A veces esto sirve para solucionar el problema en el momento, pero puede crear problemas más graves en el futuro. El modo estricto trata las equivocaciones como errores, para que se puedan descubrir y subsanar inmediatamente.

+El modo estricto cambia algunos errores de sintaxis tolerados en modo no estricto y los convierte en errores. JavaScript fue diseñado de modo que fuera fácil para programadores novatos, y puede haber operaciones semánticas que deberían ser errores pero son tratadas como libres de error. A veces esto sirve para solucionar el problema en el momento, pero puede crear problemas más graves en el futuro. El modo estricto trata las equivocaciones como errores, para que se puedan descubrir y subsanar inmediatamente. -

En primer lugar, el modo estricto hace imposible crear variables globales por accidente. En JavaScript no estricto, si se escribe mal una variable en una asignación, se creará una nueva propiedad en el objeto global y el código continuará "trabajando" como si nada (aunque es posible que el código así escrito falle en el futuro, en concreto, en JavaScript moderno). En modo estricto, cualquier asignación que produzca variables globales por accidente lanzará un error:

+En primer lugar, el modo estricto hace imposible crear variables globales por accidente. En JavaScript no estricto, si se escribe mal una variable en una asignación, se creará una nueva propiedad en el objeto global y el código continuará "trabajando" como si nada (aunque es posible que el código así escrito falle en el futuro, en concreto, en JavaScript moderno). En modo estricto, cualquier asignación que produzca variables globales por accidente lanzará un error: -
'use strict';
+```js
+'use strict';
                        // Asumiendo que exista una variable global llamada mistypedVariable
 mistypeVariable = 17;  // esta línea lanza un ReferenceError debido a
                        // una errata en el nombre de la variable
-
+``` -

En segundo lugar, el modo estricto lanza una excepción en asignaciones que de otro modo fallarían silenciosamente. Por ejemplo, NaN es una variable global que no puede ser asignada. En un código normal, asignar a NaN no tiene efecto; el programador no recibe ningún mensaje de error. En cambio, en modo estricto, si se intenta asignar un valor a NaN, el programador recibirá una excepción. Cualquier asignación que falle silenciosamente en código normal (asignaciones a una propiedad de no escritura, asignaciones a una propiedad captadora, asignaciones a una nueva propiedad o a un objecto {{jsxref("Global_Objects/Object/preventExtensions", "no extensible")}}) lanzará una excepción en modo estricto:

+En segundo lugar, el modo estricto lanza una excepción en asignaciones que de otro modo fallarían silenciosamente. Por ejemplo, `NaN` es una variable global que no puede ser asignada. En un código normal, asignar a `NaN` no tiene efecto; el programador no recibe ningún mensaje de error. En cambio, en modo estricto, si se intenta asignar un valor a `NaN`, el programador recibirá una excepción. Cualquier asignación que falle silenciosamente en código normal (asignaciones a una propiedad de no escritura, asignaciones a una propiedad captadora, asignaciones a una nueva propiedad o a un objecto {{jsxref("Global_Objects/Object/preventExtensions", "no extensible")}}) lanzará una excepción en modo estricto: -
'use strict';
+```js
+'use strict';
 
 // Asignación a una no-escritura global
 var undefined = 5; // lanza un TypeError
@@ -102,65 +103,72 @@ obj2.x = 5; // lanza un TypeError
 var fixed = {};
 Object.preventExtensions(fixed);
 fixed.newProp = "ohai"; // lanza un TypeError
-
+``` -

En tercer lugar, el modo estricto lanza una excepción al intentar eliminar propiedades no eliminables (mientra que en código normal el intento no tendría ningún efecto):

+En tercer lugar, el modo estricto lanza una excepción al intentar eliminar propiedades no eliminables (mientra que en código normal el intento no tendría ningún efecto): -
'use strict';
+```js
+'use strict';
 delete Object.prototype; // lanza un TypeError
-
+``` -

En cuarto lugar, la versión de modo estricto anterior a Gecko 34 requiere que todas las propiedades nombradas en un objeto sean únicas. En código normal se pueden duplicar nombres, siendo el último el que determina el valor de la propiedad. Pero como el último es el único que hace algo, la duplicidad da origen a errores si el código se modifica para cambiar el valor de la propiedad. Duplicar nombres de propiedades es un error de sintaxis en modo estricto.

+En cuarto lugar, la versión de modo estricto anterior a Gecko 34 requiere que todas las propiedades nombradas en un objeto sean únicas. En código normal se pueden duplicar nombres, siendo el último el que determina el valor de la propiedad. Pero como el último es el único que hace algo, la duplicidad da origen a errores si el código se modifica para cambiar el valor de la propiedad. Duplicar nombres de propiedades es un error de sintaxis en modo estricto. -
-

Este ya no es el caso en ECMAScript 2015 (error 1041128).

-
+> **Nota:** Este ya no es el caso en ECMAScript 2015 ([error 1041128](https://bugzilla.mozilla.org/show_bug.cgi?id=1041128)). -
'use strict';
+```js
+'use strict';
 var o = { p: 1, p: 2 }; // !!! error de sintaxis
-
+``` -

En quinto lugar, el modo estricto requiere que los nombres de los parámetros de una función sean únicos. En código normal, el último argumento repetido oculta argumentos anteriores con el mismo nombre. Estos argumentos permanecen disponibles a través de arguments[i], de modo que no son completamente inaccesibles. Aun así, esta ocultación tiene poco sentido y es probablemente indeseable (pues puede ocultar, por ejemplo, un error al teclear una letra). Por lo tanto, en modo estricto, duplicar nombres de argumentos es un error de sintaxis:

+En quinto lugar, el modo estricto requiere que los nombres de los parámetros de una función sean únicos. En código normal, el último argumento repetido oculta argumentos anteriores con el mismo nombre. Estos argumentos permanecen disponibles a través de `arguments[i]`, de modo que no son completamente inaccesibles. Aun así, esta ocultación tiene poco sentido y es probablemente indeseable (pues puede ocultar, por ejemplo, un error al teclear una letra). Por lo tanto, en modo estricto, duplicar nombres de argumentos es un error de sintaxis: -
function sum(a, a, c) { // !!! error de sintaxis
+```js
+function sum(a, a, c) { // !!! error de sintaxis
   'use strict';
   return a + a + c; // incorrecto si este código se ejecutó
 }
-
+``` -

En sexto lugar, en modo estricto ECMAScript 5 se prohíbe la notación octal. La notación octal no es parte de ECMAScript 5, pero está soportada en todos los navegadores al poner como prefijo un cero al número: 0644 == 420 y "\045" === "%". En ECMAScript 2015, el número octal es compatible con el prefijo de un número con "0o". Es decir:

+En sexto lugar, en modo estricto ECMAScript 5 se prohíbe la notación octal. La notación octal no es parte de ECMAScript 5, pero está soportada en todos los navegadores al poner como prefijo un cero al número: `0644 == 420` y `"\045" === "%"`. En ECMAScript 2015, el número octal es compatible con el prefijo de un número con "`0o`". Es decir: -
var a = 0o10; // ES2015: Octal
+```js +var a = 0o10; // ES2015: Octal +``` -

Los programadores novatos a veces creen que un prefijo cero inicial no tiene un significado semántico, por lo que lo usan como dispositivo de alineación, ¡pero esto cambia el significado del número! Una sintaxis de cero a la izquierda para los octales rara vez es útil y se puede usar por error, por lo que el modo estricto lo convierte en un error de sintaxis:

+Los programadores novatos a veces creen que un prefijo cero inicial no tiene un significado semántico, por lo que lo usan como dispositivo de alineación, ¡pero esto cambia el significado del número! Una sintaxis de cero a la izquierda para los octales rara vez es útil y se puede usar por error, por lo que el modo estricto lo convierte en un error de sintaxis: -
'use strict';
+```js
+'use strict';
 var sum = 015 + // !!! error de sintaxis
           197 +
           142;
 
 var sumWithOctal = 0o10 + 8;
 console.log(sumWithOctal); // 16
-
+``` -

Séptimo, el modo estricto en ECMAScript 2015 prohíbe establecer propiedades en valores {{Glossary("Primitive", "primitivos")}}. La sintaxis octal rara vez es útil y se puede usar equivocadamente, de modo que en modo estricto, utilizar notación octal lanza un {{jsxref("TypeError")}}:

+Séptimo, el modo estricto en ECMAScript 2015 prohíbe establecer propiedades en valores {{Glossary("Primitive", "primitivos")}}. La sintaxis octal rara vez es útil y se puede usar equivocadamente, de modo que en modo estricto, utilizar notación octal lanza un {{jsxref("TypeError")}}: -
(function() {
+```js
+(function() {
 'use strict';
 
 false.true = '';         // TypeError
 (14).sailing = 'home';   // TypeError
 'with'.you = 'far away'; // TypeError
 
-})();
+})(); +``` -

Simplificación en el uso de variables

+### Simplificación en el uso de variables -

El modo estricto simplifica el modo en que el nombre de una variable es asignado a un variable particular en el código. Muchas optimizaciones del compilador se basan en la habilidad para decir el lugar específico en que una variable está almacenada, lo cual es crítico para una optimización completa del código JavaScript. Algunas veces JavaScript hace que esta asignación básica del nombre de una variable y su valor no suceda hasta que no se está en tiempo de ejecución. El modo estricto elimina muchos de los casos en los que esto pasa, de modo que el compilador puede optimizar mejor el código que es estricto.

+El modo estricto simplifica el modo en que el nombre de una variable es asignado a un variable particular en el código. Muchas optimizaciones del compilador se basan en la habilidad para decir el lugar específico en que una variable está almacenada, lo cual es crítico para una optimización completa del código JavaScript. Algunas veces JavaScript hace que esta asignación básica del nombre de una variable y su valor no suceda hasta que no se está en tiempo de ejecución. El modo estricto elimina muchos de los casos en los que esto pasa, de modo que el compilador puede optimizar mejor el código que es estricto. -

Primero, el modo estricto prohíbe el uso de with. El problema con with es que cualquier nombre dentro del bloque pude ser asignado a una propiedad del objecto pasado como argumento, o a una variable en su ámbito circundante (o incluso global), en tiempo de ejecución: es imposible saber de antemano cuál será. El modo estricto hace que el uso de with sea un error de sintaxis, de modo que no hay oportunidad de que una variable dentro de un with se refiera a una dirección desconocida en tiempo de ejecución:

+Primero, el modo estricto prohíbe el uso de `with`. El problema con `with` es que cualquier nombre dentro del bloque pude ser asignado a una propiedad del objecto pasado como argumento, o a una variable en su ámbito circundante (o incluso global), en tiempo de ejecución: es imposible saber de antemano cuál será. El modo estricto hace que el uso de `with` sea un error de sintaxis, de modo que no hay oportunidad de que una variable dentro de un `with` se refiera a una dirección desconocida en tiempo de ejecución: -
'use strict';
+```js
+'use strict';
 var x = 17;
 with (obj) { // !!! error de sintaxis
   // Si este no estuviera un modo estricto, ¿sería var x?, o
@@ -169,21 +177,23 @@ with (obj) { // !!! error de sintaxis
   // se puede optimizar.
   x;
 }
-
+``` -

En vez de usar with, existe la simple alternativa de asignar el objecto a una variable de nombre más corto, y después acceder a la propiedad correspondiente de esa variable.

+En vez de usar `with`, existe la simple alternativa de asignar el objecto a una variable de nombre más corto, y después acceder a la propiedad correspondiente de esa variable. -

Segundo, el uso de eval en modo estricto no introduce nuevas variables en el ámbito circundante. En código normal, eval("var x;") introduce una variable x dentro de la función circundante o el ámbito global. Esto significa que, en general, en una función que contiene una llamada a eval en cada nombre que no se refiera a un argumento o a una variable local, se debe asignar a una definición en particular en tiempo de ejecución (debido a que eval puedo haber introducido una nueva variable que podría ocultar una variable externa). En modo estricto, eval crea variables solo para el código que se está evaluando, por lo que eval no puede afectar si un nombre se refiere a una variable externa o a alguna variable local:

+Segundo, el uso de `eval` en modo estricto no introduce nuevas variables en el ámbito circundante. En código normal, `eval("var x;")` introduce una variable `x` dentro de la función circundante o el ámbito global. Esto significa que, en general, en una función que contiene una llamada a `eval` en cada nombre que no se refiera a un argumento o a una variable local, se debe asignar a una definición en particular en tiempo de ejecución (debido a que `eval` puedo haber introducido una nueva variable que podría ocultar una variable externa). En modo estricto, `eval` crea variables solo para el código que se está evaluando, por lo que `eval` no puede afectar si un nombre se refiere a una variable externa o a alguna variable local: -
var x = 17;
+```js
+var x = 17;
 var evalX = eval("'use strict'; var x = 42; x");
 console.assert(x === 17);
 console.assert(evalX === 42);
-
+``` -

En el ejemplo anterior, si la función eval es invocada por una expresión de la forma eval(...) en código de modo estricto, el código será evaluado en modo estricto. El código puede explícitamente invocar el modo estricto, pero no es necesario.

+En el ejemplo anterior, si la función `eval` es invocada por una expresión de la forma `eval(...)` en código de modo estricto, el código será evaluado en modo estricto. El código puede explícitamente invocar el modo estricto, pero no es necesario. -
function strict1(str) {
+```js
+function strict1(str) {
   'use strict';
   return eval(str); // str será tratado como código de modo estricto
 }
@@ -203,26 +213,29 @@ estricto2(eval, "'Código no estricto'");
 strict2(eval, "'use strict'; '¡Código en modo estricto!'");
 nonstrict("'Código no estricto'");
 nonstrict("'use strict'; '¡Código en modo estricto!'");
-
+``` -

Así los nombres en modo estricto usando eval se comportan idénticamente a los nombres en modo estricto no siendo evaluados como resultado de eval.

+Así los nombres en modo estricto usando `eval` se comportan idénticamente a los nombres en modo estricto no siendo evaluados como resultado de `eval`. -

Tercero, el modo estricto prohíbe eliminar nombres planos. De este modo, delete name produce un error de sintaxis.

+Tercero, el modo estricto prohíbe eliminar nombres planos. De este modo, `delete name` produce un error de sintaxis. -
'use strict';
+```js
+'use strict';
 
 var x;
 delete x; // !!! error de sintaxis
 
-eval("var y; delete y;"); // !!! error de sintaxis
+eval("var y; delete y;"); // !!! error de sintaxis +``` -

Haciendo eval y arguments más simples

+### Haciendo `eval` y `arguments` más simples -

El modo estricto hace que el uso de arguments y eval sea más intuitivo. Ambos envuelven un considerable misticismo en código normal: eval al añadir o remover los enlaces y cambiar los valores de dichos enlaces, y arguments al poder sustituir los nombres de los argumentos por propiedades indexadas. El modo estricto ofrece un gran paso al tratar a eval y a arguments como palabras clave, aunque soluciones finales no estarán disponibles hasta futuras ediciones de ECMAScript.

+El modo estricto hace que el uso de `arguments` y `eval` sea más intuitivo. Ambos envuelven un considerable misticismo en código normal: `eval` al añadir o remover los enlaces y cambiar los valores de dichos enlaces, y `arguments` al poder sustituir los nombres de los argumentos por propiedades indexadas. El modo estricto ofrece un gran paso al tratar a `eval` y a `arguments` como palabras clave, aunque soluciones finales no estarán disponibles hasta futuras ediciones de ECMAScript. -

Primero, las palabras eval y arguments no se pueden ligar o asignar en la sintaxis del lenguaje. Cualquier intento producirá un error de sintaxis:

+Primero, las palabras `eval` y `arguments` no se pueden ligar o asignar en la sintaxis del lenguaje. Cualquier intento producirá un error de sintaxis: -
'use strict';
+```js
+'use strict';
 eval = 17;
 arguments++;
 ++eval;
@@ -233,11 +246,12 @@ function x(eval) { }
 function arguments() { }
 var y = function eval() { };
 var f = new Function("arguments", "'use strict'; return 17;");
-
+``` -

Segundo, el modo estricto no permite usar alias en elementos del objecto arguments creados dentro de la función. En una función en código normal cuyo primer parámetro sea args, si se cambia el valor de args también se cambiará de arguments[0], y viceversa (a menos que no se proporcionen parámetros o se elimine arguments[0]). El objecto arguments para el modo estricto almacena los parámetros originales cuando la función es invocada. arguments[i] no guarda el valor del correspondiente nombre del parámetro, ni tampoco un parámetro con nombre guarda el valor correspondiente de arguments[i].

+Segundo, el modo estricto no permite usar alias en elementos del objecto `arguments` creados dentro de la función. En una función en código normal cuyo primer parámetro sea `args`, si se cambia el valor de `args` también se cambiará de `arguments[0]`, y viceversa (a menos que no se proporcionen parámetros o se elimine `arguments[0]`). El objecto `arguments` para el modo estricto almacena los parámetros originales cuando la función es invocada. `arguments[i]` no guarda el valor del correspondiente nombre del parámetro, ni tampoco un parámetro con nombre guarda el valor correspondiente de `arguments[i]`. -
function f(a) {
+```js
+function f(a) {
   'use strict';
   a = 42;
   return [a, arguments[0]];
@@ -245,35 +259,38 @@ var f = new Function("arguments", "'use strict'; return 17;");
 var pair = f(17);
 console.assert(pair[0] === 42);
 console.assert(pair[1] === 17);
-
+``` -

Tercero, arguments.callee no está soportado. En código normal, arguments.callee se refiere a la función envolvente. Este caso de uso es débil: ¡simplemente nombra la función envolvente!. Además arguments.callee merma el desempeño de funciones en línea pues debe ser posible proveer la referencia de la función que llamó a la función original cada vez que se usa arguments.callee. arguments.callee en modo estricto es una propiedad no eliminable y lanza una excepción cuando se le asigna un valor o se intenta regresar su valor.

+Tercero, `arguments.callee` no está soportado. En código normal, `arguments.callee` se refiere a la función envolvente. Este caso de uso es débil: ¡simplemente nombra la función envolvente!. Además `arguments.callee` merma el desempeño de funciones en línea pues debe ser posible proveer la referencia de la función que llamó a la función original cada vez que se usa `arguments.callee`. `arguments.callee` en modo estricto es una propiedad no eliminable y lanza una excepción cuando se le asigna un valor o se intenta regresar su valor. -
'use strict';
+```js
+'use strict';
 var f = function() { return arguments.callee; };
 f(); // lanza un TypeError
-
+``` -

+### -

El modo estricto hace más fácil el escribir código "seguro" en JavaScript. Algunos sitios web ofrecen ahora medios para que los usuarios codifiquen en JavaScript para que el código corra en el sitio en beneficio de otros usuarios. JavaScript en los navegadores puede acceder a la información privada del usuario, por lo que dicho JavaScript se debe transformar parcialmente antes de ejecutarse, para censurar el acceso a funciones prohibidas. La flexibilidad de JavaScript hace que efectivamente sea imposible hacer esto sin muchas comprobaciones en tiempo de ejecución. La flexibilidad de JavaScript hace casi imposible hacer esto sin hacer revisiones en tiempo de ejecución. Unos pocos ajustes del modo estricto, además de requerir que el JavaScript enviado por el usuario sea código de modo estricto y que se invoque de cierta manera, reducen sustancialmente la necesidad de esas comprobaciones en tiempo de ejecución.

+El modo estricto hace más fácil el escribir código "seguro" en JavaScript. Algunos sitios web ofrecen ahora medios para que los usuarios codifiquen en JavaScript para que el código corra en el sitio en _beneficio de otros usuarios_. JavaScript en los navegadores puede acceder a la información privada del usuario, por lo que dicho JavaScript se debe transformar parcialmente antes de ejecutarse, para censurar el acceso a funciones prohibidas. La flexibilidad de JavaScript hace que efectivamente sea imposible hacer esto sin muchas comprobaciones en tiempo de ejecución. La flexibilidad de JavaScript hace casi imposible hacer esto sin hacer revisiones en tiempo de ejecución. Unos pocos ajustes del modo estricto, además de requerir que el JavaScript enviado por el usuario sea código de modo estricto y que se invoque de cierta manera, reducen sustancialmente la necesidad de esas comprobaciones en tiempo de ejecución. -

Primero, el valor this pasado a una función en modo estricto no forzosamente debe ser un objeto (es decir, "empaquetado"). Para una función normal, this siempre es un objeto: o el objeto proporcionado si se llama con un this con valor de objeto; el valor, empaquetado, si se llama con un booleano, una cadena o un número this; o el objeto global si se llama con un undefined o null this. (Usar {{jsxref("Global_Objects/Function/call", "call")}}, {{jsxref("Global_Objects/Function/apply", "apply")}}, o {{jsxref("Global_Objects/Function/bind", "bind")}} para especificar un valor del this particular). Este empaquetado automático al pasar valores a una función tiene un costo en el rendimiento; no solo eso, si no que al exponer el objeto global en los navegadores es un riesgo de seguridad, debido a que el objeto global provee acceso a una funcionalidad que el código de JavaScript "seguro" debe restringir. Así, en una función en modo estricto , el valor de this no está empaquetado dentro de un objecto, y si no se especifica, this toma el valor de undefined.

+Primero, el valor `this` pasado a una función en modo estricto no forzosamente debe ser un objeto (es decir, "empaquetado"). Para una función normal, `this` siempre es un objeto: o el objeto proporcionado si se llama con un `this` con valor de objeto; el valor, empaquetado, si se llama con un booleano, una cadena o un número `this`; o el objeto global si se llama con un `undefined` o `null` `this`. (Usar {{jsxref("Global_Objects/Function/call", "call")}}, {{jsxref("Global_Objects/Function/apply", "apply")}}, o {{jsxref("Global_Objects/Function/bind", "bind")}} para especificar un valor del `this` particular). Este empaquetado automático al pasar valores a una función tiene un costo en el rendimiento; no solo eso, si no que al exponer el objeto global en los navegadores es un riesgo de seguridad, debido a que el objeto global provee acceso a una funcionalidad que el código de JavaScript "seguro" debe restringir. Así, en una función en modo estricto , el valor de `this` no está empaquetado dentro de un objecto, y si no se especifica, `this` toma el valor de `undefined`. -
'use strict';
+```js
+'use strict';
 function fun() { return this; }
 console.assert(fun() === undefined);
 console.assert(fun.call(2) === 2);
 console.assert(fun.apply(null) === null);
 console.assert(fun.call(undefined) === undefined);
 console.assert(fun.bind(true)() === true);
-
+``` -

Esto significa, entre otras cosas, que en los navegadores no es posible hacer referencia al objeto window a través de this dentro de una función en modo estricto.

+Esto significa, entre otras cosas, que en los navegadores no es posible hacer referencia al objeto `window` a través de `this` dentro de una función en modo estricto. -

Segundo, en modo estricto ya no es posible "recorrer" la pila de JavaScript a través de extensiones de ECMAScript. En código normal con estas extensiones, cuando una función llamada fun está en medio de su ejecución, fun.caller es la función que más recientemente llamó a fun, y fun.arguments son los parámetros para esa invocación de fun. Ambas extensiones son problemáticas para JavaScript "seguro", debido a que permiten acceder a funciones "privilegiadas" y sus (potencialmente inseguros) argumentos. Si fun está en modo estricto, tanto fun.caller como fun.arguments son propiedades no eliminables que lanzan una excepción cuando se establecen o recuperan:

+Segundo, en modo estricto ya no es posible "recorrer" la pila de JavaScript a través de extensiones de ECMAScript. En código normal con estas extensiones, cuando una función llamada `fun` está en medio de su ejecución, `fun.caller` es la función que más recientemente llamó a `fun`, y `fun.arguments` son los parámetros para esa invocación de `fun`. Ambas extensiones son problemáticas para JavaScript "seguro", debido a que permiten acceder a funciones "privilegiadas" y sus (potencialmente inseguros) argumentos. Si `fun` está en modo estricto, tanto `fun.caller` como `fun.arguments` son propiedades no eliminables que lanzan una excepción cuando se establecen o recuperan: -
function restricted() {
+```js
+function restricted() {
   'use strict';
   restricted.caller;    // lanza un TypeError
   restricted.arguments; // lanza un TypeError
@@ -282,26 +299,28 @@ function privilegedInvoker() {
   return restricted();
 }
 privilegedInvoker();
-
+``` -

Tercero, en funciones de modo estricto, el objeto arguments no provee acceso a las variables usadas al llamar a la función. En algunas implementaciones antiguas de ECMAScript, arguments.caller era un objeto cuyas propiedades apuntaban a las variables en la función. Esto es una amenaza de seguridad por que rompe la habilidad de ocultar valores privilegiados a través de la abstracción de la función; además, frena algunas optimizaciones. Por estas razones los navegadores modernos no la implementan. Por su funcionalidad a lo largo de los años, arguments.caller en una función de modo estricto es una propiedad que lanza una excepción cuando se usa.

+Tercero, en funciones de modo estricto, el objeto `arguments` no provee acceso a las variables usadas al llamar a la función. En algunas implementaciones antiguas de ECMAScript, `arguments.caller` era un objeto cuyas propiedades apuntaban a las variables en la función. Esto es una [amenaza de seguridad](http://stuff.mit.edu/iap/2008/facebook/) por que rompe la habilidad de ocultar valores privilegiados a través de la abstracción de la función; además, frena algunas optimizaciones. Por estas razones los navegadores modernos no la implementan. Por su funcionalidad a lo largo de los años, `arguments.caller` en una función de modo estricto es una propiedad que lanza una excepción cuando se usa. -
'use strict';
+```js
+'use strict';
 function fun(a, b) {
   'use strict';
   var v = 12;
   return arguments.caller; // lanza un TypeError
 }
 fun(1, 2); // no expone v (o a o b)
-
+``` -

Preparando el camino para futuras versiones de ECMAScript

+### Preparando el camino para futuras versiones de ECMAScript -

Las futuras versiones de ECMAScript introducirán nuevos cambios, y el modo estricto en ECMAScript 5 aplica algunos de esos cambios para hacer una transición más suave. Será más fácil hacer cambios si las bases de esos cambios son prohibidas en modo estricto.

+Las futuras versiones de ECMAScript introducirán nuevos cambios, y el modo estricto en ECMAScript 5 aplica algunos de esos cambios para hacer una transición más suave. Será más fácil hacer cambios si las bases de esos cambios son prohibidas en modo estricto. -

Primero, en modo estricto una lista de identificadores se convierte en palabras reservadas. Estas palabras son implements, interface, let, package, private, protected, public, static, y yield. De modo que en modo estricto, no se pueden usar estas palabras para nombrar variables o argumentos.

+Primero, en modo estricto una lista de identificadores se convierte en palabras reservadas. Estas palabras son `implements`, `interface`, `let`, `package`, `private`, `protected`, `public`, `static`, y `yield`. De modo que en modo estricto, no se pueden usar estas palabras para nombrar variables o argumentos. -
function package(protected) { // !!!
+```js
+function package(protected) { // !!!
   'use strict';
   var implements; // !!!
 
@@ -313,20 +332,20 @@ fun(1, 2); // no expone v (o a o b)
   function private() { } // !!!
 }
 function fun(static) { 'use strict'; } // !!!
+```
 
-
- -

Dos advertencias específicas de Mozilla: Primero, si tu código esta escrito en JavaScript 1.7 o mayor (por ejemplo en código chrome o cuando se usa bien <script type="">) y el código esta en modo estricto, let y yield tienen la funcionalidad que han tenido desde que esas palabras clave se introdujeron por primera vez. Pero el código en modo estricto en la web, cargado con <script src=""> o <script>...</script>, no podrá usar let/yield como identificadores. Segundo, mientras que ES5 incondicionalmente reserva las palabras class, enum, export, extends, import y super, Mozilla Firefox 5 solo las reserva en modo estricto.

+_Dos advertencias específicas de Mozilla_: Primero, si tu código esta escrito en JavaScript 1.7 o mayor (por ejemplo en código chrome o cuando se usa bien ``, no podrá usar `let`/`yield` como identificadores. _Segundo, mientras que ES5 incondicionalmente reserva las palabras `class`, `enum`, `export`, `extends`, `import` y `super`, Mozilla Firefox 5 solo las reserva en modo estricto_. -

En segundo lugar, el modo estricto prohíbe las declaraciones de función, no en el nivel superior de un script o función. En el modo normal de los navegadores, las declaraciones de función se permiten "en todas partes". ¡Esto no es parte de ES5 (ni siquiera de ES3)! Es una extensión con semántica incompatible en diferentes navegadores. Ten en cuenta que en ES2015 se permiten declaraciones de función fuera del nivel superior.

+En segundo lugar, [el modo estricto prohíbe las declaraciones de función, no en el nivel superior de un script o función](http://whereswalden.com/2011/01/24/new-es5-strict-mode-requirement-function-statements-not-at-top-level-of-a-program-or-function-are-prohibited/). En el modo normal de los navegadores, las declaraciones de función se permiten "en todas partes". _¡Esto no es parte de ES5 (ni siquiera de ES3)!_ Es una extensión con semántica incompatible en diferentes navegadores. Ten en cuenta que en ES2015 se permiten declaraciones de función fuera del nivel superior. -
'use strict';
+```js
+'use strict';
 if (true) {
   function f() { } // !!! error de sintaxis
   f();
 }
 
-for (var i = 0; i < 5; i++) {
+for (var i = 0; i < 5; i++) {
   function f2() { } // !!! error de sintaxis
   f2();
 }
@@ -334,36 +353,27 @@ for (var i = 0; i < 5; i++) {
 function baz() {   // legal
   function eit() { } // también legal
 }
-
- -

Esta prohibición no es el modo estricto propiamente dicho porque tales declaraciones de función son una extensión de ES5 básico. Pero es la recomendación del comité ECMAScript y los navegadores la implementarán.

- -

Modo estricto en navegadores

- -

La mayoría de los navegadores ya implementan el modo estricto. Sin embargo, no dependas ciegamente de él, ya que todavía hay numerosas Versiones del navegador utilizadas en la naturaleza que solo tienen soporte parcial para el modo estricto o no lo admiten en absoluto (por ejemplo, Internet Explorer por debajo de la versión 10). El modo estricto cambia la semántica. Depender de esos cambios provocará equivocaciones y errores en los navegadores que no implementan el modo estricto. Ten cuidado al usar el modo estricto y respalda la dependencia del modo estricto con pruebas de funciones que comprueben si se implementan las partes relevantes del modo estricto. Finalmente, asegúrate de probar tu código en navegadores que admitan y no admitan el modo estricto. Si realizas tus pruebas solo en navegadores que no admiten el modo estricto, es muy probable que tengas problemas en los navegadores que sí lo hacen, y viceversa.

- -

Especificaciones

- - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-strict-mode-code', 'Código en modo estricto')}}
- -

Ve también

- - +``` + +Esta prohibición no es el modo estricto propiamente dicho porque tales declaraciones de función son una extensión de ES5 básico. Pero es la recomendación del comité ECMAScript y los navegadores la implementarán. + +## Modo estricto en navegadores + +La mayoría de los navegadores ya implementan el modo estricto. Sin embargo, no dependas ciegamente de él, ya que todavía hay numerosas [Versiones del navegador utilizadas en la naturaleza que solo tienen soporte parcial para el modo estricto](http://caniuse.com/use-strict "caniuse.com disponibilidad de modo estricto") o no lo admiten en absoluto (por ejemplo, Internet Explorer por debajo de la versión 10). _El modo estricto cambia la semántica_. Depender de esos cambios provocará equivocaciones y errores en los navegadores que no implementan el modo estricto. Ten cuidado al usar el modo estricto y respalda la dependencia del modo estricto con pruebas de funciones que comprueben si se implementan las partes relevantes del modo estricto. Finalmente, asegúrate de _probar tu código en navegadores que admitan y no admitan el modo estricto_. Si realizas tus pruebas solo en navegadores que no admiten el modo estricto, es muy probable que tengas problemas en los navegadores que sí lo hacen, y viceversa. + +## Especificaciones + +| Especificación | +| ---------------------------------------------------------------------------------------------------- | +| {{SpecName('ESDraft', '#sec-strict-mode-code', 'Código en modo estricto')}} | + +## Ve también + +- [¿Dónde está Walden? » Nuevo soporte de modo estricto ES5: ¡ahora con píldoras venenosas!](http://whereswalden.com/2010/09/08/new-es5-strict-mode-support-now-with-poison-pills/) +- [¿Dónde está Walden? » Nuevo requisito del modo estricto de ES5: se prohíben las declaraciones de función que no estén en el nivel superior de un programa o función](http://whereswalden.com/2011/01/24/new-es5-strict-mode-requirement-function-statements-not-at-top-level-of-a-program-or-function-are-prohibited/) +- [¿Dónde está Walden? » Nueva compatibilidad con el modo estricto de ES5: las nuevas variables creadas por el código de evaluación del modo estricto son locales solo para ese código](http://whereswalden.com/2011/01/10/new-es5-strict-mode-support-new-vars-created-by-strict-mode-eval-code-are-local-to-that-code-only/) +- [Tutorial de "uso estricto" de JavaScript para principiantes.](http://qnimate.com/javascript-strict-mode-in-nutshell/) +- [John Resig — Modo estricto ECMAScript 5, JSON y más](http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/) +- [ECMA-262-5 en detalle. Capitulo 2. Modo estricto.](http://dmitrysoshnikov.com/ecmascript/es5-chapter-2-strict-mode/) +- [Tabla de compatibilidad del modo estricto](http://kangax.github.io/compat-table/es5/#Strict_mode) +- [Transición al modo estricto](/es/docs/Web/JavaScript/Reference/Strict_mode/Transitioning_to_strict_mode) diff --git a/files/es/web/javascript/reference/template_literals/index.md b/files/es/web/javascript/reference/template_literals/index.md index adc77abf983d3f..3931e213f4ffbb 100644 --- a/files/es/web/javascript/reference/template_literals/index.md +++ b/files/es/web/javascript/reference/template_literals/index.md @@ -9,145 +9,161 @@ tags: translation_of: Web/JavaScript/Reference/Template_literals original_slug: Web/JavaScript/Referencia/template_strings --- -
{{JsSidebar("More")}}
+{{JsSidebar("More")}} -

Las plantillas literales son cadenas literales que habilitan el uso de expresiones incrustadas. Con ellas, es posible utilizar cadenas de caracteres de más de una línea, y funcionalidades de interpolación de cadenas de caracteres.

+Las plantillas literales son cadenas literales que habilitan el uso de expresiones incrustadas. Con ellas, es posible utilizar cadenas de caracteres de más de una línea, y funcionalidades de interpolación de cadenas de caracteres. -

En ediciones anteriores de la especificación ES2015, solían llamarse "plantillas de cadenas de caracteres".

+En ediciones anteriores de la especificación ES2015, solían llamarse "plantillas de cadenas de caracteres". -

Sintaxis

+## Sintaxis -
`texto de cadena de caracteres`
+    `texto de cadena de caracteres`
 
-`línea 1 de la cadena de caracteres
- línea 2 de la cadena de caracteres`
+    `línea 1 de la cadena de caracteres
+     línea 2 de la cadena de caracteres`
 
-`texto de cadena de caracteres ${expresión} texto adicional`
+    `texto de cadena de caracteres ${expresión} texto adicional`
 
-etiqueta`texto de cadena de caracteres ${expresión} texto adicional`
-
+ etiqueta`texto de cadena de caracteres ${expresión} texto adicional` -

Descripción

+## Descripción -

Las plantillas literales se delimitan con el caracter de comillas o tildes invertidas (` `) (grave accent), en lugar de las comillas sencillas o dobles.

+Las plantillas literales se delimitan con el caracter de comillas o tildes invertidas (\` \`) ([grave accent](http://en.wikipedia.org/wiki/Grave_accent)), en lugar de las comillas sencillas o dobles. -

Las plantillas de cadena de caracteres pueden contener marcadores, identificados por el signo de dólar y envueltos en llaves (${expresión}). Las expresiones contenidas en los marcadores, junto con el texto entre ellas, son enviados como argumentos a una función.

+Las plantillas de cadena de caracteres pueden contener marcadores, identificados por el signo de dólar y envueltos en llaves (`${expresión}`). Las expresiones contenidas en los marcadores, junto con el texto entre ellas, son enviados como argumentos a una función. -

La función por defecto sencillamente concatena las partes para formar una única cadena de caracteres. Si hay una expresión antes de la plantilla literal (aquí indicada mediante etiqueta), se le conoce como "plantilla etiquetada". En este caso, la expresión de etiqueta (típicamente una función) es llamada con la plantilla literal como parámetro, que luego puede ser manipulada antes de ser devuelta.

+La función por defecto sencillamente concatena las partes para formar una única cadena de caracteres. Si hay una expresión antes de la plantilla literal (aquí indicada mediante _`etiqueta`_), se le conoce como "plantilla etiquetada". En este caso, la expresión de etiqueta (típicamente una función) es llamada con la plantilla literal como parámetro, que luego puede ser manipulada antes de ser devuelta. -

En caso de querer escapar una comilla o tilde invertida en una plantilla literal, se debe poner una barra invertida (\) antes de la comilla o tilde invertida.

+En caso de querer escapar una comilla o tilde invertida en una plantilla literal, se debe poner una barra invertida (`\`) antes de la comilla o tilde invertida. -
`\`` === '`' // --> true (cierto)
+```js +`\`` === '`' // --> true (cierto) +``` -

Cadenas de más de una línea

+### Cadenas de más de una línea -

Los caracteres de fin de línea encontrados forman parte de la plantilla literal.

+Los caracteres de fin de línea encontrados forman parte de la plantilla literal. -

Utilizando cadenas de caracteres normales, sería necesario utilizar la siguiente sintaxes para producir cadenas de más de una línea:

+Utilizando cadenas de caracteres normales, sería necesario utilizar la siguiente sintaxes para producir cadenas de más de una línea: -
console.log('línea 1 de cadena de texto\n' +
+```js
+console.log('línea 1 de cadena de texto\n' +
 '\línea 2 de cadena de texto');
 // "línea 1 de cadena de texto
 // línea 2 de cadena de texto"
-
+``` -

Utilizando plantillas literales, se puede obtener el mismo resultado de la siguiente forma:

+Utilizando plantillas literales, se puede obtener el mismo resultado de la siguiente forma: -
console.log(`línea 1 de la cadena de texto
+```js
+console.log(`línea 1 de la cadena de texto
 línea 2 de la cadena de texto`);
 // "línea 1 de la cadena de texto
-// línea 2 de la cadena de texto"
+// línea 2 de la cadena de texto" +``` -

Interpolación de expresiones

+### Interpolación de expresiones -

Para insertar expresiones dentro de cadenas de caracteres normales, se utilizaría la siguiente sintaxis:

+Para insertar expresiones dentro de cadenas de caracteres normales, se utilizaría la siguiente sintaxis: -
let a = 5;
+```js
+let a = 5;
 let b = 10;
 console.log('Quince es ' + (a + b) + ' y\nno ' + (2 * a + b) + '.');
 // "Quince es 15 y
-// no 20."
+// no 20." +``` -

Ahora, con las plantillas literales, se pueden utilizar sus nuevas capacidades (es decir, insertar expresiones con ${ } e incluir caracteres de fin de linea literales dentro de la cadena) para simplificar la sintaxis:

+Ahora, con las plantillas literales, se pueden utilizar sus nuevas capacidades (es decir, insertar expresiones con `${ }` e incluir caracteres de fin de linea literales dentro de la cadena) para simplificar la sintaxis: -
let a = 5;
+```js
+let a = 5;
 let b = 10;
 console.log(`Quince es ${a + b} y
 no ${2 * a + b}.`);
 // "Quince es 15 y
-// no 20."
+// no 20." +``` -

Anidamiento de plantillas

+### Anidamiento de plantillas -

En ciertos casos, anidar una plantilla es la forma más fácil, e incluso más legible, de tener cadenas configurables. Dentro de una plantilla con tildes invertidas, es sencillo permitir tildes invertidas interiores simplemente usándolas dentro de un marcador de posición ${ } dentro de la plantilla.

+En ciertos casos, anidar una plantilla es la forma más fácil, e incluso más legible, de tener cadenas configurables. Dentro de una plantilla con tildes invertidas, es sencillo permitir tildes invertidas interiores simplemente usándolas dentro de un marcador de posición `${ }` dentro de la plantilla. -

Por ejemplo, si la condición a es true (cierta): entonces return (devuelva) este literal con plantilla.

+Por ejemplo, si la condición a es `true` (cierta): entonces `return` (devuelva) este literal con plantilla. -

En ES5:

+En ES5: -
let classes = 'header'
-classes += (isLargeScreen() ?
-   '' : item.isCollapsed ?
-     ' icon-expander' : ' icon-collapser');
+```js +let classes = 'header' +classes += (isLargeScreen() ? + '' : item.isCollapsed ? + ' icon-expander' : ' icon-collapser'); +``` -

En ES2015 con plantillas literales y sin anidamiento:

+En ES2015 con plantillas literales y sin anidamiento: -
const classes = `header ${ isLargeScreen() ? '' :
-    (item.isCollapsed ? 'icon-expander' : 'icon-collapser') }`;
+```js +const classes = `header ${ isLargeScreen() ? '' : + (item.isCollapsed ? 'icon-expander' : 'icon-collapser') }`; +``` -

En ES5 con plantillas literales anidadas:

+En ES5 con plantillas literales anidadas: -
const classes = `header ${ isLargeScreen() ? '' :
- `icon-${item.isCollapsed ? 'expander' : 'collapser'}` }`;
+```js +const classes = `header ${ isLargeScreen() ? '' : + `icon-${item.isCollapsed ? 'expander' : 'collapser'}` }`; +``` -

Plantillas etiquetadas

+### Plantillas etiquetadas -

Una forma más avanzada de plantillas literales son las plantillas etiquetadas.

+Una forma más avanzada de plantillas literales son las plantillas _etiquetadas_. -

Con ellas es posible modificar la salida de las plantillas utilizando una función. El primer argumento contiene un array con una o más cadenas de caracteres. El segundo y subsiguientes argumentos se asocian con las expresiones de la plantilla.

+Con ellas es posible modificar la salida de las plantillas utilizando una función. El primer argumento contiene un array con una o más cadenas de caracteres. El segundo y subsiguientes argumentos se asocian con las expresiones de la plantilla. -

La función de etiqueta puede ejecutar cualesquiera operaciones deseadas con estos argumentos, y luego devolver la cadena manipulada. (También puede devolver algo totalmente distinto, como se muestra en uno de los siguientes ejemplos.)

+La función de etiqueta puede ejecutar cualesquiera operaciones deseadas con estos argumentos, y luego devolver la cadena manipulada. (También puede devolver algo totalmente distinto, como se muestra en uno de los siguientes ejemplos.) -

El nombre de la función utilizada con la etiqueta no es nada especial, se puede utilizar cualquier nombre de función en su lugar.

+El nombre de la función utilizada con la etiqueta no es nada especial, se puede utilizar cualquier nombre de función en su lugar. -
let persona = 'Mike';
-let edad = 28;
+```js
+let persona = 'Mike';
+let edad = 28;
 
-function myTag(strings, expPersona, expEdad)
-{
-  let str0 = strings[0]; // "Ese "
-  let str1 = strings[1]; // " es un "
+function myTag(strings, expPersona, expEdad)
+{
+  let str0 = strings[0]; // "Ese "
+  let str1 = strings[1]; // " es un "
 
-  // Tecnicamente, hay una cadena de
+  // Tecnicamente, hay una cadena de
   // caracteres después de la expresión
   // final (en nuestro ejemplo) pero
-  // está vacia (""), asi que se ignora.
-  // let str2 = strings[2];
-
-  let strEdad;
-  if (expEdad > 99)
-  {
-    strEdad = 'viejo';
-  }
-  else
-  {
-    strEdad = 'joven';
-  }
-
-  // Podemos incluso retornar una cadena de
-  // caracteres utilizando una plantilla literal.
-  return `${str0}${expPersona}${str1}${strEdad}`;
-}
+  // está vacia (""), asi que se ignora.
+  // let str2 = strings[2];
+
+  let strEdad;
+  if (expEdad > 99)
+  {
+    strEdad = 'viejo';
+  }
+  else
+  {
+    strEdad = 'joven';
+  }
+
+  // Podemos incluso retornar una cadena de
+  // caracteres utilizando una plantilla literal.
+  return `${str0}${expPersona}${str1}${strEdad}`;
+}
 
-var salida = myTag`Ese ${ persona } es un ${ edad }`;
+var salida = myTag`Ese ${ persona } es un ${ edad }`;
 
-console.log(salida);
-// Ese Mike es un joven
-
+console.log(salida); +// Ese Mike es un joven +``` -

Las funciones de etiqueta incluso pueden devolver valores que no sean cadenas de caracteres:

+Las funciones de etiqueta incluso pueden devolver valores que no sean cadenas de caracteres: -
function plantilla(cadenas, ...claves) {
+```js
+function plantilla(cadenas, ...claves) {
   return (function(...valores) {
     let diccio = valores[valores.length - 1] || {};
     let resultado = [cadenas[0]];
@@ -170,96 +186,90 @@ t2Closure('Hola', {foo: 'Mundo'}); // "¡Hola Mundo!"
 let t3Closure = plantilla`Me llamo ${'nombre'}. Tengo casi ${'edad'} años.`;
 //let t3Closure = plantilla(["Me llamo ", ". Tengo casi ", " años."], "nombre", "edad");
 t3Closure('foo', {nombre: 'MDN', edad: 30}); //"Me llamo MDN. Tengo casi 30 años."
-t3Closure({nombre: 'MDN', edad: 30}); //"Me llamo MDN. Tengo casi 30 años."
+t3Closure({nombre: 'MDN', edad: 30}); //"Me llamo MDN. Tengo casi 30 años." +``` -

Cadenas en crudo (raw)

+### Cadenas en crudo (_raw_) -

La propiedad especial raw, disponible en el primer argumento de la función de etiqueta, permite acceso a las cadenas de caracteres tal como fueron ingresadas, sin procesar secuencias de escape.

+La propiedad especial `raw`, disponible en el primer argumento de la función de etiqueta, permite acceso a las cadenas de caracteres tal como fueron ingresadas, sin procesar [secuencias de escape](/es/docs/Web/JavaScript/Guide/Grammar_and_types#Literales_String). -
function etiqueta(cadenas) {
+```js
+function etiqueta(cadenas) {
   console.log(cadenas.raw[0]);
 }
 
 etiqueta`texto de cadena de caracteres 1 \n texto de cadena de caracteres 2`;
 // muestra "texto de cadena de caracteres 1 \n texto de cadena de caracteres 2" ,
-// incluyendo los caracteres '\' y 'n'
+// incluyendo los caracteres '\' y 'n' +``` -

Adicionalmente, el método {{jsxref("String.raw()")}} permite crear cadenas de caracteres en crudo tal como serían generadas por la función por defecto de plantilla, concatenando sus partes.

+Adicionalmente, el método {{jsxref("String.raw()")}} permite crear cadenas de caracteres en crudo tal como serían generadas por la función por defecto de plantilla, concatenando sus partes. -
let cadena = String.raw`¡Hola\n${2+3}!`;
-// "¡Hola\n5!"
+```js
+let cadena = String.raw`¡Hola\n${2+3}!`;
+// "¡Hola\n5!"
 
-cadena.length;
-// 9
+cadena.length;
+// 9
 
-Array.from(cadena).join(',');
-// "¡,H,o,l,a,\,n,5,!"
-
+Array.from(cadena).join(','); +// "¡,H,o,l,a,\,n,5,!" +``` -

Plantillas etiquetadas y secuencias de escape

+### Plantillas etiquetadas y secuencias de escape -

Comportamiento en ES2016

+#### Comportamiento en ES2016 -

Comenzando con ECMAScript 2016, las plantillas etiquetadas se comportan de acuerdo con las normas de las siguientes secuencias de escape:

+Comenzando con ECMAScript 2016, las plantillas etiquetadas se comportan de acuerdo con las normas de las siguientes secuencias de escape: -
    -
  • Secuencias de escape de formato Unicode comenzando con "\u", como \u00A9
  • -
  • Secuencias de escape de formato Unicode de punto de código, indicadas con "\u{}", como \u{2F804}
  • -
  • Secuencias de escape de numeros hexadecimales comenzando con "\x", como \xA9
  • -
  • Secuencias de escape de octales literales comenzando con "\0o" seguidas de uno o más dígitos, como \0o251
  • -
+- Secuencias de escape de formato Unicode comenzando con "`\u`", como `\u00A9` +- Secuencias de escape de formato Unicode de punto de código, indicadas con "`\u{}`", como `\u{2F804}` +- Secuencias de escape de numeros hexadecimales comenzando con "`\x`", como `\xA9` +- Secuencias de escape de octales literales comenzando con "`\0o`" seguidas de uno o más dígitos, como `\0o251` -

Esto significa que una plantilla etiquetada como la siguiente podría causar problemas, dado que, de acuerdo con la gramática de ECMAScript, un analizador buscará secuencias de escape de formato Unicode válidas pero encontrará sintaxis equivocado:

+Esto significa que una plantilla etiquetada como la siguiente podría causar problemas, dado que, de acuerdo con la gramática de ECMAScript, un analizador buscará secuencias de escape de formato Unicode válidas pero encontrará sintaxis equivocado: -
latex`\unicode`
+```js
+latex`\unicode`
 // En ECMAScript 2016 y versiones anteriores, lanza
-// SyntaxError: malformed Unicode character escape sequence
+// SyntaxError: malformed Unicode character escape sequence +``` -

Revision de secuencias de escape no permitidas en ES2018

+### Revision de secuencias de escape no permitidas en ES2018 -

Las plantillas etiquetadas deberías permitir la inserción de lenguages (como los DSL, o LaTeX), en donde otras secuencias de escape se ven comúnmente. La propuesta para ECMAScript Template Literal Revision (Revisión de Plantilla Literal) (Cuarta Etapa, en camino a ser integrada al estándar de ECMAScript 2018) elimina la restricción de las secuencias de escape en ECMAScript para las plantillas etiquetadas.

+Las plantillas etiquetadas deberías permitir la inserción de lenguages (como los [DSL](https://en.wikipedia.org/wiki/Domain-specific_language), o [LaTeX](https://en.wikipedia.org/wiki/LaTeX)), en donde otras secuencias de escape se ven comúnmente. La propuesta para ECMAScript [Template Literal Revision](https://tc39.es/proposal-template-literal-revision/) (Revisión de Plantilla Literal) (Cuarta Etapa, en camino a ser integrada al estándar de ECMAScript 2018) elimina la restricción de las secuencias de escape en ECMAScript para las plantillas etiquetadas. -

Aún así, las secuencias de escape no permitidas deben ser representadas en la representación "cocinada" de la cadena. Aparecerán como elementos no definidos en el array llamado "cocinado" en el siguiente ejemplo.

+Aún así, las secuencias de escape no permitidas deben ser representadas en la representación "cocinada" de la cadena. Aparecerán como elementos [no definidos](/es/docs/Glossary/undefined) en el array llamado "cocinado" en el siguiente ejemplo. -
function latex(str) {
+```js
+function latex(str) {
   return { "cocinado": str[0], "en crudo": str.raw[0] }
 }
 
 latex`\unicode`
 
-// { cocinado: undefined, en crudo: "\\unicode" }
+// { cocinado: undefined, en crudo: "\\unicode" } +``` -

Cabe destacar que la restricción para secuencias de escape solo ha sido eliminada para plantillas etiquetadas. Aún permanece para plantillas literales sin etiqueta:

+Cabe destacar que la restricción para secuencias de escape solo ha sido eliminada para plantillas _etiquetadas_. Aún permanece para plantillas literales sin etiqueta: -
let bad = `bad escape sequence: \unicode`;
+```js example-bad +let bad = `bad escape sequence: \unicode`; +``` -

Especificaciones

+## Especificaciones - - - - - - - - - - - - - -
EspecificaciónStatusComentarios
{{SpecName('ES6', '#sec-template-literals', 'Template Literals')}}
- {{SpecName('ES6', '#sec-tagged-templates', 'Tagged Templates')}}
{{Spec2('ES6')}}Definición inicial.
+| Especificación | Status | Comentarios | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- | ------------------- | +| {{SpecName('ES6', '#sec-template-literals', 'Template Literals')}} {{SpecName('ES6', '#sec-tagged-templates', 'Tagged Templates')}} | {{Spec2('ES6')}} | Definición inicial. | -

Compatibilidad de navegadores

+## Compatibilidad de navegadores {{Compat("javascript.grammar.template_literals")}} -

Ver también

+## Ver también - +- {{jsxref("String")}} +- {{jsxref("String.raw()")}} +- [Lexical grammar](/es/docs/Web/JavaScript/Reference/Lexical_grammar) +- [Template-like strings in ES3 compatible syntax](https://gist.github.com/WebReflection/8f227532143e63649804) diff --git a/files/es/web/javascript/shells/index.md b/files/es/web/javascript/shells/index.md index d4c24e9a0d8285..cb07630823698c 100644 --- a/files/es/web/javascript/shells/index.md +++ b/files/es/web/javascript/shells/index.md @@ -3,39 +3,35 @@ title: JavaScript shells slug: Web/JavaScript/Shells translation_of: Web/JavaScript/Shells --- -
{{JsSidebar}}
- -

Un shell(*) JavaScript te permite probar rápidamente fragmentos de código JavaScript si tener que recargar un sitio web. Éstos son extremadamente útiles para desarrollar y depurar código.

- -

*[N. del T.: Un "shell" es una ventana que muestra texto para ejecutar un comando; o en el caso de un lenguaje de programación, funciones en forma de texto, y el resultado se muestra también en formato de texto].

- -

Shells JavaScript autónomas

- -

Las siguientes shells JavaScript son de entorno autónomos, como perl o python.

- -
    -
  • Node.js - Node.js es una plataforma para construir fácilmente aplicaciones de red rápidas y escalables.
  • -
  • JSDB - Una shell JavaScript autónoma, con binarios compilados para Windows, Mac, y Linux.
  • -
  • JavaLikeScript - Una shell JavaScript autónoma y extensible e incluye bibliotecas nativas y JavaScript.
  • -
  • GLUEscript - Una shell JavaScript autónoma para escribir aplicaciones JavaScript multiplataforma. Se puede usar wxWidgets para aplicaciones GUI (del inglés "Interfaces Gráficas de Usuario"), que era conocido anteriormente como wxJavaScript.
  • -
  • jspl - Una shell JavaScript autónoma A standalone JavaScript shell mejorada por Perl. Puede usar módulos perl directamente desde JavaScript: DBI para integración de bases de datos, GTK2 para aplicaciones GUI, POSIX para programación de sistemas, etc. Lo mejor de CPAN ahoa para programadores JavaScript.
  • -
  • ShellJS - Comandos de shell Unix portátiles para Node.js
  • -
- -

Listas de shells JavaScript

- -

Las siguientes shells JavaScript funcionan con Mozilla.

- -
    -
  • Firefox tiene una consola JavaScript incorporada, llamada Scratchpad, iniciando en la versión 6.
  • -
  • JavaScript Shell (js) - Un intérprete de líneas de comandos para JavaScript
  • -
  • xpcshell es un shell XPConnect habilitado, útil a veces para el desarrollo de Mozilla.
  • -
  • jsconsole.com -- Una consola JavaScript de código abierto con la habilidad de enlazar fácilmente expresiones particulares
  • -
  • JavaScript Shell (web page) - también disponible como parte de la Extensión de Desarrolladores de Extensión
  • -
  • Jash: JavaScript Shell - una shell basada en DHTML que te da el acceso a líneas de comando a una página web.
  • -
  • MozRepl - Conecta a Firefox y otras aplicaciones Mozilla, explora y modifícalas desde adentro, mientras se ejecutan.
  • -
  • Execute JS - (Ya no está mantenida) - Extensión de Firefox la cual proporciona una mejorada consola JavaScript, donde puedes cómodamente introducir y ejecutar arbitrariamente código JavaScript y modificar funciones.
  • -
  • xqjs - Consola simple para Firefox.
  • -
  • Firebug - Herramientas de desarrollador para Firefox, incluyendo consola.
  • -
  • ES6Console.com - Una consola JavaScript de código abierto para probar código ECMAScript 6 dentro del navegador.
  • -
+{{JsSidebar}} + +Un shell(\*) JavaScript te permite probar rápidamente fragmentos de código [JavaScript](/es/docs/Web/JavaScript) si tener que recargar un sitio web. Éstos son extremadamente útiles para desarrollar y depurar código. + +\*\[N. del T.: Un "shell" es una ventana que muestra texto para ejecutar un comando; o en el caso de un lenguaje de programación, funciones en forma de texto, y el resultado se muestra también en formato de texto]. + +## Shells JavaScript autónomas + +Las siguientes shells JavaScript son de entorno autónomos, como perl o python. + +- [Node.js](http://nodejs.org/) - Node.js es una plataforma para construir fácilmente aplicaciones de red rápidas y escalables. +- [JSDB](http://www.jsdb.org/) - Una shell JavaScript autónoma, con binarios compilados para Windows, Mac, y Linux. +- [JavaLikeScript](http://javalikescript.free.fr/) - Una shell JavaScript autónoma y extensible e incluye bibliotecas nativas y JavaScript. +- [GLUEscript](http://gluescript.sourceforge.net/) - Una shell JavaScript autónoma para escribir aplicaciones JavaScript multiplataforma. Se puede usar wxWidgets para aplicaciones GUI (del inglés "Interfaces Gráficas de Usuario"), que era conocido anteriormente como wxJavaScript. +- [jspl](http://jspl.msg.mx/) - Una shell JavaScript autónoma A standalone JavaScript shell mejorada por Perl. Puede usar módulos perl directamente desde JavaScript: DBI para integración de bases de datos, GTK2 para aplicaciones GUI, POSIX para programación de sistemas, etc. Lo mejor de CPAN ahoa para programadores JavaScript. +- [ShellJS](http://shelljs.org) - Comandos de shell Unix portátiles para Node.js + +## Listas de shells JavaScript + +Las siguientes shells JavaScript funcionan con Mozilla. + +- Firefox tiene una consola JavaScript incorporada, llamada [Scratchpad](/es/docs/Tools/Scratchpad), iniciando en la versión 6. +- [JavaScript Shell](/es/docs/Mozilla/Projects/SpiderMonkey/Introduction_to_the_JavaScript_shell) (`js`) - Un intérprete de líneas de comandos para JavaScript +- [xpcshell](/es/docs/Mozilla/XPConnect/xpcshell) es un shell [XPConnect](/es/docs/Mozilla/Tech/XPCOM/Language_bindings/XPConnect) habilitado, útil a veces para el desarrollo de Mozilla. +- [jsconsole.com](http://jsconsole.com/) -- Una consola JavaScript de código abierto con la habilidad de enlazar fácilmente expresiones particulares +- [JavaScript Shell (web page)](http://www.squarefree.com/shell/) - también disponible como parte de la [Extensión de Desarrolladores de Extensión](https://addons.mozilla.org/en-US/firefox/addon/7434) +- [Jash: JavaScript Shell](http://www.billyreisinger.com/jash/) - una shell basada en DHTML que te da el acceso a líneas de comando a una página web. +- [MozRepl](http://hyperstruct.net/projects/mozrepl) - Conecta a Firefox y otras aplicaciones Mozilla, explora y modifícalas desde adentro, mientras se ejecutan. +- [Execute JS](https://addons.mozilla.org/en-US/firefox/addon/execute-js/) - (Ya no está mantenida) - Extensión de Firefox la cual proporciona una mejorada consola JavaScript, donde puedes cómodamente introducir y ejecutar arbitrariamente código JavaScript y modificar funciones. +- [xqjs](https://addons.mozilla.org/addon/159546) - Consola simple para Firefox. +- [Firebug](https://addons.mozilla.org/en-US/firefox/addon/firebug/) - Herramientas de desarrollador para Firefox, incluyendo consola. +- [ES6Console.com](http://es6console.com) - Una consola JavaScript de código abierto para probar código ECMAScript 6 dentro del navegador. diff --git a/files/es/web/javascript/typed_arrays/index.md b/files/es/web/javascript/typed_arrays/index.md index 78e822998abd91..6917fab216cd2f 100644 --- a/files/es/web/javascript/typed_arrays/index.md +++ b/files/es/web/javascript/typed_arrays/index.md @@ -8,266 +8,173 @@ tags: translation_of: Web/JavaScript/Typed_arrays original_slug: Web/JavaScript/Vectores_tipados --- -
{{JsSidebar("Advanced")}}
- -

Los arreglos tipados en JavaScript son objetos similares a arreglos que proporcionan un mecanismo para leer y escribir datos binarios sin procesar en búferes de memoria. Como ya sabrás, los objetos {{jsxref("Array", "Arreglo")}} crecen y se encogen dinámicamente y pueden tener cualquier valor de JavaScript. Los motores de JavaScript realizan optimizaciones para que estos arreglos sean rápidos.

- -

Sin embargo, a medida que las aplicaciones web se vuelven cada vez más poderosas, agregando características como manipulación de audio y video, acceso a datos sin procesar usando WebSockets, etc., ha quedado claro que hay momentos en los que sería útil que el código JavaScript pudiera manipular rápida y fácilmente datos binarios sin procesar. Aquí es donde entran en juego los arreglos tipados. Cada entrada en un arreglo tipado de JavaScript es un valor binario sin procesar en uno de los formatos admitidos, desde números enteros de 8 bits hasta números de punto flotante de 64 bits.

- -

Sin embargo, los arreglos tipados no se deben confundir con los arreglos normales, ya que llamar a {{JSxRef("Array.isArray()")}} en un arreglo tipado devuelve false. Además, no todos los métodos disponibles para arreglos normales son compatibles con arreglos tipados (por ejemplo, push y pop).

- -

Búferes y vistas: arquitectura de los arreglos tipados

- -

Para lograr la máxima flexibilidad y eficiencia, los arreglos de JavaScript dividen la implementación en búferes y vistas. Un búfer (implementado por el objeto {{jsxref("ArrayBuffer")}} es un objeto que representa una porción de datos; no tiene ningún formato del que hablar y no ofrece ningún mecanismo para acceder a su contenido. Para acceder a la memoria contenida en un búfer, necesitas usar una vista. Una vista proporciona un contexto — es decir, un tipo de dato, un desplazamiento inicial y el número de elementos — que convierte los datos en un arreglo tipado.

- -

Arreglos tipados en ArrayBuffer

- -

ArrayBuffer

- -

{{jsxref("ArrayBuffer")}} es un tipo de dato que se utiliza para representar un búfer de datos binarios genérico de longitud fija. No puedes manipular directamente el contenido de un ArrayBuffer; en su lugar, crea una vista de arreglo tipado o un {{JSxRef("DataView")}} que representa el búfer en un formato específico, y lo usa para leer y escribir el contenido del búfer.

- -

Vistas de arreglos tipados

- -

Las vistas de arreglos tipados tienen nombres autodescriptivos y proporcionan vistas para todos los tipos numéricos habituales tal como Int8, Uint32, Float64 y así sucesivamente. Hay una vista de arreglo tipado especial, la Uint8ClampedArray. Esta fija los valores entre 0 y 255. {{JSxRef("../Data_structures", "Tipos de datos JavaScript")}}

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TipoIntervalo de valoresTamaño en bytesDescripciónTipo de IDL webTipo C equivalente
{{JSxRef("Int8Array")}}-128 a 1271Dos enteros complementarios de 8 bits con signobyteint8_t
{{JSxRef("Uint8Array")}}0 a 2551Entero de 8-bit sin signooctetuint8_t
{{JSxRef("Uint8ClampedArray")}}0 a 2551Entero de 8 bits sin signo (sujeto)octetuint8_t
{{JSxRef("Int16Array")}}-32768 a 327672Dos enteros complementarios de 16 bits con signoshortint16_t
{{JSxRef("Uint16Array")}}0 a 655352Entero de 16 bits sin signoShort sin signouint16_t
{{JSxRef("Int32Array")}}-2147483648 a 21474836474dos enteros complementarios de 32 bits con signolongint32_t
{{JSxRef("Uint32Array")}}0 a 42949672954Enteros de 32 bits sin signolong sin signouint32_t
{{JSxRef("Float32Array")}}1.2×10-38 a 3.4×10384Número de coma flotante IEEE de 32 bits (7 dígitos significativos, p. ej., 1.1234567)float sin restriccionesfloat
{{JSxRef("Float64Array")}}1.2×10-38 a 3.4×103088Número de coma flotante IEEE de 64 bits (16 dígitos significativos, p. ej., 1.123...15)doble sin restriccionesdouble
{{JSxRef("BigInt64Array")}}-263 a 263-18Dos enteros complementarios de 64 bits con signobigintint64_t (long long con signo)
{{JSxRef("BigUint64Array")}}0 a 264-18Entero de 64 bits sin signobigintuint64_t (long long sin signo)
- -

DataView

- -

{{jsxref("DataView")}} es una interfaz de bajo nivel que proporciona una API captadora (getter)/(setter) establecedora para leer y escribir datos arbitrarios en el búfer. Esto es útil cuando se trata de diferentes tipos de datos, por ejemplo. Las vistas de arreglos tipados están en el orden de bytes nativo (consulta {{Glossary("Endianness")}} de tu plataforma. Con un DataView puedes controlar el orden de bytes. Es big-endian de manera predeterminada y se puede establecer en little-endian en los métodos captadores/establecedores.

- -

APIs web que utilizan arreglos tipados

- -

Estos son algunos ejemplos de APIs que utilizan arreglos tipados; hay otras, y todo el tiempo surgen más.

- -
-
{{Link("/en-US/docs/Web/API/FileReader", "FileReader.prototype.readAsArrayBuffer()", "#readAsArrayBuffer()")}}
-
El método FileReader.prototype.readAsArrayBuffer() comienza a leer el contenido del {{Link("/es/docs/Web/API/Blob", "Blob")}} o {{Link("/es/docs/Web/API/File", "File")}}.
-
XMLHttpRequest.prototype.send()
-
El método send() de instancias de XMLHttpRequest ahora admiten arreglos tipados y objetos {{JSxRef("ArrayBuffer")}} como argumento.
-
{{Link("/en-US/docs/Web/API/ImageData", "ImageData.data")}}
-
Es un {{JSxRef("Uint8ClampedArray")}} que representa un arreglo unidimensional que contiene los datos en el orden RGBA, con valores enteros entre 0 y 255 inclusive.
-
- -

Ejemplos

- -

Usar vistas con búferes

- -

En primer lugar, necesitaremos crear un búfer, aquí con una longitud fija de 16 bytes:

- -
let buffer = new ArrayBuffer(16);
-
- -

En este punto, tenemos una porción de memoria cuyos bytes están todos preiniciados a 0. Sin embargo, no hay mucho que podamos hacer con él. Podemos confirmar que de hecho tiene 16 bytes de longitud, y eso es todo:

- -
if (buffer.byteLength === 16) {
+{{JsSidebar("Advanced")}}
+
+**Los arreglos tipados en JavaScript** son objetos similares a arreglos que proporcionan un mecanismo para leer y escribir datos binarios sin procesar en búferes de memoria. Como ya sabrás, los objetos {{jsxref("Array", "Arreglo")}} crecen y se encogen dinámicamente y pueden tener cualquier valor de JavaScript. Los motores de JavaScript realizan optimizaciones para que estos arreglos sean rápidos.
+
+Sin embargo, a medida que las aplicaciones web se vuelven cada vez más poderosas, agregando características como manipulación de audio y video, acceso a datos sin procesar usando `WebSockets`, etc., ha quedado claro que hay momentos en los que sería útil que el código JavaScript pudiera manipular rápida y fácilmente datos binarios sin procesar. Aquí es donde entran en juego los arreglos tipados. Cada entrada en un arreglo tipado de JavaScript es un valor binario sin procesar en uno de los formatos admitidos, desde números enteros de 8 bits hasta números de punto flotante de 64 bits.
+
+Sin embargo, los arreglos tipados _no_ se deben confundir con los arreglos normales, ya que llamar a {{JSxRef("Array.isArray()")}} en un arreglo tipado devuelve `false`. Además, no todos los métodos disponibles para arreglos normales son compatibles con arreglos tipados (por ejemplo, `push` y `pop`).
+
+## Búferes y vistas: arquitectura de los arreglos tipados
+
+Para lograr la máxima flexibilidad y eficiencia, los arreglos de JavaScript dividen la implementación en _búferes_ y _vistas_. Un búfer (implementado por el objeto {{jsxref("ArrayBuffer")}} es un objeto que representa una porción de datos; no tiene ningún formato del que hablar y no ofrece ningún mecanismo para acceder a su contenido. Para acceder a la memoria contenida en un búfer, necesitas usar una vista. Una vista proporciona un contexto — es decir, un tipo de dato, un desplazamiento inicial y el número de elementos — que convierte los datos en un arreglo tipado.
+
+![Arreglos tipados en ArrayBuffer](https://mdn.mozillademos.org/files/8629/typed_arrays.png)
+
+### `ArrayBuffer`
+
+{{jsxref("ArrayBuffer")}} es un tipo de dato que se utiliza para representar un búfer de datos binarios genérico de longitud fija. No puedes manipular directamente el contenido de un `ArrayBuffer`; en su lugar, crea una vista de arreglo tipado o un {{JSxRef("DataView")}} que representa el búfer en un formato específico, y lo usa para leer y escribir el contenido del búfer.
+
+### Vistas de arreglos tipados
+
+Las vistas de arreglos tipados tienen nombres autodescriptivos y proporcionan vistas para todos los tipos numéricos habituales tal como `Int8`, `Uint32`, `Float64` y así sucesivamente. Hay una vista de arreglo tipado especial, la `Uint8ClampedArray`. Esta fija los valores entre 0 y 255. {{JSxRef("../Data_structures", "Tipos de datos JavaScript")}}
+
+| Tipo                                     | Intervalo de valores          | Tamaño en bytes | Descripción                                                                               | Tipo de IDL web           | Tipo C equivalente               |
+| ---------------------------------------- | ----------------------------- | --------------- | ----------------------------------------------------------------------------------------- | ------------------------- | -------------------------------- |
+| {{JSxRef("Int8Array")}}         | `-128` a `127`                | 1               | Dos enteros complementarios de 8 bits con signo                                           | `byte`                    | `int8_t`                         |
+| {{JSxRef("Uint8Array")}}         | `0` a `255`                   | 1               | Entero de 8-bit sin signo                                                                 | `octet`                   | `uint8_t`                        |
+| {{JSxRef("Uint8ClampedArray")}} | `0` a `255`                   | 1               | Entero de 8 bits sin signo (sujeto)                                                       | `octet`                   | `uint8_t`                        |
+| {{JSxRef("Int16Array")}}         | `-32768` a `32767`            | 2               | Dos enteros complementarios de 16 bits con signo                                          | `short`                   | `int16_t`                        |
+| {{JSxRef("Uint16Array")}}         | `0` a `65535`                 | 2               | Entero de 16 bits sin signo                                                               | `Short sin signo`         | `uint16_t`                       |
+| {{JSxRef("Int32Array")}}         | `-2147483648` a `2147483647`  | 4               | dos enteros complementarios de 32 bits con signo                                          | `long`                    | `int32_t`                        |
+| {{JSxRef("Uint32Array")}}         | `0` a `4294967295`            | 4               | Enteros de 32 bits sin signo                                                              | `long sin signo`          | `uint32_t`                       |
+| {{JSxRef("Float32Array")}}     | `1.2`×`10-38` a `3.4`×`1038`  | 4               | Número de coma flotante IEEE de 32 bits (7 dígitos significativos, p. ej., `1.1234567`)   | `float sin restricciones` | `float`                          |
+| {{JSxRef("Float64Array")}}     | `1.2`×`10-38` a `3.4`×`10308` | 8               | Número de coma flotante IEEE de 64 bits (16 dígitos significativos, p. ej., `1.123...15`) | `doble sin restricciones` | `double`                         |
+| {{JSxRef("BigInt64Array")}}     | `-263` a `263-1`              | 8               | Dos enteros complementarios de 64 bits con signo                                          | `bigint`                  | `int64_t (long long con signo)`  |
+| {{JSxRef("BigUint64Array")}}     | `0` a `264-1`                 | 8               | Entero de 64 bits sin signo                                                               | `bigint`                  | `uint64_t (long long sin signo)` |
+
+### `DataView`
+
+{{jsxref("DataView")}} es una interfaz de bajo nivel que proporciona una API captadora (`getter`)/(`setter`) establecedora para leer y escribir datos arbitrarios en el búfer. Esto es útil cuando se trata de diferentes tipos de datos, por ejemplo. Las vistas de arreglos tipados están en el orden de bytes nativo (consulta {{Glossary("Endianness")}} de tu plataforma. Con un `DataView` puedes controlar el orden de bytes. Es `big-endian` de manera predeterminada y se puede establecer en `little-endian` en los métodos captadores/establecedores.
+
+## APIs web que utilizan arreglos tipados
+
+Estos son algunos ejemplos de APIs que utilizan arreglos tipados; hay otras, y todo el tiempo surgen más.
+
+- {{Link("/en-US/docs/Web/API/FileReader", "FileReader.prototype.readAsArrayBuffer()", "#readAsArrayBuffer()")}}
+  - : El método `FileReader.prototype.readAsArrayBuffer()` comienza a leer el contenido del {{Link("/es/docs/Web/API/Blob", "Blob")}} o {{Link("/es/docs/Web/API/File", "File")}}.
+- [`XMLHttpRequest.prototype.send()`]()
+  - : El método `send()` de instancias de `XMLHttpRequest` ahora admiten arreglos tipados y objetos {{JSxRef("ArrayBuffer")}} como argumento.
+- {{Link("/en-US/docs/Web/API/ImageData", "ImageData.data")}}
+  - : Es un {{JSxRef("Uint8ClampedArray")}} que representa un arreglo unidimensional que contiene los datos en el orden RGBA, con valores enteros entre `0` y `255` inclusive.
+
+## Ejemplos
+
+### Usar vistas con búferes
+
+En primer lugar, necesitaremos crear un búfer, aquí con una longitud fija de 16 bytes:
+
+```js
+let buffer = new ArrayBuffer(16);
+```
+
+En este punto, tenemos una porción de memoria cuyos bytes están todos preiniciados a 0. Sin embargo, no hay mucho que podamos hacer con él. Podemos confirmar que de hecho tiene 16 bytes de longitud, y eso es todo:
+
+```js
+if (buffer.byteLength === 16) {
   console.log("Sí, son 16 bytes");
 } else {
   console.log("¡Oh no, es del tamaño incorrecto!");
 }
-
+``` -

Antes de que podamos trabajar realmente con este búfer, necesitamos crear una vista. Creemos una vista que trate los datos en el búfer como un arreglo de enteros de 32 bits con signo:

+Antes de que podamos trabajar realmente con este búfer, necesitamos crear una vista. Creemos una vista que trate los datos en el búfer como un arreglo de enteros de 32 bits con signo: -
let int32View = new Int32Array(buffer);
-
+```js +let int32View = new Int32Array(buffer); +``` -

Ahora podemos acceder a los campos del arreglo como un arreglo normal:

+Ahora podemos acceder a los campos del arreglo como un arreglo normal: -
for (let i = 0; i < int32View.length; i++) {
+```js
+for (let i = 0; i < int32View.length; i++) {
   int32View[i] = i * 2;
 }
-
+``` -

Esto completa las 4 entradas en el arreglo (4 entradas de 4 bytes cada una suman 16 bytes en total) con los valores 0, 2, 4 y 6.

+Esto completa las 4 entradas en el arreglo (4 entradas de 4 bytes cada una suman 16 bytes en total) con los valores `0`, `2`, `4` y `6`. -

Múltiples vistas sobre los mismos datos

+### Múltiples vistas sobre los mismos datos -

Las cosas comienzan a ponerse realmente interesantes cuando consideras que puedes crear múltiples vistas sobre los mismos datos. Por ejemplo, dado el código anterior, podemos continuar así:

+Las cosas comienzan a ponerse realmente interesantes cuando consideras que puedes crear múltiples vistas sobre los mismos datos. Por ejemplo, dado el código anterior, podemos continuar así: -
let int16View = new Int16Array(buffer);
+```js
+let int16View = new Int16Array(buffer);
 
-for (let i = 0; i < int16View.length; i++) {
+for (let i = 0; i < int16View.length; i++) {
   console.log('Entrada ' + i + ': ' + int16View[i]);
 }
-
+``` -

Aquí creamos una vista entera de 16 bits que comparte el mismo búfer que la vista existente de 32 bits y sacamos todos los valores en el búfer como enteros de 16 bits. Ahora obtenemos la salida 0, 0, 2, 0, 4, 0, 6, 0.

+Aquí creamos una vista entera de 16 bits que comparte el mismo búfer que la vista existente de 32 bits y sacamos todos los valores en el búfer como enteros de 16 bits. Ahora obtenemos la salida `0`, `0`, `2`, `0`, `4`, `0`, `6`, `0`. -

Sin embargo, puedes dar un paso más. Considera esto:

+Sin embargo, puedes dar un paso más. Considera esto: -
int16View[0] = 32;
+```js
+int16View[0] = 32;
 console.log('La entrada 0 en el arreglo de 32 bits ahora es ' + int32View[0]);
-
+``` -

La salida de esto es "La entrada 0 en el arreglo de 32 bits ahora es 32".

+La salida de esto es `"La entrada 0 en el arreglo de 32 bits ahora es 32"`. -

En otras palabras, los dos arreglos se ven simplemente en el mismo búfer de datos, tratándolo como formatos diferentes. Lo puedes hacer con cualquier {{JSxRef("Global_Objects/TypedArray", "tipo de vista", "#TypedArray_objects")}}.

+En otras palabras, los dos arreglos se ven simplemente en el mismo búfer de datos, tratándolo como formatos diferentes. Lo puedes hacer con cualquier {{JSxRef("Global_Objects/TypedArray", "tipo de vista", "#TypedArray_objects")}}. -

Trabajar con complejas estructuras de datos

+### Trabajar con complejas estructuras de datos -

Al combinar un solo búfer con múltiples vistas de diferentes tipos, comenzando con diferentes desplazamientos en el búfer, puedes interactuar con objetos de datos que contienen múltiples tipos de datos. Esto te permite, por ejemplo, interactuar con complejas estructuras de datos {{Link("/es/docs/Web/WebGL", "WebGL")}}, archivos de datos o estructuras C que necesitas utilizar mientras usas {{Link("/en-US/docs/Mozilla/js-ctypes", "js-ctypes")}}.

+Al combinar un solo búfer con múltiples vistas de diferentes tipos, comenzando con diferentes desplazamientos en el búfer, puedes interactuar con objetos de datos que contienen múltiples tipos de datos. Esto te permite, por ejemplo, interactuar con complejas estructuras de datos {{Link("/es/docs/Web/WebGL", "WebGL")}}, archivos de datos o estructuras C que necesitas utilizar mientras usas {{Link("/en-US/docs/Mozilla/js-ctypes", "js-ctypes")}}. -

Considera esta estructura C:

+Considera esta estructura C: -
struct someStruct {
+```cpp
+struct someStruct {
   unsigned long id;
   char username[16];
   float amountDue;
-};
+}; +``` -

Puedes acceder a un búfer que contiene datos en un formato como este:

+Puedes acceder a un búfer que contiene datos en un formato como este: -
let buffer = new ArrayBuffer(24);
+```js
+let buffer = new ArrayBuffer(24);
 
 // ... lee los datos en el búfer ...
 
 let idView = new Uint32Array(buffer, 0, 1);
 let usernameView = new Uint8Array(buffer, 4, 16);
-let amountDueView = new Float32Array(buffer, 20, 1);
+let amountDueView = new Float32Array(buffer, 20, 1); +``` -

Luego puedes acceder, por ejemplo, al monto adeudado con amountDueView[0].

+Luego puedes acceder, por ejemplo, al monto adeudado con `amountDueView[0]`. -
Nota: La {{interwiki("wikipedia", "Data_structure_alignment")}} en una estructura C depende de la plataforma. Toma precauciones y consideraciones para estas diferencias de relleno.
+> **Nota:** La {{interwiki("wikipedia", "Data_structure_alignment")}} en una estructura C depende de la plataforma. Toma precauciones y consideraciones para estas diferencias de relleno. -

Conversión a arreglos normales

+### Conversión a arreglos normales -

Después de procesar un arreglo con tipo, a veces es útil volver a convertirla en un arreglo normal para beneficiarse del prototipo {{jsxref("Array")}}. Esto se puede hacer usando {{JSxRef("Array.from()")}}, o usando el siguiente código donde Array.from() no es compatible.

+Después de procesar un arreglo con tipo, a veces es útil volver a convertirla en un arreglo normal para beneficiarse del prototipo {{jsxref("Array")}}. Esto se puede hacer usando {{JSxRef("Array.from()")}}, o usando el siguiente código donde `Array.from()` no es compatible. -
let typedArray = new Uint8Array([1, 2, 3, 4]),
+```js
+let typedArray = new Uint8Array([1, 2, 3, 4]),
     normalArray = Array.prototype.slice.call(typedArray);
 normalArray.length === 4;
 normalArray.constructor === Array;
-
- -

Especificaciones

- - - - - - - - - - - - -
Especificación
{{SpecName('ESDraft', '#sec-typedarray-objects', 'TypedArray Objects')}}
+``` -

Compatibilidad del navegador

+## Especificaciones +| Especificación | +| ------------------------------------------------------------------------------------------------ | +| {{SpecName('ESDraft', '#sec-typedarray-objects', 'TypedArray Objects')}} | +## Compatibilidad del navegador -

{{Compat("javascript.builtins.Int8Array")}}

+{{Compat("javascript.builtins.Int8Array")}} -

Ve también

+## Ve también - +- {{Link("/en-US/docs/Web/JavaScript/Base64_encoding_and_decoding", "Conseguir ArrayBuffers o arreglos tipados a partir de cadenas codificadas en Base64", "#Appendix.3A_Decode_a_Base64_string_to_Uint8Array_or_ArrayBuffer")}} +- {{Link("/en-US/docs/Code_snippets/StringView", "StringView: una representación en C de cadenas basadas en arreglos tipados")}} +- [Rápida manipulación de píxeles en canvas con arreglos tipados](https://hacks.mozilla.org/2011/12/faster-canvas-pixel-manipulation-with-typed-arrays) +- [Arreglos tipados: Datos binarios en el navegador](http://www.html5rocks.com/en/tutorials/webgl/typed_arrays) +- {{Glossary("Endianness")}} diff --git a/files/es/web/manifest/index.md b/files/es/web/manifest/index.md index dbc62d76c134b1..384f1916f09c23 100644 --- a/files/es/web/manifest/index.md +++ b/files/es/web/manifest/index.md @@ -3,11 +3,12 @@ title: Web App Manifest slug: Web/Manifest translation_of: Web/Manifest --- -

El manifiesto de aplicaciones web proporciona información sobre una aplicación (como nombre, autor, icono y descripción) en un documento simplificado. Su principal propósito es crear progressive web apps: aplicaciones web que se pueden instalar desde la pantalla principal de un dispositivo sin necesidad de hacerlo a traves de una app store (y otras ventajas como disponibilidad offline y enviar notificaciones push cuando cambia el contenido de la aplicación.)

+El manifiesto de aplicaciones web proporciona información sobre una aplicación (como nombre, autor, icono y descripción) en un documento simplificado. Su principal propósito es crear [progressive web apps](/es/docs/Web/Apps/Progressive): aplicaciones web que se pueden instalar desde la pantalla principal de un dispositivo sin necesidad de hacerlo a traves de una app store (y otras ventajas como disponibilidad offline y enviar notificaciones push cuando cambia el contenido de la aplicación.) -

Manifiesto de ejemplo

+## Manifiesto de ejemplo -
{
+```json
+{
   "name": "Google I/O 2015",
   "short_name": "I/O 2015",
   "start_url": "./?utm_source=web_app_manifest",
@@ -43,95 +44,72 @@ translation_of: Web/Manifest
     "platform": "play",
     "url": "https://play.google.com/store/apps/details?id=com.google.samples.apps.iosched"
   }]
-}
+} +``` -

Propiedades

+## Propiedades -

background_color

+### `background_color` -

Define el color de fondo deseado para la aplicación. Este valor repite lo definido en la hoja de estilos de la aplicación, pero puede ser utilizado por los navegadores para pintar el color de fondo de una app si el manifiesto está disponible antes de que la hoja de estilos se haya cargado. Esto suaviza la transición entre lanzar una aplicación y cargar el contenido de la misma.

+Define el color de fondo deseado para la aplicación. Este valor repite lo definido en la hoja de estilos de la aplicación, pero puede ser utilizado por los navegadores para pintar el color de fondo de una app si el manifiesto está disponible antes de que la hoja de estilos se haya cargado. Esto suaviza la transición entre lanzar una aplicación y cargar el contenido de la misma. -
"background_color": "red"
+```json +"background_color": "red" +``` -
-

Note: El background_color únicamente está destinado a mejorar la experiencia de usuario mientras se carga la aplicación y no se debe usar como color de fondo cuando la hoja de estilos de la aplicación esté disponible.

-
+> **Nota:** El `background_color` únicamente está destinado a mejorar la experiencia de usuario mientras se carga la aplicación y no se debe usar como color de fondo cuando la hoja de estilos de la aplicación esté disponible. -

description

+### `description` -

Proporciona una descripción general sobre qué hace la aplicación.

+Proporciona una descripción general sobre qué hace la aplicación. -
"description": "The app that helps you find the best food in town!"
+```json +"description": "The app that helps you find the best food in town!" +``` -

dir

+### `dir` -

Especifica la dirección del texto para name, short_name, y description. Junto con lang, ayuda a representar correctamente los idiomas que se escriben de derecha a izquierda (right-to-left).

+Especifica la dirección del texto para `name`, `short_name`, y `description`. Junto con `lang`, ayuda a representar correctamente los idiomas que se escriben de derecha a izquierda (right-to-left). -
"dir": "rtl",
+```json
+"dir": "rtl",
 "lang": "ar",
-"short_name": "أنا من التطبيق!"
- -

Puede tener uno de los siguentes valores:

- -
    -
  • ltr (izquierda a derecha)
  • -
  • rtl (derecha a izquierda)
  • -
  • auto (indica al navegador que use el algoritmo Unicode bidirectional para hacer una estimación apropiada sobre la dirección del texto.)
  • -
- -
-

Note: Cuando se omite este valor, por defecto es auto.

-
- -

display

- -

Define el modo de visualización preferido para la aplicación web.

- -
"display": "standalone"
- -

Los valores aceptados son:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Display ModeDescriptionFallback Display Mode
fullscreenSe utiliza toda la pantalla disponible no se muestran elementos del user agent {{Glossary("chrome")}}.standalone
standaloneLa aplicación se mostrará como una app independiente. Así la aplicación puede tener su propia ventana, su propio icono en el lanzador de aplicaciones, etc. En este modo, the user agent excluirá los elementos de interfaz para controlar la navegación, pero puede incluir otros elementos como la barra de estado.minimal-ui
minimal-uiLa aplicación se mostrará como una app independiente, pero tendrá un mínimo de elementos de interfaz para controlar la navegación. Estos elementos podrán variar según navegador.browser
browserLa aplicación se abrirá en una pestaña nueva del navegador o una ventana nueva, dependiendo del navegador y plataforma. Esto es por defecto. (None)
- -
-

Note: Puedes aplicar selectivamente CSS a tu app basandote en el modo de visualización, usando la característica display-mode. Se puede utilizar para proporcionar una experiencia de usuario consistente al lanzar un site desde una URL y lanzarlo desde un icono de escritorio.

-
- -

icons

- -

Especifica un array de imágenes que pueden servir como iconos de aplicación en diferentes contextos. Por ejemplo, se pueden utilizar para representar la aplicación entre un listado de aplicaciones, o para integrar la aplicación web con un gestor de tareas del sistema operativo y/o las preferencias del sistema.

- -
"icons": [
+"short_name": "أنا من التطبيق!"
+```
+
+Puede tener uno de los siguentes valores:
+
+- `ltr` (izquierda a derecha)
+- `rtl` (derecha a izquierda)
+- `auto` (indica al navegador que use el algoritmo Unicode bidirectional para hacer una estimación apropiada sobre la dirección del texto.)
+
+> **Nota:** Cuando se omite este valor, por defecto es `auto`.
+
+### `display`
+
+Define el modo de visualización preferido para la aplicación web.
+
+```json
+"display": "standalone"
+```
+
+Los valores aceptados son:
+
+| Display Mode | Description                                                                                                                                                                                                                                                                                                           | Fallback Display Mode |
+| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- |
+| `fullscreen` | Se utiliza toda la pantalla disponible no se muestran elementos del user agent {{Glossary("chrome")}}.                                                                                                                                                                                                          | `standalone`          |
+| `standalone` | La aplicación se mostrará como una app independiente. Así la aplicación puede tener su propia ventana, su propio icono en el lanzador de aplicaciones, etc. En este modo, the user agent excluirá los elementos de interfaz para controlar la navegación, pero puede incluir otros elementos como la barra de estado. | `minimal-ui`          |
+| `minimal-ui` | La aplicación se mostrará como una app independiente, pero tendrá un mínimo de elementos de interfaz para controlar la navegación. Estos elementos podrán variar según navegador.                                                                                                                                     | `browser`             |
+| `browser`    | La aplicación se abrirá en una pestaña nueva del navegador o una ventana nueva, dependiendo del navegador y plataforma. Esto es por defecto.                                                                                                                                                                          | (None)                |
+
+> **Nota:** Puedes aplicar selectivamente CSS a tu app basandote en el modo de visualización, usando la característica [display-mode](/docs/Web/CSS/@media/display-mode). Se puede utilizar para proporcionar una experiencia de usuario consistente al lanzar un site desde una URL y lanzarlo desde un icono de escritorio.
+
+### `icons`
+
+Especifica un _array_ de imágenes que pueden servir como iconos de aplicación en diferentes contextos. Por ejemplo, se pueden utilizar para representar la aplicación entre un listado de aplicaciones, o para integrar la aplicación web con un gestor de tareas del sistema operativo y/o las preferencias del sistema.
+
+```json
+"icons": [
   {
     "src": "icon/lowres.webp",
     "sizes": "48x48",
@@ -149,79 +127,68 @@ translation_of: Web/Manifest
     "src": "icon/hd_hi.svg",
     "sizes": "72x72"
   }
-]
+] +``` -

Los objetos de imagen pueden contener los siguientes valores:

+Los objetos de imagen pueden contener los siguientes valores: - - - - - - - - - - - - - - - - - - - - - -
MemberDescription
sizesUna cadena que contiene separados por espacios las dimensiones de la imagen.
srcLa ruta de acceso al archivo de imagen.
typeA hint as to the media type of the image.The purpose of this member is to allow a user agent to quickly ignore images of media types it does not support.
+| Member | Description | +| ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `sizes` | Una cadena que contiene separados por espacios las dimensiones de la imagen. | +| `src` | La ruta de acceso al archivo de imagen. | +| `type` | A hint as to the media type of the image.The purpose of this member is to allow a user agent to quickly ignore images of media types it does not support. | -

lang

+### `lang` -

Especifica el idioma principal para in the name and short_name members. This value is a string containing a single language tag.

+Especifica el idioma principal para in the `name` and `short_name` members. This value is a string containing a single language tag. -
"lang": "en-US"
+```json +"lang": "en-US" +``` -

name

+### `name` -

Provides a human-readable name for the application as it is intended to be displayed to the user, for example among a list of other applications or as a label for an icon.

+Provides a human-readable name for the application as it is intended to be displayed to the user, for example among a list of other applications or as a label for an icon. -
"name": "Google I/O 2015" 
+```json +"name": "Google I/O 2015" +``` -

orientation

+### `orientation` -

Define la orientación por defecto for all the web application's top level {{Glossary("Browsing context", "browsing contexts")}}.

+Define la orientación por defecto for all the web application's top level {{Glossary("Browsing context", "browsing contexts")}}. -
​​"orientation": "portrait-primary"
+```json +​​"orientation": "portrait-primary" +``` -

Orientation puede ser alguno de los siguentes valores:

+Orientation puede ser alguno de los siguentes valores: -
    -
  • any
  • -
  • natural
  • -
  • landscape
  • -
  • landscape-primary
  • -
  • landscape-secondary
  • -
  • portrait
  • -
  • portrait-primary
  • -
  • portrait-secondary
  • -
+- `any` +- `natural` +- `landscape` +- `landscape-primary` +- `landscape-secondary` +- `portrait` +- `portrait-primary` +- `portrait-secondary` - +### `prefer_related_applications` -

Especifica un valor booleano que sugiere que el agente de usuario le indique al usuario que las aplicaciones específicas relacionadas (ver abajo) están disponibles, y recomendadas sobre la aplicación web. Esto solamente debería ser usado si la aplicación nativa relacionada realmente ofrece algo que la aplicación web no puede hacer.

+Especifica un valor booleano que sugiere que el agente de usuario le indique al usuario que las aplicaciones específicas relacionadas (ver abajo) están disponibles, y recomendadas sobre la aplicación web. Esto solamente debería ser usado si la aplicación nativa relacionada realmente ofrece algo que la aplicación web no puede hacer. -
"prefer_related_applications": false
+```json +"prefer_related_applications": false +``` -
-

Note: Si se omite, el valor por defecto es false.

-
+> **Nota:** Si se omite, el valor por defecto es `false`. - +### `related_applications` -

Specifies an array of "application objects" representing native applications that are installable by, or accessible to, the underlying platform — for example a native Android application obtainable through the Google Play Store. Such applications are intended to be alternatives to the web application that provide similar or equivalent functionality — like the native app version of the web app.

+Specifies an array of "application objects" representing native applications that are installable by, or accessible to, the underlying platform — for example a native Android application obtainable through the Google Play Store. Such applications are intended to be alternatives to the web application that provide similar or equivalent functionality — like the native app version of the web app. -
"related_applications": [
+```json
+"related_applications": [
   {
     "platform": "play",
     "url": "https://play.google.com/store/apps/details?id=com.example.app1",
@@ -229,83 +196,63 @@ translation_of: Web/Manifest
   }, {
     "platform": "itunes",
     "url": "https://itunes.apple.com/app/example-app1/id123456789"
-  }]
+ }] +``` -

Los objetos Application pueden contener los siguientes valores:

+Los objetos Application pueden contener los siguientes valores: - - - - - - - - - - - - - - - - - - - - - -
MemberDescription
platformThe platform on which the application can be found.
urlThe URL at which the application can be found.
idThe ID used to represent the application on the specified platform.
+| Member | Description | +| ---------- | ------------------------------------------------------------------- | +| `platform` | The platform on which the application can be found. | +| `url` | The URL at which the application can be found. | +| `id` | The ID used to represent the application on the specified platform. | -

scope

+### `scope` -

Define el ámbito de navegación en el contexto de la aplicación web. Esto basicamente restringe qué paginas se pueden ver cuando se aplica el manifiesto. Si el usuario navega fuera del ámbito de la aplicación, continúa como en una web normal.

+Define el ámbito de navegación en el contexto de la aplicación web. Esto basicamente restringe qué paginas se pueden ver cuando se aplica el manifiesto. Si el usuario navega fuera del ámbito de la aplicación, continúa como en una web normal. -
"scope": "/myapp/"
+```json +"scope": "/myapp/" +``` -

short_name

+### `short_name` -

Proporciona un nombre corto para la aplicación. Está destinado para su uso cuando hay poco espacio para mostrar el nombre completo de la aplicación.

+Proporciona un nombre corto para la aplicación. Está destinado para su uso cuando hay poco espacio para mostrar el nombre completo de la aplicación. -
"short_name": "I/O 2015"
-
+```json +"short_name": "I/O 2015" +``` -

start_url

+### `start_url` -

Especifica la URL que se carga cuando el usuario lanza la aplicación desde un dispositivo.

+Especifica la URL que se carga cuando el usuario lanza la aplicación desde un dispositivo. -
"start_url": "./?utm_source=web_app_manifest"
+```json +"start_url": "./?utm_source=web_app_manifest" +``` -

theme_color

+### `theme_color` -

Define el color por defecto para la aplicación. Esto en ocasiones afecta a como se muestra por el OS (e.g., en el lanzador de aplicaciones de Android, el color envuelve la aplicación).

+Define el color por defecto para la aplicación. Esto en ocasiones afecta a como se muestra por el OS (e.g., en el lanzador de aplicaciones de Android, el color envuelve la aplicación). -
"theme_color": "aliceblue"
+```json +"theme_color": "aliceblue" +``` -

Splash screens

+## Splash screens -

En Chrome 47 y posteriores, se muestra una pantalla de bienvenida para las aplicaciones web que se inician desde la pantalla de inicio. Esta pantalla de bienvenida se genera de automáticamente mediante las propiedades del manifiesto de la aplicación web, especificamente: name, background_color, y el icono de la lista icons que sea el más cercano a los 128dpi para el dispositivo.

+En Chrome 47 y posteriores, se muestra una pantalla de bienvenida para las aplicaciones web que se inician desde la pantalla de inicio. Esta pantalla de bienvenida se genera de automáticamente mediante las propiedades del manifiesto de la aplicación web, especificamente: `name`, `background_color`, y el icono de la lista `icons` que sea el más cercano a los 128dpi para el dispositivo. -

Tipo Mime

+## Tipo Mime -

Los manifiestos web se deben servir con el tipo MIME application/manifest+json. Sin embargo, esto es opcional.

+Los manifiestos web se deben servir con el tipo MIME `application/manifest+json`. Sin embargo, esto es opcional. -

Especificación

+## Especificación - - - - - - - - - - - - - -
SpecificationStatusComment
{{SpecName('Manifest')}}{{Spec2('Manifest')}}Initial definition.
+| Specification | Status | Comment | +| -------------------------------- | ---------------------------- | ------------------- | +| {{SpecName('Manifest')}} | {{Spec2('Manifest')}} | Initial definition. | -

Compatibilidad con navegadores

+## Compatibilidad con navegadores {{Compat("html.manifest")}} diff --git a/files/es/web/mathml/attribute/index.md b/files/es/web/mathml/attribute/index.md index fb91a7bc5c745f..43a6cfa3d1e5f8 100644 --- a/files/es/web/mathml/attribute/index.md +++ b/files/es/web/mathml/attribute/index.md @@ -3,483 +3,100 @@ title: MathML attribute reference slug: Web/MathML/Attribute translation_of: Web/MathML/Attribute --- -

Esta es una lista alfabetica de atributos de MathML. Más detalles de cada atributo está disponible en cada página de los elementos.

-

Notas:

-
    -
  • Los elementos MathML {{ MathMLElement("mstyle") }} y {{ MathMLElement("math") }} {{ gecko_minversion_inline("7.0") }} aceptan todos los atributos de todos los elementos de presentacion.
  • -
  • Vea los valores de las notas sobre los valores y unidades en MathML.
  • -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NombreAtributos aceptadosDescripción
accent{{ MathMLElement("mo") }}, {{ MathMLElement("mover") }}, {{ MathMLElement("munderover") }}Un valor booleano que especifíca si el operador debe ser tratado como un acento.
accentunder{{ MathMLElement("munder") }}, {{ MathMLElement("munderover") }}Un valor booleano que especifíca si el operador debe ser tratado como un acento.
actiontype{{ MathMLElement("maction") }}Un valor de cadena que especifica la acción pasada al elemento.
align{{ MathMLElement("mtable") }}
- {{ MathMLElement("munder") }}, {{ MathMLElement("mover") }}, {{ MathMLElement("munderover") }}
- {{ MathMLElement("mstack") }}
Especifica diferentes alineaciones de varios elementos (consulte la página de elementos para más detalles)
{{ unimplemented_inline() }} alignmentscope{{ MathMLElement("mtable") }}Un valor booleano que especifica si las columnas de la tabla deben actuar como ámbitos de alineación o no.
{{ unimplemented_inline() }}
- altimg
- altimg-width
- altimg-height
- altimg-valign
- alttext
{{ MathMLElement("math") }}Opciones visuales y textuales de repliegue
bevelled{{ MathMLElement("mfrac") }}Especifica el estilo de como se debe mostrar la fracción.
{{ unimplemented_inline() }} charalign{{ MathMLElement("mstack") }}Especifica la alineación horizontal de los dígitos.
close{{ MathMLElement("mfenced") }}Una cadena para el delimitador de cierre.
columnalign{{ MathMLElement("mtable") }}, {{ MathMLElement("mtd") }}, {{ MathMLElement("mtr") }}, {{ MathMLElement("mlabeledtr") }}Especifica la alineación horizontal de las celdas de la tabla.
columnlines{{ MathMLElement("mtable") }}Especifica los bordes de la columna de la tabla.
{{ unimplemented_inline() }} columnspacing{{ MathMLElement("mtable") }}Especifica el espacio entre las columnas de la tabla.
columnspan{{ MathMLElement("mtd") }}Un valor entero no negativo que indica a cuantas columnas se extiende las celdas de la tabla.
{{ unimplemented_inline() }} columnwidth{{ MathMLElement("mtable") }}Especifica el ancho de las columnas de la tabla.
{{ unimplemented_inline() }} crossout{{ MathMLElement("mscarry") }}Especifica el tipo de linea que se dibuja para tachar.
{{ unimplemented_inline() }} decimalpoint{{ MathMLElement("mstyle") }}Si el valor de decimalpoint es usado para especificar la alineación, este atributo especifica el caracter del punto de alineación dentro de las columnas de {{ MathMLElement("mstack") }} y {{ MathMLElement("mtable") }} .
denomalign{{ MathMLElement("mfrac") }}La alineación del denominador bajo la fracción.
depth{{ MathMLElement("mpadded") }}Establece o incrementa la profundidad. Ver longitud.
dir{{ MathMLElement("math") }}, {{ MathMLElement("mi") }}, {{ MathMLElement("mo") }}, {{ MathMLElement("mrow") }}, {{ MathMLElement("ms") }}, {{ MathMLElement("mtext") }}La dirección del texto. Posibles valores son ltr (izquierda a derecha) o rtl (derecha a izquierda).
display{{ MathMLElement("math") }}Especifica el modo de renderizado. Los valores block e inline son permitidos.
displaystyle{{ MathMLElement("mstyle") }}, {{ MathMLElement("mtable") }} -

Un valor booleano que especifica si un espacio más vertical es usado para las ecuaciones mostradas o, si se establece como false, un diseño más compacto se utiliza para mostrar las formulas.

-
{{ unimplemented_inline() }} edge{{ MathMLElement("malignmark") }}
{{ unimplemented_inline() }} equalcolumns{{ MathMLElement("mtable") }} -

Un valor booleano que indica si se debe obligar a las columnas a tener la misma altura total.

-
{{ unimplemented_inline() }} equalrows{{ MathMLElement("mtable") }}Un valor booleano que indica si se debe obligar a las filas a tener la misma altura total.
fence{{ MathMLElement("mo") }} -

Un valor booleano que indica si el operador está cercado (como parentesis). No hay efecto visual de este atributo.

-
{{ unimplemented_inline() }} form{{ MathMLElement("mo") }} -

Especifica el rol del operador en una expresión cerrada.

-
frame{{ MathMLElement("mtable") }} -

Especifica bordes de toda una {{ MathMLElement("mtable") }}. Posibles valores son: none (default), solid y dashed.

-
{{ unimplemented_inline() }} framespacing{{ MathMLElement("mtable") }}Especifica espacio adicional agregado entre la tabla y el frame.
{{ unimplemented_inline() }} groupalign{{ MathMLElement("maligngroup") }}, {{ MathMLElement("mtable") }}, {{ MathMLElement("mtd") }}, {{ MathMLElement("mtr") }}
height{{ MathMLElement("mglyph") }}, {{ MathMLElement("mpadded") }}, {{ MathMLElement("mspace") }}Especifica la altura deseada. Ver longitudes para los posibles valores.
hrefAllUsado para estableces un hyperlink para determinada URL.
idAllEstablece un unico identificador asociado con el elemento.
{{ unimplemented_inline() }} indentalign{{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }}
{{ unimplemented_inline() }} indentalignfirst{{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }}
{{ unimplemented_inline() }} indentalignlast{{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }}
{{ unimplemented_inline() }} indentshift{{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }}
{{ unimplemented_inline() }} indentshiftfirst{{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }}
{{ unimplemented_inline() }} indentshiftlast{{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }}
{{ unimplemented_inline() }} indenttarget{{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }}
{{ unimplemented_inline() }} infixlinebreakstyle{{ MathMLElement("mstyle") }}Especifica el valor por defecto de linebreakstyle a usar para los operadores infijos.
largeop{{ MathMLElement("mo") }}Especifica si el operador debe dibujarse más grande de lo normal.
length{{ MathMLElement("msline") }}
{{ unimplemented_inline() }} linebreak{{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }}
{{ unimplemented_inline() }} linebreakmultchar{{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }}
{{ unimplemented_inline() }} linebreakstyle{{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }}
{{ unimplemented_inline() }} lineleading{{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }}
linethickness{{ MathMLElement("mfrac") }}El grosor de la linea de fracción horizontal.
{{ unimplemented_inline() }} location{{ MathMLElement("mscarries") }}
{{ unimplemented_inline() }} longdivstyle{{ MathMLElement("mlongdiv") }}Controla el estilo del diseño de la división larga.
lspace{{ MathMLElement("mo") }}, {{ MathMLElement("mpadded") }}La cantidad de espacio antes del operador(ver length para valores y unidades).
lquote{{ MathMLElement("ms") }}El carácter de apertura de citas que encierra el contenido. El valor predeterminado es "&quot;".
mathbackgroundAllEl colo de fondo. Puedes usar #rgb, #rrggbb y nombres de color HTML.
mathcolorAllEl color de texto. Puedes usar #rgb, #rrggbb y nombres de color HTML.
mathsize{{ MathMLElement("mi") }}, {{ MathMLElement("mn") }}, {{ MathMLElement("mo") }}, {{ MathMLElement("ms") }}, {{ MathMLElement("mtext") }}El tamaño del contenido. Comenzando con Gecko 20.0 {{geckoRelease("20")}} valores sin unidades están permitidos y se interpretan como N veces el tamaño predeterminado.
mathvariant{{ MathMLElement("mi") }}, {{ MathMLElement("mn") }}, {{ MathMLElement("mo") }}, {{ MathMLElement("ms") }}, {{ MathMLElement("mtext") }}La clase logica del identificador, la cual varia en tipografia.
maxsize{{ MathMLElement("mo") }}El tamaño máximo del operador.
{{ unimplemented_inline() }} minlabelspacing{{ MathMLElement("mtable") }}Un valor de longitud espcificando el minimo espacio entre una etiqueta y la celda adjacente en la fila.
minsize{{ MathMLElement("mo") }}El tamaño mínimo del operador.
movablelimits{{ MathMLElement("mo") }}Especifica si los guiones bajos y altos se mueven a las posiciones de sub-índice o super-índice.
notation{{ MathMLElement("menclose") }}Una lista de anotaciones, separado por espacios en blanco, para aplicar a los elementos secundarios.
numalign{{ MathMLElement("mfrac") }}La alineación del numerador en la fracción.
open{{ MathMLElement("mfenced") }}Una cadena para el delimitador de apertura.
{{ unimplemented_inline() }} overflow{{ MathMLElement("math") }} -

Si una expresión es demasiado larga para encajar en el ancho definido, este atributo establece el tratamiendo preferido.

-
{{ unimplemented_inline() }} position{{ MathMLElement("msgroup") }}, {{ MathMLElement("msrow") }}, {{ MathMLElement("mscarries") }}, {{ MathMLElement("msline") }}
rowalign{{ MathMLElement("mtable") }}, {{ MathMLElement("mtd") }}, {{ MathMLElement("mtr") }}Especifica la alineación vertical de las celdas de la tabla.
rowlines{{ MathMLElement("mtable") }}Especifica los bordes de las filas de la tabla.
rowspacing{{ MathMLElement("mtable") }}Especifica el espacio entre las filas de la tabla.
rowspan{{ MathMLElement("mtd") }}Un valor entero no negativo que indica el númerp de filas que se extiende las celdas.
rspace{{ MathMLElement("mo") }}La cantidad de espacios luego del operador.
rquote{{ MathMLElement("ms") }}La marca de cierre de cita que encierra el contenido. El valor predeterminado es "&quot;".
scriptlevel{{ MathMLElement("mstyle") }}Controles sobre el tamaño de la fuente. Cuando mayor sea el nivel del script, menor el tamaño de la fuente.
scriptminsize{{ MathMLElement("mstyle") }}Especifica el minimo tamaño de fuente permitidos debido a cambios en scriptlevel.
- Comenzando con Gecko 20.0 {{geckoRelease("20")}} valores sin unidades y porcentajes son permitidos y se interpretan como multiplos de "8pt".
scriptsizemultiplier{{ MathMLElement("mstyle") }}Especifica el multiplicador a ser utilizado para ajustar el tamaño de fuente debidp a cambios en scriptlevel.
selection{{ MathMLElement("maction") }}El elemento secundario al cual se dirige la acción.
separator{{ MathMLElement("mo") }}No existe efecto visual para este elemento, pero especifica si el operador es un separador (como las comas).
separators{{ MathMLElement("mfenced") }}Una secuencia de ceros o más caracteres a ser usados por diferentes separadores.
{{ unimplemented_inline() }} shift{{ MathMLElement("msgroup") }}
{{ unimplemented_inline() }} side{{ MathMLElement("mtable") }}Especifica la posición donde los elementos{{ MathMLElement("mlabeledtr") }} deberían ser posicionados.
{{ unimplemented_inline() }} src{{ MathMLElement("mglyph") }}La ubicación de la imagen.
{{ unimplemented_inline() }} stackalign{{ MathMLElement("mstack") }}
stretchy{{ MathMLElement("mo") }}Especifica si el operador se extiende hasta el tamaño del elemento adyacente.
subscriptshift{{ MathMLElement("mmultiscripts") }}, {{ MathMLElement("msub") }}, {{ MathMLElement("msubsup") }}El espacio mínimo por el que se desplace el subíndice por debajo de la línea de base de la expresión.
supscriptshift{{ MathMLElement("mmultiscripts") }}, {{ MathMLElement("msup") }}, {{ MathMLElement("msubsup") }}El espacio mínimo por el que se desplace el superíndice por encima de la línea de base de la expresión.
symmetric{{ MathMLElement("mo") }} -

Si stretchy es true, este atributo especifica si el operador debe estar simetrico verticalmente al eje imaginario de matemáticas (linea centrada de fracción).

-
voffset{{ MathMLElement("mpadded") }}Ajusta la posición vertical del contenido secundario.
width{{ MathMLElement("mglyph") }}, {{ MathMLElement("mpadded") }}, {{ MathMLElement("mspace") }}, {{ MathMLElement("mtable") }}Especifica el ancho deseado. Ver longitudes para posibles valores.
xmlns{{ MathMLElement("math") }}Especifica la URL para el espacio de nombres MathML (http://www.w3.org/1998/Math/MathML)
-

+Esta es una lista alfabetica de atributos de MathML. Más detalles de cada atributo está disponible en cada [página de los elementos](/es/docs/MathML/Element). + +Notas: + +- Los elementos MathML {{ MathMLElement("mstyle") }} y {{ MathMLElement("math") }} {{ gecko_minversion_inline("7.0") }} aceptan todos los atributos de todos los elementos de presentacion. +- Vea los [valores](/es/docs/MathML/Attributes/Values) de las notas sobre los valores y unidades en MathML. + +| Nombre | Atributos aceptados | Descripción | +| ------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `accent` | {{ MathMLElement("mo") }}, {{ MathMLElement("mover") }}, {{ MathMLElement("munderover") }} | Un valor booleano que especifíca si el operador debe ser tratado como un acento. | +| `accentunder` | {{ MathMLElement("munder") }}, {{ MathMLElement("munderover") }} | Un valor booleano que especifíca si el operador debe ser tratado como un acento. | +| `actiontype` | {{ MathMLElement("maction") }} | Un valor de cadena que especifica la acción pasada al elemento. | +| `align` | {{ MathMLElement("mtable") }} {{ MathMLElement("munder") }}, {{ MathMLElement("mover") }}, {{ MathMLElement("munderover") }} {{ MathMLElement("mstack") }} | Especifica diferentes alineaciones de varios elementos (consulte la página de elementos para más detalles) | +| {{ unimplemented_inline() }} `alignmentscope` | {{ MathMLElement("mtable") }} | Un valor booleano que especifica si las columnas de la tabla deben actuar como ámbitos de alineación o no. | +| {{ unimplemented_inline() }} `altimg` `altimg-width` `altimg-height` `altimg-valign` `alttext` | {{ MathMLElement("math") }} | Opciones visuales y textuales de repliegue | +| `bevelled` | {{ MathMLElement("mfrac") }} | Especifica el estilo de como se debe mostrar la fracción. | +| {{ unimplemented_inline() }} `charalign` | {{ MathMLElement("mstack") }} | Especifica la alineación horizontal de los dígitos. | +| `close` | {{ MathMLElement("mfenced") }} | Una cadena para el delimitador de cierre. | +| `columnalign` | {{ MathMLElement("mtable") }}, {{ MathMLElement("mtd") }}, {{ MathMLElement("mtr") }}, {{ MathMLElement("mlabeledtr") }} | Especifica la alineación horizontal de las celdas de la tabla. | +| `columnlines` | {{ MathMLElement("mtable") }} | Especifica los bordes de la columna de la tabla. | +| {{ unimplemented_inline() }} `columnspacing` | {{ MathMLElement("mtable") }} | Especifica el espacio entre las columnas de la tabla. | +| `columnspan` | {{ MathMLElement("mtd") }} | Un valor entero no negativo que indica a cuantas columnas se extiende las celdas de la tabla. | +| {{ unimplemented_inline() }} `columnwidth` | {{ MathMLElement("mtable") }} | Especifica el ancho de las columnas de la tabla. | +| {{ unimplemented_inline() }} `crossout` | {{ MathMLElement("mscarry") }} | Especifica el tipo de linea que se dibuja para tachar. | +| {{ unimplemented_inline() }} `decimalpoint` | {{ MathMLElement("mstyle") }} | Si el valor de `decimalpoint` es usado para especificar la [alineación](#align), este atributo especifica el caracter del punto de alineación dentro de las columnas de {{ MathMLElement("mstack") }} y {{ MathMLElement("mtable") }} . | +| `denomalign` | {{ MathMLElement("mfrac") }} | La alineación del denominador bajo la fracción. | +| `depth` | {{ MathMLElement("mpadded") }} | Establece o incrementa la profundidad. Ver [longitud](/es/docs/MathML/Attributes/Values). | +| `dir` | {{ MathMLElement("math") }}, {{ MathMLElement("mi") }}, {{ MathMLElement("mo") }}, {{ MathMLElement("mrow") }}, {{ MathMLElement("ms") }}, {{ MathMLElement("mtext") }} | La dirección del texto. Posibles valores son ltr (izquierda a derecha) o rtl (derecha a izquierda). | +| `display` | {{ MathMLElement("math") }} | Especifica el modo de renderizado. Los valores `block` e `inline` son permitidos. | +| `displaystyle` | {{ MathMLElement("mstyle") }}, {{ MathMLElement("mtable") }} | Un valor booleano que especifica si un espacio más vertical es usado para las ecuaciones mostradas o, si se establece como `false`, un diseño más compacto se utiliza para mostrar las formulas. | +| {{ unimplemented_inline() }} `edge` | {{ MathMLElement("malignmark") }} | | +| {{ unimplemented_inline() }} `equalcolumns` | {{ MathMLElement("mtable") }} | Un valor booleano que indica si se debe obligar a las columnas a tener la misma altura total. | +| {{ unimplemented_inline() }} `equalrows` | {{ MathMLElement("mtable") }} | Un valor booleano que indica si se debe obligar a las filas a tener la misma altura total. | +| `fence` | {{ MathMLElement("mo") }} | Un valor booleano que indica si el operador está cercado (como parentesis). No hay efecto visual de este atributo. | +| {{ unimplemented_inline() }} `form` | {{ MathMLElement("mo") }} | Especifica el rol del operador en una expresión cerrada. | +| `frame` | {{ MathMLElement("mtable") }} | Especifica bordes de toda una {{ MathMLElement("mtable") }}. Posibles valores son: `none` (default), `solid` y `dashed`. | +| {{ unimplemented_inline() }} `framespacing` | {{ MathMLElement("mtable") }} | Especifica espacio adicional agregado entre la tabla y el frame. | +| {{ unimplemented_inline() }} `groupalign` | {{ MathMLElement("maligngroup") }}, {{ MathMLElement("mtable") }}, {{ MathMLElement("mtd") }}, {{ MathMLElement("mtr") }} | | +| `height` | {{ MathMLElement("mglyph") }}, {{ MathMLElement("mpadded") }}, {{ MathMLElement("mspace") }} | Especifica la altura deseada. Ver [longitudes](/es/docs/MathML/Attributes/Values#Lengths) para los posibles valores. | +| `href` | _All_ | Usado para estableces un hyperlink para determinada URL. | +| `id` | _All_ | Establece un unico identificador asociado con el elemento. | +| {{ unimplemented_inline() }} `indentalign` | {{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }} | | +| {{ unimplemented_inline() }} `indentalignfirst` | {{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }} | | +| {{ unimplemented_inline() }} `indentalignlast` | {{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }} | | +| {{ unimplemented_inline() }} `indentshift` | {{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }} | | +| {{ unimplemented_inline() }} `indentshiftfirst` | {{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }} | | +| {{ unimplemented_inline() }} `indentshiftlast` | {{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }} | | +| {{ unimplemented_inline() }} `indenttarget` | {{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }} | | +| {{ unimplemented_inline() }} `infixlinebreakstyle` | {{ MathMLElement("mstyle") }} | Especifica el valor por defecto de `linebreakstyle` a usar para los operadores infijos. | +| `largeop` | {{ MathMLElement("mo") }} | Especifica si el operador debe dibujarse más grande de lo normal. | +| `length` | {{ MathMLElement("msline") }} | | +| {{ unimplemented_inline() }} `linebreak` | {{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }} | | +| {{ unimplemented_inline() }} `linebreakmultchar` | {{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }} | | +| {{ unimplemented_inline() }} `linebreakstyle` | {{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }} | | +| {{ unimplemented_inline() }} `lineleading` | {{ MathMLElement("mo") }}, {{ MathMLElement("mspace") }} | | +| `linethickness` | {{ MathMLElement("mfrac") }} | El grosor de la linea de fracción horizontal. | +| {{ unimplemented_inline() }} `location` | {{ MathMLElement("mscarries") }} | | +| {{ unimplemented_inline() }} `longdivstyle` | {{ MathMLElement("mlongdiv") }} | Controla el estilo del diseño de la división larga. | +| `lspace` | {{ MathMLElement("mo") }}, {{ MathMLElement("mpadded") }} | La cantidad de espacio antes del operador(ver [length](/es/docs/MathML/Attributes/Values#Lengths) para valores y unidades). | +| `lquote` | {{ MathMLElement("ms") }} | El carácter de apertura de citas que encierra el contenido. El valor predeterminado es "`"`". | +| `mathbackground` | _All_ | El colo de fondo. Puedes usar `#rgb`, `#rrggbb` y [nombres de color HTML](/es/docs/CSS/color_value#HTML.2fSVG.2fX11.c2.a0_Color_Keywords). | +| `mathcolor` | _All_ | El color de texto. Puedes usar `#rgb`, `#rrggbb` y [nombres de color HTML](/es/docs/CSS/color_value#HTML.2fSVG.2fX11.c2.a0_Color_Keywords). | +| `mathsize` | {{ MathMLElement("mi") }}, {{ MathMLElement("mn") }}, {{ MathMLElement("mo") }}, {{ MathMLElement("ms") }}, {{ MathMLElement("mtext") }} | El tamaño del contenido. Comenzando con Gecko 20.0 {{geckoRelease("20")}} valores sin unidades están permitidos y se interpretan como N veces el tamaño predeterminado. | +| `mathvariant` | {{ MathMLElement("mi") }}, {{ MathMLElement("mn") }}, {{ MathMLElement("mo") }}, {{ MathMLElement("ms") }}, {{ MathMLElement("mtext") }} | La clase logica del identificador, la cual varia en tipografia. | +| `maxsize` | {{ MathMLElement("mo") }} | El tamaño máximo del operador. | +| {{ unimplemented_inline() }} `minlabelspacing` | {{ MathMLElement("mtable") }} | Un [valor de longitud](/es/docs/MathML/Attributes/Values) espcificando el minimo espacio entre una [etiqueta](Element/mlabeledtr "/en-US/docs/MathML/Element/mlabeledtr") y la celda adjacente en la fila. | +| `minsize` | {{ MathMLElement("mo") }} | El tamaño mínimo del operador. | +| `movablelimits` | {{ MathMLElement("mo") }} | Especifica si los guiones bajos y altos se mueven a las posiciones de sub-índice o super-índice. | +| `notation` | {{ MathMLElement("menclose") }} | Una lista de anotaciones, separado por espacios en blanco, para aplicar a los elementos secundarios. | +| `numalign` | {{ MathMLElement("mfrac") }} | La alineación del numerador en la fracción. | +| `open` | {{ MathMLElement("mfenced") }} | Una cadena para el delimitador de apertura. | +| {{ unimplemented_inline() }} `overflow` | {{ MathMLElement("math") }} | Si una expresión es demasiado larga para encajar en el ancho definido, este atributo establece el tratamiendo preferido. | +| {{ unimplemented_inline() }} `position` | {{ MathMLElement("msgroup") }}, {{ MathMLElement("msrow") }}, {{ MathMLElement("mscarries") }}, {{ MathMLElement("msline") }} | | +| `rowalign` | {{ MathMLElement("mtable") }}, {{ MathMLElement("mtd") }}, {{ MathMLElement("mtr") }} | Especifica la alineación vertical de las celdas de la tabla. | +| `rowlines` | {{ MathMLElement("mtable") }} | Especifica los bordes de las filas de la tabla. | +| `rowspacing` | {{ MathMLElement("mtable") }} | Especifica el espacio entre las filas de la tabla. | +| `rowspan` | {{ MathMLElement("mtd") }} | Un valor entero no negativo que indica el númerp de filas que se extiende las celdas. | +| `rspace` | {{ MathMLElement("mo") }} | La cantidad de espacios luego del operador. | +| `rquote` | {{ MathMLElement("ms") }} | La marca de cierre de cita que encierra el contenido. El valor predeterminado es "`"`". | +| `scriptlevel` | {{ MathMLElement("mstyle") }} | Controles sobre el tamaño de la fuente. Cuando mayor sea el nivel del script, menor el tamaño de la fuente. | +| `scriptminsize` | {{ MathMLElement("mstyle") }} | Especifica el minimo tamaño de fuente permitidos debido a cambios en `scriptlevel`. Comenzando con Gecko 20.0 {{geckoRelease("20")}} valores sin unidades y porcentajes son permitidos y se interpretan como multiplos de "8pt". | +| `scriptsizemultiplier` | {{ MathMLElement("mstyle") }} | Especifica el multiplicador a ser utilizado para ajustar el tamaño de fuente debidp a cambios en `scriptlevel`. | +| `selection` | {{ MathMLElement("maction") }} | El elemento secundario al cual se dirige la acción. | +| `separator` | {{ MathMLElement("mo") }} | No existe efecto visual para este elemento, pero especifica si el operador es un separador (como las comas). | +| `separators` | {{ MathMLElement("mfenced") }} | Una secuencia de ceros o más caracteres a ser usados por diferentes separadores. | +| {{ unimplemented_inline() }} `shift` | {{ MathMLElement("msgroup") }} | | +| {{ unimplemented_inline() }} `side` | {{ MathMLElement("mtable") }} | Especifica la posición donde los elementos{{ MathMLElement("mlabeledtr") }} deberían ser posicionados. | +| {{ unimplemented_inline() }} `src` | {{ MathMLElement("mglyph") }} | La ubicación de la imagen. | +| {{ unimplemented_inline() }} `stackalign` | {{ MathMLElement("mstack") }} | | +| `stretchy` | {{ MathMLElement("mo") }} | Especifica si el operador se extiende hasta el tamaño del elemento adyacente. | +| `subscriptshift` | {{ MathMLElement("mmultiscripts") }}, {{ MathMLElement("msub") }}, {{ MathMLElement("msubsup") }} | El espacio mínimo por el que se desplace el subíndice por debajo de la línea de base de la expresión. | +| `supscriptshift` | {{ MathMLElement("mmultiscripts") }}, {{ MathMLElement("msup") }}, {{ MathMLElement("msubsup") }} | El espacio mínimo por el que se desplace el superíndice por encima de la línea de base de la expresión. | +| `symmetric` | {{ MathMLElement("mo") }} | Si `stretchy` es `true`, este atributo especifica si el operador debe estar simetrico verticalmente al eje imaginario de matemáticas (linea centrada de fracción). | +| `voffset` | {{ MathMLElement("mpadded") }} | Ajusta la posición vertical del contenido secundario. | +| `width` | {{ MathMLElement("mglyph") }}, {{ MathMLElement("mpadded") }}, {{ MathMLElement("mspace") }}, {{ MathMLElement("mtable") }} | Especifica el ancho deseado. Ver [longitudes](/es/docs/MathML/Attributes/Values#Lengths) para posibles valores. | +| `xlink:href` | _All_ | Puede ser usado para establecer un hyperlink para determinada URL. Sin embargo, se ainma a los autores a usar el atributo `href` en su lugar. | +| `xmlns` | {{ MathMLElement("math") }} | Especifica la URL para el espacio de nombres MathML ([`http://www.w3.org/1998/Math/MathML`](http://www.w3.org/1998/Math/MathML)) | diff --git a/files/es/web/mathml/element/index.md b/files/es/web/mathml/element/index.md index 9a5e5d9bb0815b..b8e59c77ff2561 100644 --- a/files/es/web/mathml/element/index.md +++ b/files/es/web/mathml/element/index.md @@ -4,95 +4,95 @@ slug: Web/MathML/Element translation_of: Web/MathML/Element original_slug: Web/MathML/Elemento --- -

A continuación se muestra una lista alfabética de elementos de presentación en MathML.
- La etiqueta de presentación es usada para describir la estructura y el diseño de la notación matemática mientras que la etiqueta de contenido proporciona el significado matemático subyacente y se supone que no se renderiza a través del parseador de MathML (ver {{ bug(276028) }}). Si quieres aprender más sobre la etiqueta de contenido deberías echar un vistazo al Capítulo 4 en la especificación de MathML 3.

-

math

-
    -
  • {{ MathMLElement("math") }} (Elemento raíz)
  • -
-

A

-
    -
  • {{ MathMLElement("maction") }} (Acciones enlazadas a sub-expresiones)
  • -
  • {{ MathMLElement("maligngroup") }} (Grupo de alineación) {{ unimplemented_inline(122253) }}
  • -
  • {{ MathMLElement("malignmark") }} (Puntos de alineación) {{ unimplemented_inline(122253) }}
  • -
-

E

-
    -
  • {{ MathMLElement("menclose") }} (Enclosed contents)
  • -
  • {{ MathMLElement("merror") }} (Enclosed syntax error messages)
  • -
-

F

-
    -
  • {{ MathMLElement("mfenced") }} (Paréntesis)
  • -
  • {{ MathMLElement("mfrac") }} (Fracción)
  • -
-

G

-
    -
  • {{ MathMLElement("mglyph") }} (Mostrar símbolos no estándar) {{ unimplemented_inline(297465) }}
  • -
-

I

-
    -
  • {{ MathMLElement("mi") }} (Identificador)
  • -
-

L

-
    -
  • {{ MathMLElement("mlabeledtr") }} (Fila etiquetada en una tabla o matriz) {{ unimplemented_inline(689641) }}
  • -
  • {{ MathMLElement("mlongdiv") }} (Notación de la división larga) {{ unimplemented_inline(534967) }}
  • -
-

M

-
    -
  • {{ MathMLElement("mmultiscripts") }} (Prescripts and tensor indices)
  • -
-

N

-
    -
  • {{ MathMLElement("mn") }} (Número)
  • -
-

O

-
    -
  • {{ MathMLElement("mo") }} (Operador)
  • -
  • {{ MathMLElement("mover") }} (Overscript)
  • -
-

P

-
    -
  • {{ MathMLElement("mpadded") }} (Espacio alrrededor del contenido)
  • -
  • {{ MathMLElement("mphantom") }} (Contenido invisible con espacio reservado)
  • -
-

R

-
    -
  • {{ MathMLElement("mroot") }} (Radical con índice especificado)
  • -
  • {{ MathMLElement("mrow") }} (Sub-expressiones agrupadas)
  • -
-

S

-
    -
  • {{ MathMLElement("ms") }} (String literal)
  • -
  • {{ MathMLElement("mscarries") }} (Annotations such as carries) {{ unimplemented_inline(534967) }}
  • -
  • {{ MathMLElement("mscarry") }} (Single carry, child element of {{ MathMLElement("mscarries") }}) {{ unimplemented_inline(534967) }}
  • -
  • {{ MathMLElement("msgroup") }} (Grouped rows of {{ MathMLElement("mstack") }} and {{ MathMLElement("mlongdiv") }} elements) {{ unimplemented_inline(534967) }}
  • -
  • {{ MathMLElement("msline") }} (Horizontal lines inside {{ MathMLElement("mstack") }} elements) {{ unimplemented_inline(534967) }}
  • -
  • {{ MathMLElement("mspace") }} (Space)
  • -
  • {{ MathMLElement("msqrt") }} (Square root without an index)
  • -
  • {{ MathMLElement("msrow") }} (Rows in {{ MathMLElement("mstack") }} elements) {{ unimplemented_inline(534967) }}
  • -
  • {{ MathMLElement("mstack") }} (Stacked alignment) {{ unimplemented_inline(534967) }}
  • -
  • {{ MathMLElement("mstyle") }} (Style change)
  • -
  • {{ MathMLElement("msub") }} (Subscript)
  • -
  • {{ MathMLElement("msup") }} (Superscript)
  • -
  • {{ MathMLElement("msubsup") }} (Subscript-superscript pair)
  • -
-

T

-
    -
  • {{ MathMLElement("mtable") }} (Table or matrix)
  • -
  • {{ MathMLElement("mtd") }} (Cell in a table or a matrix)
  • -
  • {{ MathMLElement("mtext") }} (Text)
  • -
  • {{ MathMLElement("mtr") }} (Row in a table or a matrix)
  • -
-

U

-
    -
  • {{ MathMLElement("munder") }} (Underscript)
  • -
  • {{ MathMLElement("munderover") }} (Underscript-overscript pair)
  • -
-

Other elements

-
    -
  • {{ MathMLElement("semantics") }} (Container for semantic annotations)
  • -
  • <annotation> (Data annotations)
  • -
  • <annotation-xml> (XML annotations)d
  • -
+A continuación se muestra una lista alfabética de elementos de **presentación** en MathML. +La _etiqueta de presentación_ es usada para describir la estructura y el diseño de la notación matemática mientras que la _etiqueta de contenido_ proporciona el significado matemático subyacente y se supone que no se renderiza a través del parseador de MathML (ver {{ bug(276028) }}). Si quieres aprender más sobre la etiqueta de contenido deberías echar un vistazo al [Capítulo 4](http://www.w3.org/TR/MathML3/chapter4.html) en la [especificación de MathML 3](http://www.w3.org/TR/MathML3/). + +### math + +- {{ MathMLElement("math") }} (Elemento raíz) + +### A + +- {{ MathMLElement("maction") }} (Acciones enlazadas a sub-expresiones) +- {{ MathMLElement("maligngroup") }} (Grupo de alineación) {{ unimplemented_inline(122253) }} +- {{ MathMLElement("malignmark") }} (Puntos de alineación) {{ unimplemented_inline(122253) }} + +### E + +- {{ MathMLElement("menclose") }} (Enclosed contents) +- {{ MathMLElement("merror") }} (Enclosed syntax error messages) + +### F + +- {{ MathMLElement("mfenced") }} (Paréntesis) +- {{ MathMLElement("mfrac") }} (Fracción) + +### G + +- {{ MathMLElement("mglyph") }} (Mostrar símbolos no estándar) {{ unimplemented_inline(297465) }} + +### I + +- {{ MathMLElement("mi") }} (Identificador) + +### L + +- {{ MathMLElement("mlabeledtr") }} (Fila etiquetada en una tabla o matriz) {{ unimplemented_inline(689641) }} +- {{ MathMLElement("mlongdiv") }} (Notación de la división larga) {{ unimplemented_inline(534967) }} + +### M + +- {{ MathMLElement("mmultiscripts") }} (Prescripts and tensor indices) + +### N + +- {{ MathMLElement("mn") }} (Número) + +### O + +- {{ MathMLElement("mo") }} (Operador) +- {{ MathMLElement("mover") }} (Overscript) + +### P + +- {{ MathMLElement("mpadded") }} (Espacio alrrededor del contenido) +- {{ MathMLElement("mphantom") }} (Contenido invisible con espacio reservado) + +### R + +- {{ MathMLElement("mroot") }} (Radical con índice especificado) +- {{ MathMLElement("mrow") }} (Sub-expressiones agrupadas) + +### S + +- {{ MathMLElement("ms") }} (String literal) +- {{ MathMLElement("mscarries") }} (Annotations such as carries) {{ unimplemented_inline(534967) }} +- {{ MathMLElement("mscarry") }} (Single carry, child element of {{ MathMLElement("mscarries") }}) {{ unimplemented_inline(534967) }} +- {{ MathMLElement("msgroup") }} (Grouped rows of {{ MathMLElement("mstack") }} and {{ MathMLElement("mlongdiv") }} elements) {{ unimplemented_inline(534967) }} +- {{ MathMLElement("msline") }} (Horizontal lines inside {{ MathMLElement("mstack") }} elements) {{ unimplemented_inline(534967) }} +- {{ MathMLElement("mspace") }} (Space) +- {{ MathMLElement("msqrt") }} (Square root without an index) +- {{ MathMLElement("msrow") }} (Rows in {{ MathMLElement("mstack") }} elements) {{ unimplemented_inline(534967) }} +- {{ MathMLElement("mstack") }} (Stacked alignment) {{ unimplemented_inline(534967) }} +- {{ MathMLElement("mstyle") }} (Style change) +- {{ MathMLElement("msub") }} (Subscript) +- {{ MathMLElement("msup") }} (Superscript) +- {{ MathMLElement("msubsup") }} (Subscript-superscript pair) + +### T + +- {{ MathMLElement("mtable") }} (Table or matrix) +- {{ MathMLElement("mtd") }} (Cell in a table or a matrix) +- {{ MathMLElement("mtext") }} (Text) +- {{ MathMLElement("mtr") }} (Row in a table or a matrix) + +### U + +- {{ MathMLElement("munder") }} (Underscript) +- {{ MathMLElement("munderover") }} (Underscript-overscript pair) + +### Other elements + +- {{ MathMLElement("semantics") }} (Container for semantic annotations) +- [``](/es/docs/MathML/Element/semantics) (Data annotations) +- [``](/es/docs/MathML/Element/semantics) (XML annotations)d diff --git a/files/es/web/mathml/element/math/index.md b/files/es/web/mathml/element/math/index.md index e48fa14ce5f35d..a6efdc4fa752b9 100644 --- a/files/es/web/mathml/element/math/index.md +++ b/files/es/web/mathml/element/math/index.md @@ -4,160 +4,130 @@ slug: Web/MathML/Element/math translation_of: Web/MathML/Element/math original_slug: Web/MathML/Elemento/math --- -
{{MathMLRef}}
- -

<math> es el elemento superior en MathML. Cada instancia válida de MathML debe estar rodeada de etiquetas <math>. Además, no debes anidar un segundo elemento <math> dentro de un primero, pero puedes tener un número arbitrario de otros elementos hijos en él.

- -

Atributos

- -

Además de los siguientes atributos, el elemento <math> acepta cualquier atributo del elemento {{ MathMLElement("mstyle") }}.

- -
-
class, id, style
-
Disponibles para el uso con hojas de estilo.
-
dir
-
La dirección general de las fórmulas. Sus valores posibles son ltr (izquierda a derecha) o bien rtl (derecha a izquierda).
-
href
-
Usado para definir un hipervínculo a un URI (Identificador de Recurso Unificado) especificado.
-
mathbackground
-
El color de fondo. Puedes usar #rgb, #rrggbb y palabras clave de colores.
-
mathcolor
-
El color de texto. Puedes usar #rgb, #rrggbb y palabras clave de colores.
-
display
-
Este atributo enumerado especifica de qué manera el marcado MathML debería ser renderizado. Puede tomar uno de los siguientes valores: -
    -
  • block, el cual indica que este elemento será incluido fuera del fragmento de texto actual , en forma de bloque individual que puede ser posicionado en cualquier sitio sin cambiar el significado del texto;
  • -
  • inline, el cual indica que este elemento será incluido en el fragmento de texto actual, y no puede ser sacado del mismo sin cambiar el significado del texto.
  • -
- -

De no estar presente, toma inline por defecto.

-
-
mode {{deprecated_inline}}
-
Deprecado a favor del atributo display.
- Sus valores posibles son: display (que tiene el mismo efecto que display="block") e inline.
-
overflow
-
Especifica el comportamiento de una expresión si es demasiado larga para caber en el ancho asignado.
- Sus valores posibles son: linebreak (por defecto), scroll, elide, truncate, scale.
-
- -

Ejemplos

- -

Theorem of Pythagoras

- -

Notación HTML5

- -
<!DOCTYPE html>
-<html>
-  <head>
-    <title>MathML en HTML5</title>
-  </head>
-  <body>
-
-  <math>
-    <mrow>
-      <mrow>
-        <msup>
-          <mi>a</mi>
-          <mn>2</mn>
-        </msup>
-        <mo>+</mo>
-        <msup>
-          <mi>b</mi>
-          <mn>2</mn>
-        </msup>
-      </mrow>
-      <mo>=</mo>
-      <msup>
-        <mi>c</mi>
-        <mn>2</mn>
-      </msup>
-    </mrow>
-  </math>
-
-  </body>
-</html>
-
- -

Notación XHTML

- -
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <title>MathML en XHTML</title>
-</head>
-<body>
-
-  <math xmlns="http://www.w3.org/1998/Math/MathML">
-    <mrow>
-      <mrow>
-        <msup>
-          <mi>a</mi>
-          <mn>2</mn>
-        </msup>
-        <mo>+</mo>
-        <msup>
-          <mi>b</mi>
-          <mn>2</mn>
-        </msup>
-      </mrow>
-      <mo>=</mo>
-      <msup>
-        <mi>c</mi>
-        <mn>2</mn>
-      </msup>
-    </mrow>
-  </math>
-
-</body>
-</html>
- -

Notas: Los documentos XHTML con MathML deben servirse como application/xhtml+xml. Puedes lograrlo facilmente añadiendo la extensión .xhtml a tus archivos locales. Para servidores Apache puedes configurar tu archivo .htaccess para direccionar extensiones al tipo Mime correcto. Ya que estás escribiendo tu MathML en un archivo XML, asegurate también de escribir un documento XML bien formado.

- -

Especificaciones

- - - - - - - - - - - - - - - - - - - - - -
EspecificaciónEstadoComentario
{{ SpecName('MathML3', 'chapter2.html#interf.toplevel', 'The Top-Level math Element') }}{{ Spec2('MathML3') }}Especificación actual
{{ SpecName('MathML2', 'chapter7.html#interf.toplevel', 'The Top-Level math Element') }}{{ Spec2('MathML2') }}Especificación inicial
- -

Compatibilidad de navegadores

- -

- - - -

{{Compat("mathml.elements.math")}}

- -

- -

Notas específicas a Firefox

- -

Firefox 7 introdujo soporte para aceptar todos los atributos MathML en el elemento superior math (por ejemplo, el mismo comportamiento que el elemento {{ MathMLElement("mstyle") }}). Sin embargo, el atributo displaystyle no fue tomado en cuenta y ha sido añadido en Firefox 8.

- -

Texto de respaldo (alttext) o referir a una imagen alternativa usando los atributos altimg, altimg-width, altimg-height o altimg-valign no se encuentra actualmente implementado en Firefox.

- -

Véase también

- -
    -
  • Elemento HTML superior: {{ HTMLElement("html") }}
  • -
  • Elemento SVG superior: {{ SVGElement("svg") }}
  • -
  • Prueba MathML para navegadores: Para XHTML y HTML5
  • -
+{{MathMLRef}} + +`` es el elemento superior en MathML. Cada instancia válida de MathML debe estar rodeada de etiquetas ``. Además, no debes anidar un segundo elemento `` dentro de un primero, pero puedes tener un número arbitrario de otros elementos hijos en él. + +## Atributos + +Además de los siguientes atributos, el elemento `` acepta cualquier atributo del elemento {{ MathMLElement("mstyle") }}. + +- class, id, style + - : Disponibles para el uso con [hojas de estilo](/es/docs/Web/CSS "es/docs/Web/CSS"). +- dir + - : La dirección general de las fórmulas. Sus valores posibles son `ltr` (izquierda a derecha) o bien `rtl` (derecha a izquierda). +- href + - : Usado para definir un hipervínculo a un URI (**I**dentificador de **R**ecurso **U**nificado) especificado. +- mathbackground + - : El color de fondo. Puedes usar `#rgb`, `#rrggbb` y [palabras clave de colores](/es/docs/Web/CSS/color_value#Palabras_clave_de_colores "/es/docs/Web/CSS/color_value"). +- mathcolor + - : El color de texto. Puedes usar `#rgb`, `#rrggbb` y [palabras clave de colores](/es/docs/Web/CSS/color_value#Palabras_clave_de_colores "/es/docs/Web/CSS/color_value"). +- display + - : Este atributo enumerado especifica de qué manera el marcado MathML debería ser renderizado. Puede tomar uno de los siguientes valores:\* `block`, el cual indica que este elemento será incluido fuera del fragmento de texto actual , en forma de bloque individual que puede ser posicionado en cualquier sitio sin cambiar el significado del texto; + - `inline`, el cual indica que este elemento será incluido en el fragmento de texto actual, y no puede ser sacado del mismo sin cambiar el significado del texto.De no estar presente, toma `inline` por defecto. +- mode {{deprecated_inline}} + - : Deprecado a favor del [atributo display](/es/docs/MathML/Element/math#attr-display). + Sus valores posibles son: `display` (que tiene el mismo efecto que `display="block"`) e `inline`. +- overflow + - : Especifica el comportamiento de una expresión si es demasiado larga para caber en el ancho asignado. + Sus valores posibles son: `linebreak` (por defecto), `scroll`, `elide`, `truncate`, `scale`. + +## Ejemplos + +![Theorem of Pythagoras](/files/3157/math.jpg) + +### Notación HTML5 + +```html + + + + MathML en HTML5 + + + + + + + + a + 2 + + + + + b + 2 + + + = + + c + 2 + + + + + + +``` + +### Notación XHTML + +```xml + + + + + MathML en XHTML + + + + + + + + a + 2 + + + + + b + 2 + + + = + + c + 2 + + + + + + +``` + +**Notas**: Los documentos XHTML con MathML deben servirse como `application/xhtml+xml`. Puedes lograrlo facilmente añadiendo la extensión `.xhtml` a tus archivos locales. Para servidores Apache puedes [configurar tu archivo `.htaccess`](http://httpd.apache.org/docs/2.4/mod/mod_mime.html#addtype) para direccionar extensiones al tipo Mime correcto. Ya que estás escribiendo tu MathML en un archivo XML, asegurate también de escribir un documento XML bien formado. + +## Especificaciones + +| Especificación | Estado | Comentario | +| -------------------------------------------------------------------------------------------------------------------- | ---------------------------- | ---------------------- | +| {{ SpecName('MathML3', 'chapter2.html#interf.toplevel', 'The Top-Level math Element') }} | {{ Spec2('MathML3') }} | Especificación actual | +| {{ SpecName('MathML2', 'chapter7.html#interf.toplevel', 'The Top-Level math Element') }} | {{ Spec2('MathML2') }} | Especificación inicial | + +## Compatibilidad de navegadores + +{{Compat("mathml.elements.math")}} + +## Notas específicas a Firefox + +Firefox 7 introdujo soporte para aceptar todos los atributos MathML en el elemento superior `math` (por ejemplo, el mismo comportamiento que el elemento {{ MathMLElement("mstyle") }}). Sin embargo, el atributo `displaystyle` no fue tomado en cuenta y [ha sido añadido](https://bugzilla.mozilla.org/show_bug.cgi?id=669719) en Firefox 8. + +Texto de respaldo (`alttext`) o referir a una imagen alternativa usando los atributos `altimg`, `altimg-width`, `altimg-height` o `altimg-valign` no se encuentra actualmente implementado en Firefox. + +## Véase también + +- Elemento **HTML** superior: {{ HTMLElement("html") }} +- Elemento **SVG** superior: {{ SVGElement("svg") }} +- Prueba MathML para navegadores: Para [XHTML](https://www.eyeasme.com/Joe/MathML/MathML_browser_test) y [HTML5](https://eyeasme.com/Joe/MathML/HTML5_MathML_browser_test) diff --git a/files/es/web/mathml/examples/index.md b/files/es/web/mathml/examples/index.md index 0bbd27bf9653c2..5eb503cd135673 100644 --- a/files/es/web/mathml/examples/index.md +++ b/files/es/web/mathml/examples/index.md @@ -7,18 +7,11 @@ tags: - TopicStub translation_of: Web/MathML/Examples --- -

Below you'll find some examples you can look at to help you to understand how to use MathML to display increasingly complex mathematical concepts in Web content.

-
-
- Pythagorean Theorem
-
- Small example showing a proof of the Pythagorean Theorem.
-
- Deriving the Quadratic Formula
-
- Outlines the derivation of the Quadratic Formula.
-
- MathML Torture Test
-
- Large set of test markup.
-
+Below you'll find some examples you can look at to help you to understand how to use MathML to display increasingly complex mathematical concepts in Web content. + +- [Pythagorean Theorem](/es/docs/Web/MathML/Examples/MathML_Pythagorean_Theorem) + - : Small example showing a proof of the Pythagorean Theorem. +- [Deriving the Quadratic Formula](/es/docs/Web/MathML/Examples/Deriving_the_Quadratic_Formula) + - : Outlines the derivation of the Quadratic Formula. +- [MathML Torture Test](/es/docs/Mozilla/MathML_Project/MathML_Torture_Test) + - : Large set of test markup. diff --git a/files/es/web/media/dash_adaptive_streaming_for_html_5_video/index.md b/files/es/web/media/dash_adaptive_streaming_for_html_5_video/index.md index 879e82646e2a44..af55977ab5eaa9 100644 --- a/files/es/web/media/dash_adaptive_streaming_for_html_5_video/index.md +++ b/files/es/web/media/dash_adaptive_streaming_for_html_5_video/index.md @@ -4,75 +4,75 @@ slug: Web/Media/DASH_Adaptive_Streaming_for_HTML_5_Video translation_of: Web/Media/DASH_Adaptive_Streaming_for_HTML_5_Video original_slug: Web/HTML/Transision_adaptativa_DASH --- -

La Transmisión Adaptable y Dinámica sobre HTTP (DASH - Dynamic Adaptive Streaming over HTTP) es un protocolo de transmisión adaptable. Esto signfica que le permite a un flujo de vídeo cambiar entre diversas tazas de bits con base en el desempeño de la red, para mantener la reproducción de un vídeo.

+La Transmisión Adaptable y Dinámica sobre HTTP (DASH - _Dynamic Adaptive Streaming over HTTP_) es un protocolo de transmisión adaptable. Esto signfica que le permite a un flujo de vídeo cambiar entre diversas tazas de bits con base en el desempeño de la red, para mantener la reproducción de un vídeo. -

Soporte de Navegadores

+## Soporte de Navegadores -

Firefox 21 incluye una implementación de DASH para video WebM con HTML5 que está desactivada por defecto. Se puede activar a través de "about:config" activando la opción "media.dash.enabled".

+Firefox 21 incluye una implementación de DASH para video WebM con HTML5 que está desactivada por defecto. Se puede activar a través de "about:config" activando la opción "media.dash.enabled". -

Firefox 23 eliminó el soporte para DASH para WebM con HTML 5. Ésta será reemplazada por una implementación de la Media Source Extensions API que de soporte a DASH a través de javascript usando librerías como dash.js. Ver el bug 778617 para más detalles.

+Firefox 23 eliminó el soporte para DASH para WebM con HTML 5. Ésta será reemplazada por una implementación de la [Media Source Extensions API ](http://www.w3.org/TR/media-source/)que de soporte a DASH a través de javascript usando librerías como dash.js. Ver el bug [778617](https://bugzilla.mozilla.org/show_bug.cgi?id=778617) para más detalles. -

Usando DASH del lado del servidor

+## Usando DASH del lado del servidor -

Lo primero que necesitas es convertir tu video WebM en un manifiesto DASH con todos los archivos en los diferentes bitrates. Para comenzar necesitas:

+Lo primero que necesitas es convertir tu video WebM en un manifiesto DASH con todos los archivos en los diferentes bitrates. Para comenzar necesitas: - +- ffpmeg - con libvpx y libvorbis activado para dar soporte al audio y video de WebM ([ffmpeg.org](http://www.ffmpeg.org/)). +- libwebm - concretamente para la herramienta samplemuxer (git clone ). +- webm-tools - concretamente para la herramienta de creación de manifiestos, webm_dash_manifest (git clone ). -

1. Use your existing WebM file to create one audio file and multiple video files.

+### 1. Use your existing WebM file to create one audio file and multiple video files. -

Por ejemplo:

+Por ejemplo: -

Creamos el archivo de audio usando:

+Creamos el archivo de audio usando: -
ffmpeg -i my_master_file.webm -vn -acodec libvorbis -ab 128k my_audio.webm
+ ffmpeg -i my_master_file.webm -vn -acodec libvorbis -ab 128k my_audio.webm -

Creamos los archivos de vídeo usando:

+Creamos los archivos de vídeo usando: -
ffmpeg -i my_master_file.webm -vcodec libvpx -vb 250k -keyint_min 150 -g 150 -an my_video-250kbps.webm
-ffmpeg -i my_master_file.webm -vcodec libvpx -vb 100k -keyint_min 150 -g 150 -an my_video-100kbps.webm
-ffmpeg -i my_master_file.webm -vcodec libvpx -vb 50k -keyint_min 150 -g 150 -an my_video-50kbps.webm
+ ffmpeg -i my_master_file.webm -vcodec libvpx -vb 250k -keyint_min 150 -g 150 -an my_video-250kbps.webm + ffmpeg -i my_master_file.webm -vcodec libvpx -vb 100k -keyint_min 150 -g 150 -an my_video-100kbps.webm + ffmpeg -i my_master_file.webm -vcodec libvpx -vb 50k -keyint_min 150 -g 150 -an my_video-50kbps.webm -

2. Align the clusters to enable switching at cluster boundaries.

+### 2. Align the clusters to enable switching at cluster boundaries. -

For video:

+For video: -
samplemuxer -i my_video-250kbps.webm -o my_video-250kbps-final.webm
-etc.
+ samplemuxer -i my_video-250kbps.webm -o my_video-250kbps-final.webm + etc. -

Although we don't switch audio streams, it's still necessary to run it through samplemuxer to ensure a cues element is added. Note: to be compatible with playing on Chrome, it is suggested to change the track number to something other than the one in the video files, most likely 0.

+Although we don't switch audio streams, it's still necessary to run it through samplemuxer to ensure a cues element is added. Note: to be compatible with playing on Chrome, it is suggested to change the track number to something other than the one in the video files, most likely 0. -
samplemuxer -i my_audio.webm -o my_audio-final.webm -output_cues 1 -cues_on_audio_track 1 -max_cluster_duration 2 -audio_track_number
+ samplemuxer -i my_audio.webm -o my_audio-final.webm -output_cues 1 -cues_on_audio_track 1 -max_cluster_duration 2 -audio_track_number -

3. Create the manifest file:

+### 3. Create the manifest file: -
webm_dash_manifest -o my_video_manifest.mpd \
-  -as id=0,lang=eng \
-  -r id=0,file=my_video-250kbps-final.webm \
-  -r id=1,file=my_video-100kbps-final.webm \
-  -r id=2,file=my_video-50kbps-final.webm \
-  -as id=1,lang=eng \
-  -r id=4,file=my_audio-final.webm
+ webm_dash_manifest -o my_video_manifest.mpd \ + -as id=0,lang=eng \ + -r id=0,file=my_video-250kbps-final.webm \ + -r id=1,file=my_video-100kbps-final.webm \ + -r id=2,file=my_video-50kbps-final.webm \ + -as id=1,lang=eng \ + -r id=4,file=my_audio-final.webm -

Put the manifest and the associated video files on your web server or CDN. DASH works via HTTP, so as long as your HTTP server supports byte range requests, and it's set up to serve .mpd files with mimetype="application/dash+xml", then you're all set.

+Put the manifest and the associated video files on your web server or CDN. DASH works via HTTP, so as long as your HTTP server supports byte range requests, and it's set up to serve .mpd files with mimetype="application/dash+xml", then you're all set. -

Using DASH - Client Side

+## Using DASH - Client Side -

You'll want to modify your web page to point to the DASH manifest first, instead of directly to a particular video file:

+You'll want to modify your web page to point to the DASH manifest first, instead of directly to a particular video file: -
<video>
-  <source src="movie.mpd">
-  <source src="movie.webm">
+```html
+
+ +``` -

That's it! If DASH is supported by the browser, your video will now stream adaptively.

+That's it! If DASH is supported by the browser, your video will now stream adaptively. - +## Links -

WebM DASH Specification at The WebM Project

+[WebM DASH Specification at The WebM Project](http://wiki.webmproject.org/adaptive-streaming/webm-dash-specification) -

DASH Industry Forum

+[DASH Industry Forum](http://dashif.org/) diff --git a/files/es/web/performance/fundamentals/index.md b/files/es/web/performance/fundamentals/index.md index 3784254cd8091e..44c168dc1e78d5 100644 --- a/files/es/web/performance/fundamentals/index.md +++ b/files/es/web/performance/fundamentals/index.md @@ -3,231 +3,195 @@ title: Performance fundamentals slug: Web/Performance/Fundamentals translation_of: Web/Performance/Fundamentals --- -
-

Performance significa eficiencia. En el contexto de Open Web Apps, este documento explica en general qué es performance, cómo la plataforma del navegador ayuda a mejorarlo y qué herramientas y procesos puede usar para probarlo y mejorarlo.

-
+Performance significa eficiencia. En el contexto de Open Web Apps, este documento explica en general qué es performance, cómo la plataforma del navegador ayuda a mejorarlo y qué herramientas y procesos puede usar para probarlo y mejorarlo. -

¿Qué es performance?

+## ¿Qué es performance? -

En última instancia, el performance percibido por el usuario es el único performance que importa. Los usuarios proporcionan entradas al sistema a través del tacto, el movimiento y el habla. A cambio, reciben salidas a través de la vista, el tacto y la audición. El performance es la calidad de las salidas del sistema en respuesta a las entradas del usuario.

+En última instancia, el performance percibido por el usuario es el único performance que importa. Los usuarios proporcionan entradas al sistema a través del tacto, el movimiento y el habla. A cambio, reciben salidas a través de la vista, el tacto y la audición. El performance es la calidad de las salidas del sistema en respuesta a las entradas del usuario. -

En igualdad de condiciones, el código optimizado para algún objetivo diferente al performance percibido por el usuario (en adelante, PPU) pierde cuando compite contra código optimizado para PPU. Los usuarios prefieren una aplicación fluida y receptiva que capaz de procesar 1,000 transacciones de base de datos por segundo, en lugar de una aplicación que no responde aún cuando sea capaz de procesar 100,000,000 por segundo. Esto no quiere decir, que no es importante optimizar otras métricas, pero se debe trabajar con PPU como objetivo principal.

+En igualdad de condiciones, el código optimizado para algún objetivo diferente al performance percibido por el usuario (en adelante, PPU) pierde cuando compite contra código optimizado para PPU. Los usuarios prefieren una aplicación fluida y receptiva que capaz de procesar 1,000 transacciones de base de datos por segundo, en lugar de una aplicación que no responde aún cuando sea capaz de procesar 100,000,000 por segundo. Esto no quiere decir, que no es importante optimizar otras métricas, pero se debe trabajar con PPU como objetivo principal. -

Las siguientes secciones señalan y discuten métricas esenciales para medir performance.

+Las siguientes secciones señalan y discuten métricas esenciales para medir performance. -

Capacidad de respuesta

+### Capacidad de respuesta -

+La capacidad de respuesta simplemente significa la rapidez con la que el sistema proporciona salidas (posiblemente varias) en respuesta a las entradas del usuario. Por ejemplo, cuando un usuario toca la pantalla, espera que los píxeles cambien de cierta manera. Para esta interacción, la métrica de capacidad de respuesta es el tiempo transcurrido entre el toque y el cambio de píxel. -

La capacidad de respuesta simplemente significa la rapidez con la que el sistema proporciona salidas (posiblemente varias) en respuesta a las entradas del usuario. Por ejemplo, cuando un usuario toca la pantalla, espera que los píxeles cambien de cierta manera. Para esta interacción, la métrica de capacidad de respuesta es el tiempo transcurrido entre el toque y el cambio de píxel.

+La capacidad de respuesta a veces implica múltiples etapas de retroalimentación. El lanzamiento de la aplicación es un caso particularmente importante que se analiza con más detalle a continuación. -

La capacidad de respuesta a veces implica múltiples etapas de retroalimentación. El lanzamiento de la aplicación es un caso particularmente importante que se analiza con más detalle a continuación.

+La capacidad de respuesta es importante simplemente porque las personas se sienten frustradas y enojadas cuando son ignoradas. Una aplicación está ignorando al usuario cada segundo que no responde a la entrada del usuario. -

La capacidad de respuesta es importante simplemente porque las personas se sienten frustradas y enojadas cuando son ignoradas. Una aplicación está ignorando al usuario cada segundo que no responde a la entrada del usuario.

+### Frecuencia de cuadros -

+La frecuencia de cuadros es la velocidad a la que el sistema cambia los píxeles que se muestran al usuario. Este es un concepto familiar: todos prefieren, digamos, juegos que muestran 60 cuadros por segundo sobre los que muestran 10 cuadros por segundo, incluso si no pueden explicar por qué. -

Frecuencia de cuadros

+La velocidad de cuadros es importante como una métrica de "calidad de servicio". Las pantallas de computadora están diseñadas para "engañar" la vista del usuario, al entregarles fotones que imitan la realidad. Por ejemplo, el papel cubierto con texto impreso refleja fotones a los ojos del usuario formando un patrón. Al manipular los píxeles, una aplicación de lectura emite fotones en un patrón similar para "engañar" la vista del usuario. -

+El cerebro entonces infiere que el moviemiento se "actualiza" de manera fluida y continua. (Las luces estroboscópicas son divertidas porque dan la vuelta al revés, lo que confunde al cerebro el cual reacciona generando adrenalina y altos niveles de estrés). En una pantalla de computadora, una mayor tasa de cuadros simplemente hace una imitación más fiel de la realidad. -

La frecuencia de cuadros es la velocidad a la que el sistema cambia los píxeles que se muestran al usuario. Este es un concepto familiar: todos prefieren, digamos, juegos que muestran 60 cuadros por segundo sobre los que muestran 10 cuadros por segundo, incluso si no pueden explicar por qué.

+> **Nota:** Los seres humanos generalmente no pueden percibir diferencias en la frecuencia de cuadros por encima de 60Hz. Es por eso que las pantallas electrónicas más modernas están diseñadas para actualizarse a esa velocidad. Una televisión probablemente se ve entrecortada y poco realista para un colibrí, por ejemplo. -

La velocidad de cuadros es importante como una métrica de "calidad de servicio". Las pantallas de computadora están diseñadas para "engañar" la vista del usuario, al entregarles fotones que imitan la realidad. Por ejemplo, el papel cubierto con texto impreso refleja fotones a los ojos del usuario formando un patrón. Al manipular los píxeles, una aplicación de lectura emite fotones en un patrón similar para "engañar" la vista del usuario.

+### Uso de la memoria -

El cerebro entonces infiere que el moviemiento se "actualiza" de manera fluida y continua. (Las luces estroboscópicas son divertidas porque dan la vuelta al revés, lo que confunde al cerebro el cual reacciona generando adrenalina y altos niveles de estrés). En una pantalla de computadora, una mayor tasa de cuadros simplemente hace una imitación más fiel de la realidad.

+El **uso de la memoria** es otra métrica clave. A diferencia de la capacidad de respuesta y la frecuencia de cuadros, los usuarios no perciben directamente el uso de la memoria, pero el uso de la memoria se aproxima mucho al "estado del usuario". Un sistema ideal mantendría el 100% del estado del usuario en todo momento: todas las aplicaciones en el sistema se ejecutarían simultáneamente, y todas las aplicaciones conservarían el estado creado por el usuario la última vez que el usuario interactuó con la aplicación (el estado de la aplicación se almacena en la memoria de la computadora, por lo que la aproximación es cercana). -

+De esto viene un corolario importante pero contraintuitivo: un sistema bien diseñado no maximiza la cantidad de memoria **libre**. La memoria es un recurso, y la memoria libre es un recurso no utilizado. Más bien, un sistema bien diseñado se ha optimizado para **usar** la mayor cantidad de memoria posible para mantener el estado del usuario, al mismo tiempo que cumple otros objetivos de PPU. -
-

Nota: Los seres humanos generalmente no pueden percibir diferencias en la frecuencia de cuadros por encima de 60Hz. Es por eso que las pantallas electrónicas más modernas están diseñadas para actualizarse a esa velocidad. Una televisión probablemente se ve entrecortada y poco realista para un colibrí, por ejemplo.

-
+Eso no significa que el sistema deba **desperdiciar** memoria. Cuando un sistema usa más memoria de la necesaria para mantener un estado particular del usuario, el sistema está desperdiciando un recurso que podría usar para retener algún otro estado del usuario. En la práctica, ningún sistema puede mantener todos los estados del usuario. La asignación inteligente de memoria al estado del usuario es una preocupación importante que veremos más detalladamente a continuación. -

Uso de la memoria

+### Consumo de energía -

El uso de la memoria es otra métrica clave. A diferencia de la capacidad de respuesta y la frecuencia de cuadros, los usuarios no perciben directamente el uso de la memoria, pero el uso de la memoria se aproxima mucho al "estado del usuario". Un sistema ideal mantendría el 100% del estado del usuario en todo momento: todas las aplicaciones en el sistema se ejecutarían simultáneamente, y todas las aplicaciones conservarían el estado creado por el usuario la última vez que el usuario interactuó con la aplicación (el estado de la aplicación se almacena en la memoria de la computadora, por lo que la aproximación es cercana).

+La métrica final discutida aquí es el consumo de energía. Al igual que el uso de la memoria, los usuarios perciben el consumo de energía solo indirectamente, por el tiempo que sus dispositivos pueden mantener todos los demás objetivos de PPU. Para cumplir los objetivos de PPU, el sistema debe utilizar solo la potencia mínima requerida. -

De esto viene un corolario importante pero contraintuitivo: un sistema bien diseñado no maximiza la cantidad de memoria libre. La memoria es un recurso, y la memoria libre es un recurso no utilizado. Más bien, un sistema bien diseñado se ha optimizado para usar la mayor cantidad de memoria posible para mantener el estado del usuario, al mismo tiempo que cumple otros objetivos de PPU.

+El resto de este documento analizará el rendimiento en términos de estas métricas. -

Eso no significa que el sistema deba desperdiciar memoria. Cuando un sistema usa más memoria de la necesaria para mantener un estado particular del usuario, el sistema está desperdiciando un recurso que podría usar para retener algún otro estado del usuario. En la práctica, ningún sistema puede mantener todos los estados del usuario. La asignación inteligente de memoria al estado del usuario es una preocupación importante que veremos más detalladamente a continuación.

+## Optimizaciones de rendimiento según la plataforma -

Consumo de energía

+Esta sección proporciona una breve descripción de cómo Firefox / Gecko contribuye al rendimiento en general, desde un nivel más abajo que las aplicaciones. Desde la perspectiva de un desarrollador o un usuario, esto responde a la pregunta "¿Qué hace la plataforma por usted?" -

+### Tecnologías web -

La métrica final discutida aquí es el consumo de energía. Al igual que el uso de la memoria, los usuarios perciben el consumo de energía solo indirectamente, por el tiempo que sus dispositivos pueden mantener todos los demás objetivos de PPU. Para cumplir los objetivos de PPU, el sistema debe utilizar solo la potencia mínima requerida.

+La plataforma web proporciona muchas herramientas, algunas más adecuadas para trabajos particulares que otras. Toda la lógica de la aplicación está escrita en JavaScript. Para mostrar gráficos, los desarrolladores pueden usar HTML o CSS (es decir, lenguajes declarativos de alto nivel), o usar interfaces imperativas de bajo nivel ofrecidas por el elemento [\](/es/docs/Web/HTML/Elemento/canvas) (que incluye [WebGL](/es/docs/Web/API/WebGL_API)). En algún lugar "entre" HTML / CSS y Canvas está [SVG](/es/docs/Web/SVG), que ofrece algunos beneficios de ambos. -

El resto de este documento analizará el rendimiento en términos de estas métricas.

+HTML y CSS aumentan en gran medida la productividad, a veces a expensas de la frecuencia de cuadros o el control a nivel de píxeles de la renderización. El texto y las imágenes se vuelven a generar automáticamente, los elementos de la IU reciben automáticamente el tema del sistema, y el sistema proporciona soporte "integrado" para algunos casos de uso que los desarrolladores pueden no pensar inicialmente, como pantallas de diferente resolución o idiomas de derecha a izquierda. -

+The `canvas` element offers a pixel buffer directly for developers to draw on. This gives developers pixel-level control over rendering and precise control of framerate, but now the developers need to deal with multiple resolutions and orientations, right-to-left languages, and so forth. Developers draw to canvases using either a familiar 2D drawing API, or WebGL, a "close to the metal" binding that mostly follows OpenGL ES 2.0. -

Optimizaciones de rendimiento según la plataforma

+> **Nota:** Firefox OS is optimized for apps built with Web technologies: [HTML](/es/docs/Web/HTML), [CSS](/es/docs/Web/CSS), [JavaScript](/es/docs/Web/JavaScript), and so on. Except for a handful of basic system services, all code that runs in Firefox OS comes from Web apps and the Gecko engine. Even the OS window manager is written in HTML, CSS, and JavaScript. Because the core operating system and applications are built with same Web technologies, it's critical how those technologies perform. There's no "escape hatch". This greatly benefits developers because now third-party apps benefit from all the OS's own optimizations. There's no "magic performance sauce" available only to preinstalled code. See [Firefox OS performance testing](/en-US/Apps/Developing/Performance/Firefox_OS_performance_testing) for more details relevant to Firefox OS. -

Esta sección proporciona una breve descripción de cómo Firefox / Gecko contribuye al rendimiento en general, desde un nivel más abajo que las aplicaciones. Desde la perspectiva de un desarrollador o un usuario, esto responde a la pregunta "¿Qué hace la plataforma por usted?"

+### Gecko rendering -

Tecnologías web

+The Gecko JavaScript engine supports just-in-time (JIT) compilation. This enables application logic to perform comparably to other virtual machines — such as Java virtual machines — and in some cases even close to "native code". -

La plataforma web proporciona muchas herramientas, algunas más adecuadas para trabajos particulares que otras. Toda la lógica de la aplicación está escrita en JavaScript. Para mostrar gráficos, los desarrolladores pueden usar HTML o CSS (es decir, lenguajes declarativos de alto nivel), o usar interfaces imperativas de bajo nivel ofrecidas por el elemento <canvas> (que incluye WebGL). En algún lugar "entre" HTML / CSS y Canvas está SVG, que ofrece algunos beneficios de ambos.

+The graphics pipeline in Gecko that underpins HTML, CSS, and Canvas is optimized in several ways. The HTML/CSS layout and graphics code in Gecko reduces invalidation and repainting for common cases like scrolling; developers get this support "for free". Pixel buffers painted by both Gecko "automatically" and applications to `canvas` "manually" minimize copies when being drawn to the display framebuffer. This is done by avoiding intermediate surfaces where they would create overhead (such as per-application "back buffers" in many other operating systems), and by using special memory for graphics buffers that can be directly accessed by the compositor hardware. Complex scenes are rendered using the device's GPU for maximum performance. To improve power usage, simple scenes are rendered using special dedicated composition hardware, while the GPU idles or turns off. -

HTML y CSS aumentan en gran medida la productividad, a veces a expensas de la frecuencia de cuadros o el control a nivel de píxeles de la renderización. El texto y las imágenes se vuelven a generar automáticamente, los elementos de la IU reciben automáticamente el tema del sistema, y el sistema proporciona soporte "integrado" para algunos casos de uso que los desarrolladores pueden no pensar inicialmente, como pantallas de diferente resolución o idiomas de derecha a izquierda.

+Fully static content is the exception rather than the rule for rich applications. Rich applications use dynamic content with {{ cssxref("animation") }} and {{ cssxref ("transition") }} effects. Transitions and animations are particularly important to applications: developers can use CSS to declare complicated behaviour with a simple, high-level syntax. In turn, Gecko's graphics pipeline is highly optimized to render common animations efficiently. Common-case animations are "offloaded" to the system compositor, which can render them in a performant, power-efficient fashion. -

The canvas element offers a pixel buffer directly for developers to draw on. This gives developers pixel-level control over rendering and precise control of framerate, but now the developers need to deal with multiple resolutions and orientations, right-to-left languages, and so forth. Developers draw to canvases using either a familiar 2D drawing API, or WebGL, a "close to the metal" binding that mostly follows OpenGL ES 2.0.

+An app's startup performance matters just as much as its runtime performance. Gecko is optimized to load a wide variety of content efficiently: the entire Web! Many years of improvements targeting this content, like parallel HTML parsing, intelligent scheduling of reflows and image decoding, clever layout algorithms, etc., translate just as well to improving Web applications on Firefox. -
-

Note: Firefox OS is optimized for apps built with Web technologies: HTML, CSS, JavaScript, and so on. Except for a handful of basic system services, all code that runs in Firefox OS comes from Web apps and the Gecko engine. Even the OS window manager is written in HTML, CSS, and JavaScript. Because the core operating system and applications are built with same Web technologies, it's critical how those technologies perform. There's no "escape hatch". This greatly benefits developers because now third-party apps benefit from all the OS's own optimizations. There's no "magic performance sauce" available only to preinstalled code. See Firefox OS performance testing for more details relevant to Firefox OS.

-
+> **Nota:** See [Firefox OS performance testing](/en-US/Apps/Developing/Performance/Firefox_OS_performance_testing) for more information about Firefox OS specifics that help to further improve startup performance. -

Gecko rendering

+## Application performance -

The Gecko JavaScript engine supports just-in-time (JIT) compilation. This enables application logic to perform comparably to other virtual machines — such as Java virtual machines — and in some cases even close to "native code".

+This section is intended for developers asking the question: "How can I make my app fast"? -

The graphics pipeline in Gecko that underpins HTML, CSS, and Canvas is optimized in several ways. The HTML/CSS layout and graphics code in Gecko reduces invalidation and repainting for common cases like scrolling; developers get this support "for free". Pixel buffers painted by both Gecko "automatically" and applications to canvas "manually" minimize copies when being drawn to the display framebuffer. This is done by avoiding intermediate surfaces where they would create overhead (such as per-application "back buffers" in many other operating systems), and by using special memory for graphics buffers that can be directly accessed by the compositor hardware. Complex scenes are rendered using the device's GPU for maximum performance. To improve power usage, simple scenes are rendered using special dedicated composition hardware, while the GPU idles or turns off.

+### Startup performance -

Fully static content is the exception rather than the rule for rich applications. Rich applications use dynamic content with {{ cssxref("animation") }} and {{ cssxref ("transition") }} effects. Transitions and animations are particularly important to applications: developers can use CSS to declare complicated behaviour with a simple, high-level syntax. In turn, Gecko's graphics pipeline is highly optimized to render common animations efficiently. Common-case animations are "offloaded" to the system compositor, which can render them in a performant, power-efficient fashion.

+Application startup is punctuated by three user-perceived events, generally speaking: -

An app's startup performance matters just as much as its runtime performance. Gecko is optimized to load a wide variety of content efficiently: the entire Web! Many years of improvements targeting this content, like parallel HTML parsing, intelligent scheduling of reflows and image decoding, clever layout algorithms, etc., translate just as well to improving Web applications on Firefox.

+- The first is the application **first paint** — the point at which sufficient application resources have been loaded to paint an initial frame +- The second is when the application becomes **interactive** — for example, users are able to tap a button and the application responds +- The final event is **full load** — for example when all the user's albums have been listed in a music player -
-

Note: See Firefox OS performance testing for more information about Firefox OS specifics that help to further improve startup performance.

-
+The key to fast startup is to keep two things in mind: UPP is all that matters, and there's a "critical path" to each user-perceived event above. The critical path is exactly and only the code that must run to produce the event. -

Application performance

+For example, to paint an application's first frame that comprises visually some HTML and CSS to style that HTML: -

This section is intended for developers asking the question: "How can I make my app fast"?

+1. The HTML must be parsed +2. The DOM for that HTML must be constructed +3. Resources like images in that part of the DOM have to be loaded and decoded +4. The CSS styles must be applied to that DOM +5. The styled document has to be reflowed -

Startup performance

+Nowhere in that list is "load the JS file needed for an uncommon menu"; "fetch and decode the image for the High Scores list", etc. Those work items are not on the critical path to painting the first frame. -

Application startup is punctuated by three user-perceived events, generally speaking:

+It seems obvious, but to reach a user-perceived startup event more quickly, the main "trick" is run _only the code on the critical path._ Shorten the critical path by simplifying the scene. -
    -
  • The first is the application first paint — the point at which sufficient application resources have been loaded to paint an initial frame
  • -
  • The second is when the application becomes interactive — for example, users are able to tap a button and the application responds
  • -
  • The final event is full load — for example when all the user's albums have been listed in a music player
  • -
+The Web platform is highly dynamic. JavaScript is a dynamically-typed language, and the Web platform allows loading code, HTML, CSS, images, and other resources dynamically. These features can be used to defer work that's off the critical path by loading unnecessary content "lazily" some time after startup. -

The key to fast startup is to keep two things in mind: UPP is all that matters, and there's a "critical path" to each user-perceived event above. The critical path is exactly and only the code that must run to produce the event.

+Another problem that can delay startup is idle time, caused by waiting for responses to requests (like database loads). To avoid this problem, applications should issue requests as early as possible in startup (this is called "front-loading"). Then when the data is needed later, hopefully it's already available and the application doesn't have to wait. -

For example, to paint an application's first frame that comprises visually some HTML and CSS to style that HTML:

+> **Nota:** For much more information on improving startup performance, read [Optimizing startup performance](/en-US/Apps/Developing/Performance/Optimizing_startup_performance). -
    -
  1. The HTML must be parsed
  2. -
  3. The DOM for that HTML must be constructed
  4. -
  5. Resources like images in that part of the DOM have to be loaded and decoded
  6. -
  7. The CSS styles must be applied to that DOM
  8. -
  9. The styled document has to be reflowed
  10. -
+On the same note, notice that locally-cached, static resources can be loaded much faster than dynamic data fetched over high-latency, low-bandwidth mobile networks. Network requests should never be on the critical path to early application startup. Caching resources locally is also the only way applications can be used offline, and for standard Open Web Apps, at the moment this requires use of HTML5 [AppCache](/es/docs/HTML/Using_the_application_cache). -

Nowhere in that list is "load the JS file needed for an uncommon menu"; "fetch and decode the image for the High Scores list", etc. Those work items are not on the critical path to painting the first frame.

+> **Nota:** Firefox OS allows applications to cache resources by being installed as applications, either being "packaged" in a compressed ZIP file or "hosted" through HTML5 [AppCache](/es/docs/HTML/Using_the_application_cache). How to choose between these options for a particular type of application is beyond the scope of this document, but in general application packages provide optimal load performance; AppCache is slower. Installable apps will hopefully be coming to other platforms soon! -

It seems obvious, but to reach a user-perceived startup event more quickly, the main "trick" is run only the code on the critical path. Shorten the critical path by simplifying the scene.

+### Framerate -

The Web platform is highly dynamic. JavaScript is a dynamically-typed language, and the Web platform allows loading code, HTML, CSS, images, and other resources dynamically. These features can be used to defer work that's off the critical path by loading unnecessary content "lazily" some time after startup.

+The first important thing for high framerate is to choose the right tool. Use HTML and CSS to implement content that's mostly static, scrolled, and infrequently animated. Use Canvas to implement highly dynamic content, like games that need tight control over rendering and don't need theming. -

Another problem that can delay startup is idle time, caused by waiting for responses to requests (like database loads). To avoid this problem, applications should issue requests as early as possible in startup (this is called "front-loading"). Then when the data is needed later, hopefully it's already available and the application doesn't have to wait.

+For content drawn using Canvas, it's up to the developer to hit framerate targets: they have direct control over what's drawn. -
-

Note: For much more information on improving startup performance, read Optimizing startup performance.

-
+For HTML and CSS content, the path to high framerate is to use the right primitives. Firefox is highly optimized to scroll arbitrary content; this is usually not a concern. But often trading some generality and quality for speed, such as using a static rendering instead of a CSS radial gradient, can push scrolling framerate over a target. CSS [media queries](/es/docs/Web/Guide/CSS/Media_queries) allow these compromises to be restricted only to devices that need them. -

On the same note, notice that locally-cached, static resources can be loaded much faster than dynamic data fetched over high-latency, low-bandwidth mobile networks. Network requests should never be on the critical path to early application startup. Caching resources locally is also the only way applications can be used offline, and for standard Open Web Apps, at the moment this requires use of HTML5 AppCache.

+Many applications use transitions or animations through "pages", or "panels". For example, the user taps a "Settings" button to transition into an application configuration screen, or a settings menu "pops up". Firefox is highly optimized to transition and animate scenes that: -
-

Note: Firefox OS allows applications to cache resources by being installed as applications, either being "packaged" in a compressed ZIP file or "hosted" through HTML5 AppCache. How to choose between these options for a particular type of application is beyond the scope of this document, but in general application packages provide optimal load performance; AppCache is slower. Installable apps will hopefully be coming to other platforms soon!

-
+- use pages/panels approximately the size of the device screen or smaller +- transition/animate the CSS `transform` and `opacity` properties -

Framerate

+Transitions and animations that adhere to these guidelines can be offloaded to the system compositor and run maximally efficiently. -

The first important thing for high framerate is to choose the right tool. Use HTML and CSS to implement content that's mostly static, scrolled, and infrequently animated. Use Canvas to implement highly dynamic content, like games that need tight control over rendering and don't need theming.

+### Memory and power usage -

For content drawn using Canvas, it's up to the developer to hit framerate targets: they have direct control over what's drawn.

+Improving memory and power usage is a similar problem to speeding up startup: don't do unneeded work or lazily load uncommonly-used UI resources. Do use efficient data structures and ensure resources like images are optimized well. -

For HTML and CSS content, the path to high framerate is to use the right primitives. Firefox is highly optimized to scroll arbitrary content; this is usually not a concern. But often trading some generality and quality for speed, such as using a static rendering instead of a CSS radial gradient, can push scrolling framerate over a target. CSS media queries allow these compromises to be restricted only to devices that need them.

+Modern CPUs can enter a lower-power mode when mostly idle. Applications that constantly fire timers or keep unnecessary animations running prevent CPUs from entering low-power mode. Power-efficient applications shouldn't do that. -

Many applications use transitions or animations through "pages", or "panels". For example, the user taps a "Settings" button to transition into an application configuration screen, or a settings menu "pops up". Firefox is highly optimized to transition and animate scenes that:

+When applications are sent to the background, a {{event("visibilitychange")}} event is fired on their documents. This event is a developer's friend; applications should listen for it. Applications that drop as many loaded resources as possible when sent to the background use less memory and are less likely discarded, in the case of Firefox OS (see the note below). This in turn means they "start up" faster (since they are already running) and have better UPP. -
    -
  • use pages/panels approximately the size of the device screen or smaller
  • -
  • transition/animate the CSS transform and opacity properties
  • -
+> **Nota:** As mentioned above, Firefox OS tries to keep as many applications running simultaneously as it can, but does have to discard applications sometimes, usually when the device runs out of memory. To find out more about how Firefox OS manages memory usage and kills apps when out of memory issues are encountered, read [Debugging out of memory errors on Firefox OS](/en-US/Firefox_OS/Debugging/Debugging_OOMs). -

Transitions and animations that adhere to these guidelines can be offloaded to the system compositor and run maximally efficiently.

+### Specific coding tips for application performance -

Memory and power usage

+The following practical tips will help improve one or more of the Application performance factors discussed above. -

Improving memory and power usage is a similar problem to speeding up startup: don't do unneeded work or lazily load uncommonly-used UI resources. Do use efficient data structures and ensure resources like images are optimized well.

+#### Use CSS animations and transitions -

Modern CPUs can enter a lower-power mode when mostly idle. Applications that constantly fire timers or keep unnecessary animations running prevent CPUs from entering low-power mode. Power-efficient applications shouldn't do that.

+Instead of using some library’s `animate()` function, which probably currently uses many badly performing technologies ({{domxref("window.setTimeout()")}} or `top`/`left` positioning, for example) use [CSS animations](/es/docs/Web/Guide/CSS/Using_CSS_animations). In many cases, you can actually use [CSS Transitions](/es/docs/Web/Guide/CSS/Using_CSS_transitions) to get the job done. This works well because the browser is designed to optimize these effects and use the GPU to handle them smoothly with minimal impact on processor performance. Another benefit is that you can define these effects in CSS along with the rest of your app's look-and-feel, using a standardized syntax. -

When applications are sent to the background, a {{event("visibilitychange")}} event is fired on their documents. This event is a developer's friend; applications should listen for it. Applications that drop as many loaded resources as possible when sent to the background use less memory and are less likely discarded, in the case of Firefox OS (see the note below). This in turn means they "start up" faster (since they are already running) and have better UPP.

+CSS animations give you very granular control over your effects using [keyframes](/es/docs/Web/CSS/@keyframes), and you can even watch events fired during the animation process in order to handle other tasks that need to be performed at set points in the animation process. You can easily trigger these animations with the {{cssxref(":hover")}}, {{cssxref(":focus")}}, or {{cssxref(":target")}}, or by dynamically adding and removing classes on parent elements. -
-

Note: As mentioned above, Firefox OS tries to keep as many applications running simultaneously as it can, but does have to discard applications sometimes, usually when the device runs out of memory. To find out more about how Firefox OS manages memory usage and kills apps when out of memory issues are encountered, read Debugging out of memory errors on Firefox OS.

-
+If you want to create animations on the fly or modify them in [JavaScript](/es/docs/JavaScript), James Long has written a simple library for that called [CSS-animations.js](https://github.com/jlongster/css-animations.js/). -

Specific coding tips for application performance

+#### Use CSS transforms -

The following practical tips will help improve one or more of the Application performance factors discussed above.

+Instead of tweaking absolute positioning and fiddling with all that math yourself, use the {{cssxref("transform")}} CSS property to adjust the position, scale, and so forth of your content. The reason is, once again, hardware acceleration. The browser can do these tasks on your GPU, letting the CPU handle other things. -

Use CSS animations and transitions

+In addition, transforms give you capabilities you might not otherwise have. Not only can you translate elements in 2D space, but you can transform in three dimensions, skew and rotate, and so forth. Paul Irish has an [in-depth analysis of the benefits of `translate()`](http://paulirish.com/2012/why-moving-elements-with-translate-is-better-than-posabs-topleft/) from a performance point of view. In general, however, you have the same benefits you get from using CSS animations: you use the right tool for the job and leave the optimization to the browser. You also use an easily extensible way of positioning elements — something that needs a lot of extra code if you simulate translation with `top` and `left` positioning. Another bonus is that this is just like working in a `canvas` element. -

Instead of using some library’s animate() function, which probably currently uses many badly performing technologies ({{domxref("window.setTimeout()")}} or top/left positioning, for example) use CSS animations. In many cases, you can actually use CSS Transitions to get the job done. This works well because the browser is designed to optimize these effects and use the GPU to handle them smoothly with minimal impact on processor performance. Another benefit is that you can define these effects in CSS along with the rest of your app's look-and-feel, using a standardized syntax.

+> **Nota:** You may need to attach a `translateZ(0.1)` transform if you wish to get hardware acceleration on your CSS animations, depending on platform. As noted above, this can improve performance, but can also have memory consumption issues. What you do in this regard is up to you — do some testing and find out what's best for your particular app. -

CSS animations give you very granular control over your effects using keyframes, and you can even watch events fired during the animation process in order to handle other tasks that need to be performed at set points in the animation process. You can easily trigger these animations with the {{cssxref(":hover")}}, {{cssxref(":focus")}}, or {{cssxref(":target")}}, or by dynamically adding and removing classes on parent elements.

+#### Use `requestAnimationFrame()` instead of `setInterval()` -

If you want to create animations on the fly or modify them in JavaScript, James Long has written a simple library for that called CSS-animations.js.

+Calls to {{domxref("window.setInterval()")}} run code at a presumed frame rate that may or may not be possible under current circumstances. It tells the browser to render results even while the browser isn't actually drawing; that is, while the video hardware hasn't reached the next display cycle. This wastes processor time and can even lead to reduced battery life on the user's device. -

Use CSS transforms

+Instead, you should try to use {{domxref("window.requestAnimationFrame()")}}. This waits until the browser is actually ready to start building the next frame of your animation, and won't bother if the hardware isn't going to actually draw anything. Another benefit to this API is that animations won't run while your app isn't visible on the screen (such as if it's in the background and some other task is operating). This will save battery life and prevent users from cursing your name into the night sky. -

Instead of tweaking absolute positioning and fiddling with all that math yourself, use the {{cssxref("transform")}} CSS property to adjust the position, scale, and so forth of your content. The reason is, once again, hardware acceleration. The browser can do these tasks on your GPU, letting the CPU handle other things.

+#### Make events immediate -

In addition, transforms give you capabilities you might not otherwise have. Not only can you translate elements in 2D space, but you can transform in three dimensions, skew and rotate, and so forth. Paul Irish has an in-depth analysis of the benefits of translate() from a performance point of view. In general, however, you have the same benefits you get from using CSS animations: you use the right tool for the job and leave the optimization to the browser. You also use an easily extensible way of positioning elements — something that needs a lot of extra code if you simulate translation with top and left positioning. Another bonus is that this is just like working in a canvas element.

+As old-school, accessibility-aware Web developers we love click events since they also support keyboard input. On mobile devices, these are too slow. You should use {{event("touchstart")}} and {{event("touchend")}} instead. The reason is that these don’t have a delay that makes the interaction with the app appear sluggish. If you test for touch support first, you don’t sacrifice accessibility, either. For example, the Financial Times uses a library called [fastclick](https://github.com/ftlabs/fastclick) for that purpose, which is available for you to use. -
-

Note: You may need to attach a translateZ(0.1) transform if you wish to get hardware acceleration on your CSS animations, depending on platform. As noted above, this can improve performance, but can also have memory consumption issues. What you do in this regard is up to you — do some testing and find out what's best for your particular app.

-
+#### Keep your interface simple -

Use requestAnimationFrame() instead of setInterval()

+One big performance issue we found in HTML5 apps was that moving lots of [DOM](/es/docs/DOM) elements around makes everything sluggish — especially when they feature lots of gradients and drop shadows. It helps a lot to simplify your look-and-feel and move a proxy element around when you drag and drop. -

Calls to {{domxref("window.setInterval()")}} run code at a presumed frame rate that may or may not be possible under current circumstances. It tells the browser to render results even while the browser isn't actually drawing; that is, while the video hardware hasn't reached the next display cycle. This wastes processor time and can even lead to reduced battery life on the user's device.

+When, for example, you have a long list of elements (let’s say tweets), don’t move them all. Instead, keep in your DOM tree only the ones that are visible and a few on either side of the currently visible set of tweets. Hide or remove the rest. Keeping the data in a JavaScript object instead of accessing the DOM can vastly improve your app's performance. Think of the display as a presentation of your data rather than the data itself. That doesn’t mean you can't use straight HTML as the source; just read it once and then scroll 10 elements, changing the content of the first and last accordingly to your position in the results list, instead of moving 100 elements that aren’t visible. The same trick applies in games to sprites: if they aren’t currently on the screen, there is no need to poll them. Instead re-use elements that scroll off screen as new ones coming in. -

Instead, you should try to use {{domxref("window.requestAnimationFrame()")}}. This waits until the browser is actually ready to start building the next frame of your animation, and won't bother if the hardware isn't going to actually draw anything. Another benefit to this API is that animations won't run while your app isn't visible on the screen (such as if it's in the background and some other task is operating). This will save battery life and prevent users from cursing your name into the night sky.

+## General application performance analysis -

Make events immediate

+Firefox, Chrome, and other browsers include built-in tools that can help you diagnose slow page rendering. In particular, [Firefox's Network Monitor](/es/docs/Tools/Network_Monitor) will display a precise timeline of when each network request on your page happens, how large it is, and how long it takes. -

As old-school, accessibility-aware Web developers we love click events since they also support keyboard input. On mobile devices, these are too slow. You should use {{event("touchstart")}} and {{event("touchend")}} instead. The reason is that these don’t have a delay that makes the interaction with the app appear sluggish. If you test for touch support first, you don’t sacrifice accessibility, either. For example, the Financial Times uses a library called fastclick for that purpose, which is available for you to use.

+![The Firefox network monitor showing get requests, multiple files, and different times taken to load each resource on a graph.](https://mdn.mozillademos.org/files/6845/network-monitor.jpg) -

Keep your interface simple

+If your page contains JavaScript code that is taking a long time to run, the [JavaScript profiler](/es/docs/Tools/Profiler) will pinpoint the slowest lines of code: -

One big performance issue we found in HTML5 apps was that moving lots of DOM elements around makes everything sluggish — especially when they feature lots of gradients and drop shadows. It helps a lot to simplify your look-and-feel and move a proxy element around when you drag and drop.

+![The Firefox JavaScript profiler showing a completed profile 1.](https://mdn.mozillademos.org/files/6839/javascript-profiler.png) -

When, for example, you have a long list of elements (let’s say tweets), don’t move them all. Instead, keep in your DOM tree only the ones that are visible and a few on either side of the currently visible set of tweets. Hide or remove the rest. Keeping the data in a JavaScript object instead of accessing the DOM can vastly improve your app's performance. Think of the display as a presentation of your data rather than the data itself. That doesn’t mean you can't use straight HTML as the source; just read it once and then scroll 10 elements, changing the content of the first and last accordingly to your position in the results list, instead of moving 100 elements that aren’t visible. The same trick applies in games to sprites: if they aren’t currently on the screen, there is no need to poll them. Instead re-use elements that scroll off screen as new ones coming in.

+The [Built-in Gecko Profiler](/es/docs/Performance/Profiling_with_the_Built-in_Profiler) is a very useful tool that provides even more detailed information about which parts of the browser code are running slowly while the profiler runs. This is a bit more complex to use, but provides a lot of useful details. -

General application performance analysis

+![A built-in Gecko profiler windows showing a lot of network information.](https://mdn.mozillademos.org/files/6837/gecko-profiler.png) -

Firefox, Chrome, and other browsers include built-in tools that can help you diagnose slow page rendering. In particular, Firefox's Network Monitor will display a precise timeline of when each network request on your page happens, how large it is, and how long it takes.

+> **Nota:** You can use these tools with the Android browser by running Firefox and enabling [remote debugging](/es/docs/Tools/Remote_Debugging). -

The Firefox network monitor showing get requests, multiple files, and different times taken to load each resource on a graph.

+Using [YSlow](https://addons.mozilla.org/en-US/firefox/addon/yslow/) (which requires [Firebug](https://getfirebug.com/)) provides extremely helpful recommendations for improving performance. Many of the identified problems and suggested solutions are especially useful for mobile browsers. You should definitely run YSlow and follow its recommendations. -

If your page contains JavaScript code that is taking a long time to run, the JavaScript profiler will pinpoint the slowest lines of code:

+![A YSlow window showing a set of tips for improving performance, the top one being make fewer http requests.](https://mdn.mozillademos.org/files/6843/yslow.png) -

The Firefox JavaScript profiler showing a completed profile 1.

+In particular, making dozens or hundreds of network requests takes longer in mobile browsers. Rendering large images and CSS gradients can also take longer. Simply downloading large files can take longer, even over a fast network, because mobile hardware is sometimes too slow to take advantage of all the available bandwidth. For useful general tips on mobile Web performance, have a look at Maximiliano Firtman's [Mobile Web High Performance](http://www.slideshare.net/firt/mobile-web-high-performance) talk. -

The Built-in Gecko Profiler is a very useful tool that provides even more detailed information about which parts of the browser code are running slowly while the profiler runs. This is a bit more complex to use, but provides a lot of useful details.

+### Testcases and submitting bugs -

A built-in Gecko profiler windows showing a lot of network information.

+If the Firefox and Chrome developer tools don't help you find a problem, or if they seem to indicate that the Web browser has caused the problem, try to provide a reduced test case that maximally isolates the problem. That often helps in diagnosing problems. -
-

Note: You can use these tools with the Android browser by running Firefox and enabling remote debugging.

-
- -

Using YSlow (which requires Firebug) provides extremely helpful recommendations for improving performance. Many of the identified problems and suggested solutions are especially useful for mobile browsers. You should definitely run YSlow and follow its recommendations.

- -

A YSlow window showing a set of tips for improving performance, the top one being make fewer http requests.

- -

In particular, making dozens or hundreds of network requests takes longer in mobile browsers. Rendering large images and CSS gradients can also take longer. Simply downloading large files can take longer, even over a fast network, because mobile hardware is sometimes too slow to take advantage of all the available bandwidth. For useful general tips on mobile Web performance, have a look at Maximiliano Firtman's Mobile Web High Performance talk.

- -

Testcases and submitting bugs

- -

If the Firefox and Chrome developer tools don't help you find a problem, or if they seem to indicate that the Web browser has caused the problem, try to provide a reduced test case that maximally isolates the problem. That often helps in diagnosing problems.

- -

See if you can reproduce the problem by saving and loading a static copy of an HTML page (including any images/stylesheets/scripts it embeds). If so, edit the static files to remove any private information, then send them to others for help (submit a Bugzilla report, for example, or host it on a server and share the URL). You should also share any profiling information you've collected using the tools listed above.

+See if you can reproduce the problem by saving and loading a static copy of an HTML page (including any images/stylesheets/scripts it embeds). If so, edit the static files to remove any private information, then send them to others for help (submit a [Bugzilla](https://bugzilla.mozilla.org/) report, for example, or host it on a server and share the URL). You should also share any profiling information you've collected using the tools listed above. diff --git a/files/es/web/performance/optimizing_startup_performance/index.md b/files/es/web/performance/optimizing_startup_performance/index.md index f84a9cf8e7518a..3c51694476e53f 100644 --- a/files/es/web/performance/optimizing_startup_performance/index.md +++ b/files/es/web/performance/optimizing_startup_performance/index.md @@ -8,89 +8,71 @@ tags: translation_of: Web/Performance/Optimizing_startup_performance original_slug: Web/Performance/mejorando_rendimienot_inicial --- -
-

Un aspecto que a menudo se pasa por alto en el desarrollo de software de aplicaciones, incluso entre aquellos enfocados en la optimización del rendimiento, es el rendimiento inicial. ¿Cuánto tiempo demora su aplicación en iniciarse? ¿Parece que se bloquea el dispositivo o el navegador del usuario no responde mientras se carga la aplicación? Eso hace que los usuarios se preocupen de que su aplicación haya fallado, o de que algo anda mal. Siempre es una buena idea invertir tiempo para asegurarse de que la aplicación se inicie de manera correcta. Este artículo ofrece consejos y sugerencias para ayudar a lograr ese objetivo, tanto al escribir una nueva aplicación como al migrar una aplicación de otra plataforma a la Web.

-
+Un aspecto que a menudo se pasa por alto en el desarrollo de software de aplicaciones, incluso entre aquellos enfocados en la optimización del rendimiento, es el rendimiento inicial. ¿Cuánto tiempo demora su aplicación en iniciarse? ¿Parece que se bloquea el dispositivo o el navegador del usuario no responde mientras se carga la aplicación? Eso hace que los usuarios se preocupen de que su aplicación haya fallado, o de que algo anda mal. Siempre es una buena idea invertir tiempo para asegurarse de que la aplicación se inicie de manera correcta. Este artículo ofrece consejos y sugerencias para ayudar a lograr ese objetivo, tanto al escribir una nueva aplicación como al migrar una aplicación de otra plataforma a la Web. -

Empezando Bien

+## Empezando Bien -

Independientemente de la plataforma, siempre es una buena idea comenzar lo más rápido posible. Ya que es un problema universal, no nos vamos a enfocar demasiado en esto. En su lugar, vamos a ver un problema más importante al crear aplicaciones web: comenzar de la manera más asíncrona posible. Eso significa no ejecutar todo el código inicial en un mismo controlador de eventos en el hilo principal de la aplicación.

+Independientemente de la plataforma, siempre es una buena idea comenzar lo **más rápido** posible. Ya que es un problema universal, no nos vamos a enfocar demasiado en esto. En su lugar, vamos a ver un problema más importante al crear aplicaciones web: comenzar de la manera más **asíncrona** posible. Eso significa no ejecutar todo el código inicial en un mismo controlador de eventos en el hilo principal de la aplicación. -

En su lugar, es preferible que el código de la aplicación cree un Web worker que haga todo lo posible en un hilo de fondo (por ejemplo, para obtener y procesar datos). Luego, todo lo que debe ejecutarse en el hilo principal (como responder a los eventos del usuario o desplegar la interfaz gráfica) debe dividirse en tareas pequeñas para que el ciclo de eventos continúe mientras la aplicación inicia. Esto evitará que la aplicación, el navegador y / o el dispositivo parezcan haber fallado.

+En su lugar, es preferible que el código de la aplicación cree un [Web worker](es/docs/Web/Guide/Performance/Usando_web_workers "/en-US/docs/DOM/Using_web_workers") que haga todo lo posible en un hilo de fondo (por ejemplo, para obtener y procesar datos). Luego, todo lo que debe ejecutarse en el hilo principal (como responder a los eventos del usuario o desplegar la interfaz gráfica) debe dividirse en tareas pequeñas para que el ciclo de eventos continúe mientras la aplicación inicia. Esto evitará que la aplicación, el navegador y / o el dispositivo parezcan haber fallado. -

¿Por qué es importante ser asíncrono? Aparte de las razones sugeridas anteriormente, considere el impacto de una página o interfaz de usuario que no responde. El usuario no puede cerrar la aplicación si la lanzó por error. Si la aplicación se ejecuta en un navegador, es posible que el usuario obtenga una notificación diciendo "la aplicación no responde". Presentar algún tipo de interfaz, como una barra de progreso, para que el usuario sepa cuánto tiempo más tendrá que esperar mientras se inicia la aplicación es mejor que una interfaz incapaz de responder a las acciones del usuario.

+¿Por qué es importante ser asíncrono? Aparte de las razones sugeridas anteriormente, considere el impacto de una página o interfaz de usuario que no responde. El usuario no puede cerrar la aplicación si la lanzó por error. Si la aplicación se ejecuta en un navegador, es posible que el usuario obtenga una notificación diciendo "la aplicación no responde". Presentar algún tipo de interfaz, como una barra de progreso, para que el usuario sepa cuánto tiempo más tendrá que esperar mientras se inicia la aplicación es mejor que una interfaz incapaz de responder a las acciones del usuario. -

Trabajar con Rendimiento en Mente

+## Trabajar con Rendimiento en Mente -

Si está comenzando un proyecto de cero, generalmente es más sencillo escribir todo de la manera correcta, hacer que el código sea escrito para trabajar de manera asíncrona en mente. Hacer los cálculos iniciales en subprocesos en segundo plano cuando sea posible, crear tareas cortas para acelerar el tiempo de ejecución de los eventos de subprocesos importantes. Empezar a pintar en pantalla la interfaz gráfica para que el usuario sepa qué algo pasando y cuánto tiempo estará esperando. En teoría, de todos modos, debería ser bastante fácil diseñar una aplicación nueva para que inicie bien.

+Si está comenzando un proyecto de cero, generalmente es más sencillo escribir todo de la manera correcta, hacer que el código sea escrito para trabajar de manera asíncrona en mente. Hacer los cálculos iniciales en subprocesos en segundo plano cuando sea posible, crear tareas cortas para acelerar el tiempo de ejecución de los eventos de subprocesos importantes. Empezar a pintar en pantalla la interfaz gráfica para que el usuario sepa qué algo pasando y cuánto tiempo estará esperando. En teoría, de todos modos, debería ser bastante fácil diseñar una aplicación nueva para que inicie bien. -

Por otro lado, migrar una aplicación existente a la Web puede ser una tarea más complicada. Por ejemplo, una aplicación de escritorio no necesita escribirse de forma asíncrona porque generalmente el sistema operativo se encarga de eso, o aplicación que se está ejecutando actualmente es lo único que importa, dependiendo del entorno operativo. La aplicación original puede tener un ciclo principal que puede modificarse para operar de forma asíncrona (intentando ejecutar cada iteración del ciclo principal por separado); el inicio es a menudo un procedimiento monolítico continuo que puede ir actualizando de manera periódica la interfaz gráfica para indicar progreso.

+Por otro lado, migrar una aplicación existente a la Web puede ser una tarea más complicada. Por ejemplo, una aplicación de escritorio no necesita escribirse de forma asíncrona porque generalmente el sistema operativo se encarga de eso, o aplicación que se está ejecutando actualmente es lo único que importa, dependiendo del entorno operativo. La aplicación original puede tener un ciclo principal que puede modificarse para operar de forma asíncrona (intentando ejecutar cada iteración del ciclo principal por separado); el inicio es a menudo un procedimiento monolítico continuo que puede ir actualizando de manera periódica la interfaz gráfica para indicar progreso. -

Si bien se puede usar los Web workers para ejecutar fragmentos de forma asíncrona códigos JavaScript muy grandes y/o lentos, hay una gran advertencia: Web workers no tienen accesso a WebGL o audio, y no pueden enviar mensajes síncronos al hilo principal, por lo que no se puede hacer un proxy de esos APIs al hilo principal. Todo esto significa que, a menos que se pueda extraer fácilmente los trozos de "cálculo puro" del proceso de inicio en Web workers, se va terminar teniendo que ejecutar la mayor parte o la totalidad del código de inicio en el hilo principal.

+Si bien se puede usar los [Web workers ](es/docs/Web/Guide/Performance/Usando_web_workers "/en-US/docs/DOM/Using_web_workers")para ejecutar fragmentos de forma asíncrona códigos [JavaScript](/es/docs/JavaScript) muy grandes y/o lentos, hay una gran advertencia: Web workers no tienen accesso a [WebGL](/es/docs/Web/API/WebGL_API "/en-US/docs/WebGL") o audio, y no pueden enviar mensajes síncronos al hilo principal, por lo que no se puede hacer un proxy de esos APIs al hilo principal. Todo esto significa que, a menos que se pueda extraer fácilmente los trozos de "cálculo puro" del proceso de inicio en Web workers, se va terminar teniendo que ejecutar la mayor parte o la totalidad del código de inicio en el hilo principal. -

Sin embargo, incluso código como ese puede ser hecho asíncrono, con un poco de trabajo.

+Sin embargo, incluso código como ese puede ser hecho asíncrono, con un poco de trabajo. -

Trabajando de Manera Asíncrona

+## Trabajando de Manera Asíncrona -

Algunas sugerencias que se pueden aplicar para hacer que el proceso de inicio de la aplicación se lo más asíncrona posible, sin importar si la aplicación es nueva o si se está migrando una que ya existe, son las siguientes:

+Algunas sugerencias que se pueden aplicar para hacer que el proceso de inicio de la aplicación se lo más asíncrona posible, sin importar si la aplicación es nueva o si se está migrando una que ya existe, son las siguientes: -
    -
  • Usar los atributos {{ htmlattrxref("defer") }} o {{ htmlattrxref("async") }} en los tag de script que la aplicación Web necesita. Esto permite que el interpretador de HTML no se vea forzado a esperar a que el código se haya descargado y ejecutado para continuar.
  • -
  • Si se necesita descodificar archivos de recurso (por ejemplo, descodificar archivos JPEG files y convertirlos en datos de textura para ser usados luegos en WebGL), este es un buen caso de uso para Web workers.
  • -
  • When dealing with data supported by the browser (por ejemplo, descodificar images), es mejor utilizar los descodificadores includos en el navegador o el dispositivo en lugar de utilizar un propio migrado del código existente. El descodificador incluído en el navegador es muy probablemente más rápido, y reduce la cantidad de código que se va a necesitar para iniciar la aplicación. Además, es posible que el navegador automáticamente pueda ejecutar en paralelo estos descodificadores.
  • -
  • Cualquier procesamiento de información que puede ejecutarse en paralelo debe ser ejecutada en paralelo. No trabaje con porciones de información de manera sequencial; es mejor ejecutarlas en paralelo, siempre que sea posible.
  • -
  • No incluya archivos de JavaScript o CSS que no son necesarios para la ruta crítica de iniciar la aplicación web. Cargue los recursos adicionales cuando sean necesarios.
  • -
  • Reduzca el tamaño de sus archivos JavaScript. Intente enviar la versión minificada de sus archivos a los navegadores y utilice mecanismos de compresión de recursos como Gzip o Brotli.
  • -
  • Utilice directivas (como preload, prefetch, preconnect) para ayudar al navegador a optimizar la carga de los recursos.
  • -
+- Usar los atributos {{ htmlattrxref("defer") }} o {{ htmlattrxref("async") }} en los tag de script que la aplicación Web necesita. Esto permite que el interpretador de HTML no se vea forzado a esperar a que el código se haya descargado y ejecutado para continuar. +- Si se necesita descodificar archivos de recurso (por ejemplo, descodificar archivos JPEG files y convertirlos en datos de textura para ser usados luegos en WebGL), este es un buen caso de uso para Web workers. +- When dealing with data supported by the browser (por ejemplo, descodificar images), es mejor utilizar los descodificadores includos en el navegador o el dispositivo en lugar de utilizar un propio migrado del código existente. El descodificador incluído en el navegador es muy probablemente más rápido, y reduce la cantidad de código que se va a necesitar para iniciar la aplicación. Además, es posible que el navegador automáticamente pueda ejecutar en paralelo estos descodificadores. +- Cualquier procesamiento de información que puede ejecutarse en paralelo debe ser ejecutada en paralelo. No trabaje con porciones de información de manera sequencial; es mejor ejecutarlas en paralelo, siempre que sea posible. +- No incluya archivos de JavaScript o CSS que no son necesarios para la ruta crítica de iniciar la aplicación web. Cargue los recursos adicionales cuando sean necesarios. +- Reduzca el tamaño de sus archivos JavaScript. Intente enviar la versión minificada de sus archivos a los navegadores y utilice mecanismos de compresión de recursos como Gzip o Brotli. +- Utilice directivas (como preload, prefetch, preconnect) para ayudar al navegador a optimizar la carga de los recursos. -

A mayor trabajo que se pueda realizar de manera asíncrona, la aplicación va a obtener mayor ventaja de procesadores multinúcleos.

+A mayor trabajo que se pueda realizar de manera asíncrona, la aplicación va a obtener mayor ventaja de procesadores multinúcleos. -

Problemas de Migración

+### Problemas de Migración -

+Una vez que se realiza la carga inicial y el código principal de la aplicación comienza a ejecutarse, es posible que su aplicación esté programada para trabajar en un solo hilo, especialmente cuando es una migración. Lo más importante que se puede hacer para tratar de ayudar con el proceso de inicio del código principal es refactorizar el código en partes pequeñas que se pueden ejecutrar en trozos intercalados en múltiples llamadas del ciclo principal de su aplicación, para que el hilo principal pueda manejar las interacciones del usuario y similares. -

Una vez que se realiza la carga inicial y el código principal de la aplicación comienza a ejecutarse, es posible que su aplicación esté programada para trabajar en un solo hilo, especialmente cuando es una migración. Lo más importante que se puede hacer para tratar de ayudar con el proceso de inicio del código principal es refactorizar el código en partes pequeñas que se pueden ejecutrar en trozos intercalados en múltiples llamadas del ciclo principal de su aplicación, para que el hilo principal pueda manejar las interacciones del usuario y similares.

+Emscripten proporciona una API para ayudar con esta refactorización; por ejemplo, puede usar emscripten_push_main_loop_blocker () para establecer una función que se ejecutará antes de que se permita que el hilo principal continúe. Al establecer una cola de funciones a ser llamadas en secuencia, puede administrar más fácilmente los bits de código en ejecución sin bloquear el hilo principal. -

Emscripten proporciona una API para ayudar con esta refactorización; por ejemplo, puede usar emscripten_push_main_loop_blocker () para establecer una función que se ejecutará antes de que se permita que el hilo principal continúe. Al establecer una cola de funciones a ser llamadas en secuencia, puede administrar más fácilmente los bits de código en ejecución sin bloquear el hilo principal.

+Eso deja, sin embargo, el problema de tener que refactorizar su código existente para que realmente funcione de esa manera. Eso puede llevar algún tiempo. -

Eso deja, sin embargo, el problema de tener que refactorizar su código existente para que realmente funcione de esa manera. Eso puede llevar algún tiempo.

+### ¿Que tan asíncrono debo ser? -

+Vale la pena tener en cuenta que la mayoría de los navegadores suelen comenzar a quejarse de que un script está bloqueando el hilo principal aproximadamente a los 10 segundos. Idealmente, la aplicación no debería bloquear esa cantidad de tiempo, pero mientras se mantenga debajo de eso, debería estar bien. Sin embargo, tenga en cuenta que si alguien tiene una computadora más antigua y más lenta que la suya, ¡puede experimentar retrasos más prolongados que usted! -

¿Que tan asíncrono debo ser?

+## Otras Sugerencias -

Vale la pena tener en cuenta que la mayoría de los navegadores suelen comenzar a quejarse de que un script está bloqueando el hilo principal aproximadamente a los 10 segundos. Idealmente, la aplicación no debería bloquear esa cantidad de tiempo, pero mientras se mantenga debajo de eso, debería estar bien. Sin embargo, tenga en cuenta que si alguien tiene una computadora más antigua y más lenta que la suya, ¡puede experimentar retrasos más prolongados que usted!

+Hay otras cosas además de ir asíncrono, que pueden ayudarlo a mejorar el tiempo de inicio de su aplicación. Estas son algunos de ellos: -

Otras Sugerencias

+- Tiempo de Descarga + - : Tenga en cuenta cuánto tiempo le llevará al usuario descargar los datos de su juego. Si su juego es realmente grande, muy popular o si tiene que volver a descargar contenido con frecuencia, debe intentar tener un servidor de alojamiento lo más rápido posible. También debe considerar utilizar mecanismos de compresión como Gzip o Brotli para que sean lo más pequeños posible. +- Uso del GPU + - : La compilación de sombras y la carga de texturas en el GPU pueden llevar tiempo, especialmente para los juegos realmente complejos. Si bien esto también ocurre con los juegos nativos (que no son de la Web), todavía puede ser bastante molesto. Evita hacer esto sin mantener informado al usuario de que el juego, de hecho, todavía se está iniciando. +- Tamaño de los Datos + - : Haz tu mejor esfuerzo para optimizar el tamaño de tus datos de juego; los archivos de menor nivel se descargarán y procesarán más rápido que los más grandes. +- Factores Subjetivos + - : Cualquier cosa que pueda hacer para ayudar a mantener al usuario involucrado durante el proceso de inicio ayudará a que el tiempo parezca más rápido. Para los juegos, considere la posibilidad de reproducir música de fondo o mostrar una bonita pantalla de bienvenida. Entre cada cálculo, actualice su indicador de progreso, realice cambios en la pantalla o cualquier otra cosa que pueda hacer para ayudar al usuario a sentir que su aplicación está haciendo algo en lugar de quedarse sentado tranquilamente. -

Hay otras cosas además de ir asíncrono, que pueden ayudarlo a mejorar el tiempo de inicio de su aplicación. Estas son algunos de ellos:

+## También Podría Interesarte -
-
Tiempo de Descarga
-
Tenga en cuenta cuánto tiempo le llevará al usuario descargar los datos de su juego. Si su juego es realmente grande, muy popular o si tiene que volver a descargar contenido con frecuencia, debe intentar tener un servidor de alojamiento lo más rápido posible. También debe considerar utilizar mecanismos de compresión como Gzip o Brotli para que sean lo más pequeños posible.
-
Uso del GPU
-
La compilación de sombras y la carga de texturas en el GPU pueden llevar tiempo, especialmente para los juegos realmente complejos. Si bien esto también ocurre con los juegos nativos (que no son de la Web), todavía puede ser bastante molesto. Evita hacer esto sin mantener informado al usuario de que el juego, de hecho, todavía se está iniciando.
-
Tamaño de los Datos
-
Haz tu mejor esfuerzo para optimizar el tamaño de tus datos de juego; los archivos de menor nivel se descargarán y procesarán más rápido que los más grandes.
-
Factores Subjetivos
-
Cualquier cosa que pueda hacer para ayudar a mantener al usuario involucrado durante el proceso de inicio ayudará a que el tiempo parezca más rápido. Para los juegos, considere la posibilidad de reproducir música de fondo o mostrar una bonita pantalla de bienvenida. Entre cada cálculo, actualice su indicador de progreso, realice cambios en la pantalla o cualquier otra cosa que pueda hacer para ayudar al usuario a sentir que su aplicación está haciendo algo en lugar de quedarse sentado tranquilamente.
-
+- [Apps](/es/docs/Web/Progressive_web_apps "/en-US/docs/Apps") +- [Games](/es/docs/Games "/en-US/docs/Games") -

También Podría Interesarte

+## Información del Documento Original: - - -
-

Información del Documento Original:

- - -
- -

+- Autor(s): Alon Zakai +- Fuente: [BananaBread (or any compiled codebase) Startup Experience](http://mozakai.blogspot.com/2012/07/bananabread-or-any-compiled-codebase.html) diff --git a/files/es/web/progressive_web_apps/app_structure/index.md b/files/es/web/progressive_web_apps/app_structure/index.md index fb6e6b812c56e4..665182030b54f9 100644 --- a/files/es/web/progressive_web_apps/app_structure/index.md +++ b/files/es/web/progressive_web_apps/app_structure/index.md @@ -13,128 +13,127 @@ tags: - progresiva translation_of: Web/Progressive_web_apps/App_structure --- -
{{PreviousMenuNext("Web/Progressive_web_apps/Introduction", "Web/Progressive_web_apps/Offline_Service_workers", "Web/Progressive_web_apps")}}
+{{PreviousMenuNext("Web/Progressive_web_apps/Introduction", "Web/Progressive_web_apps/Offline_Service_workers", "Web/Progressive_web_apps")}} -

Ahora que conoces la teoría detrás de las PWAs, veamos la estructura recomendada de una aplicación real. Comenzaremos analizando la aplicación js13kPWA, veamos por qué está construida de esa manera y qué beneficios aporta.

+Ahora que conoces la teoría detrás de las PWAs, veamos la estructura recomendada de una aplicación real. Comenzaremos analizando la aplicación [js13kPWA](https://mdn.github.io/pwa-examples/js13kpwa/), veamos por qué está construida de esa manera y qué beneficios aporta. -

Arquitectura de una aplicación

+## Arquitectura de una aplicación -

Hay dos principales y diferentes enfoques para representar un sitio web — en el servidor o en el cliente. Ambos tienen sus ventajas y desventajas, y puedes combinar los dos enfoques hasta cierto punto.

+Hay dos principales y diferentes enfoques para representar un sitio web — en el servidor o en el cliente. Ambos tienen sus ventajas y desventajas, y puedes combinar los dos enfoques hasta cierto punto. -
    -
  • La representación del lado del servidor (SSR) significa que un sitio web se representa en el servidor, por lo que ofrece una primera carga más rápida, pero navegar entre páginas requiere descargar contenido HTML nuevo. Funciona muy bien en todos los navegadores, pero adolece en términos de tiempo de navegación entre páginas y, por lo tanto, rendimiento percibido general — cargar una página requiere un nuevo viaje de ida y vuelta al servidor.
  • -
  • La representación de lado del cliente (CSR) permite que el sitio web se actualice en el navegador casi instantáneamente cuando se navega a diferentes páginas, pero requiere más de un golpe de descarga inicial y una representación adicional en el cliente al principio. El sitio web es más lento en una visita inicial, pero puede ser más rápido para navegar.
  • -
+- La representación del lado del servidor (SSR) significa que un sitio web se representa en el servidor, por lo que ofrece una primera carga más rápida, pero navegar entre páginas requiere descargar contenido HTML nuevo. Funciona muy bien en todos los navegadores, pero adolece en términos de tiempo de navegación entre páginas y, por lo tanto, rendimiento percibido general — cargar una página requiere un nuevo viaje de ida y vuelta al servidor. +- La representación de lado del cliente (CSR) permite que el sitio web se actualice en el navegador casi instantáneamente cuando se navega a diferentes páginas, pero requiere más de un golpe de descarga inicial y una representación adicional en el cliente al principio. El sitio web es más lento en una visita inicial, pero puede ser más rápido para navegar. -

La combinación de SSR con CSR puede generar los mejores resultados: puedes representar un sitio web en el servidor, almacenar en caché su contenido y luego actualizar la representación en el lado del cliente cuando sea necesario. La carga de la primera página es rápida debido al SSR y la navegación entre páginas es fluida porque el cliente puede volver a renderizar la página solo con las partes que han cambiado.

+La combinación de SSR con CSR puede generar los mejores resultados: puedes representar un sitio web en el servidor, almacenar en caché su contenido y luego actualizar la representación en el lado del cliente cuando sea necesario. La carga de la primera página es rápida debido al SSR y la navegación entre páginas es fluida porque el cliente puede volver a renderizar la página solo con las partes que han cambiado. -

Las PWAs se pueden crear utilizando cualquier enfoque que desees, pero algunas funcionarán mejor que otras. El enfoque más popular es el concepto de "intérprete de la aplicación", que combina SSR y CSR exactamente de la manera descrita anteriormente, y además sigue la metodología "fuera de línea primero" que explicaremos en detalle en los próximos artículos y utilizaremos en nuestra aplicación de ejemplo. También hay un nuevo enfoque que involucra la {{web.link("/es/docs/Web/API/Streams_API", "API Streams")}}, que mencionaremos brevemente.

+Las PWAs se pueden crear utilizando cualquier enfoque que desees, pero algunas funcionarán mejor que otras. El enfoque más popular es el concepto de "intérprete de la aplicación", que combina SSR y CSR exactamente de la manera descrita anteriormente, y además sigue la metodología "fuera de línea primero" que explicaremos en detalle en los próximos artículos y utilizaremos en nuestra aplicación de ejemplo. También hay un nuevo enfoque que involucra la {{web.link("/es/docs/Web/API/Streams_API", "API Streams")}}, que mencionaremos brevemente. -

Intérprete de la aplicación

+## Intérprete de la aplicación -

El concepto de intérprete de la aplicación se ocupa de cargar una interfaz de usuario mínima lo antes posible y luego almacenarla en caché para que esté disponible sin conexión para visitas posteriores antes de cargar todo el contenido de la aplicación. De esa manera, la próxima vez que alguien visite la aplicación desde el dispositivo, la interfaz de usuario se cargará desde la caché de inmediato y se solicitará cualquier contenido nuevo del servidor (si aún no está disponible en la caché).

+El concepto de intérprete de la aplicación se ocupa de cargar una interfaz de usuario mínima lo antes posible y luego almacenarla en caché para que esté disponible sin conexión para visitas posteriores antes de cargar todo el contenido de la aplicación. De esa manera, la próxima vez que alguien visite la aplicación desde el dispositivo, la interfaz de usuario se cargará desde la caché de inmediato y se solicitará cualquier contenido nuevo del servidor (si aún no está disponible en la caché). -

Esta estructura es rápida y también se siente rápida, ya que el usuario ve "algo" instantáneamente, en lugar de una ruleta de carga o una página en blanco. También permite que el sitio web sea accesible sin conexión si la conexión de red no está disponible.

+Esta estructura es rápida y también se siente rápida, ya que el usuario ve "algo" instantáneamente, en lugar de una ruleta de carga o una página en blanco. También permite que el sitio web sea accesible sin conexión si la conexión de red no está disponible. -

Podemos controlar lo que se solicita del servidor y lo que se recupera de la caché con un {{web.link("/es/docs/Web/API/Service_Worker_API", "servicio worker")}}, que se explicará en detalle en el próximo artículo, por ahora centrémonos en la estructura en sí misma.

+Podemos controlar lo que se solicita del servidor y lo que se recupera de la caché con un {{web.link("/es/docs/Web/API/Service_Worker_API", "servicio worker")}}, que se explicará en detalle en el próximo artículo, por ahora centrémonos en la estructura en sí misma. -

¿Por qué debería usarla?

+### ¿Por qué debería usarla? -

Esta arquitectura permite que un sitio web se beneficie al máximo de todas las funciones de PWA — almacena en caché el intérprete de la aplicación y administra el contenido dinámico de una manera que mejora enormemente el rendimiento. Además del intérprete básico, puedes agregar otras funciones como {{web.link("/es/docs/Web/Progressive_web_apps/Add_to_home_screen", "agregar a la pantalla de inicio")}} o {{web.link("/es/docs/Web/API/Push_API", "notificaciones push")}}, con la certeza de que la aplicación seguirá funcionando correctamente si no son compatibles con el navegador del usuario — esta es la belleza de la mejora progresiva.

+Esta arquitectura permite que un sitio web se beneficie al máximo de todas las funciones de PWA — almacena en caché el intérprete de la aplicación y administra el contenido dinámico de una manera que mejora enormemente el rendimiento. Además del intérprete básico, puedes agregar otras funciones como {{web.link("/es/docs/Web/Progressive_web_apps/Add_to_home_screen", "agregar a la pantalla de inicio")}} o {{web.link("/es/docs/Web/API/Push_API", "notificaciones push")}}, con la certeza de que la aplicación seguirá funcionando correctamente si no son compatibles con el navegador del usuario — esta es la belleza de la mejora progresiva. -

El sitio web se siente como una aplicación nativa con interacción instantánea y un rendimiento sólido, al tiempo que conserva todos los beneficios de la web.

+El sitio web se siente como una aplicación nativa con interacción instantánea y un rendimiento sólido, al tiempo que conserva todos los beneficios de la web. -

Ser enlazable, progresiva y adaptable por diseño

+### Ser enlazable, progresiva y adaptable por diseño -

Es importante recordar las ventajas de PWA y tenerlas en cuenta al diseñar la aplicación. El enfoque del intérprete de la aplicación permite que los sitios web sean:

+Es importante recordar las ventajas de PWA y tenerlas en cuenta al diseñar la aplicación. El enfoque del intérprete de la aplicación permite que los sitios web sean: -
    -
  • Enlazable: aunque se comporta como una aplicación nativa, sigue siendo un sitio web; puedes hacer clic en los enlaces dentro de la página y enviar una URL a alguien si deseas compartirla.
  • -
  • Progresiva: comienza con el "buen, antiguo sitio web básico" y agrega progresivamente nuevas funciones mientras recuerdas detectar si están disponibles en el navegador y manejas con elegancia cualquier error que surja si no hay soporte disponible. Por ejemplo, un modo fuera de línea con la ayuda del servicio workers es solo un rasgo adicional que mejora la experiencia del sitio web, pero aún se puede usar perfectamente sin él.
  • -
  • Adaptable: El diseño web adaptable también se aplica a las aplicaciones web progresivas, ya que ambas son principalmente para dispositivos móviles. Hay una gran variedad de dispositivos con navegadores — es importante preparar tu sitio web para que funcione en diferentes tamaños de pantalla, ventanas gráficas o densidades de píxeles, utilizando tecnologías como {{web.link("/es/docs/Mozilla/Mobile/Viewport_meta_tag", "metaetiqueta de la ventana gráfica")}}, {{web.link("/es/docs/Web/CSS/Media_Queries/Using_media_queries", "consultas de medios CSS")}}, {{web.link("/es/docs/Web/CSS/CSS_Flexible_Box_Layout", "Flexbox")}} y {{web.link("/es/docs/Web/CSS/CSS_Grid_Layout", "Rejilla CSS")}}.
  • -
+- Enlazable: aunque se comporta como una aplicación nativa, sigue siendo un sitio web; puedes hacer clic en los enlaces dentro de la página y enviar una URL a alguien si deseas compartirla. +- Progresiva: comienza con el "buen, antiguo sitio web básico" y agrega progresivamente nuevas funciones mientras recuerdas detectar si están disponibles en el navegador y manejas con elegancia cualquier error que surja si no hay soporte disponible. Por ejemplo, un modo fuera de línea con la ayuda del servicio _workers_ es solo un rasgo adicional que mejora la experiencia del sitio web, pero aún se puede usar perfectamente sin él. +- Adaptable: El diseño web adaptable también se aplica a las aplicaciones web progresivas, ya que ambas son principalmente para dispositivos móviles. Hay una gran variedad de dispositivos con navegadores — es importante preparar tu sitio web para que funcione en diferentes tamaños de pantalla, ventanas gráficas o densidades de píxeles, utilizando tecnologías como {{web.link("/es/docs/Mozilla/Mobile/Viewport_meta_tag", "metaetiqueta de la ventana gráfica")}}, {{web.link("/es/docs/Web/CSS/Media_Queries/Using_media_queries", "consultas de medios CSS")}}, {{web.link("/es/docs/Web/CSS/CSS_Flexible_Box_Layout", "Flexbox")}} y {{web.link("/es/docs/Web/CSS/CSS_Grid_Layout", "Rejilla CSS")}}. -

Concepto diferente: streams o transmisiones

+## Concepto diferente: _streams_ o transmisiones -

Se puede lograr un enfoque completamente diferente para la representación del lado del servidor o del cliente con la {{web.link("/es/docs/Web/API/Streams_API", "API Streams")}}. Con un poco de ayuda del servicio workers, las transmisiones pueden mejorar en gran medida la forma en que analizamos el contenido.

+Se puede lograr un enfoque completamente diferente para la representación del lado del servidor o del cliente con la {{web.link("/es/docs/Web/API/Streams_API", "API Streams")}}. Con un poco de ayuda del servicio _workers_, las transmisiones pueden mejorar en gran medida la forma en que analizamos el contenido. -

El modelo de intérprete de la aplicación requiere que todos los recursos estén disponibles antes de que el sitio web pueda comenzar a renderizarse. Es diferente con HTML, ya que el navegador ya está transmitiendo los datos y puede ver cuándo se cargan y procesan los elementos en el sitio web. Sin embargo, para que JavaScript esté "operativo", se debe descargar en su totalidad.

+El modelo de intérprete de la aplicación requiere que todos los recursos estén disponibles antes de que el sitio web pueda comenzar a renderizarse. Es diferente con HTML, ya que el navegador ya está transmitiendo los datos y puede ver cuándo se cargan y procesan los elementos en el sitio web. Sin embargo, para que JavaScript esté "operativo", se debe descargar en su totalidad. -

La API de Streams permite a los desarrolladores tener acceso directo a la transmisión de datos desde el servidor — si deseas realizar una operación en los datos (por ejemplo, agregar un filtro a un video), ya no necesitas esperar a que se complete la descarga y convertirla en un blob (o lo que sea) — puedes comenzar de inmediato. Proporciona un control detallado: la transmisión se puede iniciar, encadenar con otra transmisión, cancelar, verificar errores y más.

+La API de _Streams_ permite a los desarrolladores tener acceso directo a la transmisión de datos desde el servidor — si deseas realizar una operación en los datos (por ejemplo, agregar un filtro a un video), ya no necesitas esperar a que se complete la descarga y convertirla en un blob (o lo que sea) — puedes comenzar de inmediato. Proporciona un control detallado: la transmisión se puede iniciar, encadenar con otra transmisión, cancelar, verificar errores y más. -

En teoría, la transmisión es un mejor modelo, pero también es más complejo, y en el momento de redactar este artículo (marzo de 2018), la API de Streams todavía está en proceso y aún no está completamente disponible en ninguno de los principales navegadores. Cuando esté disponible, será la forma más rápida de servir el contenido — los beneficios serán enormes en términos de rendimiento.

+En teoría, la transmisión es un mejor modelo, pero también es más complejo, y en el momento de redactar este artículo (marzo de 2018), la API de _Streams_ todavía está en proceso y aún no está completamente disponible en ninguno de los principales navegadores. Cuando esté disponible, será la forma más rápida de servir el contenido — los beneficios serán enormes en términos de rendimiento. -

Para obtener ejemplos trabajando y más información, consulta la {{web.link("/es/docs/Web/API/Streams_API", "documentación de la API de Streams")}}.

+Para obtener ejemplos trabajando y más información, consulta la {{web.link("/es/docs/Web/API/Streams_API", "documentación de la API de Streams")}}. -

Estructura de nuestra aplicación de ejemplo

+## Estructura de nuestra aplicación de ejemplo -

La estructura del sitio web js13kPWA es bastante simple: consta de un solo archivo HTML (index.html) con estilo CSS básico (style.css) y algunas imágenes, scripts y tipos de letra. La estructura de la carpeta se ve así:

+La estructura del sitio web [js13kPWA](https://mdn.github.io/pwa-examples/js13kpwa/) es bastante simple: consta de un solo archivo HTML ([index.html](https://github.com/mdn/pwa-examples/blob/master/js13kpwa/index.html)) con estilo CSS básico ([style.css](https://github.com/mdn/pwa-examples/blob/master/js13kpwa/style.css)) y algunas imágenes, scripts y tipos de letra. La estructura de la carpeta se ve así: -

Estructura del directorio de js13kPWA.

+![Estructura del directorio de js13kPWA.](https://mdn.mozillademos.org/files/15925/js13kpwa-directory.png) -

El HTML

+### El HTML -

Desde el punto de vista HTML, el intérprete de la aplicación es todo lo que está fuera de la sección de contenido:

+Desde el punto de vista HTML, el intérprete de la aplicación es todo lo que está fuera de la sección de contenido: -
<!DOCTYPE html>
-<html lang="en">
-<head>
-	<meta charset="utf-8">
-	<title>js13kGames — Entradas del marco A</title>
-	<meta name="description" content="Una lista de las entradas del marco A enviadas a la competencia js13kGames 2017, que se utiliza como ejemplo para los artículos de MDN sobre Aplicaciones Web Progresivas">
-	<meta name="author" content="end3r">
-	<meta name="theme-color" content="#B12A34">
-	<meta name="viewport" content="width=device-width, initial-scale=1">
-	<meta property="og:image" content="icons/icon-512.png">
-	<link rel="shortcut icon" href="favicon.ico">
-	<link rel="stylesheet" href="style.css">
-	<link rel="manifest" href="js13kpwa.webmanifest">
-	<script src="data/games.js" defer></script>
-	<script src="app.js" defer></script>
-</head>
-<body>
-<header>
-	<p><a class="logo" href="http://js13kgames.com"><img src="img/js13kgames.png" alt="js13kGames"></a></p>
-</header>
-<main>
-	<h1>js13kGames — Entradas del marco A</h1>
-	<p class="description">Lista de juegos enviada a <a href="http://js13kgames.com/aframe">categoría Marco A</a> en la competencia de <a href="http://2017.js13kgames.com">js13kGames 2017</a>. Puedes <a href="https://github.com/mdn/pwa-examples/blob/master/js13kpwa">bifurcar js13kPWA en GitHub</a> para revisar su código fuente.</p>
-	<button id="notifications">Solicitar notificaciones ficticias</button>
-	<section id="content">
+```html
+
+
+
+	
+	js13kGames — Entradas del marco A
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+
+
+
+

+
+
+

js13kGames — Entradas del marco A

+

Lista de juegos enviada a categoría Marco A en la competencia de js13kGames 2017. Puedes bifurcar js13kPWA en GitHub para revisar su código fuente.

+ +
// Contenido insertado aquí - </section> -</main> -<footer> - <p>© js13kGames 2012-2020, creado y mantenido por <a href="http://end3r.com">Andrzej Mazur</a> de <a href="http://enclavegames.com">Enclave Games</a>.</p> -</footer> -</body> -</html>
- -

La sección {{HTMLElement("head")}} contiene información básica como título, descripción y enlaces a CSS, manifiesto web, archivo JS de contenido de juegos y app.js; ahí es donde se inicia nuestra aplicación JavaScript. El {{HTMLElement("body")}} se divide en {{HTMLElement("header")}} (que contiene la imagen vinculada), {{HTMLElement("main")}} de la página (con título, descripción y lugar para el contenido) y {{HTMLElement("footer")}} (derechos de autor y enlaces).

- -

El único trabajo de la aplicación es enumerar todas las entradas del Marco A de la competencia js13kGames 2017. Como puedes ver, es un sitio web muy común de una página — el objetivo es tener algo simple para que podamos centrarnos en la implementación de las características reales de PWA.

- -

El CSS

- -

El CSS también es lo más sencillo posible: usa {{CSSxRef("@font-face")}} para cargar y usar un tipo de letra personalizado, y aplica un estilo simple de los elementos HTML. El enfoque general es que el diseño se vea bien tanto en dispositivos móviles (con un enfoque de diseño web adaptable) como en dispositivos de escritorio.

- -

El main de la aplicación JavaScript

- -

El archivo app.js hace algunas cosas que veremos de cerca en los próximos artículos. En primer lugar, genera el contenido en base a esta plantilla:

- -
var template = "<article>\n\
-    <img src='data/img/SLUG.jpg' alt='NAME'>\n\
-    <h3>#POS. NAME</h3>\n\
-    <ul>\n\
-    <li><span>Author:</span> <strong>AUTHOR</strong></li>\n\
-    <li><span>Twitter:</span> <a href='https://twitter.com/TWITTER'>@TWITTER</a></li>\n\
-    <li><span>Website:</span> <a href='http://WEBSITE/'>WEBSITE</a></li>\n\
-    <li><span>GitHub:</span> <a href='https://GITHUB'>GITHUB</a></li>\n\
-    <li><span>More:</span> <a href='http://js13kgames.com/entries/SLUG'>js13kgames.com/entries/SLUG</a></li>\n\
-    </ul>\n\
-</article>";
+	
+
+
+
+
+```
+
+La sección {{HTMLElement("head")}} contiene información básica como título, descripción y enlaces a CSS, manifiesto web, archivo JS de contenido de juegos y app.js; ahí es donde se inicia nuestra aplicación JavaScript. El {{HTMLElement("body")}} se divide en {{HTMLElement("header")}} (que contiene la imagen vinculada), {{HTMLElement("main")}} de la página (con título, descripción y lugar para el contenido) y {{HTMLElement("footer")}} (derechos de autor y enlaces).
+
+El único trabajo de la aplicación es enumerar todas las entradas del Marco A de la competencia js13kGames 2017. Como puedes ver, es un sitio web muy común de una página — el objetivo es tener algo simple para que podamos centrarnos en la implementación de las características reales de PWA.
+
+### El CSS
+
+El CSS también es lo más sencillo posible: usa {{CSSxRef("@font-face")}} para cargar y usar un tipo de letra personalizado, y aplica un estilo simple de los elementos HTML. El enfoque general es que el diseño se vea bien tanto en dispositivos móviles (con un enfoque de diseño web adaptable) como en dispositivos de escritorio.
+
+### El `main` de la aplicación JavaScript
+
+El archivo `app.js` hace algunas cosas que veremos de cerca en los próximos artículos. En primer lugar, genera el contenido en base a esta plantilla:
+
+```js
+var template = "";
 var content = '';
-for(var i=0; i<games.length; i++) {
+for(var i=0; i','-');
     content += entry;
 };
-document.getElementById('content').innerHTML = content;
+document.getElementById('content').innerHTML = content; +``` -

A continuación, registra un servicio works:

+A continuación, registra un servicio _works_: -
if('serviceWorker' in navigator) {
+```js
+if('serviceWorker' in navigator) {
     navigator.serviceWorker.register('/pwa-examples/js13kpwa/sw.js');
-};
+}; +``` -

El siguiente bloque de código solicita permiso para recibir notificaciones cuando se hace clic en un botón:

+El siguiente bloque de código solicita permiso para recibir notificaciones cuando se hace clic en un botón: -
var button = document.getElementById("notifications");
+```js
+var button = document.getElementById("notifications");
 button.addEventListener('click', function(e) {
     Notification.requestPermission().then(function(result) {
         if(result === 'granted') {
             randomNotification();
         }
     });
-});
+}); +``` -

El último bloque crea notificaciones que muestran un elemento seleccionado al azar de la lista de juegos:

+El último bloque crea notificaciones que muestran un elemento seleccionado al azar de la lista de juegos: -
function randomNotification() {
+```js
+function randomNotification() {
     var randomItem = Math.floor(Math.random()*games.length);
     var notifTitle = games[randomItem].name;
     var notifBody = 'Creado por '+games[randomItem].author+'.';
@@ -177,17 +182,21 @@ button.addEventListener('click', function(e) {
     }
     var notif = new Notification(notifTitle, options);
     setTimeout(randomNotification, 30000);
-}
+} +``` -

El servicio worker

+### El servicio _worker_ -

El último archivo que veremos rápidamente es el servicio worker: sw.js — primero importa datos del archivo games.js:

+El último archivo que veremos rápidamente es el servicio _worker_: `sw.js` — primero importa datos del archivo `games.js`: -
self.importScripts('data/games.js');
+```js +self.importScripts('data/games.js'); +``` -

A continuación, crea una lista de todos los archivos que se almacenarán en caché, tanto del intérprete de la aplicación como del contenido:

+A continuación, crea una lista de todos los archivos que se almacenarán en caché, tanto del intérprete de la aplicación como del contenido: -
var cacheName = 'js13kPWA-v1';
+```js
+var cacheName = 'js13kPWA-v1';
 var appShellFiles = [
   '/pwa-examples/js13kpwa/',
   '/pwa-examples/js13kpwa/index.html',
@@ -209,14 +218,16 @@ var appShellFiles = [
   '/pwa-examples/js13kpwa/icons/icon-512.png'
 ];
 var gamesImages = [];
-for(var i=0; i<games.length; i++) {
+for(var i=0; i
+var contentToCache = appShellFiles.concat(gamesImages);
+```
 
-

El siguiente bloque instala el servicio worker, que luego almacena en caché todos los archivos contenidos en la lista anterior:

+El siguiente bloque instala el servicio _worker_, que luego almacena en caché todos los archivos contenidos en la lista anterior: -
self.addEventListener('install', function(e) {
+```js
+self.addEventListener('install', function(e) {
   console.log('[Service Worker] Install');
   e.waitUntil(
     caches.open(cacheName).then(function(cache) {
@@ -224,11 +235,13 @@ var contentToCache = appShellFiles.concat(gamesImages);
return cache.addAll(contentToCache); }) ); -});
+}); +``` -

Por último, el servicio worker obtiene contenido de la caché si está disponible allí, lo cual proporciona una funcionalidad fuera de línea:

+Por último, el servicio _worker_ obtiene contenido de la caché si está disponible allí, lo cual proporciona una funcionalidad fuera de línea: -
self.addEventListener('fetch', function(e) {
+```js
+self.addEventListener('fetch', function(e) {
   e.respondWith(
     caches.match(e.request).then(function(r) {
       console.log('[Servicio Worker] Obteniendo recurso: '+e.request.url);
@@ -241,13 +254,15 @@ var contentToCache = appShellFiles.concat(gamesImages);
}); }) ); -});
+}); +``` -

Los datos de JavaScript

+### Los datos de JavaScript -

Los datos de los juegos están presentes en el directorio data en forma de un objeto JavaScript (games.js):

+Los datos de los juegos están presentes en el directorio _data_ en forma de un objeto JavaScript ([`games.js`](https://github.com/mdn/pwa-examples/blob/master/js13kpwa/data/games.js)): -
var games = [
+```js
+var games = [
     {
         slug: 'perdido-en-el-ciberespacio',
         name: 'Perdido en el ciberespacio',
@@ -273,14 +288,15 @@ var contentToCache = appShellFiles.concat(gamesImages);
website: '', github: 'github.com/coderprateek/Emma-3D' } -]; +]; +``` -

Cada entrada tiene su propia imagen en el directorio data/img. Este es nuestro contenido, cargado en la sección de contenido con JavaScript.

+Cada entrada tiene su propia imagen en el directorio `data/img`. Este es nuestro contenido, cargado en la sección de contenido con JavaScript. -

Siguiente

+## Siguiente -

En el próximo artículo veremos con más detalle cómo se almacenan en caché el intérprete de la aplicación y el contenido para su uso sin conexión con la ayuda del servicio worker.

+En el próximo artículo veremos con más detalle cómo se almacenan en caché el intérprete de la aplicación y el contenido para su uso sin conexión con la ayuda del servicio _worker_. -

{{PreviousMenuNext("Web/Progressive_web_apps/Introduction", "Web/Progressive_web_apps/Offline_Service_workers", "Web/Progressive_web_apps")}}

+{{PreviousMenuNext("Web/Progressive_web_apps/Introduction", "Web/Progressive_web_apps/Offline_Service_workers", "Web/Progressive_web_apps")}} -

{{QuickLinksWithSubpages("/es/docs/Web/Progressive_web_apps/")}}

+{{QuickLinksWithSubpages("/es/docs/Web/Progressive_web_apps/")}} diff --git a/files/es/web/progressive_web_apps/index.md b/files/es/web/progressive_web_apps/index.md index 15a30e63a442a4..4b9d1ae24caf9a 100644 --- a/files/es/web/progressive_web_apps/index.md +++ b/files/es/web/progressive_web_apps/index.md @@ -10,97 +10,80 @@ tags: - aplicación translation_of: Web/Progressive_web_apps --- +![Logotipo de la comunidad PWA](https://mdn.mozillademos.org/files/16742/pwa.png)Las **_aplicaciones web progresivas_** (mejor conocidas como **PWA**s por «_**P**rogressive **W**eb **A**pps_») son aplicaciones web que utilizan APIs y funciones emergentes del navegador web junto a una estrategia tradicional de mejora progresiva para ofrecer una aplicación nativa —como la experiencia del usuario para aplicaciones web multiplataforma. Las aplicaciones web progresivas son un patrón de diseño útil, aunque no son un estándar formalizado. Se puede pensar que PWA es similar a AJAX u otros patrones similares que abarcan un conjunto de atributos de aplicación, incluido el uso de tecnologías y técnicas web específicas. Este conjunto de documentos te dice todo lo que necesitas saber sobre ellas. -

Logotipo de la comunidad PWALas aplicaciones web progresivas (mejor conocidas como PWAs por «Progressive Web Apps») son aplicaciones web que utilizan APIs y funciones emergentes del navegador web junto a una estrategia tradicional de mejora progresiva para ofrecer una aplicación nativa —como la experiencia del usuario para aplicaciones web multiplataforma. Las aplicaciones web progresivas son un patrón de diseño útil, aunque no son un estándar formalizado. Se puede pensar que PWA es similar a AJAX u otros patrones similares que abarcan un conjunto de atributos de aplicación, incluido el uso de tecnologías y técnicas web específicas. Este conjunto de documentos te dice todo lo que necesitas saber sobre ellas.

- -

Para poder llamar PWA a una aplicación web, técnicamente hablando debe tener las siguientes características: {{web.link("/es/docs/Web/Security/Secure_Contexts", "Contexto seguro")}} ({{Glossary("HTTPS")}}), uno o más {{web.link("/es/docs/Web/API/Service_Worker_API", "Servicio Workers")}} y un {{web.link("/es/docs/Web/Manifest", "archivo de manifiesto")}}.

- -
-
{{web.link("/es/docs/Web/Security/Secure_Contexts", "Contexto seguro")}} ({{Glossary("HTTPS")}})
-
La aplicación web se debe servir a través de una red segura. Ser un sitio seguro no solo es una buena práctica, sino que también establece tu aplicación web como un sitio confiable, especialmente si los usuarios necesitan realizar transacciones seguras. La mayoría de las funciones relacionadas con una PWA, como la geolocalización e incluso los servicios workers, solamente están disponibles cuando la aplicación se ha cargado mediante HTTPS.
-
{{web.link("/es/docs/Web/API/Service_Worker_API", "Servicio workers")}}
-
Un servicio worker es un script que permite interceptar y controlar cómo un navegador web maneja tus solicitudes de red y el almacenamiento en caché de activos. Con los servicios worker, los desarrolladores web pueden crear páginas web rápidas y fiables junto con experiencias fuera de línea.
-
{{web.link("/es/docs/Web/Manifest", "El archivo manifest")}}
-
Un archivo {{Glossary("JSON")}} que controla cómo se muestra tu aplicación al usuario y garantiza que las aplicaciones web progresivas sean detectables. Describe el nombre de la aplicación, la URL de inicio, los iconos y todos los demás detalles necesarios para transformar el sitio web en un formato similar al de una aplicación.
-
- -

Ventajas de PWA

- -

Las PWA deben ser detectables, instalables, enlazables, independientes de la red, progresivas, reconectables, responsivas y seguras. Para obtener más información sobre lo que esto significa, lee {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Ventajas de las aplicaciones web progresivas")}}.

- -

Para saber cómo implementar PWA, lee la {{web.link("/es/docs/Web/Progressive_web_apps/Developer_guide", "guía para desarrolladores de PWA")}}.

- -

Documentación

- -

<-- La lista automática temporal a continuación se reemplazará pronto -->

- -

{{LandingPageListSubpages}}

- -
-

Todo lo que se encuentra debajo de este punto es un remanente de la versión anterior de esta página y se renovará a medida que se revise el resto del contenido.

-
- -

Guías del núcleo de PWA

- -

Las siguientes guías te muestran lo que debes hacer para implementar una PWA, examinando un ejemplo simple y mostrándote cómo funcionan todas las piezas.

- -
    -
  1. {{web.link("/es/docs/Web/Progressive_web_apps/Introduction", "Introducción a las aplicaciones web progresivas")}}
  2. -
  3. {{web.link("/es/docs/Web/Progressive_web_apps/App_structure", "Estructura de la aplicación web progresiva")}}
  4. -
  5. {{web.link("/es/docs/Web/Progressive_web_apps/Offline_Service_workers", "Hacer que las PWAs funcionen sin conexión con el servicio de workers")}}
  6. -
  7. {{web.link("/es/docs/Web/Progressive_web_apps/Installable_PWAs", "Cómo hacer que las PWAs se puedan instalar")}}
  8. -
  9. {{web.link("/es/docs/Web/Progressive_web_apps/Re-engageable_Notifications_Push", "Cómo hacer que las PWAs puedan volver a interactuar usando Notificaciones y Push")}}
  10. -
  11. {{web.link("/es/docs/Web/Progressive_web_apps/Loading", "Carga progresiva")}}
  12. -
- -
-
-

Guías tecnológicas

- -
    -
  • {{web.link("/es/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage", "Almacenamiento del lado del cliente")}} — una extensa guía que muestra cómo y cuándo utilizar el almacenamiento web, IndexedDB y el servicio workers.
  • -
  • {{web.link("/es/docs/Web/API/Service_Worker_API/Using_Service_Workers", "Uso del servicio workers")}} — una guía más detallada que cubre la API del servicio workers.
  • -
  • {{web.link("/es/docs/Web/API/IndexedDB_API/Using_IndexedDB", "Uso de IndexedDB")}} — los fundamentos de IndexedDB, explicados en detalle.
  • -
  • {{web.link("/es/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API", "Uso de la API de almacenamiento web")}} — la API de almacenamiento web simplificada.
  • -
  • Aplicaciones web de carga instantánea con una arquitectura de intérprete de aplicaciones — una guía para usar el patrón de codificación de intérprete de App para crear aplicaciones que se cargan rápidamente.
  • -
  • {{web.link("/es/docs/Web/API/Push_API/Using_the_Push_API", "Uso de la API Push")}} — aprende los conceptos básicos de la API Web Push.
  • -
  • {{web.link("/es/docs/Web/API/Notifications_API/Using_the_Notifications_API", "Uso de la API de notificaciones")}} — notificaciones web en pocas palabras.
  • -
  • {{web.link("/es/docs/Web/Apps/Modern/Responsive/responsive_design_building_blocks", "Los componentes básicos del diseño responsivo")}} — aprende los conceptos básicos del diseño responsivo, un tema esencial para el diseño de aplicaciones modernas.
  • -
  • {{web.link("/es/docs/Web/Apps/Modern/Responsive/Mobile_first", "Primero móvil")}} — a menudo, al crear diseños de aplicaciones adaptables, tiene sentido crear el diseño móvil como predeterminado y construir diseños más anchos en la parte superior.
  • -
  • {{web.link("/es/docs/Web/Apps/Progressive/Add_to_home_screen", "Guía para agregar la pantalla de inicio")}} — aprende cómo tus aplicaciones pueden aprovechar agregar la pantalla de inicio (A2HS).
  • -
-
- -
-

Herramientas

- -
    -
  • localForage — una biblioteca de JavaScript sencilla y agradable para almacenar datos en el lado del cliente de manera realmente simple, usa IndexedDB y recurre a Web SQL/Web Storage si es necesario.
  • -
  • ServiceWorkerWare — un microframework tipo Express para facilitar el desarrollo del Servicio Worker.
  • -
  • oghliner — no solo es una plantilla, sino una herramienta para implementar aplicaciones web sin conexión para Páginas de GitHub.
  • -
  • sw-precache — un módulo de node para generar código del servicio worker que precargará recursos específicos.
  • -
  • workbox: sucesor espiritual de "sw-precache" con estrategias de almacenamiento en caché más avanzadas y sencillas precargas.
  • -
  • upup: un diminuto script que garantiza que tu sitio siempre esté disponible para tus usuarios.
  • -
  • El libro de recetas para servicios worker: una serie de excelentes recetas de servicios worker que muestran cómo implementar una aplicación sin conexión, además de otros muchos concejos.
  • -
  • Extensión PWA de VS Code: una colección de todos los fragmentos de código esenciales que necesitas para crear aplicaciones web progresivas correctamente allí en tu entorno de VS Code.
  • -
-
-
- - - -
{{QuickLinksWithSubpages("/es/docs/Web/Progressive_web_apps/")}}
+Para poder llamar PWA a una aplicación web, técnicamente hablando debe tener las siguientes características: {{web.link("/es/docs/Web/Security/Secure_Contexts", "Contexto seguro")}} (**{{Glossary("HTTPS")}}**), uno o más {{web.link("/es/docs/Web/API/Service_Worker_API", "Servicio Workers")}} y un {{web.link("/es/docs/Web/Manifest", "archivo de manifiesto")}}. + +- {{web.link("/es/docs/Web/Security/Secure_Contexts", "Contexto seguro")}} ({{Glossary("HTTPS")}}) + - : La aplicación web se debe servir a través de una red segura. Ser un sitio seguro no solo es una buena práctica, sino que también establece tu aplicación web como un sitio confiable, especialmente si los usuarios necesitan realizar transacciones seguras. La mayoría de las funciones relacionadas con una PWA, como la geolocalización e incluso los servicios _workers_, solamente están disponibles cuando la aplicación se ha cargado mediante HTTPS. +- {{web.link("/es/docs/Web/API/Service_Worker_API", "Servicio workers")}} + - : Un servicio _worker_ es un script que permite interceptar y controlar cómo un navegador web maneja tus solicitudes de red y el almacenamiento en caché de activos. Con los servicios _worker_, los desarrolladores web pueden crear páginas web rápidas y fiables junto con experiencias fuera de línea. +- {{web.link("/es/docs/Web/Manifest", "El archivo manifest")}} + - : Un archivo {{Glossary("JSON")}} que controla cómo se muestra tu aplicación al usuario y garantiza que las aplicaciones web progresivas sean detectables. Describe el nombre de la aplicación, la URL de inicio, los iconos y todos los demás detalles necesarios para transformar el sitio web en un formato similar al de una aplicación. + +## Ventajas de PWA + +Las PWA deben ser detectables, instalables, enlazables, independientes de la red, progresivas, reconectables, responsivas y seguras. Para obtener más información sobre lo que esto significa, lee {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Ventajas de las aplicaciones web progresivas")}}. + +Para saber cómo implementar PWA, lee la {{web.link("/es/docs/Web/Progressive_web_apps/Developer_guide", "guía para desarrolladores de PWA")}}. + +## Documentación + +**<-- La lista automática temporal a continuación se reemplazará pronto -->** + +{{LandingPageListSubpages}} + +> **Advertencia:** **Todo lo que se encuentra debajo de este punto es un remanente de la versión anterior de esta página y se renovará a medida que se revise el resto del contenido.** + +## Guías del núcleo de PWA + +Las siguientes guías te muestran lo que debes hacer para implementar una PWA, examinando un ejemplo simple y mostrándote cómo funcionan todas las piezas. + +1. {{web.link("/es/docs/Web/Progressive_web_apps/Introduction", "Introducción a las aplicaciones web progresivas")}} +2. {{web.link("/es/docs/Web/Progressive_web_apps/App_structure", "Estructura de la aplicación web progresiva")}} +3. {{web.link("/es/docs/Web/Progressive_web_apps/Offline_Service_workers", "Hacer que las PWAs funcionen sin conexión con el servicio de workers")}} +4. {{web.link("/es/docs/Web/Progressive_web_apps/Installable_PWAs", "Cómo hacer que las PWAs se puedan instalar")}} +5. {{web.link("/es/docs/Web/Progressive_web_apps/Re-engageable_Notifications_Push", "Cómo hacer que las PWAs puedan volver a interactuar usando Notificaciones y Push")}} +6. {{web.link("/es/docs/Web/Progressive_web_apps/Loading", "Carga progresiva")}} + +## Guías tecnológicas + +- {{web.link("/es/docs/Learn/JavaScript/Client-side_web_APIs/Client-side_storage", "Almacenamiento del lado del cliente")}} — una extensa guía que muestra cómo y cuándo utilizar el almacenamiento web, `IndexedDB` y el servicio _workers_. +- {{web.link("/es/docs/Web/API/Service_Worker_API/Using_Service_Workers", "Uso del servicio workers")}} — una guía más detallada que cubre la API del servicio _workers_. +- {{web.link("/es/docs/Web/API/IndexedDB_API/Using_IndexedDB", "Uso de IndexedDB")}} — los fundamentos de `IndexedDB`, explicados en detalle. +- {{web.link("/es/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API", "Uso de la API de almacenamiento web")}} — la API de almacenamiento web simplificada. +- [Aplicaciones web de carga instantánea con una arquitectura de intérprete de aplicaciones](https://developers.google.com/web/updates/2015/11/app-shell) — una guía para usar el patrón de codificación de intérprete de App para crear aplicaciones que se cargan rápidamente. +- {{web.link("/es/docs/Web/API/Push_API/Using_the_Push_API", "Uso de la API Push")}} — aprende los conceptos básicos de la API Web `Push`. +- {{web.link("/es/docs/Web/API/Notifications_API/Using_the_Notifications_API", "Uso de la API de notificaciones")}} — notificaciones web en pocas palabras. +- {{web.link("/es/docs/Web/Apps/Modern/Responsive/responsive_design_building_blocks", "Los componentes básicos del diseño responsivo")}} — aprende los conceptos básicos del diseño responsivo, un tema esencial para el diseño de aplicaciones modernas. +- {{web.link("/es/docs/Web/Apps/Modern/Responsive/Mobile_first", "Primero móvil")}} — a menudo, al crear diseños de aplicaciones adaptables, tiene sentido crear el diseño móvil como predeterminado y construir diseños más anchos en la parte superior. +- {{web.link("/es/docs/Web/Apps/Progressive/Add_to_home_screen", "Guía para agregar la pantalla de inicio")}} — aprende cómo tus aplicaciones pueden aprovechar agregar la pantalla de inicio (A2HS). + +## Herramientas + +- [localForage](https://localforage.github.io/localForage/) — una biblioteca de JavaScript sencilla y agradable para almacenar datos en el lado del cliente de manera realmente simple, usa `IndexedDB` y recurre a `Web SQL`/`Web Storage` si es necesario. +- [`ServiceWorkerWare`](https://github.com/fxos-components/serviceworkerware) — un _microframework tipo Express_ para facilitar el desarrollo del Servicio _Worker_. +- [`oghliner`](https://github.com/mozilla/oghliner) — no solo es una plantilla, sino una herramienta para implementar aplicaciones web sin conexión para Páginas de GitHub. +- [`sw-precache`](https://github.com/GoogleChrome/sw-precache) — un módulo de `node` para generar código del servicio _worker que precargará recursos específicos._ +- _[workbox](https://github.com/GoogleChrome/workbox): sucesor espiritual de "sw-precache" con estrategias de almacenamiento en caché más avanzadas y sencillas precargas._ +- _[upup](https://www.talater.com/upup/): un diminuto script que garantiza que tu sitio siempre esté disponible para tus usuarios._ +- _[El libro de recetas para servicios \_worker_](https://serviceworke.rs/): una serie de excelentes recetas de servicios _worker_ que muestran cómo implementar una aplicación sin conexión, además de otros muchos concejos.\_ +- _[Extensión PWA de VS Code](https://marketplace.visualstudio.com/items?itemName=mayeedwin.vscode-pwa): una colección de todos los fragmentos de código esenciales que necesitas para crear aplicaciones web progresivas correctamente allí en tu entorno de VS Code._ + + + +- _[Aplicaciones web progresivas](https://developers.google.com/web/progressive-web-apps) en Google Developers._ +- _[Aplicaciones web progresivas: escapar de las pestañas sin perder el alma](https://medium.com/@slightlylate/progressive-apps-escaping-tabs-without-losing-our-soul-3b93a8561955#.6czgj0myh) de Alex Russell._ +- _[Lista de verificación de aplicaciones web progresivas](https://developers.google.com/web/progressive-web-apps/checklist)._ +- _[La herramienta Lighthouse](https://developers.google.com/web/tools/lighthouse) de Google._ +- _[Herramientas para crear aplicaciones web progresivas con Angular](https://github.com/angular/mobile-toolkit)._ +- _Kit de guía de React PWA._ +- _[Sitio web de la Pokedex sin conexión](https://pokedex.org/)._ +- _[Lectores de noticias Hacker como aplicaciones web progresivas](https://hnpwa.com/)._ +- _[Aplicación web progresiva: ventajas en pocas palabras](https://goingmeta.io/progressive-web-app/)_ +- _[Por qué las aplicaciones web progresivas son el futuro de la web móvil (investigación de 2019)](https://ymedialabs.com/progressive-web-apps)._ +- _[Aplicaciones web progresivas: todo lo que necesitas saber](https://www.csschopper.com/blog/progressive-web-apps-everything-you-need-to-know/)_ +- _[Colección de recursos, laboratorios de código y herramientas que necesitas para crear PWAs por parte del equipo de pwafire.org](https://pwafire.org)_ +- _[Configuración de tu entorno de desarrollo de aplicaciones web progresivas](https://github.com/pwafire/pwadev-tips)_ + +_{{QuickLinksWithSubpages("/es/docs/Web/Progressive_web_apps/")}}_ diff --git a/files/es/web/progressive_web_apps/installable_pwas/index.md b/files/es/web/progressive_web_apps/installable_pwas/index.md index 89945749047dea..bc391e8d1da7be 100644 --- a/files/es/web/progressive_web_apps/installable_pwas/index.md +++ b/files/es/web/progressive_web_apps/installable_pwas/index.md @@ -11,44 +11,41 @@ tags: - progresiva translation_of: Web/Progressive_web_apps/Installable_PWAs --- -
{{PreviousMenuNext("Web/Apps/Progressive/Offline_Service_workers", "Web/Apps/Progressive/Re-engageable_Notifications_Push", "Web/Apps/Progressive")}}
+{{PreviousMenuNext("Web/Apps/Progressive/Offline_Service_workers", "Web/Apps/Progressive/Re-engageable_Notifications_Push", "Web/Apps/Progressive")}} -

En el último artículo, leímos cómo la aplicación de ejemplo, js13kPWA, funciona sin conexión gracias a su {{web.link("/es/docs/Web/API/Service_Worker_API", "servicio worker")}}, pero podemos ir aún más lejos y permitir que los usuarios instalen la aplicación web en los navegadores móviles y de escritorio que lo admitan. Los usuarios pueden iniciar la aplicación web instalada como si fuera una aplicación nativa. Este artículo explica cómo lograr esto usando el manifiesto de la aplicación web.

+En el último artículo, leímos cómo la aplicación de ejemplo, [js13kPWA](https://mdn.github.io/pwa-examples/js13kpwa/), funciona sin conexión gracias a su {{web.link("/es/docs/Web/API/Service_Worker_API", "servicio worker")}}, pero podemos ir aún más lejos y permitir que los usuarios instalen la aplicación web en los navegadores móviles y de escritorio que lo admitan. Los usuarios pueden iniciar la aplicación web instalada como si fuera una aplicación nativa. Este artículo explica cómo lograr esto usando el manifiesto de la aplicación web. -

Estas tecnologías permiten que la aplicación se inicie directamente desde la pantalla de inicio del dispositivo, en lugar de que el usuario tenga que abrir el navegador y luego navegar al sitio utilizando un marcador o escribiendo la URL. Tu aplicación web se puede sentar junto a aplicaciones nativas como ciudadanos de primera clase. Esto facilita el acceso a la aplicación web; Además, puedes especificar que la aplicación se inicie en modo de pantalla completa o independiente, eliminando así la interfaz de usuario predeterminada del navegador que de otro modo estaría presente, creando una sensación aún más fluida y similar a la nativa.

+Estas tecnologías permiten que la aplicación se inicie directamente desde la pantalla de inicio del dispositivo, en lugar de que el usuario tenga que abrir el navegador y luego navegar al sitio utilizando un marcador o escribiendo la URL. Tu aplicación web se puede sentar junto a aplicaciones nativas como ciudadanos de primera clase. Esto facilita el acceso a la aplicación web; Además, puedes especificar que la aplicación se inicie en modo de pantalla completa o independiente, eliminando así la interfaz de usuario predeterminada del navegador que de otro modo estaría presente, creando una sensación aún más fluida y similar a la nativa. -

Requisitos

+## Requisitos -

Para que el sitio web sea instalable, necesitas lo siguiente:

+Para que el sitio web sea instalable, necesitas lo siguiente: -
    -
  • Un manifiesto web, con los {{web.link("/es/Apps/Progressive/Add_to_home_screen#Manifest", "campos correctos completados")}}
  • -
  • Que sitio web se sirva desde un dominio seguro (HTTPS)
  • -
  • Un icono para representar la aplicación en el dispositivo.
  • -
  • Un {{web.link("/es/docs/Web/API/Service_Worker_API", "servicio worker")}} registrado para permitir que la aplicación funcione sin conexión (actualmente, esto solo lo requiere Chrome para Android)
  • -
+- Un manifiesto web, con los {{web.link("/es/Apps/Progressive/Add_to_home_screen#Manifest", "campos correctos completados")}} +- Que sitio web se sirva desde un dominio seguro (HTTPS) +- Un icono para representar la aplicación en el dispositivo. +- Un {{web.link("/es/docs/Web/API/Service_Worker_API", "servicio worker")}} registrado para permitir que la aplicación funcione sin conexión (actualmente, esto solo lo requiere Chrome para Android) -
-

Actualmente, solo los navegadores basados en Chromium tal como Chrome, Edge y Samsung Internet requieren el servicio worker. Si desarrollas tu aplicación con Firefox, ten en cuenta que necesitarás un servicio worker para que sea compatible con los navegadores basados ​​en Chromium.

-
+> **Nota:** Actualmente, solo los navegadores basados en Chromium tal como Chrome, Edge y Samsung Internet requieren el servicio _worker_. Si desarrollas tu aplicación con Firefox, ten en cuenta que necesitarás un servicio _worker_ para que sea compatible con los navegadores basados ​​en Chromium. -

El archivo de manifiesto

+### El archivo de manifiesto -

El elemento clave es un archivo de manifiesto web, que enumera toda la información sobre el sitio web en formato JSON.

+El elemento clave es un archivo de manifiesto web, que enumera toda la información sobre el sitio web en formato JSON. -

Suele residir en el directorio raíz de una aplicación web. Contiene información útil, como el título de la aplicación, rutas a iconos de diferentes tamaños que se pueden usar para representar la aplicación en un sistema operativo (como un icono en la pantalla de inicio, una entrada en el menú Inicio o un icono en el escritorio) y un color de fondo para usar en las pantallas de carga o de presentación. Esta información es necesaria para que el navegador presente la aplicación web correctamente durante el proceso de instalación, así como dentro de la interfaz de inicio de la aplicación del dispositivo, como la pantalla de inicio de un dispositivo móvil.

+Suele residir en el directorio raíz de una aplicación web. Contiene información útil, como el título de la aplicación, rutas a iconos de diferentes tamaños que se pueden usar para representar la aplicación en un sistema operativo (como un icono en la pantalla de inicio, una entrada en el menú Inicio o un icono en el escritorio) y un color de fondo para usar en las pantallas de carga o de presentación. Esta información es necesaria para que el navegador presente la aplicación web correctamente durante el proceso de instalación, así como dentro de la interfaz de inicio de la aplicación del dispositivo, como la pantalla de inicio de un dispositivo móvil. -

El archivo js13kpwa.webmanifest de la aplicación web js13kPWA se incluye en el bloque {{HTMLElement("head")}} del archivo index.html de la aplicación web usando la siguiente línea de código:

+El archivo `js13kpwa.webmanifest` de la aplicación web [js13kPWA](https://mdn.github.io/pwa-examples/js13kpwa/) se incluye en el bloque {{HTMLElement("head")}} del archivo `index.html` de la aplicación web usando la siguiente línea de código: -
<link rel="manifest" href="js13kpwa.webmanifest">
+```html + +``` -
-

Hay algunos tipos comunes de archivos de manifiesto que se han utilizado en el pasado: manifest.webapp era popular en los manifiestos de aplicaciones de Firefox OS, y muchos usan manifest.json para manifestar aplicaciones web ya que el contenido está organizado en una estructura JSON. Sin embargo, el formato de archivo .webmanifest se menciona explícitamente en la especificación del manifiesto W3C, por lo tanto ese es el que usaremos aquí.

-
+> **Nota:** Hay algunos tipos comunes de archivos de manifiesto que se han utilizado en el pasado: `manifest.webapp` era popular en los manifiestos de aplicaciones de Firefox OS, y muchos usan `manifest.json` para manifestar aplicaciones web ya que el contenido está organizado en una estructura JSON. Sin embargo, el formato de archivo `.webmanifest` se menciona explícitamente en la [especificación del manifiesto W3C](https://w3c.github.io/manifest/), por lo tanto ese es el que usaremos aquí. -

El contenido del archivo se ve así:

+El contenido del archivo se ve así: -
{
+```json
+{
   "name": "js13kGames Progressive Web App",
   "short_name": "js13kPWA",
   "description": "Aplicación web progresiva que enumera los juegos enviados a la categoría del marco A en la competencia js13kGames del 2017.",
@@ -70,61 +67,59 @@ translation_of: Web/Progressive_web_apps/Installable_PWAs
   "theme_color": "#B12A34",
   "background_color": "#B12A34"
 }
-
+``` -

La mayoría de los campos se explican por sí mismos, pero para estar seguros de que estamos en la misma página:

+La mayoría de los campos se explican por sí mismos, pero para estar seguros de que estamos en la misma página: -
    -
  • name: El nombre completo de tu aplicación web.
  • -
  • short_name: Nombre corto que se mostrará en la pantalla de inicio.
  • -
  • description: Una o dos frases que explican lo que hace tu aplicación.
  • -
  • icons: Gran cantidad de información de íconos — URLs de origen, tamaños y tipos. Asegúrate de incluir al menos algunos, de modo que se elija el que mejor se adapte al dispositivo del usuario.
  • -
  • start_url: El documento index que se iniciará al arrancar la aplicación.
  • -
  • display: Cómo se muestra la aplicación; puede ser fullscreen (pantalla completa), standalone (independiente), minimal-ui (interfaz de usuario mínima) o browser (navegador).
  • -
  • theme_color: Un color primario para la interfaz de usuario, utilizado por el sistema operativo.
  • -
  • background_color: Un color que se utiliza como fondo predeterminado de la aplicación, usado durante la instalación y en la pantalla de bienvenida.
  • -
+- `name`: El nombre completo de tu aplicación web. +- `short_name`: Nombre corto que se mostrará en la pantalla de inicio. +- `description`: Una o dos frases que explican lo que hace tu aplicación. +- `icons`: Gran cantidad de información de íconos — URLs de origen, tamaños y tipos. Asegúrate de incluir al menos algunos, de modo que se elija el que mejor se adapte al dispositivo del usuario. +- `start_url`: El documento `index` que se iniciará al arrancar la aplicación. +- `display`: Cómo se muestra la aplicación; puede ser `fullscreen` (pantalla completa), `standalone` (independiente), `minimal-ui` (interfaz de usuario mínima) o `browser` (navegador). +- `theme_color`: Un color primario para la interfaz de usuario, utilizado por el sistema operativo. +- `background_color`: Un color que se utiliza como fondo predeterminado de la aplicación, usado durante la instalación y en la pantalla de bienvenida. -

Un manifiesto web mínimo debe tener al menos un name y un campo icons con al menos un icono definido; ese icono debe tener al menos los subcampos src, sizes y type también. Más allá de eso, todo es opcional, aunque se recomiendan los campos description, short_name y start_url. Incluso, hay más campos que puedes usar de los que se enumeran anteriormente; asegúrate de consultar la {{web.link("/es/docs/Web/Manifest", "referencia del manifiesto de la aplicación web")}} para obtener más detalles.

+Un manifiesto web mínimo debe tener al menos un `name` y un campo `icons` con al menos un icono definido; ese icono debe tener al menos los subcampos `src`, `sizes` y `type` también. Más allá de eso, todo es opcional, aunque se recomiendan los campos `description`, `short_name` y `start_url`. Incluso, hay más campos que puedes usar de los que se enumeran anteriormente; asegúrate de consultar la {{web.link("/es/docs/Web/Manifest", "referencia del manifiesto de la aplicación web")}} para obtener más detalles. -

Agregar a la pantalla inicial

+## Agregar a la pantalla inicial -

"Agregar a la pantalla de inicio" (o aapi para abreviar) es una función implementada por los navegadores móviles que toma la información que se encuentra en el manifiesto de una aplicación web y la usa para representar la aplicación en la pantalla de inicio del dispositivo con un icono y un nombre. Esto solo funciona si la aplicación cumple con todos los requisitos necesarios, como se describió anteriormente.

+"Agregar a la pantalla de inicio" (o _aapi_ para abreviar) es una función implementada por los navegadores móviles que toma la información que se encuentra en el manifiesto de una aplicación web y la usa para representar la aplicación en la pantalla de inicio del dispositivo con un icono y un nombre. Esto solo funciona si la aplicación cumple con todos los requisitos necesarios, como se describió anteriormente. -

Cuando el usuario visita la PWA con un navegador móvil compatible, debe mostrar una notificación (como un pasquín o un cuadro de diálogo) que indique que es posible instalar la aplicación como una PWA.

+Cuando el usuario visita la PWA con un navegador móvil compatible, debe mostrar una notificación (como un pasquín o un cuadro de diálogo) que indique que es posible instalar la aplicación como una PWA. -

Agregar a la ventana emergente de la pantalla de inicio de js13kPWA.

+![Agregar a la ventana emergente de la pantalla de inicio de js13kPWA.](https://mdn.mozillademos.org/files/15928/js13kpwa-icon.png) -

Una vez que el usuario indica que desea continuar con la instalación, se muestra el pasquín de instalación. Ese pasquín es creado automáticamente por el navegador, basado en la información del archivo de manifiesto. Por ejemplo, el mensaje incluye el nombre y el icono de la aplicación.

+Una vez que el usuario indica que desea continuar con la instalación, se muestra el pasquín de instalación. Ese pasquín es creado automáticamente por el navegador, basado en la información del archivo de manifiesto. Por ejemplo, el mensaje incluye el nombre y el icono de la aplicación. -

Pancarta de instalación de js13kPWA.

+![Pancarta de instalación de js13kPWA.](https://mdn.mozillademos.org/files/15927/js13kpwa-banner.png) -

Si el usuario hace clic en el botón, hay un paso final que muestra cómo se verá la aplicación y permite que el usuario elija si definitivamente desea agregar la aplicación.

+Si el usuario hace clic en el botón, hay un paso final que muestra cómo se verá la aplicación y permite que el usuario elija si definitivamente desea agregar la aplicación. -

Agregar a la ventana emergente de la pantalla de inicio de js13kPWA.

+![Agregar a la ventana emergente de la pantalla de inicio de js13kPWA.](https://mdn.mozillademos.org/files/15926/js13kpwa-add.png) -

Cuando se confirme, la aplicación se instalará en la pantalla de inicio.

+Cuando se confirme, la aplicación se instalará en la pantalla de inicio. -

Pantalla de inicio

+![Pantalla de inicio](https://mdn.mozillademos.org/files/15834/js13kpwa-installed.png) -

Ahora el usuario puede iniciar y utilizar la aplicación web como cualquier otra aplicación en su dispositivo. Dependiendo del dispositivo y el sistema operativo, el icono de la aplicación web puede tener una insignia con un pequeño icono que indica que se trata de una aplicación web. En la captura de pantalla anterior, por ejemplo, la aplicación tiene un pequeño icono de Firefox, lo cual indica que es una aplicación web que usa el entorno de ejecución de Firefox.

+Ahora el usuario puede iniciar y utilizar la aplicación web como cualquier otra aplicación en su dispositivo. Dependiendo del dispositivo y el sistema operativo, el icono de la aplicación web puede tener una insignia con un pequeño icono que indica que se trata de una aplicación web. En la captura de pantalla anterior, por ejemplo, la aplicación tiene un pequeño icono de Firefox, lo cual indica que es una aplicación web que usa el entorno de ejecución de Firefox. -

Pantalla de bienvenida

+### Pantalla de bienvenida -

En algunos navegadores, también se genera una pantalla de bienvenida a partir de la información del manifiesto, que se muestra cuando se inicia la PWA y mientras se carga.

+En algunos navegadores, también se genera una pantalla de bienvenida a partir de la información del manifiesto, que se muestra cuando se inicia la PWA y mientras se carga. -

Pantalla de bienvenida

+![Pantalla de bienvenida](https://mdn.mozillademos.org/files/15835/js13kpwa-splash.png) -

El icono y los colores del tema y fondo se utilizan para crear esta pantalla.

+El icono y los colores del tema y fondo se utilizan para crear esta pantalla. -

Resumen

+## Resumen -

En este artículo, aprendimos cómo podemos hacer que las PWAs se puedan instalar con un manifiesto web correctamente configurado, y cómo el usuario puede luego instalar la PWA con la función "agregar a la pantalla de inicio" de su navegador.

+En este artículo, aprendimos cómo podemos hacer que las PWAs se puedan instalar con un manifiesto web correctamente configurado, y cómo el usuario puede luego instalar la PWA con la función "agregar a la pantalla de inicio" de su navegador. -

Para obtener más información sobre aapi, asegúrate de leer nuestra {{web.link("/es/docs/Web/Apps/Progressive/Add_to_home_screen", "guía para agregar a la pantalla de inicio")}}. La compatibilidad con el navegador se limita actualmente a Firefox para Android 58+, Mobile Chrome y Android Webview 31+, y Opera para Android 32+, pero esto debería mejorar en un próximo futuro.

+Para obtener más información sobre _aapi_, asegúrate de leer nuestra {{web.link("/es/docs/Web/Apps/Progressive/Add_to_home_screen", "guía para agregar a la pantalla de inicio")}}. La compatibilidad con el navegador se limita actualmente a Firefox para Android 58+, Mobile Chrome y Android Webview 31+, y Opera para Android 32+, pero esto debería mejorar en un próximo futuro. -

Ahora pasemos a la última pieza del rompecabezas de PWA: usar notificaciones automáticas para compartir anuncios con el usuario y ayudarlo a volver a interactuar con tu aplicación.

+Ahora pasemos a la última pieza del rompecabezas de PWA: usar notificaciones automáticas para compartir anuncios con el usuario y ayudarlo a volver a interactuar con tu aplicación. -

{{PreviousMenuNext("Web/Apps/Progressive/Offline_Service_workers", "Web/Apps/Progressive/Re-engageable_Notifications_Push", "Web/Apps/Progressive")}}

+{{PreviousMenuNext("Web/Apps/Progressive/Offline_Service_workers", "Web/Apps/Progressive/Re-engageable_Notifications_Push", "Web/Apps/Progressive")}} -

{{QuickLinksWithSubpages("/es/docs/Web/Progressive_web_apps/")}}

+{{QuickLinksWithSubpages("/es/docs/Web/Progressive_web_apps/")}} diff --git a/files/es/web/progressive_web_apps/introduction/index.md b/files/es/web/progressive_web_apps/introduction/index.md index 5640cfd3f45161..1ce33368ed6050 100644 --- a/files/es/web/progressive_web_apps/introduction/index.md +++ b/files/es/web/progressive_web_apps/introduction/index.md @@ -14,156 +14,150 @@ tags: - progresiva translation_of: Web/Progressive_web_apps/Introduction --- -
{{NextMenu("Web/Progressive_web_apps/App_structure", "Web/Progressive_web_apps")}}
+{{NextMenu("Web/Progressive_web_apps/App_structure", "Web/Progressive_web_apps")}} -

Este articulo provee una introducción a las Aplicaciones web progresivas (PWAs), explica qué son, y las ventajas que brindan sobre las aplicaciones web convencionales.

+Este articulo provee una introducción a las Aplicaciones web progresivas (PWAs), explica qué son, y las ventajas que brindan sobre las aplicaciones web convencionales. -

¿Qué es una aplicación web progresiva?

+## ¿Qué es una aplicación web progresiva? -
El término "Aplicación web progresiva" no es un nombre formal u oficial. Solo es una abreviatura utilizada inicialmente por Google para el concepto de crear una aplicación flexible y adaptable utilizando solo tecnologías web.
+El término "Aplicación web progresiva" no es un nombre formal u oficial. Solo es una abreviatura utilizada inicialmente por Google para el concepto de crear una aplicación flexible y adaptable utilizando solo tecnologías web. -

Las PWA son aplicaciones web desarrolladas con una serie de tecnologías específicas y patrones estándar que les permiten aprovechar las funciones de las aplicaciones nativas y web. Por ejemplo, las aplicaciones web son más fáciles de detectar que las aplicaciones nativas; es mucho más fácil y rápido visitar un sitio web que instalar una aplicación, y también puedes compartir aplicaciones web simplemente enviando un enlace.

+Las PWA son aplicaciones web desarrolladas con una serie de tecnologías específicas y patrones estándar que les permiten aprovechar las funciones de las aplicaciones nativas y web. Por ejemplo, las aplicaciones web son más fáciles de detectar que las aplicaciones nativas; es mucho más fácil y rápido visitar un sitio web que instalar una aplicación, y también puedes compartir aplicaciones web simplemente enviando un enlace. -

Por otro lado, las aplicaciones nativas están mejor integradas con el sistema operativo y, por lo tanto, ofrecen una experiencia más fluida para los usuarios. Puedes instalar una aplicación nativa para que funcione sin conexión, y a los usuarios les encanta tocar sus íconos para acceder fácilmente a sus aplicaciones favoritas, en lugar de navegar a través de un navegador.

+Por otro lado, las aplicaciones nativas están mejor integradas con el sistema operativo y, por lo tanto, ofrecen una experiencia más fluida para los usuarios. Puedes instalar una aplicación nativa para que funcione sin conexión, y a los usuarios les encanta tocar sus íconos para acceder fácilmente a sus aplicaciones favoritas, en lugar de navegar a través de un navegador. -

Las PWA brindan la capacidad de crear aplicaciones web que pueden disfrutar de estas mismas ventajas.

+Las PWA brindan la capacidad de crear aplicaciones web que pueden disfrutar de estas mismas ventajas. -

No es un concepto completamente nuevo; estas ideas se han revisado muchas veces en la plataforma web con varios enfoques en el pasado. La mejora progresiva y el diseño adaptable ya te permiten crear sitios web compatibles con dispositivos móviles.

+No es un concepto completamente nuevo; estas ideas se han revisado muchas veces en la plataforma web con varios enfoques en el pasado. La mejora progresiva y el diseño adaptable ya te permiten crear sitios web compatibles con dispositivos móviles. -

Sin embargo, las PWA brindan todo esto y más sin perder ninguna de las características existentes que hacen que la web sea excelente.

+Sin embargo, las PWA brindan todo esto y más sin perder ninguna de las características existentes que hacen que la web sea excelente. -

¿Qué hace que una aplicación sea una PWA?

+## ¿Qué hace que una aplicación sea una PWA? -

Como dijimos anteriormente, las PWA no se crean con una sola tecnología. Representan una nueva filosofía para la creación de aplicaciones web, que incluye algunos patrones específicos, API y otras características. A primera vista, no es tan obvio si una aplicación web es una PWA o no. Una aplicación se podría considerar una PWA cuando cumple con ciertos requisitos o implementa un conjunto de características determinadas — funciona sin conexión, es instalable, es fácil de sincronizar, puede enviar notificaciones automáticas, etc.

+Como dijimos anteriormente, las PWA no se crean con una sola tecnología. Representan una nueva filosofía para la creación de aplicaciones web, que incluye algunos patrones específicos, API y otras características. A primera vista, _no_ es tan obvio si una aplicación web es una PWA o no. Una aplicación se podría considerar una PWA cuando cumple con ciertos requisitos o implementa un conjunto de características determinadas — funciona sin conexión, es instalable, es fácil de sincronizar, puede enviar notificaciones automáticas, etc. -

Además, existen herramientas para medir qué tan completa (como porcentaje) es una aplicación web, como Lighthouse. Al implementar varias ventajas tecnológicas, podemos hacer que una aplicación sea más progresiva, y así terminar con una puntuación de Lighthouse más alta. Pero este es solo un indicador aproximado.

+Además, existen herramientas para medir qué tan completa (como porcentaje) es una aplicación web, como [Lighthouse](https://developers.google.com/web/tools/lighthouse/). Al implementar varias ventajas tecnológicas, podemos hacer que una aplicación sea más progresiva, y así terminar con una puntuación de Lighthouse más alta. Pero este es solo un indicador aproximado. -

Hay algunos principios clave que una aplicación web debe tratar de observar para ser identificada como PWA. Estos deben ser:

+Hay algunos principios clave que una aplicación web debe tratar de observar para ser identificada como PWA. Estos deben ser: -
    -
  • {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Detectable", "#Discoverable")}}, por lo que el contenido se puede encontrar a través de motores de búsqueda.
  • -
  • {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Instalable", "#Instalable")}}, por lo que puede estar disponible en la pantalla de inicio del dispositivo o en el lanzador de aplicaciones.
  • -
  • {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Enlazable", "#Enlazable")}}, para que puedas compartirla simplemente enviando una URL.
  • -
  • {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Independiente de la red", "#Independiente_de_la_red")}}, por lo que funciona sin conexión o con una deficiente conexión de red.
  • -
  • {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Progresiva", "#Progresiva")}}, por lo que todavía se puede utilizar en un nivel básico en los navegadores más antiguos, pero completamente funcional en los más recientes.
  • -
  • {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Reconectable", "#Reconectable")}}, por lo que puede enviar notificaciones cuando haya contenido nuevo disponible.
  • -
  • {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Adaptable", "#Adaptable")}}, por lo tanto se puede utilizar en cualquier dispositivo con pantalla y navegador: teléfonos móviles, tabletas, computadoras portátiles, televisores, refrigeradores, etc.
  • -
  • {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Segura", "#Segura")}} por lo que las conexiones entre el usuario, la aplicación y tu servidor están protegidos contra terceros que intenten acceder a datos sensibles.
  • -
+- {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Detectable", "#Discoverable")}}, por lo que el contenido se puede encontrar a través de motores de búsqueda. +- {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Instalable", "#Instalable")}}, por lo que puede estar disponible en la pantalla de inicio del dispositivo o en el lanzador de aplicaciones. +- {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Enlazable", "#Enlazable")}}, para que puedas compartirla simplemente enviando una URL. +- {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Independiente de la red", "#Independiente_de_la_red")}}, por lo que funciona sin conexión o con una deficiente conexión de red. +- {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Progresiva", "#Progresiva")}}, por lo que todavía se puede utilizar en un nivel básico en los navegadores más antiguos, pero completamente funcional en los más recientes. +- {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Reconectable", "#Reconectable")}}, por lo que puede enviar notificaciones cuando haya contenido nuevo disponible. +- {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Adaptable", "#Adaptable")}}, por lo tanto se puede utilizar en cualquier dispositivo con pantalla y navegador: teléfonos móviles, tabletas, computadoras portátiles, televisores, refrigeradores, etc. +- {{web.link("/es/docs/Web/Progressive_web_apps/Advantages", "Segura", "#Segura")}} por lo que las conexiones entre el usuario, la aplicación y tu servidor están protegidos contra terceros que intenten acceder a datos sensibles. -

Ofrecer estas funciones y hacer uso de todas las Ventajas que ofrecen las aplicaciones web puede crear una oferta atractiva y altamente flexible para tus usuarios y clientes.

+Ofrecer estas funciones y hacer uso de todas las [Ventajas que ofrecen las aplicaciones web](#ventajas_de_las_aplicaciones_web) puede crear una oferta atractiva y altamente flexible para tus usuarios y clientes. -

¿Vale la pena hacer todo eso?

+### ¿Vale la pena hacer todo eso? -

¡Absolutamente! Con un esfuerzo relativamente pequeño para implementar las características principales de las PWAs, los beneficios son enormes. Por ejemplo:

+¡Absolutamente! Con un esfuerzo relativamente pequeño para implementar las características principales de las PWAs, los beneficios son enormes. Por ejemplo: -
    -
  • Una disminución en los tiempos de carga después de la instalación de la aplicación, gracias al almacenamiento en caché con el {{web.link("/es/docs/Web/API/Service_Worker_API", "servicio workers")}}, además de ahorrar un valioso ancho de banda y tiempo. Los PWAs tienen una carga casi instantánea (a partir de la segunda visita).
  • -
  • La capacidad de actualizar solo el contenido que ha cambiado cuando hay disponible una actualización de la aplicación. En contraste, con una aplicación nativa, incluso la más mínima modificación puede obligar al usuario a descargar la aplicación completa nuevamente.
  • -
  • Una apariencia que está más integrada con la plataforma nativa: íconos de aplicaciones en la pantalla de inicio o el lanzador de aplicaciones, aplicaciones que se ejecutan automáticamente en modo de pantalla completa, etc.
  • -
  • Reconectable para interactuar con los usuarios mediante el uso de notificaciones del sistema y mensajes push, lo cual genera usuarios más comprometidos y mejores tasas de conversión.
  • -
+- Una disminución en los tiempos de carga después de la instalación de la aplicación, gracias al almacenamiento en caché con el {{web.link("/es/docs/Web/API/Service_Worker_API", "servicio workers")}}, además de ahorrar un valioso ancho de banda y tiempo. Los PWAs tienen una carga casi instantánea (a partir de la segunda visita). +- La capacidad de actualizar solo el contenido que ha cambiado cuando hay disponible una actualización de la aplicación. En contraste, con una aplicación nativa, incluso la más mínima modificación puede obligar al usuario a descargar la aplicación completa nuevamente. +- Una apariencia que está más integrada con la plataforma nativa: íconos de aplicaciones en la pantalla de inicio o el lanzador de aplicaciones, aplicaciones que se ejecutan automáticamente en modo de pantalla completa, etc. +- Reconectable para interactuar con los usuarios mediante el uso de notificaciones del sistema y mensajes `push`, lo cual genera usuarios más comprometidos y mejores tasas de conversión. -

Historias de éxito

+### Historias de éxito -

Hay muchas historias de éxito de empresas que probaron la ruta PWA, optaron por una experiencia de sitio web mejorada en lugar de una aplicación nativa y, como resultado, obtuvieron importantes beneficios medibles. El sitio web Estadísticas PWA comparte muchos estudios de casos que indican estos beneficios.

+Hay muchas historias de éxito de empresas que probaron la ruta PWA, optaron por una experiencia de sitio web mejorada en lugar de una aplicación nativa y, como resultado, obtuvieron importantes beneficios medibles. El sitio web [Estadísticas PWA](https://www.pwastats.com/) comparte muchos estudios de casos que indican estos beneficios. -

La historia de éxito más conocida probablemente es la de Flipkart Lite. El sitio de comercio electrónico más grande de la India se reconstruyó como una aplicación web progresiva en 2015, lo que resultó en un aumento del 70% en las conversiones. La PWA AliExpress también ha obtenido resultados mucho mejores que la web o la aplicación nativa, con un aumento del 104% en las tasas de conversión para los nuevos usuarios. Dado el aumento de sus ganancias y la cantidad relativamente baja de trabajo requerida para la conversión de estas aplicaciones a PWA, la ventaja es clara.

+La historia de éxito más conocida probablemente es la de [Flipkart Lite](https://stories.flipkart.com/introducing-flipkart-lite/). El sitio de comercio electrónico más grande de la India se reconstruyó como una aplicación web progresiva en 2015, lo que resultó en un aumento del 70% en las conversiones. La PWA [AliExpress](https://m.aliexpress.com/) también ha obtenido resultados mucho mejores que la web o la aplicación nativa, con un aumento del 104% en las tasas de conversión para los nuevos usuarios. Dado el aumento de sus ganancias y la cantidad relativamente baja de trabajo requerida para la conversión de estas aplicaciones a PWA, la ventaja es clara. -

Las puestas en marcha emergentes en etapa temprana como couponmoto también han comenzado a usar aplicaciones web progresivas para impulsar una mayor participación de los consumidores, lo que demuestra que pueden ayudar tanto a pequeñas como a grandes empresas para (re)involucrar a los usuarios de manera más eficaz.

+Las puestas en marcha emergentes en etapa temprana como [couponmoto](https://www.couponmoto.com/) también han comenzado a usar aplicaciones web progresivas para impulsar una mayor participación de los consumidores, lo que demuestra que pueden ayudar tanto a pequeñas como a grandes empresas para (re)involucrar a los usuarios de manera más eficaz. -

Puedes consultar la lista en pwa.rocks para obtener más ejemplos. Vale la pena mencionar en particular la página hnpwa.com, que muestra una implementación de ejemplo del sitio web de Hacker News (en lugar de la aplicación habitual TodoMVC), en la que puedes ver el uso de varios marcos de desarrollo de la interfaz de usuario web.

+Puedes consultar la lista en pwa.rocks para obtener más ejemplos. Vale la pena mencionar en particular la página [hnpwa.com](https://hnpwa.com/), que muestra una implementación de ejemplo del sitio web de Hacker News (en lugar de la aplicación habitual TodoMVC), en la que puedes ver el uso de varios marcos de desarrollo de la interfaz de usuario web. -

Incluso puedes generar PWA en línea utilizando el sitio web PWABuilder.

+Incluso puedes generar PWA en línea utilizando el sitio web [PWABuilder](https://www.pwabuilder.com/). -

Para obtener información específica sobre el servicio worker y la inserción, asegúrate de consultar el Libro de recetas del servicio worker, una colección de recetas que utilizan los servicios worker en sitios modernos.

+Para obtener información específica sobre el servicio _worker_ y la inserción, asegúrate de consultar el [Libro de recetas del servicio _worker_](https://serviceworke.rs/), una colección de recetas que utilizan los servicios _worker_ en sitios modernos. -

Vale la pena probar un enfoque de PWA, para que puedas ver por ti mismo si funciona para tu aplicación.

+Vale la pena probar un enfoque de PWA, para que puedas ver por ti mismo si funciona para tu aplicación. -

Ventajas de las aplicaciones web

+## Ventajas de las aplicaciones web -

Una aplicación web progresiva totalmente capaz debería proporcionar todas las siguientes ventajas al usuario.

+Una aplicación web progresiva totalmente capaz debería proporcionar todas las siguientes ventajas al usuario. -

Reconocible

+### Reconocible -

DetectabilidadEl objetivo final es que las aplicaciones web tengan una mejor representación en los motores de búsqueda, sean más fáciles de exponer, catalogar y clasificar, y tener metadatos utilizables por los navegadores para brindarles capacidades especiales.

+![Detectabilidad](https://mdn.mozillademos.org/files/12654/discoverable.svg)El objetivo final es que las aplicaciones web tengan una mejor representación en los motores de búsqueda, sean más fáciles de exponer, catalogar y clasificar, y tener metadatos utilizables por los navegadores para brindarles capacidades especiales. -

Algunas de las capacidades ya se han habilitado en ciertas plataformas basadas en web mediante tecnologías patentadas como Open Graph, que proporciona un formato para especificar metadatos similares en el bloque {{HTMLElement("head")}} de {{Glossary("HTML")}} con etiquetas {{HTMLElement("meta")}}.

+Algunas de las capacidades ya se han habilitado en ciertas plataformas basadas en web mediante tecnologías patentadas como [Open Graph](http://ogp.me/), que proporciona un formato para especificar metadatos similares en el bloque {{HTMLElement("head")}} de {{Glossary("HTML")}} con etiquetas {{HTMLElement("meta")}}. -

El estándar web relevante aquí es el {{web.link("/es/docs/Web/Manifest", "manifiesto de la aplicación web")}}, que define las características de una aplicación, como el nombre, el icono, la pantalla de presentación y los colores del tema en un archivo de manifiesto con formato {{Glossary("JSON")}}. Esto es para usar en contextos como listas de aplicaciones y pantallas de inicio de dispositivos.

+El estándar web relevante aquí es el {{web.link("/es/docs/Web/Manifest", "manifiesto de la aplicación web")}}, que define las características de una aplicación, como el nombre, el icono, la pantalla de presentación y los colores del tema en un archivo de manifiesto con formato {{Glossary("JSON")}}. Esto es para usar en contextos como listas de aplicaciones y pantallas de inicio de dispositivos. -

Instalable

+### Instalable -

Instalabilidad

+![Instalabilidad](https://mdn.mozillademos.org/files/12656/installable.svg) -

Una parte fundamental de la experiencia de la aplicación web es que los usuarios tengan iconos de aplicaciones en su pantalla de inicio y los puedan tocar para abrir aplicaciones en su propio contenedor nativo que se sienta bien integrado con la plataforma subyacente.

+Una parte fundamental de la experiencia de la aplicación web es que los usuarios tengan iconos de aplicaciones en su pantalla de inicio y los puedan tocar para abrir aplicaciones en su propio contenedor nativo que se sienta bien integrado con la plataforma subyacente. -

Las aplicaciones web modernas pueden hacer que esta aplicación nativa se sienta a través de las propiedades establecidas dentro del manifiesto de la aplicación web y mediante una función disponible en los navegadores de teléfonos inteligentes modernos llamada {{web.link("/es/docs/Web/Progressive_web_apps/Developer_guide/Installing", "instalación de la aplicación web")}}.

+Las aplicaciones web modernas pueden hacer que esta aplicación nativa se sienta a través de las propiedades establecidas dentro del manifiesto de la aplicación web y mediante una función disponible en los navegadores de teléfonos inteligentes modernos llamada {{web.link("/es/docs/Web/Progressive_web_apps/Developer_guide/Installing", "instalación de la aplicación web")}}. -

Enlazable

+### Enlazable -

Enlazable

+![Enlazable](https://mdn.mozillademos.org/files/12658/linkable.svg) -

Una de las características más poderosas de la web es la capacidad de vincularse a una aplicación en una URL específica sin la necesidad de una tienda de aplicaciones o un proceso de instalación complejo. Así ha sido siempre.

+Una de las características más poderosas de la web es la capacidad de vincularse a una aplicación en una URL específica sin la necesidad de una tienda de aplicaciones o un proceso de instalación complejo. Así ha sido siempre. -

Independiente de la red

+### Independiente de la red -

Independencia de la red

+![Independencia de la red](https://mdn.mozillademos.org/files/12660/network-independent.svg) -

Las aplicaciones web modernas pueden funcionar cuando hay mala (o incluso inexistente) conectividad con la red. Las ideas básicas detrás de la independencia de la red son poder:

+Las aplicaciones web modernas pueden funcionar cuando hay mala (o incluso inexistente) conectividad con la red. Las ideas básicas detrás de la independencia de la red son poder: -
    -
  • Volver a visitar un sitio y obtener su contenido incluso si no hay una red disponible.
  • -
  • Explorar cualquier tipo de contenido que el usuario haya visitado anteriormente al menos una vez, incluso en situaciones de mala conectividad.
  • -
  • Controlar lo que se muestra al usuario en situaciones donde no hay conectividad.
  • -
+- Volver a visitar un sitio y obtener su contenido incluso si no hay una red disponible. +- Explorar cualquier tipo de contenido que el usuario haya visitado anteriormente al menos una vez, incluso en situaciones de mala conectividad. +- Controlar lo que se muestra al usuario en situaciones donde no hay conectividad. -

Esto se consigue mediante una combinación de tecnologías: el {{web.link("/es/docs/Web/API/Service_Worker_API", "servicio Workers")}} para controlar las solicitudes de página (por ejemplo, almacenarlas sin conexión), la {{web.link("/es/docs/Web/API/Cache", "API de caché")}} para almacenar respuestas a solicitudes de red sin conexión (muy útil para almacenar activos del sitio) y tecnologías de almacenamiento de datos secundarios como {{web.link("/es/docs/Web/API/Web_Storage_API", "Almacenamiento Web")}} y {{web.link("/es/docs/Web/API/IndexedDB_API", "IndexedDB")}} para almacenar datos de aplicaciones sin conexión.

+Esto se consigue mediante una combinación de tecnologías: el {{web.link("/es/docs/Web/API/Service_Worker_API", "servicio Workers")}} para controlar las solicitudes de página (por ejemplo, almacenarlas sin conexión), la {{web.link("/es/docs/Web/API/Cache", "API de caché")}} para almacenar respuestas a solicitudes de red sin conexión (muy útil para almacenar activos del sitio) y tecnologías de almacenamiento de datos secundarios como {{web.link("/es/docs/Web/API/Web_Storage_API", "Almacenamiento Web")}} y {{web.link("/es/docs/Web/API/IndexedDB_API", "IndexedDB")}} para almacenar datos de aplicaciones sin conexión. -

Compatibilidad de mejora progresiva

+### Compatibilidad de mejora progresiva -

Mejora progresiva

+![Mejora progresiva](https://mdn.mozillademos.org/files/12662/progressive.svg) -

Se pueden desarrollar aplicaciones web modernas para proporcionar una experiencia excelente a los navegadores totalmente compatibles y una experiencia aceptable (aunque no tan brillante) a los navegadores menos capaces. Hemos estado haciendo esto durante años con las mejores prácticas, como la mejora progresiva. Al utilizar {{Glossary("Progressive_Enhancement", "Mejora progresiva")}}, las PWAs se utilizan en varios navegadores. Esto significa que los desarrolladores deben tener en cuenta las diferencias en la implementación de algunas características y tecnologías PWA entre diferentes implementaciones de navegadores.

+Se pueden desarrollar aplicaciones web modernas para proporcionar una experiencia excelente a los navegadores totalmente compatibles y una experiencia aceptable (aunque no tan brillante) a los navegadores menos capaces. Hemos estado haciendo esto durante años con las mejores prácticas, como la mejora progresiva. Al utilizar {{Glossary("Progressive_Enhancement", "Mejora progresiva")}}, las PWAs se utilizan en varios navegadores. Esto significa que los desarrolladores deben tener en cuenta las diferencias en la implementación de algunas características y tecnologías PWA entre diferentes implementaciones de navegadores. -

Reconectable

+### Reconectable -

Reconectable

+![Reconectable](https://mdn.mozillademos.org/files/12666/re-engageable.svg) -

Una de las principales ventajas de las plataformas nativas es la facilidad con la que los usuarios pueden volver a interactuar con las actualizaciones y el contenido nuevo, incluso cuando no están mirando la aplicación o usando sus dispositivos. Las aplicaciones web modernas ahora también pueden hacer esto, utilizando nuevas tecnologías como Servicio Workers para controlar páginas, la {{web.link("/es/docs/Web/API/Push_API", "API Web Push")}} para enviar actualizaciones. directamente del servidor a la aplicación a través de un servicio workers y la {{web.link("/es/docs/Web/API/Notifications_API", "API de notificaciones")}} para generar notificaciones del sistema para ayudar a involucrar a los usuarios cuando no están utilizando activamente su navegador web.

+Una de las principales ventajas de las plataformas nativas es la facilidad con la que los usuarios pueden volver a interactuar con las actualizaciones y el contenido nuevo, incluso cuando no están mirando la aplicación o usando sus dispositivos. Las aplicaciones web modernas ahora también pueden hacer esto, utilizando nuevas tecnologías como Servicio _Workers_ para controlar páginas, la {{web.link("/es/docs/Web/API/Push_API", "API Web Push")}} para enviar actualizaciones. directamente del servidor a la aplicación a través de un servicio _workers_ y la {{web.link("/es/docs/Web/API/Notifications_API", "API de notificaciones")}} para generar notificaciones del sistema para ayudar a involucrar a los usuarios cuando no están utilizando activamente su navegador web. -

Adaptable

+### Adaptable -

Adaptable

+![Adaptable](https://mdn.mozillademos.org/files/12650/responsive.svg) -

Las aplicaciones web adaptables utilizan tecnologías como {{web.link("/es/docs/Web/CSS/Media_Queries", "consultas de medios")}} y {{web.link("/es/docs/Glossary/Viewport", "viewport")}} para asegurarte de que tu IU se ajuste a cualquier factor de forma: computadora de escritorio, dispositivo móvil, tableta o lo que venga a continuación.

+Las aplicaciones web adaptables utilizan tecnologías como {{web.link("/es/docs/Web/CSS/Media_Queries", "consultas de medios")}} y {{web.link("/es/docs/Glossary/Viewport", "viewport")}} para asegurarte de que tu IU se ajuste a cualquier factor de forma: computadora de escritorio, dispositivo móvil, tableta o lo que venga a continuación. -

Segura

+### Segura -

Segura

+![Segura](https://mdn.mozillademos.org/files/12664/safe.svg) -

Captura de pantalla que muestra una gran cantidad de resultados al buscar "Messenger" al intentar encontrar Facebook Messenger. ¿Cuál es el correcto?La plataforma web proporciona un mecanismo de entrega seguro que evita espionaje y, al mismo tiempo, garantiza que el contenido no haya sido manipulado, siempre que aproveche {{Glossary("HTTPS")}} y desarrolles tus aplicaciones pensando en la seguridad.

+![Captura de pantalla que muestra una gran cantidad de resultados al buscar "Messenger" al intentar encontrar Facebook Messenger. ¿Cuál es el correcto?](https://mdn.mozillademos.org/files/17175/InstalingMessengerSoManyOptionsEek.jpeg)La plataforma web proporciona un mecanismo de entrega seguro que evita espionaje y, al mismo tiempo, garantiza que el contenido no haya sido manipulado, siempre que aproveche {{Glossary("HTTPS")}} y desarrolles tus aplicaciones pensando en la seguridad. -

También es fácil para los usuarios asegurarse de que están instalando la aplicación correcta, porque su URL coincidirá con el dominio de tu sitio. Esto es muy diferente de las aplicaciones en las tiendas de aplicaciones, que pueden tener varias aplicaciones con nombres similares, algunas de las cuales incluso pueden estar basadas en su propio sitio, lo que aumenta la confusión. Las aplicaciones web eliminan esa confusión y garantizan que los usuarios obtengan la mejor experiencia posible.

+También es fácil para los usuarios asegurarse de que están instalando la aplicación correcta, porque su URL coincidirá con el dominio de tu sitio. Esto es muy diferente de las aplicaciones en las tiendas de aplicaciones, que pueden tener varias aplicaciones con nombres similares, algunas de las cuales incluso pueden estar basadas en su propio sitio, lo que aumenta la confusión. Las aplicaciones web eliminan esa confusión y garantizan que los usuarios obtengan la mejor experiencia posible. -

Compatibilidad con el navegador

+## Compatibilidad con el navegador -

Como se mencionó anteriormente, las PWAs no dependen de una sola API, sino que utilizan varias tecnologías para lograr el objetivo de brindar la mejor experiencia web posible.

+Como se mencionó anteriormente, las PWAs no dependen de una sola API, sino que utilizan varias tecnologías para lograr el objetivo de brindar la mejor experiencia web posible. -

El ingrediente clave requerido para las PWAs es la asistencia de {{web.link("/es/docs/Web/API/Service_Worker_API", "servicio workers")}}. Afortunadamente, los servicios de workers ahora son compatibles con los principales navegadores en computadoras de escritorio y dispositivos móviles.

+El ingrediente clave requerido para las PWAs es la asistencia de {{web.link("/es/docs/Web/API/Service_Worker_API", "servicio workers")}}. Afortunadamente, los servicios de _workers_ [ahora son compatibles con los principales navegadores](https://jakearchibald.github.io/isserviceworkerready/) en computadoras de escritorio y dispositivos móviles. -

Otras características como {{web.link("/es/docs/Web/Manifest", "manifiesto de App Web")}}, {{web.link("/es/docs/Web/API/Push_API", "Push")}}, {{web.link("/es/docs/Web/API/Notifications_API", "Notificaciones")}} y la funcionalidad {{web.link("/es/docs/Web/Progressive_web_apps/Add_to_home_screen", "Agregar a la pantalla de inicio")}} también tienen un amplio soporte. Actualmente, Safari tiene soporte limitado para el manifiesto de aplicaciones web y Agregar a la pantalla de inicio y no admite notificaciones push web. Sin embargo, otros navegadores importantes admiten todas estas funciones.

+Otras características como {{web.link("/es/docs/Web/Manifest", "manifiesto de App Web")}}, {{web.link("/es/docs/Web/API/Push_API", "Push")}}, {{web.link("/es/docs/Web/API/Notifications_API", "Notificaciones")}} y la funcionalidad {{web.link("/es/docs/Web/Progressive_web_apps/Add_to_home_screen", "Agregar a la pantalla de inicio")}} también tienen un amplio soporte. Actualmente, Safari tiene soporte limitado para el manifiesto de aplicaciones web y Agregar a la pantalla de inicio y no admite notificaciones _push web_. Sin embargo, otros navegadores importantes admiten todas estas funciones. -

Por encima de todo, debes seguir la regla de mejora progresiva: usa tecnologías que mejoren la apariencia y la utilidad de tu aplicación cuando estén disponibles, pero que sigan ofreciendo la funcionalidad básica de tu aplicación cuando esas funciones no estén disponibles. Presentar un sitio web confiable con un buen rendimiento es una consecuencia del uso de estas mejoras; esto, a su vez, significa crear aplicaciones web que sigan las mejores prácticas. De esta manera, todos podrán usar la aplicación, pero aquellos con navegadores modernos se beneficiarán aún más de las funciones de PWA.

+Por encima de todo, debes seguir la regla de mejora progresiva: usa tecnologías que mejoren la apariencia y la utilidad de tu aplicación cuando estén disponibles, pero que sigan ofreciendo la funcionalidad básica de tu aplicación cuando esas funciones no estén disponibles. Presentar un sitio web confiable con un buen rendimiento es una consecuencia del uso de estas mejoras; esto, a su vez, significa crear aplicaciones web que sigan las mejores prácticas. De esta manera, todos podrán usar la aplicación, pero aquellos con navegadores modernos se beneficiarán aún más de las funciones de PWA. -

Una aplicación de ejemplo

+## Una aplicación de ejemplo -

En esta serie de artículos, examinaremos el código fuente de un sitio web súper simple que enumera información sobre juegos enviados a la categoría A-Frame en la Competición js13kGames 2017. No tienes que pensar en cuál es el contenido real del sitio web; el punto principal es aprender a utilizar las funciones de PWA en sus propios proyectos.

+En esta serie de artículos, examinaremos el código fuente de un sitio web súper simple que enumera información sobre juegos enviados a la [categoría A-Frame](http://js13kgames.com/aframe) en la Competición [js13kGames 2017](http://2017.js13kgames.com/). No tienes que pensar en cuál es el contenido real del sitio web; el punto principal es aprender a utilizar las funciones de PWA en sus propios proyectos. -

Puedes ver esta aplicación en acción en línea, y el código fuente está disponible en GitHub. Examinaremos este código detenidamente a lo largo de esta serie de artículos.

+Puedes [ver esta aplicación en acción](https://mdn.github.io/pwa-examples/js13kpwa/) en línea, y el código fuente está [disponible en GitHub](https://github.com/mdn/pwa-examples/tree/master/js13kpwa). Examinaremos este código detenidamente a lo largo de esta serie de artículos. -

Por ahora, ve a la segunda parte de esta serie, donde verás la estructura de la aplicación de ejemplo.

+Por ahora, ve a la segunda parte de esta serie, donde verás la estructura de la aplicación de ejemplo. -

{{NextMenu("Web/Progressive_web_apps/App_structure", "Web/Progressive_web_apps")}}

+{{NextMenu("Web/Progressive_web_apps/App_structure", "Web/Progressive_web_apps")}} -
{{QuickLinksWithSubpages("/es/docs/Web/Progressive_web_apps/")}}
+{{QuickLinksWithSubpages("/es/docs/Web/Progressive_web_apps/")}} diff --git a/files/es/web/progressive_web_apps/loading/index.md b/files/es/web/progressive_web_apps/loading/index.md index bc44773494abfb..696e23343db48f 100644 --- a/files/es/web/progressive_web_apps/loading/index.md +++ b/files/es/web/progressive_web_apps/loading/index.md @@ -9,147 +9,158 @@ tags: - progresiva translation_of: Web/Progressive_web_apps/Loading --- -
{{PreviousMenu("Web/Progressive_web_apps/Re-engageable_Notifications_Push", "Web/Progressive_web_apps")}}
+{{PreviousMenu("Web/Progressive_web_apps/Re-engageable_Notifications_Push", "Web/Progressive_web_apps")}} -

En artículos anteriores cubrimos las API que nos ayudan a convertir nuestro ejemplo de js13kPWA en una aplicación web progresiva: {{web.link("/es/docs/Web/Progressive_web_apps/Offline_Service_workers", "El servicio workers")}}, {{web.link("/es/docs/Web/Progressive_web_apps/Installable_PWAs", "Manifiestos web")}}, {{web.link("/es/docs/Web/Progressive_web_apps/Re-engagementable_Notifications_Push", "Notificaciones y Push")}}. En este artículo iremos aún más allá y mejoraremos el rendimiento de la aplicación cargando progresivamente sus recursos.

+En artículos anteriores cubrimos las API que nos ayudan a convertir nuestro ejemplo de [js13kPWA](https://mdn.github.io/pwa-examples/js13kpwa/) en una aplicación web progresiva: {{web.link("/es/docs/Web/Progressive_web_apps/Offline_Service_workers", "El servicio workers")}}, {{web.link("/es/docs/Web/Progressive_web_apps/Installable_PWAs", "Manifiestos web")}}, {{web.link("/es/docs/Web/Progressive_web_apps/Re-engagementable_Notifications_Push", "Notificaciones y Push")}}. En este artículo iremos aún más allá y mejoraremos el rendimiento de la aplicación cargando progresivamente sus recursos. -

Primera imagen significativa

+## Primera imagen significativa -

Es importante entregar algo significativo al usuario lo antes posible: cuanto más espere a que se cargue la página, mayor será la posibilidad de que se vaya antes de esperar a que todo termine. Deberíamos poder mostrarles al menos la vista básica de la página que quieren ver, con marcadores de posición en los lugares donde eventualmente se cargará más contenido.

+Es importante entregar algo significativo al usuario lo antes posible: cuanto más espere a que se cargue la página, mayor será la posibilidad de que se vaya antes de esperar a que todo termine. Deberíamos poder mostrarles al menos la vista básica de la página que quieren ver, con marcadores de posición en los lugares donde eventualmente se cargará más contenido. -

Esto se podría lograr mediante la carga progresiva, también conocida como carga diferida. Se trata de aplazar la carga de recursos tanto como sea posible (HTML, CSS, JavaScript) y solo cargar inmediatamente los que realmente se necesitan para la primera experiencia.

+Esto se podría lograr mediante la carga progresiva, también conocida como [carga diferida](https://en.wikipedia.org/wiki/Lazy_loading). Se trata de aplazar la carga de recursos tanto como sea posible (HTML, CSS, JavaScript) y solo cargar inmediatamente los que realmente se necesitan para la primera experiencia. -

Agrupar versus dividir

+## Agrupar versus dividir -

Muchos visitantes no pasarán por todas las páginas de un sitio web, sin embargo, el enfoque habitual es agrupar todas las funciones que tenemos en un archivo grande. Un archivo bundle.js puede tener muchos megabytes, y un solo paquete style.css puede contener de todo, desde definiciones básicas de estructura CSS hasta todos los estilos posibles de cada versión del sitio: móvil, tableta, escritorio, solo impresión, etc.

+Muchos visitantes no pasarán por todas las páginas de un sitio web, sin embargo, el enfoque habitual es agrupar todas las funciones que tenemos en un archivo grande. Un archivo `bundle.js` puede tener muchos megabytes, y un solo paquete `style.css` puede contener de todo, desde definiciones básicas de estructura CSS hasta todos los estilos posibles de cada versión del sitio: móvil, tableta, escritorio, solo impresión, etc. -

Es más rápido cargar toda esa información como un archivo en lugar de muchos archivos pequeños, pero si el usuario no necesita todo al principio, podríamos cargar solo lo que es crucial y luego gestionar otros recursos cuando sea necesario.

+Es más rápido cargar toda esa información como un archivo en lugar de muchos archivos pequeños, pero si el usuario no necesita todo al principio, podríamos cargar solo lo que es crucial y luego gestionar otros recursos cuando sea necesario. -

Recursos que bloquean el renderizado

+## Recursos que bloquean el renderizado -

La agrupación es un problema, porque el navegador tiene que cargar HTML, CSS y JavaScript antes de poder pintar sus resultados renderizados en la pantalla. Durante los pocos segundos entre el acceso inicial al sitio web y la finalización de la carga, el usuario ve una página en blanco, lo cual es una mala experiencia.

+La agrupación es un problema, porque el navegador tiene que cargar HTML, CSS y JavaScript antes de poder pintar sus resultados renderizados en la pantalla. Durante los pocos segundos entre el acceso inicial al sitio web y la finalización de la carga, el usuario ve una página en blanco, lo cual es una mala experiencia. -

Para solucionarlo, podemos, por ejemplo, agregar defer a los archivos JavaScript:

+Para solucionarlo, podemos, por ejemplo, agregar `defer` a los archivos JavaScript: -
<script src="app.js" defer></script>
-
+```html + +``` -

Se descargarán y ejecutarán después que el documento en sí haya sido procesado, por lo que no bloqueará la representación de la estructura HTML. También podemos dividir archivos css y agregarles tipos de medios:

+Se descargarán y ejecutarán _después_ que el documento en sí haya sido procesado, por lo que no bloqueará la representación de la estructura HTML. También podemos dividir archivos css y agregarles tipos de medios: -
<link rel="stylesheet" href="style.css">
-<link rel="stylesheet" href="print.css" media="print">
-
+```html + + +``` -

Esto le indicará al navegador que los cargue solo cuando se cumpla la condición.

+Esto le indicará al navegador que los cargue solo cuando se cumpla la condición. -

En nuestra aplicación de demostración js13kPWA, el CSS es lo suficientemente simple como para dejarlo todo en un solo archivo sin reglas específicas sobre cómo cargarlos. Podríamos ir aún más lejos y mover todo desde style.css a la etiqueta <style> en el <head> del index.html: esto mejoraría aún más el rendimiento, pero para la legibilidad del ejemplo también omitiremos este enfoque.

+En nuestra aplicación de demostración js13kPWA, el CSS es lo suficientemente simple como para dejarlo todo en un solo archivo sin reglas específicas sobre cómo cargarlos. Podríamos ir aún más lejos y mover todo desde `style.css` a la etiqueta ` - <circle cx="50" cy="50" r="40" /> -</svg> - + + +``` -

Live result:

+Live result: -

{{EmbedLiveSample("Ejemplo",150,165)}}

+{{EmbedLiveSample("Ejemplo",150,165)}} -

Atributos

+## Atributos -

Atributos globales

+### Atributos globales - +- [Core attributes](/en/SVG/Attribute#Core "en/SVG/Attribute#Core") » -

Atributos específicos

+### Atributos específicos -
    -
  • {{ SVGAttr("type") }}
  • -
  • {{ SVGAttr("media") }}
  • -
  • {{ SVGAttr("title") }}
  • -
+- {{ SVGAttr("type") }} +- {{ SVGAttr("media") }} +- {{ SVGAttr("title") }} -

DOM Interface

+## DOM Interface -

Este elemento implementa la interfaz SVGStyleElement.

+Este elemento implementa la interfaz [`SVGStyleElement`](/en/DOM/SVGStyleElement "en/DOM/SVGStyleElement"). -

Browser compatibility

+## Browser compatibility {{Compat("svg.elements.style")}} -

See also

+## See also - +- [\ + + + + + + + black + + red + + blue + + +``` + +## Atributos + +### Atributos Globales + +- [Atributos de procesamiento condicional](/en/SVG/Attribute#ConditionalProccessing "en/SVG/Attribute#ConditionalProccessing") » +- [Atributos núcleo](/en/SVG/Attribute#Core "en/SVG/Attribute#Core") » +- [Atributos de eventos gráficos](/en/SVG/Attribute#GraphicalEvent "en/SVG/Attribute#GraphicalEvent") » +- [Atributos de presentación](/en/SVG/Attribute#Presentation "en/SVG/Attribute#Presentation") » +- [Atributos Xlink](/en/SVG/Attribute#XLink "en/SVG/Attribute#XLink") » +- {{ SVGAttr("class") }} +- {{ SVGAttr("style") }} +- {{ SVGAttr("externalResourcesRequired") }} +- {{ SVGAttr("transform") }} + +### Atributos específicos + +- {{ SVGAttr("x") }} +- {{ SVGAttr("y") }} +- {{ SVGAttr("width") }} +- {{ SVGAttr("height") }} +- {{ SVGAttr("xlink:href") }} + +## Interfaz DOM + +Este elemento implementa la interface [`SVGUseElement`](/en/DOM/SVGUseElement "en/DOM/SVGUseElement"). + +## Compatibilidad entre navegadores {{Compat("svg.elements.use")}} diff --git a/files/es/web/svg/tutorial/getting_started/index.md b/files/es/web/svg/tutorial/getting_started/index.md index b4f5511c72fee8..d4f5bcddf80008 100644 --- a/files/es/web/svg/tutorial/getting_started/index.md +++ b/files/es/web/svg/tutorial/getting_started/index.md @@ -3,94 +3,86 @@ title: Getting Started slug: Web/SVG/Tutorial/Getting_Started translation_of: Web/SVG/Tutorial/Getting_Started --- -

{{ PreviousNext("SVG/Tutorial/Introduction", "SVG/Tutorial/Positions") }}

+{{ PreviousNext("SVG/Tutorial/Introduction", "SVG/Tutorial/Positions") }} -

Un Ejemplo Simple

+### Un Ejemplo Simple -

Permitanos introducirlo con un sencillo ejemplo. Mire el siguiente codigo :

+Permitanos introducirlo con un sencillo ejemplo. Mire el siguiente codigo : -
<svg version="1.1"
+```xml
+
 
-  <rect width="100%" height="100%" fill="red" />
+  
 
-  <circle cx="150" cy="100" r="80" fill="green" />
+  
 
-  <text x="150" y="125" font-size="60" text-anchor="middle" fill="white">SVG</text>
+  SVG
 
-</svg>
-
+ +``` -

Copie el código y guárdelo como demo1.svg. Luego ábralo en Firefox. Lo verá como se ve en la siguiente figura. (usuarios Firefox : click aqui)

+Copie el código y guárdelo como demo1.svg. Luego ábralo en Firefox. Lo verá como se ve en la siguiente figura. (usuarios Firefox : click [aqui](https://developer.mozilla.org/@api/deki/files/4571/=svgdemo1.xml)) -

svgdemo1.png

+![svgdemo1.png](/@api/deki/files/4928/=svgdemo1.png) -

El proceso de renderizado incluye lo siguiente :

+El proceso de renderizado incluye lo siguiente : -
    -
  1. Comenzamos con el elemento raiz del svg: +1. Comenzamos con el elemento raiz del `svg`: -
      -
    • La declaracion de tipo de documento (doctype) usual en (X)HTML debería dejarse de lado debido a que la validación DTD based SVG conduce a mas problemas que soluciones.
    • -
    • En cambio, los atributos version y baseProfile deberian ser usados siempre para identificar la version de SVG para otro tipo de validaciones.
    • -
    • Debido a SVG es una especie de dialecto de XML, SVG debe unir siempre los namespaces correctamente (en el atributo xmlns). Para mayor información, vea Namespaces Crash Course.
    • -
    -
  2. -
  3. El fondo esta puesto en rojo dibujando un rectangulo <rect/> que cubre el area de la imagen.
  4. -
  5. Un circulo verde <circle/> con un radio de 80px y se dibuja en el centro del rectangulo rojo(offset 30+120px inward, and 50+50px upward).
  6. -
  7. El texto "SVG" esta dibujado. El interior de cada letra esta relleno con blanco. -
    -
    El texto se coloca mediante el establecimiento de un ancla en donde queremos que el punto medio sea: en este caso, el punto medio debe corresponder al centro del circulo verde. Los ajustes finos se pueden hacer con el tamaño de la fuente y la posición vertical para garantizar que el resultado final sea estéticamente agradable.
    -
    -
  8. -
+ - La declaracion de tipo de documento (doctype) usual en (X)HTML debería dejarse de lado debido a que la validación DTD based SVG conduce a mas problemas que soluciones. + - En cambio, los atributos `version` y `baseProfile `deberian ser usados siempre para identificar la version de SVG para otro tipo de validaciones. + - Debido a SVG es una especie de dialecto de XML, SVG debe unir siempre los namespaces correctamente (en el atributo xmlns). Para mayor información, vea [Namespaces Crash Course](/es/docs/Web/SVG/Namespaces_Crash_Course "en/SVG/Namespaces_Crash_Course"). -

Basic properties of SVG files

+2. El fondo esta puesto en rojo dibujando un rectangulo [``](/en/SVG/Element/rect "en/SVG/Element/rect") que cubre el area de la imagen. +3. Un circulo verde [``](/en/SVG/Element/circle "en/SVG/Element/circle") con un radio de 80px y se dibuja en el centro del rectangulo rojo(offset 30+120px inward, and 50+50px upward). +4. El texto "SVG" esta dibujado. El interior de cada letra esta relleno con blanco.El texto se coloca mediante el establecimiento de un ancla en donde queremos que el punto medio sea: en este caso, el punto medio debe corresponder al centro del circulo verde. Los ajustes finos se pueden hacer con el tamaño de la fuente y la posición vertical para garantizar que el resultado final sea estéticamente agradable. -
    -
  • The first important thing to notice is the order of rendering of elements. The globally valid rule for SVG files is, that later elements are rendered atop previous elements. The further down an element is the more will be visible.
  • -
  • SVG files on the web can be displayed directly in the browser or embedded in HTML files via several methods: -
      -
    • If the HTML is XHTML and is delivered as type application/xhtml+xml, the SVG can be directly embedded in the XML source.
    • -
    • If the HTML is HTML5, and the browser is a conforming HTML5 browser, the SVG can be directly embedded, too. However, there may be syntax changes necessary to conform to the HTML5 specification
    • -
    • The SVG file can be referenced with an object element: -
              <object data="image.svg" type="image/svg+xml" />
      -
    • -
    • Likewise an iframe element can be used: -
              <iframe src="image.svg"></iframe>
      -
    • -
    • An img element can be used theoretically, too. However this technique doesn't work in Firefox before 4.0.
    • -
    • Finally SVG can be created dynamically with JavaScript and injected into the HTML DOM. This has the advantage, that replacement technologies for browsers, that can't process SVG, can be implemented.
    • -
    - See this dedicated article for an in-depth dealing with the topic.
  • -
  • How SVG handles sizes and units will be explained on the next page.
  • -
+### Basic properties of SVG files -

SVG File Types

+- The first important thing to notice is the order of rendering of elements. The globally valid rule for SVG files is, that _later_ elements are rendered _atop previous_ elements. The further down an element is the more will be visible. +- SVG files on the web can be displayed directly in the browser or embedded in HTML files via several methods: -

SVG files come in two flavors. Normal SVG files are simple text files containing SVG markup. The recommended filename extension for these files is ".svg" (all lowercase).

+ - If the HTML is XHTML and is delivered as type `application/xhtml+xml`, the SVG can be directly embedded in the XML source. + - If the HTML is HTML5, and the browser is a conforming HTML5 browser, the SVG can be directly embedded, too. However, there may be syntax changes necessary to conform to the HTML5 specification + - The SVG file can be referenced with an `object` element: -

Due to the potentially massive size SVG files can reach when used for some applications (e.g., geographical applications), the SVG specification also allows for gzip-compressed SVG files. The recommended filename extension for these files is ".svgz" (all lowercase). Unfortunately it is very problematic to get gzip-compressed SVG files to work reliably across all SVG capable user agents when served from Microsofts IIS server, and Firefox can not load gzip-compressed SVG from the local computer. Avoid gzip-compressed SVG except when you are publishing to a webserver that you know will serve it correctly (see below).

+ -

A Word on Webservers

+ - Likewise an `iframe` element can be used: -

Now that you have an idea of how to create basic SVG files, the next stage is to upload them to a Webserver. There are some gotchas at this stage though. For normal SVG files, servers should send the HTTP header:

+ -
Content-Type: image/svg+xml
-
+ - An `img` element can be used theoretically, too. However this technique doesn't work in Firefox before 4.0. + - Finally SVG can be created dynamically with JavaScript and injected into the HTML DOM. This has the advantage, that replacement technologies for browsers, that can't process SVG, can be implemented. -

For gzip-compressed SVG files, servers should send the HTTP headers:

+ See [this dedicated article](/en/SVG_In_HTML_Introduction "en/svg in html introduction") for an in-depth dealing with the topic. -
Content-Type: image/svg+xml
-Content-Encoding: gzip
-
+- How SVG handles sizes and units will be explained [on the next page](/en/SVG/Tutorial/Positions "en/SVG/Tutorial/Positions"). -

You can check that your server is sending the correct HTTP headers with your SVG files by using a site such as web-sniffer.net. Submit the URL of one of your SVG files and look at the HTTP response headers. If you find that your server is not sending the headers with the values given above, then you should contact your Web host. If you have problems convincing them to correctly configure their servers for SVG, there may be ways to do it yourself. See the server configuration page on the SVG wiki for a range of simple solutions.

+### SVG File Types -

Server misconfiguration is a very common reason for SVG failing to load, so make sure you check yours. If your server is not configured to send the correct headers with the SVG files it serves, then Firefox will most likely show the markup of the files as text or encoded garbage, or even ask the viewer to choose an application to open them.

+SVG files come in two flavors. Normal SVG files are simple text files containing SVG markup. The recommended filename extension for these files is ".svg" (all lowercase). -

{{ PreviousNext("SVG/Tutorial/Introduction", "SVG/Tutorial/Positions") }}

+Due to the potentially massive size SVG files can reach when used for some applications (e.g., geographical applications), the SVG specification also allows for gzip-compressed SVG files. The recommended filename extension for these files is ".svgz" (all lowercase). Unfortunately it is very problematic to get gzip-compressed SVG files to work reliably across all SVG capable user agents when served from Microsofts IIS server, and Firefox can not load gzip-compressed SVG from the local computer. Avoid gzip-compressed SVG except when you are publishing to a webserver that you know will serve it correctly (see below). -

{{ languages( { "fr": "fr/SVG/Tutoriel/Premiers_pas", "ja": "ja/SVG/Tutorial/Getting_Started" } ) }}

+### A Word on Webservers + +Now that you have an idea of how to create basic SVG files, the next stage is to upload them to a Webserver. There are some gotchas at this stage though. For normal SVG files, servers should send the HTTP header: + + Content-Type: image/svg+xml + +For gzip-compressed SVG files, servers should send the HTTP headers: + + Content-Type: image/svg+xml + Content-Encoding: gzip + +You can check that your server is sending the correct HTTP headers with your SVG files by using a site such as [web-sniffer.net](http://web-sniffer.net/). Submit the URL of one of your SVG files and look at the HTTP response headers. If you find that your server is not sending the headers with the values given above, then you should contact your Web host. If you have problems convincing them to correctly configure their servers for SVG, there may be ways to do it yourself. See the [server configuration page](http://svg-whiz.com/wiki/index.php?title=Server_Configuration) on the SVG wiki for a range of simple solutions. + +Server misconfiguration is a very common reason for SVG failing to load, so make sure you check yours. If your server is not configured to send the correct headers with the SVG files it serves, then Firefox will most likely show the markup of the files as text or encoded garbage, or even ask the viewer to choose an application to open them. + +{{ PreviousNext("SVG/Tutorial/Introduction", "SVG/Tutorial/Positions") }} + +{{ languages( { "fr": "fr/SVG/Tutoriel/Premiers_pas", "ja": "ja/SVG/Tutorial/Getting_Started" } ) }} diff --git a/files/es/web/svg/tutorial/index.md b/files/es/web/svg/tutorial/index.md index 624fb03252e866..6c659d1b94055e 100644 --- a/files/es/web/svg/tutorial/index.md +++ b/files/es/web/svg/tutorial/index.md @@ -12,46 +12,44 @@ tags: - Tutorial de SVG translation_of: Web/SVG/Tutorial --- -

Los graficos de vectores escalables, SVG , es un dialecto XML de W#C usado para describir graficos. Esta parcialente implementado en Firefox, Opera, WebKit , Internet Explorer y otros.

+Los graficos de vectores escalables, SVG , es un dialecto XML de W#C usado para describir graficos. Esta parcialente implementado en Firefox, Opera, WebKit , Internet Explorer y otros. -

Este tutorial intenta explicar SVG a profundidad y esta elaborado con detalles tecnicos. Si quieres dibujar hermosas imagenes, podras encontrar recursos mas utiles en la Documentacion de Inkscape . Otra buena introduccion es brindada por el W3C's SVG Primer .

+Este tutorial intenta explicar SVG a profundidad y esta elaborado con detalles tecnicos. Si quieres dibujar hermosas imagenes, podras encontrar recursos mas utiles en la [Documentacion de Inkscape](https://inkscape.org/en/learn/) . Otra buena introduccion es brindada por el W3C's [SVG Primer](http://www.w3.org/Graphics/SVG/IG/resources/svgprimer.html) . -
Presentando SVG desde cero
+##### Presentando SVG desde cero - +- [Introducción](/en-US/SVG/Tutorial/Introduction "en-US/SVG/Tutorial/Introduction") +- [Comenzando](/en-US/SVG/Tutorial/Getting_Started "en-US/SVG/Tutorial/Getting_Started") +- [Posiciones](/en-US/SVG/Tutorial/Positions "en-US/SVG/Tutorial/Positions") +- [Figuras básicas](/en-US/SVG/Tutorial/Basic_Shapes "en-US/SVG/Tutorial/Basic_Shapes") +- [Paths](/en-US/SVG/Tutorial/Paths "en-US/SVG/Tutorial/Paths") +- [Rellenos y trazos](/en-US/SVG/Tutorial/Fills_and_Strokes "en-US/SVG/Tutorial/Fills_and_Strokes") +- [Gradientes](/en-US/SVG/Tutorial/Gradients "en-US/SVG/Tutorial/Gradients") +- [Patrones](/en-US/SVG/Tutorial/Patterns "en-US/SVG/Tutorial/Patterns") +- [Textos](/en-US/SVG/Tutorial/Texts "en-US/SVG/Tutorial/Texts") +- [Transformaciones básicas](/en-US/SVG/Tutorial/Basic_Transformations "en-US/SVG/Tutorial/Basic_Transformations") +- [Recortes y máscaras](/en-US/SVG/Tutorial/Clipping_and_masking "en-US/SVG/Tutorial/Clipping_and_masking") +- [Otros contenidos en SVG](/en-US/SVG/Tutorial/Other_content_in_SVG "en-US/SVG/Tutorial/Other content in SVG") +- [Filtros y efectos](/en-US/SVG/Tutorial/Filter_effects "en-US/SVG/Tutorial/Filter effects") +- [Fuentes SVG](/en-US/SVG/Tutorial/SVG_fonts "en-US/SVG/Tutorial/SVG fonts") +- [Etiquetas de imágenes SVG](/en-US/SVG/Tutorial/SVG_Image_Tag "en-US/SVG/Tutorial/SVG Image Tag") +- [Herramientas de SVG](/en-US/SVG/Tutorial/Tools_for_SVG "en-US/SVG/Tutorial/Tools_for_SVG") +- [Otros tutoriales](/es/docs/Web/SVG/Tutorial/Other_content_in_SVG "en-US/SVG/Tutorial/Other_Tutorials") -

Los siguientes temas son más avanzados, por lo tanto deben tener sus propios tutoriales.

+Los siguientes temas son más avanzados, por lo tanto deben tener sus propios tutoriales. -
Scripting SVG con JavaScript
+##### Scripting SVG con JavaScript -

TBD

+TBD -
Tutorial filtros SVG
+##### Tutorial filtros SVG -

TBD

+TBD -
Animaciones con SMIL en SVG
+##### Animaciones con SMIL en SVG -

TBD

+TBD -
Creación de fuentes en SVG
+##### Creación de fuentes en SVG -

TBD

+TBD diff --git a/files/es/web/svg/tutorial/introduction/index.md b/files/es/web/svg/tutorial/introduction/index.md index 603eb30d462e41..4ea85333b195be 100644 --- a/files/es/web/svg/tutorial/introduction/index.md +++ b/files/es/web/svg/tutorial/introduction/index.md @@ -4,43 +4,37 @@ slug: Web/SVG/Tutorial/Introduction translation_of: Web/SVG/Tutorial/Introduction original_slug: Web/SVG/Tutorial/Introducción --- -

{{ PreviousNext("Web/SVG/Tutorial", "Web/SVG/Tutorial/Getting_Started") }}

+{{ PreviousNext("Web/SVG/Tutorial", "Web/SVG/Tutorial/Getting_Started") }} -

Ejemplo de imagenes vectoriales, una cría de leon, una curva con flechas direccionales a intervalos regulares y un texto que sigue una trayectoria onduladaSVG es un lenguaje XML, parecido a XHTML, el cual puede ser usado para dibujar gráficos vectoriales, como los mostrados a la derecha. Puede ser usado para crear una imagen ya sea especificando todas las líneas y formas necesarias, modificando las imágenes matriciales (raster images) o una combinación de ambas. La imagen y sus componentes pueden ser transformados, compuestos o filtrados para cambiar completamente su apariencia.

+![Ejemplo de imagenes vectoriales, una cría de leon, una curva con flechas direccionales a intervalos regulares y un texto que sigue una trayectoria ondulada](/@api/deki/files/348/=SVG_Overview.png)[SVG](/es/docs/Web/SVG "es/docs/Web/SVG") es un lenguaje [XML](/es/docs/Introducción_a_XML "es/docs/Introducción_a_XML"), parecido a [XHTML](/es/docs/XHTML "es/docs/XHTML"), el cual puede ser usado para dibujar gráficos vectoriales, como los mostrados a la derecha. Puede ser usado para crear una imagen ya sea especificando todas las líneas y formas necesarias, modificando las imágenes matriciales (raster images) o una combinación de ambas. La imagen y sus componentes pueden ser transformados, compuestos o filtrados para cambiar completamente su apariencia. -

SVG surgió en 1999 después de que varios formatos compitieran y fueran propuestos a la W3C los cuales fallaron para ser completamente ratificados. SVG es soportado por los principales navegadores. Un inconveniente es que cargar un SVG puede ser lento. SVG ofrecen beneficios, algunos de los cuales incluyen tener una interfaz DOM disponible para éste, y no requerir extensiones de terceros. Usarlo o no a menudo dependerá de tu caso específico de uso.

+SVG surgió en 1999 después de que varios formatos compitieran y fueran propuestos a la [W3C](http://www.w3.org "en-US/W3C") los cuales fallaron para ser completamente ratificados. SVG es soportado por los principales [navegadores](https://caniuse.com/#search=svg). Un inconveniente es que cargar un SVG puede ser lento. SVG ofrecen beneficios, algunos de los cuales incluyen tener una [interfaz](/es/docs/Web/API) [DOM ](/es/docs/Web/API)disponible para éste, y no requerir extensiones de terceros. Usarlo o no a menudo dependerá de tu caso específico de uso. -

+### Ingredientes básicos -

+[HTML](/es/docs/Web/HTML) provee elementos que definen encabezados, párrafos, tablas, etc. En forma muy similar, SVG provee elementos para círculos, rectángulos, y curvas simples y complejas. Un documento SVG simple consiste de nada más que el elemento raíz {{ SVGElement('svg') }} y varias formas básicas que construyen todas juntas un gráfico. En adición está el elemento {{ SVGElement('g') }}, el cual es usado para agrupar varias formas básicas. -

Ingredientes básicos

+Desde este punto, la imagen SVG puede volverse arbitrariamente compleja. SVG soporta gradientes, rotaciones, efectos de filtro, animaciones, interactividad con JavaScript y más. Pero todas esas características adicionales del lenguaje dependen de este conjunto relativamente pequeño de elementos para definir el area de gráficos. -

HTML provee elementos que definen encabezados, párrafos, tablas, etc. En forma muy similar, SVG provee elementos para círculos, rectángulos, y curvas simples y complejas. Un documento SVG simple consiste de nada más que el elemento raíz {{ SVGElement('svg') }} y varias formas básicas que construyen todas juntas un gráfico. En adición está el elemento {{ SVGElement('g') }}, el cual es usado para agrupar varias formas básicas.

+### Antes de empezar -

Desde este punto, la imagen SVG puede volverse arbitrariamente compleja. SVG soporta gradientes, rotaciones, efectos de filtro, animaciones, interactividad con JavaScript y más. Pero todas esas características adicionales del lenguaje dependen de este conjunto relativamente pequeño de elementos para definir el area de gráficos.

+Existe un número de programas de dibujo disponibles como [Inkscape](http://www.inkscape.org/) los cuales son gratis y usan SVG como su formato nativo. Sin embargo, este tutorial se basará en el confiable XML o editor de texto (a tu criterio). La idea es enseñar el funcionamiento interno de SVG a aquellos que desean comprenderlo, y eso se logra mejor ensuciando tus manos con un poco de maquetado. De todos modos deberías fijarte tus objetivos. No todos los visores de SVG son iguales por lo que es posible que algo escrito para una aplicación no se verá exactamente igual en otra, simplemente porque soportan diferentes niveles de la especificación SVG u otra especificación que estés utilizando junto con SVG (es decir, [JavaScript](/es/JavaScript "es/JavaScript") o [CSS](/es/CSS "es/CSS")). -

Antes de empezar

+SVG es soportado en todo navegador moderno e incluso hasta un par de versiones anteriores en algunos casos. Una tabla bastante completa de soporte por navegadores puede verse en [Can I use](http://caniuse.com/svg). Firefox ha soportado algo de contenido SVG desde su versión 1.5 y el nivel de soporte ha ido creciendo con cada versión desde entonces. Con algo de optimismo, junto con este tutorial, MDN puede ayudar a los desarrolladores a estar al tanto de las diferencias entre Gecko y algunas de las otras implementaciones mas importantes. -

Existe un número de programas de dibujo disponibles como Inkscape los cuales son gratis y usan SVG como su formato nativo. Sin embargo, este tutorial se basará en el confiable XML o editor de texto (a tu criterio). La idea es enseñar el funcionamiento interno de SVG a aquellos que desean comprenderlo, y eso se logra mejor ensuciando tus manos con un poco de maquetado. De todos modos deberías fijarte tus objetivos. No todos los visores de SVG son iguales por lo que es posible que algo escrito para una aplicación no se verá exactamente igual en otra, simplemente porque soportan diferentes niveles de la especificación SVG u otra especificación que estés utilizando junto con SVG (es decir, JavaScript o CSS).

+Antes de empezar deberías tener conceptos básicos de XML u otro lenguaje de maquetado como HTML. Si no estás del todo familiarizado con XML, aquí hay algunas máximas a tener presentes: -

SVG es soportado en todo navegador moderno e incluso hasta un par de versiones anteriores en algunos casos. Una tabla bastante completa de soporte por navegadores puede verse en Can I use. Firefox ha soportado algo de contenido SVG desde su versión 1.5 y el nivel de soporte ha ido creciendo con cada versión desde entonces. Con algo de optimismo, junto con este tutorial, MDN puede ayudar a los desarrolladores a estar al tanto de las diferencias entre Gecko y algunas de las otras implementaciones mas importantes.

+- Los elementos SVG y sus atributos deben ser escritos en la misma capitalización mostrada ya que XML es sensible a mayúsculas (en contraposición a HTML). +- Los valores de atributos en SVG deben ir entre comillas, incluso si son números. -

Antes de empezar deberías tener conceptos básicos de XML u otro lenguaje de maquetado como HTML. Si no estás del todo familiarizado con XML, aquí hay algunas máximas a tener presentes:

+SVG es una especificación muy extensa. Este instructivo intenta cubrir lo básico. Una vez que te hayas familiarizado deberías ser capaz de usar la [Referencia de elementos](/es/docs/Web/SVG/Element "es/docs/Web/SVG/Element") y la [Referencia de interface](/es/docs/DOM/DOM_Reference#SVG_interfaces "es/SVG/Interface") para encontrar cualquier otra cosa que necesites saber. -
    -
  • Los elementos SVG y sus atributos deben ser escritos en la misma capitalización mostrada ya que XML es sensible a mayúsculas (en contraposición a HTML).
  • -
  • Los valores de atributos en SVG deben ir entre comillas, incluso si son números.
  • -
+### SVG y sus sabores -

SVG es una especificación muy extensa. Este instructivo intenta cubrir lo básico. Una vez que te hayas familiarizado deberías ser capaz de usar la Referencia de elementos y la Referencia de interface para encontrar cualquier otra cosa que necesites saber.

+Desde que se volvió una recomendación en 2003, la versión "completa" mas reciente de SVG es 1.1. Se edifica sobre SVG 1.0, añadiendo mas modularización para facilitar su implementación. [La segunda edición de SVG 1.1](http://www.w3.org/TR/SVG/) se volvió una Recomendación en 2011. SVG 1.2 iba a ser la próxima entrega de SVG. Fue descartada en favor de la próxima [SVG 2.0](http://www.w3.org/TR/SVG2/), la cual está siendo desarrollada ahora mismo y sigue un enfoque similar a CSS 3 en que divide componentes en varias especificaciones vagamente relacionadas. -

SVG y sus sabores

+En adición a la recomendación de SVG completo, el grupo de trabajo en W3C introdujo SVG Tiny y SVG Basic en 2003. Estos perfiles apuntan principalmente a dispositivos móviles. El primero, SVG Tiny, debería brindar primitivas de gráficos para dispositivos pequeños con capacidades bajas. SVG Basic ofrece muchas de las prestaciones del SVG completo, pero no incluye aquellas difíciles de implementar o costosas de representar (como animaciones). En 2008, SVG Tiny 1.2 se volvió una Recomendación W3C. -

Desde que se volvió una recomendación en 2003, la versión "completa" mas reciente de SVG es 1.1. Se edifica sobre SVG 1.0, añadiendo mas modularización para facilitar su implementación. La segunda edición de SVG 1.1 se volvió una Recomendación en 2011. SVG 1.2 iba a ser la próxima entrega de SVG. Fue descartada en favor de la próxima SVG 2.0, la cual está siendo desarrollada ahora mismo y sigue un enfoque similar a CSS 3 en que divide componentes en varias especificaciones vagamente relacionadas.

+Hubo planes para una especificación SVG Print, la cual habría agregado soporte para páginas múltiples y administración de color mejorada. Esta tarea fue abandonada. -

En adición a la recomendación de SVG completo, el grupo de trabajo en W3C introdujo SVG Tiny y SVG Basic en 2003. Estos perfiles apuntan principalmente a dispositivos móviles. El primero, SVG Tiny, debería brindar primitivas de gráficos para dispositivos pequeños con capacidades bajas. SVG Basic ofrece muchas de las prestaciones del SVG completo, pero no incluye aquellas difíciles de implementar o costosas de representar (como animaciones). En 2008, SVG Tiny 1.2 se volvió una Recomendación W3C.

- -

Hubo planes para una especificación SVG Print, la cual habría agregado soporte para páginas múltiples y administración de color mejorada. Esta tarea fue abandonada.

- -

{{ PreviousNext("Web/SVG/Tutorial", "Web/SVG/Tutorial/Getting_Started") }}

+{{ PreviousNext("Web/SVG/Tutorial", "Web/SVG/Tutorial/Getting_Started") }} diff --git a/files/es/web/svg/tutorial/tools_for_svg/index.md b/files/es/web/svg/tutorial/tools_for_svg/index.md index c7eab5d101e4ad..f5b31999f8fb75 100644 --- a/files/es/web/svg/tutorial/tools_for_svg/index.md +++ b/files/es/web/svg/tutorial/tools_for_svg/index.md @@ -3,72 +3,68 @@ title: Tools for SVG slug: Web/SVG/Tutorial/Tools_for_SVG translation_of: Web/SVG/Tutorial/Tools_for_SVG --- -

{{ PreviousNext("Web/SVG/Tutorial/SVG_Image_Tag") }}

+{{ PreviousNext("Web/SVG/Tutorial/SVG_Image_Tag") }} -

+Ahora que hemos cubierto los aspectos básicos de los componentes internos de SVG, analizaremos algunas herramientas para trabajar con archivos SVG. -

Ahora que hemos cubierto los aspectos básicos de los componentes internos de SVG, analizaremos algunas herramientas para trabajar con archivos SVG.

+### Browser support -

Browser support

+A partir de Internet Explorer 9, la mayoria de los navegadores soportan SVG: IE 9, Mozilla Firefox, Safari, Google Chrome y Opera. Los dispositivos mobiles que estan basado en los navegadores Webkit tambien soportan SVG. En dispositivos más antiguos o más pequeños, es probable que se admita SVG Tiny -

A partir de Internet Explorer 9, la mayoria de los navegadores soportan SVG: IE 9, Mozilla Firefox, Safari, Google Chrome y Opera. Los dispositivos mobiles que estan basado en los navegadores Webkit tambien soportan SVG. En dispositivos más antiguos o más pequeños, es probable que se admita SVG Tiny

+## Inkscape -

Inkscape

+URL: [www.inkscape.org](http://www.inkscape.org) -

URL: www.inkscape.org

+Una de las herramientas más importantes para un formato de gráficos es un programa de dibujo decente. Inkscape ofrece dibujos vectoriales de última generación, y es de código abierto. -

Una de las herramientas más importantes para un formato de gráficos es un programa de dibujo decente. Inkscape ofrece dibujos vectoriales de última generación, y es de código abierto.

+Además, utiliza SVG como su formato de archivo nativo. Para almacenar datos específicos de Inkscape, extiende el archivo SVG con elementos y atributos en un espacio de nombres personalizado, pero también puede optar por exportar como SVG simple. -

Además, utiliza SVG como su formato de archivo nativo. Para almacenar datos específicos de Inkscape, extiende el archivo SVG con elementos y atributos en un espacio de nombres personalizado, pero también puede optar por exportar como SVG simple.

+## Adobe Illustrator -

Adobe Illustrator

+URL: [www.adobe.com/products/illustrator/](http://www.adobe.com/products/illustrator/) -

URL: www.adobe.com/products/illustrator/

+Before Adobe acquired Macromedia, it was the most prominent promoter of SVG. From this time stems the good support of SVG in Illustrator. However, the resulting SVG often shows some quirks, that make it necessary to post-process it for general applicability. -

Before Adobe acquired Macromedia, it was the most prominent promoter of SVG. From this time stems the good support of SVG in Illustrator. However, the resulting SVG often shows some quirks, that make it necessary to post-process it for general applicability.

+## Apache Batik -

Apache Batik

+URL: [xmlgraphics.apache.org/batik/](http://xmlgraphics.apache.org/batik/) -

URL: xmlgraphics.apache.org/batik/

+Batik is a set of open source tools under the roof of the Apache Software Foundation. The toolkit is written in Java and offers almost complete SVG 1.1 support, as well as some features that were originally planned for SVG 1.2. -

Batik is a set of open source tools under the roof of the Apache Software Foundation. The toolkit is written in Java and offers almost complete SVG 1.1 support, as well as some features that were originally planned for SVG 1.2.

+Batik offers a viewer (Squiggle), a rasterizer for PNG output, an SVG pretty printer to format SVG files, and a TrueType-to-SVG-Font converter. -

Batik offers a viewer (Squiggle), a rasterizer for PNG output, an SVG pretty printer to format SVG files, and a TrueType-to-SVG-Font converter.

+Together with [Apache FOP](http://xmlgraphics.apache.org/fop/) Batik can transform SVG to PDF. -

Together with Apache FOP Batik can transform SVG to PDF.

+### Other renderers -

Other renderers

+Several projects exist that can create a raster image from an SVG source. [ImageMagick](http://ImageMagick.org) is one of the most famous command-line image processing tools. The Gnome library [rsvg](http://library.gnome.org/devel/rsvg/) is used by the Wikipedia to raster their SVG graphics. Usage of headless browsers such as SlimerJS and PhantomJS are also popular for this purpose, as the image produced is closer to what the SVG will look like in the browser. -

Several projects exist that can create a raster image from an SVG source. ImageMagick is one of the most famous command-line image processing tools. The Gnome library rsvg is used by the Wikipedia to raster their SVG graphics. Usage of headless browsers such as SlimerJS and PhantomJS are also popular for this purpose, as the image produced is closer to what the SVG will look like in the browser.

+## Raphael JS -

Raphael JS

+URL: [raphaeljs.com](http://raphaeljs.com/) -

URL: raphaeljs.com

+This is a JavaScript library, that acts as an abstraction layer between browser implementations. Notably older versions of Internet Explorer are supported by generating VML, a vector markup language, that is one of two ancestors of SVG and exists since IE 5.5. -

This is a JavaScript library, that acts as an abstraction layer between browser implementations. Notably older versions of Internet Explorer are supported by generating VML, a vector markup language, that is one of two ancestors of SVG and exists since IE 5.5.

+## Snap.svg -

Snap.svg

+URL: [snapsvg.io](http://snapsvg.io/) -

URL: snapsvg.io

+A newer JavaScript abstraction layer from the same author of Raphael JS. Snap.svg is designed for modern browsers and therefore supports the newest SVG features like masking, clipping, patterns, full gradients, groups. It does not support the older browsers that Raphael does. -

A newer JavaScript abstraction layer from the same author of Raphael JS. Snap.svg is designed for modern browsers and therefore supports the newest SVG features like masking, clipping, patterns, full gradients, groups. It does not support the older browsers that Raphael does.

+## Google Docs -
+URL: [www.google.com/google-d-s/drawings/](http://www.google.com/google-d-s/drawings/) -

Google Docs

+Drawings from Google Docs can be exported as SVG. -

URL: www.google.com/google-d-s/drawings/

+## Science -

Drawings from Google Docs can be exported as SVG.

+The well-known plotting tools xfig and gnuplot both support exporting as SVG. To render graphs on the web [JSXGraph](http://jsxgraph.uni-bayreuth.de/wp/) supports VML, SVG and canvas, automatically deciding which technology to use based on browser capabilities. -

Science

+In GIS (Geographic Information System) applications SVG is often used as both storage and rendering format. See [carto.net](http://carto.net) for details. -

The well-known plotting tools xfig and gnuplot both support exporting as SVG. To render graphs on the web JSXGraph supports VML, SVG and canvas, automatically deciding which technology to use based on browser capabilities.

+## More tools! -

In GIS (Geographic Information System) applications SVG is often used as both storage and rendering format. See carto.net for details.

+The W3C offers a [list of programs](http://www.w3.org/Graphics/SVG/WG/wiki/Implementations) that support SVG. -

More tools!

- -

The W3C offers a list of programs that support SVG.

- -

{{ PreviousNext("Web/SVG/Tutorial/SVG_Image_Tag") }}

+{{ PreviousNext("Web/SVG/Tutorial/SVG_Image_Tag") }} diff --git a/files/es/web/web_components/using_custom_elements/index.md b/files/es/web/web_components/using_custom_elements/index.md index cb02e3bfe66cdf..12a691e9a86f25 100644 --- a/files/es/web/web_components/using_custom_elements/index.md +++ b/files/es/web/web_components/using_custom_elements/index.md @@ -10,35 +10,34 @@ tags: - elementos personalizados translation_of: Web/Web_Components/Using_custom_elements --- -
{{DefaultAPISidebar("Web Components")}}
+{{DefaultAPISidebar("Web Components")}} -

Una de las características claves del estándar de Componentes Web es la capacidad de crear elementos personalizados que encapsulan tu funcionalidad en una página HTML, en vez de tener que hacerlo con una larga lista de elementos anidados que juntos proveen una funcionalidad o característica personalizada en una página. Este artículo presenta el uso del API de Elementos Personalizados.

+Una de las características claves del estándar de Componentes Web es la capacidad de crear elementos personalizados que encapsulan tu funcionalidad en una página HTML, en vez de tener que hacerlo con una larga lista de elementos anidados que juntos proveen una funcionalidad o característica personalizada en una página. Este artículo presenta el uso del API de Elementos Personalizados. -
-

Nota: Los Elementos Personalizados funcionan por defecto en Firefox, Chrome, y Edge (76). Opera y Safari solo adminten Elementos Personalizados autónomos (que extienden HTMLElement).

-
+> **Nota:** Los Elementos Personalizados funcionan por defecto en Firefox, Chrome, y Edge (76). Opera y Safari solo adminten Elementos Personalizados autónomos (que extienden HTMLElement). -

Vista de alto nivel

+## Vista de alto nivel -

El controlador de los elementos personalizados en un documento web es el objeto {{domxref("CustomElementRegistry")}} — este objeto te permite registrar un elemento personalizado en la página, devolver información de qué elementos personalizados se han registrado, etc.

+El controlador de los elementos personalizados en un documento web es el objeto {{domxref("CustomElementRegistry")}} — este objeto te permite registrar un elemento personalizado en la página, devolver información de qué elementos personalizados se han registrado, etc. -

Para registrar un elemento personalizado en la página, debes usar el método {{domxref("CustomElementRegistry.define()")}} . Éste toma los siguientes argumentos:

+Para registrar un elemento personalizado en la página, debes usar el método {{domxref("CustomElementRegistry.define()")}} . Éste toma los siguientes argumentos: -
    -
  • Un {{domxref("DOMString")}} que representa el nombre que estás dando al elemento. Nótese que los nombres de los elementos personalizados deben contener un guión (kebab-case); Los nombres no pueden ser palabras simples.
  • -
  • Un objeto class que define el comportamiento del ejemplo.
  • -
  • Opcionalmente, un objeto de opciones que contiene la propiedad extends , que especifica el elemento preconstruido del que hereda (solo es relevante para elementos personalizados preconstruidos; ver la definición más abajo).
  • -
+- Un {{domxref("DOMString")}} que representa el nombre que estás dando al elemento. Nótese que los nombres de los elementos personalizados [deben contener un guión](https://stackoverflow.com/questions/22545621/do-custom-elements-require-a-dash-in-their-name) (kebab-case); Los nombres no pueden ser palabras simples. +- Un objeto [class](/es/docs/Web/JavaScript/Reference/Classes) que define el comportamiento del ejemplo. +- Opcionalmente, un objeto de opciones que contiene la propiedad `extends` , que especifica el elemento preconstruido del que hereda (solo es relevante para elementos personalizados preconstruidos; ver la definición más abajo). -

Entonces por ejemplo, podríamos definir un elemento personalizado word-count como este:

+Entonces por ejemplo, podríamos definir un elemento personalizado [word-count](https://mdn.github.io/web-components-examples/word-count-web-component/) como este: -
customElements.define('word-count', WordCount, { extends: 'p' });
+```js +customElements.define('word-count', WordCount, { extends: 'p' }); +``` -

El elemento se llama word-count, la clase es WordCount, y extiende el elemento {{htmlelement("p")}}.

+El elemento se llama `word-count`, la clase es `WordCount`, y extiende el elemento {{htmlelement("p")}}. -

Para escribir una clase que defina un elemento personalizado, usamos la sintáxis estándar de ES 2015. Por ejemplo, WordCount está estructurada así:

+Para escribir una clase que defina un elemento personalizado, usamos la sintáxis estándar de ES 2015. Por ejemplo, `WordCount` está estructurada así: -
class WordCount extends HTMLParagraphElement {
+```js
+class WordCount extends HTMLParagraphElement {
   constructor() {
     // Siempre llamar primero a super en el constructor
     super();
@@ -47,30 +46,30 @@ translation_of: Web/Web_Components/Using_custom_elements
 
     ...
   }
-}
+} +``` -

Esto es solo un ejemplo sencillo, pero aquí se pueden hacer más cosas. Dentro de la clase podemos definir callbacks de ciclo de vida, que se ejecutan en momentos específicos del ciclo de vida del elemento. Por ejemplo, connectedCallback se invoca cada vez que el elemento se añade a un documento, mientras que attributeChangedCallback se invoca cuando uno de los atributos del elemento se ha añadido, quitado o cambiado.

+Esto es solo un ejemplo sencillo, pero aquí se pueden hacer más cosas. Dentro de la clase podemos definir callbacks de ciclo de vida, que se ejecutan en momentos específicos del ciclo de vida del elemento. Por ejemplo, `connectedCallback` se invoca cada vez que el elemento se añade a un documento, mientras que `attributeChangedCallback` se invoca cuando uno de los atributos del elemento se ha añadido, quitado o cambiado. -

Aprenderás más sobre estos callbacks en la sección Using the lifecycle callbacks más abajo.

+Aprenderás más sobre estos callbacks en la sección [Using the lifecycle callbacks](#using_the_lifecycle_callbacks) más abajo. -

Hay dos tipos de elementos personalizados :

+Hay dos tipos de elementos personalizados : -
    -
  • Elementos personalizados autónomos — estos no heredan de elementos estándar HTML. Se usan estos elementos en una página escribiéndolos literalmente como un elemento HTML nuevo. Por ejemplo <popup-info>, o document.createElement("popup-info").
  • -
  • Elementos preconstruidos personalizados heredan de elementos HTML básicos. Para crear un elemento de este tipo, tienes que especificar qué elemento extiende (como se verá en los ejemplos de abajo), y se usan escribiendo el nombre del elemento básico, pero añadiendo un atributo (o propiedad) {{htmlattrxref("is")}} y dándole como valor el nombre del elemento personalizado que se ha desarrollado. Por ejemplo <p is="word-count">, o document.createElement("p", { is: "word-count" }).
  • -
+- **Elementos personalizados autónomos** — estos no heredan de elementos estándar HTML. Se usan estos elementos en una página escribiéndolos literalmente como un elemento HTML nuevo. Por ejemplo ``, o `document.createElement("popup-info")`. +- **Elementos preconstruidos** **personalizados** heredan de elementos HTML básicos. Para crear un elemento de este tipo, tienes que especificar qué elemento extiende (como se verá en los ejemplos de abajo), y se usan escribiendo el nombre del elemento básico, pero añadiendo un atributo (o propiedad) {{htmlattrxref("is")}} y dándole como valor el nombre del elemento personalizado que se ha desarrollado. Por ejemplo `

`, o `document.createElement("p", { is: "word-count" })`. -

Trabajando mediante algunos ejemplos sencillos

+## Trabajando mediante algunos ejemplos sencillos -

Llegados a este punto, veamos con más detalle cómo se crean los elementos personalizados, a través de algunos ejemplos.

+Llegados a este punto, veamos con más detalle cómo se crean los elementos personalizados, a través de algunos ejemplos. -

Elementos personalizados autónomos

+### Elementos personalizados autónomos -

Echemos un vistazo al ejemplo de un elemento personalizado autónomo — <popup-info-box> (ver el ejemplo en vivo). Este ejemplo toma un icono y una cadena de texto, y los incrusta en la página. Cuando el icono toma el foco, se muestra el texto en una caja emergente (popup) de información para proporcionar más información de contexto.

+Echemos un vistazo al ejemplo de un elemento personalizado autónomo — [``](https://github.com/mdn/web-components-examples/tree/master/popup-info-box-web-component) (ver el [ejemplo en vivo](https://mdn.github.io/web-components-examples/popup-info-box-web-component/)). Este ejemplo toma un icono y una cadena de texto, y los incrusta en la página. Cuando el icono toma el foco, se muestra el texto en una caja emergente (popup) de información para proporcionar más información de contexto. -

Para empezar, en un fichero JavaScript se define una clase llamada PopUpInfo, que extiende la clase genérica {{domxref("HTMLElement")}}.

+Para empezar, en un fichero JavaScript se define una clase llamada `PopUpInfo`, que extiende la clase genérica {{domxref("HTMLElement")}}. -
class PopUpInfo extends HTMLElement {
+```js
+class PopUpInfo extends HTMLElement {
   constructor() {
     // Siempre llamar primero a super en el constructor
     super();
@@ -79,13 +78,15 @@ translation_of: Web/Web_Components/Using_custom_elements
 
     ...
   }
-}
+} +``` -

El trozo de código anterior contiene un constructor() para la clase, que siempre empieza llamando a super() de forma que se establezca correctamente el encadenado del prototipo.

+El trozo de código anterior contiene un [`constructor()`](/en-US/docs/Web/JavaScript/Reference/Classes/constructor) para la clase, que siempre empieza llamando a [`super()`](/en-US/docs/Web/JavaScript/Reference/Operators/super) de forma que se establezca correctamente el encadenado del prototipo. -

Dentro del constructor, definimos toda la funcionalidad que tendrá el elemento cuando se instancie. En este caso, adjuntamos una shadow root al elemento personalizado, mediante manipulación de DOM creamos la estructura interna del shadow DOM del elemento — que se adjunta a su vez a la shadow root — y finalmente añadimos algo de estilos CSS al shadow root.

+Dentro del constructor, definimos toda la funcionalidad que tendrá el elemento cuando se instancie. En este caso, adjuntamos una shadow root al elemento personalizado, mediante manipulación de DOM creamos la estructura interna del shadow DOM del elemento — que se adjunta a su vez a la shadow root — y finalmente añadimos algo de estilos CSS al shadow root. -
// Creamos un shadow root
+```js
+// Creamos un shadow root
 var shadow = this.attachShadow({mode: 'open'});
 
 // Creamos spans
@@ -123,51 +124,55 @@ style.textContent = '.wrapper {' +
 shadow.appendChild(style);
 shadow.appendChild(wrapper);
 wrapper.appendChild(icon);
-wrapper.appendChild(info);
+wrapper.appendChild(info); +``` -

Finalmente, registraremos nuestro elemento en el CustomElementRegistry usando el método define() que mencionamos anteriormente — en los parámetros especificamos el nombre del elemento, y el nombre de la clase que define su funcionalidad::

+Finalmente, registraremos nuestro elemento en el `CustomElementRegistry` usando el método `define()` que mencionamos anteriormente — en los parámetros especificamos el nombre del elemento, y el nombre de la clase que define su funcionalidad:: -
customElements.define('popup-info', PopUpInfo);
+```js +customElements.define('popup-info', PopUpInfo); +``` -

Ahora ya está disponible para usarse en nuestra página. En nuestro HTML, lo usamos de esta manera:

+Ahora ya está disponible para usarse en nuestra página. En nuestro HTML, lo usamos de esta manera: -
<popup-info img="img/alt.png" data-text="Your card validation code (CVC)
+```html
+
+  back of your card.">
+```
 
-
-

Nota: Puedes ver el código fuente JavaScript completo aquí.

-
+> **Nota:** Puedes ver el código [fuente JavaScript completo](https://github.com/mdn/web-components-examples/blob/master/popup-info-box-web-component/main.js) aquí. -
-

Nota: Recuerda que para que los elementos personalizados funcionen, el script que los registra tiene que cargarse después de que el DOM lo interprete. Esto puede hacerse incluyendo un elemento <script> al final del <body>, o poniendo el atributo defer en tu elemento <script>.

-
+> **Nota:** Recuerda que para que los elementos personalizados funcionen, el script que los registra tiene que cargarse después de que el DOM lo interprete. Esto puede hacerse incluyendo un elemento ` + + +``` diff --git a/files/es/web/xml/index.md b/files/es/web/xml/index.md index e1147fd68bf25b..a4903fa1ef18ee 100644 --- a/files/es/web/xml/index.md +++ b/files/es/web/xml/index.md @@ -10,8 +10,8 @@ tags: - XML translation_of: Web/XML --- -

{{QuickLinksWithSubpages("/en-US/docs/Web/XML")}}

+{{QuickLinksWithSubpages("/en-US/docs/Web/XML")}} -

The Extensible Markup Language is a strict serialisation of the Document Object Model.

+The **Extensible Markup Language** is a strict serialisation of the [Document Object Model](/es/docs/Web/API/Document_Object_Model). -

{{LandingPageListSubpages}}

+{{LandingPageListSubpages}} diff --git a/files/es/web/xml/xml_introduction/index.md b/files/es/web/xml/xml_introduction/index.md index 1ce56b7e5531b0..b1326172307531 100644 --- a/files/es/web/xml/xml_introduction/index.md +++ b/files/es/web/xml/xml_introduction/index.md @@ -8,119 +8,87 @@ tags: translation_of: Web/XML/XML_introduction original_slug: Web/XML/Introducción_a_XML --- -

XML es un lenguaje de marcado similar a HTML. Significa Extensible Markup Language (Lenguaje de Marcado Extensible) y es una especificación de W3C como lenguaje de marcado de propósito general. Esto significa que, a diferencia de otros lenguajes de marcado, XML no está predefinido, por lo que debes definir tus propias etiquetas. El propósito principal del lenguaje es compartir datos a través de diferentes sistemas, como Internet.

+XML es un lenguaje de marcado similar a HTML. Significa Extensible Markup Language (Lenguaje de Marcado Extensible) y es una especificación de [W3C](https://www.w3.org/TR/xml/) como lenguaje de marcado de propósito general. Esto significa que, a diferencia de otros lenguajes de marcado, XML no está predefinido, por lo que debes definir tus propias etiquetas. El propósito principal del lenguaje es compartir datos a través de diferentes sistemas, como Internet. -

Hay muchos lenguajes basados en XML; Algunos ejemplos son XHTML, MathML, SVG, XUL, XBL, RSS, y RDF. También puedes crear uno propio.

+Hay muchos lenguajes basados en XML; Algunos ejemplos son [XHTML](/es/docs/XHTML "en/XHTML"), [MathML](/es/docs/Web/MathML "en/MathML"), [SVG](/es/docs/Web/SVG "en/SVG"), [XUL](/es/docs/Mozilla/Tech/XUL "en/XUL"), [XBL](/es/docs/XBL "en/XBL"), [RSS](/es/docs/Archive/RSS "en/RSS"), y [RDF](/es/docs/RDF "en/RDF"). También puedes crear uno propio. -

XML "Correcto" (válido y bien formado)

+## XML "Correcto" (válido y bien formado) -

Para que un documento XML sea correcto, debe ser un documento bien formado, cumpliendo todas las reglas de sintaxis de XML, y válidas, acorde a las reglas de un lenguaje específico. Un ejemplo de un documento que no está bien formado es uno que tiene una etiqueta de apertura y no tiene una de cierre, ni se cierra en si misma.

+Para que un documento XML sea correcto, debe ser un documento bien formado, cumpliendo todas las reglas de sintaxis de XML, y válidas, acorde a las reglas de un lenguaje específico. Un ejemplo de un documento que no está bien formado es uno que tiene una etiqueta de apertura y no tiene una de cierre, ni se cierra en si misma. -

Ejemplo

+### Ejemplo -

En el ejemplo siguiente, vemos un documento en el que una etiqueta que no se cierra a si misma, no tiene etiqueta de cierre.

+En el ejemplo siguiente, vemos un documento en el que una etiqueta que no se cierra a si misma, no tiene etiqueta de cierre. -
<message>
-    <warning>
+```xml
+
+    
         Hola, mundo
-    <!--missing </warning> -->
-</message>
-
+ + +``` -

Ahora veamos una versión correcta del mismo documento:

+Ahora veamos una versión correcta del mismo documento: -
<message>
-    <warning>
+```xml
+
+    
          Hola, mundo
-    </warning>
-</message>
-
- -

Para ser válido, un documento XML necesita cumplir ciertas reglas de semántica que son generalmente definidas en un esquema XML o en una Definición de Tipo de Documento (DTD). Un documento que contiene una etiqueta no definida es inválido. Por ejemplo, si nunca definimos la etiqueta <warning>, el documento anterior no sería válido.

- -
-

La mayoría de los navegadores ofrecen un depurador que puede identificar documentos XML mal formados.

-
- -

Entidades

- -

Al igual que HTML, XML ofrece métodos (llamados entidades) para referir a algunos caracteres especiales reservados (como el signo de mayor que, usado para las etiquetas). Hay cinco de estos caracteres que debes conocer:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EntidadCaracterDescripción
&lt;<Menor que
&gt;>Mayor que
&amp;&Ampersand
&quot;"Comilla doble
&apos;'Apóstrofe (o comilla sencilla)
- -

Aunque solo hay cinco entidades declaradas, se pueden añadir más usando el DTD del documento. Por ejemplo, para crear una nueva entidad &warning;, puedes hacer esto:

- -
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE body [
-  <!ENTITY warning "Advertencia: Algo malo pasó... porfavor intente de nuevo.">
-]>
-<body>
-  <message> &warning; </message>
-</body>
-
- -

También puedes usar referencias a caracteres numéricas para especificar caracteres especiales; por ejemplo, &#xA9; es el símbolo "©".

- -

Presentando XML

- -

XML es generalmente para propósitos descriptivos, pero hay maneras de presentar datos XML. Si no defines una manera específica de renderizar XML, el contenido puro de XML es mostrado en el navegador.

- -

Una forma de estilizar la salida de XML es especificando CSS que aplique al documento usando la instrucción de procesamiento xml-stylesheet.

- -
<?xml-stylesheet type="text/css" href="stylesheet.css"?>
- -

También hay otra manera más poderosa de presentar XML: Extensible Stylesheet Language Transformations (XSLT) que puede ser usado para transformar XML a otros lenguajes como HTML. Esto hace a XML increíblemente versátil.

- -
<?xml-stylesheet type="text/xsl" href="transform.xsl"?>
- -

Recomendaciones

- -

Este artículo es, obviamente, sólo una breve introducción a los que es XML, con unos pocos ejemplos pequeños y referencias para iniciar. Para más detalles acerca de XML, busca en la Web artículos más a fondo.

- -

Aprender el Lenguaje de Marcado de Hipertexto (HTML) te ayudará a entender mejor XML.

- -

Véase también

- - - -

El artículo Using XML mostrado anteriormente es un gran recurso de información para transformar y crear tu propio lenguaje.

+ + +``` + +Para ser válido, un documento XML necesita cumplir ciertas reglas de semántica que son generalmente definidas en un esquema XML o en una **[Definición de Tipo de Documento](/es/docs/Glossary/DTD "en/DTD")** (DTD). Un documento que contiene una etiqueta no definida es inválido. Por ejemplo, si nunca definimos la etiqueta ``, el documento anterior no sería válido. + +> **Nota:** La mayoría de los navegadores ofrecen un depurador que puede identificar documentos XML mal formados. + +## Entidades + +Al igual que HTML, XML ofrece métodos (llamados entidades) para referir a algunos caracteres especiales reservados (como el signo de mayor que, usado para las etiquetas). Hay cinco de estos caracteres que debes conocer: + +| Entidad | Caracter | Descripción | +| ------- | -------- | ------------------------------ | +| < | < | Menor que | +| > | > | Mayor que | +| & | & | Ampersand | +| " | " | Comilla doble | +| ' | ' | Apóstrofe (o comilla sencilla) | + +Aunque solo hay cinco entidades declaradas, se pueden añadir más usando el [DTD](/es/docs/Glossary/DTD "en/DTD") del documento. Por ejemplo, para crear una nueva entidad `&warning;`, puedes hacer esto: + + + + ]> + + &warning; + + +También puedes usar referencias a caracteres numéricas para especificar caracteres especiales; por ejemplo, \© es el símbolo "©". + +## Presentando XML + +XML es generalmente para propósitos descriptivos, pero hay maneras de presentar datos XML. Si no defines una manera específica de renderizar XML, el contenido puro de XML es mostrado en el navegador. + +Una forma de estilizar la salida de XML es especificando [CSS](/es/docs/Web/CSS "en/CSS") que aplique al documento usando la instrucción de procesamiento `xml-stylesheet`. + + + +También hay otra manera más poderosa de presentar XML: **Extensible Stylesheet Language Transformations** ([XSLT](/es/docs/Web/XSLT "en/XSLT")) que puede ser usado para transformar XML a otros lenguajes como HTML. Esto hace a XML increíblemente versátil. + + + +## Recomendaciones + +Este artículo es, obviamente, sólo una breve introducción a los que es XML, con unos pocos ejemplos pequeños y referencias para iniciar. Para más detalles acerca de XML, busca en la Web artículos más a fondo. + +Aprender el Lenguaje de Marcado de Hipertexto ([HTML](/es/docs/Web/HTML "en/HTML")) te ayudará a entender mejor XML. + +## Véase también + +- [XML.com](http://www.xml.com/) +- [Extensible Markup Language (XML) @ W3.org](https://www.w3.org/XML/) +- [XML Example: A List Apart](http://www.alistapart.com/d/usingxml/xml_uses_a.html) +- [Using XML: A List Apart](http://www.alistapart.com/articles/usingxml/) + +El artículo [Using XML](http://www.alistapart.com/articles/usingxml/) mostrado anteriormente es un gran recurso de información para transformar y crear tu propio lenguaje. diff --git a/files/es/web/xpath/axes/ancestor-or-self/index.md b/files/es/web/xpath/axes/ancestor-or-self/index.md index f216eac6a63a5c..494cd4cbb399eb 100644 --- a/files/es/web/xpath/axes/ancestor-or-self/index.md +++ b/files/es/web/xpath/axes/ancestor-or-self/index.md @@ -4,6 +4,6 @@ slug: Web/XPath/Axes/ancestor-or-self translation_of: Web/XPath/Axes/ancestor-or-self original_slug: Web/XPath/Ejes/ancestor-or-self --- -

-

El nodo ancestor-or-self indica el nodo de contexto y todos sus antecesores, incluyendo el nodo raiz. -

{{ languages( { "en": "en/XPath/Axes/ancestor-or-self", "fr": "fr/XPath/Axes/ancestor-or-self", "pl": "pl/XPath/Osie/ancestor-or-self" } ) }} +El nodo `ancestor-or-self` indica el nodo de contexto y todos sus antecesores, incluyendo el nodo raiz. + +{{ languages( { "en": "en/XPath/Axes/ancestor-or-self", "fr": "fr/XPath/Axes/ancestor-or-self", "pl": "pl/XPath/Osie/ancestor-or-self" } ) }} diff --git a/files/es/web/xpath/axes/ancestor/index.md b/files/es/web/xpath/axes/ancestor/index.md index dfbcb73abd4008..bd296ed95e23b3 100644 --- a/files/es/web/xpath/axes/ancestor/index.md +++ b/files/es/web/xpath/axes/ancestor/index.md @@ -4,6 +4,6 @@ slug: Web/XPath/Axes/ancestor translation_of: Web/XPath/Axes/ancestor original_slug: Web/XPath/Ejes/ancestor --- -

-

El eje ancestor indica todos los antecesores del nodo de contexto comenzando con el nodo padre y viajando hacia el nodo raiz. -

{{ languages( { "en": "en/XPath/Axes/ancestor", "fr": "fr/XPath/Axes/ancestor", "pl": "pl/XPath/Osie/ancestor" } ) }} +El eje `ancestor` indica todos los antecesores del nodo de contexto comenzando con el nodo padre y viajando hacia el nodo raiz. + +{{ languages( { "en": "en/XPath/Axes/ancestor", "fr": "fr/XPath/Axes/ancestor", "pl": "pl/XPath/Osie/ancestor" } ) }} diff --git a/files/es/web/xpath/axes/attribute/index.md b/files/es/web/xpath/axes/attribute/index.md index 083faf50d153d8..b16b6243e90bc7 100644 --- a/files/es/web/xpath/axes/attribute/index.md +++ b/files/es/web/xpath/axes/attribute/index.md @@ -4,6 +4,6 @@ slug: Web/XPath/Axes/attribute translation_of: Web/XPath/Axes/attribute original_slug: Web/XPath/Ejes/attribute --- -

-

El eje attribute indica los atributos del nodo de contexto. Sólo los elementos tienen atributos. Este eje se puede abreviar con el signo (@). -

{{ languages( { "en": "en/XPath/Axes/attribute", "fr": "fr/XPath/Axes/attribute", "pl": "pl/XPath/Osie/attribute" } ) }} +El eje `attribute` indica los atributos del nodo de contexto. Sólo los elementos tienen atributos. Este eje se puede abreviar con el signo (`@`). + +{{ languages( { "en": "en/XPath/Axes/attribute", "fr": "fr/XPath/Axes/attribute", "pl": "pl/XPath/Osie/attribute" } ) }} diff --git a/files/es/web/xpath/axes/child/index.md b/files/es/web/xpath/axes/child/index.md index a201d8561c7668..256e10e1e25b69 100644 --- a/files/es/web/xpath/axes/child/index.md +++ b/files/es/web/xpath/axes/child/index.md @@ -4,6 +4,6 @@ slug: Web/XPath/Axes/child translation_of: Web/XPath/Axes/child original_slug: Web/XPath/Ejes/child --- -

-

El eje child indica el hijo del nodo de contexto. Si una expresión XPath no especifica un eje, se entiende por defecto. Ya que sólo los nodos raiz o los nodos elementos tienen hijos, cualquier otro uso no seleccionará nada. -

{{ languages( { "en": "en/XPath/Axes/child", "fr": "fr/XPath/Axes/child", "pl": "pl/XPath/Osie/child" } ) }} +El eje `child` indica el hijo del nodo de contexto. Si una expresión XPath no especifica un eje, se entiende por defecto. Ya que sólo los nodos raiz o los nodos elementos tienen hijos, cualquier otro uso no seleccionará nada. + +{{ languages( { "en": "en/XPath/Axes/child", "fr": "fr/XPath/Axes/child", "pl": "pl/XPath/Osie/child" } ) }} diff --git a/files/es/web/xpath/axes/descendant-or-self/index.md b/files/es/web/xpath/axes/descendant-or-self/index.md index fae156641aeb6f..2f0a188db6174a 100644 --- a/files/es/web/xpath/axes/descendant-or-self/index.md +++ b/files/es/web/xpath/axes/descendant-or-self/index.md @@ -4,6 +4,6 @@ slug: Web/XPath/Axes/descendant-or-self translation_of: Web/XPath/Axes/descendant-or-self original_slug: Web/XPath/Ejes/descendant-or-self --- -

-

El eje descendant-or-self indica el nodo de contexto y todos sus descendientes. No se incluyen los nodos atributos y namespaces - el parent de un nodo attribute es un nodo elemento, pero los nodos attribute no son los hijos de sus padres. -

{{ languages( { "en": "en/XPath/Axes/descendant-or-self", "fr": "fr/XPath/Axes/descendant-or-self", "pl": "pl/XPath/Osie/descendant-or-self" } ) }} +El eje `descendant-or-self` indica el nodo de contexto y todos sus descendientes. **No** se incluyen los nodos atributos y namespaces - el `parent` de un nodo `attribute` es un nodo elemento, pero los nodos `attribute` no son los hijos de sus padres. + +{{ languages( { "en": "en/XPath/Axes/descendant-or-self", "fr": "fr/XPath/Axes/descendant-or-self", "pl": "pl/XPath/Osie/descendant-or-self" } ) }} diff --git a/files/es/web/xpath/axes/descendant/index.md b/files/es/web/xpath/axes/descendant/index.md index cb436671e79961..dff11c9e1e6ebf 100644 --- a/files/es/web/xpath/axes/descendant/index.md +++ b/files/es/web/xpath/axes/descendant/index.md @@ -4,6 +4,6 @@ slug: Web/XPath/Axes/descendant translation_of: Web/XPath/Axes/descendant original_slug: Web/XPath/Ejes/descendant --- -

-

El eje descendant indica todos los hijos del nodo de contexto, y todos sus hijos y así sucesivamente. No se incluyen los atributos y namespaces - el parent de un nodo attribute es un nodo elemento, pero los nodos attribute no son los hijos de sus padres. -

{{ languages( { "en": "en/XPath/Axes/descendant", "fr": "fr/XPath/Axes/descendant", "pl": "pl/XPath/Osie/descendant" } ) }} +El eje `descendant` indica todos los hijos del nodo de contexto, y todos sus hijos y así sucesivamente. **No** se incluyen los atributos y namespaces - el `parent` de un nodo `attribute` es un nodo elemento, pero los nodos `attribute` no son los hijos de sus padres. + +{{ languages( { "en": "en/XPath/Axes/descendant", "fr": "fr/XPath/Axes/descendant", "pl": "pl/XPath/Osie/descendant" } ) }} diff --git a/files/es/web/xpath/axes/following-sibling/index.md b/files/es/web/xpath/axes/following-sibling/index.md index c4b6d0da246ee3..c0ee0addc693c3 100644 --- a/files/es/web/xpath/axes/following-sibling/index.md +++ b/files/es/web/xpath/axes/following-sibling/index.md @@ -4,6 +4,6 @@ slug: Web/XPath/Axes/following-sibling translation_of: Web/XPath/Axes/following-sibling original_slug: Web/XPath/Ejes/following-sibling --- -

-El eje following-sibling indica todos los nodos que tienen el mismo padre que el nodo de contexto y aparecen después del nodo de contexto en el documento de origen. -

{{ languages( { "en": "en/XPath/Axes/following-sibling", "fr": "fr/XPath/Axes/following-sibling", "pl": "pl/XPath/Osie/following-sibling" } ) }} +El eje `following-sibling` indica todos los nodos que tienen el mismo padre que el nodo de contexto y aparecen después del nodo de contexto en el documento de origen. + +{{ languages( { "en": "en/XPath/Axes/following-sibling", "fr": "fr/XPath/Axes/following-sibling", "pl": "pl/XPath/Osie/following-sibling" } ) }} diff --git a/files/es/web/xpath/axes/following/index.md b/files/es/web/xpath/axes/following/index.md index 2c762be4ea91cf..a08d892b8ea9a7 100644 --- a/files/es/web/xpath/axes/following/index.md +++ b/files/es/web/xpath/axes/following/index.md @@ -4,6 +4,6 @@ slug: Web/XPath/Axes/following translation_of: Web/XPath/Axes/following original_slug: Web/XPath/Ejes/following --- -

-El eje following indica todos los nodos que aparecen después del nodo de contexto, excepto cualquier nodo descendant, attribute y namespace. -

{{ languages( { "en": "en/XPath/Axes/following", "fr": "fr/XPath/Axes/following", "pl": "pl/XPath/Osie/following" } ) }} +El eje `following` indica todos los nodos que aparecen después del nodo de contexto, excepto cualquier nodo `descendant`, `attribute` y `namespace`. + +{{ languages( { "en": "en/XPath/Axes/following", "fr": "fr/XPath/Axes/following", "pl": "pl/XPath/Osie/following" } ) }} diff --git a/files/es/web/xpath/axes/index.md b/files/es/web/xpath/axes/index.md index 3f0f9f697b2867..087ec274bf9b29 100644 --- a/files/es/web/xpath/axes/index.md +++ b/files/es/web/xpath/axes/index.md @@ -8,41 +8,37 @@ tags: translation_of: Web/XPath/Axes original_slug: Web/XPath/Ejes --- -

{{XsltRef}}Existen trece ejes diferentes en la especificación XPath. Un eje representa una relación con el nodo de contexto, y se utiliza para localizar nodos relativos a ese nodo en el arbol. Lo siguiente es una descripción resumida de los trece ejes disponibles y el grado de soporte disponible en Gecko.

+{{XsltRef}}Existen trece ejes diferentes en la especificación [XPath](es/XPath). Un eje representa una relación con el nodo de contexto, y se utiliza para localizar nodos relativos a ese nodo en el arbol. Lo siguiente es una descripción resumida de los trece ejes disponibles y el grado de soporte disponible en [Gecko](es/Gecko). -

Para mas información sobre el uso de las expresiones XPath, por favor vea la sección Para Futuras Lecturas al final del documento de Transformando XML con XSLT.

+Para mas información sobre el uso de las expresiones XPath, por favor vea la sección [Para Futuras Lecturas](es/Transformando_XML_con_XSLT/Para_Futuras_Lecturas) al final del documento de [Transformando XML con XSLT](es/Transformando_XML_con_XSLT). -

+- [ancestor](es/XPath/Ejes/ancestor) + - : Indica todos los antecesores del nodo de contexto comenzando con el nodo padre y viajando hacia el nodo raiz. +- [ancestor-or-self](es/XPath/Ejes/ancestor-or-self) + - : Indica el nodo de contexto y todos sus antecesores, incluyendo el nodo raiz. +- [attribute](es/XPath/Ejes/attribute) + - : Indica los atributos del nodo de contexto. Sólo los elementos tienen atributos. Este eje se puede abreviar con el signo (`@`). +- [child](es/XPath/Ejes/child) + - : Indica el hijo del nodo de contexto. Si una expresión XPath no especifica un eje, se entiende por defecto. Ya que sólo los nodos raiz o los nodos elementos tienen hijos, cualquier otro uso no seleccionará nada. +- [descendant](es/XPath/Ejes/descendant) + - : Indica todos los hijos del nodo de contexto, y todos sus hijos y así sucesivamente. **No** se incluyen los atributos y namespaces - el `parent` de un nodo `attribute` es un nodo elemento, pero los nodos `attribute` no son los hijos de sus padres. +- [descendant-or-self](es/XPath/Ejes/descendant-or-self) + - : Indica el nodo de contexto y todos sus descendientes. **No** se incluyen los nodos atributos y namespaces - el `parent` de un nodo `attribute` es un nodo elemento, pero los nodos `attribute` no son los hijos de sus padres. +- [following](es/XPath/Ejes/following) + - : Indica todos los nodos que aparecen después del nodo de contexto, excepto cualquier nodo `descendant`, `attribute` y `namespace`. +- [following-sibling](es/XPath/Ejes/following-sibling) + - : Indica todos los nodos que tienen el mismo padre que el nodo de contexto y aparecen después del nodo de contexto en el documento de origen. +- [namespace](es/XPath/Ejes/namespace)_(no soportado)_ + - : Indica todos los nodos que están en el ámbito del nodo de contexto. En este caso, el nodo de contexto debe tener un nodo elemento. +- [parent](es/XPath/Ejes/parent) + - : Indica el único nodo que es el padre del nodo de contexto. Se puede abreviar con dos puntos (`..`). +- [preceding](es/XPath/Ejes/preceding) + - : Indica todos los nodos que preceden al nodo de contexto en el documento excepto cualquier nodo `ancestor`, `attribute` y `namespace`. +- [preceding-sibling](es/XPath/Ejes/preceding-sibling) + - : Indica todos los nodos que tienen el mismo padre que el nodo de contexto y aparecen antes que el nodo de contexto en el documento de origen. +- [self](es/XPath/Ejes/self) + - : Indica el nodo de contexto si mismo. Se puede abreviar con un solo punto (`.`). -
-
ancestor
-
Indica todos los antecesores del nodo de contexto comenzando con el nodo padre y viajando hacia el nodo raiz.
-
ancestor-or-self
-
Indica el nodo de contexto y todos sus antecesores, incluyendo el nodo raiz.
-
attribute
-
Indica los atributos del nodo de contexto. Sólo los elementos tienen atributos. Este eje se puede abreviar con el signo (@).
-
child
-
Indica el hijo del nodo de contexto. Si una expresión XPath no especifica un eje, se entiende por defecto. Ya que sólo los nodos raiz o los nodos elementos tienen hijos, cualquier otro uso no seleccionará nada.
-
descendant
-
Indica todos los hijos del nodo de contexto, y todos sus hijos y así sucesivamente. No se incluyen los atributos y namespaces - el parent de un nodo attribute es un nodo elemento, pero los nodos attribute no son los hijos de sus padres.
-
descendant-or-self
-
Indica el nodo de contexto y todos sus descendientes. No se incluyen los nodos atributos y namespaces - el parent de un nodo attribute es un nodo elemento, pero los nodos attribute no son los hijos de sus padres.
-
following
-
Indica todos los nodos que aparecen después del nodo de contexto, excepto cualquier nodo descendant, attribute y namespace.
-
following-sibling
-
Indica todos los nodos que tienen el mismo padre que el nodo de contexto y aparecen después del nodo de contexto en el documento de origen.
-
namespace(no soportado)
-
Indica todos los nodos que están en el ámbito del nodo de contexto. En este caso, el nodo de contexto debe tener un nodo elemento.
-
parent
-
Indica el único nodo que es el padre del nodo de contexto. Se puede abreviar con dos puntos (..).
-
preceding
-
Indica todos los nodos que preceden al nodo de contexto en el documento excepto cualquier nodo ancestor, attribute y namespace.
-
preceding-sibling
-
Indica todos los nodos que tienen el mismo padre que el nodo de contexto y aparecen antes que el nodo de contexto en el documento de origen.
-
self
-
Indica el nodo de contexto si mismo. Se puede abreviar con un solo punto (.).
-
+Categorias -

Categorias

- -

interwiki links

+interwiki links diff --git a/files/es/web/xpath/axes/namespace/index.md b/files/es/web/xpath/axes/namespace/index.md index 0504ff600d4bff..f35d9782955df6 100644 --- a/files/es/web/xpath/axes/namespace/index.md +++ b/files/es/web/xpath/axes/namespace/index.md @@ -4,7 +4,8 @@ slug: Web/XPath/Axes/namespace translation_of: Web/XPath/Axes/namespace original_slug: Web/XPath/Ejes/namespace --- -

-(not supported) -

El eje namespace indica todos los nodos que están en el ámbito del nodo de contexto. En este caso, el nodo de contexto debe tener un nodo elemento. -

{{ languages( { "en": "en/XPath/Axes/namespace", "fr": "fr/XPath/Axes/namespace", "pl": "pl/XPath/Osie/namespace" } ) }} +_(not supported)_ + +El eje `namespace` indica todos los nodos que están en el ámbito del nodo de contexto. En este caso, el nodo de contexto debe tener un nodo elemento. + +{{ languages( { "en": "en/XPath/Axes/namespace", "fr": "fr/XPath/Axes/namespace", "pl": "pl/XPath/Osie/namespace" } ) }} diff --git a/files/es/web/xpath/axes/parent/index.md b/files/es/web/xpath/axes/parent/index.md index a9dda727e7076e..07bc1eeb04a045 100644 --- a/files/es/web/xpath/axes/parent/index.md +++ b/files/es/web/xpath/axes/parent/index.md @@ -4,6 +4,6 @@ slug: Web/XPath/Axes/parent translation_of: Web/XPath/Axes/parent original_slug: Web/XPath/Ejes/parent --- -

-El eje parent indica el único nodo que es el padre del nodo de contexto. Se puede abreviar con dos puntos (..). -

{{ languages( { "en": "en/XPath/Axes/parent", "fr": "fr/XPath/Axes/parent", "pl": "pl/XPath/Osie/parent" } ) }} +El eje `parent` indica el único nodo que es el padre del nodo de contexto. Se puede abreviar con dos puntos (`..`). + +{{ languages( { "en": "en/XPath/Axes/parent", "fr": "fr/XPath/Axes/parent", "pl": "pl/XPath/Osie/parent" } ) }} diff --git a/files/es/web/xpath/axes/preceding-sibling/index.md b/files/es/web/xpath/axes/preceding-sibling/index.md index 0811a4c324a2a5..c2efd05d06b859 100644 --- a/files/es/web/xpath/axes/preceding-sibling/index.md +++ b/files/es/web/xpath/axes/preceding-sibling/index.md @@ -4,6 +4,6 @@ slug: Web/XPath/Axes/preceding-sibling translation_of: Web/XPath/Axes/preceding-sibling original_slug: Web/XPath/Ejes/preceding-sibling --- -

-El eje preceding-sibling indica todos los nodos que tienen el mismo padre que el nodo de contexto y aparecen antes que el nodo de contexto en el documento de origen. -

{{ languages( { "en": "en/XPath/Axes/preceding-sibling", "fr": "fr/XPath/Axes/preceding-sibling", "pl": "pl/XPath/Osie/preceding-sibling" } ) }} +El eje `preceding-sibling` indica todos los nodos que tienen el mismo padre que el nodo de contexto y aparecen antes que el nodo de contexto en el documento de origen. + +{{ languages( { "en": "en/XPath/Axes/preceding-sibling", "fr": "fr/XPath/Axes/preceding-sibling", "pl": "pl/XPath/Osie/preceding-sibling" } ) }} diff --git a/files/es/web/xpath/axes/preceding/index.md b/files/es/web/xpath/axes/preceding/index.md index 034af30ba6e8ba..642066d07af00a 100644 --- a/files/es/web/xpath/axes/preceding/index.md +++ b/files/es/web/xpath/axes/preceding/index.md @@ -4,6 +4,6 @@ slug: Web/XPath/Axes/preceding translation_of: Web/XPath/Axes/preceding original_slug: Web/XPath/Ejes/preceding --- -

-El eje preceding indica todos los nodos que preceden al nodo de contexto en el documento excepto cualquier nodo ancestor, attribute y namespace. -

{{ languages( { "en": "en/XPath/Axes/preceding", "fr": "fr/XPath/Axes/preceding", "pl": "pl/XPath/Osie/preceding" } ) }} +El eje `preceding` indica todos los nodos que preceden al nodo de contexto en el documento excepto cualquier nodo `ancestor`, `attribute` y `namespace`. + +{{ languages( { "en": "en/XPath/Axes/preceding", "fr": "fr/XPath/Axes/preceding", "pl": "pl/XPath/Osie/preceding" } ) }} diff --git a/files/es/web/xpath/functions/contains/index.md b/files/es/web/xpath/functions/contains/index.md index 47231a83247506..ccf074a27bf070 100644 --- a/files/es/web/xpath/functions/contains/index.md +++ b/files/es/web/xpath/functions/contains/index.md @@ -4,30 +4,34 @@ slug: Web/XPath/Functions/contains translation_of: Web/XPath/Functions/contains original_slug: Web/XPath/Funciones/contains --- -

{{ XsltRef() }} -


-La función contains determina si la primera cadena del argumento contiene la segunda cadena del argumento y devuelve el booleano verdadero o falso. -

-

Sintaxis

-
contains( haystack , needle )
-
-

Argumentos

-
haystack -
La cadena donde buscar -
-
needle -
La subcadena a buscar en haystack -
-

Devuelve

-

true si haystack contiene needle. Si no, false. -

-

Definido

-

XPath 1.0 4.2 -

-

Soporte en Gecko

-

Soportado. -

-
-
+ +La función `contains` determina si la primera cadena del argumento contiene la segunda cadena del argumento y devuelve el booleano verdadero o falso. + +### Sintaxis + + contains( haystack , needle ) + +### Argumentos + +- `haystack` + - : La cadena donde buscar + + + +- `needle` + - : La subcadena a buscar en `haystack` + +### Devuelve + +`true` si `haystack` contiene `needle`. Si no, `false`. + +### Definido + +[XPath 1.0 4.2](http://www.w3.org/TR/xpath#function-contains) + +### Soporte en Gecko + +Soportado. + {{ languages( { "en": "en/XPath/Functions/contains", "fr": "fr/XPath/Fonctions/contains", "ja": "ja/XPath/Functions/contains", "pl": "pl/XPath/Funkcje/contains" } ) }} diff --git a/files/es/web/xpath/functions/index.md b/files/es/web/xpath/functions/index.md index 2913e4beec9247..6da58c9aa4ed28 100644 --- a/files/es/web/xpath/functions/index.md +++ b/files/es/web/xpath/functions/index.md @@ -10,46 +10,44 @@ tags: translation_of: Web/XPath/Functions original_slug: Web/XPath/Funciones --- -

{{ XsltRef() }} A continuación se presenta una lista ordenada de las funciones core de XPath y agregados específicos de XSLT a XPath, incluyendo una descripción, sintaxis, un listado de argumentos, tipo de resultado, referencia apopiada a W3C y el estado actual de soporte en el motor Gecko. para más información sobre el uso de las funciones de XPath/XSLT, por favor vea la página Para más información.

+{{ XsltRef() }} A continuación se presenta una lista ordenada de las funciones core de XPath y agregados específicos de XSLT a XPath, incluyendo una descripción, sintaxis, un listado de argumentos, tipo de resultado, referencia apopiada a W3C y el estado actual de soporte en el motor Gecko. para más información sobre el uso de las funciones de XPath/XSLT, por favor vea la página [**Para más información**](/en/Transforming_XML_with_XSLT/For_Further_Reading "en/Transforming_XML_with_XSLT/For_Further_Reading"). - +- [boolean()](/en/XPath/Functions/boolean "en/XPath/Functions/boolean") +- [ceiling()](/en/XPath/Functions/ceiling "en/XPath/Functions/ceiling") +- [choose()](/en/XPath/Functions/choose "en/XPath/Functions/choose") +- [concat()](/en/XPath/Functions/concat "en/XPath/Functions/concat") +- [contains()](/en/XPath/Functions/contains "en/XPath/Functions/contains") +- [count()](/en/XPath/Functions/count "en/XPath/Functions/count") +- [current()](/en/XPath/Functions/current "en/XPath/Functions/current") _Específico de XSLT_ +- [document()](/en/XPath/Functions/document "en/XPath/Functions/document") _Específico de XSLT_ +- [element-available()](/en/XPath/Functions/element-available "en/XPath/Functions/element-available") +- [false()](/en/XPath/Functions/false "en/XPath/Functions/false") +- [floor()](/en/XPath/Functions/floor "en/XPath/Functions/floor") +- [format-number()](/en/XPath/Functions/format-number "en/XPath/Functions/format-number") _Específico de XSLT_ +- [function-available()](/en/XPath/Functions/function-available "en/XPath/Functions/function-available") +- [generate-id()](/en/XPath/Functions/generate-id "en/XPath/Functions/generate-id") _Específico de XSLT_ +- [id()](/en/XPath/Functions/id "en/XPath/Functions/id") _(Parcialmente soportado)_ +- [key()](/en/XPath/Functions/key "en/XPath/Functions/key") _Específico de XSLT_ +- [lang()](/en/XPath/Functions/lang "en/XPath/Functions/lang") +- [last()](/en/XPath/Functions/last "en/XPath/Functions/last") +- [local-name()](/en/XPath/Functions/local-name "en/XPath/Functions/local-name") +- [name()](/en/XPath/Functions/name "en/XPath/Functions/name") +- [namespace-uri()](/en/XPath/Functions/namespace-uri "en/XPath/Functions/namespace-uri") +- [normalize-space()](/en/XPath/Functions/normalize-space "en/XPath/Functions/normalize-space") +- [not()](/en/XPath/Functions/not "en/XPath/Functions/not") +- [number()](/en/XPath/Functions/number "en/XPath/Functions/number") +- [position()](/en/XPath/Functions/position "en/XPath/Functions/position") +- [round()](/en/XPath/Functions/round "en/XPath/Functions/round") +- [starts-with()](/en/XPath/Functions/starts-with "en/XPath/Functions/starts-with") +- [string()](/en/XPath/Functions/string "en/XPath/Functions/string") +- [string-length()](/en/XPath/Functions/string-length "en/XPath/Functions/string-length") +- [substring()](/en/XPath/Functions/substring "en/XPath/Functions/substring") +- [substring-after()](/en/XPath/Functions/substring-after "en/XPath/Functions/substring-after") +- [substring-before()](/en/XPath/Functions/substring-before "en/XPath/Functions/substring-before") +- [sum()](/en/XPath/Functions/sum "en/XPath/Functions/sum") +- [system-property()](/en/XPath/Functions/system-property "en/XPath/Functions/system-property") _Específico de XSLT_ +- [translate()](/en/XPath/Functions/translate "en/XPath/Functions/translate") +- [true()](/en/XPath/Functions/true "en/XPath/Functions/true") +- [unparsed-entity-url()](/en/XPath/Functions/unparsed-entity-url "en/XPath/Functions/unparsed-entity-url") _Específico de XSLT (no soportado)_ -

{{ languages( { "fr": "fr/XPath/Fonctions", "ja": "ja/XPath/Functions", "zh-cn": "cn/XPath/Functions", "pl": "pl/XPath/Funkcje" , "ko": "ko/XPath/Functions"} ) }}

+{{ languages( { "fr": "fr/XPath/Fonctions", "ja": "ja/XPath/Functions", "zh-cn": "cn/XPath/Functions", "pl": "pl/XPath/Funkcje" , "ko": "ko/XPath/Functions"} ) }} diff --git a/files/es/web/xpath/functions/substring/index.md b/files/es/web/xpath/functions/substring/index.md index 637cbe59caa7da..fc70e50516c67a 100644 --- a/files/es/web/xpath/functions/substring/index.md +++ b/files/es/web/xpath/functions/substring/index.md @@ -4,35 +4,43 @@ slug: Web/XPath/Functions/substring translation_of: Web/XPath/Functions/substring original_slug: Web/XPath/Funciones/substring --- -

{{ XsltRef() }} -


-La función substring devuelve una parte de una cadena dada. -

-

Sintaxis

-
substring( string , start [, length] )
-
-

Argumentos

-
string
La cadena a evaluar. -
-
start -
La posición dentro de string donde comienza la subcadena. -
-
length (opcional) -
La longitud de la subcadena. Si se omite, la cadena devuelta contendrá todos los carácteres desde la posición start hasta el final de string. -
-

Devuelve

-

Una cadena. -

-

Notas

-

Como en otras funciones XPath, la posición no está basada en cero. El primer carácter de la cadena tiene la posición 1, no 0. -

-

Definido

-

XPath 1.0 4.2 -

-

Soporte en Gecko

-

Soportado. -

-
-
+ +La función `substring` devuelve una parte de una cadena dada. + +### Sintaxis + + substring( string , start [, length] ) + +### Argumentos + +- _`string`_ + - : La cadena a evaluar. + + + +- _`start`_ + - : La posición dentro de _`string`_ donde comienza la subcadena. + + + +- _`length`_ (opcional) + - : La longitud de la subcadena. Si se omite, la cadena devuelta contendrá todos los carácteres desde la posición _`start`_ hasta el final de _`string`_. + +### Devuelve + +Una cadena. + +### Notas + +Como en otras funciones XPath, la posición no está basada en cero. El primer carácter de la cadena tiene la posición 1, no 0. + +### Definido + +[XPath 1.0 4.2](http://www.w3.org/TR/xpath#function-substring) + +### Soporte en Gecko + +Soportado. + {{ languages( { "en": "en/XPath/Functions/substring", "fr": "fr/XPath/Fonctions/substring", "ja": "ja/XPath/Functions/substring", "pl": "pl/XPath/Funkcje/substring" } ) }} diff --git a/files/es/web/xpath/functions/true/index.md b/files/es/web/xpath/functions/true/index.md index 18411f8e433e10..691d86ee80949e 100644 --- a/files/es/web/xpath/functions/true/index.md +++ b/files/es/web/xpath/functions/true/index.md @@ -7,24 +7,22 @@ tags: translation_of: Web/XPath/Functions/true original_slug: Web/XPath/Funciones/true --- -

{{XsltRef}}

+{{XsltRef}} -


- La función true devuelve un valor booleano de verdadero.

+La función `true` devuelve un valor booleano de verdadero. -

Sintaxis

+### Sintaxis -
true()
-
+ true() -

Devuelve

+### Devuelve -

El booleano verdadero.

+El booleano `verdadero`. -

Definido

+### Definido -

XPath 1.0 4.3

+[XPath 1.0 4.3](http://www.w3.org/TR/xpath#function-true) -

Soporte en Gecko

+### Soporte en Gecko -

Supported.

+Supported. diff --git a/files/es/web/xslt/element/apply-imports/index.md b/files/es/web/xslt/element/apply-imports/index.md index 85c218f6c02405..722f117627b426 100644 --- a/files/es/web/xslt/element/apply-imports/index.md +++ b/files/es/web/xslt/element/apply-imports/index.md @@ -7,31 +7,30 @@ tags: translation_of: Web/XSLT/Element/apply-imports original_slug: Web/XSLT/apply-imports --- -

{{XsltRef}}

+{{XsltRef}} -


- El elemento <xsl:apply-imports> es complejo en su uso, y es utilizado mayoritariamente en hojas de estilo muy complejas. La precedencia de importación indica que las plantillas en la hoja de estilo principal tienen mayor precedencia que las plantillas en las hojas de estilo importadas. Sin embargo, en ocasiones es útil forzar al procesador para que aplique una plantilla de menor procedencia contenida en la hoja de estilo importada en lugar de una plantilla equivalente en la hoja de estilo principal.

+El elemento `` es complejo en su uso, y es utilizado mayoritariamente en hojas de estilo muy complejas. La precedencia de importación indica que las plantillas en la hoja de estilo principal tienen mayor precedencia que las plantillas en las hojas de estilo importadas. Sin embargo, en ocasiones es útil forzar al procesador para que aplique una plantilla de menor procedencia contenida en la hoja de estilo importada en lugar de una plantilla equivalente en la hoja de estilo principal. -

Sintaxis

+### Sintaxis -
<xsl:apply-imports/>
+ -

Atributos requeridos

+### Atributos requeridos -

Ninguno.

+Ninguno. -

Atributos opcionales

+### Atributos opcionales -

Ninguno.

+Ninguno. -

Tipo

+### Tipo -

Instrucción, aparece dentro de una plantilla.

+Instrucción, aparece dentro de una plantilla. -

Definido

+### Definido -

XSLT, sección 5.6.

+XSLT, sección 5.6. -

Soporte en Gecko

+### Soporte en Gecko -

Soportado.

+Soportado. diff --git a/files/es/web/xslt/element/apply-templates/index.md b/files/es/web/xslt/element/apply-templates/index.md index 7eb87c9d4defca..2dc14efc97e2a0 100644 --- a/files/es/web/xslt/element/apply-templates/index.md +++ b/files/es/web/xslt/element/apply-templates/index.md @@ -7,38 +7,36 @@ tags: translation_of: Web/XSLT/Element/apply-templates original_slug: Web/XSLT/apply-templates --- -

{{XsltRef}}

+{{XsltRef}} -

El elemento <xsl:apply-templates> selecciona un conjunto de nodos del documento de entrada e instruye al procesador para aplicar las plantillas apropiadas a ellos.

+El elemento `` selecciona un conjunto de nodos del documento de entrada e instruye al procesador para aplicar las plantillas apropiadas a ellos. -

Sintaxis

+### Sintaxis -
<xsl:apply-templates select=EXPRESION mode=NOMBRE>
-	<xsl:with-param> [opcional]
-	<xsl:sort> [opcional]
-</xsl:apply-templates>
+ + [opcional] + [opcional] + -

Atributos requeridos

+### Atributos requeridos -

Ninguno.

+Ninguno. -

Atributos opcionales

+### Atributos opcionales -
-
select
-
Usa una expresión XPath para indicar los nodos a ser procesados. Un asterisco(*) selecciona por completo el conjunto de nodos. Si el atributo no se establece, todos los nodos hijos del nodo actual son seleccionados.
-
mode
-
Si existend diferentes maneras definidas de procesar el mismo nodo, se distingue entre ellas.
-
+- `select` + - : Usa una expresión XPath para indicar los nodos a ser procesados. Un asterisco(`*`) selecciona por completo el conjunto de nodos. Si el atributo no se establece, todos los nodos hijos del nodo actual son seleccionados. +- `mode` + - : Si existend diferentes maneras definidas de procesar el mismo nodo, se distingue entre ellas. -

Tipo

+### Tipo -

Instrucción, aparece dentro de una plantilla.

+Instrucción, aparece dentro de una plantilla. -

Definido

+### Definido -

XSLT sección 5.4.

+XSLT sección 5.4. -

Soporte en Gecko

+### Soporte en Gecko -

Soportado.

+Soportado. diff --git a/files/es/web/xslt/element/attribute-set/index.md b/files/es/web/xslt/element/attribute-set/index.md index 04f813eb1a51ae..75dcc421e362e9 100644 --- a/files/es/web/xslt/element/attribute-set/index.md +++ b/files/es/web/xslt/element/attribute-set/index.md @@ -7,38 +7,34 @@ tags: translation_of: Web/XSLT/Element/attribute-set original_slug: Web/XSLT/attribute-set --- -

{{XsltRef}}

+{{XsltRef}} -

El elemento <xsl:attribute-set> genera un conjunto con nombre de atributos, el cual puede ser aplicado al documento de salida, de una manera similar a los estilos con nombre dentro de CSS.

+El elemento `` genera un conjunto con nombre de atributos, el cual puede ser aplicado al documento de salida, de una manera similar a los estilos con nombre dentro de CSS. -

Sintaxi

+### Sintaxi -
<xsl:attribute-set name=NOMBRE use-attribute-sets=LISTA-DE-NOMBRES>
-	<xsl:attribute>
-</xsl:attribute-set>
+ + + -

Atributos requeridos

+### Atributos requeridos -
-
name
-
Indica el nombre del conjunto de elementos. El nombre debe seguir las reglas QName.
-
+- `name` + - : Indica el nombre del conjunto de elementos. El nombre debe seguir las reglas QName. -

Atributos opcionales

+### Atributos opcionales -
-
use-attribute-sets
-
Genera un conjunto de elementos a partir de otros conjuntos de atributos. Los nombres de los conjuntos deben estar separados por espacios en blanco y no se deben solapar directa o indirectamente.
-
+- `use-attribute-sets` + - : Genera un conjunto de elementos a partir de otros conjuntos de atributos. Los nombres de los conjuntos deben estar separados por espacios en blanco y no se deben solapar directa o indirectamente. -

Tipo

+### Tipo -

Debe ser hijo del elemento <xsl:stylesheet> o <xsl:transform>.

+Debe ser hijo del elemento `` o ``. -

Definido

+### Definido -

XSLT, sección 7.1.4.

+XSLT, sección 7.1.4. -

Soporte en Gecko

+### Soporte en Gecko -

Soportado

+Soportado diff --git a/files/es/web/xslt/element/attribute/index.md b/files/es/web/xslt/element/attribute/index.md index 37cada6fb534be..878a0bf410b443 100644 --- a/files/es/web/xslt/element/attribute/index.md +++ b/files/es/web/xslt/element/attribute/index.md @@ -7,38 +7,34 @@ tags: translation_of: Web/XSLT/Element/attribute original_slug: Web/XSLT/attribute --- -

{{XsltRef}}

+{{XsltRef}} -

El elemento <xsl:attribute> genera un atributo en el documento de salida, usando cualquier valor que puede ser accedido desde la hoja de estilo. Este elemento tiene que ser la primer cosa que se encuentre dentro del elemento del documento de salida para el cual se desea generar el atributo.

+El elemento `` genera un atributo en el documento de salida, usando cualquier valor que puede ser accedido desde la hoja de estilo. Este elemento tiene que ser la primer cosa que se encuentre dentro del elemento del documento de salida para el cual se desea generar el atributo. -

Sintaxis

+### Sintaxis -
<xsl:attribute name=NOMBRE namespace=URI>
-	PLANTILLA
-</xsl:attribute>
+ + PLANTILLA + -

Atributos requeridos

+### Atributos requeridos -
-
name
-
Indica el nombre del atributo a ser generado en el documento de salida. El nombre debe seguir las reglas de QName.
-
+- `name` + - : Indica el nombre del atributo a ser generado en el documento de salida. El nombre debe seguir las reglas de QName. -

Atributos opcionales

+### Atributos opcionales -
-
namespace
-
Define el URI del nombre de espacio para el atributo en el documento de salida. No se puede especificar el prefijo del nombre de espacio con este elemento.
-
+- `namespace` + - : Define el URI del nombre de espacio para el atributo en el documento de salida. No se puede especificar el prefijo del nombre de espacio con este elemento. -

Tipo

+### Tipo -

Instrucción, aparece dentro de una plantilla o dentro del elemento <xsl:attribute-set>.

+Instrucción, aparece dentro de una plantilla o dentro del elemento ``. -

Definido

+### Definido -

XSLT, sección 7.1.3.

+XSLT, sección 7.1.3. -

Soporte en Gecko

+### Soporte en Gecko -

Soportado.

+Soportado. diff --git a/files/es/web/xslt/element/call-template/index.md b/files/es/web/xslt/element/call-template/index.md index 788aa9a1e01b47..a018b68140daa7 100644 --- a/files/es/web/xslt/element/call-template/index.md +++ b/files/es/web/xslt/element/call-template/index.md @@ -7,35 +7,33 @@ tags: translation_of: Web/XSLT/Element/call-template original_slug: Web/XSLT/call-template --- -

{{XsltRef}}

+{{XsltRef}} -

El elemento <xsl:call-template> invoca una plantilla con nombre.

+El elemento `` invoca una plantilla con nombre. -

Sintaxis

+### Sintaxis -
<xsl:call-template name=NOMBRE>
-	<xsl:with-param> [opcional]
-</xsl:call-template>
+ + [opcional] + -

Atributos requeridos

+### Atributos requeridos -
-
name
-
Indica el nombre del template que se desea invocar.
-
+- `name` + - : Indica el nombre del template que se desea invocar. -

Atributos opcionales

+### Atributos opcionales -

Ninguno.

+Ninguno. -

Tipo

+### Tipo -

Instrucción, aparece dentro de una plantilla.

+Instrucción, aparece dentro de una plantilla. -

Definido

+### Definido -

XSLT, sección 6.

+XSLT, sección 6. -

Soporte en Gecko

+### Soporte en Gecko -

Soportado.

+Soportado. diff --git a/files/es/web/xslt/element/choose/index.md b/files/es/web/xslt/element/choose/index.md index 344a9966876461..9540ca4d8ac4e7 100644 --- a/files/es/web/xslt/element/choose/index.md +++ b/files/es/web/xslt/element/choose/index.md @@ -7,32 +7,32 @@ tags: translation_of: Web/XSLT/Element/choose original_slug: Web/XSLT/choose --- -

{{XsltRef}}
- El elemento <xsl:choose> define una elección entre un número de alternativas. Funciona como una sentencia switch en los lenguajes procedurales.

+{{XsltRef}} +El elemento `` define una elección entre un número de alternativas. Funciona como una sentencia switch en los lenguajes procedurales. -

Sintaxis

+### Sintaxis -
<xsl:choose>
-	<xsl:when>
-	<xsl:otherwise> [opcional]
-</<xsl:choose>
+ + + [opcional] + -

Atributos necesarios

+### Atributos necesarios -

Ninguno.

+Ninguno. -

Atributos opcionales

+### Atributos opcionales -

Ninguno.

+Ninguno. -

Tipo

+### Tipo -

Instrucción, aparece con una plantilla. Contiene uno o mas elementos <xsl:when>, y, opcionalmente, un elemento <xsl:otherwise> final.

+Instrucción, aparece con una plantilla. Contiene uno o mas elementos ``, y, opcionalmente, un elemento `` final. -

Definido

+### Definido -

XSLT, sección 9.2.

+XSLT, sección 9.2. -

Soporte en Gecko

+### Soporte en Gecko -

Soportado.

+Soportado. diff --git a/files/es/web/xslt/element/comment/index.md b/files/es/web/xslt/element/comment/index.md index 025138aefab5d1..4bc6a3594b0cde 100644 --- a/files/es/web/xslt/element/comment/index.md +++ b/files/es/web/xslt/element/comment/index.md @@ -7,32 +7,32 @@ tags: translation_of: Web/XSLT/Element/comment original_slug: Web/XSLT/comment --- -

{{XsltRef}}

+{{XsltRef}} -

El elemento <xsl:comment> escribe un comentario en el documento de salida. Debe incluir sólo texto.

+El elemento `` escribe un comentario en el documento de salida. Debe incluir sólo texto. -

Sintaxis

+### Sintaxis -
<xsl:comment>
-	TEMPLATE
-</xsl:comment> 
+ + TEMPLATE + -

Atributos necesarios

+### Atributos necesarios -

Ninguno.

+Ninguno. -

Atributos opcionales

+### Atributos opcionales -

Ninguno.

+Ninguno. -

Tipo

+### Tipo -

Instrucción, aparece dentro de una plantilla.

+Instrucción, aparece dentro de una plantilla. -

Definido

+### Definido -

XSLT, sección 7.4.

+XSLT, sección 7.4. -

Soporte en Gecko

+### Soporte en Gecko -

Soportado.

+Soportado. diff --git a/files/es/web/xslt/element/copy-of/index.md b/files/es/web/xslt/element/copy-of/index.md index 5ecd743ee0fa8d..75fcadd15641a9 100644 --- a/files/es/web/xslt/element/copy-of/index.md +++ b/files/es/web/xslt/element/copy-of/index.md @@ -7,33 +7,31 @@ tags: translation_of: Web/XSLT/Element/copy-of original_slug: Web/XSLT/copy-of --- -

{{XsltRef}}

+{{XsltRef}} -

El elemento <xsl:copy-of> crea una copia completa (incluyendo nodos descendientes) en el documento de salida de lo que sea que indique el atributo.

+El elemento `` crea una copia completa (incluyendo nodos descendientes) en el documento de salida de lo que sea que indique el atributo. -

Sintaxis

+### Sintaxis -
<xsl:copy-of select=EXPRESIÓN />
+ -

Atributos requeridos

+### Atributos requeridos -
-
select
-
Indica la expresión XPath a utilizar para seleccionar lo que será copiado.
-
+- `select` + - : Indica la expresión XPath a utilizar para seleccionar lo que será copiado. -

Atributos opcionales

+### Atributos opcionales -

Ninguno.

+Ninguno. -

Tipo

+### Tipo -

Instrucción, aparece dentro de una plantilla.

+Instrucción, aparece dentro de una plantilla. -

Definido

+### Definido -

XSLT, sección 11.3.

+XSLT, sección 11.3. -

Soporte en Gecko

+### Soporte en Gecko -

Soportado.

+Soportado. diff --git a/files/es/web/xslt/element/copy/index.md b/files/es/web/xslt/element/copy/index.md index 289c57ce95e1d4..712fe2c0736364 100644 --- a/files/es/web/xslt/element/copy/index.md +++ b/files/es/web/xslt/element/copy/index.md @@ -7,35 +7,33 @@ tags: translation_of: Web/XSLT/Element/copy original_slug: Web/XSLT/copy --- -

{{XsltRef}}

+{{XsltRef}} -

El elemento <xsl:copy> genera una copia superficial (el nodo y cualquier nodo del nombre de espacio asociado) del nodo actual al documento de salida. Este elemento no copia ni elementos hijo ni atributos del nodo actual.

+El elemento `` genera una copia superficial (el nodo y cualquier nodo del nombre de espacio asociado) del nodo actual al documento de salida. Este elemento no copia ni elementos hijo ni atributos del nodo actual. -

Sintaxis

+### Sintaxis -
<xsl:copy use-attribute-sets=LISTA-DE-NOMBRES>
-	PLANTILLA
-</xsl:copy>
+ + PLANTILLA + -

Atributos requeridos

+### Atributos requeridos -

Ninguno.

+Ninguno. -

Atributos opcionales

+### Atributos opcionales -
-
use-attribute-sets
-
Lista conjunto de atributos que debería de ser aplicados al nodo de salida, si es un elemento. Los nombres del conjunto deben de estar separados por un espacio en blanco.
-
+- `use-attribute-sets` + - : Lista conjunto de atributos que debería de ser aplicados al nodo de salida, si es un elemento. Los nombres del conjunto deben de estar separados por un espacio en blanco. -

Tipo

+### Tipo -

Instrucción, aparece dentro de una plantilla.

+Instrucción, aparece dentro de una plantilla. -

Definido

+### Definido -

XSLT, sección 7.5.

+XSLT, sección 7.5. -

Soporte en Gecko

+### Soporte en Gecko -

Suportado.

+Suportado. diff --git a/files/es/web/xslt/element/decimal-format/index.md b/files/es/web/xslt/element/decimal-format/index.md index 43d687f8fb5c7f..cd47977546d599 100644 --- a/files/es/web/xslt/element/decimal-format/index.md +++ b/files/es/web/xslt/element/decimal-format/index.md @@ -7,94 +7,92 @@ tags: translation_of: Web/XSLT/Element/decimal-format original_slug: Web/XSLT/decimal-format --- -

{{XsltRef}}

+{{XsltRef}} -

El elemento <xsl:decimal-format> define los caracteres y los símbolos que serán usados en la conversión de números a cadenas de texto usando la función format-number( ).

+El elemento `` define los caracteres y los símbolos que serán usados en la conversión de números a cadenas de texto usando la función `format-number( )`. -

Sintaxis

+### Sintaxis -
<xsl:decimal-format
-	name=NOMBRE
-	decimal-separator=CARACTER
-	grouping-separator=CARACTER
-	infinity=TEXTO
-	minus-sign=CARACTER
-	NaN=TEXTO
-	percent=CARACTER
-	per-mille=CARACTER
-	zero-digit=CARACTER
-	digit=CARACTER
-	pattern-separator=CARACTER />
+ -

Atributos requeridos

+### Atributos requeridos -

Ninguno.

+Ninguno. -

Atributos opcionales

+### Atributos opcionales -
-
name
-
Indica el nombre que tendrá este formato.
-
+- `name` + - : Indica el nombre que tendrá este formato. -
-
decimal-separator
-
Indica el caracter a ser usado como punto decimal. El valor por defecto es (.).
-
+ -
-
grouping-separator
-
Indica el separador de miles. El valor por defecto es (,).
-
+- `decimal-separator` + - : Indica el caracter a ser usado como punto decimal. El valor por defecto es (`.`). -
-
infinity
-
Indica el texto a ser usado para representar el valor de infinito. El valor por defecto es la cadena de texto "Infinity".
-
+ -
-
minus-sign
-
Indica el caracter a ser usado como signo negativo. El valor por defecto es el guión (-).
-
+- `grouping-separator` + - : Indica el separador de miles. El valor por defecto es (`,`). -
-
NaN
-
Indica la cadena de texto a ser usado cuando el valor no es un número. El valor por defecto es la cadena de texto "NaN".
-
+ -
-
percent
-
Indica el caracter a ser usado como signo de porcentaje. El valor por defecto es (%).
-
+- `infinity` + - : Indica el texto a ser usado para representar el valor de infinito. El valor por defecto es la cadena de texto "`Infinity`". -
-
per-mille
-
Indica el separador de miles. El valor por defecto es ().
-
+ -
-
zero-digit
-
Indica el caracter para el cero. El valor por defecto es (0).
-
+- `minus-sign` + - : Indica el caracter a ser usado como signo negativo. El valor por defecto es el guión (`-`). -
-
digit
-
Indica el caracter a ser usado en los patrones de formato para indicar un dígito. El valor por defecto es (#).
-
+ -
-
pattern-separator
-
Indica el caracter para separar patrones de formato negativos y positivos. El valor por defecto es el punto y coma (;).
-
+- `NaN` + - : Indica la cadena de texto a ser usado cuando el valor no es un número. El valor por defecto es la cadena de texto "`NaN`". -

Tipo

+ -

Elemento raíz, debe ser hijo de elemento <xsl:stylesheet> o <xsl:transform>.

+- `percent` + - : Indica el caracter a ser usado como signo de porcentaje. El valor por defecto es (`%`). -

Definido

+ -

XSLT, sección 12.3.

+- `per-mille` + - : Indica el separador de miles. El valor por defecto es (`‰`). -

Soporte en Gecko

+ -

Soportado desde la versión 1.0 (Mozilla 1.0, Netscape 7.0).

+- `zero-digit` + - : Indica el caracter para el cero. El valor por defecto es (`0`). + + + +- `digit` + - : Indica el caracter a ser usado en los patrones de formato para indicar un dígito. El valor por defecto es (`#`). + + + +- `pattern-separator` + - : Indica el caracter para separar patrones de formato negativos y positivos. El valor por defecto es el punto y coma (`;`). + +### Tipo + +Elemento raíz, debe ser hijo de elemento `` o ``. + +### Definido + +XSLT, sección 12.3. + +### Soporte en Gecko + +Soportado desde la versión 1.0 (Mozilla 1.0, Netscape 7.0). diff --git a/files/es/web/xslt/element/element/index.md b/files/es/web/xslt/element/element/index.md index 8e916cc28e7db4..34fd0a97fd4366 100644 --- a/files/es/web/xslt/element/element/index.md +++ b/files/es/web/xslt/element/element/index.md @@ -6,41 +6,36 @@ tags: - XSLT translation_of: Web/XSLT/Element/element --- -

{{XsltRef}}

+{{XsltRef}} -


- El elemento <xsl:element> genera un elemento en el documento de salida.

+El elemento `` genera un elemento en el documento de salida. -

Sintaxis

+### Sintaxis -
<xsl:element name=NOMBRE namespace=URI use-attribute-sets=LISTA-DE-NOMBRES >
-	PLANTILLA
-</xsl:template>
+ + PLANTILLA + -

Atributos requeridos

+### Atributos requeridos -
-
name
-
Indica el nombre deseado del elemento de salida. El nombre debe seguir las reglas de QName.
-
+- `name` + - : Indica el nombre deseado del elemento de salida. El nombre debe seguir las reglas de QName. -

Atributos opcionales

+### Atributos opcionales -
-
namespace
-
Especifica el nombre de espacio del elemento de salida.
-
use-attribute-sets
-
Lista el conjunto de atributos a ser usados en el elemento de salida. Los nombres deberán estar separados por espacios en blanco.
-
+- `namespace` + - : Especifica el nombre de espacio del elemento de salida. +- `use-attribute-sets` + - : Lista el conjunto de atributos a ser usados en el elemento de salida. Los nombres deberán estar separados por espacios en blanco. -

Tipo

+### Tipo -

Instrucción, aparece dentro de una plantilla.

+Instrucción, aparece dentro de una plantilla. -

Definido

+### Definido -

XSLT, sección 7.1.2.

+XSLT, sección 7.1.2. -

Soporte en Gecko

+### Soporte en Gecko -

Soportado

+Soportado diff --git a/files/es/web/xslt/element/fallback/index.md b/files/es/web/xslt/element/fallback/index.md index 684df7d6e04cf9..52eec67df21023 100644 --- a/files/es/web/xslt/element/fallback/index.md +++ b/files/es/web/xslt/element/fallback/index.md @@ -7,33 +7,32 @@ tags: translation_of: Web/XSLT/Element/fallback original_slug: Web/XSLT/fallback --- -

{{XsltRef}}

+{{XsltRef}} -


- El elemento <xsl:fallback> indica la plantilla a usar en caso de que algun elemento extendido (o, eventualmente, una nueva versión) no esté soportado.

+El elemento `` indica la plantilla a usar en caso de que algun elemento extendido (o, eventualmente, una nueva versión) no esté soportado. -

Sintaxis

+### Sintaxis -
<xsl:fallback>
-	PLANTILLA
-</xsl:fallback>
+ + PLANTILLA + -

Atributos requeridos

+### Atributos requeridos -

Ninguno.

+Ninguno. -

Atributos opcionales

+### Atributos opcionales -

Ninguno.

+Ninguno. -

Tipo

+### Tipo -

Instrucción, aparece dentro de una plantilla.

+Instrucción, aparece dentro de una plantilla. -

Definido

+### Definido -

XSLT, sección 15

+XSLT, sección 15 -

Soporte en Gecko

+### Soporte en Gecko -

Sin soporte por el momento.

+Sin soporte por el momento. diff --git a/files/es/web/xslt/element/for-each/index.md b/files/es/web/xslt/element/for-each/index.md index 99d66d9110c05c..4ef682f5f17b2a 100644 --- a/files/es/web/xslt/element/for-each/index.md +++ b/files/es/web/xslt/element/for-each/index.md @@ -7,37 +7,34 @@ tags: translation_of: Web/XSLT/Element/for-each original_slug: Web/XSLT/for-each --- -

{{XsltRef}}

+{{XsltRef}} -


- El elemento <xsl:for-each> selecciona un conjunto de nodos y procesa cada uno de ellos de la misma manera. Se usa comúnmente para iterar a través de un conjunto de nodos o para cambiar el nodo actual. Si se encuentran uno o más elementos <xsl:sort> como hijos de este elemento, el ordenado de los nodos ocurrirá antes del procesamiento. De otra manera, los nodos se procesarán en el orden del documento.

+El elemento `` selecciona un conjunto de nodos y procesa cada uno de ellos de la misma manera. Se usa comúnmente para iterar a través de un conjunto de nodos o para cambiar el nodo actual. Si se encuentran uno o más elementos `` como hijos de este elemento, el ordenado de los nodos ocurrirá antes del procesamiento. De otra manera, los nodos se procesarán en el orden del documento. -

Sintaxis

+### Sintaxis -
<xsl:for-each select=EXPRESIÓN>
-	<xsl:sort> [opcional]
-	PLANTILLA
-</xsl:for-each>
+ + [opcional] + PLANTILLA + -

Atributos requeridos

+### Atributos requeridos -
-
select
-
Usa una expresión XPath para seleccionar los nodos a ser procesados.
-
+- `select` + - : Usa una expresión XPath para seleccionar los nodos a ser procesados. -

Atributos opcionales

+### Atributos opcionales -

Ninguno.

+Ninguno. -

Tipo

+### Tipo -

Instrucción, aparece dentro de una plantilla.

+Instrucción, aparece dentro de una plantilla. -

Definido

+### Definido -

XSLT, sección 8.

+XSLT, sección 8. -

Gecko support

+### Gecko support -

Soportado.

+Soportado. diff --git a/files/es/web/xslt/element/if/index.md b/files/es/web/xslt/element/if/index.md index 30faaf03bd30d9..02a6118dac0fcb 100644 --- a/files/es/web/xslt/element/if/index.md +++ b/files/es/web/xslt/element/if/index.md @@ -7,34 +7,32 @@ tags: translation_of: Web/XSLT/Element/if original_slug: Web/XSLT/if --- -

{{XsltRef}}
- El elemento <xsl:if> contiene un atributo a probar y una plantilla. Si el atributo resulta verdadero, la plantilla es procesada. Este comportamiento es similar a la sentencia if de otros lenguajes. Sin embargo, para conseguir la funcionalidad de una sentencia if-then-else, es necesario utilizar el elemento <xsl:choose> con un elemento hijo <xsl:when>, y otro elemento hijo <xsl:otherwise>

+{{XsltRef}} +El elemento \ contiene un atributo a probar y una plantilla. Si el atributo resulta verdadero, la plantilla es procesada. Este comportamiento es similar a la sentencia if de otros lenguajes. Sin embargo, para conseguir la funcionalidad de una sentencia if-then-else, es necesario utilizar el elemento \ con un elemento hijo \, y otro elemento hijo \ -

Sintaxis

+### Sintaxis -
<xsl:if test=EXPRESSION>
-	TEMPLATE
-</xsl:if>
+ + TEMPLATE + -

Atributos requeridos

+### Atributos requeridos -
-
test
-
Contiene una expresión XPath que puede ser evaluada (usando las reglas definidas para boolean( ) si es necesario) como un valor boleano. Si el valor resulta verdadero, la plantilla es procesada; si resulta falso, no se lleva a cabo ninguna acción.
-
+- `test` + - : Contiene una expresión XPath que puede ser evaluada (usando las reglas definidas para `boolean( )` si es necesario) como un valor boleano. Si el valor resulta verdadero, la plantilla es procesada; si resulta falso, no se lleva a cabo ninguna acción. -

Atributos opcionales

+### Atributos opcionales -

Ninguno.

+Ninguno. -

Tipo

+### Tipo -

Instrucción, aparece dentro de una plantilla.

+Instrucción, aparece dentro de una plantilla. -

Definido

+### Definido -

XSL sección 9.1.

+XSL sección 9.1. -

Soporte en Gecko

+### Soporte en Gecko -

Soportado

+Soportado diff --git a/files/es/web/xslt/element/import/index.md b/files/es/web/xslt/element/import/index.md index b985d3c7ebae23..6eb8b14f3945f9 100644 --- a/files/es/web/xslt/element/import/index.md +++ b/files/es/web/xslt/element/import/index.md @@ -7,34 +7,31 @@ tags: translation_of: Web/XSLT/Element/import original_slug: Web/XSLT/import --- -

{{XsltRef}}

+{{XsltRef}} -


- El elemento <xsl:import> sirve para importar el contenido de una hoja de estilo dentro de otra hoja de estilo. En general, el contenido de la hoja de estilo importada tiene una menor precedencia que el contenido de la hoja de estilo que la importa. Esto contrasta con el elemento <xsl:include> en el que el contenido de la hoja de estilo incluida tiene exactamente la misma precedencia que el contenido de la hoja de estilo que la incluye.

+El elemento `` sirve para importar el contenido de una hoja de estilo dentro de otra hoja de estilo. En general, el contenido de la hoja de estilo importada tiene una menor precedencia que el contenido de la hoja de estilo que la importa. Esto contrasta con el elemento `` en el que el contenido de la hoja de estilo incluida tiene exactamente la misma precedencia que el contenido de la hoja de estilo que la incluye. -

Sintaxis

+### Sintaxis -
<xsl:import href=URI  />
+ -

Atributos requeridos

+### Atributos requeridos -
-
href
-
URI de la hoja de estilo a importar.
-
+- `href` + - : URI de la hoja de estilo a importar. -

Atributos opcionales

+### Atributos opcionales -

Ninguno.

+Ninguno. -

Tipo

+### Tipo -

Nivel raíz, debe aparecer antes de cualquier otro hijo de <xsl:stylesheet> o <xsl:transform> en la hoja de estilo que la importa.

+Nivel raíz, debe aparecer antes de cualquier otro hijo de `` o `` en la hoja de estilo que la importa. -

Definido

+### Definido -

XSLT, sección 2.6.2.

+XSLT, sección 2.6.2. -

Soporte en Gecko

+### Soporte en Gecko -

Casi completamente soportado, con tan solo algunos detalles con variables de nivel raíz y parámetros desde Mozilla 1.0.

+Casi completamente soportado, con tan solo algunos detalles con variables de nivel raíz y parámetros desde Mozilla 1.0. diff --git a/files/es/web/xslt/element/include/index.md b/files/es/web/xslt/element/include/index.md index 93ab0f3cd62d75..4598df0e1571f6 100644 --- a/files/es/web/xslt/element/include/index.md +++ b/files/es/web/xslt/element/include/index.md @@ -7,34 +7,31 @@ tags: translation_of: Web/XSLT/Element/include original_slug: Web/XSLT/include --- -

{{XsltRef}}

+{{XsltRef}} -


- El elemento <xsl:include> une el contenido de una hoja de estilo con otra. A diferencia del elemento <xsl:import>, el contenido de la hoja de estilo incluida tiene exactamente la misma precedencia que el contenido de la hoja de estilo que la incluye.

+El elemento `` une el contenido de una hoja de estilo con otra. A diferencia del elemento ``, el contenido de la hoja de estilo incluida tiene exactamente la misma precedencia que el contenido de la hoja de estilo que la incluye. -

Sintaxis

+### Sintaxis -
<xsl:include href=URI />
+ -

Atributos requeridos

+### Atributos requeridos -
-
href
-
Indica el URI de la hoja de estilo a incluir.
-
+- `href` + - : Indica el URI de la hoja de estilo a incluir. -

Atributos opcionales

+### Atributos opcionales -

Ninguno.

+Ninguno. -

Tipo

+### Tipo -

Elemento raíz, puede aparecer en cualquier orden siendo hijo del elemento <xsl:stylesheet> o el elemento <xsl:transform>.

+Elemento raíz, puede aparecer en cualquier orden siendo hijo del elemento `` o el elemento ``. -

Definido

+### Definido -

XSLT, sección 2.6.1.

+XSLT, sección 2.6.1. -

Soporte en Gecko

+### Soporte en Gecko -

Soportado.

+Soportado. diff --git a/files/es/web/xslt/element/index.md b/files/es/web/xslt/element/index.md index 88f4d38009f74d..17ca6b5b5b42f5 100644 --- a/files/es/web/xslt/element/index.md +++ b/files/es/web/xslt/element/index.md @@ -4,63 +4,61 @@ slug: Web/XSLT/Element tags: - Todas_las_Categorías - XSLT - - 'XSLT:Referencia' + - XSLT:Referencia translation_of: Web/XSLT/Element --- -

{{XsltRef}} En este documento se discutiran dos tipos de elementos: elementos raíz e instrucciones. Un elemento raíz debe aparecer como un hijo ya sea de <xsl:stylesheet> o <xsl:transform>. Por otro lado, una instrucción está asociada con una plantilla. Una hoja de estilo puede incluir varias plantillas. Un tercer tipo de elemento, no discutido aquí, es el elemento de resultado literal (LRE por sus siglas en inglés). Un LRE también aparece dentro de una plantilla, y consiste de cualquier elemento que no sea instrucción y que debe ser copiado tal cual al documento resultante, por ejemplo el elemento <hr> cuando se usa en una hoja de estilo para general HTML.

+{{XsltRef}} En este documento se discutiran dos tipos de elementos: elementos raíz e instrucciones. Un elemento raíz debe aparecer como un hijo ya sea de `` o ``. Por otro lado, una instrucción está asociada con una plantilla. Una hoja de estilo puede incluir varias plantillas. Un tercer tipo de elemento, no discutido aquí, es el elemento de resultado literal (LRE por sus siglas en inglés). Un LRE también aparece dentro de una plantilla, y consiste de cualquier elemento que no sea instrucción y que debe ser copiado tal cual al documento resultante, por ejemplo el elemento `
` cuando se usa en una hoja de estilo para general HTML. -

Como nota adicional, cualquier atributo en un LRE y algunos atributos de un conjunto específico de elemento XSLT también pueden incluir lo que se conoce como plantilla de valor de atributo. Que en pocas palabras significa que es una cadena de texto que especifíca una expresión XPath la cual indica el valor del atributo. En tiempo de ejecución la expresión es evaluada y el resultado es sustituido por la expresión XPath. Por ejemplo, asumamos que la variable "image-dir" es definida de la siguiente manera:

+Como nota adicional, cualquier atributo en un LRE y algunos atributos de un conjunto específico de elemento XSLT también pueden incluir lo que se conoce como plantilla de valor de atributo. Que en pocas palabras significa que es una cadena de texto que especifíca una expresión XPath la cual indica el valor del atributo. En tiempo de ejecución la expresión es evaluada y el resultado es sustituido por la expresión XPath. Por ejemplo, asumamos que la variable "`image-dir`" es definida de la siguiente manera: -
<xsl:variable name="image-dir">/images</xsl:variable>
+ /images -

La expresión a ser evaluada se escribe dentro de los símbolos de llaves:

+La expresión a ser evaluada se escribe dentro de los símbolos de llaves: -
<img src="{$image-dir}/mygraphic.jpg"/>
+ -

Esto generaría lo siguiente:

+Esto generaría lo siguiente: -
<img src="/images/mygraphic.jpg"/>
+ -

El listado de elementos que sigue a continuación incluye una descripción, la sintaxis, la lista de atributos requeridos y opcionales, una descripción del tipo y la posición, su lugar de definición en la recomendación del W3C y una explicación del nivel de soporte en Gecko.

+El listado de elementos que sigue a continuación incluye una descripción, la sintaxis, la lista de atributos requeridos y opcionales, una descripción del tipo y la posición, su lugar de definición en la recomendación del W3C y una explicación del nivel de soporte en Gecko. - +- [xsl:apply-imports](/es/XSLT/apply-imports "es/XSLT/apply-imports") +- [xsl:apply-templates](/es/XSLT/apply-templates "es/XSLT/apply-templates") +- [xsl:attribute](/es/XSLT/attribute "es/XSLT/attribute") +- [xsl:attribute-set](/es/XSLT/attribute-set "es/XSLT/attribute-set") +- [xsl:call-template](/es/XSLT/call-template "es/XSLT/call-template") +- [xsl:choose](/es/XSLT/choose "es/XSLT/choose") +- [xsl:comment](/es/XSLT/comment "es/XSLT/comment") +- [xsl:copy](/es/XSLT/copy "es/XSLT/copy") +- [xsl:copy-of](/es/XSLT/copy-of "es/XSLT/copy-of") +- [xsl:decimal-format](/es/XSLT/decimal-format "es/XSLT/decimal-format") +- [xsl:element](/es/XSLT/element "es/XSLT/element") +- [xsl:fallback](/es/XSLT/fallback "es/XSLT/fallback") _(sin soporte)_ +- [xsl:for-each](/es/XSLT/for-each "es/XSLT/for-each") +- [xsl:if](/es/XSLT/if "es/XSLT/if") +- [xsl:import](/es/XSLT/import "es/XSLT/import") _(casi completamente soportado)_ +- [xsl:include](/es/XSLT/include "es/XSLT/include") +- [xsl:key](/es/XSLT/key "es/XSLT/key") +- [xsl:message](/es/XSLT/message "es/XSLT/message") +- [xsl:namespace-alias](/es/XSLT/namespace-alias "es/XSLT/namespace-alias") _(sin soporte)_ +- [xsl:number](/es/XSLT/number "es/XSLT/number") _(parcialmente soportado)_ +- [xsl:otherwise](/es/XSLT/otherwise "es/XSLT/otherwise") +- [xsl:output](/es/XSLT/output "es/XSLT/output") _(parcialmente soportado)_ +- [xsl:param](/es/XSLT/param "es/XSLT/param") +- [xsl:preserve-space](/es/XSLT/preserve-space "es/XSLT/preserve-space") +- [xsl:processing-instruction](/es/XSLT/processing-instruction "es/XSLT/processing-instruction") +- [xsl:sort](/es/XSLT/sort "es/XSLT/sort") +- [xsl:strip-space](/es/XSLT/strip-space "es/XSLT/strip-space") +- [xsl:stylesheet](/es/XSLT/stylesheet "es/XSLT/stylesheet") _(parcialmente soportado)_ +- [xsl:template](/es/XSLT/template "es/XSLT/template") +- [xsl:text](/es/XSLT/text "es/XSLT/text") _(parcialmente soportado)_ +- [xsl:transform](/es/XSLT/transform "es/XSLT/transform") +- [xsl:value-of](/es/XSLT/value-of "es/XSLT/value-of") _(parcialmente soportado)_ +- [xsl:variable](/es/XSLT/variable "es/XSLT/variable") +- [xsl:when](/es/XSLT/when "es/XSLT/when") +- [xsl:with-param](/es/XSLT/with-param "es/XSLT/with-param") -

categorías

+categorías -

interwikis

+interwikis diff --git a/files/es/web/xslt/element/key/index.md b/files/es/web/xslt/element/key/index.md index d18218029717b9..b5bad24d7e38d0 100644 --- a/files/es/web/xslt/element/key/index.md +++ b/files/es/web/xslt/element/key/index.md @@ -7,39 +7,36 @@ tags: translation_of: Web/XSLT/Element/key original_slug: Web/XSLT/key --- -

{{XsltRef}}

+{{XsltRef}} -


- El elemento <xsl:key> declara una llave con nombre la cual puede ser usada en otro lugar dentro de la hoja de estilo usando la función key( ).

+El elemento `` declara una llave con nombre la cual puede ser usada en otro lugar dentro de la hoja de estilo usando la función `key( )`. -

Sintaxis

+### Sintaxis -
<xsl:key name=NOMBRE match=EXPRESIÓN
-	use=EXPRESIÓN /> 
+ -

Atributos requeridos

+### Atributos requeridos -
-
name
-
Indica el nombre para esta llave. Debe seguir las reglas de tipo QName.
-
match
-
Define el nodo para el que esta llave aplica.
-
use
-
Indica la expresión XPath que se usará para determinar el valor de la llave para cada uno de los nodos aplicables.
-
+- `name` + - : Indica el nombre para esta llave. Debe seguir las reglas de tipo QName. +- `match` + - : Define el nodo para el que esta llave aplica. +- `use` + - : Indica la expresión XPath que se usará para determinar el valor de la llave para cada uno de los nodos aplicables. -

Atributos opcionales

+### Atributos opcionales -

Ninguno.

+Ninguno. -

Tipo

+### Tipo -

Elemento raíz, debe ser hijo del elemento <xsl:stylesheet> o del elemento <xsl:transform>.

+Elemento raíz, debe ser hijo del elemento `` o del elemento ``. -

Definido

+### Definido -

XSLT, sección 12.2.

+XSLT, sección 12.2. -

Soporte en Gecko

+### Soporte en Gecko -

Soportado.

+Soportado. diff --git a/files/es/web/xslt/element/message/index.md b/files/es/web/xslt/element/message/index.md index 4566885c451d57..81bc8adc1ff553 100644 --- a/files/es/web/xslt/element/message/index.md +++ b/files/es/web/xslt/element/message/index.md @@ -7,35 +7,33 @@ tags: translation_of: Web/XSLT/Element/message original_slug: Web/XSLT/message --- -

{{XsltRef}}

+{{XsltRef}} -

El elemento <xsl:message> muestra un mensaje (en la consola JavaScript en NS) y opcionalmente termina la ejecución de la hoja de estilos. Puede ser util para depuración.

+El elemento `` muestra un mensaje (en la consola JavaScript en NS) y opcionalmente termina la ejecución de la hoja de estilos. Puede ser util para depuración. -

Sintaxis

+### Sintaxis -
<xsl:message terminate="yes" | "no" >
-	PLANTILLA
-</xsl:message>
+ + PLANTILLA + -

Atributos requeridos

+### Atributos requeridos -

Ninguno.

+Ninguno. -

Atributos opcionales

+### Atributos opcionales -
-
terminate
-
Establecido a "yes", indica que debe terminar la ejecución. El valor por defecto es "no", en cuyo caso se muestra el mensaje y continúa la ejecución.
-
+- `terminate` + - : Establecido a "`yes`", indica que debe terminar la ejecución. El valor por defecto es "`no`", en cuyo caso se muestra el mensaje y continúa la ejecución. -

Tipo

+### Tipo -

Instrucción, aparece dentro de una plantilla.

+Instrucción, aparece dentro de una plantilla. -

Definido

+### Definido -

XSLT, sección 13.

+XSLT, sección 13. -

Soporte en Gecko

+### Soporte en Gecko -

Soportado.

+Soportado. diff --git a/files/es/web/xslt/element/namespace-alias/index.md b/files/es/web/xslt/element/namespace-alias/index.md index f7f7cab6b6b4ed..9a75810164d80a 100644 --- a/files/es/web/xslt/element/namespace-alias/index.md +++ b/files/es/web/xslt/element/namespace-alias/index.md @@ -7,37 +7,35 @@ tags: translation_of: Web/XSLT/Element/namespace-alias original_slug: Web/XSLT/namespace-alias --- -

{{XsltRef}}

+{{XsltRef}} -

El elemento <xsl:namespace-alias> es un mecanismo raramente usado para asociar un nombre de espacios en la hoja de estilos a otro nombre de espacios diferente en el árbol de salida. El uso más común para este elemento se da en la generación de una hoja de estilos a partir de otra hoja de estilos.

+El elemento `` es un mecanismo raramente usado para asociar un nombre de espacios en la hoja de estilos a otro nombre de espacios diferente en el árbol de salida. El uso más común para este elemento se da en la generación de una hoja de estilos a partir de otra hoja de estilos. -

Para prevenir que la cadena literal para el prefijo xsl: del elemento resultante (que simplemente debería ser copiada al árbol resultante) sea malinterpretada por el procesador, se le asigna temporalmente un nombre de espacio diferente que posteriormente es reconvertida al nombre de espacios de XSLT en el árbol de salida.

+Para prevenir que la cadena literal para el prefijo `xsl:` del elemento resultante (que simplemente debería ser copiada al árbol resultante) sea malinterpretada por el procesador, se le asigna temporalmente un nombre de espacio diferente que posteriormente es reconvertida al nombre de espacios de XSLT en el árbol de salida. -

Sintaxis

+### Sintaxis -
<xsl:namespace-alias stylesheet-prefix=NOMBRE result-prefix=NOMBRE />
+ -

Atributos Requeridos

+### Atributos Requeridos -
-
stylesheet-prefix
-
Indica el nombre de espacios temporal.
-
result-prefix
-
Indica el nombre de espacios deseado en el árbol de salida.
-
+- `stylesheet-prefix` + - : Indica el nombre de espacios temporal. +- `result-prefix` + - : Indica el nombre de espacios deseado en el árbol de salida. -

Atributos opcionales

+### Atributos opcionales -

Ninguno.

+Ninguno. -

Tipo

+### Tipo -

Debe ser hijo directo de <xsl:stylesheet> o <xsl:transform>.

+Debe ser hijo directo de `` o ``. -

Definido

+### Definido -

XSLT, sección 7.1.1

+XSLT, sección 7.1.1 -

Soporte en Gecko

+### Soporte en Gecko -

Sin soporte por el momento.

+Sin soporte por el momento. diff --git a/files/es/web/xslt/element/otherwise/index.md b/files/es/web/xslt/element/otherwise/index.md index f461f7ec08a756..8c8edd7520e141 100644 --- a/files/es/web/xslt/element/otherwise/index.md +++ b/files/es/web/xslt/element/otherwise/index.md @@ -7,32 +7,32 @@ tags: translation_of: Web/XSLT/Element/otherwise original_slug: Web/XSLT/otherwise --- -

{{XsltRef}}

+{{XsltRef}} -

El elemento <xsl:otherwise> se utiliza para definir la acción que se debe tomar cuando no se aplica ninguna de las condiciones <xsl:when>. Es similar a else or default en otros lenguajes de programación.

+El elemento `` se utiliza para definir la acción que se debe tomar cuando no se aplica ninguna de las condiciones ``. Es similar a `else` or `default` en otros lenguajes de programación. -

Sintaxis

+### Sintaxis -
<xsl:otherwise>
-	PLANTILLA
-</xsl:otherwise>
+ + PLANTILLA + -

Atributos requeridos

+### Atributos requeridos -

Ninguno.

+Ninguno. -

Atributos opcionales

+### Atributos opcionales -

Ninguno.

+Ninguno. -

Tipo

+### Tipo -

Subinstrucción, debe aparecer como el último hijo de un elemento <xsl:choose>, dentro de una plantilla.

+Subinstrucción, debe aparecer como el último hijo de un elemento ``, dentro de una plantilla. -

Definido

+### Definido -

XSLT, sección 9.2

+XSLT, sección 9.2 -

Soporte en Gecko

+### Soporte en Gecko -

Soportado.

+Soportado. diff --git a/files/es/web/xslt/element/when/index.md b/files/es/web/xslt/element/when/index.md index bc58b9721e022b..8c62856ecf686b 100644 --- a/files/es/web/xslt/element/when/index.md +++ b/files/es/web/xslt/element/when/index.md @@ -7,35 +7,33 @@ tags: translation_of: Web/XSLT/Element/when original_slug: Web/XSLT/when --- -

{{XsltRef}}

+{{XsltRef}} -

El elemento <xsl:when> siempre aparece dentro de un elemento <xsl:choose>, actuando como una sentencia case.

+El elemento `` siempre aparece dentro de un elemento ``, actuando como una sentencia case. -

Sintaxis

+### Sintaxis -
<xsl:when test=EXPRESIÓN>
-	PLANTILLA
-</xsl:when>
+ + PLANTILLA + -

Atributos requeridos

+### Atributos requeridos -
-
test
-
Especifica una expresión booleana a evaluar. Si es cierta, se procesa el contenido del elemento; si es falsa, se ignora.
-
+- `test` + - : Especifica una expresión booleana a evaluar. Si es cierta, se procesa el contenido del elemento; si es falsa, se ignora. -

Atributos opcionales

+### Atributos opcionales -

Ninguno.

+Ninguno. -

Tipo

+### Tipo -

Subinstrucción, siempre aparece dentro de un elemento <xsl:choose>.

+Subinstrucción, siempre aparece dentro de un elemento ``. -

Definido

+### Definido -

XSLT, sección 9.2.

+XSLT, sección 9.2. -

Soporte en Gecko

+### Soporte en Gecko -

Soportado.

+Soportado. diff --git a/files/es/web/xslt/element/with-param/index.md b/files/es/web/xslt/element/with-param/index.md index 07d97db0542f02..2b803e4e8108eb 100644 --- a/files/es/web/xslt/element/with-param/index.md +++ b/files/es/web/xslt/element/with-param/index.md @@ -7,38 +7,34 @@ tags: translation_of: Web/XSLT/Element/with-param original_slug: Web/XSLT/with-param --- -

{{XsltRef}}

+{{XsltRef}} -

El elemento <xsl:with-param> establece el valor de un parámetro que se pasará a una plantilla.

+El elemento `` establece el valor de un parámetro que se pasará a una plantilla. -

Syntax

+### Syntax -
<xsl:with-param name=NOMBRE select=EXPRESIÓN>
-	PLANTILLA
-</xsl:with-param>
+ + PLANTILLA + -

Atributos requeridos

+### Atributos requeridos -
-
name
-
Dá a este parámetro un nombre.
-
+- `name` + - : Dá a este parámetro un nombre. -

Atributos opcionales

+### Atributos opcionales -
-
select
-
Define el valor del parámtero a través de una expresión XPath. Si el elemento contiene una plantilla, se ignorará este atributo.
-
+- `select` + - : Define el valor del parámtero a través de una expresión XPath. Si el elemento contiene una plantilla, se ignorará este atributo. -

Tipo

+### Tipo -

Subinstrucción, siempre aparece dentro de un elemento <xsl:apply-templates> o <xsl:call-template>.

+Subinstrucción, siempre aparece dentro de un elemento `` o ``. -

Definido

+### Definido -

XSLT 11.6

+XSLT 11.6 -

Soporte en Gecko

+### Soporte en Gecko -

Soportado.

+Soportado. diff --git a/files/es/web/xslt/transforming_xml_with_xslt/index.md b/files/es/web/xslt/transforming_xml_with_xslt/index.md index 1606357e34e6c3..21a51e40192875 100644 --- a/files/es/web/xslt/transforming_xml_with_xslt/index.md +++ b/files/es/web/xslt/transforming_xml_with_xslt/index.md @@ -8,106 +8,131 @@ tags: translation_of: Web/XSLT/Transforming_XML_with_XSLT original_slug: Web/XSLT/Transformando_XML_con_XSLT --- -

-


-

-

Introducción

-

La separación del contenido y la presentación es una característica clave en el diseño de XML. La estructura de un documento XML esta diseñada para reflejar y clarificar relaciones importantes entre los aspectos individuales del contenido en si mismo, sin preocuparse de la forma en que posteriormente se visualizaran los datos. Una estructuración inteligente es particularmente importante cuando cada día se realizan más conexiones entre máquinas muy diferentes a través de la red. -

Finalmente, gran parte del contenido almacenado en los documentos XML será mostrado al lector (humano). Dado que el navegador proporciona un interfaz conocido y flexible al usuario, es el mecanismo ideal para presentar los contenidos en XML. Construido él mismo usando numerosas tecnologías XML, Mozilla incluye todos los mecanismos necesarios para procesar tanto los documentos XML originales, como las hojas de transformación utilizadas para formatearlo y mostrarlo en HTML. Al mismo tiempo se reduce la carga del servidor, dado que el procesamiento se produce en el lado del cliente. -

Actualmente, Gecko (el motor de visualización que utilizan Mozilla y Firefox) soporta dos tipos de hojas de estilo para XML. Para el control básico de la apariencia (como fuentes, colores, posición, etc...) Gecko utiliza CSS, parecido al DHTML. Todo CSS1 y la mayor parte de CSS2 están soportados. El soporte para el estándar CSS3 está en desarrollo. Para más información sobre CSS, véase Eric Meyer's CSS pages. Para una introducción de CSS1 y Netscape, véase Browser Central page. -

El segundo tipo de hojas de transformación que soporta Gecko son las hojas de estilo XSLT, eXtensible Stylesheet Language/Transform. XSLT permite al autor de una hoja de estilo transformar un documento original XML de dos formas: manipulando y ordenando el contenido (incluyendo una reordenación general de éste si es necesario), y transformando el contenido en distintos formatos (en el caso de Netscape, se convierte al vuelo en HTML para ser mostrado por el navegador). -

-

Referencia de XSLT/XPath

-

Elementos

- -

Ejes

- -

Funciones

- -

Para futuras lecturas

- -

Índice

-
-

Información original del documento

-
  • Copyright Information: Copyright © 2001-2003 Netscape. All rights reserved. -
  • Note: This reprinted article was originally part of the DevEdge site. -
-
-


-Categorías -

enlaces interwikis -

{{ languages( { "en": "en/Transforming_XML_with_XSLT", "fr": "fr/Transformations_XML_avec_XSLT", "ko": "ko/Transforming_XML_with_XSLT", "pl": "pl/Transformacje_XML_z_XSLT" } ) }} +### [Introducción](es/Transformando_XML_en_XSLT/Introducci%c3%b3n) + +La separación del contenido y la presentación es una característica clave en el diseño de [XML](es/XML). La estructura de un documento XML esta diseñada para reflejar y clarificar relaciones importantes entre los aspectos individuales del contenido en si mismo, sin preocuparse de la forma en que posteriormente se visualizaran los datos. Una estructuración inteligente es particularmente importante cuando cada día se realizan más conexiones entre máquinas muy diferentes a través de la red. + +Finalmente, gran parte del contenido almacenado en los documentos XML será mostrado al lector (humano). Dado que el navegador proporciona un interfaz conocido y flexible al usuario, es el mecanismo ideal para presentar los contenidos en XML. Construido él mismo usando numerosas tecnologías XML, Mozilla incluye todos los mecanismos necesarios para procesar tanto los documentos XML originales, como las hojas de transformación utilizadas para formatearlo y mostrarlo en HTML. Al mismo tiempo se reduce la carga del servidor, dado que el procesamiento se produce en el lado del cliente. + +Actualmente, Gecko (el motor de visualización que utilizan Mozilla y Firefox) soporta dos tipos de hojas de estilo para XML. Para el control básico de la apariencia (como fuentes, colores, posición, etc...) Gecko utiliza [CSS](es/CSS), parecido al [DHTML](es/DHTML). Todo CSS1 y la mayor parte de CSS2 están soportados. El soporte para el estándar CSS3 está en desarrollo. Para más información sobre CSS, véase [Eric Meyer's CSS pages](http://www.meyerweb.com/eric/css/). Para una introducción de CSS1 y Netscape, véase [Browser Central page](http://home.netscape.com/browsers/future/standards.html#1). + +El segundo tipo de hojas de transformación que soporta Gecko son las hojas de estilo XSLT, eXtensible Stylesheet Language/Transform. XSLT permite al autor de una hoja de estilo transformar un documento original XML de dos formas: manipulando y ordenando el contenido (incluyendo una reordenación general de éste si es necesario), y transformando el contenido en distintos formatos (en el caso de Netscape, se convierte al vuelo en HTML para ser mostrado por el navegador). + +### Referencia de XSLT/XPath + +#### [Elementos](es/XSLT/Elementos) + +- [xsl:apply-imports](es/XSLT/apply-imports) _(soportado)_ +- [xsl:apply-templates](es/XSLT/apply-templates) _(soportado)_ +- [xsl:attribute](es/XSLT/attribute) _(soportado)_ +- [xsl:attribute-set](es/XSLT/attribute-set) _(soportado)_ +- [xsl:call-template](es/XSLT/call-template) _(soportado)_ +- [xsl:choose](es/XSLT/choose) _(soportado)_ +- [xsl:comment](es/XSLT/comment) _(soportado)_ +- [xsl:copy](es/XSLT/copy) _(soportado)_ +- [xsl:copy-of](es/XSLT/copy-of) _(soportado)_ +- [xsl:decimal-format](es/XSLT/decimal-format) _(soportado)_ +- [xsl:element](es/XSLT/element) _(soportado)_ +- [xsl:fallback](es/XSLT/fallback) _(no soportado)_ +- [xsl:for-each](es/XSLT/for-each) _(soportado)_ +- [xsl:if](es/XSLT/if) _(soportado)_ +- [xsl:import](es/XSLT/import) _(soportado en la mayoría de casos)_ +- [xsl:include](es/XSLT/include) _(soportado)_ +- [xsl:key](es/XSLT/key) _(soportado)_ +- [xsl:message](es/XSLT/message) _(soportado)_ +- [xsl:namespace-alias](es/XSLT/namespace-alias) _(no soportado)_ +- [xsl:number](es/XSLT/number) _(parcialmente soportado)_ +- [xsl:otherwise](es/XSLT/otherwise) _(soportado)_ +- [xsl:output](es/XSLT/output) _(parcialmente soportado)_ +- [xsl:param](es/XSLT/param) _(soportado)_ +- [xsl:preserve-space](es/XSLT/preserve-space) _(soportado)_ +- [xsl:processing-instruction](es/XSLT/processing-instruction) +- [xsl:sort](es/XSLT/sort) _(soportado)_ +- [xsl:strip-space](es/XSLT/strip-space) _(soportado)_ +- [xsl:stylesheet](es/XSLT/stylesheet) _(parcialmente soportado)_ +- [xsl:template](es/XSLT/template) _(soportado)_ +- [xsl:text](es/XSLT/text) _(parcialmente supported)_ +- [xsl:transform](es/XSLT/transform) _(soportado)_ +- [xsl:value-of](es/XSLT/value-of) _(parcialmente soportado)_ +- [xsl:variable](es/XSLT/variable) _(soportado)_ +- [xsl:when](es/XSLT/when) _(soportado)_ +- [xsl:with-param](es/XSLT/with-param) _(soportado)_ + +#### [Ejes](es/XPath/Ejes) + +- [ancestor](es/XPath/Ejes/ancestor) +- [ancestor-or-self](es/XPath/Ejes/ancestor-or-self) +- [attribute](es/XPath/Ejes/attribute) +- [child](es/XPath/Ejes/child) +- [descendant](es/XPath/Ejes/descendant) +- [descendant-or-self](es/XPath/Ejes/descendant-or-self) +- [following](es/XPath/Ejes/following) +- [following-sibling](es/XPath/Ejes/following-sibling) +- [namespace](es/XPath/Ejes/namespace) _(no soportado)_ +- [parent](es/XPath/Ejes/parent) +- [preceding](es/XPath/Ejes/preceding) +- [preceding-sibling](es/XPath/Ejes/preceding-sibling) +- [self](es/XPath/Ejes/self) + +#### [Funciones](es/XPath/Funciones) + +- [boolean()](es/XPath/Funciones/boolean) _(soportado)_ +- [ceiling()](es/XPath/Funciones/ceiling) _(soportado)_ +- [concat()](es/XPath/Funciones/concat) _(soportado)_ +- [contains()](es/XPath/Funciones/contains) _(soportado)_ +- [count()](es/XPath/Funciones/count) _(soportado)_ +- [current()](es/XPath/Funciones/current) _(soportado)_ +- [document()](es/XPath/Funciones/document) _(soportado)_ +- [element-available()](es/XPath/Funciones/element-available) _(soportado)_ +- [false()](es/XPath/Funciones/false) _(soportado)_ +- [floor()](es/XPath/Funciones/floor) _(soportado)_ +- [format-number()](es/XPath/Funciones/format-number) _(soportado)_ +- [function-available()](es/XPath/Funciones/function-available) _(soportado)_ +- [generate-id()](es/XPath/Funciones/generate-id) _(soportado)_ +- [id()](es/XPath/Funciones/id) _(parcialmente soportado)_ +- [key()](es/XPath/Funciones/key) _(soportado)_ +- [lang()](es/XPath/Funciones/lang) _(soportado)_ +- [last()](es/XPath/Funciones/last) _(soportado)_ +- [local-name()](es/XPath/Funciones/local-name) _(soportado)_ +- [name()](es/XPath/Funciones/name) _(soportado)_ +- [namespace-uri()](es/XPath/Funciones/namespace-uri) _(soportado)_ +- [normalize-space()](es/XPath/Funciones/normalize-space) _(soportado)_ +- [not()](es/XPath/Funciones/not) _(soportado)_ +- [number()](es/XPath/Funciones/number) _(soportado)_ +- [position()](es/XPath/Funciones/position) _(soportado)_ +- [round()](es/XPath/Funciones/round) _(soportado)_ +- [starts-with()](es/XPath/Funciones/starts-with) _(soportado)_ +- [string()](es/XPath/Funciones/string) _(soportado)_ +- [string-lenght()](es/XPath/Funciones/string-length) _(soportado)_ +- [substring()](es/XPath/Funciones/substring) _(soportado)_ +- [substring-after()](es/XPath/Funciones/substring-after) _(soportado)_ +- [substring-before()](es/XPath/Funciones/substring-before) _(soportado)_ +- [sum()](es/XPath/Funciones/sum) _(soportado)_ +- [system-property()](es/XPath/Funciones/system-property) _(soportado)_ +- [translate()](es/XPath/Funciones/translate) _(soportado)_ +- [true()](es/XPath/Funciones/true) _(soportado)_ +- [unparsed-entity-url()](es/XPath/Funciones/unparsed-entity-url) _(no soportado)_ + +### [Para futuras lecturas](es/Transformando_XMLcon_XSLT/Para_Futuras_Lecturas) + +- [Libros](es/Transformando_XMLcon_XSLT/Para_Futuras_Lecturas#Libros) +- [Online](es/Transformando_XMLcon_XSLT/Para_Futuras_Lecturas#Online) + + - [El Consorcio del amplio mundo de la Web](es/Transformando_XMLcon_XSLT/Para_Futuras_Lecturas#El_Consorcio_del_Mundo_de_la_Web) + - [Portales](es/Transformando_XMLcon_XSLT/Para_Futuras_Lecturas#Portales) + - [Artículos](es/Transformando_XMLcon_XSLT/Para_Futuras_Lecturas#Art.C3.ADculos) + - [Tutoriales/Ejemplos](es/Transformando_XMLcon_XSLT/Para_Futuras_Lecturas#Tutoriales.2FEjemplos) + - [Listas de mails/Grupos de noticias](es/Transformando_XMLcon_XSLT/Para_Futuras_Lecturas#Listas_de_mails.2FGrupos_de_noticias) + +### [Índice](es/Transformando_XML_con_XSLT/Indice) + +### Información original del documento + +- Copyright Information: Copyright © 2001-2003 Netscape. All rights reserved. +- Note: This reprinted article was originally part of the DevEdge site. + +Categorías + +enlaces interwikis + +{{ languages( { "en": "en/Transforming_XML_with_XSLT", "fr": "fr/Transformations_XML_avec_XSLT", "ko": "ko/Transforming_XML_with_XSLT", "pl": "pl/Transformacje_XML_z_XSLT" } ) }} diff --git a/files/es/webassembly/concepts/index.md b/files/es/webassembly/concepts/index.md index 4fe603e0d1529e..79228a15078c80 100644 --- a/files/es/webassembly/concepts/index.md +++ b/files/es/webassembly/concepts/index.md @@ -3,150 +3,130 @@ title: WebAssembly Concepts slug: WebAssembly/Concepts translation_of: WebAssembly/Concepts --- -
{{WebAssemblySidebar}}
+{{WebAssemblySidebar}} -

En este artículo se explica los conceptos detrás de cómo funciona WebAssembly, sus objetivos, los problemas que resuelve, y como se ejecuta dentro del motor de renderizado de un navegador.

+En este artículo se explica los conceptos detrás de cómo funciona WebAssembly, sus objetivos, los problemas que resuelve, y como se ejecuta dentro del motor de renderizado de un navegador. -

¿Qué es WebAssembly?

+## ¿Qué es WebAssembly? -

WebAssembly es un nuevo tipo de código que puede ser ejecutado en navegadores modernos, y provee nuevas funcionalidades y mejoras en rendimiento. No está pensado para ser ser escrito a mano, si no que está diseñado par ser un objeto final de compilación para lenguajes de bajo nivel como C, C++, Rust, etc.

+WebAssembly es un nuevo tipo de código que puede ser ejecutado en navegadores modernos, y provee nuevas funcionalidades y mejoras en rendimiento. No está pensado para ser ser escrito a mano, si no que está diseñado par ser un objeto final de compilación para lenguajes de bajo nivel como C, C++, Rust, etc. -

Esto tiene enormes implicaciones para la plataforma web -- presenta un medio para ejecutar código escrito en múltiples lenguajes en la web, haciendo que una aplicación web, se ejecute casi a la misma velocidad de código nativo, algo que previamente se podía hacer.

+Esto tiene enormes implicaciones para la plataforma web -- presenta un medio para ejecutar código escrito en múltiples lenguajes en la web, haciendo que una aplicación web, se ejecute casi a la misma velocidad de código nativo, algo que previamente se podía hacer. -

Lo que es más, no es necesario conocer como se crea código WebAssembly para usar sus ventajas. Los módulos de WebAssembly pueden importase en una aplicación web (o Node.js), exponiendo funciones de WebAssembly para ser usadas mediante Javascript. Los entornos de Javascript pueden usar WebAssembly para obtener grandes mejoras de rendimiento y nuevas funcionalidades y ser fácilmente disponibles por los desarrolladores Web.

+Lo que es más, no es necesario conocer como se crea código WebAssembly para usar sus ventajas. Los módulos de WebAssembly pueden importase en una aplicación web (o Node.js), exponiendo funciones de WebAssembly para ser usadas mediante Javascript. Los entornos de Javascript pueden usar WebAssembly para obtener grandes mejoras de rendimiento y nuevas funcionalidades y ser fácilmente disponibles por los desarrolladores Web. -

Objetivos de WebAssembly

+## Objetivos de WebAssembly -

WebAssembly ha sido creado por como un estándar abierto dentro de W3C WebAssembly Community Group con los siguientes objetivos:

+WebAssembly ha sido creado por como un estándar abierto dentro de [W3C WebAssembly Community Group](https://www.w3.org/community/webassembly/) con los siguientes objetivos: -
    -
  • Ser rápido, eficiente y portable — el código WebAssembly puede ejecutarse se puede ejecutar a una velocidad casi nativa en diferentes plataformas aprovechando las capacidades comunes del hardware.
  • -
  • Ser legible y depurable — WebAssembly es un lenguaje ensamblador de bajo nivel, pero tiene un formato de texto que puede ser entendido por las personas (la especificación aún se está terminando) lo cual permite al código ser escrito, visualizado y depurado a mano.
  • -
  • Mantenerse seguro — WebAssembly se especifica para ser ejecutado de manera segura en un entorno de ejecución de espacio aislado (sandbox).Como otros códigos web, reforzará el propio origen del navegador así como sus políticas de seguridad.
  • -
  • No quebrantar a la red — WebAssembly está diseñado de tal forma que se lleve bien con otras tecnologías web y mantenga compatibilidad con versiones anteriores.
  • -
+- Ser rápido, eficiente y portable — el código WebAssembly puede ejecutarse se puede ejecutar a una velocidad casi nativa en diferentes plataformas aprovechando las [capacidades comunes del hardware](http://webassembly.org/docs/portability/#assumptions-for-efficient-execution). +- Ser legible y depurable — WebAssembly es un lenguaje ensamblador de bajo nivel, pero tiene un formato de texto que puede ser entendido por las personas (la especificación aún se está terminando) lo cual permite al código ser escrito, visualizado y depurado a mano. +- Mantenerse seguro — WebAssembly se especifica para ser ejecutado de manera segura en un entorno de ejecución de espacio aislado (sandbox).Como otros códigos web, reforzará el propio origen del navegador así como sus políticas de seguridad. +- No quebrantar a la red — WebAssembly está diseñado de tal forma que se lleve bien con otras tecnologías web y mantenga compatibilidad con versiones anteriores. -
-

Nota: WebAssembly tendrá también usos fuera de la red y de los ambientes JavaScript (vea Incrustaciones no-web).

-
+> **Nota:** WebAssembly tendrá también usos fuera de la red y de los ambientes JavaScript (vea [Incrustaciones no-web](http://webassembly.org/docs/non-web/)). -

¿Cómo se inserta WebAssembly dentro de la plataforma web?

+## ¿Cómo se inserta WebAssembly dentro de la plataforma web? -

La plataforma web puede pensar como constituida de dos partes:

+La plataforma web puede pensar como constituida de dos partes: -
    -
  • Una máquina virtual (VM por sus siglas en inglés) que ejecuta el código de la aplicación Web p.e. el código JavaScript que potencia sus aplicaciones.
  • -
  • Un conjunto de interfaces Web (Web APIs) que la aplicación Web puede llamar para controlar la funcionalidad del navegador/dispositivo web y hace que las cosas sucedan (DOM, CSSOM, WebGL, IndexedDB, Web Audio API, etc.).
  • -
+- Una máquina virtual (VM por sus siglas en inglés) que ejecuta el código de la aplicación Web p.e. el código JavaScript que potencia sus aplicaciones. +- Un conjunto de interfaces Web ([Web APIs](/es/docs/Web/API)) que la aplicación Web puede llamar para controlar la funcionalidad del navegador/dispositivo web y hace que las cosas sucedan ([DOM](/es/docs/Web/API/Document_Object_Model), [CSSOM](/es/docs/Web/API/CSS_Object_Model), [WebGL](/es/docs/Web/API/WebGL_API), [IndexedDB](/es/docs/Web/API/IndexedDB_API), [Web Audio API](/es/docs/Web/API/Web_Audio_API), etc.). -

Históricamente, la máquina virtual ha sido capaz de cargar solamente JavaScript. Esto nos ha funcionado bien debido a que JavaScript es suficientemente capaz para resolver la mayor parte de los problemas que las personas tienen en la Web hoy día. Sin embargo hemos llegado a tener problemas de rendimiento cuando se trata de usar JavaScript para casos de uso más intensos como juegos 3D, Realidad Virtual y Aumentada, visión por computadora, edición de vídeo/imágenes y algunos otros dominios de cosas que demandan rendimiento como el de código nativo (vea Casos de Uso WebAssembly para más ideas).

+Históricamente, la máquina virtual ha sido capaz de cargar solamente JavaScript. Esto nos ha funcionado bien debido a que JavaScript es suficientemente capaz para resolver la mayor parte de los problemas que las personas tienen en la Web hoy día. Sin embargo hemos llegado a tener problemas de rendimiento cuando se trata de usar JavaScript para casos de uso más intensos como juegos 3D, Realidad Virtual y Aumentada, visión por computadora, edición de vídeo/imágenes y algunos otros dominios de cosas que demandan rendimiento como el de código nativo (vea [Casos de Uso WebAssembly](http://webassembly.org/docs/use-cases/) para más ideas). -

Adicionalmente, el costo de descargar, analizar gramaticalmente (parsing) y compilar aplicaciones JavaScript muy grandes resulta prohibitivo. Plataformas en móviles (celulares y otros) y otras de recursos limitados (tabletas, etc.) pueden amplificar más estos cuellos de botella del desempeño.

+Adicionalmente, el costo de descargar, analizar gramaticalmente (parsing) y compilar aplicaciones JavaScript muy grandes resulta prohibitivo. Plataformas en móviles (celulares y otros) y otras de recursos limitados (tabletas, etc.) pueden amplificar más estos cuellos de botella del desempeño. -

WebAssembly es un lenguaje distinto a JavaScript, aunque no se pretende sea un reemplazo. En lugar de ello, se diseña para complementar y trabajar en conjunto con JavaScript, permitiendo a los desarrolladores web tener una ventaja sobre las fortalezas de ambos lenguajes:

+WebAssembly es un lenguaje distinto a JavaScript, aunque no se pretende sea un reemplazo. En lugar de ello, se diseña para complementar y trabajar en conjunto con JavaScript, permitiendo a los desarrolladores web tener una ventaja sobre las fortalezas de ambos lenguajes: -
    -
  • JavaScript es un lenguaje de alto nivel, flexible y suficientemente expresivo para desarrollar aplicaciones web. Tiene muchas ventajas - es tipado dinámicamente, no necesita el paso de compilarlo, y tiene un gran ecosistema que lo provee de entornos, librerías y otras herramientas.
  • -
  • WebAssembly es un lenguaje de bajo nivel similar a ensamblador, con un binario de un tamaño compacto que se ejecuta con una rendimiento casi nativo, y provee a lenguajes con esquemas de memoria de bajo nivel como C++ y Rust, con un objeto de compilación que también pueden ejecutar en la web. (Notar que WebAssembly también tiene el objetivo de soportar a lenguajes de alto nivel con recogedor de basura (garbage-collector) en el futuro).
  • -
+- JavaScript es un lenguaje de alto nivel, flexible y suficientemente expresivo para desarrollar aplicaciones web. Tiene muchas ventajas - es tipado dinámicamente, no necesita el paso de compilarlo, y tiene un gran ecosistema que lo provee de entornos, librerías y otras herramientas. +- WebAssembly es un lenguaje de bajo nivel similar a ensamblador, con un binario de un tamaño compacto que se ejecuta con una rendimiento casi nativo, y provee a lenguajes con esquemas de memoria de bajo nivel como C++ y Rust, con un objeto de compilación que también pueden ejecutar en la web. (Notar que WebAssembly también tiene el objetivo de soportar a lenguajes de alto nivel con recogedor de basura (garbage-collector) en el futuro). -

Con la llegada de WebAssembly en los navegadores, la máquina virtual que se mencionó anteriormente, cargará y ejecutará dos tipos de código - JavaScript y WebAssembly.

+Con la llegada de WebAssembly en los navegadores, la máquina virtual que se mencionó anteriormente, cargará y ejecutará dos tipos de código - JavaScript y WebAssembly. -

Los distintos tipos de código pueden llamarse uno al otro según necesiten. WebAssembly JavaScript API envuelve código WebAssembly exportado con funciones JavaScript, que pueden ser llamadas normalmente, y WebAssembly puede importar y llamar síncronamente funciones JavaScript. De hecho la unidad básica de código en WebAssembly se llama módulo y los módulos en WebAssembly son simétricos de muchas maneras a los módulos de ES2015.

+Los distintos tipos de código pueden llamarse uno al otro según necesiten. [WebAssembly JavaScript API](/es/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly) envuelve código WebAssembly exportado con funciones JavaScript, que pueden ser llamadas normalmente, y WebAssembly puede importar y llamar síncronamente funciones JavaScript. De hecho la unidad básica de código en WebAssembly se llama módulo y los módulos en WebAssembly son simétricos de muchas maneras a los módulos de ES2015. -

Conceptos clave en WebAssembly

+### Conceptos clave en WebAssembly -

Hay varios conceptos claves que son necesarios para entender cómo se ejecuta WebAssembly en un navegador. Todos estos conceptos están reflejados uno a uno en WebAssembly JavaScript API.

+Hay varios conceptos claves que son necesarios para entender cómo se ejecuta WebAssembly en un navegador. Todos estos conceptos están reflejados uno a uno en [WebAssembly JavaScript API](/es/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly). -
    -
  • Módulo: Representa un binario de WebAssembly que ha sido compilado por el navegador en un ejecutable de código máquina. Un módulo no tiene estado, y es solo eso, como un Blob, puede ser explícitamente compartido entre ventanas y workers (por medio de postMessage()). Un módulo declara 'imports' y 'exports' igual que un módulo ES2015module.
  • -
  • Memoria: Un conjunto de tamaño variable que contiene una serie lineal y continua de bytes, que puede ser leído o escrito por las instrucciones de memoria de bajo nivel de WebAssembly.
  • -
  • Tabla: Una lista tipada de tamaño variable que contiene referencias (por ejemplo a funciones) que no podrían ser guardadas como bytes en memoria (por razones de seguridad o portabilidad).
  • -
  • Instancia: Un modulo junto con todos los estados que use durante la ejecución e incluyendo la memoria, tabla y un conjunto de valores importados. Una instancia es como un módulo ES2015 que ha sido cargado en un global particular con un conjunto particular de 'imports'.
  • -
+- **Módulo**: Representa un binario de WebAssembly que ha sido compilado por el navegador en un ejecutable de código máquina. Un módulo no tiene estado, y es solo eso, como un [Blob](/es/docs/Web/API/Blob), puede ser explícitamente compartido entre ventanas y workers (por medio de [`postMessage()`](/en-US/docs/Web/API/MessagePort/postMessage)). Un módulo declara 'imports' y 'exports' igual que un módulo ES2015module. +- **Memoria**: Un conjunto de tamaño variable que contiene una serie lineal y continua de bytes, que puede ser leído o escrito por las instrucciones de memoria de bajo nivel de WebAssembly. +- **Tabla**: Una lista tipada de tamaño variable que contiene referencias (por ejemplo a funciones) que no podrían ser guardadas como bytes en memoria (por razones de seguridad o portabilidad). +- **Instancia**: Un modulo junto con todos los estados que use durante la ejecución e incluyendo la memoria, tabla y un conjunto de valores importados. Una instancia es como un módulo ES2015 que ha sido cargado en un global particular con un conjunto particular de 'imports'. -

La API de JavaScript provee a los desarrolladores con la habilidad de crear módulos, memoria, tablas e instancias. Dada una instancia de WebAssembly, el código de JavaScript puede hacer llamadas síncronas a sus 'exports', que son expuestos, como funciones de JavaScript normal. Funciones de JavaScript arbitrarias pueden ser llamadas síncronamente también desde el código de WebAssembly, pasando dichas funciones de JavaScript como 'imports' a la instancia de WebAssembly.

+La API de JavaScript provee a los desarrolladores con la habilidad de crear módulos, memoria, tablas e instancias. Dada una instancia de WebAssembly, el código de JavaScript puede hacer llamadas síncronas a sus 'exports', que son expuestos, como funciones de JavaScript normal. Funciones de JavaScript arbitrarias pueden ser llamadas síncronamente también desde el código de WebAssembly, pasando dichas funciones de JavaScript como 'imports' a la instancia de WebAssembly. -

Dado que JavaScript tiene un control completo sobre como el código de WebAssembly es descargado, compilado y ejecutado, los desarrolladores de JavaScript pueden pensar sobre WebAssembly como simplemente una funcionalidad de JavaScript para generar funciones de alto rendimiento.

+Dado que JavaScript tiene un control completo sobre como el código de WebAssembly es descargado, compilado y ejecutado, los desarrolladores de JavaScript pueden pensar sobre WebAssembly como simplemente una funcionalidad de JavaScript para generar funciones de alto rendimiento. -

En el futuro, los módulos de WebAssembly se podrán cargar igual que los módulos de ES2015 (usando <script type='module'>), implicando que JavaScript será capaz de ir a buscar, compilar e importar un módulo de WebAssembly tan fácilmente como un módulo de ES2015.

+En el futuro, los módulos de WebAssembly se podrán cargar igual que los módulos de [ES2015](https://github.com/WebAssembly/proposals/issues/12) (usando ` - - - -

Encabezado

-

Parrafo

- - From 4eca02ffd6d41c83e3c2a1ddca66e32c0d25792d Mon Sep 17 00:00:00 2001 From: "Queen Vinyl Da.i'gyu-Kazotetsu" Date: Fri, 12 Aug 2022 23:25:14 -0700 Subject: [PATCH 5/9] Remove blank comments for ES locale --- files/es/web/api/analysernode/index.md | 4 --- files/es/web/api/animation/index.md | 22 ---------------- files/es/web/api/element/index.md | 26 ------------------- .../api/eventtarget/addeventlistener/index.md | 2 -- files/es/web/api/htmltableelement/index.md | 2 -- files/es/web/api/mediaquerylist/index.md | 2 -- files/es/web/api/navigator/vibrate/index.md | 2 -- files/es/web/api/payment_request_api/index.md | 2 -- files/es/web/api/performance/memory/index.md | 2 -- files/es/web/api/selection/collapse/index.md | 2 -- files/es/web/api/selection/extend/index.md | 2 -- .../es/web/api/selection/getrangeat/index.md | 2 -- .../web/api/serviceworkercontainer/index.md | 2 -- files/es/web/api/storage/index.md | 2 -- files/es/web/api/touch_events/index.md | 2 -- files/es/web/api/url/createobjecturl/index.md | 2 -- files/es/web/api/url/index.md | 2 -- files/es/web/api/urlsearchparams/index.md | 2 -- files/es/web/api/web_audio_api/index.md | 2 -- files/es/web/api/web_speech_api/index.md | 2 -- files/es/web/api/web_workers_api/index.md | 2 -- .../index.md | 2 -- files/es/web/api/window/fullscreen/index.md | 2 -- files/es/web/css/-moz-outline-radius/index.md | 2 -- .../web/css/-webkit-mask-box-image/index.md | 2 -- files/es/web/css/@counter-style/index.md | 18 ------------- files/es/web/css/@page/index.md | 4 --- files/es/web/css/animation-delay/index.md | 2 -- files/es/web/css/animation-direction/index.md | 2 -- files/es/web/css/animation-duration/index.md | 2 -- files/es/web/css/animation-fill-mode/index.md | 2 -- .../css/animation-iteration-count/index.md | 2 -- files/es/web/css/animation-name/index.md | 2 -- files/es/web/css/background-color/index.md | 2 -- files/es/web/css/background-position/index.md | 4 --- files/es/web/css/border-bottom-color/index.md | 2 -- files/es/web/css/border-collapse/index.md | 2 -- files/es/web/css/border-color/index.md | 2 -- files/es/web/css/bottom/index.md | 2 -- files/es/web/css/color_value/index.md | 2 -- .../mastering_margin_collapsing/index.md | 2 -- files/es/web/css/cursor/index.md | 2 -- files/es/web/css/font-size/index.md | 2 -- files/es/web/css/image-rendering/index.md | 2 -- files/es/web/css/margin-bottom/index.md | 2 -- files/es/web/css/margin/index.md | 2 -- files/es/web/css/mask-position/index.md | 2 -- files/es/web/css/opacity/index.md | 4 --- files/es/web/css/overflow/index.md | 2 -- files/es/web/css/padding/index.md | 2 -- files/es/web/css/top/index.md | 2 -- files/es/web/css/transform-origin/index.md | 2 -- files/es/web/css/transition-delay/index.md | 2 -- files/es/web/css/writing-mode/index.md | 2 -- files/es/web/demos/index.md | 2 -- .../es/web/html/block-level_elements/index.md | 4 --- files/es/web/html/element/tr/index.md | 8 ------ .../web/javascript/about_javascript/index.md | 2 -- .../web/javascript/guide/functions/index.md | 2 -- .../errors/illegal_character/index.md | 2 -- .../reference/functions/set/index.md | 2 -- .../global_objects/date/utc/index.md | 12 --------- .../global_objects/generator/index.md | 2 -- .../reference/global_objects/number/index.md | 4 --- .../global_objects/parseint/index.md | 2 -- .../global_objects/promise/then/index.md | 2 -- .../reference/global_objects/string/index.md | 2 -- .../global_objects/string/indexof/index.md | 2 -- .../string/lastindexof/index.md | 2 -- .../global_objects/string/repeat/index.md | 2 -- .../global_objects/string/slice/index.md | 2 -- .../global_objects/string/substr/index.md | 2 -- .../reference/operators/function/index.md | 4 --- .../reference/operators/in/index.md | 2 -- .../reference/operators/instanceof/index.md | 2 -- .../reference/operators/new/index.md | 2 -- .../reference/statements/const/index.md | 2 -- .../reference/statements/continue/index.md | 2 -- .../reference/statements/do...while/index.md | 2 -- .../reference/statements/for/index.md | 6 ----- .../reference/statements/function/index.md | 4 --- .../statements/function_star_/index.md | 4 --- .../reference/statements/if...else/index.md | 4 --- .../javascript/reference/statements/index.md | 2 -- .../reference/statements/label/index.md | 2 -- .../reference/statements/switch/index.md | 2 -- .../reference/statements/try...catch/index.md | 8 ------ .../reference/statements/var/index.md | 2 -- .../reference/statements/while/index.md | 2 -- files/es/web/progressive_web_apps/index.md | 2 -- .../es/web/xpath/functions/contains/index.md | 2 -- .../es/web/xpath/functions/substring/index.md | 4 --- .../web/xslt/element/decimal-format/index.md | 20 -------------- 93 files changed, 312 deletions(-) diff --git a/files/es/web/api/analysernode/index.md b/files/es/web/api/analysernode/index.md index ed6d8c98054853..e7b68c792add3d 100644 --- a/files/es/web/api/analysernode/index.md +++ b/files/es/web/api/analysernode/index.md @@ -46,13 +46,9 @@ _Inherits methods from its parent,_ _{{domxref("AudioNode")}}_. - {{domxref("AnalyserNode.getFloatFrequencyData()")}} - : Copies the current frequency data into a {{domxref("Float32Array")}} array passed into it. - - - {{domxref("AnalyserNode.getByteFrequencyData()")}} - : Copies the current frequency data into a {{domxref("Uint8Array")}} (unsigned byte array) passed into it. - - - {{domxref("AnalyserNode.getFloatTimeDomainData()")}} - : Copies the current waveform, or time-domain, data into a {{domxref("Float32Array")}} array passed into it. - {{domxref("AnalyserNode.getByteTimeDomainData()")}} diff --git a/files/es/web/api/animation/index.md b/files/es/web/api/animation/index.md index 3830f03f7af0c2..d4e51d8d0fda25 100644 --- a/files/es/web/api/animation/index.md +++ b/files/es/web/api/animation/index.md @@ -26,37 +26,25 @@ La interfaz **`Animation`** de la [Web Animations API](/es/docs/Web/API/Web_Anim - {{domxref("Animation.currentTime")}} - : El valor del tiempo de la animación actual en milisegundos , ya sea en ejecución o en pausa. Si la animación carece de {{domxref("AnimationTimeline", "timeline")}}, está inactivo, o no se ha reproducido todavía, su valor es `null`. - - - {{domxref("Animation.effect")}} - : Obtiene y establece el {{domxref("AnimationEffectReadOnly")}} asociado con esta animación. Normalmente, este será un objeto {{domxref("KeyframeEffect")}}. - {{domxref("Animation.finished")}} {{readOnlyInline}} - : Devuelve la Promesa actual terminada para esta animación. - - - {{domxref("Animation.id")}} - : Obtiene y establece la `String` usada para identificar la animación. - {{domxref("Animation.playState")}} {{readOnlyInline}} - : Devuelve un valor enumerado que describe el estado de la reproducción de una animación. - - - {{domxref("Animation.playbackRate")}} - : Obtiene o establece la velocidad de reproducción de la animación. - - - {{domxref("Animation.ready")}} {{readOnlyInline}} - : Devuelve la Promesa actual lista para esta animación. - - - {{domxref("Animation.startTime")}} - : Obiene o establece la hora programada en la que debe comenzar la reproducción de la animación. - - - {{domxref("Animation.timeline")}} - : Obtiene o establece el {{domxref("AnimationTimeline", "timeline")}} asociado con esta animación. @@ -72,28 +60,18 @@ La interfaz **`Animation`** de la [Web Animations API](/es/docs/Web/API/Web_Anim - {{domxref("Animation.cancel()")}} - : Borra todos los {{domxref("KeyframeEffect", "keyframeEffects")}} causados por la animación y aborta su reproducción. - - - {{domxref("Animation.finish()")}} - : Busca cualquier final de una animación, dependiendo de si la animación se está reproduciendo o invirtiendo. - - - {{domxref("Animation.pause()")}} - : Pone la reproducción en pausa. - - - {{domxref("Animation.play()")}} - : Busca el final de una animación, dependiendo de si la animación se está reproduciendo o si se está invirtiendo. - - - {{domxref("Animation.reverse()")}} - : Invierte la dirección de reproducción, deteniéndose al comienzo de la animación. Si la animación finaliza o no se activa, volverá a reproducirse desde el final al principio. - - - {{domxref("Animation.updatePlaybackRate()")}} - : Establece la velocidad de la animación después de sincronizar por primera vez su posición de reproducción. diff --git a/files/es/web/api/element/index.md b/files/es/web/api/element/index.md index 6ddba07c7f5aa6..fd9254f3596088 100644 --- a/files/es/web/api/element/index.md +++ b/files/es/web/api/element/index.md @@ -114,67 +114,41 @@ El objeto [event](/es/DOM/event "es/DOM/event") es pasado al parámetro `event` - [onblur](/es/DOM/element.onblur "es/DOM/element.onblur") - (al quitar el foco) - : Devuelve el código de manejo de evento para el evento `blur`. - - - [onchange](/es/DOM/element.onchange "es/DOM/element.onchange") - (al modificar) - : Devuelve el código de manejo de evento para el evento `change`. - - - [onclick](/es/DOM/element.onclick "es/DOM/element.onclick") - (al hacer clic) - : Devuelve el código de manejo de evento para el evento `onclick`. - - - [ondblclick](/es/DOM/element.ondblclick "es/DOM/element.ondblclick") - (al hacer doble clic) - : Devuelve el código de manejo de evento para el evento `ondblclick`. - - - [onfocus](/es/DOM/element.onfocus "es/DOM/element.onfocus") - (al poner el foco) - : Devuelve el código de manejo de evento para el evento `onfocus`. - - - [onkeydown](/es/DOM/element.onkeydown "es/DOM/element.onkeydown") - (al tener una tecla apretada) - : Devuelve el código de manejo de evento para el evento `onkeydown`. - - - [onkeypress](/es/DOM/element.onkeypress "es/DOM/element.onkeypress") - (al apretar una tecla) - : Devuelve el código de manejo de evento para el evento `onkeypress`. - - - [onkeyup](/es/DOM/element.onkeyup "es/DOM/element.onkeyup") - (al soltar una tecla) - : Devuelve el código de manejo de evento para el evento `onkeyup`. - - - [onmousedown](/es/DOM/element.onmousedown "es/DOM/element.onmousedown") - (al tener el botón del ratón apretado) - : Devuelve el código de manejo de evento para el evento `onmousedown`. - - - [onmousemove](/es/DOM/element.onmousemove "es/DOM/element.onmousemove") - (al mover el ratón) - : Devuelve el código de manejo de evento para el evento `onmousemove`. - - - [onmouseout](/es/DOM/element.onmouseout "es/DOM/element.onmouseout") - (al quitar el puntero del ratón) - : Devuelve el código de manejo de evento para el evento `onmouseout`. - - - [onmouseover](/es/DOM/element.onmouseover "es/DOM/element.onmouseover") - (al pasar el ratón encima) - : Devuelve el código de manejo de evento para el evento `onmouseover`. - - - [onmouseup](/es/DOM/element.onmouseup "es/DOM/element.onmouseup") - (al soltar el botón del ratón) - : Devuelve el código de manejo de evento para el evento `onmouseup`. - - - [onresize](/es/DOM/element.onresize "es/DOM/element.onresize") - (al re-dimensionar la pantalla) - : Devuelve el código de manejo de evento para el evento `onresize`. diff --git a/files/es/web/api/eventtarget/addeventlistener/index.md b/files/es/web/api/eventtarget/addeventlistener/index.md index df5fcb4b74b0ba..8dd957a7a855b2 100644 --- a/files/es/web/api/eventtarget/addeventlistener/index.md +++ b/files/es/web/api/eventtarget/addeventlistener/index.md @@ -23,8 +23,6 @@ Para registrar más de un eventListener, puedes llamar `addEventListener()` para - `useCapture` {{ optional_inline() }} - : Si es `true`, `useCapture` indica que el usuario desea iniciar la captura. Después de iniciar la captura, todos los eventos del tipo especificado serán lanzados al `listener` registrado antes de comenzar a ser controlados por algún `EventTarget` que esté por debajo en el arbol DOM del documento.> **Nota:** For event listeners attached to the event target; the event is in the target phase, rather than capturing and bubbling phases. Events in the target phase will trigger all listeners on an element regardless of the `useCapture` parameter.> **Nota:** `useCapture` became optional only in more recent versions of the major browsers; for example, it was not optional prior to Firefox 6. You should provide that parameter for broadest compatibility. - - - wantsUntrusted {{Non-standard_inline}} - : If `true`, the listener receives synthetic events dispatched by web content (the default is `false` for chrome and `true` for regular web pages). This parameter is only available in Gecko and is mainly useful for the code in add-ons and the browser itself. See [Interaction between privileged and non-privileged pages](/es/docs/Code_snippets/Interaction_between_privileged_and_non-privileged_pages) for an example. diff --git a/files/es/web/api/htmltableelement/index.md b/files/es/web/api/htmltableelement/index.md index 1231f02c0781d3..c24542b05ae3d0 100644 --- a/files/es/web/api/htmltableelement/index.md +++ b/files/es/web/api/htmltableelement/index.md @@ -27,8 +27,6 @@ Los objetos `table` revelan la interfaz del [`HTMLTableElement`](http://www.w3.o - [table.tBodies](/es/docs/DOM/table.tBodies) - : **tBodies** devuelve los cuerpos de la tabla. - - - [table.align](/es/docs/DOM/table.align) {{Deprecated_inline}} - : **align** da/define el alineamiento de la tabla. - [table.bgColor](/es/docs/DOM/table.bgColor){{Deprecated_inline}} diff --git a/files/es/web/api/mediaquerylist/index.md b/files/es/web/api/mediaquerylist/index.md index 75031d0bb09072..b9b209b4d4413a 100644 --- a/files/es/web/api/mediaquerylist/index.md +++ b/files/es/web/api/mediaquerylist/index.md @@ -40,8 +40,6 @@ _La nueva versión de la interfaz de `MediaQueryList` hereda métodos de su inte - {{domxref("MediaQueryList.removeListener()")}} - : Elimina un escucha de `MediaQueryListener`. Esto es básicamente un alias para {{domxref ("EventTarget.removeEventListener ()")}}, para propósitos de compatibilidad con versiones anteriores. - - ## Ejemplos Este ejemplo sencillo crea una `MediaQueryList` y, a continuación, establece un detector para detectar cuándo cambia el estado de la consulta de medios, ejecutando una función personalizada cuando cambia la apariencia de la página. diff --git a/files/es/web/api/navigator/vibrate/index.md b/files/es/web/api/navigator/vibrate/index.md index bb15a817948505..2e1ae58fdd3be0 100644 --- a/files/es/web/api/navigator/vibrate/index.md +++ b/files/es/web/api/navigator/vibrate/index.md @@ -15,8 +15,6 @@ Ejecuta la vibración por hardware en el dispositivo, si existe dicho hardware. - `pattern` proporciona un patrón de intervalos de vibración y pausas, como se describe a continuación. - - - pattern - : Proporciona un patrón de intervalos de vibraciones y pausas. Cada valor indica el número de milisegundos que durará la vibración y la pausa, respectivamente. Se puede porporcionar un valor único (en cuyo caso la vibración se ejecutará una vez, con la duración especificada en milisegundos) o un arreglo de valores (array) para alternar vibraciones y pausas. Ver [Vibration API](/es/docs/WebAPI/Vibration) para más detalles. diff --git a/files/es/web/api/payment_request_api/index.md b/files/es/web/api/payment_request_api/index.md index cb74db986e8096..ed849ee35584ab 100644 --- a/files/es/web/api/payment_request_api/index.md +++ b/files/es/web/api/payment_request_api/index.md @@ -52,8 +52,6 @@ Puedes encontrar una guía completa en [Usando la API de Solicitud de Pago](/es/ - {{domxref('MerchantValidationEvent')}} - : Representa el navegador que requiere que el comerciante (sitio web) se valide a sí mismo como autorizado para usar un manejador de pagos en particular (por ejemplo, registrado como autorizado para usar Apple Pay). - - ## Diccionarios - {{domxref("AddressErrors")}} diff --git a/files/es/web/api/performance/memory/index.md b/files/es/web/api/performance/memory/index.md index e24fa67cba2e50..fef3c5736442d0 100644 --- a/files/es/web/api/performance/memory/index.md +++ b/files/es/web/api/performance/memory/index.md @@ -16,8 +16,6 @@ translation_of: Web/API/Performance/memory - `totalJSHeapSize` - : El total del heap asignado, en bytes. The total allocated heap size, in bytes. - - - usedJSHeapSize - : El actualmente activo segmento de heap de JS, en bytes. diff --git a/files/es/web/api/selection/collapse/index.md b/files/es/web/api/selection/collapse/index.md index 419c36a06d3a57..8c3b142e9b99b4 100644 --- a/files/es/web/api/selection/collapse/index.md +++ b/files/es/web/api/selection/collapse/index.md @@ -22,8 +22,6 @@ Pliega la selección a un simple punto. El documento no es modificado. Si el con - _`parentNode`_ - : La localización del cursor estará dentro de este nodo. - - - _`offset`_ - : El cursor estará colocado éste número de caracteres desdel el comienzo del texto de _`parentNode`'_ diff --git a/files/es/web/api/selection/extend/index.md b/files/es/web/api/selection/extend/index.md index 13f6c7d3f52988..b8e4ea29f49678 100644 --- a/files/es/web/api/selection/extend/index.md +++ b/files/es/web/api/selection/extend/index.md @@ -22,8 +22,6 @@ Traslada el foco de la selección a un punto especificado. El ancla de la selecc - _`parentNode`_ - : El nodo dentro del cual el foco será movido. - - - _`offset`_ - : El número de caracteres que habrá desde el principio del texto _`parentNode`_ diff --git a/files/es/web/api/selection/getrangeat/index.md b/files/es/web/api/selection/getrangeat/index.md index df9a9ffe73f8f5..fc274b1a61ed4e 100644 --- a/files/es/web/api/selection/getrangeat/index.md +++ b/files/es/web/api/selection/getrangeat/index.md @@ -22,8 +22,6 @@ Devuelve un objeto de rango representando uno de los rangos seleccionados. - _`range`_ - : El objeto [range](es/DOM/range) (rango) que será devuelto. - - - _`index`_ - : El exponente (basado en cero) del rango a devolver. Un número negativo o un número mayor o igual a [rangeCount](es/DOM/Selection/rangeCount) provocará un error. diff --git a/files/es/web/api/serviceworkercontainer/index.md b/files/es/web/api/serviceworkercontainer/index.md index 391dbbcbe5d2b7..1073e77d4833b8 100644 --- a/files/es/web/api/serviceworkercontainer/index.md +++ b/files/es/web/api/serviceworkercontainer/index.md @@ -26,8 +26,6 @@ Most importantly, it exposes the {{domxref("ServiceWorkerContainer.register", "S - {{domxref("ServiceWorkerContainer.controller")}} {{readonlyinline}} - : Returns a {{domxref("ServiceWorker")}} object if its state is `activated` (the same object returned by {{domxref("ServiceWorkerRegistration.active")}}). This property returns `null` during a force-refresh request (_Shift_ + refresh) or if there is no active worker. - - - {{domxref("ServiceWorkerContainer.ready")}} {{readonlyinline}} - : Provides a way of delaying code execution until a service worker is active. It returns a {{jsxref("Promise")}} that will never reject, and which waits indefinitely until the {{domxref("ServiceWorkerRegistration")}} associated with the current page has an {{domxref("ServiceWorkerRegistration.active")}} worker. Once that condition is met, it resolves with the {{domxref("ServiceWorkerRegistration")}}. diff --git a/files/es/web/api/storage/index.md b/files/es/web/api/storage/index.md index 76d6f63d9073ec..a1ac5bdb72f694 100644 --- a/files/es/web/api/storage/index.md +++ b/files/es/web/api/storage/index.md @@ -27,8 +27,6 @@ Si deseas manipular el almacenamiento de sesión para un dominio, debes llamar a - {{domxref("Storage.key()")}} - : Cuando se le pasa un número n, éste método retorna el nombre de la enésima clave en el almacenamiento. - - - {{domxref("Storage.getItem()")}} - : Cuando se le pasa un nombre de clave, retorna el valor de esa clave. - {{domxref("Storage.setItem()")}} diff --git a/files/es/web/api/touch_events/index.md b/files/es/web/api/touch_events/index.md index f0a3402ff84d97..813dfa6fc387b1 100644 --- a/files/es/web/api/touch_events/index.md +++ b/files/es/web/api/touch_events/index.md @@ -17,8 +17,6 @@ Con el fin de proporcionar soporte de calidad para usuarios de interfaces tácti - Superficie - : La superficie sensible al tacto. Esta puede ser una pantalla o un trackpad. - - - **Punto de toque** - : Un punto de contacto con la superficie. Esto podría ser un dedo (o un codo, oreja, nariz, o lo que sea, pero probablemente un dedo) o un stylus. diff --git a/files/es/web/api/url/createobjecturl/index.md b/files/es/web/api/url/createobjecturl/index.md index a1522fedcbd7bd..b81a2376ad5511 100644 --- a/files/es/web/api/url/createobjecturl/index.md +++ b/files/es/web/api/url/createobjecturl/index.md @@ -27,8 +27,6 @@ El método estático **`URL.createObjectURL()`** crea un {{domxref("DOMString")} - `object` - : Un objeto {{domxref("File")}} o un objeto {{domxref("Blob")}} para el que se creará la URL. - - ## Ejemplo Ver [Usando objetos URL para representar imágenes](/es/docs/Using_files_from_web_applications#Example_Using_object_URLs_to_display_images "https://developer.mozilla.org/en/Using_files_from_web_applications#Example:_Using_object_URLs_to_display_images"). diff --git a/files/es/web/api/url/index.md b/files/es/web/api/url/index.md index ab7dbf4bb4123c..1875e7ece6446c 100644 --- a/files/es/web/api/url/index.md +++ b/files/es/web/api/url/index.md @@ -43,8 +43,6 @@ When using a user agent where no constructor has been implemented yet, it is pos - {{domxref("URL.origin")}} {{readonlyInline}} - : Returns a {{domxref("DOMString")}} containing the origin of the URL, that is its scheme, its domain and its port. - - - {{domxref("URL.searchParams")}} - : Returns a {{domxref("URLSearchParams")}} object allowing to access the GET query arguments contained in the URL. diff --git a/files/es/web/api/urlsearchparams/index.md b/files/es/web/api/urlsearchparams/index.md index a44398035a5835..b8782078321fc2 100644 --- a/files/es/web/api/urlsearchparams/index.md +++ b/files/es/web/api/urlsearchparams/index.md @@ -82,5 +82,3 @@ searchParams.toString(); // "q=URLUtils.searchParams" - Otras interfaces relacionadas con URL: {{domxref("URL")}}, {{domxref("URLUtils")}}. - [Google Developers: Fácil manipulación de una URL con URLSearchParams](https://developers.google.com/web/updates/2016/01/urlsearchparams?hl=en) - - diff --git a/files/es/web/api/web_audio_api/index.md b/files/es/web/api/web_audio_api/index.md index 314ea63b8d75ec..5f81c481d86f99 100644 --- a/files/es/web/api/web_audio_api/index.md +++ b/files/es/web/api/web_audio_api/index.md @@ -60,8 +60,6 @@ Las interfaces que definen fuentes de audio para usar en la API de Web. - {{domxref("AudioScheduledSourceNode")}} - : La interfaz **`AudioScheduledSourceNode`** es una interfaz padre para muchos tipos de interfaces de nodos de fuentes de audio. Es un {{domxref("AudioNode")}}. - - - {{domxref("OscillatorNode")}} - : La interfaz **`OscillatorNode`\*\*** \*\*representa una forma de onda periódica, como una onda sinusoidal o triangular. Es un módulo de procesamiento de audio {{domxref("AudioNode")}} que causa que se cree una _frecuencia_ de onda determinada. - {{domxref("AudioBuffer")}} diff --git a/files/es/web/api/web_speech_api/index.md b/files/es/web/api/web_speech_api/index.md index fb93dd2cf160ec..53b23bf333f558 100644 --- a/files/es/web/api/web_speech_api/index.md +++ b/files/es/web/api/web_speech_api/index.md @@ -59,8 +59,6 @@ For more details on using these features, see [Using the Web Speech API](/es/doc - {{domxref("SpeechSynthesisUtterance")}} - : Represents a speech request. It contains the content the speech service should read and information about how to read it (e.g. language, pitch and volume.) - - - {{domxref("SpeechSynthesisVoice")}} - : Represents a voice that the system supports. Every `SpeechSynthesisVoice` has its own relative speech service including information about language, name and URI. - {{domxref("Window.speechSynthesis")}} diff --git a/files/es/web/api/web_workers_api/index.md b/files/es/web/api/web_workers_api/index.md index e3152ebcc5ef61..f2038b2bc051a0 100644 --- a/files/es/web/api/web_workers_api/index.md +++ b/files/es/web/api/web_workers_api/index.md @@ -35,8 +35,6 @@ Ademas de los workers dedicados, hay otro tipo de workers: - {{domxref("WorkerLocation")}} - : Define la ruta absoluta del script que ejecuta el [`Worker`](/es/docs/Web/API/Worker "The Worker interface of the Web Workers API represents a background task that can be easily created and can send messages back to its creator. Creating a worker is as simple as calling the Worker() constructor and specifying a script to be run in the worker thread."). - - - {{domxref("SharedWorker")}} - : Representa un tipo de worker al que se puede acceder desde distintos contextos de navegación, tanto de varias ventanas, iframes, y otros workers. - {{domxref("WorkerGlobalScope")}} diff --git a/files/es/web/api/websockets_api/writing_websocket_client_applications/index.md b/files/es/web/api/websockets_api/writing_websocket_client_applications/index.md index a36f67ef91b4a1..a50c77b107645a 100644 --- a/files/es/web/api/websockets_api/writing_websocket_client_applications/index.md +++ b/files/es/web/api/websockets_api/writing_websocket_client_applications/index.md @@ -41,8 +41,6 @@ El constructor puede lanzar excepciones: - `SECURITY_ERR` - : El puerto de la conexión está siendo bloqueado. - - ### Errores de conexión Si ocurre un error al intentar conectar, lo primero que recibiremos será un evento con el nombre de "error" en el objeto `WebSocket `(de este modo se invoca el manejador `onerror`), y luego [`CloseEvent`](/en/WebSockets/WebSockets_reference/CloseEvent "CloseEvent") es enviado al objeto `WebSocket `(de este modo se invoca el manejador `onclose`), para indicar la razón del cierre de la conexión. diff --git a/files/es/web/api/window/fullscreen/index.md b/files/es/web/api/window/fullscreen/index.md index cb98b4142e34f1..f630b9b9b29ccb 100644 --- a/files/es/web/api/window/fullscreen/index.md +++ b/files/es/web/api/window/fullscreen/index.md @@ -23,8 +23,6 @@ Con privilegios chrome, el valor de esta propiedad se puede cambiar, de otra for - `isInFullScreen` - : Un valor*binario* . Los valores posibles son: - - - `true`: (Cierto) la ventana esta en modo pantalla completa. - `false`: (Falso)la ventana NO esta en modo pantalla completa. diff --git a/files/es/web/css/-moz-outline-radius/index.md b/files/es/web/css/-moz-outline-radius/index.md index 5f1c4bcd7c80bd..c7600581629339 100644 --- a/files/es/web/css/-moz-outline-radius/index.md +++ b/files/es/web/css/-moz-outline-radius/index.md @@ -49,8 +49,6 @@ Uno, dos,tres o cuatro valores `` , representan uno de los sigui - {{cssxref("<percentage>")}} - : Un {{cssxref("<percentage>")}}; ver {{cssxref("border-radius")}} para más detalles. - - - Si se establece un único valor se aplica a las cuatro esquinas- - Si se establecen dos valores, el primero se aplica a la esquina superior-izquierda e inferior-derecha y el segundo a las esquinas superior-derecha e inferior-izquierda - Si se establecen tres valores el primero se aplica a la esquina superior-izquierda, el segundo a las esquinas superior-derecha e inferior-izquierda y el tercero a la esquina inferior-derecha. diff --git a/files/es/web/css/-webkit-mask-box-image/index.md b/files/es/web/css/-webkit-mask-box-image/index.md index f357cc8ca72971..0d72500ec74f5a 100644 --- a/files/es/web/css/-webkit-mask-box-image/index.md +++ b/files/es/web/css/-webkit-mask-box-image/index.md @@ -44,8 +44,6 @@ Where: - none - : Para especificar que la caja del borde no va a tener imagen de máscara. - - - \ - : El tamaño del desplazamiento de la imagen de máscara. Ver {{cssxref("<length>")}} para posibles unidades. - \ diff --git a/files/es/web/css/@counter-style/index.md b/files/es/web/css/@counter-style/index.md index 7717f7f9b739d9..121ed16df2e111 100644 --- a/files/es/web/css/@counter-style/index.md +++ b/files/es/web/css/@counter-style/index.md @@ -28,38 +28,24 @@ Each `@counter-style` is identified by a name and has a set of descriptors. - {{cssxref("@counter-style/system", "system")}} - : Specifies the algorithm to be used for converting the integer value of a counter to a string representation. - - - {{cssxref("@counter-style/negative", "negative")}} - : Lets the author specify symbols to be appended or prepended to the counter representation if the value is negative. - - - {{cssxref("@counter-style/prefix", "prefix")}} - : Specifies a symbol that should be prepended to the marker representation. Prefixes are added to the representation in the final stage, so in the final representation of the counter, it comes before the negative sign. - - - {{cssxref("@counter-style/suffix", "suffix")}} - : Specifies, similar to the prefix descriptor, a symbol that is appended to the marker representation. Prefixes come after the marker representation. - - - {{cssxref("@counter-style/range", "range")}} - : Defines the range of values over which the conter style is applicable. If a counter style is used to represent a counter value outside of its ranges, the counter style will drop back to its fallback style. - - - {{cssxref("@counter-style/pad", "pad")}} - : Is used when you need the marker representations to be of a minimum length. For example if you want the counters to start start at 01 and go through 02, 03, 04 etc, then the pad descriptor is to be used. For representations larger than the specified pad value, the marker is constructed as normal. - - - {{cssxref("@counter-style/fallback", "fallback")}} - : Specifies a system to fall back into if either the specified system is unable to construct the representation of or a counter value or if the counter value outside the specified range. If the specified fallback also fails to represent the value, then the fallback style's fallback is used, if one is specified. If there are either no fallback systems described or if the chain of fallback systems are unable to represent a counter value, then it will ultimately fall back to the decimal style. - - - {{cssxref("@counter-style/symbols", "symbols")}} - : Specifies the symbols that are to be used for the marker representations. Symbols can contain string, images or custom identifiers. How the symbols are used to construct the marker representation is up to the algorithm specified in the system descriptor. For example, if the system specified is fixed, then each of the N symbols specified in the descriptor will be used to represent the first N counter symbols. Once the specified set of symbols have exhausted, the fallback style will be used for the rest of the list. @@ -74,13 +60,9 @@ Each `@counter-style` is identified by a name and has a set of descriptors. } ``` - - - {{cssxref("@counter-style/additive-symbols", "additive-symbols")}} - : While the symbols specified in the symbols descriptor is used for constructing marker representation by most algorithms, some systems such as 'additive' rely on _additive tuples_ described in this descriptor. Each additive tuple consists of a counter symbol and a non negative integer weight. The additive tuples must be specified in the descending order of their weights. - - - {{cssxref("@counter-style/speak-as", "speak-as")}} - : Describes how to read out the counter style in speech synthesizers, such as screen readers. For example, the value of the marker symbol can be read out as numbers or alphabets for ordered lists or as audio cues for unordered lists, based on the value of this descriptor. diff --git a/files/es/web/css/@page/index.md b/files/es/web/css/@page/index.md index c0e018e04f3db3..504d16c4c5f71a 100644 --- a/files/es/web/css/@page/index.md +++ b/files/es/web/css/@page/index.md @@ -20,13 +20,9 @@ La regla `@page` puede ser accesada por medio de la interfaz modelo objeto {{dom - [`size`](/es/docs/Web/CSS/@page/size) - : Especifica el tamaño y la orientación de la caja objetivo de la página. En general, una caja es representada dentro de una hoja, también indica el tamaño de la hoja destino. - - - [`marks`](/es/docs/Web/CSS/@page/marks) - : Añade marcas de corte y/o registro al documento. - - - [`bleed`](/es/docs/Web/CSS/@page/bleed) - : Especifica la extensión más allá de la caja de página a la que se recorta el procesamiento de página. diff --git a/files/es/web/css/animation-delay/index.md b/files/es/web/css/animation-delay/index.md index 50cdffbcee20c1..ee47b38a9ed13c 100644 --- a/files/es/web/css/animation-delay/index.md +++ b/files/es/web/css/animation-delay/index.md @@ -31,8 +31,6 @@ A menudo es conveniente usar la propiedad abreviada {{ cssxref("animation") }} p Gramática formal: