O uso indevido de registros profissionais tem se tornado uma preocupação crescente em diversas categorias, especialmente em áreas regulamentadas como contabilidade, medicina, engenharia e direito....
A precificação dos produtos e serviços de uma empresa é uma das decisões mais estratégicas para garantir sua rentabilidade e competitividade. Entretanto, mudanças nos custos, no mercado ou na...
A inteligência artificial (IA) está transformando o mundo dos negócios, trazendo avanços significativos na análise de dados, automação e suporte ao cliente. No entanto, enquanto a IA se torna...
Com o fim do ano se aproximando, os brasileiros começam a se planejar em relação ao décimo terceiro salário e outros benefícios, caracterizando-os como os recursos mais utilizados pela...
Av. Lins de Vasconcelos, nº 898, casa 13A Aclimação, São Paulo - SP
(11) 3340.6655 (11) 95636.4873
Horário de Funcionamento: 08:30 às 17:30hrs
contato@pigatti.com.br
Nossos Serviços Assessoria Contábil Assessoria Tributária e Fiscal Departamento Pessoal(RH) Abertura de Empresas Consultoria Sucessão Patrimonial BPO Financeiro Solução Completa
Áreas Especializadas Construção Cívil e Engenharia Médicos e Clínicas Escritórios De Advogados Lojas e Comércio em Geral Prestadores de Serviços E-Commerce e Portais de Vendas Empresas de Consultoria Restaurantes, Bares e Lanchonetes Folhas de Domésticas Petshops e Clínicas Veterinárias
Tabelas Simples Nacional Regime tributário para médicos
{"continue":{"imcontinue":"135977|Banyeres._Vista_des_de_la_via_verda.JPG","grncontinue":"0.201494998594|0.201494998594|0|0","continue":"grncontinue||revisions"},"warnings":{"main":{"*":"Subscribe to the mediawiki-api-announce mailing list at for notice of API deprecations and breaking changes. Use [[Special:ApiFeatureUsage]] to see usage of deprecated features by your application."},"revisions":{"*":"Because \"rvslots\" was not specified, a legacy format has been used for the output. This format is deprecated, and in the future the new format will always be used."}},"query":{"pages":{"135977":{"pageid":135977,"ns":0,"title":"Banyeres de Mariola","revisions":[{"contentformat":"text/x-wiki","contentmodel":"wikitext","*":"{{Info/Assentamento/Espanha|mun\n|nome =Banyeres de Mariola\n|cod_ine_sufixo =021\n|cod_ine_prefixo =03\n|predef_popula\u00e7\u00e3o =Popula\u00e7\u00e3o da Comunidade Valenciana\n|popula\u00e7\u00e3o_notas ={{Popula\u00e7\u00e3o da Comunidade Valenciana|REF=s}}\n|mapa_alfinete_legenda =Localiza\u00e7\u00e3o de Banyeres de Mariola na Espanha\n|mapa_alfinete1 =Comunidade Valenciana\n|mapa_alfinete_legenda1 =Localiza\u00e7\u00e3o de Banyeres de Mariola na Comunidade Valenciana\n|mapa_alfinete_tamanho1 =180\n|prov\u00edncia =[[Alicante (prov\u00edncia)|Alicante]]\n|comun_aut =[[Comunidade Valenciana]]\n|imagem =Banyeres. Vista des de la via verda.JPG\n|bandeira =Bandera de Banyeres de Mariola.svg\n|bras\u00e3o =Escut de Banyeres de Mariola.svg\n|\u00e1rea =50.28\n|altitude =816\n|coord_t\u00edtulo =s\n|latd= 38 |latm=42 |lats=57\n|longd=0 |longm=39 |longs=26\n|alcaide =Antonio Belda Valero\n|alcaide_partido =[[Partido Popular (Espanha)|PP]]\n|alcaide_ano =2007\n|gent\u00edlico =ba\u00f1erense\n|cp =03450\n}}\n'''Banyeres de Mariola''' \u00e9 um [[Munic\u00edpios da Espanha|munic\u00edpio]] da [[Espanha]] na [[Prov\u00edncias da Espanha|prov\u00edncia]] de [[Alicante (prov\u00edncia)|Alicante]], [[Comunidades aut\u00f3nomas da Espanha|Comunidade]] [[Comunidade Valenciana|Valenciana]]. Tem {{fmtn|50.28|[[Quil\u00f3metro quadrado|km\u00b2]]}} de \u00e1rea e em {{Popula\u00e7\u00e3o da Comunidade Valenciana|TXT=a\u00f1o}} tinha {{POB-Val\u00eancia|03021}} habitantes ({{Densidade populacional Val\u00eancia|03021|50.28}}).\n\n==Demografia==\n{{Evolu\u00e7\u00e3o demogr\u00e1fica\n|t\u00edtulo=Varia\u00e7\u00e3o [[demografia|demogr\u00e1fica]] do munic\u00edpio entre 1991 e 2004\n|cor =#C0C0C0\n|ano1=1991 |ano2=1996 |ano3=2001 |ano4=2004\n|pop1=7029 |pop2=7056 |pop3=7115 |pop4=7314\n}}\n\n==Ver tamb\u00e9m==\n*[[Castelo de Ba\u00f1eres de Mariola]]\n\n{{Refer\u00eancias}}\n\n{{Commonscat}}\n{{Espanha/Comunidade Valenciana/Alicante}}\n{{Portal3|Espanha|Comunidade Valenciana}}\n{{esbo\u00e7o-munic\u00edpios-es}}\n\n{{DEFAULTSORT:Banyeres Mariola}}\n[[Categoria:Munic\u00edpios de Alicante (prov\u00edncia)]]\n[[Categoria:Munic\u00edpios por nome da Comunidade Valenciana]]\n[[Categoria:Munic\u00edpios da Espanha por nome]]\n[[Categoria:Localidades de Alicante (prov\u00edncia)]]\n[[Categoria:Localidades da Comunidade Valenciana]]\n[[Categoria:Localidades da Espanha]]"}],"images":[{"ns":6,"title":"Ficheiro:Bandera de Banyeres de Mariola.svg"},{"ns":6,"title":"Ficheiro:Bandera de Espa\u00f1a.svg"}]},"3284342":{"pageid":3284342,"ns":0,"title":"Reino de Catab\u00e3","revisions":[{"contentformat":"text/x-wiki","contentmodel":"wikitext","*":"{{Info/Estado extinto2\n|imagens_tamanho = 300\n|nome = Reino de Catab\u00e3\n|s1 = Imp\u00e9rio de Axum\n|bandeira_s1 = LocationAksumiteEmpire-pt.svg\n|mapa = AxumYElSurDeArabiaHaciaEl230-pt.svg\n|mapa_legenda = Reino de Catab\u00e3 no {{s\u00e9c|II}}\n|regi\u00e3o1_r\u00f3tulo = Regi\u00e3o\n|regi\u00e3o1 = [[Oriente M\u00e9dio]]\n|capital = [[Timna (I\u00eamem)|Timna]]\n|idiomas = [[l\u00edngua catabanita|Catabanita]]\n|religi\u00e3o = Paganismo\n|pa\u00edses = [[I\u00eamem]]\n|era = [[Idade Antiga]]\n|ano_in\u00edcio = {{-s\u00e9c|VIII}}\n|ano_fim = {{+s\u00e9c|II}}}}\n\n'''Catab\u00e3'''{{sfn|Silva|2009}} ({{langx|ar|\u0645\u0645\u0644\u0643\u0629 \u0642\u062a\u0628\u0627\u0646||''mamlakat Qataban''}}) foi um dos antigos reinos do [[I\u00eamem]], do {{-s\u00e9c|VIII}} ao {{DC|II|x}}, {{sfn|Harrower|2016|p=139}} chamado '''Quitibaina''' (''Kittibaina'') ou '''Catabaina''' (''Cattabaina'') por [[Teofrasto]] e cujos habitantes foram chamados '''castabaneis''' por [[Estrab\u00e3o]], '''catabanes''' ou '''catabanos''' ({{langx|la|''catabani''}}) por [[Pl\u00ednio, o Velho]] e '''cotabanos''' (''cottabanoi'') por [[Ptolomeu (ge\u00f3grafo)|Ptolomeu]].{{sfn|O'Leary|1927|p=96-97}} A cidade de [[Timna (I\u00eamem)|Timna]], no {{ilc|U\u00e1di Bai\u00e3||U\u00e1di Bayhan|Wadi Bayhan}}, lhe serviu de capital e o reino de estendia no extremo canto sudoeste da [[Ar\u00e1bia]], no estreito que forma a entrada do [[mar da Ar\u00e1bia]] ([[Babelm\u00e2ndebe]]). Na sua costa sul estava o porto de [[Adem]]. Tinha l\u00edngua pr\u00f3pria ([[l\u00edngua catabanita|catabanita]]), o culto ao deus Haucum, que lhe parecia exclusivo, e sua economia estava centrada no com\u00e9rcio de [[incenso]] e [[mirra]].{{sfn|O'Leary|1927|p=96}}\n\n[[Image:qataban lion bronze.jpg|thumb|esquerda|Le\u00e3o de [[bronze]] com um montador feito em Catab\u00e3 cerca de {{AC|75-50|x}}]]\n\n{{limpar}}\n\n{{refer\u00eancias|col=2}}\n\n== Bibliografia ==\n\n{{In\u00edcioRef|2}}\n\n* {{Citar livro|sobrenome=Harrower|nome=Michael J.|t\u00edtulo=Water Histories and Spatial Archaeology: Ancient Yemen and the American West|ano=2016|editora= Imprensa da Universidade de Cambr\u00edgia|local=Cambr\u00edgia|ref=harv}}\n\n* {{Citar livro|sobrenome=O'Leary|nome=De Lacy|t\u00edtulo=Arabia Before Muhammad|editora=Routledge|local=Londres e Nova Iorque|ano=1927|ref=harv}}\n\n* {{Citar livro|sobrenome=Silva|nome=Alberto da Costa|t\u00edtulo=A Enxada e a Lan\u00e7a - A \u00c1frica Antes dos Portugueses|ano=2009|editora=Editora Nova Fronteira Participa\u00e7\u00f5es S.A.|cap\u00edtulo=6. Axum|local=Rio de Janeiro|isbn=978-85-209-3947-5|ref=harv}}\n\n{{-fim}}\n\n[[Categoria:Reino de Catab\u00e3]]"}]},"5260668":{"pageid":5260668,"ns":0,"title":"Ioannis Damanakis","revisions":[{"contentformat":"text/x-wiki","contentmodel":"wikitext","*":"{{Sem fontes|data=abril de 2025}}\n{{Info/Futebolista\n |nome = Ioannis Damanakis\n |imagem = \n |imagem_tamanho = 200px\n |imagem_legenda = Ioannis Damanakis\n |nomecompleto = Ioannis Damanakis\n |datadenascimento = {{dni|2|10|1952|si}}\n |cidadenatal = \n |paisnatal = {{GRE}}\n |datadefalecimento = \n |p\u00e9 = \n |altura = \n |posi\u00e7\u00e3o = Atacante\n |jovemanos = \n |jovemclubes = \n |ano = \n |clubes = {{GREb}} [[PAOK]]\n |jogos(golos) = \n |anoselecao = 1977\u20131983\n |selecaonacional = {{GREf}}\n |partidasselecao = 21 (1)\n |pcupdate = \n |ntupdate =\n|medalhas = \n}}\n'''Ioannis Damanakis''' ([[2 de outubro]] de [[1952]]) \u00e9 um ex-[[futebolista]] profissional [[Gregos|grego]] que atuava como atacante.\n\n== Carreira ==\nIoannis Damanakis defendeu a [[Sele\u00e7\u00e3o Grega de Futebol]], na hist\u00f3rica presen\u00e7a na [[Euro 1980]].\n\n{{Refer\u00eancias}}\n\n== Liga\u00e7\u00f5es Externas ==\n*[http://www.fifa.com/fifa-tournaments/players-coaches/people=52233/index.html Perfil em Fifa.com] {{en}}\n\n{{Sele\u00e7\u00e3o Grega de Futebol de 1980}}\n{{Portal3|Futebol|Gr\u00e9cia}}\n\n{{DEFAULTSORT:Damanakis, Ioannis}}\n[[Categoria:Jogadores da Eurocopa de 1980]]\n[[Categoria:Jogadores da Sele\u00e7\u00e3o Grega de Futebol]]"}]},"1480339":{"pageid":1480339,"ns":0,"title":"Variedade alg\u00e9brica","revisions":[{"contentformat":"text/x-wiki","contentmodel":"wikitext","*":"{{Sem fontes|data=julho de 2021}}\nUma '''variedade alg\u00e9brica''' \u00e9 o [[conjunto]] de [[zero]]s de uma fam\u00edlia de [[polin\u00f4mio]]s, e constitui o objeto principal de estudo da [[geometria alg\u00e9brica]]. Pelo conceito de variedade alg\u00e9brica \u00e9 poss\u00edvel constituir uma rela\u00e7\u00e3o entre a [[\u00e1lgebra]] e a [[geometria]], que permite se reformular problemas geom\u00e9tricos em termos alg\u00e9bricos, e vice-versa. Tal rela\u00e7\u00e3o \u00e9 baseada principalmente no fato que um polin\u00f4mio [[n\u00famero complexo|complexo]] em uma vari\u00e1vel \u00e9 completamente determinado em seus zeros: o [[teorema dos zeros de Hilbert]] permite de fato estabelecer-se uma correspond\u00eancia entre variedade alg\u00e9brica e [[Ideal (teoria dos an\u00e9is)|ideal]] de [[polin\u00f4mio#anel de polin\u00f4mios|an\u00e9is de polin\u00f4mios]].\n\n== Defini\u00e7\u00e3o ==\n\nSe um [[corpo algebricamente fechado]], o [[anel de polin\u00f4mios]] em com vari\u00e1veis, e uma fam\u00edlia de polin\u00f4mios do anel. O subconjunto de formado dos pontos que anulam todos os polin\u00f4mios de \u00e9 uma variedade alg\u00e9brica:\n\n\n\n== Variedades afins ==\n\n{{AP|[[Variedade afim]]}}\n\nDado o corpo algebricamente fechado e um [[espa\u00e7o afim]] de dimens\u00e3o sobre os polin\u00f4mios do anel s\u00e3o fun\u00e7\u00f5es a valores em definidas sobre \n\nTomada uma fam\u00edlia de polin\u00f4mios o conjunto dos pontos de pelos quais as fun\u00e7\u00f5es de s\u00e3o todas nulas:\n\n\n\n\u00e9 dito ''conjunto alg\u00e9brico afim''. Se n\u00e3o pode ser escrito como [[Uni\u00e3o (matem\u00e1tica)|uni\u00e3o]] pr\u00f3pria de dois conjuntos alg\u00e9bricos semelhantes, \u00e9 dita ''variedade afim''.\n\n=== Propriedades===\n\n* Sobre as variedades afins \u00e9 poss\u00edvel definir uma [[Topologia (matem\u00e1tica)|topologia]] natural definindo como [[conjunto fechado|conjuntos fechados]] todos os conjuntos alg\u00e9bricos ([[topologia de Zariski]]).\n* Dado \u00e9 o ideal formato de todas as fun\u00e7\u00f5es que se anulam sobre \n\n: Se define ''anel da coordenadas'' de o [[Anel (matem\u00e1tica)|anel quociente]] O grau de transcend\u00eancia do campo das fra\u00e7\u00f5es de sobre \u00e9 dito ''dimens\u00e3o'' de \n* Um conjunto alg\u00e9brico afim \u00e9 uma variedade se e somente se \u00e9 um [[ideal primo]], ou se e somente se o anel das coordenadas de \u00e9 um [[dom\u00ednio de integridade]].\n* Todo conjunto alg\u00e9brico afim pode ser escrito de maneira \u00fanica como uni\u00e3o de variedades alg\u00e9bricas.\n\n== Variedade projetiva ==\n\n{{AP|[[Variedade projetiva]]}}\n\n\u00c9 poss\u00edvel modificar ligeiramente a defini\u00e7\u00e3o de variedade afim para estend\u00ea-la ao caso de um [[espa\u00e7o projetivo]] sobre o corpo neste caso considera-se um conjunto formado de polin\u00f4mios ''homog\u00eaneos'' (ou dos quais os [[mon\u00f4mio]]s t\u00eam mesmo todos os grau). Com as mesmas nota\u00e7\u00f5es obt\u00eam-se ent\u00e3o as defini\u00e7\u00f5es do conjunto alg\u00e9brico projetivo, variedade projetiva, topologia de Zariski e anel das coordenadas de uma variedade.\n\n==[[Isomorfismo]]s de variedades alg\u00e9bricas ==\n\nUm isomorfismo entre duas variedades alg\u00e9bricas e \u00e9 um [[morfismo]] de variedade alg\u00e9brica que \u00e9 tamb\u00e9m uma [[Fun\u00e7\u00e3o bijectiva|correspond\u00eancia biun\u00edvoca]]:\n\n\n\n e s\u00e3o ditas ''isomorfas'' e se escreve \n\nO isomorfismo entre variedades alg\u00e9bricas \u00e9 uma [[rela\u00e7\u00e3o de equival\u00eancia]]: toda a variedade alg\u00e9brica isomorfa entre elas pode considerar-se como substancialmente equivalentes e s\u00e3o agrupadas numa \u00fanica classe de equival\u00eancia dita ''variedade alg\u00e9brica abstrata''.\n\n{{esbo\u00e7o-matem\u00e1tica}}\n\n[[Categoria:Geometria alg\u00e9brica]]\n[[Categoria:Variedades alg\u00e9bricas]]"}]},"468141":{"pageid":468141,"ns":0,"title":"Prov\u00edncia Oriental (Qu\u00e9nia)","revisions":[{"contentformat":"text/x-wiki","contentmodel":"wikitext","*":"{{Sem fontes|data=julho de 2020}}\n{{coor title dm|0|00|N|38|00|E|region:KE_type:adm1st_source:GNS-enwiki}}\n[[Ficheiro:Kenya Provinces Eastern.png|thumb|200px|Localiza\u00e7\u00e3o da Prov\u00edncia Oriental no Qu\u00e9nia]]\nA '''Prov\u00edncia Oriental''' (''Mkoa wa Mashariki'', em [[kiswahili]]) \u00e9 uma [[Subdivis\u00f5es do Qu\u00e9nia|prov\u00edncia]] do [[Qu\u00e9nia]]. Sua capital \u00e9 [[Embu (Qu\u00eania)|Embu]].\n\n== Administra\u00e7\u00e3o ==\nA Prov\u00edncia Oriental est\u00e1 dividida em treze distritos (wilaya):\n{| class=\"wikitable\"\n!Distrito\n!Capital\n|-\n|[[Embu (distrito)|Embu]]\n|[[Embu (Qu\u00eania)|Embu]]\n|-\n|[[Isiolo (distrito)|Isiolo]]\n|[[Isiolo]]\n|-\n|[[Kitui (distrito)|Kitui]]\n|[[Kitui]]\n|-\n|[[Machakos (distrito)|Machakos]]\n|[[Machakos]]\n|-\n|[[Makueni]]\n|[[Wote]]\n|-\n|[[Marsabit (distrito)|Marsabit]]\n|Marsabit\n|-\n|Mbeere\n|[[Siakago]]\n|-\n|[[Meru Central]]\n|{{ilc|Meru|Meru (Qu\u00e9nia)|Meru (Qu\u00eania)}}\n|-\n|[[Meru Norte]]\n|Maua\n|-\n|[[Meru Sul]]\n|[[Chuka (Qu\u00eania)|Chuka]]\n|-\n|[[Moyale (distrito)|Moyale]]\n|Moyale\n|-\n|[[Mwingi (distrito)|Mwingi]]\n|Mwingi\n|-\n|[[Tharaka (distrito)|Tharaka]]\n|Tharaka\n|}\n\n{{esbo\u00e7o-geoke}}\n{{Qu\u00e9nia}}\n\n[[Categoria:Prov\u00edncias do Qu\u00e9nia]]"}]},"3440618":{"pageid":3440618,"ns":0,"title":"John Lindroth","revisions":[{"contentformat":"text/x-wiki","contentmodel":"wikitext","*":"{{Info/esporte/atleta\n| nome = John Lindroth\n| imagem =\n| tamanho =\n| legenda =\n| nomecompleto = John Lindroth\n| apelido = \n| especialidade =\n| nacionalidade = {{FINb}} [[Finl\u00e2ndia|finlandesa]]\n| representante_do = [[Sele\u00e7\u00e3o Finlandesa de Gin\u00e1stica Art\u00edstica Masculina|Finl\u00e2ndia]]\n| data_nascimento = {{dni|17|9|1883|si|lang=br}}\n| local_nascimento = [[Karijoki]]\n| data_morte = {{nowrap|{{morte|lang=br|24|7|1960|17|9|1883}}}}\n| local_morte = [[Hels\u00ednquia|Helsinque]]\n| peso =\n| altura =\n| disciplina = [[Gin\u00e1stica art\u00edstica|Gin\u00e1stica art\u00edstica masculina]]\n| nivel = [[s\u00eanior]]\n| clube = \n| atividade =\n| esconder = sim\n| medalhas =\n{{MedalCompetition|Jogos Ol\u00edmpicos}}\n{{MedalBronze|[[Jogos Ol\u00edmpicos de Ver\u00e3o de 1908|Londres 1908]]|[[Gin\u00e1stica nos Jogos Ol\u00edmpicos de Ver\u00e3o de 1908|Equipe]]}}\n}}\n[[Ficheiro:John Lindroth.png|miniaturadaimagem|Foto do ex- ginasta finland\u00eas John Lindroth.]]\n'''John Lindroth''' ([[Karijoki]], [[17 de setembro]] de [[1883]] \u2014 [[Hels\u00ednquia|Helsinque]], [[24 de julho]] de [[1960]]) foi um [[Gin\u00e1stica art\u00edstica|ginasta]] [[Finl\u00e2ndia|finland\u00eas]] que competiu em provas de [[gin\u00e1stica art\u00edstica]] pela na\u00e7\u00e3o.\n\nLindroth \u00e9 o detentor de uma medalha ol\u00edmpica, conquistada na edi\u00e7\u00e3o de 1908, nos [[Gin\u00e1stica nos Jogos Ol\u00edmpicos de Ver\u00e3o de 1908|Jogos de Londres]]. Na ocasi\u00e3o, ao lado de outros 25 companheiros, conquistou a medalha de bronze, ap\u00f3s ser superado pelas na\u00e7\u00f5es da Su\u00e9cia, de [[Sven Landberg]], medalhista de ouro, e Noruega, segunda colocada.{{Citar web|url=http://www.databaseolympics.com/players/playerpage.htm?ilkid=LINDRJOH01|titulo=John Lindroth|acessodata=25 de setembro de 2010|publicado=Sports Reference|lingua=ingl\u00eas|arquivourl=https://web.archive.org/web/20070214064629/http://www.databaseolympics.com/players/playerpage.htm?ilkid=LINDRJOH01#|arquivodata=14 de fevereiro de 2007|urlmorta=yes}}\n\n==Ver tamb\u00e9m==\n*[[Federa\u00e7\u00e3o Internacional de Gin\u00e1stica]]\n*Outras biografias\n\n{{Refer\u00eancias}}\n\n== Liga\u00e7\u00f5es externas ==\n*{{Fig|id=|nome=John Lindroth}}\n\n{{Biografias}}\n{{Esbo\u00e7o-ginasta2}}\n{{Portal3|Gin\u00e1stica|Desportos|Eventos multiesportivos}}\n\n{{DEFAULTSORT:Lindroth, John}}\n[[Categoria:Ginastas art\u00edsticos da Finl\u00e2ndia]]"}]},"21978":{"pageid":21978,"ns":0,"title":"JavaScript","revisions":[{"contentformat":"text/x-wiki","contentmodel":"wikitext","*":"{{Descri\u00e7\u00e3o curta|Linguagem de programa\u00e7\u00e3o de alto n\u00edvel}}\n{{mais notas|data=novembro de 2010|sobre=Ci\u00eancia da computa\u00e7\u00e3o}}\n{{n\u00e3o confundir com|Java (linguagem de programa\u00e7\u00e3o)}}\n{{Info/Linguagem de computador\n |nome = JavaScript\n |logotipo = Unofficial JavaScript logo 2.svg\n |logotipo_legenda = Logotipo n\u00e3o oficial da JSConf EU 2011\n |imagem = JavaScript code.png\n |imagem_legenda = Captura de tela do c\u00f3digo-fonte JavaScript\n |paradigma = [[Multiparadigma]]\n* [[Programa\u00e7\u00e3o funcional|funcional]]\n* [[Programa\u00e7\u00e3o imperativa|imperativa]]\n* [[Orienta\u00e7\u00e3o a objetos|orientada a objetos]]\n |ano = {{ani|1995|12|04}}\n |ultima_versao = ECMAScript 2023\n |ultima_data = junho de 2023{{Citar web|url=https://www.ecma-international.org/publications/standards/Ecma-262.htm |t\u00edtulo=Standard ECMA-262 |publicado=ecma-international.org |data= |acessodata=31 de dezembro de 2023}}\n |criador = [[Brendan Eich]]\n |tipagem =\n* din\u00e2mica\n* fraca\n* ''[[Duck typing|duck]]''\n |implementa\u00e7\u00f5es =\n* [[V8 (JavaScript)|V8]]\n* JavaScriptCore\n* SpiderMonkey\n |dialetos = [[TypeScript]]\n |influenciada_por =\n* [[Self (linguagem de programa\u00e7\u00e3o)|Self]]\n* [[C (linguagem de programa\u00e7\u00e3o)|C]]\n* [[Lisp]]\n* [[Scheme]]\n* [[Perl]]\n* [[Python]]\n* [[Java (linguagem de programa\u00e7\u00e3o)|Java]]\n |influenciou =\n* [[ActionScript]]\n* [[CoffeeScript]]\n* [[Dart (linguagem de programa\u00e7\u00e3o)|Dart]]\n* [[JScript]]\n* [[JScript .NET]]\n* Objective-J\n* [[Zig (linguagem de programa\u00e7\u00e3o)|Zig]]\n |extens\u00e3o =\n* .js\n* .mjs\n*.cjs\n |sitio =\n}}\n'''JavaScript''' (frequentemente abreviado como JS) \u00e9 uma [[linguagem de programa\u00e7\u00e3o]] [[linguagem de script|interpretada]] [[Programa\u00e7\u00e3o estruturada|estruturada]], de script em alto n\u00edvel com [[Tipo de dado|tipagem]] [[Tipagem din\u00e2mica|din\u00e2mica]] [[Linguagem tipada#Linguagens fracamente tipadas|fraca]] e [[Linguagem de programa\u00e7\u00e3o multiparadigma|multiparadigma]] (prot\u00f3tipos, orientado a objeto, imperativo e funcional).{{citar livro|\u00faltimo =Flanagan |primeiro =David |autor2=Ferguson, Paula |t\u00edtulo=JavaScript: The Definitive Guide |edi\u00e7\u00e3o=4th |ano=2002 |publicado=O'Reilly & Associates |local= |isbn=0-596-00048-0 }}{{Citar tese|sobrenome=Daniela Rocha Silva|nome=Daniela|ano=2017|titulo=Um Estudo em Larga Escala sobre a Estrutura do C\u00f3digo-fonte de Pacotes JavaScript|tipo=tese|grau=Bacharel|capitulo=A linguagem JavaScript|institui\u00e7\u00e3o=Universidade Federal do Estado do Rio de Janeiro (UNIRIO)|url=http://bsi.uniriotec.br/tcc/textos/201707DanielaRochaLuisSobral.pdf|acessodata=22/10/2019}} Juntamente com [[HTML]] e [[Cascading Style Sheets|CSS]], o JavaScript \u00e9 uma das tr\u00eas principais tecnologias da World Wide Web. JavaScript permite p\u00e1ginas da Web interativas e, portanto, \u00e9 uma parte essencial dos aplicativos da web. A grande maioria dos sites usa, e todos os principais navegadores t\u00eam um mecanismo JavaScript dedicado para execut\u00e1-lo.{{Citar web|titulo=O que \u00e9 e como funciona a linguagem JavaScript?|url=https://canaltech.com.br/internet/O-que-e-e-como-funciona-a-linguagem-JavaScript/|data=2015-01-28|lingua=pt-BR|acessodata=2020-05-03|publicado=Canaltech|ultimo=Silva|primeiro=Giancarlo}} \u00c9 atualmente a principal [[Linguagem de programa\u00e7\u00e3o|linguagem para programa\u00e7\u00e3o]] [[Cliente-servidor|client-side]] em navegadores web. \u00c9 tamb\u00e9m bastante utilizada do lado do servidor atrav\u00e9s de ambientes como o [[node.js]].\n\nComo uma linguagem multiparadigma, o JavaScript suporta estilos de programa\u00e7\u00e3o orientados a eventos, funcionais e imperativos (incluindo orientado a objetos e prototype-based), apresentando recursos como fechamentos (closures) e fun\u00e7\u00f5es de alta ordem comumente indispon\u00edveis em linguagens populares como [[Java (linguagem de programa\u00e7\u00e3o)|Java]] e [[C++]]. Possui APIs para trabalhar com texto, matrizes, datas, express\u00f5es regulares e o DOM, mas a linguagem em si n\u00e3o inclui nenhuma E/S, como instala\u00e7\u00f5es de rede, armazenamento ou gr\u00e1ficos, contando com isso no ambiente host em que est\u00e1 embutido.\n\nFoi originalmente implementada como parte dos [[Navegador web|navegadores]] web para que scripts pudessem ser executados do lado do cliente e interagissem com o usu\u00e1rio sem a necessidade deste script passar pelo servidor, controlando o navegador, realizando comunica\u00e7\u00e3o ass\u00edncrona e alterando o conte\u00fado do documento exibido, por\u00e9m os mecanismos JavaScript agora est\u00e3o incorporados em muitos outros tipos de software host, incluindo em servidores e bancos de dados da Web e em programas que n\u00e3o s\u00e3o da Web, como processadores de texto e [[PDF]], e em [[tempo de execu\u00e7\u00e3o]] ambientes que disponibilizam JavaScript para escrever aplicativos m\u00f3veis e de desktop, incluindo widgets de \u00e1rea de trabalho.\n\nOs termos Vanilla JavaScript e Vanilla JS referem-se ao JavaScript n\u00e3o estendido por qualquer estrutura ou biblioteca adicional. Scripts escritos em Vanilla JS s\u00e3o c\u00f3digos JavaScript simples.{{Citar web|titulo=javascript - What is VanillaJS?|url=https://stackoverflow.com/questions/20435653/what-is-vanillajs|obra=Stack Overflow|acessodata=2019-03-16}}{{Citar web|titulo=Vanilla JS|url=http://vanilla-js.com/|obra=vanilla-js.com|acessodata=2019-03-16}}\n\nEmbora existam semelhan\u00e7as entre JavaScript e [[Java (linguagem de programa\u00e7\u00e3o)|Java]], incluindo o nome da linguagem, a sintaxe e as respectivas bibliotecas padr\u00e3o, as duas linguagens s\u00e3o distintas e diferem muito no design; JavaScript foi influenciado por linguagens de programa\u00e7\u00e3o como [[Self (linguagem de programa\u00e7\u00e3o)|Self]] e [[Scheme]].{{Citar web|titulo=WebCite query result|url=https://www.webcitation.org/5rBiWD4P6?url=http://www.ecmascript.org/es4/spec/overview.pdf|obra=www.webcitation.org|acessodata=2019-03-16}}\n\n\u00c9 baseada em [[ECMAScript]], padronizada pela [[Ecma International|Ecma international]] nas especifica\u00e7\u00f5es ECMA-262{{Citar web |url=http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf |t\u00edtulo=ECMAScript Language Specification |acessodata=10 de fevereiro de 2011 |arquivourl=https://web.archive.org/web/20150412040502/http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf# |arquivodata=12 de abril de 2015 |urlmorta=yes }} e ISO/IEC 16262.\n\n== Hist\u00f3ria ==\n=== In\u00edcio no Netscape ===\nEm 1993, o [[National Center for Supercomputing Applications|Centro Nacional de Aplica\u00e7\u00f5es de Supercomputa\u00e7\u00e3o]] (NCSA), uma unidade da [[Universidade de Illinois]] em Urbana-Champaign, lan\u00e7ou o [[Mosaic|NCSA Mosaic]], o primeiro navegador gr\u00e1fico popular da Web, que desempenhou um papel importante na expans\u00e3o do crescimento da nascente [[World Wide Web]] al\u00e9m do nicho [[NeXT|NeXTSTEP]] onde a World Wide Web havia se formado tr\u00eas anos antes. Em 1994, uma empresa chamada [[Mosaic Communications Corporation|Mosaic Communications]] foi fundada em [[Mountain View (Calif\u00f3rnia)|Mountain View]], na Calif\u00f3rnia, e empregou muitos dos autores originais do NCSA Mosaic para criar o Mosaic Netscape. No entanto, n\u00e3o compartilhou intencionalmente nenhum c\u00f3digo com o NCSA Mosaic. O codinome interno do navegador da empresa era Mozilla, uma jun\u00e7\u00e3o de \"Mosaic and [[Godzilla]]\". A primeira vers\u00e3o do navegador da Web, Mosaic Netscape 0.9, foi lan\u00e7ada no final de 1994. Em quatro meses, j\u00e1 havia conquistado tr\u00eas quartos do mercado de navegadores e se tornado o principal navegador da Web nos anos 90. Para evitar problemas de propriedade de marca registrada com o NCSA, o navegador foi posteriormente renomeado para [[Netscape Navigator]] no mesmo ano, e a empresa assumiu o nome de [[Netscape Communications]]. A Netscape Communications percebeu que a Web precisava se tornar mais din\u00e2mica. [[Marc Andreessen]], o fundador da empresa, acreditava que o [[HTML]] precisava de uma \"linguagem de cola\" que fosse f\u00e1cil de usar por Web designers e programadores de meio per\u00edodo para montar componentes como imagens e plugins, onde o c\u00f3digo poderia ser escrito diretamente na Web.{{Citar web|titulo=TimelineJS Embed|url=https://cdn.knightlab.com/libs/timeline3/latest/embed/index.html?source=1Hqom0ylqRgVGmOy3xFnEjIPtu1jNUT6PDpDGBgULYQU/edit?usp=sharing&font=Default&lang=en&initial_zoom=2&height=650|obra=cdn.knightlab.com|acessodata=2019-03-17}}\n\nEm 1995, a [[Netscape Communications]] recrutou [[Brendan Eich]] com o objetivo de incorporar a linguagem de programa\u00e7\u00e3o [[Scheme]] em seu [[Netscape Navigator]].{{Citar web|titulo=Chapter 4. How JavaScript Was Created|url=http://speakingjs.com/es5/ch04.html|obra=speakingjs.com|acessodata=2019-03-17}} Antes que ele pudesse come\u00e7ar, a Netscape Communications colaborou com a [[Sun Microsystems]] para incluir na linguagem de programa\u00e7\u00e3o mais est\u00e1tica do Netscape Navigator Sun, [[Java (linguagem de programa\u00e7\u00e3o)|Java]], a fim de competir com a [[Microsoft]] pela ado\u00e7\u00e3o de tecnologias e plataformas da Web.{{Citar peri\u00f3dico|ultimo=Severance|primeiro=C.|data=fevereiro de 2012|titulo=JavaScript: Designing a Language in 10 Days|url=https://ieeexplore.ieee.org/document/6155645/|jornal=Computer|volume=45|numero=2|paginas=7\u20138|doi=10.1109/MC.2012.57|issn=0018-9162}} A [[Netscape Communications]] decidiu ent\u00e3o que a linguagem de script que eles queriam criar complementaria o [[Java (linguagem de programa\u00e7\u00e3o)|Java]] e deveria ter uma sintaxe semelhante, o que exclu\u00eda a ado\u00e7\u00e3o de outras linguagens como [[Perl]], [[Python]], [[Tcl|TCL]] ou [[Scheme]]. Para defender a ideia do JavaScript contra propostas concorrentes, a empresa precisava de um prot\u00f3tipo. [[Brendan Eich|Eich]] escreveu um em 10 dias, em maio de 1995.\n\nEmbora tenha sido desenvolvido sob o nome Mocha, a linguagem foi oficialmente chamada de LiveScript quando foi lan\u00e7ada em vers\u00f5es beta do Netscape Navigator 2.0 em setembro de 1995, mas foi renomeada para JavaScript{{Citar web|titulo=Press Release|url=https://web.archive.org/web/20070916144913/http://wp.netscape.com/newsref/pr/newsrelease67.html|obra=web.archive.org|data=2007-09-16|acessodata=2019-03-17}} quando foi lan\u00e7ada no Netscape Navigator 2.0 beta 3 Dezembro.{{Citar web|titulo=TechVision: Innovators of the Net: Brendan Eich and JavaScript|url=https://web.archive.org/web/20080208124612/http://wp.netscape.com/comprod/columns/techvision/innovators_be.html|obra=web.archive.org|data=2008-02-08|acessodata=2019-03-17}} A escolha final do nome causou confus\u00e3o, dando a impress\u00e3o de que a linguagem era uma deriva\u00e7\u00e3o da linguagem de programa\u00e7\u00e3o Java, e a escolha foi caracterizada como uma manobra de marketing da Netscape para dar ao JavaScript o status da linguagem da moda, o Java.\n\nH\u00e1 um equ\u00edvoco comum de que o JavaScript foi influenciado por uma linguagem de script de p\u00e1gina da Web desenvolvida pelo Nombas chamada Cmm (n\u00e3o confundir com o C posteriormente - criado em 1997).{{Citar web|titulo=The History of Programming Languages - O'Reilly Media|url=https://web.archive.org/web/20160712042618/http://archive.oreilly.com/pub/a/oreilly/news/languageposter_0504.html|obra=web.archive.org|data=2016-07-12|acessodata=2019-03-17}} [[Brendan Eich]], no entanto, nunca tinha ouvido falar de Cmm antes de criar o LiveScript.{{Citar web|titulo=History of Nombas|url=http://www.brent-noorda.com/nombas/history/HistoryOfNombas.html#h.yal3k216ii2r|obra=www.brent-noorda.com|acessodata=2019-03-17}} Os Nombas lan\u00e7aram seus scripts de p\u00e1gina da Web incorporados no [[Netscape Navigator|Netscape]], embora o script de p\u00e1gina da Web n\u00e3o fosse um conceito novo, conforme mostrado pelo navegador da Web [[ViolaWWW]]. Nombas mais tarde passou a oferecer JavaScript em vez de Cmm em seu produto ScriptEase e fazia parte do grupo TC39 que padronizava o ECMAScript.{{Citar web|titulo=New JavaScript Engine Module Owner \u2013 Brendan Eich|url=https://brendaneich.com/2011/06/new-javascript-engine-module-owner/|obra=brendaneich.com|acessodata=2019-03-17}}\n\n=== JavaScript Back-end ===\nEm dezembro de 1995, logo depois de lan\u00e7ar o JavaScript para navegadores, a Netscape introduziu uma implementa\u00e7\u00e3o da linguagem para scripting server-side com o Netscape Enterprise Server.{{Citar web|titulo=Server-Side JavaScript Guide|url=https://docs.oracle.com/cd/E19957-01/816-6411-10/contents.htm|obra=docs.oracle.com|acessodata=2019-03-17}}\n\nDesde 1996, o servidor da Web do IIS tem suportado a implementa\u00e7\u00e3o do JavaScript \u2014 JScript do lado do servidor \u2014 em p\u00e1ginas ASP e .NET.{{Citar web|titulo=Introducing JScript .NET|url=https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/scripting-articles/ms974588(v%3dmsdn.10)|obra=docs.microsoft.com|acessodata=2019-03-17|lingua=en-us|primeiro=Tara Meyer (Aquent|ultimo=LLC)}}\n\nDesde meados da d\u00e9cada de 2000, foram introduzidas implementa\u00e7\u00f5es adicionais de JavaScript no lado do servidor, como o [[Node.js]] em 2009.{{Citar web|titulo=Server-Side Javascript: Back With a Vengeance|url=https://readwrite.com/2009/12/17/server-side_javascript_back_with_a_vengeance/|obra=ReadWrite|data=2009-12-17|acessodata=2019-03-17|lingua=en-US}}\n\nO [[TypeScript]] \u00e9 uma linguagem de programa\u00e7\u00e3o que adiciona tipagem ao JavaScript, sendo popular para uso no back-end.{{Citar web|url=https://www.theregister.com/2022/06/22/stackoverflow_survey/|titulo=TypeScript joins 5 most used languages in 2022 lineup|data=2022-06-22|acessodata=2022-11-21|website=The Register}}\n\n=== Ado\u00e7\u00e3o pela Microsoft ===\nAs tecnologias de script da [[Microsoft]], incluindo [[VBScript]] e [[JScript]], foram lan\u00e7adas em 1996. JScript, uma implementa\u00e7\u00e3o de [[engenharia reversa]] do JavaScript da Netscape, fazia parte do [[Internet Explorer 3]]. O JScript tamb\u00e9m estava dispon\u00edvel para scripts do servidor no Internet Information Server. O Internet Explorer 3 tamb\u00e9m incluiu o primeiro suporte da Microsoft para [[Cascading Style Sheets|CSS]] e v\u00e1rias extens\u00f5es para [[HTML]], mas em cada caso a implementa\u00e7\u00e3o era visivelmente diferente daquela encontrada no Netscape Navigator na \u00e9poca.{{Citar web|titulo=JavaScript: How Did We Get Here? - O'Reilly Media|url=https://web.archive.org/web/20160719020828/http://archive.oreilly.com/pub/a/javascript/2001/04/06/js_history.html|obra=web.archive.org|data=2016-07-19|acessodata=2019-03-17}} Essas diferen\u00e7as tornaram dif\u00edcil para os designers e programadores fazerem um \u00fanico site funcionar bem em ambos os navegadores, levando ao uso dos logotipos \"melhor visualizado no Netscape\" e \"melhor visualizado no Internet Explorer\" que caracterizaram esses primeiros anos de guerras de navegadores. O JavaScript come\u00e7ou a adquirir a reputa\u00e7\u00e3o de ser um dos obst\u00e1culos a uma Web de plataforma cruzada e baseada em padr\u00f5es. Alguns desenvolvedores assumiram a dif\u00edcil tarefa de tentar fazer com que seus sites funcionassem em ambos os principais navegadores, mas muitos n\u00e3o podiam arcar com o tempo. Com o lan\u00e7amento do [[Internet Explorer 4]], a [[Microsoft]] introduziu o conceito de [[HTML]] Din\u00e2mico, mas as diferen\u00e7as nas implementa\u00e7\u00f5es de linguagem e nos diferentes e propriet\u00e1rios Modelos de Objeto de Documento permaneceram e foram obst\u00e1culos \u00e0 ado\u00e7\u00e3o generalizada de JavaScript na Web.\n\n=== Padroniza\u00e7\u00e3o ===\nEm novembro de 1996, a Netscape submeteu o JavaScript \u00e0 [[Ecma International|ECMA International]] para criar uma especifica\u00e7\u00e3o padr\u00e3o, que outros fornecedores de navegador poderiam implementar com base no trabalho feito na Netscape. Isso levou ao lan\u00e7amento oficial da especifica\u00e7\u00e3o de linguagem ECMAScript publicada na primeira edi\u00e7\u00e3o da norma ECMA-262 em junho de 1997, sendo o JavaScript a mais conhecida das implementa\u00e7\u00f5es. [[ActionScript]] e [[JScript]] eram outras implementa\u00e7\u00f5es bem conhecidas do [[ECMAScript]].\n\nO lan\u00e7amento do ECMAScript 2 em junho de 1998 deu continuidade ao ciclo de processo de padr\u00f5es, conforme algumas modifica\u00e7\u00f5es do padr\u00e3o internacional ISO / IEC 16262. ECMAScript 3 foi lan\u00e7ado em dezembro de 1999 e \u00e9 a linha de base moderna para JavaScript. O trabalho original do ECMAScript 4 liderado por Waldemar Horwat (ent\u00e3o na Netscape, agora no Google) come\u00e7ou em 2000. A Microsoft inicialmente participou e implementou algumas propostas em sua linguagem [[JScript .NET]].\n\nCom o tempo, ficou claro que a [[Microsoft]] n\u00e3o tinha inten\u00e7\u00e3o de cooperar ou implementar o JavaScript adequado no [[Internet Explorer]], mesmo que eles n\u00e3o tivessem uma proposta concorrente e tivessem uma implementa\u00e7\u00e3o parcial (e divergente neste ponto) no lado do servidor .NET. Ent\u00e3o, em 2003, o trabalho original do ECMAScript 4 foi desativado.\n\nO pr\u00f3ximo grande evento foi em 2005, com dois grandes acontecimentos na hist\u00f3ria do JavaScript. Primeiro, Brendan Eich e Mozilla juntaram-se novamente \u00e0 Ecma International como um membro sem fins lucrativos e come\u00e7aram a trabalhar no ECMAScript para [[XML]] (E4X), o padr\u00e3o ECMA-357, que veio de ex-funcion\u00e1rios da Microsoft na [[BEA Systems]] (originalmente adquirida como Crossgain) . Isso levou a trabalhar em conjunto com a [[Macromedia]] (posteriormente adquirida pela Adobe Systems), que estava implementando o E4X no ActionScript 3 (o ActionScript 3 era um fork do ECMAScript 4 original).\n\nAssim, juntamente com a Macromedia, o trabalho foi reiniciado no ECMAScript 4 com o objetivo de padronizar o que estava no ActionScript 3. Para isso, a [[Adobe Systems]] lan\u00e7ou a ActionScript Virtual Machine 2, codinome Tamarin, como um projeto de [[c\u00f3digo aberto]]. Mas Tamarin e ActionScript 3 eram muito diferentes do JavaScript da web para convergir, como foi realizado pelas partes em 2007 e 2008.\n\nAinda havia turbul\u00eancia entre os v\u00e1rios jogadores; [[Douglas Crockford]] \u2014 ent\u00e3o no [[Yahoo!]] \u2014 juntou for\u00e7as com a Microsoft em 2007 para se opor ao ECMAScript 4, o que levou ao esfor\u00e7o do ECMAScript 3.1. O desenvolvimento do ECMAScript 4 nunca foi conclu\u00eddo, mas esse trabalho influenciou vers\u00f5es subsequentes.\n\nEnquanto tudo isso acontecia, as comunidades de c\u00f3digo aberto e de desenvolvedores come\u00e7aram a trabalhar para revolucionar o que poderia ser feito com JavaScript. Esse esfor\u00e7o da comunidade surgiu em 2005, quando [[Jess\u00e9 James Garret|Jesse James Garrett]] lan\u00e7ou um [[white paper]] no qual cunhou o termo Ajax e descreveu um conjunto de tecnologias, das quais o JavaScript era o backbone, usado para criar aplicativos da Web onde os dados podem ser carregados em segundo plano, evitando a necessidade de recargas de p\u00e1ginas completas e levando a aplicativos mais din\u00e2micos. Isso resultou em um per\u00edodo de renascimento do uso do JavaScript liderado pelas bibliotecas de c\u00f3digo aberto e pelas comunidades que se formaram em torno delas, com bibliotecas como Prototype, [[jQuery]], [[Dojo Toolkit]], [[Mootools (Ajax)|MooTools]] e outras.\n\nEm julho de 2008, os diferentes partidos de ambos os lados se reuniram em Oslo. Isso levou ao eventual acordo no in\u00edcio de 2009 para renomear o ECMAScript 3.1 para o ECMAScript 5 e impulsionar o idioma usando uma agenda que \u00e9 conhecida como Harmonia. O ECMAScript 5 foi finalmente lan\u00e7ado em dezembro de 2009.\n\nEm junho de 2011, o ECMAScript 5.1 foi lan\u00e7ado para se alinhar totalmente com a terceira edi\u00e7\u00e3o do padr\u00e3o internacional ISO / IEC 16262. O ECMAScript 2015 foi lan\u00e7ado em junho de 2015. O ECMAScript 2016 foi lan\u00e7ado em junho de 2016. A vers\u00e3o atual \u00e9 o ECMAScript 2017, lan\u00e7ado em junho de 2017.\n\n=== Desenvolvimentos posteriores ===\nJavaScript tornou-se uma das linguagens de programa\u00e7\u00e3o mais populares da web. No entanto, muitos programadores profissionais inicialmente desacreditaram a linguagem devido ao p\u00fablico-alvo percebido de autores da Web e outros \"amadores\".{{Citar web|titulo=JavaScript: The World's Most Misunderstood Programming Language|url=http://www.crockford.com/javascript/javascript.html|obra=www.crockford.com|acessodata=2019-03-17}} O advento do [[AJAX (programa\u00e7\u00e3o)|Ajax]] devolveu o JavaScript aos holofotes e atraiu mais aten\u00e7\u00e3o da programa\u00e7\u00e3o profissional. O resultado foi a prolifera\u00e7\u00e3o de estruturas e bibliotecas abrangentes, pr\u00e1ticas de programa\u00e7\u00e3o JavaScript aprimoradas e aumento do uso de JavaScript fora dos navegadores da Web, conforme observado pela prolifera\u00e7\u00e3o de plataformas JavaScript do [[Server-side|lado do servidor]].\n\nEm janeiro de 2009, o projeto [[CommonJS]] foi fundado com o objetivo de especificar uma biblioteca padr\u00e3o comum principalmente para o desenvolvimento de JavaScript fora do navegador.{{Citar web|titulo=CommonJS effort sets JavaScript on path for world domination|url=https://arstechnica.com/web/news/2009/12/commonjs-effort-sets-javascript-on-path-for-world-domination.ars|obra=Ars Technica|data=2009-12-01|acessodata=2019-03-17|lingua=en-us|primeiro=Kris|ultimo=Kowal}}\n\nCom o surgimento de aplicativos de p\u00e1gina \u00fanica e sites pesados em JavaScript, ele est\u00e1 sendo cada vez mais usado como um alvo de compila\u00e7\u00e3o para compiladores de origem para origem de linguagens din\u00e2micas e est\u00e1ticas.\n\n== Marca comercial ==\n\"JavaScript\" \u00e9 uma marca comercial da [[Oracle Corporation]] nos Estados Unidos.{{Citar web|titulo=Trademark Status & Document Retrieval|url=http://tsdr.uspto.gov/#caseNumber=75026640&caseType=SERIAL_NO&searchType=statusSearch|obra=tsdr.uspto.gov|acessodata=2019-03-17}} Ele \u00e9 usado sob licen\u00e7a para tecnologia inventada e implementada pela [[Netscape Communications]] e entidades atuais, como a [[Funda\u00e7\u00e3o Mozilla]].{{Citar web|titulo=Sun Trademarks|url=https://web.archive.org/web/20100528154600/http://www.sun.com/suntrademarks/|obra=web.archive.org|data=2010-05-28|acessodata=2019-03-17}}\n\n== Caracter\u00edsticas ==\nAs seguintes caracter\u00edsticas s\u00e3o comuns a todas as implementa\u00e7\u00f5es em conformidade com o ECMAScript, a menos que esteja explicitamente especificado ao contr\u00e1rio.\n\n=== Suporte universal ===\nTodos os navegadores da Web modernos e populares suportam JavaScript com interpretadores integrados.\n\n=== Imperativa e estruturada ===\nJavaScript suporta os elementos de [[sintaxe]] de programa\u00e7\u00e3o estruturada da linguagem C como, por exemplo, if, while, switch. Uma exce\u00e7\u00e3o \u00e9 a quest\u00e3o do escopo: o escopo em blocos ao estilo do C n\u00e3o \u00e9 suportado. Em seu lugar, JavaScript utiliza escopo a n\u00edvel de fun\u00e7\u00e3o. JavaScript 1.7, entretanto, suporta escopo a n\u00edvel de bloco atrav\u00e9s do comando let. Como C, JavaScript faz distin\u00e7\u00e3o entre express\u00f5es e comandos. Uma diferen\u00e7a sint\u00e1tica do [[C (linguagem de programa\u00e7\u00e3o)|C]] \u00e9 que a quebra de linha termina automaticamente o comando, sendo o ponto-e-v\u00edrgula opcional ao fim de uma instru\u00e7\u00e3o.\n\n=== Din\u00e2mica ===\n==== Tipagem din\u00e2mica ====\nComo na maioria das linguagens de script, tipos s\u00e3o associados com valores, n\u00e3o com vari\u00e1veis. Por exemplo, a vari\u00e1vel x poderia ser associada a um n\u00famero e mais tarde associada a uma [[''string'']]. JavaScript suporta v\u00e1rias formas de testar o tipo de um objeto, incluindo [[duck typing]].\n\n==== Baseada em objetos ====\nJavaScript \u00e9 quase inteiramente baseada em objetos{{Carece de fontes|data=fevereiro de 2019}}. Objetos JavaScript s\u00e3o ''[[Arranjo (computa\u00e7\u00e3o)|arrays]]'' associativos, aumentados com prot\u00f3tipos. Os nomes da propriedade de um objeto s\u00e3o [[Cadeia de caracteres|strings]]: obj.x = 10 e obj[\"x\"] = 10 s\u00e3o equivalentes, o ponto neste exemplo \u00e9 apenas sint\u00e1tico. Propriedades e seus valores podem ser adicionadas, mudadas, ou deletadas em tempo de execu\u00e7\u00e3o. A maioria das propriedades de um objeto (e aqueles em sua cadeia de heran\u00e7a via prot\u00f3tipo) pode ser enumerada usando-se uma estrutura de repeti\u00e7\u00e3o for...in. JavaScript possui um pequeno n\u00famero de objetos padr\u00e3o da linguagem como window e document.\n\n==== Avalia\u00e7\u00e3o em tempo de execu\u00e7\u00e3o ====\nJavaScript inclui a fun\u00e7\u00e3o eval que consegue executar em tempo de execu\u00e7\u00e3o comandos da linguagem que estejam escritos em uma string.\n\n=== Funcional ===\n==== Fun\u00e7\u00f5es de primeira classe ====\nNo JavaScript, as fun\u00e7\u00f5es s\u00e3o de primeira classe, isto \u00e9, s\u00e3o objetos que possuem propriedades e m\u00e9todos, e podem ser passados como argumentos, serem atribu\u00eddos a vari\u00e1veis ou retornados como qualquer outro objeto.\n\n==== Fun\u00e7\u00f5es aninhadas ====\nFun\u00e7\u00f5es 'internas' ou 'aninhadas' s\u00e3o fun\u00e7\u00f5es definidas dentro de outras fun\u00e7\u00f5es. S\u00e3o criadas cada vez que a fun\u00e7\u00e3o que as cont\u00e9m (externa) \u00e9 invocada. Al\u00e9m disso, o escopo da fun\u00e7\u00e3o externa, incluindo constantes, vari\u00e1veis locais e valores de argumento, se transforma parte do estado interno de cada objeto criado a partir da fun\u00e7\u00e3o interna, mesmo depois que a execu\u00e7\u00e3o da fun\u00e7\u00e3o interna \u00e9 conclu\u00edda.\n\n==== Fechamentos ====\nJavaScript permite que fun\u00e7\u00f5es aninhadas sejam criadas com o escopo l\u00e9xico no momento de sua defini\u00e7\u00e3o e possui o operador () para invoc\u00e1-las em outro momento. Essa combina\u00e7\u00e3o de c\u00f3digo que pode ser executado fora do escopo no qual foi definido, com seu pr\u00f3prio escopo durante a execu\u00e7\u00e3o, \u00e9 denominada, dentro da [[ci\u00eancia da computa\u00e7\u00e3o]], fechamento.\n\n=== Baseada em prot\u00f3tipos ===\n==== Prot\u00f3tipos ====\nJavaScript usa prot\u00f3tipos em vez de classes para o mecanismo de heran\u00e7a. \u00c9 poss\u00edvel simular muitas caracter\u00edsticas de orienta\u00e7\u00e3o a objetos baseada em classes com prot\u00f3tipos.\n function calcIdade(b) {\n var hoje = new Date();\n var a = hoje.getFullYear();\n var idade = a - b;\n\n return idade;\n }\n\n==== Fun\u00e7\u00f5es e m\u00e9todos ====\nDiferente de muitas linguagens orientadas a objetos, n\u00e3o h\u00e1 distin\u00e7\u00e3o entre a defini\u00e7\u00e3o de uma fun\u00e7\u00e3o e a defini\u00e7\u00e3o de um m\u00e9todo no JavaScript. A distin\u00e7\u00e3o ocorre durante a chamada da fun\u00e7\u00e3o; a fun\u00e7\u00e3o pode ser chamada como um m\u00e9todo. Quando uma fun\u00e7\u00e3o \u00e9 chamada como m\u00e9todo de um objeto, a keyword this da fun\u00e7\u00e3o \u00e9 associada \u00e0quele objeto via tal invoca\u00e7\u00e3o.\n\n=== Extens\u00f5es espec\u00edficas do fornecedor ===\nJavaScript \u00e9 oficialmente gerenciado pela [[Mozilla Foundation]], e novos recursos de idioma s\u00e3o adicionados periodicamente. No entanto, apenas alguns mecanismos JavaScript suportam esses novos recursos:\n\n* Fun\u00e7\u00f5es de propriedade getter e setter (suportadas pelo [[WebKit]], [[Gecko (motor de layout)|Gecko]], [[Opera]],{{Citar web|titulo=Getters and setters with JavaScript \u2013 code samples and demos - Robert's talk|url=https://robertnyman.com/2009/05/28/getters-and-setters-with-javascript-code-samples-and-demos/|obra=robertnyman.com|acessodata=2019-03-17}} [[ActionScript]] e Rhino).{{Citar web|titulo=John Resig - JavaScript Getters and Setters|url=https://johnresig.com/blog/javascript-getters-and-setters/|acessodata=2019-03-17|lingua=en-US}}\n* Cl\u00e1usulas de captura condicional.\n* Protocolo iterador (adotado do [[Python]]).\n* Compreens\u00f5es de [[Arranjo (computa\u00e7\u00e3o)|array]] e gerador de express\u00f5es (adotado do [[Python]])\n* Escopo de bloco adequado atrav\u00e9s da palavra-chave let\n* Desestrutura\u00e7\u00e3o de matriz e objeto (forma limitada de pattern matching)\n* Express\u00f5es de fun\u00e7\u00e3o concisas (function(args) expr)\n* ECMAScript para [[XML]] (E4X), uma extens\u00e3o que adiciona suporte XML nativo ao ECMAScript (n\u00e3o suportado no [[Mozilla Firefox|Firefox]] desde a vers\u00e3o 21{{Citar web|titulo=E4X|url=https://developer.mozilla.org/en-US/docs/Archive/Web/E4X|obra=MDN Web Docs|acessodata=2019-03-17|lingua=en}})\n\n== Uso em p\u00e1ginas Web ==\nO uso prim\u00e1rio de JavaScript \u00e9 escrever fun\u00e7\u00f5es que s\u00e3o embarcadas ou inclu\u00eddas em p\u00e1ginas [[HTML]] e que interagem com o [[Modelo de Objeto de Documentos]] (DOM) da p\u00e1gina. Alguns exemplos deste uso s\u00e3o:\n\n* abrir uma nova janela (dialog) com controle program\u00e1tico sobre seu tamanho, posi\u00e7\u00e3o e atributos;\n* validar valores de um formul\u00e1rio para garantir que s\u00e3o aceit\u00e1veis antes de serem enviados ao servidor;\n* mudar imagens \u00e0 medida que o mouse se movimenta sobre elas.\n\nUm recurso de interface \u00fatil baseada em janela, \u00e9 um tipo de janela secund\u00e1ria da tela principal, ou janela principal, para solicitar ou exibir ao usu\u00e1rio determinadas informa\u00e7\u00f5es complementares, semelhante a \u201ccaixa de di\u00e1logo\u201d (dialog).\n\nExistem dois tipos de associa\u00e7\u00e3o entre uma janela de di\u00e1logo e a janela principal \u00e0 qual est\u00e1 associada: \"forma modal\" (showModalDialog), quando a abertura da janela de di\u00e1logo flex\u00edvel sobreposta a janela principal sem a necessidade de recarregar a p\u00e1gina principal ap\u00f3s o uso do modal, chamada de [[Lightbox (script)|Lightbox]], bloqueando a intera\u00e7\u00e3o com a janela principal e esmaecendo/escurecendo o fundo at\u00e9 que o ''dialog'' seja encerrado; ou \"forma n\u00e3o modal\", em que pode haver intera\u00e7\u00e3o concomitante nas duas janelas (principal e di\u00e1logo) sem bloqueio da principal, O caso mais comum \u00e9 do ''dialog'' modal.{{Citar web|url=http://www.mhavila.com.br/topicos/web/window_modal.html |t\u00edtulo=Janela modal na web |autor=M\u00e1rcio d'\u00c1vila |publicado=mhavila |data=8/12/2006 |acessodata=02/02/2017}}{{Citar web|url=http://globocom.github.io/bootstrap/javascript.html#modals |t\u00edtulo=Javascript para o Bootstrap |autor=Alexandre Magno. |publicado=Github|data=8/12/2006 |acessodata=02/02/2017}}\n\nPelo fato do c\u00f3digo JavaScript rodar localmente no navegador do usu\u00e1rio, e n\u00e3o em um servidor remoto, o navegador pode responder a tais a\u00e7\u00f5es rapidamente, fazendo uma aplica\u00e7\u00e3o mais responsiva. Al\u00e9m disso, o c\u00f3digo JavaScript pode detectar a\u00e7\u00f5es de usu\u00e1rio que o HTML sozinho n\u00e3o pode, tais como teclas pressionadas individualmente. Aplica\u00e7\u00f5es como [[Gmail]] tomam vantagem disso: muito da l\u00f3gica da interface do usu\u00e1rio \u00e9 escrita em JavaScript, e o JavaScript envia requisi\u00e7\u00f5es de informa\u00e7\u00e3o, tais como o conte\u00fado de um correio eletr\u00f4nico, para o servidor. A tend\u00eancia mais ampla de programa\u00e7\u00e3o em [[AJAX (programa\u00e7\u00e3o)|Ajax]] explora de maneira similar este ponto forte.\nUma JavaScript engine (tamb\u00e9m conhecida como [[interpretador]] JavaScript ou uma implementa\u00e7\u00e3o JavaScript) interpreta [[c\u00f3digo fonte]] JavaScript e o executa de forma adequada. A primeira implementa\u00e7\u00e3o JavaScript foi criada por Brendan Eich na Netscape Communications Corporation, para o Navegador Netscape. A implementa\u00e7\u00e3o, nomeada SpiderMonkey, \u00e9 implementada em C e vem sendo atualizada para conformar com a edi\u00e7\u00e3o 3 do ECMA-262. A implementa\u00e7\u00e3o [[:en:Rhino (JavaScript engine)|Rhino]], criada primariamente por [[Norris Boyd]] (ex-empregado da Netscape; agora no [[Google]]) \u00e9 uma implementa\u00e7\u00e3o de JavaScript em Java. Rhino, como [[SpiderMonkey]], \u00e9 conformante com a terceira edi\u00e7\u00e3o do ECMA-262.\n\nPor ser o JavaScript a \u00fanica linguagem que a maioria dos navegadores populares suportam, tem se tornado uma linguagem alvo para muitos frameworks em outras linguagens, a despeito do fato de n\u00e3o ter sido planejado para tal. N\u00e3o obstante as limita\u00e7\u00f5es de desempenho inerente \u00e0 sua natureza din\u00e2mica, a crescente velocidade das implementa\u00e7\u00f5es JavaScript tem feito da mesma uma pr\u00e1tica linguagem intermedi\u00e1ria.\n\n=== Exemplo ===\nUm exemplo minimalista de uma p\u00e1gina conforme os padr\u00f5es web (utilizando a sintaxe [[HTML5]]) que cont\u00e9m JavaScript pode ser representado pelo seguinte c\u00f3digo:\n\n\n\n\n \n \n Wikip\u00e9dia\n \n \n \n \n \n \n\n\n\nNo ''script'' acima, vimos que existe uma tag chamada '''