스위치 대신 "if 및 else"를 바꾸면 Object Literals - [pt-BR]을 사용할 수 있습니다.



지금 스위치를 사용하시겠습니까?



Um switch é uma função que recebe dados, e esses dados serão analisados; se esses dados forem iguais a um de nossos "cases", ele executa a instrução que está inserida no bloco de código e retorna um valor.

function UserPolicy(type) {
  switch(type) {
    case 'admin':
      return `This User is Admin!`
      break
    case 'client':
      return 'This User is Client!'
      break
    case 'salesman':
      return 'This User is Salesman!'
      break
    default:
      return 'Ops, this guy doesn\'t have user profile'
  }
}

UserPolicy() // "Ops, this guy doesn't have user profile"
UserPolicy('admin') // "This User is Admin!"


O switch é semelhante às instruções ife else, será avaliado um único valor - dentro da opção, usamos um case para avaliar em relação a cada valor.

Quando você usa muitas declarações de if e else, tem algo muito errado acontecendo, geralmente você deve avaliar usar outra abordagem, aqui está um caso de abuso de if e else:

function UserPolicy(type) {
  let userType
  if (type === 'admin') {
    userType = 'This User is Admin!'
  } else if (type === 'client') {
    userType = 'This User is Client!'
  } else if (type === 'salesman') {
    userType = 'This User is Salesman!'
  } else {
    userType = 'Ops, this guy doesn\'t have user profile'
  }

  return `User is type: ${userType}`
}


com o 스위치의 문제



스위치와 같은 다양한 문제가 있으며, 프로세스를 제어할 수 있는 플럭스 제어 프로세스는 제어 블록에서 제어 블록으로, 또는 JavaScript 미국 차베스를 다시 시작하여 스위치로 전환할 수 있습니다. Sintaticamente, não é um dos melhores do JavaScript, nem o seu design. 추가로 추가로 설명서를 깨는 경우; instruções em cada case, o que pode levar a erros difíceis de depuração e aninhados futuramente, caso nos esqueçamos! Temos que tratar isso com muita cautela.

Costumamos usar pesquisas de objeto para muitas coisas em JavaScript, muitas vezes para coisas que nunca contemplaríamos usando o switch - então por que não usar um Object Literal para substituir o switch? Os objetos são muito mais flexíveis, têm melhor legibilidade e capacidade de manutenção e não precisamos quebrar manualmente; 카다 케이스. 이 작업은 자바스크립트에서 새로운 기능을 제공하는 것보다 훨씬 더 많은 작업을 수행할 수 있게 해 줍니다.

Motivos para não usar 스위치


  • À medida que o número de cases aumenta, o desempenho do objeto (tabela de hash) fica melhor que o custo médio do switch(a ordem da questão do caso). Abordagem de objeto é uma pesquisa de tabela de hash, e a opção deve avaliar cada case até que ele atinja uma compatibleência e uma quebra.
  • Object Literals são mais sustentáveis ​​e legíveis. Também não precisamos nos preocupar com "breaks"; declarações e casos que se enquadram - é apenas um objeto simples.

  • Normalmente, colocaríamos um switch dentro de uma função e obteríamos um valor de retorno. Vamos fazer o mesmo aqui e transformar o switch case em uma função utilizável com retorno de um Object Literal:

    function UserPolicy(type) {
      // Criamos uma constante que recebe um objeto, e cada uma das propriedades
      // será os valores correspondentes aos nossos types
      const Users = {
        admin: 'This User is Admin!',
        client: 'This User is Client!',
        salesman: 'This User is Salesman!',
        default: 'Ops, this guy doesn\'t have user profile'
      }
    
    
      return Users[type] || Users.default
    }
    
    UserPolicy() // "Ops, this guy doesn't have user profile"
    UserPolicy('admin') // "This User is Admin!"
    


    Visão 글로벌



    객체 리터럴은 자바스크립트에서 자연스럽게 유동적으로 제어할 수 있으며, 반대로 전환하면 문제가 해결되고 오류가 발생하기 어렵습니다. Os objetos são mais extensíveis, sustentáveis ​​e podemos testá-los muito melhor. Eles também fazem parte de um padrão de design e são comumente usados ​​diariamente em outras tarefas de programação. Os Object Literals podem conter funções e qualquer outro tipo de objeto, o que os torna realmente flexíveis! Cada função no literal também tem escopo de função, para que possamos retornar o fechamento da função pai.

    //Não estou ditando regra - é apenas mais uma forma de solucionar os problemas do nosso dia a dia.

    좋은 웹페이지 즐겨찾기