js程序题目

1.写出下列输出

var a = 10;
sayHi();
function sayHi(){
    a = a + 10;
    console.info(a);
    return a;
}
console.log(a);
console.log(sayHi() + 10);

2.写出下列输出

var a = 10;
sayHi();
function sayHi(){
    var a = a + 10;
    console.info(a);
    return a;
}
console.log(a);
console.log(sayHi() + 10);

3.假设页面中有4个p标签

function init(){
    var ps = document.getElementsByTagName("p");
    for(var i = 0;i < ps.length;i++){
        ps[i].onclick = function(){
            console.log(i);
        }
    }
}
init();

4.写输出

var add = function(m) {
    var temp = function(n) {
        return add(m + n);
    }
    temp.toString = function() {
        return m.toString(2)
    }
    return temp;
}
console.info(add(3)(4)(5));

1.答案

20
20
30
40

2.答案

NaN

10

NaN

NaN

3.答案:点击任意一个返回都是4,因为i为全局变量。点击时,for循环已执行完毕。解决方案如下,或者使用es6语法let。

(function(n) {
      ps[n].onclick = function() {
           console.info(n);
      }
})(i);

4.答案

1100

原文地址:https://www.cnblogs.com/lixuemin/p/6652820.html