IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JavaScript数据类型之字符串String -> 正文阅读

[JavaScript知识库]JavaScript数据类型之字符串String

一、书写语法

  • 字符串由零个或多个16位Unicode字符序列组成
  • 字符串必须包含在引号里,单引号'、双引号"或者反引号`
  • 必须以相同的引号开始和结束

二、字符字面量

1、字面量的分类

  • 键盘上有或者通过输入法可以直接输入的字面量
  • 键盘上有但是有特殊含义的字面量
  • 键盘上没有很难输入的字面量

2、直接输入的字面量

  • 当需要给一个变量赋值可以直接输入的字面量是最简单的,按照字符串的书写语法,直接赋值即可

3、有特殊含义的字面量

  • 反斜杠\、单引号'、双引号"、反引号 `
  • 后面三个是字符串赋值的语法符号,而反斜杠是作为特殊含义字面量的转义赋值
  • 当需要给变量赋值有特殊含义的字面量时可以通过转义字符反斜杠\ var backslash='\\';
  • 还有一种方式可以给变量赋值特殊含义的字符,就是下面的方法

4、键盘上很难输入的字面量

  • 字符串中的字符是Unicode码,那么就可以直接使用Unicode码
  • 因为Unicode码太多且不容易记,所以这种方法虽然可行,但是很少使用;没有更好的方式时候可以用Unicode码

三、模板字面量

  • 使用反引号包括字符串
  • 保留换行符
  • 保留空格
  • 可以使用字符串插值${函数/变量名/方法}
  • 场景:定义模板

三、基本数据类型转换为字符串

  • 作用:将变量的值转为字符串
  • 有如下三种方法

1、调用变量的toString()方法

  • 布尔值:转为"true"/“false”
  • 数值:转为对应的字符串"数值"
  • null和undefined没有toString()方法,会抛异常

2、使用函数String()转化变量

  • 布尔值:调用变量的toString()方法转为"true"/“false”
  • 数值:调用变量的toString()方法转为对应的字符串"数值"
  • null:转为"null"
  • undefined:转为"undefined"

3、字符串拼接符+

  • 从左至右依次执行
  • 遇到两个数字会优先执行数值的+而不是字符串的拼接

4、总结

  • toString()不能处理null和undefined
  • String()能处理所有类型,当变量有toString()方法时,优先调用变量的toString()方法;变量没有toString()方法时转为null或者undefined
  • +能处理所有类型;遇到两个数字时优先执行数学运算符+,而不是字符串拼接符+

四、代码示例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据类型</title>
    <script>

        console.log("===========直接赋值");
        var str = "hello, world";
        console.log(str);
        console.log("===========使用转义字符");
        console.log("\\");//使用转义字符 反斜杠
        console.log("\"");//使用转义字符 双引号
        console.log("\'");//使用转义字符 单引号
        console.log("===========使用Unicode码");
        console.log("\u03a3");//Σ
        console.log("\u005c");//使用Unicode码 反斜杠
        console.log("\u0022");//使用Unicode码 双引号
        console.log("\u0027");//使用Unicode码 单引号
        console.log("===========模板字面量");
        var str1 = `hello
world`
        console.log(str1);
        var str2 = "hello\nworld"
        console.log(str2);
        console.log(str1 == str2);//true
        var str3 = `hello
        world`;//注意world前面的空格会被保留
        console.log(str3);
        console.log(str1 == str3);//false
        var html = `
<a href="#">
    <span>不会变形</span>
</a>
        `;
        console.log(html);
        console.log("===========字符串插值");
        //`xxx${变量名或者调用函数或方法}xxx`等价于:'xxx'+变量名或者调用函数或方法+'xxxx';使用未赋值或者未声明的变量会出现undefined或者报错的问题
        var name = prompt("请输入您的名字");
        var strin = `恭喜👏🏻${name} 已经掌握了字符串插值的技能`;
        console.log(strin);//${name}会被解析为name的值
        var name2;
        var strin2 = `恭喜👏🏻${name2} 已经掌握了字符串插值的技能`
        console.log(strin2);//name2=undefined
        console.log(`恭喜👏🏻${name.toUpperCase()} 已经掌握了字符串插值的技能`);//还可以使用函数或者方法
        console.log("===========转为字符串");
        console.log("===使用toString()方法");
        var score = 160;//数值转为字符串
        console.log(score.toString());//默认10进制
        console.log(score.toString(2));//指定二进制
        console.log(score.toString(8));//指定八进制
        console.log(score.toString(16));//指定十六进制
        var bool = true;//布尔值转为string
        console.log(bool.toString());
        bool = false;
        console.log(bool.toString());
        var stri = "hello";//字符串转为string,自身
        console.log(stri.toString());
        console.log(stri.toString() === stri);
        var nul = null;//null转为string
        //console.log(nul.toString());//null没有toString() 方法,会抛异常
        var unde = undefined;//null转为string
        //console.log(unde);//没有toString() 方法,会抛异常
        console.log("===使用String()函数");
        console.log(String(score));//默认10进制
        console.log(String(bool));
        console.log(String(stri));
        console.log(String(stri) === stri);
        console.log(String(nul));
        console.log(String(unde));
        console.log("===使用字符串拼接符+");
        console.log(score + bool + stri + nul + unde);
        // 1 + 2 = 3
        // 3 + 3 = 6
        // 6 + "" = "6"
        console.log(1 + 2 + 3 + "");//结果6
        // "" + 1 = "1"
        // "1" + 2 = "12"
        // "12" + 3 = "123"
        console.log("" + 1 + 2 + 3);//结果123

    </script>
</head>

<body>

</body>

</html>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-02 16:39:54  更:2021-12-02 16:42:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:01:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码