# O que é a API Web Storage? - [ ] Uma linguagem de programação para criar páginas web - [X] Uma API que fornece mecanismos para os navegadores armazenarem pares de chave/valor - [ ] Um banco de dados remoto acessado via HTTP - [ ] Um framework de front-end, como Vue ou React > Dica: slide 2 # Qual é o tipo de dado das chaves e valores armazenados na Web Storage? - [ ] Podem ser de qualquer tipo, inclusive objetos e funções - [X] Sempre strings - [ ] Sempre números - [ ] Sempre booleanos > Dica: slide 2 # Qual é a principal diferença entre `sessionStorage` e `localStorage`? - [ ] `sessionStorage` persiste após fechar o navegador; `localStorage` não - [X] `localStorage` persiste após fechar e reabrir o navegador; `sessionStorage` dura apenas enquanto a aba está aberta - [ ] Não há diferença, são sinônimos - [ ] `sessionStorage` é compartilhado entre abas diferentes; `localStorage` não > Dica: slide 3 # Através de quais propriedades acessamos os mecanismos de Web Storage? - [ ] `Document.sessionStorage` e `Document.localStorage` - [X] `Window.sessionStorage` e `Window.localStorage` - [ ] `Navigator.sessionStorage` e `Navigator.localStorage` - [ ] `Storage.session` e `Storage.local` > Dica: slide 4 # O que é retornado ao chamar `sessionStorage` ou `localStorage` pela primeira vez em um documento? - [ ] Um array de strings - [X] Um objeto `Storage` - [ ] Um objeto JSON - [ ] `undefined` > Dica: slide 4 # Os dados armazenados no `localStorage` de um site ficam disponíveis para outro site (outra origem)? - [ ] Sim, sempre - [X] Não, cada origem possui sua própria área de armazenamento isolada - [ ] Apenas se os dois sites usarem o mesmo navegador - [ ] Apenas se o usuário permitir explicitamente > Dica: slide 3 # Qual método é usado para adicionar ou atualizar um par chave/valor no `localStorage`? - [ ] `Storage.addItem()` - [X] `Storage.setItem()` - [ ] `Storage.putItem()` - [ ] `Storage.saveItem()` > Dica: slide 5 # O que o método `Storage.getItem()` retorna quando a chave informada não existe? - [ ] Uma string vazia - [X] `null` - [ ] `undefined` - [ ] Lança um erro (exception) # Qual é a diferença entre `removeItem()` e `clear()` no objeto `Storage`? - [ ] São sinônimos, fazem exatamente a mesma coisa - [X] `removeItem()` remove apenas uma chave específica; `clear()` remove todos os pares armazenados - [ ] `removeItem()` remove tudo; `clear()` remove apenas uma chave - [ ] Nenhum dos dois remove dados, apenas os oculta # No exemplo apresentado, por que a função que restaura a cor de fundo é associada ao evento `onload` do ``? - [ ] Porque `onload` é obrigatório em toda página HTML - [X] Para que a cor salva seja recuperada e aplicada assim que a página termina de carregar - [ ] Porque `localStorage` só funciona dentro do evento `onload` - [ ] Para impedir que o usuário altere a cor depois > Dica: slide 5