Js、Ajax面试题、易错题总结

*请问下面的程序运行结果是什么?

parseInt('3.2' + 4)

解析:
程序会先计算'3.2' + 4,然后将计算
结果进行parseInt()。
注意,'3.2' + 4是字符串加数字,所
以是连字操作结果是'3.24'。
然后,parseInt('3.24')结果是3。

*请编程计算:1! + 2! + 3! + 4! + 5! + 6! + 7!

function jiecheng(n) {
    var jieguo = 1;
    for (var i = 1; i <= n; i++) {
        jieguo *= i;
    }
    return jieguo;
}
var sum = 0;
for (var j = 1; j <= 7; j++) {
    sum += jiecheng(j)
}
console.log(sum)

下列程序运行的结果是

var a = 3;
function fun() {
    a = 4;
}
fun();
console.log(a);

解析:函数里面a = 4没有写var,说明它在更改全局变量的值。而不是在定义局部变量。全局的a值,就变为4了。

下列程序运行结果是

var a = 3;
function fun() {
    a = 4;
    var a = 5;
}
fun();
console.log(a);

解析:注意,函数里面也有变量
声明提升!a = 4这个a是局部的a。不是全局的a。当函数里有直接赋值操作和定义操作时,不想影响全局变量。

下面运行结果是:

var a = 3;
function fun() {
    if (a == 3) {
        var a = 4;
    }
    console.log(a);
}
fun();

解析:变量声明提升,无视if语句!
因为,在程序预读阶段,if语句被无视。直接无条件提升var a。                                                      if语句没有执行,所以局部的a没有被赋值。输出undefined。

下面程序运行结果是什么:

fun();
var fun = function () {
    console.log('B');
}
fun();
function fun() {
    console.log('A');
}
fun();

答:按输出顺序为A、B、B

*请编程计算 2 + 22 + 222 + 2222 + 22222 + 222222 + 2222222  的结果。

        var sum = 0;
        var c = 0;

        for (var i = 1; i <= 7; i++) {
            c = c * 10 + 2;
            sum += c;
        }
        console.log(sum);

程序输出结果为何?

var a 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值