freeCodeCamp/curriculum/challenges/portuguese/02-javascript-algorithms-an.../es6/prevent-object-mutation.por...

2.7 KiB

id title challengeType videoUrl localeTitle
598f48a36c8c40764b4e52b3 Prevent Object Mutation 1 Impedir a mutação de objetos

Description

Como visto no desafio anterior, a declaração const sozinha não protege seus dados da mutação. Para garantir que seus dados não sejam alterados, o JavaScript fornece uma função Object.freeze para impedir a mutação de dados. Quando o objeto estiver congelado, você não poderá mais adicionar, atualizar ou excluir propriedades dele. Qualquer tentativa de alterar o objeto será rejeitada sem erro.
deixe obj = {
nome: "FreeCodeCamp",
revisão: "Awesome"
};
Object.freeze (obj);
obj.review = "mau"; // será ignorado. Mutação não permitida
obj.newProp = "Teste"; // será ignorado. Mutação não permitida
console.log (obj);
// {name: "FreeCodeCamp", resenha: "Awesome"}

Instructions

Neste desafio, você usará Object.freeze para impedir que constantes matemáticas sejam alteradas. Você precisa congelar o objeto MATH_CONSTANTS para que ninguém seja capaz de alterar o valor de PI , adicionar ou excluir propriedades.

Tests

tests:
  - text: Não substitua a palavra-chave <code>const</code> .
    testString: 'getUserInput => assert(getUserInput("index").match(/const/g), "Do not replace <code>const</code> keyword.");'
  - text: <code>MATH_CONSTANTS</code> deve ser uma variável constante (usando <code>const</code> ).
    testString: 'getUserInput => assert(getUserInput("index").match(/const\s+MATH_CONSTANTS/g), "<code>MATH_CONSTANTS</code> should be a constant variable (by using <code>const</code>).");'
  - text: Não altere <code>MATH_CONSTANTS</code> original.
    testString: 'getUserInput => assert(getUserInput("index").match(/const\s+MATH_CONSTANTS\s+=\s+{\s+PI:\s+3.14\s+};/g), "Do not change original <code>MATH_CONSTANTS</code>.");'
  - text: <code>PI</code> é igual a <code>3.14</code> .
    testString: 'assert(PI === 3.14, "<code>PI</code> equals <code>3.14</code>.");'

Challenge Seed

function freezeObj() {
  "use strict";
  const MATH_CONSTANTS = {
    PI: 3.14
  };
  // change code below this line


  // change code above this line
  try {
    MATH_CONSTANTS.PI = 99;
  } catch( ex ) {
    console.log(ex);
  }
  return MATH_CONSTANTS.PI;
}
const PI = freezeObj();

Solution

// solution required