表达式求值强化练习

课后整理 2020-12-14

阅读下列程序,写出x、y、z的终值。

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);

下面代码的输出值是什么?

function f1() {
    var n = 100;
     nAdd = function() {
         n += 1
     }
     function f2() {
         alert(n);
     }
     return f2;
 }
 var result = f1();
 result();
 nAdd();
 result();

阅读下面代码,判断输出值,并解释原因。

var a;
alert(typeof a); 
alert(b); 

阅读下面代码,判断每个表达式的值,并解释原因。

var undefined;
undefined == null; 
1 == true; 
2 == true; 
0 == false; 
0 == '';
NaN == NaN; 
[] == false; 
[] == ![]; 

阅读下面代码,判断foo的值和类型?

var foo =  "11"+2-"1";
console.log(foo);
console.log(typeof foo);

阅读下面代码,写出输出值。

var a = new Object();
a.value = 1;
b = a;
b.value = 2;
alert(a.value);

阅读下列代码,将会输出什么?

var foo = 1;
function(){
    console.log(foo);
    var foo = 2;
    console.log(foo);
}

阅读下面代码,判断输出结果?

function fn(a) { 
    console.log(a);  
    var a = 2; 
    function a() {} 
    console.log(a);  
} 
fn(1); 

阅读下面代码,判断输出结果?

var f = true; 
if (f === true) { 
    var a = 10; 
} 
function fn() { 
    var b = 20; 
    c = 30; 
} 
fn(); 
console.log(a); 
console.log(b); 
console.log(c); 

阅读下面代码,判断输出结果?

var f = true; 
if (f === true) { 
    var a = 10; 
} 
function fn() { 
    var b = 20; 
    c = 30; 
} 
fn(); 
console.log(a); 
console.log(b); 
console.log(c); 

阅读下面代码,判断输出结果?

var a = 10; 
a.pro = 10; 
console.log(a.pro + a); 
var s = 'hello'; 
s.pro = 'world'; 
console.log(s.pro + s); 

阅读下面代码,判断输出结果?

console.log(typeof fn); 
function fn() {}; 
var fn; 

阅读下面代码,判断输出结果?

var a="undefined";
var b="false";
var c="";
function assert(aVar){
    if(aVar)      
        alert(true);
    else  
        alert(false);
}
assert(a);
assert(b);
assert(c);

参考答案