5个可以帮你理解JavaScript核心闭包和作用域的小例子


Posted in Javascript onOctober 08, 2014

这里有5个小脚本,有助于你真正理解JavaScript核心?闭包和作用域。没有在控制台运行之前,尝试回答每个案例中会弹出什么内容,然后你可以创建一个测试文件去核对你的答案。你准备好了吗?

1、

 if (!("a" in window)) {

     var a = 1;

 }

 alert(a);

2、
 var a = 1,

     b = function a(x) {

         x && a(--x);

     };

 alert(a);

3、
 function a(x) {

     return x * 2;

 }

 var a;

 alert(a);

4、
 function b(x, y, a) {

     arguments[2] = 10;

     alert(a);

 }

 b(1, 2, 3);

5、
 function a() {

     alert(this);

 }

 a.call(null);

我的预测答案分别是:undefined、1、不知道、10、null

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

 

 

 

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

Javascript 相关文章推荐
为javascript添加String.Format方法
Aug 11 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
Jun 19 Javascript
Javascript代码在页面加载时的执行顺序介绍
May 03 Javascript
详解Webwork中Action 调用的方法
Feb 02 Javascript
学习javascript文件加载优化
Feb 19 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
Jun 09 Javascript
vue.js实现表格合并示例代码
Nov 30 Javascript
详解Jquery的事件操作和文档操作
Dec 19 Javascript
webpack+vue中使用别名路径引用静态图片地址
Nov 20 Javascript
jQuery实现form表单序列化转换为json对象功能示例
May 23 jQuery
微信小程序 简易计算器实现代码实例
Sep 02 Javascript
Javascript数组及类数组相关原理详解
Oct 29 Javascript
JavaScript中获取样式的原生方法小结
Oct 08 #Javascript
吐槽一下我所了解的Node.js
Oct 08 #Javascript
Node.js 的异步 IO 性能探讨
Oct 08 #Javascript
JS中的form.submit()不能提交表单的错误原因
Oct 08 #Javascript
js数值计算时使用parseInt进行数据类型转换(jquery)
Oct 07 #Javascript
js交换排序 冒泡排序算法(Javascript版)
Oct 04 #Javascript
Javascript获取当前时间函数和时间操作小结
Oct 01 #Javascript
You might like
PHP数据库操作Helper类完整实例
2016/05/11 PHP
PhpStorm 2020.3:新增开箱即用的PHP 8属性(推荐)
2020/10/30 PHP
jQuery 对象中的类数组操作
2009/04/27 Javascript
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
JavaScript中的console.assert()函数介绍
2014/12/29 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
AngularJS 实现按需异步加载实例代码
2015/10/18 Javascript
jQuery实现form表单元素序列化为json对象的方法
2015/12/09 Javascript
谈谈我对JavaScript DOM事件的理解
2015/12/18 Javascript
深入探秘jquery瀑布流的实现
2016/01/30 Javascript
js编写一个简单的产品放大效果代码
2016/06/27 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
JSP防止网页刷新重复提交数据的几种方法
2016/11/19 Javascript
jQuery UI制作选项卡(tabs)
2016/12/13 Javascript
bootstrap输入框组件使用方法详解
2017/01/19 Javascript
canvas时钟效果
2017/02/16 Javascript
jQuery实现的简单拖拽功能示例【测试可用】
2018/08/14 jQuery
vue实例中data使用return包裹的方法
2018/08/27 Javascript
vue自定义底部导航栏Tabbar的实现代码
2018/09/03 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
js实现简易拖拽的示例
2020/10/26 Javascript
python通过shutil实现快速文件复制的方法
2015/03/14 Python
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
2016/06/14 Python
Python操作MySQL数据库的方法
2018/06/20 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
CSS3的颜色渐变效果的示例代码
2017/09/29 HTML / CSS
GUESS德国官网:美国牛仔服装品牌
2017/02/14 全球购物
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
Agoda中文官网:安可达(低价预订全球酒店)
2021/01/18 全球购物
大专生的学习自我评价
2013/12/04 职场文书
房地产经营管理专业自荐信
2014/09/02 职场文书
工伤私了协议书范本
2014/11/24 职场文书
计划生育汇报材料
2014/12/26 职场文书