recursal/MDN huggingface dataset:
Window.crypto
=============

`Window.crypto` propriedade somente de leitura, devolve um objeto do tipo `Crypto` associado ao objeto global. Este objeto permite que páginas da web utilizem recursos de criptografia.

Sintaxe
-------
```

var cryptoObj = window.crypto || window.msCrypto; // for IE 11
```

Exemplo
-------

#### Usando a propriedade `Window.crypto` para acessar o método getRandomValues()

### JavaScript


```js
genRandomNumbers = function getRandomNumbers() {
  var array = new Uint32Array(10);
  window.crypto.getRandomValues(array);

  var randText = document.getElementById("myRandText");
  randText.innerHTML = "The random numbers are: ";
  for (var i = 0; i < array.length; i++) {
    randText.innerHTML += array[i] + " ";
  }
};
```

### HTML


```html
<p id="myRandText">The random numbers are:</p>
<button type="button" onClick="genRandomNumbers()">
  Generate 10 random numbers
</button>
```

### Resultado

Especificações
--------------

| Specification |
| --- |
| Web Cryptography API # dom-windoworworkerglobalscope-crypto |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Veja também
-----------

* O objeto global `Window`
DOMStringMap
============

Usado pelo atributo HTML `dataset` para representar atributos próprios adicionados ao elemento.

Visão Geral do Método
---------------------

| `DOMString getDataAttr(in DOMString prop);` |
| --- |
| `boolean hasDataAttr(in DOMString prop);` |
| `void removeDataAttr(in DOMString prop);` |
| `void removeProp(in nsIAtom attr);` |
| `void setDataAttr(in DOMString prop, in DOMString value);` |

Métodos
-------

### hasDataAttr()
```

boolean hasDataAttr(
  in DOMString prop
);
```


###### Parâmetros

`prop`

Nome da propriedade a qual a existência deve ser verificada.

###### Retorno

`true` se a propriedade existir ou `false` se não existir.

### removeDataAttr()
```

void removeDataAttr(
  in DOMString prop
);
```


###### Parâmetros

`prop`

Propriedade a ser removida do data set.

### removeProp()

Remove a propriedade do dataset do objeto. Usada para atualizar o objeto de dataset do objeto quando o atributo data-\* houver sido removido do elemento.
```

void removeProp(
  in nsIAtom attr
);
```


###### Parâmetros

`attr`

A propriedade a ser removida do dataset.

Compatibilidade
---------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Veja também
-----------

* `HTMLElement.dataset` (en-US)
* `dataset`
Console API
===========

O Console API traz funcionalidades que permitem desenvolvedores realizar tarefas de debug, como registrar mensagens or os valores das variáveis em sertoes pontos do código, or cronometrar quanto tempo uma operação leva para concluir.

Conceitos e uso
---------------

O Console API começou como uma API proprietária, com diferentes navegadores a implementando. A especificação do Console API foi criado para definir um comportamento consistente, e todos o navegadores atuais ventualmente foram implementando a funconalidade — Apsar de algumas implementações ainda terem funções adicionais proprietárias. Veja mais sobre isso em:

* Google Chrome DevTools implementação
* Safari DevTools implementação

Uso é bastante simples — o objeto `console` — disponível via `window.console` (en-US), ou `WorkerGlobalScope.console` (en-US) em workers; acessível apenas usando `console` — contém vários métodos que você pode chamar para executar tarefas de depuração, geralmente focado no registro de vários valores no navegador Web Console.

De longe o método mais comum usado é o `console.log`, que é usado para mostrar o valor atual contido em uma variável específica.

Interfaces
----------

`console`

Provides rudimentary debugging functionality, including logging, stack traces, timers, and counters.

Examples
--------


```js
let myString = "Hello world";

// Output "Hello world" to the console
console.log(myString);
```


See the Console reference page for more examples.

Specifications
--------------

| Specification |
| --- |
| Console Standard # console-namespace |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

See also
--------

* Tools
* Web Console — how the Web Console in Firefox handles console API calls
* Remote debugging — how to see console output when the debugging target is a mobile device
WindowBase64.atob()
===================

A função **`WindowBase64.atob()`** decodifica uma string de dados que foi codificada através da codificação base-64. Você pode usar o método `window.btoa()` (en-US) para codificar e transmitir dados que, se não codificados, podem causar problemas de comunicação. Após transmití-los pode-se usar o método `window.atob()` para decodificar os dados novamente. Por exemplo, você pode codificar, transmitir, e decodificar caracteres de controle como valores ASCII de 0 a 31.

Para utilizar com strings Unicode ou UTF-8, veja esta nota em *Base64 encoding and decoding* (en-US) e essa nota em `window.btoa()` (en-US).

Sintaxe
-------
```

var dadoDecodificado = window.atob(dadoCodificado);
```

Exemplo
-------


```js
var dadoCodificado = window.btoa("Olá, mundo"); // codifica a string
var dadoDecodificado = window.atob(dadoCodificado); // decodifica a string
```

Especificações
--------------

| Specification |
| --- |
| HTML Standard # dom-atob-dev |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Veja também
-----------

* Base64 encoding and decoding (en-US)
* `data` URIs (en-US)
* `window.btoa()` (en-US)
* Components.utils.importGlobalProperties
Encoding API
============

**Experimental:** **Esta é uma tecnologia experimental (en-US)**  
Verifique a tabela de compatibilidade entre Navegadores cuidadosamente antes de usar essa funcionalidade em produção.

O **Encoding API** providência uma mecânismo para tratar textos em vários tipos de encode de caracteres, incluindo encodes legados non-UTF-8

A API provém de quatro interfaces: `TextDecoder` (en-US), `TextEncoder` (en-US), `TextDecoderStream` (en-US) e `TextEncoderStream` (en-US).

Interfaces
----------

* `TextDecoder` (en-US)
* `TextEncoder` (en-US)
* `TextDecoderStream` (en-US)
* `TextEncoderStream` (en-US)
Tutoriais & ferramentas
-----------------------

* O shim permite usar essa interface em navegadores que não a suportam.
* `StringView` – Um C-like reperesentação de strings baseados em arrays tipados
Especificações
--------------

| Specification |
| --- |
| Encoding Standard # interface-textdecoder |
| Encoding Standard # interface-textencoder |
| Encoding Standard # interface-textencoderstream |
| Encoding Standard # interface-textdecoderstream |

Compatibilidade com navegadores
-------------------------------

### api.TextDecoder

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

### api.TextEncoder

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

### api.TextEncoderStream

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

### api.TextDecoderStream

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
DocumentoXML
============

**Experimental:** **Esta é uma tecnologia experimental (en-US)**  
Verifique a tabela de compatibilidade entre Navegadores cuidadosamente antes de usar essa funcionalidade em produção.

A interface **XMLDocument** representa um document XML. Ele herda de `Document` e não adiciona nenhum método específico ou propriedades para este: no entanto, alguns algoritmos tem comportamento diferente com os dois tipos de documentos.

Propridades
-----------

*Esta interface não tem e nem herda nenhuma propriedade específica.*

Metodos
-------

*Esta interface não adiciona nenhum método novo.*

`XMLDocument.load()` (en-US) 
Non-standard

Deprecated

Carrega um documento XML

Especificações
--------------

| Specification |
| --- |
| DOM Standard # xmldocument |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Veja também
-----------

* Indice de interfaces DOM (en-US)
CryptoKey
=========

A interface **`CryptoKey`** representa uma key criptografada derivada de uma key de algoritmo definido.

Um objeto **`CryptoKey`** pode ser obtido utilizando `SubtleCrypto.generateKey()`, `SubtleCrypto.deriveKey()` ou `SubtleCrypto.importKey()`

Propriedades
------------

*Esta interface não herda nehunha propriedade.*

`CryptoKey.type` (en-US)

Retorna um valor enumerado representando o tipo da key, uma key secreta (para algoritmos simétricos), uma key pública ou privada (para algoritmos assimétricos).

`CryptoKey.extractable` (en-US)

Retorna um `Boolean` indicando se a informação bruta pode ser exportada para a aplicação ou não.

`CryptoKey.algorithm` (en-US)

Retorna um objeto opaco representando uma cifra em particular que deve ser utilizada com a key.

`CryptoKey.usages` (en-US)

Retorna uma matriz de valores enumerados indicando onde a key pode ser utilizada.

Métodos
-------

*Esta interface não herda, nem implementa nenhum método.*

Especificações
--------------

| Specification |
| --- |
| Web Cryptography API # cryptokey-interface |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Veja também
-----------

* `Crypto` e `Crypto.subtle`.
### Dicionário

"Key" = "Chave"
AnimationEvent
==============

**Experimental:** **Esta é uma tecnologia experimental (en-US)**  
Verifique a tabela de compatibilidade entre Navegadores cuidadosamente antes de usar essa funcionalidade em produção.

A interface **`AnimationEvent`** representa eventos provendo informações relacionadas a animações.

`Event

AnimationEvent`

Propriedades
------------

*Também propriedades herdadas pelo pai ``Event``*.

``AnimationEvent.animationName` Somente leitura` 

O `DOMString` contém o valor do `animation-name` (en-US) propriedade CSS associada com a transição.

``AnimationEvent.elapsedTime` Somente leitura` 

`É um ponto flutuante` dado pela quantidade de tempo que a animação está rodando, em segundos, quando esse evento termina, excluindo o tempo em que animação esteve pausada. Para o evento `"animationstart"`, `elapsedTime` é `0.0` a não ser que haja um valor negativo para ``animation-delay``, nesse caso o evento terminará com `elapsedTime` contendo `(-1 * delay )`.

``AnimationEvent.pseudoElement` Somente leitura` 

Um ``DOMString`` começa com `'::'`, contendo o nome do pseudo-elemento onde a animação roda. Se a animação não rodar no pseudo-elemento mas no elemento, então teremos um *string* vazio `' '`.

Constructores
-------------

``AnimationEvent()``

Cria um evento `AnimationEvent` com os dados parâmetros.

Métodos
-------

*Também herda métodos do pai ``Event``*.

``AnimationEvent.initAnimationEvent()` 
Non-standard

Deprecated`

Inicializa um `AnimationEvent` criado usando diminuído `Document.createEvent("AnimationEvent")` (en-US) método.

Especificações
--------------

| Specification |
| --- |
| CSS Animations Level 1 # interface-animationevent |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Veja também
-----------

* Usando animações CSS
HTMLDivElement
==============

A interface `HTMLDivElement` fornece propriedades especiais ( além da interface normal `HTMLElement` (en-US) que também está a sua disposição por herança ) para manipular elementos div.

Propriedades
------------

*As propriedades são herdadas de seu pai, `HTMLElement` (en-US).*

| Nome | Tipo | Descrição |
| --- | --- | --- |
| `align` | `DOMString` | Propriedade enumerada indicando alinhamento dos conteúdos do elemento, respeitando ao contexto geral. Os valores possíveis são `"left"`, `"right"`, `"justify"`, e`"center"`. |

Métodos
-------

*Nenhum método específico; os métodos são herdados de seu pai, `HTMLElement` (en-US).*

Especificações
--------------

| Specification |
| --- |
| HTML Standard # htmldivelement |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Ver também
----------

* O elemento HTML implementar essa interface: `<div>`.
HTMLCollection
==============

A interface **`HTMLCollection`** representa uma coleção genérica (objeto array) de elementos (na ordem em que aparecem no documento) e oferece métodos e propriedades para selecioná-los da lista.

**Nota:** Esta interface é chamada `HTMLCollection` por razões históricas (antes do DOM4, coleções implementadas por esta interface somente podiam ter elementos HTML).

Uma coleção `HTMLCollection` de um HTML DOM está linkada com o documento; ela será automaticamente atualizada quando o documento for modificado.

Propriedades
------------

`HTMLCollection.length` (en-US) Somente leitura 

Retorna o número de itens da coleção.

Métodos
-------

`HTMLCollection.item()` (en-US)

Retorna um nó especificado por `index` da lista. o primeiro index da lista é 0. Retorna `null` se `index` não existir na lista.

`HTMLCollection.namedItem()` (en-US)

Retorna o nó especificado pelo ID ou, caso não tenha ID, o item cuja propriedade `name` seja igual à pesquisa. Pesquisa por `name` só é feita em último caso, somente em HTML, e somente se os elementos referenciados suportarem o atributo `name`. Retorna `null` se nenhum nó corresponder ao nome pesquisado.

Uso no JavaScript
-----------------

`HTMLCollection` expõe seus membros diretamente como propriedades, tanto por nome quanto por índice. IDs HTML podem conter : e . como caracteres válidos, o que fará necessária a utilização de colchetes para acessar as propriedades. Atualmente HTMLCollection não reconhece IDs puramente numéricos, o que pode causar conflitos com acesso em formato array, apesar do HTML5 os permitir.

Por exemplo, assumindo que há um elemento `<form>` no documento e seu `id` é `"myForm"`:


```js
var elem1, elem2;

// document.forms é um HTMLCollection

elem1 = document.forms[0];
elem2 = document.forms.item(0);

alert(elem1 === elem2); // exibe: "true"

elem1 = document.forms.myForm;
elem2 = document.forms.namedItem("myForm");

alert(elem1 === elem2); // exibe: "true"

elem1 = document.forms["named.item.with.periods"];
```

Compatibilidade com navegadores
-------------------------------

Diferentes browsers se comportam de maneira diferente quando um os mais elementos são pesquisados pela string utilizada como índice (ou o argumento namedItem). Firefox 8 se comporta como especificado no DOM 2 e no DOM 4, retornando o primeiro elemento encontrado. WebKit browsers e o Internet Explorer, neste caso, retornam outro HTMLCollection e o Opera retorna um `NodeList` com todos os elementos encontrados.

Especificações
--------------

* DOM Level 2 HTML, Section 1.4, Miscellaneous Object Definitions
* DOM4: HTMLCollection
Veja também
-----------

* `NodeList`
* `HTMLFormControlsCollection` (en-US), `HTMLOptionsCollection` (en-US)
CustomElementRegistry
=====================

Limited availability
--------------------

This feature is not Baseline because it does not work in some of the most widely-used browsers.

* Learn more
* See full compatibility
* Report feedback
A interface **`CustomElementRegistry`** provê métodos para registro de elementos customizados e busca de elementos registrados. Para instancia-lo, use a propriedade `window.customElements` (en-US).

Métodos
-------

`CustomElementRegistry.define()`

Define um novo elemento customizado (en-US).

`CustomElementRegistry.get()`

Retorna o construtor do nome do elemento informado, ou `undefined` caso não tenha sido definido.

`CustomElementRegistry.whenDefined()`

Retorna um `promise` vazio que é resolvido quando o elemento customizado é inserido. Se o elemento já foi definido, o retorno ja é informado.

Exemplos
--------

O código a seguir foi pego do nosso word-count-web-component exemplo (veja em ação). Perceba que usamos o método `CustomElementRegistry.define()` para definir um elemento customizado.


```js
// Cria uma classe para o elemento
class WordCount extends HTMLParagraphElement {
  constructor() {
    // Sempre execute primeiro o método super
    super();

    // Conta as palavras no elemento pai
    var wcParent = this.parentNode;

    function countWords(node) {
      var text = node.innerText || node.textContent;
      return text.split(/\s+/g).length;
    }

    var count = "Words: " + countWords(wcParent);

    // Cria um shadow root
    var shadow = this.attachShadow({ mode: "open" });

    // Cria um nó de texto e adiciona o contador de palavra nele
    var text = document.createElement("span");
    text.textContent = count;

    // Acrescenta ao shadow root
    shadow.appendChild(text);

    // Atualiza o contador quando houver mudança
    setInterval(function () {
      var count = "Words: " + countWords(wcParent);
      text.textContent = count;
    }, 200);
  }
}

// Define um novo elemento
customElements.define("word-count", WordCount, { extends: "p" });
```


**Nota:** Note: The CustomElementsRegistry is available through the `Window.customElements` (en-US) property.

Especificações
--------------

| Specification |
| --- |
| HTML Standard # custom-elements-api |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
RTCCertificate
==============

A interface da WebRTC API fornece um objeto representando um certificado que uma `RTCPeerConnection` (en-US) usa para autênticar.

Propriedades
------------

`RTCCertificate.expires` (en-US) Somente leitura 

Retorna a data de expiração do certificado.

Especificações
--------------

| Specification |
| --- |
| WebRTC: Real-Time Communication in Browsers # dom-rtccertificate |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.
FormData
========

A interface **`FormData`** fornece uma maneira fácil de construir um conjunto de pares chave/valor representando campos de um elemento `form` e seus valores, os quais podem ser facilmente enviados utilizado o método `send()` do XMLHttpRequest. Essa interface utiliza o mesmo formato que um `form` utilizaria se o tipo de codificação estivesse configurado como "multipart/form-data".

Um objeto `FormData` pode ser usado diretamente em uma estrutura `for...of` em vez de `entries()`: `for (var p of myFormData)` é o mesmo que `for (var p of myFormData.entries())`.

**Nota:** Esse recurso está disponível em https://developer.mozilla.org/pt-BR/docs/Web/API/Web\_Workers\_API

Construtor
----------

`FormData()`

Cria um novo objeto `FormData`.

Métodos
-------

`FormData.append`

Acrescenta um novo valor em uma chave existente dentro de um objeto `FormData`, ou adiciona a chave se ela ainda não existir.

`FormData.delete`

Apaga um par chave/valor de um objeto `FormData`.

`FormData.get`

Retorna o primeiro valor associado com uma dada chave de dentro de um objeto `FormData`.

`FormData.getAll`

Retorna uma matriz de todos os valores associados a uma determinada chave de dentro de um `FormData`.

`FormData.has`

Retorna um valor boleano indicando se um objeto `FormData` contém um certo par chave/valor.

`FormData.set`

Define um novo valor para uma chave existente dentro de um objeto `FormData`, ou adiciona a chave/valor se ele ainda não existir.


**Nota:** Para ser claro, a diferença entre `FormData.set()` e `FormData.append()` é que, se a chave especificada não existir, `FormData.set()` irá substituir o valor existente por um novo, enquanto `FormData.append()` irá acrescentar um novo valor no final dos valores existentes. Veja as suas páginas dedicadas para código de exemplo.

Especificações
--------------

| Specification |
| --- |
| XMLHttpRequest Standard # interface-formdata |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Veja também
-----------

* `XMLHTTPRequest`
* Usando XMLHttpRequest (en-US)
* Usando objetos FormData (en-US)
* `<form>` (en-US)
EventTarget
===========

Resumo
------

`EventTarget` é uma interface DOM implementada por objetos que podem receber eventos DOM e tem que ouvir estes.

`Element`, `document`, e `window` são os mais comuns disparadores de eventos, mas outros objetos podem disparar eventos também, por exemplo `XMLHttpRequest`, `AudioNode`, `AudioContext` e outros.

Muitos disparadores de eventos (incluindo elements, documents, e windows) também suportam definir event handlers (en-US) através `on...` propriedades e atributos.

Métodos
-------

`EventTarget.addEventListener()`

Registra um tratamento para um tipo específico de evento sobre o `EventTarget`.

`EventTarget.removeEventListener()`

Remove um *event listener* do `EventTarget`.

`EventTarget.dispatchEvent()`

Dispatch an event to this `EventTarget`.

Especificações
--------------

| Specification |
| --- |
| DOM Standard # interface-eventtarget |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Veja também
-----------

* Referência de eventos (en-US) - os eventos disponíveis na plataforma.
* Guia do desenvolvedor sobre Eventos
* Interface `Event`
CSS
===

`A interface CSS` carrega métodos CSS-relacionados úteis. Nenhum objeto com essa interface foi implementado: Aqui só contém métodos estáticos e futuramente uma interface útil.

Propriedades
------------

*A interface CSS é a interface utilizada e nenhum objeto desse tipo pode ser criado: só métodos estáticos são definidos aqui.*

Métodos
-------

*A interface CSS é a interface utilizada e nenhum objeto desse tipo pode ser criado: só métodos estáticos são definidos aqui.*

Métodos státicos
----------------

*Nenhuma método estático herdado*.

`CSS.supports()` (en-US)

Retorna um `Boolean` (en-US) indicando se o par *property-value*, ou a condição dada do parâmetro é suportada.

`CSS.escape()` (en-US) 
Experimental

Pode ser usado para escapar um string mais usado como parte de um seletor CSS.

Especificações
--------------

| Specification |
| --- |
| CSS Object Model (CSSOM) # namespacedef-css |
| CSS Properties and Values API Level 1  |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Veja também
-----------

* Components.utils.importGlobalProperties
HTMLSpanElement
===============

A interface **`HTMLSpanElement`** representa um elemento `<span>` e deriva de uma interface `HTMLElement` (en-US), mas sem implementar propriedades ou métodos adicionais.

Propriedades
------------

*Essa interface não possui propriedades, mas herda propriedades de: `HTMLElement` (en-US).*

Métodos
-------

*Essa interface não possui métodos, mas herda métodos de: `HTMLElement` (en-US).*

Especificações
--------------

| Specification |
| --- |
| HTML Standard # htmlspanelement |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Veja também
-----------

* O elemento HTML que implementa essa interface: `<span>`.
DOMStringList
=============

Um tipo retornado por algumas APIs, que contém uma lista de DOMString (strings).

Propriedades
------------

`DOMStringList.length` (en-US) Somente leitura 

Retorna o número de itens da lista

Métodos
-------

`DOMStringList.item()` (en-US)

Retorna uma `DOMString`.

`DOMStringList.contains()` (en-US)

Retorna `Boolean` indicando se a string em questão está na lista

Especificações
--------------

| Specification |
| --- |
| HTML Standard # the-domstringlist-interface |

Compatibilidade com navegadores
-------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.