JavaScript 练习题2

  • 练习1
var x = 1, y = z = 0;

function add(n) {
    return n = n + 1;
}

y = add(x);

function add(n) {
    return n = n + 3;
}

z = add(x);

console.log(x, y, z); // 1, 4, 4 预编译 函数提前 同名函数 内容被覆盖
  • 练习2
// 下列代码中 能打印出[1,2,3,4,5]的是  A C D
// A 
function foo(x) {
    console.log(arguments);
    return x;
}
foo(1,2,3,4,5);

// B // 不运行 也不报错
function foo(x) {
    console.log(arguments);
    return x;
}(1,2,3,4,5);

// C // 立即执行函数
(function foo(x) {
    console.log(arguments);
    return x;
})(1,2,3,4,5)

// D
function foo() { 
    bar.apply(null,arguments);
    // 等价于 bar(arguments)
}
function bar(x) { 
    console.log(arguments); 
}
foo(1, 2 ,3, 4, 5)
  • 练习题3
parseInt(3, 8); // 把3当做8进制 转为10进制 输出 3

parseInt(3, 2); // 把3当做2进制 2进制只有0和1 输出 NaN

parseInt(3, 0); // 0进制 没有 部分浏览器返回0 部分浏览器报错
  • 练习题4
function b(x, y, a) {
    arguments[2] = 10;
    console.log(a);
}

b(1, 2, 3); // 输出 10 arguments和形参相对应 互相改

function c(x, y, a) {
    a = 10;
    console.log(arguments[2]);
}

c(1, 2, 3); // 输出 10

  • 练习题5
// 输出一个字符串的长度 中文为2个字符

function retByteslen(n) {
    n = n.toString();
    var len,
        count;
    len = count = n.length;
    for(var i = 0; i < len; i++) {
        if(n.charCodeAt(i) > 255) {
            count ++;
        }
    }
    return count;
}

retByteslen('abc 你好!'); // 10

猜你喜欢

转载自blog.csdn.net/fanlixing6/article/details/85071892