js面试题

本文介绍了如何用JavaScript实现九九乘法表的打印,并讲解了预解析的概念,包括变量和函数的预解析以及作用域的原理,如全局和局部作用域、作用域链。同时,讨论了变量查找和赋值的规则,以及函数与形参的关系。此外,还提及了同步和异步、回流与重绘这些重要的JavaScript执行机制。
摘要由CSDN通过智能技术生成

1.完成一个九九乘法表打印功能

<script type="text/javascript">

// 完成一个三角形打印功能
document.write('<pre>');

for(var i=1;i<=9;i++){
 for(var j=1;j<=i;j++){
   document.write(j+'*'+i+'='+j*i);
   document.write('&nbsp; &nbsp;')
}
  document.write('<br>');
}
document.write('</pre>');
</script>

2.预解析

预解析:在所有的代码中找变量的定义和函数的定义,找到了就将变量的定义代码和函数的定义代码

,提升放在所有代码的最前面,在执行的时候,按照解析后的代码进行执行.

  1. 作用域

概念:能起到作用的区域就叫做作用域。定义在不同区域的变量,他的作用域是不一样的

作用域分为全局作用域和局部作用域

全局变量 - 定义在函数外的变量 - 作用域是整个页面

局部变量 - 定义在函数内的变量 - 作用域是函数内部

局部可以访问到全局的变量, 全局访问不到局部的变量

  1. 作用域链:由作用域嵌套形成一条链式结构

规则1:当我们将一个变量当做是一个具体的数据使用的时候,先在当前作用域中找是否定义

过;没有定义过;就去上级作用域中去找.....直到全局,如果全局也没有定义过,报错

规则2:当我们给一个变量空间赋值的时候.先在当前作用域中找是否定义过这个变量,定义过,

赋值成功,修改的是当前作用域中的这个变量,没有定义过,就去上级作用域中找....直到全局,

全局找到了,就是在给全局变量赋值,如果全局也找不到,就会在全局定义这个变量并赋值.

结论:

  1. 全局中有预解析,局部中也有预解析,局部的预解析,只能在局部中进行,不会将变量提升到全局

  1. 使用连等的方式定义变量并赋值,只有第一个有定义过程,其余的都是直接赋值

  1. 函数定义好以后,函数名就跟变量名一样,可以使用函数名修改这个空间中的值

  1. 局部的预解析会在形参赋值之后,预解析中的函数会覆盖掉形参赋的值

三同步和异步

四.回流和重绘

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值