js經(jīng)典面試題

<script>

? ? ? ? /console.log(a) ?//undefined??

? ? ? ?var a = 12

? ? ? ? function fn() {

? ? ? ? ? ? console.log(a) ?//undefined

? ? ? ? ? ? var a = 13

? ? ? ? }

? ? ? ? fn()

? ? ? ? console.log(a) ?//12?

? ? ? ? ?console.log(a) ?//undefined

? ? ? ? var a = 12

? ? ? ? function fn() {

? ? ? ? ? ? //注意:當(dāng)前作用域里面沒有a惰赋,就會到上一層作用域里面去尋找a

? ? ? ? ? ? console.log(a) //12

? ? ? ? ? ? a = 13

? ? ? ? }

? ? ? ? fn()

? ? ? ? console.log(a) //13?

? ? ? ? // console.log(a) ?//報錯

? ? ? ? let a = 12 ?//let定義的變量呵恢,不存在提升

? ? ? ? function fn() {

? ? ? ? ? ? // console.log(a) ?//報錯默刚,注意:只要是當(dāng)前作用域里面的存在的變量,就不會去上層作用域找了

? ? ? ? ? ? let a = 13 ?//let定義的變量昧互,不存在提升

? ? ? ? }

? ? ? ? fn()

? ? ? ? console.log(a)?

? ? ? ? // console.log(a) ?//報錯

? ? ? ? a = 12 ? // 定義變量可以不使用任何關(guān)鍵字,但是在定義該變量之前伟桅,不能使用該變量(這是一種不規(guī)范寫法)

? ? ? ? function fn() {

? ? ? ? ? ? // console.log(a) ?//報錯

? ? ? ? ? ? let a = 13

? ? ? ? }

? ? ? ? fn()

? ? ? ? console.log(a)?

? ? ? ? ?var foo = 1

? ? ? ? function bar() {

? ? ? ? ? ? if (!foo) {

? ? ? ? ? ? ? ? var foo = 10 ?//這個foo會提升到當(dāng)前作用域的頂部定義

? ? ? ? ? ? }

? ? ? ? ? ? console.log(foo) ?//10

? ? ? ? }

? ? ? ? bar()?

? ? ? ? var foo = 1

? ? ? ? function bar() {

? ? ? ? ? ? if (!foo) {

? ? ? ? ? ? ? ? foo = 10

? ? ? ? ? ? }

? ? ? ? ? ? console.log(foo) ? //1

? ? ? ? }

? ? ? ? bar()?

? ? ? ? var n = 0

? ? ? ? function a() {

? ? ? ? ? ? var n = 10 ? //11 ? 12

? ? ? ? ? ? function b() {

? ? ? ? ? ? ? ? n++ ?//11 ?12

? ? ? ? ? ? ? ? console.log(n) ?//11 ?12

? ? ? ? ? ? }

? ? ? ? ? ? b()

? ? ? ? ? ? return b

? ? ? ? }

? ? ? ? var c = a()

? ? ? ? c()

? ? ? ? console.log(n) ?// 0?

? ? ? ? var a = 10

? ? ? ? var b = 11

? ? ? ? var c = 12

? ? ? ? function test(a) {

? ? ? ? ? ? a = 1

? ? ? ? ? ? var b = 2 ? //方法里面的作用域b是2

? ? ? ? ? ? c = 3 ?//會將外層作用域的c的值換掉

? ? ? ? }

? ? ? ? test(10)

? ? ? ? console.log(a) ?// 10

? ? ? ? console.log(b) ?// 11

? ? ? ? console.log(c) ?// 3?

? ? ? ? ?// in關(guān)鍵字敞掘,用于檢查一個屬性是否包含在指定的對象中,如果包含就返回true

? ? ? ? if (!('a' in window)) {

? ? ? ? ? ? var a = 10

? ? ? ? }

? ? ? ? console.log(a)?

? ? ? ? var a = 4

? ? ? ? function b(x, y, a) {

? ? ? ? ? ? console.log(a) ?// 打印形參的值 3

? ? ? ? ? ? arguments[2] = 10 ?// 又將形參a改成而來 10

? ? ? ? ? ? console.log(a) ?// 10

? ? ? ? }

? ? ? ? a = b(1, 2, 3) ?//b方法楣铁,沒有返回任何內(nèi)容玖雁,默認(rèn)返回undefined

? ? ? ? console.log(a) ?//undefined?

? ? ? ? ?var a = 9

? ? ? ? function fn() {

? ? ? ? ? ? // 1 2

? ? ? ? ? ? a = 0 ?

? ? ? ? ? ? return function (b) {

? ? ? ? ? ? ? ? // ? ? 5 + 1

? ? ? ? ? ? ? ? // ? ? 5 + 0

? ? ? ? ? ? ? ? return b + a++

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? var f = fn()

? ? ? ? console.log(f(5)) ? //5

? ? ? ? console.log(fn()(5)) ?//5

? ? ? ? console.log(f(5)) ? //6

? ? ? ? console.log(a) //2?

? ? ? ? /* var ary = [1, 2, 3, 4]

? ? ? ? function fn(ary) {

? ? ? ? ? ? ary[0] = 0 ? // 修改了原數(shù)組中第一位的值

? ? ? ? ? ? ary = [0] ? ?// arr形參重新賦值一個新的數(shù)組

? ? ? ? ? ? ary[0] = 100 // 形參arr再修改第一個位置的值,就跟原數(shù)組沒關(guān)系

? ? ? ? ? ? return ary

? ? ? ? }

? ? ? ? var res = fn(ary) ? // [100]

? ? ? ? console.log(ary) ? ?// [0,2,3,4]

? ? ? ? console.log(res) ? // [100] */

? ? ? ? ?// ? ? ? ? ?10->11

? ? ? ? function fn(i) {

? ? ? ? ? ? // ? ? ? ? ? ? ? 30

? ? ? ? ? ? return function (n) {

? ? ? ? ? ? ? ? console.log(n + i++) ?//41

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? var f = fn(10)

? ? ? ? f(20) ? //30

? ? ? ? fn(20)(40) ?//60

? ? ? ? fn(30)(50) ?//80

? ? ? ? f(30) //41?

? ? ? ? var num = 10 ?//60 ?65

? ? ? ? var obj = { num: 20 } ?// 30

? ? ? ? // ? ? ? ? ? ? ? ? ? 20 ?21

? ? ? ? obj.fn = (function (num) {

? ? ? ? ? ? //this->window

? ? ? ? ? ? this.num = num * 3

? ? ? ? ? ? num++ // 21

? ? ? ? ? ? // ? ? ? ? ? ? ? 10

? ? ? ? ? ? return function (n) {

? ? ? ? ? ? ? ? this.num += n ?// 30

? ? ? ? ? ? ? ? num++ ?//22 23

? ? ? ? ? ? ? ? console.log(num) ?//22 23

? ? ? ? ? ? }

? ? ? ? })(obj.num)

? ? ? ? var fn = obj.fn

? ? ? ? console.log(fn) ?//function(n){this.num +=n;num++;console.log(num)}

? ? ? ? fn(5) ?// 22

? ? ? ? obj.fn(10) //23

? ? ? ? console.log(num, obj.num) //65 30?

? ? ? ? var fullName = 'language'

? ? ? ? var obj = {

? ? ? ? ? ? fullName: 'javascript',

? ? ? ? ? ? prop: {

? ? ? ? ? ? ? ? getFullName: function () {

? ? ? ? ? ? ? ? ? ? return this.fullName

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? console.log(obj.prop.getFullName()) ?// undefined

? ? ? ? // 將getFullName方法傳給test

? ? ? ? var test = obj.prop.getFullName

? ? ? ? console.log(test()) ?// language?

? ? ? ? // var定義的變量會成為window的屬性

? ? ? ? var name = 'window'

? ? ? ? var Tom = {

? ? ? ? ? ? name: "tom",

? ? ? ? ? ? show: function () {

? ? ? ? ? ? ? ? console.log(this.name) ?// window

? ? ? ? ? ? },

? ? ? ? ? ? wait: function () {

? ? ? ? ? ? ? ? var fun = this.show

? ? ? ? ? ? ? ? fun()

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? Tom.wait() ?// window

? ? </script>

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盖腕,一起剝皮案震驚了整個濱河市赫冬,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赊堪,老刑警劉巖面殖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哭廉,居然都是意外死亡脊僚,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門遵绰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來辽幌,“玉大人,你說我怎么就攤上這事椿访∥谄螅” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵成玫,是天一觀的道長加酵。 經(jīng)常有香客問我,道長哭当,這世上最難降的妖魔是什么猪腕? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮钦勘,結(jié)果婚禮上陋葡,老公的妹妹穿的比我還像新娘。我一直安慰自己彻采,他們只是感情好腐缤,可當(dāng)我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布捌归。 她就那樣靜靜地躺著,像睡著了一般岭粤。 火紅的嫁衣襯著肌膚如雪惜索。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天绍在,我揣著相機與錄音门扇,去河邊找鬼。 笑死偿渡,一個胖子當(dāng)著我的面吹牛臼寄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播溜宽,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼吉拳,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了适揉?” 一聲冷哼從身側(cè)響起留攒,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嫉嘀,沒想到半個月后炼邀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡剪侮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年拭宁,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓣俯。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡杰标,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出彩匕,到底是詐尸還是另有隱情腔剂,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布驼仪,位于F島的核電站掸犬,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏绪爸。R本人自食惡果不足惜登渣,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望毡泻。 院中可真熱鬧,春花似錦粘优、人聲如沸仇味。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丹墨。三九已至廊遍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贩挣,已是汗流浹背喉前。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留王财,地道東北人卵迂。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像绒净,于是被迫代替她去往敵國和親见咒。 傳聞我的和親對象是個殘疾皇子钦铁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容