![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
js雷区
peerPier
这个作者很懒,什么都没留下…
展开
-
JS雷区:手写bind函数的相关问题
手写一个bind函数// 模拟 bindFunction.prototype.bind1 = function () { // 将参数拆解为数组 const args = Array.prototype.slice.call(arguments) // 获取 this(数组第一项) const t = args.shift() // fn1.bind(...) 中的 fn1 const self = this // 返回一个函数 re原创 2021-07-18 12:53:52 · 87 阅读 · 0 评论 -
JS雷区:函数作为返回值的调用
function fn1() { return function () { console.log("函数作为返回值"); }}fn1()();//调用function test() { return function () { console.log('函数作为返回值'); };}var res = test();console.log(res);res();...原创 2021-07-18 12:40:04 · 149 阅读 · 0 评论 -
js雷区:关于在声明函数末尾加括号的问题
(function (a) { console.log(a);})('b');//就相当于下面这种写法function c(a) { console.log(a);}c('b');//同样也可以这么写(function c(a) { console.log(a);})('b');// 三者都输出b原创 2021-07-18 10:12:59 · 228 阅读 · 0 评论 -
JS雷区:没法直接声明二维数组的解决方法
JavaScript似乎没法直接声明二维数组只能先声明一维再声明第二维如下:var a = new Array(4);for (let i = 0; i < a.length; i++) { a[i] = new Array(4);}for (let i = 0; i < 4; i++) { for (let j = 0; j < 4; j++) { a[i][j] = i * j; }}console.log(a);...原创 2021-07-16 17:13:33 · 76 阅读 · 0 评论 -
JS雷区:Set.has()对数组进行判断的问题
var arr = [[1, 2], [3, 4], [5, 6]];var set = new Set();arr.forEach(v => { set.add(v);})console.log(set);var tmp = [1, 2];console.log(set.has(tmp));//false这是因为,对于数组而言,内存地址指向的数组是不同的,必须深拷贝否则无法判定。...原创 2021-07-05 15:25:53 · 2853 阅读 · 1 评论 -
JS雷区:关于this指向的问题
var name = "window";var person = { name: "wenwen"};function sayName() { console.log(this.name);}sayName();//undefinedsayName.apply(person);//wenwensayName.apply();//undefined这里注意是原生js的编译结果如果在浏览器中执行jssayName();sayName.apply();应该返回的都是win原创 2021-07-02 11:53:42 · 39 阅读 · 0 评论 -
JS雷区:关于函数返回值简写
(a, b) => a - b//相当于return了a-b,相当于:(a, b) => {return a - b;}原创 2021-06-25 23:53:07 · 533 阅读 · 0 评论 -
JavaScript雷区:关于has(),get(),hasOwnProperty()
const hash = new Map([["rosen",1],[2,2]]);console.log(hash.has("rosen"));//trueconsole.log(hash.has(1));//falseconsole.log(hash.get("rosen"));//1console.log(hash.hasOwnProperty("rosen"));//false原创 2021-06-22 22:58:13 · 568 阅读 · 1 评论 -
JavaScript雷区:使用[]引用对象必须加双引号
var json = { a: { b: { c: 1, g: 22 }, e: { f: 1 } }, d: [1, 2],};var need = json["a"];console.log(need);// var obj = {// 'name': 'tom',// 'age': 23// };// var原创 2021-06-21 23:44:05 · 297 阅读 · 2 评论