当前位置: 首页 > 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;清开灵颗粒…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

2021-03-15 iview一些问题

1.iview 在使用tree组件时&#xff0c;发现没有set类的方法&#xff0c;只有get&#xff0c;那么要改变tree值&#xff0c;只能遍历treeData&#xff0c;递归修改treeData的checked&#xff0c;发现无法更改&#xff0c;原因在于check模式下&#xff0c;子元素的勾选状态跟父节…...

在Ubuntu中设置开机自动运行(sudo)指令的指南

在Ubuntu系统中&#xff0c;有时需要在系统启动时自动执行某些命令&#xff0c;特别是需要 sudo权限的指令。为了实现这一功能&#xff0c;可以使用多种方法&#xff0c;包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法&#xff0c;并提供…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

作为测试我们应该关注redis哪些方面

1、功能测试 数据结构操作&#xff1a;验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化&#xff1a;测试aof和aof持久化机制&#xff0c;确保数据在开启后正确恢复。 事务&#xff1a;检查事务的原子性和回滚机制。 发布订阅&#xff1a;确保消息正确传递。 2、性…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

五、jmeter脚本参数化

目录 1、脚本参数化 1.1 用户定义的变量 1.1.1 添加及引用方式 1.1.2 测试得出用户定义变量的特点 1.2 用户参数 1.2.1 概念 1.2.2 位置不同效果不同 1.2.3、用户参数的勾选框 - 每次迭代更新一次 总结用户定义的变量、用户参数 1.3 csv数据文件参数化 1、脚本参数化 …...

Qt Quick Controls模块功能及架构

Qt Quick Controls是Qt Quick的一个附加模块&#xff0c;提供了一套用于构建完整用户界面的UI控件。在Qt 6.0中&#xff0c;这个模块经历了重大重构和改进。 一、主要功能和特点 1. 架构重构 完全重写了底层架构&#xff0c;与Qt Quick更紧密集成 移除了对Qt Widgets的依赖&…...

WinUI3开发_使用mica效果

简介 Mica(云母)是Windows10/11上的一种现代化效果&#xff0c;是Windows10/11上所使用的Fluent Design(设计语言)里的一个效果&#xff0c;Windows10/11上所使用的Fluent Design皆旨在于打造一个人类、通用和真正感觉与 Windows 一样的设计。 WinUI3就是Windows10/11上的一个…...

【AI News | 20250609】每日AI进展

AI Repos 1、OpenHands-Versa OpenHands-Versa 是一个通用型 AI 智能体&#xff0c;通过结合代码编辑与执行、网络搜索、多模态网络浏览和文件访问等通用工具&#xff0c;在软件工程、网络导航和工作流自动化等多个领域展现出卓越性能。它在 SWE-Bench Multimodal、GAIA 和 Th…...