作用域和函数 变量 提升

 

  在文本的上面留一行,就像在写代码的时候留白一样,这样更方便后续添加,也有层次感。

目录

  rectangle rectangle rectangle rectangle rectangle rectagle rectangle rectangle矩形长方形

  tangle tangle tangle 一团遭 纠缠

  原来的那个滚动截屏自己的那个软件是可以再次直接二次剪切的。

01

作用域

  定义两个变量,一个函数,函数还没有调用所以先不说。

  之后函数调用,就进入函数,将实参传递给形参,<数据存在栈中,之后传递的时候拷贝一份实际到参数的值赋值给形式参数>

  进入函数,函数的形式参数相当于一个声明,在声明赋值之后程序向下走。

  随后num2 在函数内部没有一个声明,就会到函数外部去寻找一个声明,这就就叫做变量的提升,<相当于将变量给提升上去>。随后程序继续向下走,num2 被赋值为 100,上面这些函数打印出来就是100

  出函数向下走,

  在函数的外边的这些,首先说 num1是在函数的内部进行赋值操作,对于全局的num1来说,没有改变最初的值,所以还是55。

  对于这个 num2 来说,因为变量的提升,num2在函数内部没有进行一个声明,所以num2 就变成个全局的声明<因为没有函数内部的声明,所以就成为一个全局的>所以num2 数值就变成一个 100。

  对于num来说,在全局的时候没有声明,在函数内的时候有声明,所以在函数外访问的时候就变成 undefind

  小结:

对于作用域:全局作用域作用域全局,函数作用域只作用域函数,块级作用域作用于块。

对于函数 变量 提升:

JavaScript 中,函数及变量的声明都将被提升到函数的最顶部。

JavaScript 中,变量可以在使用后声明,也就是变量可以先使用再声明。

  声明会提升,但是赋值不会提升。

发布了11 篇原创文章 · 获赞 0 · 访问量 244

猜你喜欢

转载自blog.csdn.net/Douglas_Ryan_/article/details/105218252