作用域的面试题
1.
fn()
function fn () {
console.log(12)
}
var as = function () {
console.log(45)
}
2.
var a = 12;
function fn () {
console.log(a)
var a = 45;
console.log(a)
}
fn()
3.
var a = 12;
function fn () {
console.log(a)
a = 45;
console.log(a)
}
fn()
4.
function fn () {
console.log(11)
function ff () {
console.log(22)
}
ff()
}
fn()
5.
function fn () {
console.log(5)
fn()
}
fn()
6.
function fn () {
console.log(12)
}
var as = fn()
console.log(as)
7.
function fn () {
console.log(12);
return 45;
console.log(456)
}
var as = fn()
8.
var a = 12;
function fn () {
console.log(a);
return 4;
var a = 45;
}
fn()
9.
var a = 45;
function fn () {
console.log(a)
}
fn()
10.
var a = 45;
function fn (a) {
console.log(a)
}
fn(5)
11.
var a = 123;
function fun () {
alert(a);
}
fun()
12.
var a = 123;
function fun () {
alert(a);
var a = 456;
}
fun();
alert(a);
13.
var a = 123;
function fun () {
alert(a);
a = 456;
}
fun()
alert(a)
14.
var a = 123;
function fun (a) {
alert(a)
a = 456;
}
fun()
alert(a)
15.
var a = 123;
function fun (a) {
alert(a)
a = 456
}
fun()
alert(a)
16.
function makeNoSense (x) {
this.x = x;
}
makeNoSense(5);
console.log(x);
function test () {
this.x = 1;
alert(this.x);
}
test();
This
1.
var name = '222';
var a = {
name : '111',
say : function () {
console.log(this.name)
}
}
var fun = a.say;
fun() //???
a.say() //???
var b = {
name : '333',
say : function (fun) {
fun();
}
}
b.say(a.say); //???
b.say = a.say;
b.say() //???
2.
var val = 1 var obj = { val : 2, dbl : function() { var val = 45; console.log(this); //指向谁? this.val *= 2; console.log(this.val); //?? console.log(val); //?? } } var fn = obj.dbl fn()
3.
var x = 12; function test() { console.log(this.x) } test() //??
4.
var x = 12; function test() { console.log(this.x) } var obj={ x:45, ss:test } obj.ss() //??
5.
var x = 12; function test() { console.log(this.x) } var obj = { x:45, ss:function(){ console.log(this) test() } } obj.ss() //??
6.
var val = 1 var obj = { val : 2, dbl : function() { // var val = 45; console.log(this); // 指向谁 this.val *= 2; console.log(this.val); // ??? console.log(val); // ??? } } var ff = obj.dbl()
|