美文网首页
js代码问题

js代码问题

作者: 不懂如山 | 来源:发表于2018-04-20 21:39 被阅读0次

    问题来源
    https://github.com/h5bp/Front-end-Developer-Interview-Questions/tree/master/Translations/Chinese

    问题:foo的值是什么?

      var foo = 10 + '20';
    

    解:
    foo变量成为了值为"1220"的字符串

    问题:如何实现以下函数?

    add1(2, 5); // 7
    add2(2)(5); // 7
    

    解:
    function add1() { var j = 0; for (var i = 0; i < arguments.length; i++) { j += arguments[i]; } return j }
    function add2(i) { return function (j) { return i + j } }
    问题:下面的语句的返回值是什么?

    "i'm a lasagna hog".split("").reverse().join("");
    

    解:split()将字符串切成数组
    reserve()将数组反转
    join()将数组组成字符串
    所以返回值是"goh angasal a m'i"

    问题:window.foo的值是什么?

    ( window.foo || ( window.foo = "bar" ) );
    

    问题:下面两个 alert 的结果是什么?

    var foo = "Hello";
    (function() {
      var bar = " World";
      alert(foo + bar);
    })();
    alert(foo + bar);
    

    解:
    第一个alert输出"Hello World"
    第二个alert会报错,因为外部无法访问局部作用域的变量

    问题:foo.length的值是什么?

    var foo = [];
    foo.push(1);
    foo.push(2);
    

    解:
    foo.length的值为2,数组推入了2个数

    问题:foo.x的值是什么?

    var foo = {n: 1};
    var bar = foo;
    foo.x = foo = {n: 2};
    

    解:
    foo.x的值是undefined
    foo的值为 {n: 2}

    问题:下面代码的输出是什么?

    console.log('one');
    setTimeout(function() {
      console.log('two');
    }, 0);
    console.log('three');
    

    解:
    输出
    one
    three
    two

    相关文章

      网友评论

          本文标题:js代码问题

          本文链接:https://www.haomeiwen.com/subject/ahozkftx.html