【前端面试题】JavaScript 核心知识点解析(第二十二题到第六十一题)

第二十三题解析:数组与数据处理

1. filter方法

  • 作用:创建一个新数组,包含通过指定函数测试的所有元素
  • 语法array.filter(callback(element[, index[, array]])[, thisArg])
  • 特点
    • 不改变原数组
    • 返回符合条件的新数组
    • 回调函数返回布尔值
javascript 复制代码
const numbers = [1, 2, 3, 4, 5];
const evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // [2, 4]

第二十四题解析:网络请求

1. axios

  • 基于Promise的HTTP客户端,用于浏览器和Node.js
  • 支持请求拦截、响应拦截、取消请求等功能
javascript 复制代码
// 基本使用
axios.get('/api/data')
  .then(response => console.log(response.data))
  .catch(error => console.error(error));

2. xsrf

  • 跨站请求伪造(Cross-Site Request Forgery)防护
  • axios自动处理XSRF令牌,通过配置xsrfCookieNamexsrfHeaderName

3. fetch

  • 现代浏览器内置的HTTP请求API,基于Promise
  • 语法更简洁,但功能相对基础
javascript 复制代码
fetch('/api/data')
  .then(response => response.json())
  .then(data => console.log(data));

4. CORS

  • 全称:Cross-Origin Resource Sharing(跨域资源共享)

  • 作用:允许不同域的资源相互访问的机制

  • 核心概念

    • origin:请求来源域
    • resource:被请求的资源
    • sharing:共享机制
  • 相关HTTP头:

    • Access-Control-Allow-Origin:允许访问的源
    • Access-Control-Allow-Headers:允许的请求头
    • Access-Control-Allow-Methods:允许的请求方法

第二十五题解析:前端构建工具

1. loader

  • 在Webpack等构建工具中用于转换文件的工具
  • 例如:babel-loader转换ES6+代码,css-loader处理CSS文件

2. pack

  • 打包(packaging)的缩写,指将多个文件合并为一个或多个输出文件
  • 常见工具:Webpack、Parcel、Rollup

第二十六题解析:模板与编译

1. template

  • 模板,定义视图结构的字符串或文件
  • 在Vue、Angular等框架中广泛使用
html 复制代码
<!-- Vue模板示例 -->
<template>
  <div>{{ message }}</div>
</template>

2. compiler

  • 编译器,将模板或高级代码转换为可执行代码
  • Vue的模板编译器将模板转换为渲染函数

第二十七题解析:浏览器对象

  • 浏览器的导航对象,包含浏览器相关信息
  • 常用属性:userAgent(浏览器标识)、language(语言)
javascript 复制代码
console.log(navigator.userAgent); // 浏览器信息
console.log(navigator.geolocation); // 地理位置API

2. current

  • 常出现在API中表示"当前",如document.currentScript(当前脚本)

第二十八题解析:JavaScript内置对象

1. Function

  • 函数对象的构造函数
  • 所有函数都是Function的实例
javascript 复制代码
const sum = new Function('a', 'b', 'return a + b');
console.log(sum(2, 3)); // 5

2. Arguments

  • 函数内部的类数组对象,包含函数调用时的参数
  • 可通过Array.from()转换为数组

3. RegExp

  • 正则表达式对象(Regular Expression)
  • 用于字符串匹配和处理
javascript 复制代码
const pattern = new RegExp('abc');
console.log(pattern.test('abcdef')); // true

4. Error

  • 错误对象的基类,用于创建错误实例
  • 常见子类:SyntaxErrorReferenceErrorTypeError

5. Symbol

  • ES6新增的原始数据类型,表示唯一的标识符
javascript 复制代码
const sym1 = Symbol('description');
const sym2 = Symbol('description');
console.log(sym1 === sym2); // false

第二十九题解析:CSS布局与对齐

1. align

  • 对齐相关的CSS属性前缀,如align-itemsalign-content

2. vertical

  • 垂直方向,如vertical-align(垂直对齐)
css 复制代码
.container {
  display: flex;
  align-items: center; /* 垂直居中 */
  justify-content: center; /* 水平居中 */
}

第三十题解析:Promise相关

1. resolve

  • Promise的成功状态回调函数
  • 将Promise对象状态从"未完成"变为"成功"

2. reject

  • Promise的失败状态回调函数
  • 将Promise对象状态从"未完成"变为"失败"
javascript 复制代码
new Promise((resolve, reject) => {
  if (success) {
    resolve('操作成功');
  } else {
    reject(new Error('操作失败'));
  }
});

第三十一题解析:数组方法与结果处理

1. push

  • 向数组末尾添加一个或多个元素,并返回新长度
javascript 复制代码
const fruits = ['apple', 'banana'];
fruits.push('orange');
console.log(fruits); // ['apple', 'banana', 'orange']

2. result

  • 表示操作的结果,常见于回调函数或方法返回值

第三十二题解析:事件类型

1. Mouse

  • 鼠标事件前缀,如mousedownmouseupmousemove

2. Keyboard

  • 键盘事件前缀,如keydownkeyupkeypress

3. Progress

  • 进度事件,如progress(资源加载进度)

4. Event

  • 所有事件的基类,包含事件相关信息和方法

第三十三题解析:前端框架与路由

1. router

  • 路由,管理页面跳转和URL映射
  • Vue Router、React Router是常见的路由库

2. angular

  • 谷歌开发的前端框架,采用TypeScript开发
  • 基于组件和依赖注入

3. view

  • 视图,MVVM模式中的V(View)
  • 负责展示数据和用户交互

第三十四题解析:依赖注入与路径

1. Provider

  • 提供者,在Angular等框架中用于注册可注入的服务
  • 发音:/prəˈvaɪdə®/

2. Path

  • 路径,如window.location.pathname(URL路径)

第三十五题解析:对象方法

1. assign

  • Object.assign()用于将多个源对象的属性复制到目标对象
javascript 复制代码
const target = { a: 1 };
const source = { b: 2 };
Object.assign(target, source);
console.log(target); // { a: 1, b: 2 }

第三十六题解析:模块化

1. Common

  • 指CommonJS模块化规范,用于Node.js
  • 使用require()导入,module.exports导出
javascript 复制代码
// 导出
module.exports = { foo: 'bar' };

// 导入
const module = require('./module');

第三十七题解析:类与继承

1. constructor

  • 构造函数,在类被实例化时调用

2. extends

  • 用于类的继承
javascript 复制代码
class Animal {
  constructor(name) {
    this.name = name;
  }
}

class Dog extends Animal {
  bark() {
    console.log(`${this.name} 汪汪叫`);
  }
}

第三十八题解析:调试与控制台

1. console

  • 控制台对象,提供调试信息输出功能

2. log

  • console.log()用于输出日志信息
javascript 复制代码
console.log('调试信息');
console.error('错误信息');
console.warn('警告信息');

第三十九题解析:其他常用功能

1. random

  • Math.random()生成0到1之间的随机数
javascript 复制代码
const randomNum = Math.random(); // 0 <= randomNum < 1

2. function

  • 函数关键字,用于定义函数

第四十题解析:Vuex核心概念

1. getters

  • Vuex中的计算属性,用于处理存储的状态

2. mutations

  • Vuex中用于修改状态的方法,必须是同步函数

3. actions

  • Vuex中用于处理异步操作的方法,可以提交mutations

4. modules

  • Vuex中用于分割状态的模块,便于管理大型应用

第四十一题解析:版本控制

1. GitHub

  • 基于Git的代码托管平台
  • "git"发音:/ɡɪt/,"hub"发音:/hʌb/

第四十二题解析:配置相关

1. defaults

  • 默认值,如axios.defaults.baseURL设置默认请求地址

2. base

  • 基础,如baseURL(基础URL)

3. config

  • 配置(configuration)的缩写

第四十三题解析:控制与选项

1. control

  • 控制,如Controller(控制器)

2. options

  • 选项,常用于函数参数配置

第四十四题解析:JSON方法

1. JSON.parse()

  • 作用:将JSON字符串转换为JavaScript对象

  • 语法JSON.parse(text[, reviver])

  • 实例

    javascript 复制代码
    const jsonStr = '{"name":"John", "age":30}';
    const obj = JSON.parse(jsonStr);
    console.log(obj.name); // "John"

2. JSON.stringify()

  • 作用:将JavaScript对象转换为JSON字符串

  • 语法JSON.stringify(value[, replacer[, space]])

  • 实例

    javascript 复制代码
    const obj = { name: "John", age: 30 };
    const jsonStr = JSON.stringify(obj);
    console.log(jsonStr); // '{"name":"John","age":30}'

第四十五题解析:Ajax与jQuery

1. Ajax

  • 全称:Asynchronous JavaScript and XML(异步JavaScript和XML)
  • 发音:/ˈeɪ.dʒæks/(中文类似"阿贾克斯")
  • 作用:在不重新加载页面的情况下与服务器交换数据

2. jQuery

  • 流行的JavaScript库,简化DOM操作和Ajax请求
  • 发音:J和Query分开读(/ˈdʒeɪ kjuːəri/)

3. query

  • 查询,如document.querySelector()方法

第四十六题解析:本地存储

1. local

  • 本地的,如localStorage(本地存储)

第四十七题解析:安全相关

  • 网络饼干,存储在客户端的小型数据文件
  • 用于身份验证、记住用户偏好等

2. token

  • 令牌,用于身份验证的字符串
  • 常用于API请求的身份验证

第四十八题解析:UI与交互

1. icon

  • 图标,如Font Awesome图标库

2. Animation

  • 动画,如CSS动画或JavaScript动画

3. Frame

  • 帧,如动画帧(requestAnimationFrame

第四十九题解析:字符串方法

1. split

  • 将字符串分割为数组
javascript 复制代码
const str = "a,b,c";
const arr = str.split(",");
console.log(arr); // ["a", "b", "c"]

第五十题解析:开发工具

1. debug

  • 调试,查找并修复程序中的错误

第五十一题解析:Vue核心概念

1. 双向绑定

  • 数据变化自动更新视图,视图变化自动更新数据
  • 实现了双向数据流

2. MVVM

  • 全称:Model-View-ViewModel
  • 是MVC的改进版,将视图的状态和行为抽象化
  • ViewModel连接Model和View,处理业务逻辑

第五十二题解析:CSS位置属性

1. bottom

  • 底部,CSS定位属性之一
css 复制代码
.element {
  position: absolute;
  bottom: 0; /* 距离底部0像素 */
}

第五十三题解析:跨域兼容

1. XDomainRequest

  • IE8/9中的跨域请求对象,类似XMLHttpRequest

第五十四题解析:跨文档通信

1. Message

  • 消息,如postMessage用于跨文档通信
javascript 复制代码
// 发送消息
otherWindow.postMessage('Hello', 'https://example.com');

// 接收消息
window.addEventListener('message', function(event) {
  if (event.origin === 'https://example.com') {
    console.log(event.data);
  }
});

第五十五题解析:权限相关

1. Authorization

  • 授权,HTTP头中的Authorization用于身份验证

第五十六题解析:加法操作

1. add

  • 添加,如数组的push()方法用于添加元素

第五十七题解析:分数与评分

1. score

  • 分数,常用于评分系统

第五十八题解析:HTTP方法

1. Methods

  • 方法,如HTTP请求方法GET、POST、PUT、DELETE等

第五十九题解析:本地存储区分

1. session

  • 会话,如sessionStorage(会话存储)

第六十题解析:HTTP头

1. Headers

  • 头信息,HTTP请求和响应中的头字段

第六十一题解析:其他

1. ə

  • 国际音标中的中央元音,如"about"中的"a"发音

以上内容涵盖了从数组方法到前端框架、从网络请求到安全认证的多个知识点,可通过Ctrl+F快速查找所需内容。如有补充或修正,将在评论区更新。

相关推荐
CHEN5_02几秒前
【Java基础】反射,注解,异常,Java8新特性,object类-详细介绍
java·开发语言
Juchecar2 分钟前
常见的 HTML 标签及 CSS 选择器速查表
前端
Cx330❀12 分钟前
【数据结构初阶】--排序(四):归并排序
c语言·开发语言·数据结构·算法·排序算法
前端程序猿i15 分钟前
用本地代理 + ZIP 打包 + Excel 命名,优雅批量下载跨域 PDF
前端·javascript·vue.js·html
云间月131417 分钟前
飞算JavaAI智慧文旅场景实践:从景区管理到游客服务的全链路系统搭建
java·开发语言
Danny_FD24 分钟前
Vue2 中使用vue-markdown实现编辑器
前端·javascript·vue.js
用户游民24 分钟前
Flutter 项目热更新加载 libapp.so 文件
前端
coding随想24 分钟前
Vue和React对DOM事件流的处理方法解析
前端
用户479492835691525 分钟前
字节面试官:forEach 为什么不能被中断?
前端·javascript
ccnocare26 分钟前
window.electronAPI.send、on 和 once
前端·electron