12 JavaScript学习: 字符串

JavaScript 字符串

JavaScript 字符串是一种用于存储和操作文本数据的数据类型。字符串可以包含字母、数字、符号和空格等字符。在 JavaScript 中,字符串可以使用单引号(')或双引号(")来定义。

例如:

let str1 = 'Hello, World!';
let str2 = "JavaScript is awesome!";

在 JavaScript 中,字符串是不可变的,这意味着一旦创建了一个字符串,就不能再对其进行修改。但是可以通过一些字符串方法来对字符串进行操作,例如连接、截取、替换等。

在 JavaScript 中,字符串是以字符序列的形式存储在内存中的。每个字符都有一个对应的索引,从0开始递增。通过索引,可以访问和操作字符串中的特定字符。

例如,对于字符串 “Hello, World!”,每个字符的索引如下:

  • “H” 的索引是 0
  • “e” 的索引是 1
  • “l” 的索引是 2
  • “l” 的索引是 3
  • “o” 的索引是 4
  • “,” 的索引是 5
  • " " 的索引是 6
  • “W” 的索引是 7
  • “o” 的索引是 8
  • “r” 的索引是 9
  • “l” 的索引是 10
  • “d” 的索引是 11
  • “!” 的索引是 12

可以使用索引来访问字符串中的特定字符,如下所示:

let str = "Hello, World!";
console.log(str[0]); // 输出:H
console.log(str[7]); // 输出:W

需要注意的是,JavaScript 中的字符串是不可变的,这意味着实现。

另外,还可以使用字符串的 length 属性来获取字符串的长度,即字符的个数。例如:

let str = "Hello, World!";
console.log(str.length); // 输出:13

所以说,JavaScript 字符串是以字符序列的形式存储在内存中的,每个字符都有一个对应的索引。通过索引和字符串的 length 属性,可以访问和操作字符串中的字符和长度。

JavaScript 字符串长度

在 JavaScript 中,可以使用字符串的 length 属性来获取字符串的长度,即字符串中字符的个数。字符串的长度包括所有的字符,包括字母、数字、符号和空格等。

例如:

let str = "Hello, World!";
console.log(str.length); // 输出:13

在上面的例子中,字符串 “Hello, World!” 的长度是 13,因为它包含了 13 个字符,包括字母、逗号、空格和感叹号。

需要注意的是,length 属性返回的是字符串中字符的个数,而不是字节的个数。在 JavaScript 中,字符串是以 UTF-16 编码方式存储的,每个字符占用 2 个字节的空间。因此,对于包含非 ASCII 字符的字符串,其长度可能不等于字节的个数。

另外,如果字符串是空字符串(即不包含任何字符),那么它的长度为 0。例如:

let emptyStr = "";
console.log(emptyStr.length); // 输出:0

JavaScript 字符串的长度可以通过字符串的 length 属性来获取,用于获取字符串中字符的个数。

JavaScript 特殊字符

在 JavaScript 中,可以使用一些特殊字符来表示无法直接输入的字符,例如换行符、制表符、引号等。这些特殊字符都以反斜杠(\)开头,称为转义字符。下面是一些常用的特殊字符及其含义:

  1. \n:换行符
    用于在字符串中表示换行,将文本移到下一行。例如:

    console.log("Hello,\nWorld!");
    // 输出:
    // Hello,
    // World!
    
  2. \t:制表符
    用于在字符串中表示制表符,将文本向右对齐。例如:

    console.log("Name:\tJohn");
    // 输出:Name:    John
    
  3. \':单引号
    用于在字符串中表示单引号。例如:

    console.log('He\'s a programmer.');
    // 输出:He's a programmer.
    
  4. \":双引号
    用于在字符串中表示双引号。例如:

    console.log("She said, \"Hello!\"");
    // 输出:She said, "Hello!"
    
  5. \\:反斜杠
    用于在字符串中表示反斜杠。例如:

    console.log("C:\\Users\\John\\Documents");
    // 输出:C:\Users\John\Documents
    

这些特殊字符在字符串中的使用可以帮助我们表示一些无法直接输入的字符,使字符串更加灵活和易读。通过转义字符,我们可以在字符串中包含换行符、制表符、引号等特殊字符,实现更丰富的文本表达。

字符串属性

在这里插入图片描述

在 JavaScript 中,字符串是一种基本数据类型,但它也具有一些属性和方法,可以通过字符串对象访问。下面是一些常用的字符串属性:

  1. length:返回字符串的长度,即字符串中字符的个数。例如:

    let str = "Hello, World!";
    console.log(str.length); // 输出:13
    
  2. constructor:返回创建字符串对象的构造函数。例如:

    let str = "Hello, World!";
    console.log(str.constructor); // 输出:function String() { [native code] }
    
  3. prototype:允许您向对象添加属性和方法。 ```javascript

    String.prototype.myMethod = function() {return this.toUpperCase();
    };
    let str = "Hello, World!";
    console.log(str.myMethod()); // 输出:HELLO, WORLD!这些是一些常用的字符串属性,它们可以帮助我们获取字符串的长度、构造函数、原型方法等信息。通过这些属性,我们可以更好地了解和操作字符串对象。
    

JavaScript 字符串方法

JavaScript 提供了许多字符串方法,用于对字符串进行各种操作和处理。下面是一些常用的字符串方法的详细解释:

  1. concat():连接两个或多个字符串,并返回一个新的字符串。

    let str1 = "Hello, ";
    let str2 = "World!";
    let newStr = str1.concat(str2);
    console.log(newStr); // 输出:Hello, World!
    
  2. indexOf():返回指定字符在字符串中第一次出现的位置。

    let str = "Hello, World!";
    let position = str.indexOf("World");
    console.log(position); // 输出:7
    
  3. substring():返回指定位置的子字符串。

    let str = "Hello, World!";
    let subStr = str.substring(7, 12);
    console.log(subStr); // 输出:World
    
  4. replace():替换字符串中的指定字符。

    let str = "Hello, World!";
    let replacedStr = str.replace("World", "JavaScript");
    console.log(replacedStr); // 输出:Hello, JavaScript!
    
  5. toUpperCase():将字符串转换为大写。

    let str = "hello, world!";
    let upperCaseStr = str.toUpperCase();
    console.log(upperCaseStr); // 输出:HELLO, WORLD!
    
  6. toLowerCase():将字符串转换为小写。

    let str = "HELLO, WORLD!";
    let lowerCaseStr = str.toLowerCase();
    console.log(lowerCaseStr); // 输出:hello, world!
    
  7. trim():去除字符串两端的空格。

    let str = "   Hello, World!   ";
    let trimmedStr = str.trim();
    console.log(trimmedStr); // 输出:Hello, World!
    
  8. split():将字符串分割成数组。

    let str = "apple,banana,orange";
    let fruits = str.split(",");
    console.log(fruits); // 输出:["apple", "banana", "orange"]
    

这些是一些常用的字符串方法,它们可以帮助我们对字符串进行连接、查找、替换、大小写转换、去除空格、分割等操作。通过这些方法,我们可以更灵活地处理和操作字符串。

在这里插入图片描述

JavaScript 模板字符串

在 JavaScript 中,模板字符串是一种特殊的字符串,它允许在字符串中嵌入变量和表达式,以一种更简洁和易读的方式来构建字符串。模板字符串使用反引号(``)来定义,可以在字符串中使用 ${} 来引用变量或表达式。

下面是一个简单的例子,演示了如何使用模板字符串:

let name = "Alice";
let age = 30;let message = `Hello, my name is ${name} and I am ${age} years old.`;
console.log(message); // 输出:Hello, my name is Alice and I am 30 years old.

在上面的例子中,我们使用模板字符串定义了一个包含变量 nameage 的字符串,并通过 ${} 来引用这些变量,从而构建了一个完整的消息字符串。

模板字符串不仅可以嵌入变量,还可以包含表达式,甚至是多行文本。例如:

let a = 10;
let b = 20;let result = `The sum of ${a} and ${b} is ${a + b}.`;let multiLine = `This is a multi-line text.
`;console.log(result); // 输出:The sum of 10 and 20 is 30.
console.log(multiLine);
// 输出:
//   This is a
//   multi-line
//   text.

通过使用模板字符串,我们可以更方便地构建包含文本的字符串,使代码更易读和维护。模板字符串是 JavaScript 中一个非常实用的特性,可以大大提高字符串处理的灵活性和效率。

关注我,不迷路,共学习,同进步

关注我,不迷路,共学习,同进步

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

链表与模拟LinkedList的实现

1. ArrayList的缺陷 ArrayList底层使用数组来存储元素 由于其底层是一段连续空间,当在ArrayList任意位置插入或者删除元素时,就需要将后序元素整体往前或者往后 搬移,时间复杂度为O(n),效率比较低。因此ArrayList不适合做任意位…

机械臂过程

rosdep install --from-paths src --ignore-src --rosdistro melodic0、安装机械手臂 官方教程: 前人教程:UR5机械臂仿真实例 rosdep update 出错,使用小鱼的大佬的 一键配置 wget http://fishros.com/install -O fishros && . fish…

Rest微服务案例

Rest 父工程构建microservicecloud-api公共子模块Modulemicroservicecloud-provider-dept-8001部门微服务提供者Modulemicroservicecloud-consumer-dept-80部门微服务消费者Module 以Dept部门模块做一个微服务通用案例 Consumer消费者(Client)通过REST调…

ssm082基于java斗车交易系统设计与实现+vue

斗车交易系统 摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理&…

第三篇:Python编程基础:掌握核心语法与开发技巧

Python编程基础:掌握核心语法与开发技巧 1 引言 在这个信息化迅速蔓延的世界中,Python语言如同钥匙一般开启了通往各种可能性的大门。无论你是数据科学家、网络工程师、机器学习专家,还是仅仅对自动化办公感兴趣的办公室人员,Pyt…

环境配置——Windows平台配置VScode运行环境为远程服务器或虚拟机

1. 远程机需要先安装SSH服务,命令如下 sudo apt install openssh-server 2. 安装好后需要开启SSH服务: sudo service sshd start 3. 查看SSH服务是否有被开启: sudo systemctl status sshd.service 4. 本地Windows需要生成密钥将公钥放…

CTFshow-PWN-栈溢出(pwn36)

存在后门函数,如何利用? 好好好,终于到了这种有后门函数的了 checksec 检查一下: 32 位程序,RELRO 保护部分开启 RWX: Has RWX segments 存在可读可写可执行的段 使用 ida32 看 main 函数 跟进 ctfshow 函数…

go语言并发实战——日志收集系统(十) 重构tailfile模块实现同时监控多个日志文件

前言 在上一篇文章中,我们实现了通过etcd来同时指定多个不同的有关分区与日志文件的路径,但是锁着一次读取配置的增多,不可避免的出现了一个问题:我们如何来监控多个日志文件,这样原来的tailFile模块相对于当下场景就…

Golang | Leetcode Golang题解之第46题全排列

题目: 题解: func permute(nums []int) [][]int {var (n len(nums)dfs func(vals []int) // 已选择数 排列为vals 后续回溯继续选择 直至选完ans [][]int)dfs func(vals []int) {//边界if len(vals) n {ans append(ans, vals)}//转移 枚举选哪个f…

嵌入式系统中的实时操作系统(RTOS)深入应用与优化

引言 实时操作系统(RTOS)在嵌入式系统中扮演着至关重要的角色,特别是在需要快速响应和高度可靠性的应用中。 我将探讨如何在STM32单片机上实现RTOS,包括任务管理、内存管理以及中断处理,以提高系统的效率和响应速度。…

github+PicGo+obsidian来作为你的免费高效可靠图床吧

前提 一直以来 博客的图床问题都是个大问题 ,如何找到一个 可靠并且 方便的搭建方式 非常重要 今天介绍一种 githubpicGoobsidian的搭建方式 准备github库 生成个人github token 找到个人 设置 生成一个新token 或者已经有的直接用 新生成的token 需要记录下来 这可能是你最后…

vue3.2+vite+unocss原子化配置

1、安装unocss:npm install unocss 2、vite.config.ts中配置: 3、创建unocss自己的ts文件:uno.config.ts 根路径下创建, 4、在创建好的uno.config.ts文件中编写如下代码: // uno.config.ts import {defineConfig,prese…

关于MySQL Command Line Client 运行闪退问题解决,my.ini文件内容

MySQL Command Line Client 运行闪退问题解决,缺少my.ini文件_通过下载msi安装mysql,双击打开mysql 8.2 command line client --CSDN博客 打开mysql Command Line Client 发现直接闪退,一直不明所以(这里是没输密码,直接一闪而过…

python学习笔记----python基础语法(二)

一、字面量 在 Python 中,字面量 是一种直接在代码中表示其自身值的数据。字面量用于创建值,并且可以直接被 Python 的解释器识别和处理。不同类型的数据有不同的字面量形式。下面是一些常见的字面量类型: 二、注释 注释:在程序…

【I2C】基于SystemVerilog的16比特I/O拓展芯片TCA6416A读写控制

功能简介 本文基于Xilinx Virtex UltrascaleHBM VCU128 FPGA开发板,通过利用开发板上的TCA6416A芯片,对I2C通信方式进行学习。   根据VCU128用户手册,128中具有两条I2C总线,其中一条连接有4个I2C芯片,能够与系统监视…

Java Web 网页设计(3)

3.servlet JavaWeb——Servlet(全网最详细教程包括Servlet源码分析)-CSDN博客 servlet java不支持 只有Tomcat支持 使用时添加一下 servlet中最常用的两个(固定)方法: 下面我们创建一个servlet类 package com.oracle…

汽车组装3D电子说明书更通俗易懂

激光打印机由于造价高、技术更先进,因此在使用和维护上需要更专业的手法,而对于普通客户来说并不具备专业操作激光打印机的技能,为了通俗易懂地让客户理解激光打印机,我们为企业定制了激光打印机3D产品说明书,将为您带…

《QT实用小工具·三十五》基于PathView,Qt/QML做的一个可以无限滚动的日历控件

1、概述 源码放在文章末尾 改项目实现了基于PathView,Qt/QML做的一个可以无限滚动的日历控件,下面是demo演示: 项目部分代码如下所示: import QtQuick 2.7 import QtQuick.Controls 1.4 import QtQuick.Controls.Styles 1.4Bu…

【最优化】牛顿法、高斯-牛顿法

一、牛顿法 1、牛顿法在一维搜索中的应用 在一维搜索中我们所要解决的问题是如何找函数f(x)的最小值。 牛顿法的核心思想是用二次函数拟合函数f(x)的某一邻域区间,用二次函数的极小值点作为下一次的迭代点。通过多次迭代使得二次函数的极小值逼近函数f(x)的极小值 …

Trivy离线扫描:容器安全实践指南

一、Trivy简介 1.1 Trivy 概述 Trivy 是一款全面多功能的安全扫描器。Trivy具有寻找安全问题和目标的扫描器。现已经被 Github Action、Harbor 等主流工具集成,Trivy支持大多数流行的编程语言、操作系统和平台的扫描,应该是该领域目前目前采用最广的开…