回心转意

文章 评论 浏览 28

回心转意。 2022-05-04 13:56:22
const strA = "qwertyuiopasfghjkasdflzxcvbnm";

const strB = "asdf";

function findStr(str1, str2) {
    const len = str2.length;
    const indexArr = [];
    str1.split("").forEach((v, i) => {
        if (v === str2[0]) indexArr.push(i);
    });
    let result;
    if (!indexArr.length) return "不存在相同的字符串";
    indexArr.forEach(idx => {
        result = str1.slice(idx, idx + len) === str2 ? idx : null;
    });
    return result;
}

console.log(findStr(strA, strB));

第 71 题: 实现一个字符串匹配算法,从长度为 n 的字符串 S 中,查找是否存在字符串 T,T 的长度是 m,若存在返回所在位置

回心转意。 2022-05-04 13:55:28

一个说toString 后面就跟着说toString

 let b = new String('1') // String{'1'} 
String.prototype.toString = function () {
   console.log('toString')
 }
 String.prototype.valueOf = function () {
   console.log('valueOf')
 }
 console.log(a == b) 
打印结果 
valueOf
false //由于valueOf被改写 所以是false 如果将自定义的valueOf去掉 就会为true

所以看出 a == b =>a == b.valueOf()

a == b首先调用的的确是valueOf, 但是对象的valueOf返回的是对象本身, 所以会调用toString转换为基本类型。但是你重写了valueOf,导致valueOf返回的是undefined,a == undefined当然是false。

第 106 题:分别写出如下代码的返回值

回心转意。 2022-05-04 13:54:54

写的真好

第 14 题:情人节福利题,如何实现一个 new

回心转意。 2022-05-04 13:50:18

function f(x){ return g(x) + 1; }
我想问下为啥return g(x)和return g(x)+1,前者的执行上下文栈会先push再pop,后者就不会?

JavaScript 专题之递归

更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文