1、

//现有代码如下:
var foo = 1;
function main(){
alert(foo);
var foo = 2;
alert(this.foo)
this.foo = 3;
}
//1.请给出以下两种方式调用函数时,alert的结果,并说明原因。
var m1 = main();
var m2 = new main();
//2.如果想要var m1 = main()产生的m1和前面的m2完全一致,又该如何改造main函数?

1、var m1=main()时,alert的结果是undefined和1,原因是首先在alert(foo)的时候,foo在main()函数域内还没有被定义(这里作者说错了,不是没有定义,是局部变量还没有赋值,变量声明时会提前的),因此提示undefined,而在输出this.foo时,因为此时的函数执行环境是全局域,相当于window.main(),因此this=window,所以this.foo=window.foo=1
var m2=new main()时,alert的结果是undefined和undefined,第一个undefined的原因与前面一种情况相同,而第二个提示undefined的原因是在这种情况下用new构造了一个main()的实例,因此执行环境发生了改变,不再是全局域,而是m2,因此此时的this=m2,因此this.foo=m2.foo,但是由于在alert(this.foo)时,m2中的this.foo还未被定义,因此提示undefined

注意:全局环境下定义的变量会被当做全局对象的属性:如在1中alert(this.main)也会有结果。但是在局部环境下就不是了,局部变量不会被当做对象的属性。如:foo就不是main的属性。

2/  写一段脚本,实现:当页面上任意一个链接被点击的时候,alert出这个链接在页面上的顺序号,如第一个链接则alert(1), 依次类推;

window.onload = function() {
var l = document.links.length;
for (var i = 0; i < l; i++) {
document.links[i].onclick = function(x) {
return function() {
alert(x + 1);
};
}(i);
}
};

  看着很简单,其实考察了闭包。

3、请用html5标准完成以下页面布局(要求完整书写整个页面的html代码,不需要写CSS)

<!DOCTYPE html>
<html>
<head>
<title>html5</title>
</head>
<body>
</body>
<header></header>
<nav></nav>
<div>
<aside></aside>
<section></section>
</div>
<footer></footer>
</body>
</html>

  

最新文章

  1. PlayerPrefs游戏存档
  2. STL之序列容器deque
  3. javascript按中文首字母排序
  4. unix文件操作函数
  5. [iOS经典面试题]用变量a给出下面的定义
  6. 如何解决Angular 2 的templateUrl和styleUrl的路径问题?
  7. 随机获取Mysql数据表的一条或多条记录
  8. Zabbix探索:工作时间的设置
  9. [Java] 可运行 jar 记录
  10. UVA - 1103Ancient Messages(dfs)
  11. mui 访问手机自带是否连接网络
  12. 【Loadrunner】初学Loadrunner——录制脚本、回放、以及优化
  13. 新一代开源Android渠道包生成工具Walle
  14. oracle数据库无监听程序
  15. CSS学习笔记六:写原生导航栏
  16. Linq中 AsQueryable(), AsEnumerable()和ToList()的区别和用法
  17. Makes And The Product CodeForces - 817B (思维+构造)
  18. SSD固态硬盘测试工具收集(持续更新)
  19. PostgreSQL、SQL Server数据库中的数据类型的映射关系
  20. 推荐系统之矩阵分解及C++实现

热门文章

  1. java对象和json对象之间互相转换
  2. JS原型和原型链
  3. JavaScript 伪造 Referer 来路方法
  4. 使用onclick跳转到其他页面。使用button跳转到指定url
  5. dp + 组合数 Codeforces Beta Round #9 (Div. 2 Only) D
  6. 解读QML之三
  7. Boost的VS开发环境搭建
  8. TextUtils
  9. 多线程junit单元测试
  10. 非常简单的oracle和mysql数据互传