Javascript ING银行3个问题测试面试

Javascript ING银行3个问题测试面试,javascript,Javascript,我参加了一次测试面试,有三个问题我不知道答案: 编写一个函数,在字符之间插入下划线:这将成为t_h_i_s 编写一个将输出以下内容的函数: 我不是 l't'='l3t' l't'='l33t' l'g'=“l33g” l't'=='L3333T'如果字母未定义,则此函数仅返回迭代器函数,当字母被定义时,它将重复字符“3”n次 另外两个应该很容易理解 功能计数器{ 让计数=0 功能集成电路{ 如果字母类型==='未定义'{ 计数++ 返回式iter }否则{ 返回“l”+“3”。重复计数+字母

我参加了一次测试面试,有三个问题我不知道答案:

编写一个函数,在字符之间插入下划线:这将成为t_h_i_s

编写一个将输出以下内容的函数:

我不是 l't'='l3t' l't'='l33t' l'g'=“l33g”
l't'=='L3333T'如果字母未定义,则此函数仅返回迭代器函数,当字母被定义时,它将重复字符“3”n次

另外两个应该很容易理解

功能计数器{ 让计数=0 功能集成电路{ 如果字母类型==='未定义'{ 计数++ 返回式iter }否则{ 返回“l”+“3”。重复计数+字母 } } 返回iterletter } 控制台。logl't'='lt' 控制台。logl't'='l3t' 控制台。logl't'='l33t' 控制台。logl'g'='l33g' 控制台。logl't'=='L3333T' 编写一个函数,在字符之间插入下划线:这将成为t_h_i_s。 您希望编写一个函数,该函数迭代字符串中的所有字符,并在所有字符之间添加下划线

例如:

function underscoreString(str) {
    var result = str.charAt(0);

    for (var i=1; i<str.length; i++) {
        result += '_' + str.charAt(i);
    }

    return result;
}

console.log( underscoreString('this') );
为什么输出是正确的? 函数foo中的条形图未引用全局变量条形图。相反,它引用的是函数栏{}。这是因为,如评论中所述


因此,函数根本不涉及全局bar变量,它始终保持为真。

它实际上取决于预期的代码级别。如果您需要演示对算法的理解或如何使用javascript构造的知识

例如,第一个可以简单到:

function insertUnderscore(x){
    return x.split('').join('_');
}
第二个问题递归方法:

function l( end ){
    var acc = '';
    function iter( eChar ){
        if( typeof eChar === "undefined"){
            acc=acc+'3';
            return iter;
        }
        return 'l'+acc+eChar;
    }
    if(typeof end === "undefined"){
        acc = acc + '3';
        return iter;
    }
    return iter(end);
}
第三个问题: 函数bar{}实际上在本地范围内声明'bar',因此赋值bar=false作用于本地'bar'。

问题1

对字符串的开头使用负前瞻,对字符使用正前瞻。用下划线替换给定的空字符串

功能垫片{ 返回s.replace/?!^.?=/g'; }
控制台.日志间隔器'this';你的家庭作业需要问3个不同的问题。三,。都是琐碎的,你有没有尝试过研究什么?我在谷歌上搜索过,相信我,我没有找到任何可以解决这些问题的方法。这对你们来说很简单,为什么不把答案写出来,而不是写其他东西呢。我知道我是一个初学者,我在这里问的是答案,不是因为我说我是初学者。我想你把问题2和3混合在一起了?我想还值得一提的是,由于函数的提升,声明被移到了函数foo的开头,我在答案中添加了一个声明,谢谢@Maggie谢谢@Nina Scholz的解释。At 1必须是一个函数,而不是其他函数。其他人教我怎么做。
function insertUnderscore(x){
    return x.split('').join('_');
}
function l( end ){
    var acc = '';
    function iter( eChar ){
        if( typeof eChar === "undefined"){
            acc=acc+'3';
            return iter;
        }
        return 'l'+acc+eChar;
    }
    if(typeof end === "undefined"){
        acc = acc + '3';
        return iter;
    }
    return iter(end);
}