前端面试知识点

基本方法

在这里插入图片描述在 JavaScript 中,pushpopshiftunshift 是用于操作数组的方法,它们的作用如下:

  1. push:将一个或多个元素添加到数组的末尾,并返回修改后的数组的新长度。原始数组会被修改。

    const array = [1, 2, 3];
    array.push(4, 5); // [1, 2, 3, 4, 5]
    
  2. pop移除数组的最后一个元素,并返回被移除的元素。原始数组会被修改。

    const array = [1, 2, 3];
    const removedElement = array.pop(); // 3
    console.log(array); // [1, 2]
    
  3. shift:移除数组的第一个元素,并返回被移除的元素。原始数组会被修改。移除后,数组中的其他元素会自动前移。

    const array = [1, 2, 3];
    const removedElement = array.shift(); // 1
    console.log(array); // [2, 3]
    
  4. unshift:将一个或多个元素添加到数组的开头,并返回修改后的数组的新长度。原始数组会被修改。添加后,数组中的其他元素会自动后移。

    const array = [1, 2, 3];
    array.unshift(-1, 0); // [-1, 0, 1, 2, 3]
    

这些数组方法允许我们在数组的开头或末尾进行元素的添加或移除操作。它们可以用于动态地修改数组的内容,实现队列、栈等数据结构,或者在需要调整数组元素顺序时使用。

reduce

不改变原数组
.reduce() 是一个在很多编程语言中都存在的高阶函数,它用于对数组或集合中的元素进行累积操作。下面是一个 JavaScript 的示例,演示了如何使用 .reduce()

假设有一个包含数字的数组,你想计算数组中所有数字的总和:

const numbers = [1, 2, 3, 4, 5];// 使用 reduce 计算总和
const sum = numbers.reduce((accumulator, currentValue) => {return accumulator + currentValue;
}, 0); // 初始值为 0console.log(sum); // 输出 15,因为 1 + 2 + 3 + 4 + 5 = 15

在这个示例中,.reduce() 接受两个参数:

  1. 一个回调函数,这个函数有两个参数:accumulatorcurrentValueaccumulator 是累积的结果,而 currentValue 是当前正在处理的数组元素。
  2. 一个初始值,这个初始值会被赋给 accumulator,在第一次调用回调函数时使用。

回调函数会依次处理数组中的每个元素,将它们与累积的结果相结合,最终得到一个最终的累积值。

这只是 .reduce() 的一个简单示例,你可以使用 .reduce() 执行各种累积操作,例如查找最大值、最小值,或者执行更复杂的数据转换操作。

const array = [5,4,7,8,6,2,3,1];1.求和
array.reduce((a,b) => a+b);//362.最大值
array.reduce((a,b) => a>b?a:b);//8最小值
array.reduce((a,b) => a<b?a:b);//1//推荐下面
var arr = [22,13,6,55,30];var max = Math.max.apply(null, arr);
var min = Math.min.apply(null, arr);
console.log(max, min) // 55,6let arr = [1,2,3]
//最大值
let maxValue= Math.max(...arr);
//最小值
let minValue= Math.min(...arr);

filter

map

split

不改变原始数组

用于把一个字符串分割成字符串数组。
在这里插入图片描述省略分割参数,就是空格
http://t.csdn.cn/pm5z6
http://t.csdn.cn/V4Qk8

splice 添加/删除

改变原数据
splice是不可以操作字符串,只能操作数组

slice 截取

不影响原数组
可以操作字符串,也可以操作数组

substr

只能操作字符串,不可以操作数组

const 对于复合数据类型

const arr=[1,2,3];arr.push(4,5);为什么不报错,不是const 不能修改吗
const关键字确实用于声明一个常量,意味着变量的引用不可变。然而,对于数组和对象这样的复合数据类型,const并不会限制修改其中的元素。

在你提供的代码中,arr是一个常量数组,使用const声明。虽然你不能重新分配arr这个变量,但你可以修改数组本身,例如向数组中添加元素。

arr.push(4, 5)并没有改变arr变量的引用,而是在现有的数组中添加了新的元素。这是因为const只保证变量的引用不会改变,而不是保证变量引用的对象本身不可变。

如果你尝试重新分配arr变量,例如 arr = [4, 5],那么会引发一个错误,因为重新分配会改变arr的引用。

总结:const关键字用于声明一个常量,对于复合数据类型(如数组和对象),const只保证变量的引用不可变,但并不限制修改对象本身的元素。

希望以上解释对你有帮助。如果还有其他问题,请随时提问。

let const var

let 是块作用域 for循环友好

var 是函数作用域,可以变量提升,同一个作用域下可以重复声明

const 块级作用域,声明是常量,常量被定义后就不能被修改。注意,常量在定义的时候就必须初始化,否则就会报错。

JS作用域

在函数作用域中可以访问全局作用域,而在全局作用域中不能访问函数作用域
当在函数作用域中使用一个变量时,它会先在自身作用域内查找,如果找到就直接使用,如果没有找到则会向上一级作用域查找,直到找到全局作用域为止。如果都没有找到则会报错。

块作用域是函数作用域的子集,就是{} for if

改变this指向

在这里插入图片描述

http://t.csdn.cn/Ojyqj

//推荐下面
var arr = [22,13,6,55,30];

var max = Math.max.apply(null, arr);
var min = Math.min.apply(null, arr);
console.log(max, min) // 55,6

let arr = [1,2,3]
//最大值
let maxValue= Math.max(…arr);
//最小值
let minValue= Math.min(…arr);

console.log.apply(console, arguments);
};log(1); //1log(1,2); //1 2

这里为什么arguments能直接使用,他是什么

在JavaScript函数中,arguments是一个特殊的对象,它包含了函数调用时传入的所有参数。arguments对象类似于数组,可以通过索引访问每个参数的值。

在上面的代码中,函数log通过使用console.log.apply(console, arguments)来实现将参数打印到控制台。其中arguments就代表了传入的参数列表,通过apply方法调用console.log并将arguments作为参数传递进去。

总结起来,arguments是指函数调用时传入的所有参数所组成的对象,在函数内部可以使用它来操作传入的参数。



css权值计算

在这里插入图片描述

在这里插入图片描述

块级元素、行内块、行内元素

参考文章 http://t.csdn.cn/7H0QU
http://t.csdn.cn/fSHXk
在这里插入图片描述
在这里插入图片描述

正则表达式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/91362.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈Lua协程和函数的尾调用

前言 虽然不经常用到协程&#xff0c;但是也不能谈虎色变。同时&#xff0c;在有些场景&#xff0c;协程会起到一种不可比拟的作用。所以&#xff0c;了解它&#xff0c;对于一些功能&#xff0c;也会有独特的思路和想法。 协程 概念 关于进程和线程的概念就不多说。 那么…

客户端读写HBase数据库的运行原理

1.HBase的特点 HBase是一个数据库&#xff0c;与RDMS相比&#xff0c;有以下特点&#xff1a; ① 它不支持SQL ② 不支持事务 ③ 没有表关系&#xff0c;不支持JOIN ④ 有列族&#xff0c;列族下可以有上百个列 ⑤ 单元格&#xff0c;即列值&#xff0c;可以存储多个版本的值&…

servlet初体验之环境搭建!!!

我们需要用到tomcat服务器&#xff0c;咩有下载的小伙伴看过来&#xff1a;如何正确下载tomcat&#xff1f;&#xff1f;&#xff1f;_明天更新的博客-CSDN博客 1. 创建普通的Java项目&#xff0c;并在项目中创建libs目录存放第三方的jar包。 建立普通项目 创建libs目录存放第三…

MySQL— 基础语法大全及操作演示!!!(事务)

MySQL—— 基础语法大全及操作演示&#xff08;事务&#xff09; 六、事务6.1 事务简介6.2 事务操作6.2.1 未控制事务6.2.2 控制事务一6.2.3 控制事务二 6.3 事务四大特性6.4 并发事务问题6.5 事务隔离级别 MySQL— 基础语法大全及操作演示&#xff01;&#xff01;&#xff01…

一个简单的web应用程序的创建

一个简单的web应用程序的创建 1、数据库设计与创建1.1、数据库系统1.2、Navicat Premium1.3、Power Designer2、使用maven创建SpringBoot项目2.1、配置maven2.2、安装idea2.3、使用idea创建maven项目2.4、根据需要配置pom.xml文件、配置项目启动相关的文件2.5、写SpringBoot项目…

MAE 论文精读 | 在CV领域自监督的Bert思想

1. 背景 之前我们了解了VIT和transformer MAE 是基于VIT的&#xff0c;不过像BERT探索了自监督学习在NLP领域的transformer架构的应用&#xff0c;MAE探索了自监督学习在CV的transformer的应用 论文标题中的Auto就是说标号来自于图片本身&#xff0c;暗示了这种无监督的学习 …

Ubantu安装mongodb,开启远程访问和认证

最近因为项目原因需要在阿里云服务器上部署MongoDB&#xff0c;操作系统为Ubuntu&#xff0c;网上查阅了一些资料&#xff0c;特此记录一下步骤。 1.运行apt-get install mongodb命令安装MongoDB服务&#xff08;如果提示找不到该package&#xff0c;说明apt-get的资源库版本比…

Java 数据结构使用学习

Set和List的区别 Set 接口实例存储的是无序的&#xff0c;不重复的数据。List 接口实例存储的是有序的&#xff0c;可以重复的元素。 Set 检索效率低下&#xff0c;删除和插入效率高&#xff0c;插入和删除不会引起元素位置改变 <实现类有HashSet,TreeSet>。 List 和数…

高速公路自动驾驶汽车超车控制方法研究

目录 摘要 ............................................................................................................ I Abstract ...................................................................................................... II 目录 ...............…

RESTful API 面试必问

RESTful API是一种基于 HTTP 协议的 API 设计风格&#xff0c;它提供了一组规范和约束&#xff0c;使得客户端&#xff08;如 Web 应用程序、移动应用等&#xff09;和服务端之间的通信更加清晰、简洁和易于理解。 RESTful API 的设计原则 使用 HTTP 协议&#xff1a;RESTful …

Python小知识 - Python中的多线程

Python中的多线程 线程是进程中的一个执行单元&#xff0c;是轻量级的进程。一个进程可以创建多个线程&#xff0c;线程之间共享进程的资源&#xff0c;比如内存、文件句柄等。 在Python中&#xff0c;使用threading模块实现线程。 下面的代码创建了两个线程&#xff0c;一个输…

Vulnhub系列靶机---JIS-CTF-VulnUpload-CTF01靶机

文章目录 1、网卡配置2、信息收集主机发现端口扫描目录扫描 3、漏洞探测4、漏洞利用一句话木马蚁剑 GetShellSSH连接提权 JIS文档说明 JIS-CTF-VulnUpload-CTF01靶机下载地址 该靶机有5个flag 1、网卡配置 开启靶机&#xff0c;看见加载的进度条按shift&#xff0c;看到如下界…