Javaweb学习之JavaScript输出与字符串(二)

news2024/9/23 13:22:49

前情回顾

Javaweb学习之JavaScript(一)-CSDN博客

学习资源

w3school 在线教程

本期介绍

输出语句

在JavaScript中,有几种方式可以输出信息到控制台(console)、浏览器窗口(window)或其他地方。下面是一些最常用的输出语句:

  1. console.log()

    这是最常用的输出语句之一,用于在浏览器的控制台(Console)中输出信息。这对于调试代码非常有用。

    console.log("Hello, World!");
  2. console.error()

    类似于console.log(),但console.error()会将输出信息视为错误,并通常以红色显示(这取决于浏览器的控制台样式)。这对于在开发过程中标记错误或需要注意的信息很有用。

    console.error("This is an error message.");
  3. console.warn()

    这个语句用于输出警告信息。与console.error()类似,但信息通常被视为警告而非错误,可能以黄色或其他颜色显示(取决于浏览器的控制台样式)。

    console.warn("This is a warning message.");
  4. console.info()

    这个语句用于输出信息性消息。尽管它和console.log()在功能上非常相似,但console.info()在某些开发环境中可能会以不同的方式处理或显示信息。

    console.info("This is an informational message.");
  5. document.write()

    这个语句会向HTML文档写入内容。虽然它在早期的Web开发中广泛使用,但现在通常不推荐使用,因为它会重写整个页面的内容(如果它在文档加载完成后执行),或者将内容添加到当前页面的末尾(如果它在文档加载过程中执行)。

    document.write("<p>Hello, World!</p>");
  6. innerHTML

    这不是一个直接的输出语句,但你可以使用它来修改HTML元素的内容,从而间接地“输出”内容到页面上。这是一种更现代、更灵活的方式来在Web页面上显示信息。

    document.getElementById("demo").innerHTML = "Hello, World!";
    假设你的HTML中有一个元素如下:
    
    <div id="demo"></div>
  7. alert()

    这个语句会在浏览器中弹出一个警告框,显示指定的消息。虽然它在某些情况下很有用(如向用户显示即时通知),但过度使用可能会导致不良的用户体验。

    alert("Hello, World!");

我在看视频学习时发现,有的人在alert的前面会加前缀。为此,我特地在网上查了资料。

关于alert函数前面是否需要前缀的问题,通常来说,在JavaScript中直接使用alert()函数时,并不需要特定的前缀。alertwindow对象的一个方法,用于显示带有一段消息和一个确认按钮的警告框。因此,理论上你可以通过window.alert()来调用它,但window前缀是可选的,直接写alert()同样有效。

这里有几个关键点需要注意:

  1. 直接调用:在大多数情况下,你可以直接写alert("消息内容");来弹出一个警告框,而不需要前缀window.

  2. window对象window是JavaScript中的一个全局对象,它代表了浏览器的一个实例(或窗口)。由于alertwindow对象的一个方法,因此理论上应该通过window.alert()来调用它。但在实际开发中,由于window是全局对象,其属性和方法可以在不显式引用window的情况下被访问。

  3. 使用场景alert函数通常用于在浏览器中向用户显示简单的消息或警告。然而,由于它会阻塞页面的其他操作直到用户关闭警告框,因此不建议在需要响应用户交互或保持页面流畅性的场合频繁使用。

  4. 替代方案:对于更复杂的用户交互需求,可以考虑使用HTML元素(如<div>标签结合CSS样式)和JavaScript(如通过修改元素的innerHTMLtextContent属性)来创建更灵活、更易于控制的弹出框或消息提示。

综上所述,alert函数前面通常不需要前缀,直接调用即可。但在某些特殊情况下(如需要明确指定作用域或避免与局部变量冲突时),使用window.alert()也是完全可以的。

根据你的具体需求(如调试、向用户显示信息或修改页面内容),你可以选择最适合你的输出语句。

字符串

javaScript 中的字符串是一个非常重要的数据类型,常用于存储和操作文本。

1. 字符串的创建

 <h2>JavaScript 字符串是引号中的零个或多个字符</h2>
    <p id="" demo></p>
    <script>
        var x = "hhh"; // 用引号包围的字符串
        document.getElementById("demo").innerHTML = x;
    </script>

在 JavaScript 中,字符串可以通过两种主要方式创建:

  • 使用单引号(')或双引号(")括起来的文本。
    <h2>JavaScript 字符串</h2>
        <p>字符串在引号中书写。您能够使用单引号或双引号:</p>
        <p id="demo1"></p>
        <script>
            var c1 = "ssss";
            var c2 = 'ssss';
            document.getElementById("demo1").innerHTML = c1 + "   " + c2;
        </script>
    

  • 使用 String 构造函数。

String 构造函数创建的是字符串对象,而不是字符串字面量(str1 和 str2 是字符串字面量),但在大多数情况下,它们的行为是相同的。

2. 字符串的不可变性

JavaScript 中的字符串是不可变的,这意味着一旦字符串被创建,就不能更改它的内容。任何看起来像是修改字符串的操作(如拼接或替换),实际上都是创建了一个新的字符串。

3. 字符串长度

可以通过 length 属性获取字符串的长度(即字符数)。

    <h1>JavaScript 字符串属性</h1>
    <p>length 属性返回字符串的长度:</p>
    <p id="demo2"></p>
    <script>
        var c3 = "dfghjklkjhgfdfghjkl";
        document.getElementById("demo2").innerHTML = c3.length;
    </script>

4.特殊字符

使用 \ 转义字符

反斜杠转义字符把特殊字符转换为字符串字符:

\''单引号
\""双引号
\\\反斜杠
<p>转义序列 \" 在字符串中插入双引号。</p>
    <p id="demo3"></p>
    <script>
        var c4 = "中国是瓷器的故乡,因此China合\"China\"同名。"
        document.getElementById("demo3").innerHTML = c4;
    </script>


    <p>转义序列 \' 在字符串中插入单引号。</p>
    <p id="demo4"></p>
    <script>
        var c5 = "It\' good to see you!";
        document.getElementById("demo4").innerHTML = c5;

    </script>


    <p>转义序列 \\ 在字符串中插入反斜杠。</p>
    <p id="demo5"></p>
    <script>

        var c6 = "字符\\被称为反斜杠。"
        document.getElementById("demo5").innerHTML = c6;
    </script>

5.长代码行换行

\ 方法并不是 ECMAScript (JavaScript) 标准。

某些浏览器也不允许 \ 字符之后的空格。

对长字符串换行的最安全做法(但是有点慢)是使用字符串加法

<p>可以用反斜杠在文本字符串中进行换行。</p>
    <p id="demo7"></p>
    <script>
        document.getElementById("demo7").innerHTML = "hello \
        kk";
        /* 直接这样换会报错,所以需要一个反斜杠
        document.getElementById("demo7").innerHTML ="hello 
        kk"; */
    </script>



    <p id="demo8">不能用反斜杠对代码行进行折行。</p>
    <script>
        /*  document.getElementById("demo").innerHTML = \
         "Hello Kitty"; */
    </script>



    <p>在字符串中进行换行的最安全方法是使用字符串相加。</p>
    <p id="demo9"></p>
    <script>
        document.getElementById("demo9").innerHTML = "Hello " +
            "Kitty";
    </script>

6.字符串可以是对象

<p id="demo10"></p>
    <script>
        var c7 = "bill";// c7 是字符串
        var c8 = new String("bill");// c8 是对象

        document.getElementById("demo10").innerHTML = typeof c7 + "<br>" + typeof c8;
    </script>

    <!--   
    请不要把字符串创建为对象。它会拖慢执行速度。
    new 关键字使代码复杂化。也可能产生一些意想不到的结果:
    当使用 == 相等运算符时,相等字符串是相等的
    -->


    <h1>绝不要把字符串创建为对象</h1>

    <p>字符串与对象无法安全地比较。</p>

    <p id="demo11"></p>

    <script>
        var c10 = "Bill";              // c10 是字符串
        var c12 = new String("Bill");  // c12 是对象
        document.getElementById("demo12").innerHTML = (c11 == c12);
        document.getElementById("demo12").innerHTML = (c11 === c12);
    </script>



    <p>JavaScript 对象无法比较。</p>

    <p id="demo13"></p>

    <script>
        var c13 = new String("Bill");  // c13 是对象
        var c14 = new String("Bill");  // c14 也是对象
        document.getElementById("demo13").innerHTML = (c13 == c14);
        document.getElementById("demo13").innerHTML = (c13 === c14);
        // (c13 == c14) 为 false,因为 c13 和 c14 是不同的对象
        // (c13 === c14) 为 false,因为 c13 和 c14 是不同的对象
    </script>


5. 字符串方法

JavaScript 提供了大量的字符串方法来执行各种操作,如搜索、替换、拼接等。以下是一些常用方法的示例:

  • .concat():连接两个或多个字符串。
  • .indexOf():返回指定值的首次出现的索引,如果未找到则返回 -1。
  • .slice():提取字符串的一部分,并返回一个新字符串(不改变原字符串)。
  • .substring():类似于 slice(),但不允许使用负索引。
  • .substr()(不推荐使用,已废弃):提取字符串的一部分,但注意它的参数与 slice() 和 substring() 不同。
  • .replace():在字符串中替换匹配的子串。
  • .toUpperCase() 和 .toLowerCase():将字符串转换为全部大写或小写。
  • .trim():去除字符串两端的空白字符。

查找字符串中的字符串

JavaScript 从零计算位置。0 是字符串中的第一个位置,1 是第二个,2 是第三个 ...

indexOf() 方法返回字符串中指定文本首次出现的索引(位置)。

lastIndexOf() 方法返回指定文本在字符串中最后一次出现的索引。

如果未找到文本, indexOf() 和 lastIndexOf() 均返回 -1。

 <h1>JavaScript 字符串方法</h1>
    <p>indexOf() 方法返回指定文本首次出现的位置:</p>
    <p id="demo"></p>
    <script>
        var str = "The full name of China is the People's Republic of China.";
        var c1 = str.indexOf("China");
        document.getElementById("demo").innerHTML = c1;
    </script>


    <p>lastIndexOf() 返回指定文本最后出现的位置:</p>
    <p id="demo1"></p>
    <script>
        var str1 = "The full name of China is the People's Republic of China.";
        var c2 = str1.lastIndexOf("China");
        document.getElementById("demo1").innerHTML = c2;
    </script>


    <p>如果未找到文本,则 indexOf() 和 lastIndexOf() 都返回 -1:</p>
    <p id="demo2"></p>
    <script>
        var str2 = "The full name of China is the People's Republic of China.";
        var pos2 = str2.indexOf("USA");
        document.getElementById("demo2").innerHTML = pos2;
    </script>

 两种方法都接受作为检索起始位置的第二个参数。

<p>indexOf() 方法接受第二个参数作为搜索的起始位置:</p>
    <p id="demo3"></p>
    <script>
        var str3 = "The full name of China is the People's Republic of China.";
        var pos2 = str3.indexOf("China", 18);
        document.getElementById("demo3").innerHTML = pos2;
    </script>



    <p>lastIndexOf() 方法接受第二个参数作为搜索的起始位置:</p>
    请记住,lastIndexOf()方法向后搜索,因此位置 50 表示在第 50 位开始搜索,并搜索到开头。
    <p>位置 50 指的是从开头算起的位置 50。</p>
    <p id="demo4"></p>
    <script>
        var str4 = "The full name of China is the People's Republic of China.";
        var pos4 = str4.lastIndexOf("China", 50);
        document.getElementById("demo4").innerHTML = pos4;
    </script>

 检索字符串中的字符串

indexOf() 和 search() 是 JavaScript 中字符串对象(String)的两种方法,它们用于查找字符串中特定子串或正则表达式匹配项的位置。尽管它们的目的相似,但在使用方式、参数类型以及返回值方面存在一些关键差异。

1. indexOf()

  • 参数indexOf() 方法接受一个字符串作为参数,表示要搜索的子串。如果传递的是正则表达式,则会被隐式转换为字符串,但这通常不是你想要的行为。
  • 返回值:返回子串在字符串中首次出现的索引位置(从 0 开始计数)。如果没有找到子串,则返回 -1。
  • 特点indexOf() 方法对大小写敏感,且只接受字符串作为搜索条件。

2. search()

  • 参数search() 方法接受一个字符串或一个正则表达式作为参数。如果传递的是字符串,则会被隐式地转换为一个正则表达式对象,但通常更推荐使用正则表达式,因为它提供了更强大的匹配能力。
  • 返回值:返回第一个匹配项的索引位置(从 0 开始计数)。如果没有找到任何匹配项,则返回 -1。如果参数不是正则表达式,且不能隐式转换为正则表达式,则抛出 TypeError
  • 特点search() 方法对大小写敏感(除非在正则表达式中使用了不区分大小写的标志 i)。它支持使用正则表达式,因此更灵活。
<p>search() 方法返回字符串中指定文本第一次出现的位置:</p>
    <p id="demo5"></p>
    <script>
        var str5 = "The full name of China is the People's Republic of China.";
        var pos5 = str5.search("China");
        document.getElementById("demo5").innerHTML = pos5;
    </script>

slice() 方法

slice() 提取字符串的某个部分并在新字符串中返回被提取的部分。

该方法设置两个参数:起始索引(开始位置),终止索引(结束位置)。

 

<p>slice() 提取字符串的某个部分,并在新字符串中返回被提取的部分。</p>
    <p id="demo6"></p>
    <script>
        var str6 = "Apple,BBB,VVV";
        var pos6 = str6.slice(7, 13);
        document.getElementById("demo6").innerHTML = pos6;
    </script>


    <p>slice() 提取字符串的某个部分,并在新字符串中返回被提取的部分。</p>
    如果某个参数为负,则从字符串的结尾开始计数
    <p id="demo7"></p>
    <script>
        var str7 = "Apple, Banana, Mango";
        
        var res7 = str7.slice(-13, -7);
        document.getElementById("demo7").innerHTML = res7;
    </script>


 <p>slice() 提取字符串的某个部分,并在新字符串中返回被提取的部分。</p>
    如果省略第二个参数,则该方法将裁剪字符串的剩余部分
    <p id="demo8"></p>

    <script>
        var str8 = "Apple, Banana, Mango";
        var res8 = str8.slice(7);
        document.getElementById("demo8").innerHTML = res8;
    </script>
    或者从结尾计数:
    <p id="demo9"></p>

    <script>
        var str9 = "Apple, Banana, Mango";
        var res9 = str9.slice(-13)
        document.getElementById("demo9").innerHTML = res9;
    </script>

方法太多了,一下总结不完,会持续更新的。

小知识点:在VS Code中可以使用快捷键Ctrl+D向下复制一行。

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

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

相关文章

谷粒商城实战笔记-220~224-商城业务-微博认证服务-OAuth2.0

文章目录 一&#xff0c;220-商城业务-认证服务-OAuth2.0简介二&#xff0c;221-商城业务-认证服务-微博登录测试1&#xff0c;创建微博应用2&#xff0c;应用配置重定向url3&#xff0c;修改商城登录页面4&#xff0c;点击微博登录5&#xff0c;点击授权 三&#xff0c;222-商…

[译]开发者与熵的博弈

原文&#xff1a;https://itnext.io/entropy-in-software-development-77ed9110ef28 翻译&#xff1a;我的文章翻译智能体 文章润色智能体 文章转脑图智能体 人工校对 文章脉络&#xff1a; 文章概括&#xff1a; 文章通过热力学的视角&#xff0c;深入探讨了软件开发中的复…

GitHub的未来:在微软领导下保持独立与AI发展的平衡

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

企业高性能web服务器----nginx详细知识点+实验

知识点 一、Web 服务介绍 Apache Nginx 1、Apache 经典的 Web 服务端 Apache 起初由美国的伊利诺伊大学香槟分校的国家超级计算机应用中心开发 目前经历了两大版本分别是 1.X 和 2.X 其可以通过编译安装实现特定的功能 2、Apache的三种模型 Apache prefork 模型 预…

4000元亮度最高的投影仪:当贝X5S 3300CVIA流明超高亮度白天也清晰

你购买投影仪的时候一般预算多少&#xff1f;目前市面上的投影仪价位有几百也有上万&#xff0c;品牌和类型都比较多&#xff0c;买投影前比较关注哪些投影仪参数&#xff1f;最近有朋友向我咨询购买投影仪的事项&#xff0c;预算在4000左右&#xff0c;问问4000元哪款投影仪哪…

Ollama Desktop

一、简介 Ollama Desktop是基于Ollama引擎的一个桌面应用解决方案&#xff0c;用于在macOS、Windows和Linux操作系统上运行和管理Ollama模型的GUI工具。 Ollama Desktop提供了丰富的功能&#xff0c;包括但不限于&#xff1a; 可视化的管理界面&#xff1a;用户可以通过图形…

推荐3款免费强大OCR神器,工作必备,总有一款适合你,必须收藏

ShareX ShareX是一款功能强大且免费的开源屏幕捕捉和录屏工具&#xff0c;主要用于Windows操作系统。它不仅可以捕捉任何屏幕区域&#xff0c;还可以录制视频、拍摄屏幕截图&#xff0c;并将其上传到各种在线平台。ShareX的功能非常全面&#xff0c;包括截图、录屏、加水印、裁…

低代码平台:效率与创新的双重引擎

低代码开发在软件开发领域是一种越来越流行的趋势&#xff0c;这是有充分理由的。低代码使专业开发人员和非开发人员能够构建更易于集成、修改和升级的复杂企业解决方案&#xff0c;使企业能够快速轻松地创建软件应用程序无需丰富的编码经验。低代码平台彻底改变了软件开发方式…

LLM应用实战: 产业治理多标签分类

1. 背景 许久未见&#xff0c;甚是想念~ 近期本qiang~换了工作&#xff0c;处于新业务适应期&#xff0c;因此文章有一段时间未更新&#xff0c;理解万岁&#xff01; 现在正在着手的工作是产业治理方面&#xff0c;主要负责其中一个功能模块&#xff0c;即按照产业治理标准体…

巡检机器人有哪些功能和应用场景

随着科技的飞速发展&#xff0c;巡检机器人作为智能化、自动化的重要代表&#xff0c;已经在多个领域展现出其独特的优势。从工业生产到特殊环境监测&#xff0c;巡检机器人以其高效、准确和安全的特性&#xff0c;逐渐取代了传统的人工巡检方式&#xff0c;极大地提升了巡检效…

spring boot(学习笔记第十八课)

spring boot(学习笔记第十八课) Spring boot的定时任务和Quartz 学习内容&#xff1a; Spring boot的定时任务Spring boot的Quartz 1. Spring boot的定时任务 定义定时任务 加入必要的依赖 <dependency><groupId>org.springframework.boot</groupId&g…

STM32 —— TIM(基本定时器)详解_stm32的tim

STM32 —— TIM&#xff08;基本定时器&#xff09;详解_stm32的tim 一、定时器简介 STM32F1 系列中&#xff0c;除了互联型的产品&#xff0c;共有 8 个定时器&#xff0c;分为基本定时器&#xff0c;通用定时器和高级定时器。基本定时器 TIM6 和 TIM7 是一个 16 位的只能向…

ID3算法详解:构建决策树的利器

目录 引言 ID3算法概述 算法基础 信息熵 ​编辑 信息增益 ID3算法步骤 决策树 概念: 核心&#xff1a; 节点 1. 根节点 2. 非叶子节点 3. 叶子节点 引言 在机器学习领域&#xff0c;决策树是一种非常流行的分类和回归方法。其中&#xff0c;ID3算法作为决策树算法…

干货分享 | TSMaster—RP1210模块使用指南

RP1210是由技术和维护委员会&#xff08;TMC&#xff09;编写的一种建议性实践。RP1210用于对重型车辆射频相关的&#xff08;主要针对&#xff09;电子控制单元&#xff08;ECU&#xff09;进行二次编程和分析。本文主要针对TSMaster—RP1210模块的操作进行详细介绍。 本文关…

【CANoe使用大全】——在线回放数据

&#x1f64b;‍♂️【CANoe使用大全】系列&#x1f481;‍♂️点击跳转 文章目录 1.概述2.创建回灌节点3.加载回灌数据 1.概述 在外面测试过程中经常会遇到一些故障场景&#xff0c;需要采集这些时刻的故障场景log&#xff0c; 回灌到程序中复现问题。 下面主要介绍数据的在…

【电子通识】IPC-A-610标准对产品的四种验收条件都是什么意思?

IPC-A-610标准对每个级别产品均给出四种验收条件&#xff1a;目标、可接受、缺陷或制程警示条件。 目标条件 是指近乎完美/首选的情形&#xff0c;然而这是一种理想而非总能达到的情形&#xff0c;且对于保证组件在使用环境下的可靠性并非必要的情形。 比如4.3.2节中连接器插针…

R8;RRRRRRRR;穿膜肽R8;八聚精氨酸;148796-86-5

【穿膜肽R8简介】 穿膜肽R8&#xff0c;也称为八聚精氨酸&#xff08;Octa-arginine&#xff09;&#xff0c;是一种由八个精氨酸残基组成的细胞穿透肽&#xff08;CPP&#xff09;。R8具有正电荷丰富的侧链&#xff0c;能够有效地与细胞膜上的负电荷相互作用&#xff0c;从而促…

优化电商客服满意度与复盘管理:AI质检技术的深度应用与策略

Hi~这里是ProXiao 文章参考&#xff1a;晓观点 《如何利用AI质检提升电商客服满意度&#xff0c;优化分析复盘管理环节&#xff1f;》 在当前电子商务迅猛发展的背景下&#xff0c;客户服务质量作为衡量店铺综合竞争力的重要指标之一&#xff0c;其优劣直接关联到服务类数据评分…

Docker图形化管理工具DockerUI

1、DockerUI 轻量级图形页面管理之DockerUI 2、查看dockerui镜像 [rootlocalhost ~]# docker search dockerui 3、下载dockerui镜像 [rootlocalhost ~]# docker pull abh1nav/dockerui #选择喜欢的dockerui风格镜像下载 4、启动dockerui容器 [rootlocalhost ~]# docker r…

Python经典书籍有哪些?来看看你看过哪几本

Python 基础 1.《Python编程&#xff1a;从入门到实践&#xff08;第2版&#xff09;》 本书是针对所有层次Python读者而作的Python入门书&#xff0c;让你可以快速学会Python编程&#xff0c;通过这本书&#xff0c;你将会学到各种Python库和工具(NumPy&#xff0c;Pygal等)…