フロントエンド面接でよくある面接の質問

トピック

var m=1,j=k=0;
function add(n){
    return n = n+1;
}

y = add(m);

function add(n){
    return n = n+3;
}
z=add(m);

console.log(y,z)

4,4

トピック

删除arr数组中第i个元素(重第一个元素开始)
let arr = [1,2,3,4]
// arr.splice(i-1,1)

トピック

var x = new Boolean(false);
console.log(x) //都是 true
if(x){
    alert('hi');
}
var y=Boolean(0);
console.log(y)//0 false 1 true
if(y){
    alert('hello')
}


hi

トピック

var msg='hello';

for(var i=0;i<10;i++){
    var msg = 'hello'+i*2+i;
}

console.log(msg) //hello189

トピック

function* generator() {
  yield 1;
  yield 2;
  yield 3;
}

const gen = generator(); // "Generator { }"

console.log(gen.next().value); // 1
console.log(gen.next().value); // 2
console.log(gen.next().value); // 3

トピック

変数a=b=3;

実際の拡張 

b=3;

変数a=b;

主観的ではない

変数a=3;

var b=3;

の略記

var a,b;
(function(){
    console.log(a);
    console.log(b);
    var a=b=3;
    console.log(a);
    console.log(b);
})()

console.log(a);
console.log(b);

> undefined
> undefined
> 3
> 3
> undefined
> 3

トピック

if(!"a" in window){
    var a=1;
}
console.log(a)//undefined

トピック

文字列の配列内で最も長い共通プレフィックスを見つける関数を作成します。

输入: ["花","流れ","飛行"]

出力: "fl"

最初の文字列の各文字が次の文字と等しいかどうかを
順番に判断します。等しくない場合は、以前に保存した
文字を返します。等しい場合は、この文字を wer に追加します

ps: ここのループに注意してください。外側の層は最初の文字列の文字数を表し、内側の層は最初の文字列と比較する文字列の数を表します。

var longestCommonPrefix = function(strs) {
    let wer = ''
    for (let j = 0; j < strs[0].length; j++) {
        for (let n = 0; n < strs.length-1; n++) {
            if (strs[n+1].length > j) {
                if (strs[0][j] !== strs[n+1][j]) {
                    return wer 
                }
            } else {
                return wer 
            }
        }
        wer += strs[0][j]
    }
    return wer 
};

トピック

整数の配列 nums と整数のターゲット値 target が与えられた場合、配列内で合計がターゲット値 target となる 2 つの整数を見つけて、それらの配列の添字を返してください。

入力: nums = [2,7,11,15]、ターゲット = 9
出力: [0,1]
説明: nums[0] + nums[1] == 9、戻り値 [0, 1] 

let twoSum = function (nums, target) {
    for (let i = 0; i < nums.length; i++) {
        let iItem = nums[i]
        console.log(iItem)
        for (let j = 0; j < nums.length; j++) {
            if (j == i) {
                continue;
            }
            let jItem = nums[j]
            console.log(jItem)
            if (jItem + iItem == target) {
                return [i, j]
            }
        }
    }
};
//运行结果 [0,1]

トピック

文字列 s が与えられた場合、繰り返し文字を含まない最長の部分文字列の長さを見つけてください。

  • 入力: s = "abcabcbb"
    出力: 3
    説明: 繰り返し文字を含まない最長の部分文字列は「abc」であるため、その長さは 3 です。
  • 例 2:
    入力: s = "bbbbb"
    出力: 1
    説明: 繰り返し文字を含まない最長の部分文字列は "b" であるため、その長さは 1 です。
var lengthOfLongestSubstring = function(s) {
    // minIndex: 字符串某字母的最小index
    let minIndex = 0
    // len: 不重复字符串的最大长度
    let len = 0
    for(let i = 0; i < s.length; i++) {
        s.indexOf(s[i], minIndex) < i ? 
        minIndex = s.indexOf(s[i], minIndex) + 1 : len = Math.max(len, i - minIndex + 1)
    }
    return len
};

Guess you like

Origin blog.csdn.net/JackieDYH/article/details/130945703