日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

经典面试题(2):下面的代码将输出什么到控制台?

發布時間:2025/3/15 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 经典面试题(2):下面的代码将输出什么到控制台? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

緊接著昨天的面試題(1),我們今天繼續學習一道經典的面試題。

這道題一般會以筆試題的形式出現,題目如下,看代碼:

(function(){
var a = b = 3; })();

console.log(typeof a == 'undefined');
console.log(typeof b == 'undefined');

問:下面的代碼將輸出什么到控制臺,為什么?

這個時候,部分開發者就會認為,變量a和b都是聲明定義在匿名函數內部的,屬于函數內的局部變量,如果要在函數外部進行打印調用,a和b則為undefined。所以最后兩行代碼打印的結果都是true。

然而結果并非如此,之所以這么理解的原因是,他們把

var a = b = 3;

這句代碼錯誤地理解為等同于:

var b = 3;
var a = b;

而事實上,它等同于:

b = 3;
var a = b;

區別在哪里相信你也看出來來,這個時候的變量b聲明是不加關鍵字var的,也就是說變量b是全局變量(隱式全局變量)。

所以最后我們得到的結果分別是:true和false。

刁鉆一點的面試官可能會追問:在嚴格模式下(使用 use strict),又會是什么結果?

這里就要注意一點了,在嚴格模式下我們運行后得到的結果是:

報錯:b is not undefined

這也正是因為嚴格模式的這個特點,可以避免很多不必要的bug(全局變量污染)。

這道題的關鍵點在于理解javascript變量定義的特殊情況。希望大家緊記這一點,明天繼續下一道經典面試題。

熱門文章

原創教程

原創教程:《ECMAScript 6 教程》

附加習題:《ECMAScript 6 教程》測試題

原創教程:《Vue2.0基礎教程》

原創教程:《Vue2.0進階教程》

附加習題:《Vue2.0基礎教程》測試題

趣味職場

職場感悟:混口飯吃,談不上喜歡

學習困惑:工作用jquery,原生js知道就夠

職場焦慮:程序員回三四線城市能干啥?

感到迷茫:我很努力,但依然很迷茫

薪資待遇:那么點工資,能招到人嗎?

培訓出身:我是一個培訓出身的程序員

培訓費用:花1.8萬參加前端培訓,值嗎?

培訓簡歷:簡歷包裝成1-2年經驗,咋辦?

搞笑黑話:互聯網公司黑話,搞笑到爆

職業自由:程序員職業自由的6個階段

職場形象:在別人眼里,程序員是這樣的

合作推廣分割線

總結

以上是生活随笔為你收集整理的经典面试题(2):下面的代码将输出什么到控制台?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。