recherche

Maison  >  Questions et réponses  >  le corps du texte

Quelle est la différence entre var, const, let, window.prop et Object.defineProperty ?

Veuillez expliquer la raison de l'exemple suivant :

<script>
  var a = 1
  let b = 2
  const c = 3
  window.d = 4
  Object.defineProperty(window, 'e', {
    value: 5
  })
  console.log(a, b, c, d, e)
  console.log(window.a, window.b, window.c, window.d, window.e)
</script>
输出:
1,2,3,4,5
1 undefined undefined 4 5
<script>
  Object.defineProperty(window, 'a', {
    value: 1,
    writable: false
  })
  let a = 2
  console.log(a)
  console.log(window.a)
</script>
输出:
2
1
<script>
  Object.defineProperty(window, 'a', {
    value: 1
  })
</script>
<script>
  let a = 2
  console.log(a)
</script>
<script>
  console.log(a)
</script>
输出:
Uncaught SyntaxError: Identifier 'a' has already been declared
1
我想大声告诉你我想大声告诉你2763 Il y a quelques jours863

répondre à tous(2)je répondrai

  • 代言

    代言2017-06-28 09:30:46

    let a une portée indépendante

    const déclare une constante en lecture seule. Une fois déclarée, la valeur de la constante ne peut pas être modifiée.

    La variable globale sera affectée à la fenêtre (c'est peut-être ce que vous ne voulez pas)

    C'est une pratique très courante d'attribuer des valeurs à l'attribut window, mais l'objet d'affectation est window

    Object.defineProperty peut définir les méthodes setter et getter,
    ou le rendre non modifiable, ou même l'empêcher de devenir une énumération d'objets

    répondre
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-28 09:30:46

    Le niveau Global en js est l'objet window. Ainsi, a est accessible sur la fenêtre, et d est également accessible s'il est directement affecté sur la fenêtre. e est également lié à la fenêtre.

    let et const appartiennent à ES2015 Avec eux, il existe une portée au niveau du bloc, ce qui signifie que ce qu'ils définissent ne sera que dans la portée actuelle au niveau du bloc et ne sera pas accessible ailleurs.

    Ensuite, la dernière invite a été occupée, je pense que cela peut s'expliquer comme ça

    répondre
    0
  • Annulerrépondre