Règles d'utilisation des variables dans JS

Règles d'utilisation dans les variables

  • Après avoir une portée, la variable a une portée d'utilisation, et il y a des règles d'utilisation
  • Les règles d'utilisation variables sont divisées en deux types, les règles d'accès et les règles d'affectation

1. Règles d'accès

  • Lorsque je veux obtenir la valeur d'une variable, nous appelons ce comportement l'accès

  • Règles pour obtenir des variables :

    • Tout d'abord, regardez à l'intérieur de votre propre champ d'application, s'il y en a, utilisez-le directement
    • Si ce n'est pas le cas, accédez à la portée de niveau supérieur pour trouver, s'il y en a, utilisez-la
    • Sinon, continuez à chercher dans le champ supérieur, et ainsi de suite
    • S'il n'y a pas de telle variable jusqu'à la portée globale, une erreur sera signalée directement (la variable n'est pas définie)
var num = 100

function fn() {
  var num2 = 200
  
  function fun() {
    var num3 = 300
    
    console.log(num3) // 自己作用域内有,拿过来用
    console.log(num2) // 自己作用域内没有,就去上一级,就是 fn 的作用域里面找,发现有,拿过来用
    console.log(num) // 自己这没有,去上一级 fn 那里也没有,再上一级到全局作用域,发现有,直接用
    console.log(a) // 自己没有,一级一级找上去到全局都没有,就会报错
  }
  
  fun()
}

fn()
  • Les règles d'accès aux variables sont également appelées mécanismes de recherche de portée

  • Le mécanisme de recherche de portée ne peut être recherché que vers le haut, pas vers le bas.

function fn() {
  var num = 100
}
fn()

console.log(num) // 发现自己作用域没有,自己就是全局作用域,没有再上一级了,直接报错

2. Règles d'attribution

  • Lorsque vous souhaitez affecter une valeur à une variable, vous devez d'abord trouver la variable et l'affecter

  • Règles d'affectation des variables :

    • Regardez d'abord à l'intérieur de votre propre portée et attribuez-la directement s'il y en a une
    • Sinon, allez dans la portée supérieure pour le trouver, s'il y en a, attribuez-le directement
    • S'il n'y a pas de recherche dans la portée de niveau supérieur, attribuez directement la valeur
    • S'il n'y a pas de portée globale, définissez cette variable en tant que variable globale et attribuez-lui une valeur
function fn() {
  num = 100
}
fn()

// fn 调用以后,要给 num 赋值
// 查看自己的作用域内部没有 num 变量
// 就会向上一级查找
// 上一级就是全局作用域,发现依旧没有
// 那么就会把 num 定义为全局的变量,并为其赋值
// 所以 fn() 以后,全局就有了一个变量叫做 num 并且值是 100
console.log(num) // 100

おすすめ

転載: blog.csdn.net/liu0218/article/details/126549104