JavaScript字符串

news2025/1/16 0:37:42

请添加图片描述
这张图片主要介绍了JavaScript中的字符串类型(string)。

字符串

1. 字符串的定义

在JavaScript中,通过单引号(')、双引号(")或反引号(`)包裹的数据都叫字符串。单引号和双引号没有本质上的区别,推荐使用单引号。

示例代码如下:

let uname = '小明'; // 使用单引号
let gender = "男"; // 使用双引号
let goods = `小米`; // 使用反引号
2. 特殊情况
  • 即使看上去是数字,但如果用引号包裹了,那就是字符串。例如:
    let tel = '1368113456'; // 看上去是数字,但是引号包裹了就是字符串
    
  • 空字符串是指两个引号中间没有任何字符。例如:
    let str = ''; // 这种情况叫空字符串
    
3. 注意事项
  • 引号的使用规则
    • 无论单引号或是双引号必须成对使用。例如:
      let wrong1 = '这是一个错误的单引号;
      let correct1 = '这是正确的单引号';
      
    • 单引号/双引号可以互相嵌套,但是不以自己嵌套自己(口诀:外双内单,或者外单内双)。例如:
      let correct2 = "这是'单引号'在双引号内";
      let correct3 = '这是"双引号"在单引号内';
      
    • 错误的嵌套示例:
      let wrong2 = '这是一个错误的'单引号'嵌套';
      let wrong3 = "这是一个错误的"双引号"嵌套";
      
  • 转义符
    • 必要时可以使用转义符(\)输出单引号或双引号。例如:
      let correct4 = '这是一个包含单引号的字符串: \' ';
      let correct5 = "这是一个包含双引号的字符串: \" ";
      

字符串拼接

在JavaScript中,字符串拼接是将两个或多个字符串连接在一起形成一个新字符串的操作。以下是几种常见的字符串拼接方法:

1. 使用加号(+)运算符

这是最常见的字符串拼接方法。当使用加号连接两个字符串时,JavaScript会自动将它们拼接在一起。

let str1 = "Hello";
let str2 = "World";
let result = str1 + " " + str2;
console.log(result); // "Hello World"

如果要将字符串与其他数据类型(如数字)拼接,JavaScript会自动将非字符串类型转换为字符串类型。

let num = 42;
let str = "The answer is: " + num;
console.log(str); // "The answer is: 42"
2. 使用模板字面量(Template Literals)

ES6引入了模板字面量,使用反引号(`)来定义字符串,可以在字符串中嵌入表达式,使用${}来包裹表达式。

let name = "Alice";
let age = 30;
let message = `My name is ${name} and I am ${age} years old.`;
console.log(message); // "My name is Alice and I am 30 years old."
3. 使用concat()方法

字符串对象有一个concat()方法,可以用于拼接字符串。它可以接受多个参数,每个参数都会被拼接到原字符串的末尾。

let str3 = "Good";
let str4 = "Morning";
let result2 = str3.concat(" ", str4);
console.log(result2); // "Good Morning"

4. 使用数组的join()方法(间接方法)

可以将字符串放入数组中,然后使用数组的join()方法将它们拼接在一起。

let parts = ["I", "love", "JavaScript"];
let joinedStr = parts.join(" ");
console.log(joinedStr); // "I love JavaScript"

在JavaScript中,prompt()是一个内置函数,用于弹出一个对话框,提示用户输入文本。它的基本语法如下:

prompt([message[, default]])
  • message:可选参数,是一个字符串,用于在对话框中显示提示信息,告诉用户需要输入什么内容。
  • default:可选参数,是一个字符串,用于设置输入框中的默认值。

prompt()函数的返回值是用户输入的字符串,如果用户点击了“取消”按钮,则返回null

prompt

以下是一些使用prompt()函数的示例:

示例一:简单使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <script>
        let name = prompt("请输入你的名字:");
        if (name!== null) {
            alert("你输入的名字是:" + name);
        } else {
            alert("你取消了输入。");
        }
    </script>
</body>
</html>

在这个示例中,prompt()函数弹出一个对话框,要求用户输入名字。如果用户输入了名字,name变量将保存用户输入的字符串,然后通过alert()函数显示用户输入的名字;如果用户点击了“取消”按钮,name变量将为null,则显示用户取消了输入。

示例二:设置默认值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
    <script>
        let age = prompt("请输入你的年龄:", "18");
        if (age!== null) {
            alert("你输入的年龄是:" + age);
        } else {
            alert("你取消了输入。");
        }
    </script>
</body>
</html>

在这个示例中,prompt()函数的第二个参数设置了输入框中的默认值为"18"。如果用户不输入任何内容而直接点击“确定”按钮,age变量将为"18"

prompt()函数在获取用户简单输入时非常有用,但在实际开发中,可能会使用HTML表单和其他交互方式来获取用户输入,以提供更好的用户体验和数据验证。

模板字符串

模板字符串(Template Strings)
  1. 定义

    • 模板字符串是ES6引入的一种新的字符串表示方法,使用反引号(`)来定义字符串,而不是单引号(')或双引号(")。
    • 例如:
      let str = `This is a template string.`;
      
  2. 特性

    • 多行字符串
      • 模板字符串可以轻松地表示多行字符串,不需要使用转义字符(\n)来换行。
      • 例如:
        let multiLineStr = `
        This is a
        multi - line
        string.
        `;
        
    • 字符串插值(String Interpolation)
      • 模板字符串允许在字符串中嵌入表达式,使用${}来包裹表达式。这使得在构建字符串时可以动态地插入变量或执行简单的运算。
      • 例如:
        let name = "Alice";
        let age = 30;
        let message = `My name is ${name} and I am ${age} years old.`;
        console.log(message); // "My name is Alice and I am 30 years old."
        
      • 还可以在${}中嵌入函数调用或其他表达式:
        let num1 = 5;
        let num2 = 10;
        let resultStr = `The sum of ${num1} and ${num2} is ${num1 + num2}.`;
        console.log(resultStr); // "The sum of 5 and 10 is 15."
        
  3. 标签模板(Tagged Templates)

    • 模板字符串可以被标记(Tagged),这意味着可以在模板字符串前添加一个函数来处理该字符串。
    • 例如:
      function tagFunc(strings,...values) {
        let result = "";
        for (let i = 0; i < strings.length; i++) {
          result += strings[i];
          if (i < values.length) {
            result += values[i];
          }
        }
        return result;
      }
      let name = "Bob";
      let age = 25;
      let taggedStr = tagFunc`My name is ${name} and I am ${age} years old.`;
      console.log(taggedStr); // "My name is Bob and I am 25 years old."
      
    • 标签函数(tagFunc)接收两个参数:
      • strings:一个包含所有普通字符串部分(即没有被${}包裹的部分)的数组。
      • values:一个包含所有表达式计算结果的数组。

模板字符串在现代JavaScript开发中非常常用,尤其是在构建动态内容时,它提供了一种简洁和灵活的方式来处理字符串。

未定义数据类型(undefined)

  1. 概念
    • 在JavaScript中,undefined是一种原始数据类型。当一个变量被声明但没有被赋值时,它的默认值就是undefined
    • 例如:
      let myVariable;
      console.log(myVariable); // 输出:undefined
      
  2. 常见情况
    • 函数没有返回值
      • 如果一个函数没有显式地使用return语句返回一个值,那么该函数默认返回undefined
      • 例如:
        function myFunction() {
          // 没有return语句
        }
        let result = myFunction();
        console.log(result); // 输出:undefined
        
    • 访问对象不存在的属性
      • 当试图访问一个对象中不存在的属性时,会得到undefined
      • 例如:
        let myObject = {
          name: "John"
        };
        console.log(myObject.age); // 输出:undefined
        
  3. null的区别
    • undefined表示变量声明了但未赋值,而null表示一个空值,通常是开发者有意为之,用来表示“没有对象”或“空对象指针”。
    • 例如:
      let variable1;
      let variable2 = null;
      console.log(variable1); // 输出:undefined
      console.log(variable2); // 输出:null
      

布尔数据类型(boolean)

  1. 概念
    • 布尔数据类型在JavaScript中只有两个值:truefalse。它通常用于条件判断和逻辑运算。
    • 例如:
      let isTrue = true;
      let isFalse = false;
      
  2. 类型转换
    • 转换为布尔值
      • JavaScript中的许多值都可以被隐式或显式地转换为布尔值。以下是一些常见的转换规则:
        • 真值(转换为true
          • 所有非空字符串,例如"Hello"
          • 所有非零数字,例如5
          • 所有非空对象,例如{name: "Alice"}
        • 假值(转换为false
          • 空字符串""
          • 数字0
          • null
          • undefined
          • false本身。
      • 可以使用Boolean()函数显式地将一个值转换为布尔值。
      • 例如:
        console.log(Boolean("")); // 输出:false
        console.log(Boolean(0)); // 输出:false
        console.log(Boolean(null)); // 输出:false
        console.log(Boolean(undefined)); // 输出:false
        console.log(Boolean(false)); // 输出:false
        console.log(Boolean("Hello")); // 输出:true
        console.log(Boolean(5)); // 输出:true
        console.log(Boolean({name: "Alice"})); // 输出:true
        
  3. 布尔运算
    • 布尔数据类型常用于逻辑运算,如&&(与)、||(或)、!(非)。
    • 例如:
      let a = 5;
      let b = 10;
      console.log(a > 0 && b > 0); // 输出:true(因为a > 0和b > 0都为真)
      console.log(a > 10 || b > 0); // 输出:true(因为b > 0为真)
      console.log(!(a > 10)); // 输出:true(因为a > 10为假,取非后为真)
      

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

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

相关文章

Linq中的投影运算 (C#):Select、SelectMany、Zip

投影是指将对象转换为一种新形式的操作&#xff0c;该形式通常只包含那些将随后使用的属性。 通过使用投影&#xff0c;您可以构造从每个对象生成的新类型。 可以投影属性&#xff0c;并对该属性执行数学函数。 还可以在不更改原始对象的情况下投影该对象。 1、Select 下面的…

RabbitMQ在手动消费的模式下设置失败重新投递策略

最近在写RabbitMQ的消费者&#xff0c;因为业务需求&#xff0c;希望失败后重试一定次数&#xff0c;超过之后就不处理了&#xff0c;或者放入死信队列。我这里就达到重试次数后就不处理了。本来以为很简单的&#xff0c;问了kimi&#xff0c;按它的方法配置之后&#xff0c;发…

Maven install java heap space

Maven install java heap space 打包报错 Maven install java heap space 解决&#xff1a; vm option: -Xms1024m -Xmx1024m如果 vm配置了&#xff0c;还是一样报错&#xff0c;就重新选择JRE看看是否正确&#xff0c;idea会默认自己的环境&#xff0c;导致设置vm无效&…

OpenCV_Code_LOG

孔洞填充 void fillHole(const Mat srcBw, Mat &dstBw) {Size m_Size srcBw.size();Mat TempMat::zeros(m_Size.height2,m_Size.width2,srcBw.type());//延展图像srcBw.copyTo(Temp(Range(1, m_Size.height 1), Range(1, m_Size.width 1)));cv::floodFill(Temp, Point(…

C7.5【x86汇编】底层分析范围for的执行过程

目录 1.反汇编代码 2.分析 1.栈区初始化 2.设置数组元素的值 3. 逐条分析范围for 1.arr的地址被放到[ebp-2Ch]处 2.[ebp-2Ch]指向的值被复制一份到[ebp-30h]处 3.eax暂存[ebp-2Ch]指向的值,加28h后存储到[ebp-34h]处 4.跳转指令 5.比较[ebp-30h]和[ebp-34h]指向的值,…

hue 4.11容器化部署,已结合Hive与Hadoop

配合《Hue 部署过程中的报错处理》食用更佳 官方配置说明页面&#xff1a; https://docs.gethue.com/administrator/configuration/connectors/ 官方配置hue.ini页面 https://github.com/cloudera/hue/blob/master/desktop/conf.dist/hue.ini docker部署 注意&#xff1a; …

51单片机快速入门之中断的应用 2024/11/23 串口中断

51单片机快速入门之中断的应用 基本函数: void T0(void) interrupt 1 using 1 { 这里放入中断后需要做的操作 } void T0(void)&#xff1a; 这是一个函数声明&#xff0c;表明函数 T0 不接受任何参数&#xff0c;并且不返回任何值。 interrupt 1&#xff1a; 这是关键字和参…

ffmpeg安装(windows)

ffmpeg安装-windows 前言ffmpeg安装路径安装说明 前言 ffmpeg的安装也是开箱即用的,并没有小码哥说的那么难 ffmpeg安装路径 这就下载好了! 安装说明 将上面的bin目录加入到环境变量,然后在cmd中测试一下: C:\Users\12114\Desktop\test\TaskmgrPlayer\x64\Debug>ffmpe…

HCIA笔记6--路由基础

0. 概念 自治系统&#xff1a;一个统一管理的大型网络&#xff0c;由路由器组成的集合。 路由器隔离广播域&#xff0c;交换机隔离冲突域。 1.路由器工作原理 路由器根据路由表进行转发数据包&#xff1b; 路由表中没有路由&#xff0c;直接丢弃该数据包路由表中只有一条路…

IDEA如何快速地重写方法,如equals、toString等

前言 大家好&#xff0c;我是小徐啊。我们在使用IDEA的时候&#xff0c;有时候是需要重写equals和toString等方法的。这在IDEA中已经很方便的给我们准备好了快速的操作了。今天就来讲解一下。 如何重写 首先&#xff0c;打开要重写方法的文件&#xff0c;让鼠标定位到这个文…

跨境物流市场风云变幻,集运企业需精准决策以应对挑战

跨境物流市场&#xff0c;作为全球经济的重要纽带&#xff0c;正经历着前所未有的风云变幻。据最新数据显示&#xff0c;全球海运贸易在2023年实现了2.4%的增长&#xff0c;并预计在今年年底前将再增长2%。这一增长态势虽然积极&#xff0c;但背后却隐藏着诸多挑战与不确定性。…

2024年首届数证杯 初赛wp

“数证杯”电子数据取证分析大赛致力于成为全国第一大电子数据取证分析大赛&#xff0c;面向所有网络安全从业人员公开征集参赛选手。参赛选手根据所属行业报名参赛赛道&#xff0c;比赛设置冠军、亚军、季军奖。所涉及行业包括能源、金融、通信、取证、安全等企业以及各类司法…

电机瞬态分析基础(3):空间矢量

1. 空间矢量 空间矢量的概念在交流电机分析与控制中具有非常重要的作用。将各相的电压、电流、磁链等电磁量用空间矢量表达&#xff0c;可以使三相感应电机的动态方程表达更简洁&#xff0c;为电机的分析与控制带来方便&#xff0c;并有助于对交流电机的矢量控制、直接转矩控制…

C/C++绘制爱心

系列文章 序号直达链接1C/C爱心代码2C/C跳动的爱心3C/C李峋同款跳动的爱心代码4C/C满屏飘字表白代码5C/C大雪纷飞代码6C/C烟花代码7C/C黑客帝国同款字母雨8C/C樱花树代码9C/C奥特曼代码10C/C精美圣诞树11C/C俄罗斯方块12C/C贪吃蛇13C/C孤单又灿烂的神-鬼怪14C/C闪烁的爱心15C/…

LLM应用-prompt提示:RAG query重写、相似query生成 加强检索准确率

参考&#xff1a; https://zhuanlan.zhihu.com/p/719510286 1、query重写 你是一名AI助手&#xff0c;负责在RAG&#xff08;知识库&#xff09;系统中通过重构用户查询来提高检索效果。根据原始查询&#xff0c;将其重写得更具体、详细&#xff0c;以便更有可能检索到相关信…

MTK主板_小型联发科安卓主板_行业智能终端主板基于联发科方案

MTK安卓主板是一款小巧而高效的科技产品&#xff0c;其尺寸仅为43.4mm x 57.6mm。采用了先进的联发科12nm制程工艺&#xff0c;这款主板搭载四核或八核64位A53架构的CPU&#xff0c;主频高达2.0GHz&#xff0c;不但保证了出色的计算能力&#xff0c;还实现了超低功耗的特点。系…

递归---汉诺塔

问题描述 有三根相邻的柱子&#xff0c;标号为A,B,C&#xff0c;A柱子上从下到上按金字塔状叠放着n个不同大小的圆盘&#xff0c;要把所有盘子一个一个移动到柱子B上&#xff0c;并且每次移动&#xff0c;同一根柱子上都不能出现大盘子在小盘子上方&#xff0c;输出每次的移动。…

HTML飞舞的爱心(完整代码)

写在前面 HTML语言实现飞舞的爱心完整代码。 完整代码 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><title>飞舞爱心</title><style>* {margin: 0;padding: 0;}html,body {overflow: hidd…

修改训练策略,无损提升性能

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;编程探索专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年11月29日15点40分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅…