js基礎練習題(3)

2022-08-19 18:54:11 字數 2681 閱讀 7741

2.讀下面**,寫程式結果

function identify () 

function speek ()

var p1 =

var p2 =

identify.call(p1) // 輸出?

identify.call(p2) // 輸出?

speek.call(p1) // 輸出?

speek.call(p2) // 輸出?

3.讀下面**,寫程式結果

function foo (num) 

foo.count = 0

for (var i = 0; i < 10; i++)

}console.log('foo.count被呼叫了多少次?:'+foo.count)

4.this到底是什麼?

1、this的繫結和函式的宣告位置沒有關係,只取決於函式的呼叫方式

2、當乙個函式被呼叫時,會建立乙個活動記錄(有時候也稱為執行上下文)。這個記錄會包含函式在**呼叫、函式的呼叫方式、傳入的引數等資訊,this就是這個活動記錄的乙個屬性,會在函式執行的過程中用到

5.讀下面**,寫出執行結果(知識點,預設繫結)

function foo () 

var a = 2

foo() //輸出?

function foo ()

var a = 2

foo() // 輸出?

function foo () 

var a = 2

;(function () )()

6.讀下面**,寫出執行結果(知識點,隱式繫結)

function foo () 

var obj =

obj.foo() // 輸出?

function foo () 

var obj2 =

var obj1 =

obj1.obj2.foo() //輸出?

7.讀下面**,寫出執行結果(知識點,繫結丟失)

function foo () 

var obj =

var bar = obj.foo

var a = '我是全域性屬性a'

bar() //輸出?

function foo () 

function dofoo (fn)

var obj =

var a = '我是全域性變數a'

dofoo(obj.foo) //輸出?

function foo () 

var obj =

var a = '我是全域性變數a'

settimeout(obj.foo, 100) // 輸出

8.讀下面**,寫出執行結果(知識點,call)

function foo () 

var obj =

foo.call(obj) //輸出多少?

思考,如何解決繫結丟失問題?直接使用call方法能不能實現?

9.讀下面**,寫出執行結果(知識點,硬繫結)

function foo (something) 

var obj =

var bar = function ()

var b = bar(3) //輸出多少?

console.log(b) //輸出多少?

10.簡單寫乙個通用的輔助函式bind

function foo (something) 

function bind(fn, obj)

var obj =

var bar = bind(foo, obj)

var b = bar(3) // 2 3

console.log(b) // 5

11.讀下面**,寫出執行結果(知識點,new繫結)

function foo (a) 

var bar = new foo(2)

console.log(bar.a) //輸出多少?

12.讀下面**,寫出執行結果(知識點,箭頭函式的this)

function foo () 

} var obj1 =

var obj2 =

var bar = foo.call(obj1)

bar.call(obj2) //輸出多少?

function foo() , 100)

}var obj =

foo.call(obj) //輸出多少?

13.總結判斷this指向的方法

1. 函式是否在new中呼叫?如果是的話this指向的是新建立的物件

3.函式是否在某個上下文物件中呼叫?如果是的話,this指向的是那個上下文物件

4.如果都不是的話,使用預設繫結,如果在嚴格模式下,繫結到undefined,否則指向全域性物件

js基礎(二) 練習題

1.求字串 現最多字元及次數 var chars dsajhdkjahdkabgadkjasdgahd var o for var i 0 i else 以及將所有字元按屬性名歸類並計數 遍歷物件 var maxnum 0 var maxchar for var k in o console.log...

Python基礎練習題(3)

1.現在假如你和你的小夥伴一起玩報數遊戲,從某乙個人開始報數1,然後下乙個報數2。一共100人,如果報數是3的倍數就報 哈哈哈,如果報數是5的倍數就報 呵呵呵。如果既是3的倍數,又是5的倍數就報 哈呵哈呵哈呵。需要遍歷1 100 結果應該類似 0,1,2,哈哈哈,4,呵呵呵,6 14,哈呵哈呵哈呵,...

練習題 基礎練習

第一題 需求 1 計算 5 個月的生活大概開銷 spending 比如 rent 房租 800.00 mealcost 吃飯 900.00 clothingcosts 買衣服 300.00 othercosts 其他費用 300.00 public class dome1 第二題 需求 2 計算 1...