|
|
前言
?? 作者主頁:https://hongweblog.blog.csdn.net/
?? 簡介:沒有什么遠大的理想,做自己喜歡的事情就好~
?? 掃碼關注微信公眾號: >>> Dianc小助手 <<<
?? 前端學習路線圖、面試刷題、二次元壁紙珍藏,Dianc小助手后續會持續完善,
?? 大家的積極參與和討論,是Dianc推送更多優質內容的動力~
目錄
- 前言
- 第一題
- 原始碼:
- 解題思路
- 第二題
- 原始碼:
- 解題思路
- 熱門文章推薦:
前言:
題目來源于騰訊課堂的渡一教育的題目9-21-22,
為了方便做題,不會像之前那樣直接放圖片,這次我會把原始碼發出來(如果不是選擇題,我會直接放出答案),小伙伴們如果做不出可以先試著輸出一下,如果不懂可以看看我自己總結的解題思路,
第一題
說出下列的執行結果,并解釋原因
原始碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var fullName = 'a';
var obj = {
fullName: 'b',
prop: {
fullName: 'c',
getFullName: function() {
return this.fullName;
}
}
}
console.log(obj.prop.getFullName());
var test = obj.prop.getFullName;
console.log(test());
</script>
</body>
</html>
解題思路
首先這題考察this的指向,那么我們看清楚第一次控制臺輸出的時候函式是直接物件執行,所以第一次輸出的fullName應該指向父級prop的fullName,即c,
第二次并不是直接使用物件執行函式,所以應該翻譯成window.test();那么全域的fullName即是a,所以答案就出來了,
第二題
說出下列的執行結果,并解釋原因
原始碼:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var foo = {
bar: function() {
return this.baz;
},
baz: 1
}
console.log(typeof(f = foo.bar)());
</script>
</body>
</html>
解題思路
首先我們需要知道輸出的時候后面有(),說明要執行函式,此時我們發現f其實是全域的,所以呼叫起來應該是window.f(),那么foo.bar的this應該就指向window,往上找不到bar的屬性,所以應該輸出undefined,
|
|
熱門文章推薦:
🥇 這樣配置學習VSCode,寫前端代碼想不快都難(??精心準備多動圖,建議收藏噢~??)
🥈 還不會搭建個人博客?手把手教你用Wordpress搭建只屬于你的世界~
🥉 Hexo的準備作業(手把手教你搭建Node.js/Git環境)

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/303329.html
標籤:其他
下一篇:Vue實作商品放大鏡效果
