js函式筆試題

2021-10-02 19:50:01 字數 2349 閱讀 8994

一丶

var a = b =4;

(function()

)()console.

log(a)

;//4

console.

log(b)

;//6

在全域性作用域裡面a和b都被賦值為4,在進去立即執行函式後首先賦值的是給全域性的b=6,在給區域性作用域的var a = b,同樣是6,執行完了之後立即執行函式消失,最後要輸出的是全域性的a和b所以是4和6

二丶

function

foo(

)return

bar();

function

bar()}

alert

(foo()

);//8

在foo的作用域內,bar函式定義會被提前到作用域開始,bar被定義了兩次,後面一次會覆蓋前面一次的定義,因此foo()最後返回值是8。

三、

function

foo();

varbar

=function()

;}alert

(foo()

);//報錯

在foo函式作用域內被提公升的是普通變數bar,提公升的只是變數的宣告,此時bar的值還是undefined,在還未對bar進行賦值時,foo已經return結束,結果就是把undefined當成了函式呼叫,當然就報錯了

四、

var a =1;

functionb(

)}b(

);console.

log(a)

;//1

因為function a(){}在預編譯的時候想到於var a = function(){},所以b作用域裡面的a = 10 是區域性變數,而外面要輸出的全域性變數

五、

function

parent()

return

hoisted()

;}console.

log(

parent()

);//報錯

因為函式宣告和定義是一起提前的,又因為函式和變數的名字是一樣的,所以變數直接覆蓋了函式,最後return的是乙個函式,所以報錯

六、

console.

log(

'one');

settimeout

(function()

,0);

console.

log(

'three'

);

答案是one,three,two,因為定時器是最後執行

七、

const shape =

, perimeter:()

=>

2* math.pi*

this

.radius

};

shape.

diameter()

;// 20

shape.

perimeter()

;// nan

this關鍵字指向是它所在上下文的環境,也就是說this指向的是shape,所以結果是20。

箭頭函式沒有自己的this, 它的this是繼承而來; 預設指向在定義它時所處的物件(宿主物件),而不是執行時的物件, 定義它的時候,環境是window,window裡面有沒perimeter屬性,在加上在做算術運算的時候會把他隱式轉換成number,所以得出的結果是nan

varf=

functiong(

);typeofg(

);//報錯

因為function g()是函式表示式,只有乙個名字,不是乙個函式宣告,函式實際上是賦值到變數f,不是g。

var a =

1function

foo(

)alert

(a)}

foo(

)//2

因為foo的作用域內有var a = 2,所以宣告並賦值 var a = undefined,!undefined肯定是true,所以結果是2

十、

var box =

;object.

freeze

(box)

;var shape = box;

shape.x =20;

console.

log(shape)

// 5 10

object.freeze() 方法可以凍結乙個物件並不能新增、修改、刪除。因為box被凍結,而shape又被賦值box shape指向的也是凍結物件,所以x是5 y是10 。

一道關於C 繼承 虛函式 筆試題

include stdafx.h include stdio.h include string.h class father virtual call class son public father virtual call main output son call father name son ...

C語言常用函式 筆試常用

在公司筆試時經常需要呼叫或者實現c語言中的一些函式。主要包括 1 字串處理函式。2 記憶體操作函式。字串處理函式 size t strlen const char s 功能 計算指定指定字串s的長度,不包含字串結束符 0 引數 返回值 字串s的長度,size t為unsigned int型別 cha...

JS筆試題分析 1

要求 1 只能在指定的位置填寫自己的 本檔案裡的其他 不能修改 2 所有題目都不允許新增全域性變數名 3 本檔案應該能在firebug的console裡正常執行,並輸出結果 4 最優化,效率最高 5 注釋明確 var each function obj,fn try console.group da...