Background Image
Table of Contents Table of Contents
Previous Page  57 / 68 Next Page
Information
Show Menu
Previous Page 57 / 68 Next Page
Page Background

57

*/

delete todoModel.completed;

/*

completed changed

Isso será mudado por

deleção

O valor atual é

"indefinido"

Variáveis

Existem novas maneiras de

trabalhar com variáveis, como usar

a instrução

Let

no lugar de

Var

,

FRP D GHíQL©¥R GH FRQVWDQWHV

com

Const

.

Let

é similar a

Var

ao declarar

variáveis, mas usa “block scoping”

em vez de “function scoping”, que

VLJQLíFD TXH D YDUL£YHO GHFODUDGD

não estará disponível além do bloco.

Exemplo:

{

var irrestrito =

'disponível sempre';

let restrito =

'indisponível depois do

bloco de código';

console.log(irrestrito,

restrito); // "disponível

sempre" "indisponível depois

do bloco de código'"

}

console.log(irrestrito); //

"disponível sempre"

console.log(restrito); //

ReferenceError

A variável “restrito” setada

por

Let

não está disponível

fora do bloco de código em que

é declarada.

Iterators

Foram melhorados para tornar

mais fácil trabalhar com coleções

de dados. Um exemplo é a adição

de loop em for/of, tornando mais

fácil o acesso a cada valor de

um collection. Novos tipos de

collection (mapa e conjuntos) foram

adicionadas aos objetos e matrizes.

Funções Arrow

Funções do tipo Arrow podem

VHU GHíQLGDV XVDQGR VHWDV FRPR

=>), economizando digitação e

levando a um código mais limpo.

Além disso, funções de seta podem

ser usadas em Immediately-Invoked

Function Expressions.

Exemplo:

> var square = x => x * x;

> square(5)

25

Simples, limpo e elegante.

Exemplo de concatenação

de arrays:

> var a = [3, 4, 5]

[3, 4, 5]

> var b = [1, 2, ...a]

[1, 2, 3, 4,

5]

Compressão de arrays:

var arr = [x for (x of a) IF

(x.color === ‘blue’)]

var arr = [square(x) for (x

of [1,2,3,4,5])]

Strings

Templates para strings

corrigem algumas das limitações

do JavaScript em lidar com eles,

suportando agora strings de

múltiplas linhas e sequências de

escape (como em HTML).

Uma das funções mais

utilizadas em programação,

e que já existe em uma

diversidade de linguagens,

é a capacidade de verificar

se determinada “string” é

iniciada com determinada

“substring”. Essa capacidade foi

implementada na nova versão

do JS e funciona desta forma:

String.prototype.

startsWith = function (str){

return this.

indexOf(str) === 0;

}

Métodos:

String.prototype.

startsWith(searchString[,

position]);

O método startsWith usa duas

YDUL£YHLV D VWULQJ D VHU YHULíFDGD

e a posição em que a pesquisa

deve iniciar. Por padrão “position”

é zero (0), e a pesquisa se inicia no

primeiro caractere da string.

var str = 'Bom dia!';

var result = str.

startsWith('Bom');

// retorna "true" na tela

console.log(result);

// verificar a partir do

segundo caractere

result = str.

startsWith('om', 1);

// retorna "true" na tela

console.log(result);

Além de

String.prototype.

startsWith()

também é possível

YHULíFDU VH XPD VWULQJ WHUPLQD

com outra substring, com

String.

prototype.endsWith()

.

var str = 'Bom dia!';

var result = str.

endsWith('ia!');

// retorna "true" na tela

console.log(result);

Arrays

Há uma série de melhorias

em arrays, incluindo a capacidade

para criar novos arrays por meio

de arrays existentes e a partir de

FULW«ULRV GHíQLGRV SHOR XVX£ULR

Além disso, o “spread operator”

permite “explodir” um array em

seus elementos individuais.

Exemplos:

Filtrando um array:

[ x for (x of a) if (x.color

=== ‘blue’) ]

Mapeando um array:

[ square(x) for (x of

[1,2,3,4,5]) ]

Eventualmente, é preciso

usar um array como argumento

em uma função. Para isso o JS 6.0

[

EXISTEM NOVAS MANEIRAS DE

TRABALHAR COM VARIÁVEIS, COMO USAR A

INSTRUÇÃO LET NO LUGAR DE VAR

]

tem um novo tipo de operador,

chamado Spread Operator, que

facilita o processo.

Variável com valores:

var comprasBox = ['leite',

'queijo', 'yogurte'];

Acrescentar novo valor a

variável comprasBox

store.add('manteiga', ...

comprasBox);

A variável comprasBox agora

contém os valores ['leite',

'queijo', 'yogurte',

'manteiga'] graças ao

operador “...”.

Generators

Generators permitem

criar rotinas com contexto de

execuções suspensas – gerar

valores até que estes não

existam mais. Linguagens como

Python, Smalltalk, Icon já usam

generators e agora o JavaScript

também pode.

'H IRUPD VLPSOLíFDGD

generators são corrotinas de

primeira classe, apresentadas

como objetos que contêm

loops, sequências, que estejam

suspensas ou aguardando até que

sejam executadas.

Um exemplo para gerar uma

VHTX¬QFLD ÛLQíQLWDÜ GH )LERQDFFL

function*

fibonacciGenerator() {

var [n, m] = [0, 1];

while (true) {

yield n;

[n, m] = [m, m + n];

}

}

var fibonacci =

fibonacciGenerator();

for (let i = 0; i < 10;

i++) {

console.log(fibonacci.

next().value)

}

REVISTA LOCAWEB