*请问下面的程序运行结果是什么?
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