参考资料:
9.请用js去除字符串空格
去除所有空格
str.replace(/\s/g, ‘’)
去除两边空格
str.replace(/^\s+|\s+$/g, ‘’)
// 原生方法
str.trim()
10.创建对象有几种方法
- 字面量
const obj = {a: 1}
- 构造函数
function Obj(val) {
this.a = val
}
const obj = new Obj(1)
- Object.create
const obj = Object.create({a: 1})
11.null和undefined的区别
null 表示一个对象是“没有值”的值,也就是值为“空”
undefined 表示一个变量声明了没有初始化(赋值)
undefined 和 null 在if语句中,都会被自动转为false
undefined 不是一个有效的JSON,而 null 是
undefined 的类型(typeof)是 undefined
null 的类型(typeof)是 object
Javascript将未赋值的变量默认值设为 undefined
Javascript从来不会将变量设为 null。 它是用来让程序员表明某个用var声明的变量时没有值的
12.异步求和
要求
假设有一台本地机器,无法做加减乘除运算,因此无法执行 a + b、a+ = 1 这样的 JS 代码,然后我们提供一个服务器端的 HTTP API,可以传两个数字类型的参数,响应结果是这两个参数的和,这个 HTTP API 的 JS SDK(在本地机器上运行)的使用方法如下:
asyncAdd(3, 5, (err, result) => {
console.log(result); // 8
});
模拟实现:
function asyncAdd(a, b, cb) {
setTimeout(() => {
cb(null, a + b);
}, Math.floor(Math.random()*100))
}
现在要求在本地机器上实现一个 sum 函数,支持以下用法:
(async () => {
const result1 = await sum(1, 4, 6, 9, 1, 4);
const result2 = await sum(3, 4, 9, 2, 5, 3, 2, 1, 7);
const result3 = await sum(1, 6, 0, 5);
console.log([result1, result2, result3]); // [25, 36, 12]
})();
要求 sum 能在最短的时间里返回以上结果
实现
function asyncAdd(a, b, cb) {
setTimeout(() => {
cb(null, a + b);
}, Math.floor(Math.random()*100))
}
function sum(…args) {
const result = []
function _su

本文汇总了针对初中级前端开发者的33道基础面试题,涵盖字符串空格处理、对象创建、null与undefined的区别、异步求和、模块化(CommonJS与ES module)、预加载与预获取(preload和prefetch)、脚本加载特性(preload、defer)、对象与Map的区别、WeakMap和WeakSet的原理、HTML5语义化以及CSS和JS标签的最佳实践。详细解答了每道题目,适合前端开发者准备面试使用。
&spm=1001.2101.3001.5002&articleId=136767412&d=1&t=3&u=bf994be96176481b856694da9d32f146)
2231

被折叠的 条评论
为什么被折叠?



