(翻译不当之处请谅解)

来源:http://www.ido321.com/914.html

这里有5个小脚本,有助于你真正理解JavaScript核心–闭包和作用域。没有在控制台执行之前,尝试回答每一个案例中会弹出什么内容,然后你能够创建一个測试文件去核对你的答案。

你准备好了吗?

1、

   1: if (!("a" in window)) {
   2:     var a = 1;
   3: }
   4: alert(a);

2、

   1: var a = 1,
   2:     b = function a(x) {
   3:         x && a(--x);
   4:     };
   5: alert(a);

3、

   1: function a(x) {
   2:     return x * 2;
   3: }
   4: var a;
   5: alert(a);

4、

   1: function b(x, y, a) {
   2:     arguments[2] = 10;
   3:     alert(a);
   4: }
   5: b(1, 2, 3);

5、

   1: function a() {
   2:     alert(this);
   3: }
   4: a.call(null);

我的预測答案各自是:undefined、1、不知道、10、null

答案在本文末尾,看答案之前,你敢留下你的推測吗?

正确答案:1、undefined   2、1   3、function a(x){ return x * 2}   4、10  5、[object window]

来源:http://dmitry.baranovskiy.com/post/91403200

你觉得你非常了解Javascript?相关推荐

  1. 【AJAX】JavaScript的面向对象

    Ajax中后端数据返回后需要前端通过JavaScript来实现动态数据更新的问题.所以,在Ajax中加深了一遍JavaScript面向对象的印象. 基础部分: JavaScript中创建对象并简单对象 ...

  2. 【JavaScript总结】JavaScript语法基础:JS高级语法

    作用域链: 1.JS中只有函数能够限定作用域的范围: 2.变量处理在制定的函数范围内,还有一个特殊的作用域,就是没有用var 声明的全局作用域 3.js中的作用域链是为了清晰的表示出所有变量的作用范围 ...

  3. 【JavaScript总结】JavaScript语法基础:DOM

    ->DOM的理解:文档对应dom树 ->有了DOM能做什么:DOM的操作 html文档做为DOM树模型,DOM树的节点就是对象.对象会触发事件来执行一些事件代码. C#中的事件是一个委托变 ...

  4. 【JavaScript总结】JavaScript语法基础:JS编码

    运算符 数学:+. -. *. / 逻辑:>. < .>= .<=. == . !=.&&.|| . === .!==(完全等于) 对象相关 new delet ...

  5. 【JavaScript总结】JavaScript语法基础:数据类型

    ------>数据类型有哪些? ->基本类型:数字类型,布尔类型,字符串类型 ->引用类型:对象类型,函数类型 ->空类型:null 和 undefined ->运算符: ...

  6. 【JavaScript总结】JavaScript发展与学习内容

    发展: 最初浏览器是为大学里浏览文档用,从地址栏输入文档地址,找到文档显示. 后来各种需求(购物网站,个人博客)出现,已有功能不能满足需求. 可人们依旧在努力满足这种需求,但实现后的效果很不尽人意. ...

  7. Python:模拟登录、点击和执行 JavaScript 语句案例

    案例一:网站模拟登录 # douban.pyfrom selenium import webdriver from selenium.webdriver.common.keys import Keys ...

  8. [JavaScript] JavaScript数组挖掘,不只是讲数组哟(2)

    课程来源:后盾人 上一篇的内容:[JavaScript] JavaScript数组挖掘,不只是讲数组哟 数组引用类型分析,多维数组,用Array.of为数组创建细节,类型检测与转换,在一个数组后面加一 ...

  9. [JavaScript] JavaScript 数组挖掘,不只是讲数组哟

    课程来源:后盾人 数组引用类型分析 数组的定义 const array = new Array('hello', 'dust', 1, 2, 3, 4, 5) console.log(array) l ...

  10. linux下用js生成xml,js2xml:将javascript字符串转换为xml

    有时候爬数据遇到像下面这种,数据在script标签中以javascript形式存在. var totalReviewsValue = 32; var averageRating = 4.5; if(t ...

最新文章

  1. 云计算面临的典型威胁
  2. MATLAB电压不平衡,电力系统不对称故障计算的Matlab算法程序
  3. windows连接远程桌面
  4. 手动写一个上传图片的组件,不适用插件,包括限制图片大小,格式
  5. 【阅读理解】机器阅读理解综述(一)
  6. Buffer Pool--锁定内存页
  7. 五子棋(机器人随机下棋简单版本)
  8. 软件测试员200题(练习)
  9. c语言中有队列头文件吗,C语言队列学习竟是如此简单!你,懂了嘛?
  10. 手把手系列--华邦W25Q64JV Flash操作指南
  11. Linux 下串口编程入门
  12. 边缘计算与深度学习——初读研究生的迷茫
  13. Unity3D数字孪生开发笔记——软件基础篇
  14. 有关H5第七章的盒子模型介绍
  15. SQL_修改字段为NOT NULL和NULL
  16. MySQL inet aton函数,基于Mysql的IP处理函数inet_aton()与inet_ntoa()的深入分析
  17. asp.net校园二手物品交易网站
  18. C++学习笔记(四)~substr()函数
  19. htcm7刷linux,htc one m7刷官方原版recovery的教程
  20. linux(ubuntu)下vi命令(例:sudo vi ~/.bashrc)

热门文章

  1. 是时候为编程界做点贡献了
  2. Extjs Ext.net中的常用属性
  3. 什么样的终端才是最合适桌面虚拟化的呢?
  4. AE intersect、clip的实现
  5. 第一次作业 三班20
  6. go语言之进阶篇面向对象编程
  7. [转]技术路线的选择重要但不具有决定性
  8. 网站会员扫码充值系统
  9. android hook 框架 ADBI 如何实现so注入
  10. cxgrid定位在第一行并显示内置编辑器