回心转意。 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。
回心转意。 2022-05-04 13:50:18
function f(x){ return g(x) + 1; }
我想问下为啥return g(x)和return g(x)+1,前者的执行上下文栈会先push再pop,后者就不会?
- 共 1 页
- 1
第 71 题: 实现一个字符串匹配算法,从长度为 n 的字符串 S 中,查找是否存在字符串 T,T 的长度是 m,若存在返回所在位置