网站建设款属不属于无形资产,鞍山百姓网免费发布信息,网站策划的工作要求,农业网站模板免费下载六五#xff1a;作用域与function
function#xff1a;函数#xff0c;不是数学上的函数#xff0c;与写代码有关 JS中的函数#xff1a;运用它#xff0c;起个名字#xff0c;然后对函数进行调用#xff0c;即可将函数中的内容执行一遍
1、function
最基本的作用域…六五作用域与function
function函数不是数学上的函数与写代码有关 JS中的函数运用它起个名字然后对函数进行调用即可将函数中的内容执行一遍
1、function
最基本的作用域 可以理解为一个打包方法
1标准写法
function必须得有个名字
function 名字(){这里可以写要调的东西或函数的内容
};
名字();2分析
function看做函数 function AI的{}中写函数的内容即要被调用的东西 运行AI()对函数function进行调用函数即会执行{}中本身的内容
2、作用域
作用在一定的区域在该区域之外就不起作用。 函数就是一个最基本的作用域。
因为 - function在JS中为函数 而且 - 函数就是一个最基本的作用域 所以 - 任何function都是一个作用域
JS存在于大的script标签中function就是个私人区域function之外的变量都是公用的。 因为a是公用的所以函数Ai可以取用a 因为函数Ai是私人的公共范围的alert不能拿到b的值所以报错且提示b没有被定义没找到b 两个函数不相通一样报错 函数定义之后可以任意调用
六五预解析和变量提升
1、预解析
预先解析JS第一次解析代码叫预解析
1JS代码运行原理
JS本身会解析两次代码 第一次 —— 预解析粗略过一遍检查代码是否为JS的代码格式不管运行错误 第二次 —— 正常解析正常运行代码更仔细
1、预解析出现错误 就是语法出去代码完全不执行所有写的JS均失效 2、正常解析出现错误 即运行错误从错误代码开始后面的均不执行
2、变量提升
在预解析过程中会触发两个现象报错 - 和 - 变量提升
变量提升即把变量提到该作用域的最上面赋的值不会提升 解析 如上两图结果都是undefined。 但是图一是正常顺序因为a没有赋值所以提示undefined 查看图二a赋值10但是在alert的下面在这里触发了变量提升把变量a提到了上面但是赋值10不会提上去所以与图一结果一致有变量a但是没有值
1、变量提升规则
1、只有有作用域的位置会发生变量提升
2、只有有申明的东西才会提升即赋值
3、JS输出方式
1、alert弹窗 2、console.log打印
网页右键-检查-console查看结果
4、唯一性验证
1、外面的a被里面的a覆盖 2、每个作用域都会触发变量提升 每个作用域都会触发变量提升 每个作用域都会触发变量提升 解析触发了变量提升所以20行的a被提升到18不会提升值所以在18行出现一个看不到、未赋值的a这个a会覆盖16行的a所以这里打印的是未赋值的a即undefined。
4、流程
函数 作用域 进行预解析 触发变量提升