js程式設計面試題總結。

2021-10-10 21:25:53 字數 3801 閱讀 3819

~function fn();

function add(n)

;function minus(n);[

"add", 'minus'

].foreach(item =

>

) //另一種寫法

// number.prototype.add = add

// number.prototype.minus = minus}(

);console.log((

5).add(

3).minus(2))

let str =

'可以用replace()方法來匹配字串,touppercase()/tolowercase()'

;str = str.replace(/[a-za-z]/g, (text)

=>);

console.log(str)

;//可以用replace(

)方法來匹配字串,touppercase(

)/tolowercase(

)

思路:迴圈原始字串中的每一項,讓每一項從當前位置向後擷取t.length個字元,然後和t比較,如果不一樣,繼續迴圈,如果一樣返回當前索引即可(結束迴圈)

) 方法用於檢索字串中的正規表示式的匹配。1.flat()陣列扁平化: arr= arr.flat(infinity)//將多層陣列扁平化為一層陣列

2.陣列去重的方法: 直接用arr = new set(arr)//es6提供的陣列去重方法。

3.將物件轉化為陣列: arr = array.from(arr)//es6 直接將物件轉為陣列。

1.首先,乙個等號是賦值,兩個等號是比較,三個等號是絕對比較。

let a=

}if(a==1&&a==2&&a==3)

else

let obj =

obj.push(1);

obj.push(2);

console.log(obj);

1.首先分析push:array.prototype.push方法,

push()就是在乙個陣列後面新增乙個數。

它的實現底層實現原理是:

//push實現原理

var arr=

[1,2,3,4,5]

function push(val)

push(10)

;console.log(arr)

;//[1,2,3,4,5,10]

//本題的解法:

let obj =

obj.push(1)

;obj.push(2)

;console.log(obj)

/*列印的結果是

obj*/

1.用es6新提供的new set()方法可以去重。

2.用for迴圈,拿到陣列的第一項與後面的每一項進行比較,如如果有,則刪除,但會存在效能問題,這會導致陣列塌陷,也就是會使得陣列序號重新,可以通過拿到陣列的最後一位賦值 給當前匹配的,然後再讓陣列減一。

3.用obj的物件方法,物件鍵值對。

4.先讓陣列排序,讓後再比較相鄰的項。

1.用es6新提供的new set(

)方法可以去重。

var ary =

[11,34,12,34,12,54,100]

;ary = new set(ary)

;//乙個物件ary

ary =

[...ary]

;//...展開運算子轉為陣列

ary = array.from(ary)//也可以用array提供的from方法,將乙個類陣列物件或者可遍歷物件轉換成乙個真正的陣列。

console.log(ary)

;

2.for迴圈的方法。

1)var ary =

[11,34,12,34,12,54,100]

;for(let i=0;i}console.log(ary);2)

var ary =

[11,34,12,34,12,54,100]

;for(let i=0;i}console.log(ary)

;

1.es6提供的方法 flat(infinity);

2.arr.tostring().spilt(』,』).map(item=>parsefloat(item));

3.遞迴

function flatten(arr)

else})

;return res;

}var arr =

[1,2,3,[2,1,2,[1,5,5]]]

; arr = flatten(arr)

console.log(arr)

斐波那契數列為:[1,1,2,3,5,8,13,21,…]

//f[1,1,2,3,5,8,13,21,34,...]

function f(n)

;let arr =

[1,1],//建立乙個陣列

i = n+1-2;//i為索引值,第三項開始的索引值

while(i>0)

return arr[arr.length-1];}

console.log(f(8))

;

例如: 輸入15; 結果:[[1,2,3,4,5],[4,5,6],[7,8]];

/*例如: 輸入15; 

結果:[

[1,2,3,4,5],[4,5,6],[7,8]];

*/function createarr(n, lent)

temp.push(item);/

/將item每一項push給temp陣列

return item;

//item賦值給了陣列arr

}) return arr;

};function fn(conunt)else if

(total ==

= conunt)}}

return result;

}console.log(fn(15))

;//[

[1,2,3,4,5],[4,5,6],[7,8]

]console.log(fn(1))

;//[

]console.log(fn(6))

;//[1,2,3]

console.log(fn(10))

;//[1,2,3,4]

js面試題總結

1 預編譯 script varx 1 y z 0 function add n y add x 2 function add n z add x 問執行完畢後 x,y,z 的值分別是多少?x 1 y undefined z undefined 函式表示式沒有return 所以為undefined ...

js 面試題總結

1.typeof返回資料型別有哪些 number,string,boolean,object,undefined,function 2.強制型別轉換有哪些?隱式型別轉換有哪些?轉換為string tostring 轉換為number number parseint parsefloat 轉換為boo...

程式設計面試題總結

這裡的堆和棧指的是記憶體裡面的堆區和棧區。c語言的記憶體模型可以分為5類 棧區 堆區 靜態區 常量區 區。棧區stack 存放函式的引數值,區域性變數等等。由編譯器自動分配和釋放 可以回憶程式設計的時候好像區域性變數不需要特別的申請記憶體和釋放 通常在函式執行結束之後釋放。其操作方式類似於資料結構中...