[前端开发] JavaScript基础知识 [下]
上篇:JavaScript基础知识 [上]
JavaScript基础知识 [下]
- 字符串
- 数组
- 函数
- 对象
字符串
- 字符串语法规则:单引号、双引号和反引号的使用
- 利用双引号
"或者单引号'所括起来 - 双引号中不能嵌套双引号,单引号中不能嵌套单引号
- 如果要在双引号中嵌套双引号或者再单引号中嵌套单引号,需要用转义字符
\'Did he say \'hi\'?' "Did he say \"hi\"?"- 字符串默认是在一行
- 如果要将长字符串分成多行, 可以在每一行的尾部使用反斜杠
\
var longstring = 'Hello, nice \ to meet you!'
- 利用双引号
- 字符串方法:常用的字符串操作方法
-
.charAt()返回指定位置的字符, 参数从0开始编号var name = new String('english'); name.charAt(0)// "e"- 如果参数为负数,或大于等于字符串长度,
.charAt()返回空字符串""
- 如果参数为负数,或大于等于字符串长度,
-
.concat()连接两个字符串,返回一个新字符串,不改变原字符串var name1 = 'english'; var name2 = 'math';name1.concat(name2);//"englishmath".concat()可以接受多个参数'he'.concat('ll', 'o'); //"hello"- 如果参数不是字符串,那么此方法会先将其转为字符串,再进行连接
- 如果不用此方式,也可以用
+连接对各字符串, 但是加号如果遇到两个非字符串则会计算, 但是使用 concat 不管怎样都是不计算转字符串
-
.substring()从原字符串取出子字符串并返回, 第一个参数表示子字符串的开始位置, 第二个参数表示结束位置(返回结果不包含该位置)var name1 = 'english';name1.substring(0,2);//"en"//省略第二个参数, 则表示子字符串一直到原字符串的结束 name1.substring(2);//"glish"//如果第一个参数大于第二个参数, 则会自动更换两个参数位置 name1.substring(2, 0);//"en"//如果参数是负数, 会自动将负数转为0 name1.substring(-2, 2);//"en" -
.substr()从原字符串取出子字符串并返回, 第一个参数表示子字符串的开始位置, 第二个参数表示子字符串的长度(和.substring()不同点)- 省略第二个参数, 则表示子字符串一直到原字符串的结束
- 如果第一个参数是负数, 表示倒数计算的字符位置(从-1开始)
- 如果第二个参数是负数, 会自动将负数转为0
-
.indexOf()用于确定一个字符串在另一个字符串中第一次出现的位置,返回结果是最开始匹配的位置. 如果返回-1表示不匹配'english'.indexOf('n');//1- 如果接受第二个参数,则 表示从该位置开始向后匹配
-
.trim()用于去除字符串两端的空格,返回新字符串" hello world! ".trim // "hello world!"- 不仅去除空格,还去除制表符
\t、\v, 换行符\n和回车符\r.
- 不仅去除空格,还去除制表符
-
ES6扩展方法
-
去除前面空格:
.trimStart() -
去除后面空格:
.trimEnd() -
.split()按照给定的规则分割字符串,返回一個由分割出來的字符串组成的数组'hello.nice.to.meet.you'.split('.')//["hello","nice","to","meet","you"]- 如果分割规则是空字符串,则返回是原字符串的每一个字符组成的一个数组
- 参数省略则数组只包含一个成员,即原字符串
- 该方法接收两个参数是,第一个参数是分割规则,第二个参数是返回的数组最大成员数
-
-
数组
-
数组遍历:for循环、forEach方法、for…of语句的使用
//利用for或者wihle循环 for(var i in array){ 语句; }- 计算数组长度:
array.length()
- 计算数组长度:
-
数组方法:常用的数组操作方法
-
Array.is Array(数组名称)返回一个布尔值,表示参数是否为数组,可以弥补typeof运算符的不足(typeof返回是object,没有Array这个表示) -
.push("a",….,"n")在数组末端添加一个或者多个元素,并且返回添加新元素后的数组长度(该方法会改变原数组) -
可以添加多条数据,中间用逗号分开
-
.pop()用于删除数组的最后一个元素,并且返回被删除的元素(该方法会改变原数组) -
.shift()用于删除数组的第一个元素, 返回的是被删除的元素
//可以采用以下方法清空数组 while(item=array.shift());-
.unshift()向数组头部添加一个元素,可以添加多个,返回添加完新元素的数组长度 -
.join("分隔符",…,"分隔符")以指定参数作为分隔符,将所有数组成员连接为一个字符串返回,如果不提供参数,默认用逗号分隔。- 如果数组成员是undefined或null或空位,则会返回一个空字符串
- join和split可以实现数组和字符串的相互转换(数组
arr;字符串str)//将数组转为字符串 str = arr.join("");//将字符串转换为数组 arr = str.split("");
-
.concat()用于多个数组的合并,将新数组的成员添加到原数组成员的后部,然后返回一个新数组,原数组不变。数组1.concat(数组2,…,数组n)
-
.reverse()用于颠倒排列的数组元素,返回改变后的数组,该方法将改变原数组。// 字符串反转排列 str.split("").reverse().join(""); -
.indexOf()返回给定元素在数组中第一次出现的位置(由0开始),没有则返回-1- 可以接受两个参数,第二个参数为开始搜索的位置
-
函数
-
函数声明:函数的定义、调用和传参
function命令: function命令声明的代码区块,就是一个函数。function 函数名(参数){函数体; }
-
函数名的提升:函数名作用域和提升的规则
- Javascript引擎将函数名视同变量名,因此在声明函数时,整个函数会像变量声明一样被提升到代码头部。
对象
- 是一组键值对
key-value的集合, 是一种无序的复合数据集合。 - 每一个键名被称为属性,键值可以是任何类型,若键值为函数则把这个键值对应的属性称为方法。
- JavaScript对象:对象的创建、属性和方法的访问
-
Math对象- js原生对象,用于提供各种数学功能
Math.abs(num) //取绝对值Math.max(1,2,3) //3 如果参数为空返回- infinityMath.min(1,2,3) //1 如果参数为空返回infinityMath.floor(num) //向下取整Math.ceil(num) //向上取整Math.random() //取随机数(0<=random<1) 返回0到1之间的一个伪随机数 -
Date对象-
js原生时间库,以
1970年1月1日00:00:00作为时间的零点,可以表示的时间范围是前后各1亿天(单位是毫秒ms) -
时间戳:格林威治时间起至现在的总秒数
-
格林威治时间:
1970年1月1日00:00:00 -
北京时间:
1970年1月1日08:00:00 -
格林威治和北京时间就是时区的不同
Date.now(): 返回当前时间距离时间零点的毫秒数 -
Date中的get方法:获取实例对象某方面的值getTime(): 返回距格林威治时间的毫秒数getDate():返回对应每月的几号getDay():返回星期几(星期日为0,星期一为1,….)getYear():返回距离1900年的年数getFullYear():返回四位的年份getMonth():返回月份(0表示1月)getHours():返回小时(0-23)getMilliseconds():返回毫秒(0-999)getMinutes():返回分钟(0-59)getSeconds():返回秒(0-59)
-
-
相关文章:
[前端开发] JavaScript基础知识 [下]
上篇:JavaScript基础知识 [上] JavaScript基础知识 [下] 字符串数组函数对象 字符串 字符串语法规则:单引号、双引号和反引号的使用 利用双引号"或者单引号所括起来双引号中不能嵌套双引号,单引号中不能嵌套单引号如果要在双引号中嵌套双引号或者…...
新版UI界面影视小程序亲测无问题带详细搭建教程
新版UI界面影视小程序亲测无问题带详细搭建教程 环境php7.0 — fileinfo–redis–sg11 mysql5.5 apache2.4 添加站点php7.0—-创建ftp—-上传后端文件《后端文件修改,/maccms/wxapi/config/dbs.php–修改当前数据库》—-设置ssl—-打开数据库安装cms 安装好后管…...
2024.2.7日总结(小程序开发4)
页面导航 页面导航是页面之间的相互跳转: <a>链接location.href 小程序中实现页面导航的两种方式: 声明式导航 在页面上声明一个<navigator>导航组件通过点击<navigator>组件实现页面跳转 编程式导航 调用小程序的导航API&…...
每日五道java面试题之java基础篇(七)
第一题. HashMap和HashTable有什么区别?其底层实现是什么? 区别 : HashMap⽅法没有synchronized修饰,线程⾮安全,HashTable线程安全;HashMap允许key和value为null,⽽HashTable不允许 底层实现…...
树莓派4B(Raspberry Pi 4B)使用docker搭建单机版nacos [基于docker-compose]
树莓派4B(Raspberry Pi 4B)使用docker搭建单机版nacos [基于docker-compose] 镜像仓库提供的基于arm64架构的nacos镜像很少,我选用的是centralx/nacos-server ,它是基于nacos 2.0.4开发的。 ⚠️ 本文基于docker-compose记述构建单…...
DAY50:完全背包、爬楼梯、322、279
70 爬楼梯 (进阶) 爬楼梯问题在我们刚开始学习动态规划的时候作为入门的问题。当时题目考虑的是1或2种走法。如果将能走的台阶设为M,则能产生进阶的题目。通过求解完全背包问题得到。 题目如下: 题目页面 如果最多能走m个台阶,…...
MySQL性能调优篇(3)-缓存的优化与清理
MySQL数据库缓存的优化与清理 数据库缓存在MySQL中扮演着非常重要的角色,它可以显著提高数据库的性能和响应速度。在本篇博客中,我们将介绍如何优化和清理MySQL数据库的缓存,以进一步提高数据库的效率。 优化缓存 1. 适当调整缓存大小 My…...
Zig、C、Rust的Pk1
Zig、C、Rust的Pk1 github.com上看到“A basic comparitive analysis of C, C, Rust, and Zig.”:https://github.com/CoalNova/BasicCompare/tree/main 里边的代码是9个月之前的,用现在的zig 0.11.0 及0.12-dev都无法通过编译(具体为:zig-w…...
如何用 ChatGPT 做项目管理?
ChatGPT 可以通过创建和维护跨团队项目协作计划,让员工更容易理解他们的角色和职责。 这个协作计划里面会包括每个团队或个人要执行的具体任务,每个任务最后期限和任何事情之 间的依赖关系。 该场景对应的关键词库:(24 个) 项目管理、项目协作计划、跨…...
DS:树及二叉树的相关概念
创作不易,兄弟们来波三连吧!! 一、树的概念及结构 1.1 树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,…...
MATLAB | 情人节画个花瓣venn图?
之前七夕节情人节各种花,相册,爱心啥的都快画够了,今年画个花瓣韦恩图? 花瓣上的数字是仅属于该类的样本数,而中心的数字是属于每一类的样本数 教程部分 0 数据准备 % 给组起名t1 t2 t3...t15 setName compose(t%d,…...
[日常使用] Shell常用命令
Shell是什么? Shell简介 Shell是操作系统的外壳,是用户与操作系统内核之间的主要接口。它接收用户的命令并将其传递给内核执行,然后将执行结果返回给用户。Shell不仅是一个命令解释器,也是一种强大的编程语言。常见的Shell分为图…...
QT+OSG/osgEarth编译之八十七:osgdb_p3d+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5插件库osgdb_p3d)
文章目录 一、osgdb_p3d介绍二、文件分析三、pro文件四、编译实践一、osgdb_p3d介绍 P3DXML是Panda3D引擎中使用的一种文件格式,用于描述3D场景的层次结构和属性。它是一种基于XML(eXtensible Markup Language)的文本格式,可以被Panda3D引擎读取和解析。 P3DXML文件包含了…...
寒假 day13
1.请编程实现二维数组的杨慧三角 #include<stdio.h> #include<string.h> int main(int argc, const char *argv[]) { int n,i,j;printf("please enter n:");scanf("%d",&n);int arr[n][n];for(i0;i<n;i){for(j0;j<i;j){if(j0 || ij…...
探索微信小程序的奇妙世界:从入门到进阶
文章目录 一、什么是微信小程序1.1 简要介绍微信小程序的定义和特点1.2 解释小程序与传统应用程序的区别 二、小程序的基础知识2.1 微信小程序的架构2.2 微信小程序生命周期的理解2.3 探索小程序的目录结构和文件类型 三、小程序框架和组件3.1 深入了解小程序框架的核心概念和原…...
容器库(4)-std::forward_list
std::forward_list是可以从任何位置快速插入和移除元素的容器,不支持快速随机访问,只支持正向迭代。 本文章的代码库: https://gitee.com/gamestorm577/CppStd 成员函数 构造、析构和赋值 构造函数 可以用元素、元素列表、迭代器或者另…...
Netty Review - 服务端channel注册流程源码解析
文章目录 PreNetty主从Reactor线程模型服务端channel注册流程源码解读入口 serverBootstrap.bind(port) 源码流程图 Pre Netty Review - ServerBootstrap源码解析 Netty Review - NioServerSocketChannel源码分析 Netty主从Reactor线程模型 Netty 使用主从 Reactor 线程模型…...
冒泡排序平均需要跑多少趟:拉马努金Q函数初探
摘要: 拉马努金Q函数在算法分析中的应用,初步体验 【对算法,数学,计算机感兴趣的同学,欢迎关注我哈,阅读更多原创文章】 我的网站:潮汐朝夕的生活实验室 我的公众号:算法题刷刷 我的知乎&#x…...
Shell 学习笔记(三)-shell变量
Shell 语言是一种动态类型和弱类型语言, 因此,在Shell中无需显示地声明变量, 且变量的类型会根据不同的操作符而发生变化. 静态类型语言: 在程序编译期间就确定变量类型的语言, 如java, C等 动态类型语言: 在程序运行期间才确定变量类型的语言, 如PHP, Python等. 一 shell变量…...
新冠:2022和2024两次新冠感染的对比
第一次 2022年底第一次放开管控,95%以上的人都感染了一次奥密克戎 症状 第一天:流涕,咽痛。 第二天:高烧40度,全身疼痛,动不了。没有胃口,头晕想吐。 吃了白加黑退烧药,清开灵颗粒…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
均衡后的SNRSINR
本文主要摘自参考文献中的前两篇,相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程,其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt 根发送天线, n r n_r nr 根接收天线的 MIMO 系…...
JVM 内存结构 详解
内存结构 运行时数据区: Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器: 线程私有,程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 每个线程都有一个程序计数…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...
LangFlow技术架构分析
🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...
前端中slice和splic的区别
1. slice slice 用于从数组中提取一部分元素,返回一个新的数组。 特点: 不修改原数组:slice 不会改变原数组,而是返回一个新的数组。提取数组的部分:slice 会根据指定的开始索引和结束索引提取数组的一部分。不包含…...
通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
小木的算法日记-多叉树的递归/层序遍历
🌲 从二叉树到森林:一文彻底搞懂多叉树遍历的艺术 🚀 引言 你好,未来的算法大神! 在数据结构的世界里,“树”无疑是最核心、最迷人的概念之一。我们中的大多数人都是从 二叉树 开始入门的,它…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...
