Silencer-1984 / Summary-of-front-end-work

总结包括一切关于前端学习的东西,面试、学英语、开发规范
0 stars 0 forks source link

邪门外道 #28

Open Silencer-1984 opened 3 years ago

Silencer-1984 commented 3 years ago

map与parseInt

[1,2,3].map(parseInt) // [ 1, NaN, NaN ]

[1,2,3].map(parseInt)相当于
[1,2,3].map((item, index)=>{
    parseInt(item, index)
})

函数表达式和函数声明

函数表达式相当于赋值一个变量不能享受变量提升,函数声明可以。

fn()
function fn(){
    console.log(123)
}
fn1() // 报错
const fn1 = function(){
    console.log(123)
}

new Object 和 Object.create()

var a = new Object(b) 
// 相当于想对于b的浅拷贝
a = b 

var a =  Object.create(b)
// 相当于 将a的原型指向了b,用于继承原来的对象的方法但是不污染原来对象的原型
a.__proto__ = b 

欺诈题

let i 
for (let i=1; i<=3; i++) {
    setTimeout(()=>{
        console.log(i)
    }, i)
}

// 1, 2, 3
这是因为 JavaScript 中的 let 关键字创建了一个块作用域变量,这意味着每次 for 循环迭代都会创建一个新的作用域

最大值

function max(){
    const nums = Array.prototype.slice.call(arguments)
    let max = nums[i]
    nums.forEach(element => {
        if(element>max){
            max =n 
        }
    });
    return max
}
// 或者
Math.max()