欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

初识javascript与作用域

程序员文章站 2024-01-04 11:59:16
...

javasecipt成员简介

  • 数据与操作是jsvascript代码中的2个主要成员
  • 程序:描述任务的操作流程,默认是”顺序执行”
  • 顺序执行: 计算机中专业的叫法”同步执行”
  • 同步执行: 代码执行顺序与书写顺序一致

数据

  • 字面量:直接可以看到值例如10,20
  • 变量:实现数据复用,且值可以随时变化,使用变量第一步:变量声明,第二步:执行, 赋值(第一次叫:初始化)例如下列代码
  1. let a;
  2. let b;
  3. a = 10;
  4. b = 20;

操作

  • 代码块一段由”大括号 {…}”包裹的代码,例如下列代码
  1. {
  2. a + b;
  3. }
  • 函数:实现操作复用,使用function声明,函数名(参数)调用
    例如下列代码定义了函数:
  1. function sum(a, b) {
  2. return a + b;
  3. // 下面这条语句永不执行,因为上面return
  4. // console.log(123);
  5. }

作用域

    1. 块作用域:变量只在当前块中可以访问例如下列代码
  1. {
  2. let a = 123;
  3. console.log(a);
  4. }
  5. console.log(a); //错误,在外部无法访问块中得变量

上述代码中,第一个console.log(a)在块中,执行结果为123
第二个’console.log(a)’在块之后,无法访问,执行结果为undefined

  • 2.函数作用域:变量只在函数中可见,例如下列代码
  1. function sum(a, b) {
  2. // 在函数中声明一个变量
  3. // 私有变量
  4. let res = a + b;
  5. // 函数内部声明的成员可以内部访问
  6. console.log(res);
  7. }
  8. sum(30, 50);
  9. // 但是在函数外部访问不到
  10. console.log(res);

上述代码中,第一个console.log(res)在函数中,可以正常访问a+b
第二个’console.log(res)’在函数之外,无法访问,执行结果为undefined

  • 3.全局作用域:在块/函数内部声明的成员, 仅限内部使用, 外部不可见
  1. let qq = "498668472";
  2. // ! 全局成员(变量/函数)在代码的任何地方,都是可用的
  3. {
  4. console.log(qq);
  5. }
  6. {
  7. {
  8. {
  9. console.log(qq);
  10. }
  11. }
  12. }
  13. function f1() {
  14. console.log(qq);
  15. }
  16. f1();
  17. function f2() {
  18. return function () {
  19. return function () {
  20. console.log(qq);
  21. };
  22. };
  23. }
  24. // 因为函数嵌套了三层,所以调用了三次
  25. f2()()();

上述代码中所有位置的console.log(qq)都可以正常访问qq,输入结果都是498668472

上一篇:

下一篇: