作用域 作用域链 预解析

本文详细介绍了JavaScript中的作用域概念,包括局部作用域和全局作用域,强调了变量和函数声明的生命周期。作用域链是JS查找变量的机制,从当前作用域到全局作用域逐步搜索。预解析阶段,变量和函数会被提前声明,但变量可能会因重名而覆盖。同时,文章指出了函数返回值的重要性,并提到了函数调用的规则和注意事项。
摘要由CSDN通过智能技术生成

1.作用域

  1. 作用域:变量或者函数的有效使用范围

  2. 作用域分类:局部作用域 全局作用域

  3. 全局变量/函数 局部变量/函数
  • 全局变量/函数:在函数外声明变量/函数,可以在代码中的任何地方访问和修改,会一直存储在计算机的内存中,直到页面关闭
  • 局部变量/函数:在函数内部声明的变量/函数,只能在函数内部使用 出了函数就会被销毁

4.注意

  1. 声明变量不带var 也可以使用 但是声明出来是全局变量
  2. 只要是在函数内部声明的东西 都是局部变量

2. 作用域链

作用域链:是js的一种查找机制,先找自身作用域范围内,再依次往父级作用域查找,直到找到全局变量 如果全局变量范围也找不到 就是is not defined

3.预解析

通过以上代码,代码不是单纯的从上往下执行 计算机在解析的时候 从上往下执行会经过很多步骤 ,至少掌握住两种步骤

  • 1.预解析(变量提升)

    • 找var关键字 提前声明变量(只看等号左边的内容),如果变量重名 在内存中 只会声明一次

    • 找function关键字 提前声明整个函数 如果重名会多次声明

  • 2.逐行执行

    • 逐行执行的时候 会忽略funtion函数声明 和var 变量声明

  •  3.注意

         变量和函数重名也会被覆盖

         普通函数声明与表达式声明的区别  普通函数可以提前调用  表达式声明无法提前调用

4.函数返回值

  1. 什么时候需要函数返回值

           函数外侧需要函数内部的值

      2.语法: return 返回值

      3.注意事项

         注意1:return一次只能返回一个值 如果连续写多个 返回的是最后一个值

         注意2: return不仅有返回值的作用 还有结束函数执行的作用(遇到return就结束)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值