码迷,mamicode.com
首页 > 其他好文 > 详细

回顾总结1

时间:2016-06-01 22:53:01      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

笔试题

一、Seajsrequirejs的区别:requirejs是执行的AMD规范,因此所有的依赖模块化都是先执行(也就是预执行),依赖前置。(requirejs2.0之后的版本支持CMD的写法)

seajs是执行的CMD规范,因此所有的依赖模块化都是懒执行(也就是延迟执行),依赖就近。

二、为什么要模块化:嵌入网页的js越来越庞大且复杂,在开发过程中通常需要团队的分工协作,开发者不得不用软件工程的方法管理网页的业务逻辑(处理数据的逻辑)。插拔式,方便直接调用别人或自己写好的模块.

三、seajsrequirejs分别怎么暴露要用的接口:seajs是通过module.exports来暴露需要的东西。  requirejs是通过return来暴露需要的东西。

 

 

 

  1. 闭包:在方法里再定义一个函数,和变量。执行时因为不会释放内存就会生成闭包。方法的调用时候,先在函数里找要调用的方法和变量,如果没有才会沿着作用域链找。闭包不能释放,占用内存。
  2. 变量提升:JS在执行一个函数的时候会先生成一个ECEC中包含AO,所以它会先生成好所有的变量,但是没有赋值,只是扫描了一遍代码。 然后在执行代码。这就变量的提升。
  3. Js是单线程: 分为队列事件栈。只有执行完栈的代码,才会执行队列事件的代码。而且栈是先进后出,队列事件是先进先出。循环执行的。Setimeout 这种是属于队列事件的。
  4. setimeout: 这是window对象调用的。 注意this的区别。
  5. 数组的排序:冒泡算法,或者用 arr.sort()和arr.reverse()。
  6. i的最后取值:i的值是最后的值。循环是一下就执行完了的,所以i值已经发生了变化。只能是最后的值。且注意i值的边界。以为i最后是i++加到了的,所以大于循环的条件。

 

 

机试题:

 /*第一题*/

应用:计算阶乘

知识点:for循环

var res = 1;

for(var i = 1;i <= 9; i += 2){

res *= i;

}

console.info("res = " + res);

/*第二题*/

应用:计算奇数和偶数和

知识点:for循环,if else判断

var odd = 0, even = 0;

for(var i = 0;i <= 100; ++i){

if(i % 2)

even += i;

else

odd += i;

}

console.info("odd = " + odd + ", even = " + even);

 

/*第三题*/

应用:计算

知识点:for循环 if的判断

 

var count = 0;

for(var i = 1; i <= 4; ++i){

for(var j = 1;j <= 4; ++j){

if(i != j){

for(var k = 1; k <= 4; ++k){

if(i != k && j != k){

++ count;

console.info(""+i + j + k);

}

}

}

}

}

console.info("count = " + count);

 

/*第四题*/

应用:计算质数的和

知识点:for循环 if 判断 和循环的跳出

count = 0;

for(var i = 101 ; i < 200; ++i){

for(j = 2,len = parseInt(Math.sqrt(i) + 1); j <= len; ++j){

if(i % j == 0){

console.info("i = " + i + ", j = " + j);

++ count;

break;

}

}

}

console.info("count = " + count);

回顾总结1

标签:

原文地址:http://www.cnblogs.com/lx307697527/p/5551213.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!