标签:fun 客户端 span 查找 不可 内存 作用域 调用 报错
函数的执行
js代码在客户端执行的时候 客户端会分配一个空间叫window 全局空间 我们通过var和function声明的所有变量都处于这个空间下 可以使用window.变量名获取 同时把var和function声明的变量存储到内存中去
var和function声明的变量 即存到内存中也属于window 不用这些关键字声明的变量 只属于window没有存到内存中去
函数执行的过程分析
函数执行(调用)时 它会在window下开辟一个私有空间
第一步,找出所有的var和function声明的变量,把他们存到这个私有空间的内存空间中去,var声明的只存储不定义,function既存储了也定义了。
第二步 代码从上到下依次执行,只执行语句,再操作变量的时候,先在自己的私有内存中去查找,找到了看定义没,定义了使用后面的值,没定义就是undefined,没找到就往上一个内存空间查找,只到window下为止,找到使用,没找到报错。这种查找机制叫作用域链。
Js代码执行前,客户端分配的window空间叫全局作用域。
函数执行时开辟的私有空间叫私有作用域,或局部作用域。
作用域: 变量的一个作用范围。
在函数内声明的变量叫私有变量
思考
函数内的私有变量,函数外面可以直接访问吗?
不可以,函数内的变量存在函数的私有内存中,函数外的变量存储在window内存下,操作函数外的变量时,只会在window下的内存查找。找不到,所以报错,不能使用。
函数的参数
参数 定义函数的时候 小括号中的变量就是参数叫形参 执行函数的时候小括号中的参数叫实参
标签:fun 客户端 span 查找 不可 内存 作用域 调用 报错
原文地址:https://www.cnblogs.com/lihuhu/p/12105514.html