zoukankan      html  css  js  c++  java
  • 测试:你自认为理解了JavaScript?

    http://news.cnblogs.com/n/165436/

    mitry Baranovskiy 的博客中有篇文章(链接),其中有五段小代码,用来测试是否理解 JavaScript 的核心,闭包和作用域。大家先试着给出 alert 语句的输出结果。之后再建一个测试文件,检测你的答案。

    if(!("a" inwindow)) {
    vara = 1;
    }
    alert (a);

    vara = 1,
    b = functiona (x) {
    x && a (--x);
    };
    alert (a);

    functiona (x) {
    returnx * 2;
    }
    vara;
    alert (a);

    functionb (x, y, a) {
    arguments[2] = 10;
    alert (a);
    }
    b(1, 2, 3);

    functiona () {
    alert (this);
    }
    a.call (null);



    8
    2
     



    额,我是搞web前端的,来此测试一番。。。。个人知识有限,请指教: 一//////////////////////////////////////////////////////////////////////////////////////////////////// if (!("a" in window)) { var a = 1; } alert (a); 答案:undefined ; 因为"a"这种变量定义,在js中会默认提前;代码相当于: var a; if (!(window.a in window)) { var a = 1; } alert (a); 二//////////////////////////////////////////////////////////////////////////////////////////////////// var a = 1; var b = function a (x) { x && a (--x); }; alert (a); 答案:1; 这道题应该是考的,函数定义问题,因为函数申明会提前,此题相当于: function a (x) { x && a (--x); }; var b = a; var a = 1; alert (a); 三//////////////////////////////////////////////////////////////////////////////////////////////////// function a (x) { return x * 2; } var a; alert (a); 答案是:函数体,a若是未定义的话,将会忽略;好吧,此题我蒙的。。。 四//////////////////////////////////////////////////////////////////////////////////////////////////// function b (x, y, a) { arguments[2] = 10; alert (a); } b(1, 2, 3); 答案为:10,argument为活动对象,值会跟着变的 五//////////////////////////////////////////////////////////////////////////////////////////////////// function a () { alert (this); } a.call (null); 此题相当于: function a () { alert (this); } a.call (window);

  • 相关阅读:
    RTF文件格式
    javascript 正则表达式基础
    不同线程之间传递数据
    JavaScript trim函数
    Simple Editor
    关于RichTextBox字体的问题
    手机短信自动清理方式
    手机来电显示新方法
    具有二维码自动识别功能的交通标志
    利用手机扫描二维码技术识别房屋租赁信息
  • 原文地址:https://www.cnblogs.com/danghuijian/p/4399967.html
Copyright © 2011-2022 走看看