文章摘要 FakeGPT
加载中...|
2025前端最新面试题-输出篇js
数组、对象、字符串输出
[10, 20, 30].map(parseInt) 返回结果是什么?
要点
- map 的参数和返回值
- parseInt 参数和返回值
javascript
const res = [10, 20, 30].map(parseInt)
console.log(res)
// 拆解
[10, 20, 30].map((num, index) => {
return parseInt(num, index)
})
// 类似于 执行
// parseInt(10, 0) parseInt(20, 1) parseInt(30, 2)
// 执行结果 [10, NaN, NaN]
// 解析十进制字符串
const num1 = Number.parseInt('123');
console.log(num1); // 输出: 123
// 解析十六进制字符串
const num2 = Number.parseInt('0xFF', 16);
console.log(num2); // 输出: 255
// 解析八进制字符串
const num3 = Number.parseInt('077', 8);
console.log(num3); // 输出: 63
promise
【建议星星】要就来45道Promise面试题一次爽到底(1.1w字用心整理) - 掘金 (juejin.cn)
作用域与闭包
作用域
第1题
javascript
let i
for (i = 1; i <= 3; i++) {
setTimeout(function(){
console.log(i)
}, 0)
}
// 执行结果 打印 3 个 4
第2题
javascript
let a = 100
function test() {
alert(a)
a = 10
alert(a)
}
test()
alert(a)
// 执行结果, 弹出 3个弹窗 依次显示数字为 100 10 10
闭包
第1题
以下代码输出什么?
javascript
for (var i = 0; i < 10; i++) {
setTimeout(() => {
console.log(i)
})
}
// 输出 10 个 10
将上面代码修改下, 输出结果为 0 ~ 9
javascript
// 方法一 闭包
for (var i = 0; i < 10; i++) {
(function (i) {
setTimeout(() => {
console.log(i)
})
})(i)
}
javascript
for (let i = 0; i < 10; i++) {
setTimeout(() => {
console.log(i)
})
}
扩展: let 有块作用域, var 没有块作用域
第2题
读代码
javascript
const User = {
count: 1,
getCount: function() {
return this.count
}
}
console.log(User.getCount()) // 1
const func = User.getCount
console.log( func() ) // undefined
this 的指向问题
只有执行阶段才能判断 this 的指向
在对象函数执行时, this 指向当前对象
this 指向执行阶段才能知道
自由变量的查找, 要在函数定义的地方
2025前端最新面试题-输出篇jshttps://damaicoding.fun/posts/2025/2025前端最新面试题/2025前端最新面试题-输出篇js
赞赏博主
评论 隐私政策