当前位置: 首页 > news >正文

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

第一题解析:ES6模块化及常用语法

1. 变量声明

  • let:用于声明块级作用域的变量,具有以下特点:

    • 不存在变量提升
    • 不允许重复声明
    • 存在暂时性死区
  • const:用于声明常量,特点包括:

    • 声明时必须初始化
    • 声明后不能重新赋值
    • 块级作用域

2. 异步编程

  • async:用于声明异步函数,返回一个Promise对象
  • await:只能在async函数中使用,用于等待Promise对象的状态变为resolved

3. 常用方法

  • JSON.parse():将JSON字符串转换为JavaScript对象

    const jsonStr = '{"name":"John", "age":30}';
    const obj = JSON.parse(jsonStr);
    
  • 数组方法

    • filter():创建一个新数组,包含通过测试的所有元素
    • every():检测数组所有元素是否都符合指定条件
    • includes():判断数组是否包含指定的值(区分大小写)
    • find():返回数组中满足条件的第一个元素
    • reduce():对数组中的每个元素执行回调函数,将其减少为单个值
    • forEach():对数组的每个元素执行一次回调函数(空数组不执行)
    • some():检测数组中是否有元素满足指定条件
  • 字符串方法

    • trim():去除字符串两端的空白字符
    • startsWith():判断字符串是否以指定的子字符串开头
    • endsWith():判断字符串是否以指定的子字符串结尾
    • includes():判断字符串是否包含指定的子字符串(区分大小写)
    • indexOf():返回指定子字符串在字符串中首次出现的位置(与includes用法相似)

第二题解析:作用域相关概念

1. 块级作用域

  • 变量在离开定义的块级代码后立即被回收
  • {}、if、for、while等语句创建
  • 使用let和const声明的变量具有块级作用域

2. 函数作用域

  • 变量在定义的函数内部及嵌套的子函数中可见
  • 使用var声明的变量具有函数作用域
  • 函数参数也属于函数作用域

3. 变量提升

  • JavaScript引擎将变量声明提升到其作用域的顶部
  • var声明的变量会被提升,而let和const不会
  • 函数声明也会被提升,且优先级高于变量提升
// 变量提升示例
console.log(x); // undefined(变量提升)
var x = 5;console.log(y); // 报错(let不会提升)
let y = 10;

第三题解析:XMLHttpRequest对象

1. 基本概念

  • XMLHttpRequest = XML + Http + Request
  • 本质:发送HTTP请求、处理HTTP响应、与服务器异步交换数据的对象
  • 核心:基于HTTP协议进行数据交互

2. HTTP请求组成

  • 方法(GET、POST等)
  • URL(请求地址)
  • 请求头(Headers)
  • 请求主体(Body)

3. 常用属性和方法

  • status:HTTP响应状态码(200表示请求成功)
  • readyState:请求状态(4表示处理完毕)
  • responseText:服务器返回的文本数据
  • send():发送请求
  • open():初始化请求
// 简单使用示例
const xhr = new XMLHttpRequest(
http://www.dtcms.com/a/338017.html

相关文章:

  • 【牛客刷题】 01字符串按递增长度截取转换详解
  • 【MyBatis-Plus】一、快速入门
  • Day17: 数据魔法学院:用Pandas打开奇幻世界
  • MySQL面试题:MyISAM vs InnoDB?聚簇索引是什么?主键为何要趋势递增?
  • 从“换灯节能”到“智能调光”:城市智慧照明技术升级的节能革命
  • LangChain4j (3) :AiService工具类、流式调用、消息注解
  • 吴恩达 Machine Learning(Class 2)
  • 数字时代著作权侵权:一场资本与法律的博弈
  • 「Flink」业务搭建方法总结
  • 嵌入式设备Lwip协议栈实现功能
  • 摔倒检测数据集:1w+图像,yolo标注
  • 02.Linux基础命令
  • 8.18 机器学习-决策树(1)
  • docker部署flask并迁移至内网
  • Zephyr下控制ESP32S3的GPIO口
  • RK3568 NPU RKNN(六):RKNPU2 SDK
  • FlycoTabLayout CommonTabLayout 支持Tab选中字体变大 选中tab的加粗效果首次无效的bug
  • 探索性测试:灵活找Bug的“人肉探测仪”
  • 前端 大文件分片下载上传
  • 宝塔面板多Python版本管理与项目部署
  • excel表格 Vue3(非插件)
  • day25|学习前端js
  • Linux: RAID(磁盘冗余阵列)配置全指南
  • 损失函数与反向传播 小土堆pytorch记录
  • FPGA-Vivado2017.4-建立AXI4用于单片机与FPGA之间数据互通
  • 计算机组成原理(9) - 整数的乘除法运算
  • js计算两个经纬度之间的角度
  • Python字符串连接与合并工程实践:从基础到高性能解决方案
  • 【笔记】位错的定义和分类
  • B站 韩顺平 笔记 (Day 22)