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

[前端开发] 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-23getMilliseconds():返回毫秒(0-999getMinutes():返回分钟(0-59getSeconds():返回秒(0-59

相关文章:

[前端开发] JavaScript基础知识 [下]

上篇&#xff1a;JavaScript基础知识 [上] JavaScript基础知识 [下] 字符串数组函数对象 字符串 字符串语法规则&#xff1a;单引号、双引号和反引号的使用 利用双引号"或者单引号所括起来双引号中不能嵌套双引号,单引号中不能嵌套单引号如果要在双引号中嵌套双引号或者…...

新版UI界面影视小程序亲测无问题带详细搭建教程

新版UI界面影视小程序亲测无问题带详细搭建教程 环境php7.0 — fileinfo–redis–sg11 mysql5.5 apache2.4 添加站点php7.0—-创建ftp—-上传后端文件《后端文件修改&#xff0c;/maccms/wxapi/config/dbs.php–修改当前数据库》—-设置ssl—-打开数据库安装cms 安装好后管…...

2024.2.7日总结(小程序开发4)

页面导航 页面导航是页面之间的相互跳转&#xff1a; <a>链接location.href 小程序中实现页面导航的两种方式&#xff1a; 声明式导航 在页面上声明一个<navigator>导航组件通过点击<navigator>组件实现页面跳转 编程式导航 调用小程序的导航API&…...

每日五道java面试题之java基础篇(七)

第一题. HashMap和HashTable有什么区别&#xff1f;其底层实现是什么&#xff1f; 区别 &#xff1a; HashMap⽅法没有synchronized修饰&#xff0c;线程⾮安全&#xff0c;HashTable线程安全&#xff1b;HashMap允许key和value为null&#xff0c;⽽HashTable不允许 底层实现…...

树莓派4B(Raspberry Pi 4B)使用docker搭建单机版nacos [基于docker-compose]

树莓派4B&#xff08;Raspberry Pi 4B&#xff09;使用docker搭建单机版nacos [基于docker-compose] 镜像仓库提供的基于arm64架构的nacos镜像很少&#xff0c;我选用的是centralx/nacos-server &#xff0c;它是基于nacos 2.0.4开发的。 ⚠️ 本文基于docker-compose记述构建单…...

DAY50:完全背包、爬楼梯、322、279

70 爬楼梯 &#xff08;进阶) 爬楼梯问题在我们刚开始学习动态规划的时候作为入门的问题。当时题目考虑的是1或2种走法。如果将能走的台阶设为M&#xff0c;则能产生进阶的题目。通过求解完全背包问题得到。 题目如下&#xff1a; 题目页面 如果最多能走m个台阶&#xff0c…...

MySQL性能调优篇(3)-缓存的优化与清理

MySQL数据库缓存的优化与清理 数据库缓存在MySQL中扮演着非常重要的角色&#xff0c;它可以显著提高数据库的性能和响应速度。在本篇博客中&#xff0c;我们将介绍如何优化和清理MySQL数据库的缓存&#xff0c;以进一步提高数据库的效率。 优化缓存 1. 适当调整缓存大小 My…...

Zig、C、Rust的Pk1

Zig、C、Rust的Pk1 github.com上看到“A basic comparitive analysis of C, C, Rust, and Zig.”&#xff1a;https://github.com/CoalNova/BasicCompare/tree/main 里边的代码是9个月之前的&#xff0c;用现在的zig 0.11.0 及0.12-dev都无法通过编译(具体为&#xff1a;zig-w…...

如何用 ChatGPT 做项目管理?

ChatGPT 可以通过创建和维护跨团队项目协作计划&#xff0c;让员工更容易理解他们的角色和职责。 这个协作计划里面会包括每个团队或个人要执行的具体任务&#xff0c;每个任务最后期限和任何事情之 间的依赖关系。 该场景对应的关键词库:(24 个) 项目管理、项目协作计划、跨…...

DS:树及二叉树的相关概念

创作不易&#xff0c;兄弟们来波三连吧&#xff01;&#xff01; 一、树的概念及结构 1.1 树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c…...

MATLAB | 情人节画个花瓣venn图?

之前七夕节情人节各种花&#xff0c;相册&#xff0c;爱心啥的都快画够了&#xff0c;今年画个花瓣韦恩图&#xff1f; 花瓣上的数字是仅属于该类的样本数&#xff0c;而中心的数字是属于每一类的样本数 教程部分 0 数据准备 % 给组起名t1 t2 t3...t15 setName compose(t%d,…...

[日常使用] Shell常用命令

Shell是什么&#xff1f; Shell简介 Shell是操作系统的外壳&#xff0c;是用户与操作系统内核之间的主要接口。它接收用户的命令并将其传递给内核执行&#xff0c;然后将执行结果返回给用户。Shell不仅是一个命令解释器&#xff0c;也是一种强大的编程语言。常见的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是可以从任何位置快速插入和移除元素的容器&#xff0c;不支持快速随机访问&#xff0c;只支持正向迭代。 本文章的代码库&#xff1a; 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函数在算法分析中的应用&#xff0c;初步体验 【对算法&#xff0c;数学&#xff0c;计算机感兴趣的同学&#xff0c;欢迎关注我哈&#xff0c;阅读更多原创文章】 我的网站&#xff1a;潮汐朝夕的生活实验室 我的公众号&#xff1a;算法题刷刷 我的知乎&#x…...

Shell 学习笔记(三)-shell变量

Shell 语言是一种动态类型和弱类型语言, 因此,在Shell中无需显示地声明变量, 且变量的类型会根据不同的操作符而发生变化. 静态类型语言: 在程序编译期间就确定变量类型的语言, 如java, C等 动态类型语言: 在程序运行期间才确定变量类型的语言, 如PHP, Python等. 一 shell变量…...

新冠:2022和2024两次新冠感染的对比

第一次 2022年底第一次放开管控&#xff0c;95%以上的人都感染了一次奥密克戎 症状 第一天&#xff1a;流涕&#xff0c;咽痛。 第二天&#xff1a;高烧40度&#xff0c;全身疼痛&#xff0c;动不了。没有胃口&#xff0c;头晕想吐。 吃了白加黑退烧药&#xff0c;清开灵颗粒…...

MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例

一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能&#xff0c;我们需要对它的功能特点进行分析&#xff1a; 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具&#xff1a; mysql&#xff1a;关系型数据库&am…...

sqlserver 根据指定字符 解析拼接字符串

DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

零基础设计模式——行为型模式 - 责任链模式

第四部分&#xff1a;行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习&#xff01;行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想&#xff1a;使多个对象都有机会处…...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

Linux nano命令的基本使用

参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时&#xff0c;显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

第7篇:中间件全链路监控与 SQL 性能分析实践

7.1 章节导读 在构建数据库中间件的过程中&#xff0c;可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中&#xff0c;必须做到&#xff1a; &#x1f50d; 追踪每一条 SQL 的生命周期&#xff08;从入口到数据库执行&#xff09;&#…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...