前端面试题-js数据类型-怎么判断是对象还是数组-字符串常用方法-数组常用方法

前端面试题-js部分-js数据类型-怎么判断是对象还是数组-字符串常用方法-数组常用方法

  • JS数据类型有哪些
    • 值类型和引用类型的区别
    • 数组的常用方法
      • 哪些方法会改变原数组
    • 字符串常用方法
    • 对象常用方法
    • 怎么判断是对象还是数组

JS数据类型有哪些

数据类型类型描述
Number基本类型,值类型数值类型是整型和浮点型的集合,具体表示什么要看具体的赋值情况
String基本类型,值类型字符串类型,保存0到16位的UNICODE代码组成的字符序列
Boolean基本类型,值类型布尔类型,有true或false的两个取值
Null基本类型,引用类型只有有一个值,表示一个空的对象引用
Undefined基本类型值类型只有一个值 表示一个变量声明后未被赋予任何值
Symbol基本类型,值类型唯一值
Object复杂类型,引用类型对象类型,本质是一个无序的键值对的列表,类似与集合,json形式
Array复杂类型,引用类型数组类型,是数据的有序列表
Function复杂类型,引用类型函数类型,函数是对象,函数名是指针。多次赋值后面的的赋值会覆盖前的

一般说的JS的数据类型是前7个 7中数据类型 后两种也有归属于object的说法

值类型和引用类型的区别

1.值类型内容长度固定,保存值的存在范围,引用类型内容长度不固定,可以存储不定长度的数据
2.值类型只能单纯的存储值,如整型,字符串等。而引用类型可以存储对象的堆地址,可以使多个变量指向同一个对象
3.引用类型可以缓解栈的存储压力
4.在Js语法中基本数据类型不能动态添加任何属性而引用数据类型可以添加属性

数组的常用方法

方法描述
push数组新增方法 往最后位置插入一个值
unshift数组新增方法 往最前位置插入一个值
pop数组删除方法 最后位置删除一个
shift数组删除方法 最先位置删除一个
map数组遍历方法 返回一个新数组
indexOf数组查找方法 查找目标值的第一个索引
lastIndexOf数组查找方法 查找目标值的最后一个索引
tostring数组转换为字符串,元素直接用,号分隔
Join数组拼接成字符串方法 传入的参数 是拼接的分隔
concat数组合并方法 合并在后
arr[idx]数组根据索引取值
every数组遍历方法 所有值满足条件返回true 有一个不满足返回false
some数组遍历方法 有一个值满足返回true 都不满足返回false
splice数组删除方法 指定位置删除多少元素
slice数组截取方法 从哪里开始截取 截取到哪里 返回新的数组
sort数组排序方法 数组原地修改
reserve数组反转方法 数组原地修改
inculdes数组查找方法 是否包含目标值 返回true和false

哪些方法会改变原数组

pop push shift unshift sort reserve splice 这些常用的方法会改变原数组

字符串常用方法

方法描述
split字符分割成数组的方法 返回一个数组 接受的参数是截取的值
substr截取字符串方法 返回截取的值
trim字符串去空方法 返回首位没有空格的字符串
slice字符串截取方法 返回截取的值
concat字符串拼接方法 将两个字符串拼接到一起
replace字符串替换方法 匹配到的第一个目标值替换
replaceall字符替换方案 匹配到的所有目标值替换
charAt字符串查找,根据索引位置返回字符串本身
charcodeAt字符串查找,根据字符串返回字符的ASSCI码
indexOf字符串查找方法 返回目标值的第一个索引
lastIndexOf字符串查找方法 返回目标值的最后一个索引
inculdes字符串查找方法 是否包含目标值 返回true和false
startWith字符串查找方法 是否以目标值开头 返回true或fasle
endWith字符串查找方法 是否以目标值结尾 返回true或fasle

对象常用方法

方法描述
object.keys(对象)返回对象key作为数组项的数组
object.values(对象)返回对象value作为数组项的数组
object.entries(对象)返回一个二维数组 key作为数组项的0位置 value作为数组项的1位置

怎么判断是对象还是数组

1.Array.isArray(要检测的值) 是数组返回true 不是数组返回false
2.instanceof

要检测的值 instanceof Array (数据类型)//返回true 或false

在这里插入图片描述
3.constructor

[](要检测的目标值).constructor == Array(数据类型)//返回true 或false

4.Object.prototype.toString.call(arr) 把对象转换成一个字符串和已知对象去对比
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ANSYS 2023 下载安装教程,附安装包和工具,轻松安装,无套路

前言 ANSYS是一款融结构、流体、电场、磁场、声场分析于一体的大型通用有限元分析(FEA)软件,能与多数计算机辅助设计软件接口,实现数据的共享和交换,如Creo,NASTRAN、Algor、IDEAS、AutoCAD等. 准备工作 1、Win10及以上系统 2、提前准备好…

防火墙的基础知识点

目录 1. 防火墙的意义: 2. 防火墙分类: 3. 防火墙的发展史: 3.1 包过滤 3.2 应用代理 3.3. 状态检测 3.4. 专用设备 3.4.1 入侵检测系统(IDS) 3.4.2 入侵防御系统(IPS) 3.4.3 防病毒网关 (AV) 3.4.4 Web应用防火墙 (WAF) 3.5. 统…

Netty的解码器和编码器

链路图 一个完整的RPC请求中,netty对请求数据和响应数据的处理流程如下图所示 网络线路中传输的都是二进制数据,之后netty将二进制数据解码乘POJO对象,让客户端或者服务端程序处理。 解码的工具称为解码器,是一个入站处理器InBo…

BAT学习笔记:详解环境变量及其所有创建方法

文章目录 一、初识环境变量二、什么是环境变量三、为什么需要环境变量四、环境变量的分类五、环境变量的设置 一、初识环境变量 1.windows 的搜索框中输入 查看高级系统设置。点击打开系统属性窗口。 2. 在系统属性窗口中,点击右下方的“环境变量”打开环境变量设…

Linux服务器配置与管理(第二次实验)

实验目的及具体要求 目的 1.掌握基于命令行的文件操作 2.掌握基于命令行的目录操作 3.掌握用户账户的命令行操作 4.掌握组账户的命令行操作 5.熟悉磁盘分区操作 6.掌握调整优先级的方法 具体要求 1.掌握基于命令行的文件和目录操作 ①创建测试目录 ②创建文件 ③复…

解析MySQL生产环境CPU使用率过高的排查与解决方案

引言 在生产环境中,MySQL作为一个关键的数据库组件,其性能对整个系统的稳定性至关重要。然而,有时候我们可能会遇到MySQL CPU使用率过高的问题,这可能导致系统性能下降,应用页面访问减慢,甚至影响到用户体…

代码随想录算法训练营第十七天 |110.平衡二叉树,257.二叉树的所有路径,404.左叶子之和(待补充)

110.平衡二叉树 1、题目链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 2、文章讲解:代码随想录 3、题目: 给定一个二叉树,判断它是否是高度平衡的二叉树。 本题中,一棵高度平衡二…

前端工程化之:webpack1-6(编译过程)

一、webpack编译过程 webpack 的作用是将源代码编译(构建、打包)成最终代码。 整个过程大致分为三个步骤: 初始化编译输出 1.初始化 初始化时我们运行的命令 webpack 为核心包, webpack-cli 提供了 webpack 命令,通过…

Go 命令行解析 flag 包之快速上手

本篇文章是 Go 标准库 flag 包的快速上手篇。 概述 开发一个命令行工具,视复杂程度,一般要选择一个合适的命令行解析库,简单的需求用 Go 标准库 flag 就够了,flag 的使用非常简单。 当然,除了标准库 flag 外&#x…

架构整洁之道——价值维度与编程范式

1 设计与架构究竟是什么 结论:二者没有任何区别,一丁点区别都没有。 架构图里实际上包含了所有底层设计细节,这些细节信息共同支撑了顶层的架构设计,底层设计信息和顶层架构设计共同组成了整个架构文档。底层设计细节和高层架构信…

Neo4j 国内镜像下载与安装

Neo4j 5.x 简体中文版指南 社区版:https://neo4j.com/download-center/#community 链接地址(Linux版):https://neo4j.com/artifact.php?nameneo4j-community-3.5.13-unix.tar.gz 链接地址(Windows)&#x…

如何使用react框架进行两个html页面的切换?

如何使用react框架进行两个html页面的切换? 项目背景首先是古老的做法login.htmlindex.html 正文->react框架如何设置两个页面的跳转?配置react框架的环境react框架如何实现两个页面的跳转? 项目背景 古老的html页面跳转的做法无法在react框架中直接适配,所以非常有必要…

MySQL-进阶-索引

一、索引概述 1、介绍 2、有误索引搜索效率演示 3、优缺点 二、索引结构 1、B-Tree(多路平衡查找树) 2、BTree 3、Hash 三、索引分类 四、索引语法 1、语法 2、案例 五、SQL性能分析 1、查看执行频次 2、慢查询日志 3、show-profile 4、explain 六、索…

redis 入门

一、什么是redis? redis是c语言编写的高性能(读的速度是110000次/s,写的速度是81000次/s)的k-v形式的数据库,数据存在内存中 二、redis的使用场景? 数据量小,访问量大 三、redis的启动和关闭 启动: 打开cmd&…

2. HarmonyOS应用开发DevEcoStudio准备-1

2. HarmonyOS应用开发DevEcoStudio准备-1 下载 DevEco Studio 进入HUAWEI DevEco Studio产品页产品页。 单击下载列表右侧的按钮,下载 DevEco Studio。 安装 DevEco Studio 下载完成后,双击下载的 deveco-studio-xxxx.exe,进入 DevEco St…

gitee建库并git

箴言:书山有路勤为径 文章目录 前言一、gitee导入ssh二、gitee建库三、克隆到本地四、关联本地工程到远程仓库五、push流程总结 前言 nodejs每天的学习都有代码产出,转念一想不如在码云上面搞个仓库,也经历了些许波折,往常也建了…

接口测试工具开发文档

1 开发规划 1.1 开发人员 角 色 主要职责 负责模块 人员 备注 n xxx模块 xxx 1.2 开发计划 <附开发计划表> 1.3 开发环境和工具 开发工具 工具 作用 Notepad 编辑器 Perl 解释器 2 总体设计 设计思路&#xff1a;因为测试app和server。首先必须…

LeetCode.11. 盛最多水的容器

题目 题目链接 分析 这道题的意思就是让我们找两个下标&#xff0c;以这两个下标组成的线为底&#xff0c;高度取这两个位置对应数字的最小值为高&#xff0c;组成一个长方形&#xff0c;求长方形最大的面积可以为多少。 暴力的解法是什么&#xff1f;&#xff1f;&#xf…

【Linux】开始使用 vim 吧!!!

Linux 1 what is vim &#xff1f;2 vim基本概念3 vim的基本操作 &#xff01;3.1 vim的快捷方式3.1.1 复制与粘贴3.1.2 撤销与剪切3.1.3 字符操作 3.2 vim的光标操作3.3 vim的文件操作 总结Thanks♪(&#xff65;ω&#xff65;)&#xff89;感谢阅读下一篇文章见&#xff01;…

工业4.0前沿:8DI/4DO/6AI RTU在石油管道监测中的应用

在当前数字化转型的大潮下&#xff0c;石油化工行业的智能化进程正以前所未有的速度推进。其中&#xff0c;物联网技术作为连接物理世界与数字世界的桥梁&#xff0c;在管道监控与安全管理领域发挥着至关重要的作用。一款专为石油化工管道设计的全网通物联网RTU终端应运而生&am…