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

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

<6>-MySQL表的增删查改

目录 一&#xff0c;create&#xff08;创建表&#xff09; 二&#xff0c;retrieve&#xff08;查询表&#xff09; 1&#xff0c;select列 2&#xff0c;where条件 三&#xff0c;update&#xff08;更新表&#xff09; 四&#xff0c;delete&#xff08;删除表&#xf…...

PPT|230页| 制造集团企业供应链端到端的数字化解决方案:从需求到结算的全链路业务闭环构建

制造业采购供应链管理是企业运营的核心环节&#xff0c;供应链协同管理在供应链上下游企业之间建立紧密的合作关系&#xff0c;通过信息共享、资源整合、业务协同等方式&#xff0c;实现供应链的全面管理和优化&#xff0c;提高供应链的效率和透明度&#xff0c;降低供应链的成…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强&#xff0c;React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 &#xff08;1&#xff09;使用React Native…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...