Genzhen
Genzhen
在 js 中经常会出现嵌套调用这种情况,如 a.b.c.d.e,但是这么写很容易抛出异常。你需要这么写 a && a.b && a.b.c && a.b.c.d && a.b.c.d.e,但是显得有些啰嗦与冗长了。特别是在 graphql 中,这种嵌套调用更是难以避免。 这时就需要一个 get 函数,使用 get(a, 'b.c.d.e') 简单清晰,并且容错性提高了很多。 1)代码实现 ```js function get(source, path, defaultValue = undefined) {...
```js //匹配'.'或者'[]'的深层属性 const reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/ //匹配普通属性:数字+字母+下划线 const reIsPlainProp = /^\w*$/ const reEscapeChar = /\\(\\)?/g const rePropName = RegExp( //匹配没有点号和括号的字符串,'\\]'为转义']' 例如:'a' '[^.[\\]]+' + '|' + // Or match property names...
**答案** false **解析** - 按常规的思路,这段代码应该输出 true,毕竟最小值小于最大值。但是却输出 false - MDN 相关文档是这样解释的 - Math.min 的参数是 0 个或者多个,如果多个参数很容易理解,返回参数中最小的。如果没有参数,则返回 Infinity,无穷大。 - 而 Math.max 没有传递参数时返回的是-Infinity.所以输出 false
> 个人感觉这题意义不大。。 对于知识来说,多了解一点总没有坏处
扫描下方二维码,获取答案以及详细解析,同时可解锁800+道前端面试题。
链式调用的核心就在于调用完的方法将自身实例返回 1)示例一 ```js function Class1() { console.log('初始化') } Class1.prototype.method = function(param) { console.log(param) return this } let cl = new Class1() //由于new 在实例化的时候this会指向创建的对象, 所以this.method这个方法会在原型链中找到。 cl.method('第一次调用').method('第二次链式调用').method('第三次链式调用') ``` 2)示例二 ```js var obj...
**答案** 1 undefined **解析** 条件判断为假的情况有:0,false,'',null,undefined,未定义对象。函数声明写在运算符中,其为true,但放在运算符中的函数声明在执行阶段是找不到的。另外,对未声明的变量执行typeOf不会报错,会返回undefined
> 结果应该是NaN吧,1+undefined=NaN typeof 返回的是字符串哦