[前端开发] 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 如果参数为空返回- infinity
      
      Math.min(1,2,3) //1 如果参数为空返回infinity
      
      Math.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

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

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

相关文章

009集——磁盘详解——电脑数据如何存储在磁盘

很多人也知道数据能够保存是由于设备中有一个叫做「硬盘」的组件存在&#xff0c;但也有很多人不知道硬盘是怎样储存这些数据的。这里给大家讲讲其中的原理。 首先我们要明白的是&#xff0c;计算机中只有0和1&#xff0c;那么我们存入硬盘的数据&#xff0c;实际上也就是一堆0…

WMS仓库管理系统:一文掌握,不懂的的看过来。

本期B端系统扫盲带来WMS系统&#xff0c;这个的应用也非常常见&#xff0c;贝格前端工场力争用浅显的语言将此系统介绍清楚&#xff0c;如有系统升级和定制需求的可以单独沟通&#xff0c;闲言少叙开整。 一、WMS系统的定义 WMS是Warehouse Management System的缩写&#xff…

平时积累的FPGA知识点(9)

平时在FPGA群聊等积累的FPGA知识点&#xff0c;第9期&#xff1a; 31 ldpc的license是什么&#xff1f; 解释&#xff1a;Xilinx公司的Zynq UltraScale RFSoC系列芯片进行项目开发&#xff0c;在某些芯片型号中&#xff0c;自身带有SD-FEC硬核资源&#xff0c;具体查询方式&a…

算法学习——LeetCode力扣贪心篇4

算法学习——LeetCode力扣贪心篇4 763. 划分字母区间 763. 划分字母区间 - 力扣&#xff08;LeetCode&#xff09; 描述 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段&#xff0c;同一字母最多出现在一个片段中。 注意&#xff0c;划分结果需要满足&#xf…

找负环(图论基础)

文章目录 负环spfa找负环方法一方法二实际效果 负环 环内路径上的权值和为负。 spfa找负环 两种基本的方法 统计每一个点的入队次数&#xff0c;如果一个点入队了n次&#xff0c;则说明存在负环统计当前每个点中的最短路中所包含的边数&#xff0c;如果当前某个点的最短路所…

MySQL数据库基础(三):Linux系统下的MySQL安装与使用

文章目录 Linux系统下的MySQL安装与使用 一、MySQL部署安装 1. 卸载自带的MySQL8 2. 删除自带配置文件 3. 下载MySQL源 4. 安装MySQL源 5. 使用yum安装MySQL 6. 获取默认密码 7. 登录MySQL 8. 修改密码 二、登陆MySQL数据库 1、本地&#xff08;针对本地MySQL&…

备战蓝桥杯---数据结构之好题分享1

最近几天在刷学校的题单时&#xff0c;发现了几道十分巧妙又有启发性的题&#xff0c;借此来记录分享一下。 看题&#xff1a; 从整体上看似乎没有什么规律&#xff0c;于是我们从小地方入手&#xff0c;下面是图解&#xff1a; 因此&#xff0c;我们用栈的数据结构实现即可&a…

[职场] 求职如何设置预期 #笔记#经验分享

求职如何设置预期 在求职的道路上&#xff0c;无论处于哪个年龄阶段&#xff0c;合理的就业期望值才能使我们的愿望与社会的需求相吻合&#xff0c;才能让自己在今后的工作中发挥出最大的实力与能力。 一、结合测评软件&#xff0c;明确求职目标 根据霍兰德职业兴趣测试结果&a…

Sibelius安装包免费下载激活指南,西贝柳斯,专业作曲打谱软件

Sibelius来自芬兰音乐巨匠西贝柳斯的故乡&#xff0c;被誉为世界上最强的五线谱软件。Sibelius功能全面、音色音质精准受到广大作曲家的喜爱。其乐谱记号十分全面&#xff0c;所有的乐谱都可以应付自如&#xff0c;Sibelius可以迅速完成作曲、编曲、发布任务&#xff0c;轻松开…

『运维备忘录』之 Zip 命令详解

运维人员不仅要熟悉操作系统、服务器、网络等只是&#xff0c;甚至对于开发相关的也要有所了解。很多运维工作者可能一时半会记不住那么多命令、代码、方法、原理或者用法等等。这里我将结合自身工作&#xff0c;持续给大家更新运维工作所需要接触到的知识点&#xff0c;希望大…

07MARL经典算法 Policy-Based Learning

文章目录 前言一、基于策略方法的提出二、普遍的梯度上升的更新方法 前言 MARL基础算法第三类基于策略的学习 一、基于策略方法的提出 目前为止方法总体就是评估价值函数&#xff0c;基于价值函数更新策略&#xff0c;这些方法都具有一定的限制&#xff0c;如JAL-SG不能有效收…

JVM对象创建与内存分配机制深度剖析

对象的创建 对象创建的主要流程: 1.类加载检查 虚拟机遇到一条new指令时&#xff0c;首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用&#xff0c;并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有&#xff0c;那必须先执行相应的类…

KMS知识管理系统:一文扫盲,体验为王,落地为皇

知识管理系统是学习型组织的必备&#xff0c;重要性不言而喻&#xff0c;但是往往在执行中不能落地&#xff0c;本位尝试做些KMS的扫盲。 一、KMS是什么 知识管理系统&#xff08;英语&#xff1a;Knowledge management system&#xff09;是一种用于管理和共享企业内部知识的…

磁盘database数据恢复: ddrescue,dd和Android 设备的数据拷贝

ddrescue和dd 区别&#xff1a; GNU ddrescue 不是 dd 的衍生物&#xff0c;也与 dd 没有任何关系 除了两者都可用于将数据从一台设备复制到另一台设备。 关键的区别在于 ddrescue 使用复杂的算法来复制 来自故障驱动器的数据&#xff0c;尽可能少地造成额外的损坏。ddrescue…

Java中的Queue队列的基本讲解

目录 一、创建队列 二、Queue的一些常用方法 对于队列的概念我就不多说了吧&#xff0c;先进先出&#xff0c;比如1,2,3进入队列&#xff0c;出队列也是1,2,3。这里我主要说的是在Java中如何创建和使用队列。 一、创建队列 队列的创建&#xff0c;也可以说是队列的实例化。 Q…

MySQL学习Day15——MySQL安装与使用

一、Linux下的MySQL的安装与使用: 卸载MySQL: 1.关闭当前MySQL服务:systemctl stop mysql.service 2.查看当前mysql安装状况:rpm -qa | grep -i mysql 3.卸载上述命令查询出的已安装的程序:yum remove mysql-xxx mysql-xxx mysql-xxxx 4.删除mysql相关文件: (1)查找相关文…

NSSCTF Round#18 RE WP 完整复现

1. GenshinWishSimulator 恶搞原神抽卡模拟器 看到软件的界面&#xff0c;大致有三种思路&#xff1a; 修改石头数量一直抽&#xff0c;如果概率正常肯定能抽到&#xff08;但是估计设置的概率是0&#xff09;在源码里找flag的数据把抽卡概率改成100%直接抽出来 Unity逆向&am…

React 的调度系统 Scheduler

原文地址1 原文地址2 其中startTime是任务开始的时间&#xff0c;默认是-1&#xff0c;任务开始时将任务开始时间赋值给了startTime&#xff0c; 这里意思是判断这个任务执行时间是否超过5ms(写死的)。若超过&#xff0c;则要交出。

软件风险分类整理

软件项目风险分类整理 1.需求分析 2.软件设计 3.编码和单元测试 4.集成和测试 5.验收和维护 6.团队管理 7.成本管理 8.组织管理

掌握Go并发:Go语言并发编程深度解析

&#x1f3f7;️个人主页&#xff1a;鼠鼠我捏&#xff0c;要死了捏的主页 &#x1f3f7;️系列专栏&#xff1a;Golang全栈-专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&…