js中有六大数据类型,在es6中又新增了symbol唯一数据类型,这七大数据类型支撑起了整个javaScript的生态环境。

  • 六大数据类型其中又分为:

    • 基本数据类型:String字符串、Number数值、Boolean布尔、Null空、Undefined未定义
    • 引用(复合)数据类型:Object对象 --- 细分:Array数组和Function函数

定义字符串

字符串属于js中的一种通用语言标准,es5语法就是在定义的值两边嵌套 单引号 或 双引号。

let str1 = "hello world";
let Str2 = "我是js的字符串";

这里需要注意一点:

                双引号内不可以嵌套双引号,单引号内不可以嵌套单引号

双引号内可以嵌套单引号,单引号内可以嵌套双引号

      总结:        

                不同引号可以相互嵌套,相同引号不能相互嵌套

//单引号定义字符串  --- 双引号可以嵌套单引号
var str1 = "ab'cd'ef";
//双引号定义字符串  --- 单引号可以嵌套双引号
var str2 = '4"5"6';// 双引号不能嵌套双引号 单引号不能嵌套单引号
var str4 = "我"不想"吃"; //报错
var str4 = '是'他'做的'; //报错

字符串转义

因为一些字符被js字符串使用,所以不会在页面中显示出来。

这时候就需要   符号进行转义

//特殊字符 -- \n  换行  \t 制表符 等同于按了一下tab键  \ --- 转义符
let str = "我希望所有人\n\"都好好的\"\t这是我的愿望";
console.log(str);


字符串拼接

字符串的拼接使用 + 号

let str = "你饿吗"+","+"我饿了";
// 相当于
let str1 = "你饿吗,我饿了";
console.log(str); // 你饿吗,我饿了

模板字符串

  • 模板字符串比传统的字符串更强大:

    • 不用考虑引号嵌套问题,相同引号随便嵌套能够解析
    • 可以解析HTML标签代码,能够解析回车换行,使代码更直观、便利
    • 函数也可以使用模板字符串进行调用,参数需要使用插值表达式 ${}

        模板字符的定义使用反引号 即 ` ` 进行定义

let str = `as"d"fg"h"jkl`;
console.log(str); // as"d"fg"h"jkl

如果函数使用模板字符串进行调用,则在参数上会有些不同,只能够将${}里的内容作为参数,其他都作为字符。函数内第一个参数是一个数组,接收的是调用参数两边的字符,第二个参数是后面对应插值表达式内的参数。

// 函数正常传参调用
function fun(asg,meg){console.log(asg); // 钟情console.log(meg); // 中意
}
fun("钟情","中意");// 函数使用模板字符串传参调用
function funStr(asg,meg){console.log(asg); // ["钟情", "中意", raw: Array(2)]console.log(meg); // 你一人
}
funStr`钟情${"你一人"}中意`;

字符串方法

每一个定义的字符串都可以看作是一个对象,js为它们提供了许多内置属性与方法。

  下面将列举es5及es6字符串常用的属性及方法:

length                                     获取字符个数

charAt()                                  通过索引获取字符

charcodeAt()                          获取字符的Ascii码

slice()                                     从x索引位置截取字符...截取到y位置前

subString()                             从x索引位置截取字符...截取到y位置前

subStr()                                 从x索引位置截取字符...截取y个字符个数

concat()                                把新的字符串拼接到原字符串后面

indexOf()                              获取字符串中某个字符的索引...只有第一个

lastindexOf()                        获取字符串中某个字符的索引...只有最后一个

search()                               获取字符串中某个字符的索引...只有第一个

replace()                              替换字符

split(用于分割的字符)          分割字符串,接收为数组

trim()                                   去除字符串前后空格

touppercase()                     全部转换为大写

Tolowercase()                     全部转换为小写

fromCharcode()                  传入的Ascii码转换为字符

includes()                            检测某个字符串是否存在字符中,返回  true/false

startsWith()                         检测字符串是否以指定字符开头,返回  true/false

endsWith()                          检测字符串是否以指定字符结束,返回  true/false

trimStart()                           去掉字符前面空格

trimEnd()                             去掉字符后面空格

Repeat(数字)                       重复出现次数(不能为负数和infinity)

padStart(改变的字符个数,添加的值)                         在前面添加

padEnd(改变的字符数,个添加的值)                          在后面添加

at()                       查找指定下标的字符加入了负数可以倒数查找

For...of                 遍历字符串

String.raw()         返回一个斜杠都被转义(即斜杠前面再加一个斜 杠)

的字符串往往用于模板字符串的处理方法

es5中的属性及方法使用

//String对象的属性及方法
var str = "abcdefgabcdefgabcdefg";
//属性
//1.length属性 --- 获取字符串的长度
console.log(str.length); // 21//方法
//1.charAt(索引) --- 获取该索引(下标)位置上的字符
console.log(str.charAt(3));     //d//2.charCodeAt(索引) --- 获取指定位置上的字符的ASCII码
console.log(str.charCodeAt(3));     //100//3.concat("字符串1","字符串2",....) --- 拼接字符串,将传入的参数拼接到原字符串的后面
console.log(str.concat("lala","hehe","不知道")); // abcdefgabcdefgabcdefglalahehe不知道//4.slice(开始下标,结束下标) --- 截取字符串,从开始下标截取到结束下标的前一位
console.log(str.slice(2,6)); // cdef
console.log(str.slice(2));  //cdefgabcdefgabcdefg //只写一个下标,意思就是从该下标开始,截取到字符串结束//5.substring(开始下标,结束下标) --- 截取字符串,从开始下标截取到结束下标的前一位
console.log(str.substring(2,6)); // cdef
console.log(str.substring(2));   // cdefgabcdefgabcdefg//只写一个下标,意思就是从该下标开始,截取到字符串结束//6.substr(开始下标,截取的字符的个数) --- 截取字符串
console.log(str.substr(2,10));  // cdefgabcde
console.log(str.substr(2));     // cdefgabcdefgabcdefg//只写一个下标,意思就是从该下标开始,截取到字符串结束//7.indexOf("要查询的字符") --- 返回指定字符在原字符串中的下标,但是只能返回第一次出现的位置
console.log(str.indexOf("c"));  // 2
console.log(str.indexOf("w"));    // -1//如果字符没有在原字符串中找到,返回-1//8.lastIndexOf("要查询的字符") --- 从后往前去找,依然是返回第一次出现的位置
console.log(str.lastIndexOf("c"));    //16
console.log(str.lastIndexOf("w"));    // -1//如果字符没有在原字符串中找到,返回-1//9.trim() --- 去除字符串前后的空格,不能去除字符串中间的空格
var str1 = "      dhsakd    dhsakdhkjsa        ";
console.log(str1);        //      dhsakd    dhsakdhkjsa
console.log(str1.trim()); // dhsakd    dhsakdhkjsa//10.toUpperCase() --- 全部转换为大写
var str2 = "dhsajdHKHKJHhjhjh";
console.log(str2.toUpperCase()); // DHSAJDHKHKJHHJHJH//11.toLowerCase() --- 全部转换为小写
console.log(str2.toLowerCase()); // dhsajdhkhkjhhjhjh//12.search("要查找的字符") --- 返回指定字符在原字符串中的下标,但是只能返回第一次出现的位置
console.log(str.search("f"));  // 5//与indexOf用法一致//13.replace("要被替换掉的字符串","新字符串") --- 替换字符串
console.log(str.replace("c","9"));  // ab9defgabcdefgabcdefg//只能替换第一个出现的字符//14.split("要进行分割的字符串") --- 分割字符串,返回一个分割之后的字符串数组
console.log(str.split("c"));      // ["ab", "defgab", "defgab", "defg"]
console.log(str.split("c",2));        // ["ab", "defgab"]//第二位数代表留几段字符串//15.fromCharCode() --- 返回传入的ASCII码值所对应的字符
console.log(String.fromCharCode(101,102,103)); // efg
console.log(String.fromCharCode(1,2,3));       // 

es6中字符串的属性及方法使用

let str = "asdfghjkl";// 1-includes() -- 检测某个字符串是否存在字符中,返回true/false
console.log(str.includes(NaN)); // false// 2-startsWith() -- 检测字符串是否以指定字符开头
console.log(str.startsWith("asdfgh")); // true// 3-endsWith() -- 检测字符串是否以指定字符结束
console.log(str.endsWith("jkl")); // truelet str1 = " asdfghjkl "; // 4-trim() -- 去掉字符两侧空格
console.log(str1.trim()); //asdfghjkl// 5-trimStart() -- 去掉字符前面空格
console.log(str1.trimStart()); //asdfghjkl// 6-trimEnd() -- 去掉字符后面空格
console.log(str1.trimEnd()); // asdfghjkl///
let num4 = "ab";// 7-repeat -- 重复出现次数
console.log(num4.repeat(10)); // abababababababababab// 8-padStart(改变的字符个数,添加的值) -- 在前面添加
console.log(num4.padStart(5,"ab")); // abaab// 9-padEnd(改变的字符个数,添加的值) -- 在后面添加
console.log(num4.padEnd(5,"dg")); // abdgd// 10-at()查找指定下标的字符 -- 加入了负数可以倒数查找
console.log(num4.at(-2)); // a// 11-String.raw() -- 返回一个斜杠都被转义(即斜杠前面再加一个斜杠)的字符串//往往用于模板字符串的处理方法
console.log(String.raw`nihao\${2+3}`); // nihao\${2+3}
console.log(String.raw({ raw: ['foo', 'bar'] }, 1 + 2)); // foo3bar

希望能够有所帮助!

理解javaScript的数据类型之字符串类型相关推荐

  1. javascript基本数据类型与值类型引用类型说明

    DEMO: http://sources.ikeepstudying.com/jsdata/ 摘要:本文主要讲了javascript中的基本数据类型,以及值类型和引用类型的区别与使用 一.基本数据类型 ...

  2. 数据类型之字符串类型

    数据类型之字符串类型 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串.创建字符串很简单,只要为变量分配一个值即可.例如: str1 = 'Hello Wo ...

  3. JavaScript 特有奇葩问题“字符串类型与数字类型混乱”的分析与解决,与类型转换

    字符串类型与数字类型的混乱,应该是JS最著名的奇葩问题了. 恰好最近遇到这个问题,在这里对这个问题的解决方法及产生原因进行总结与分析. Java 语言与 JavaScript 语言是什么关系.这是初学 ...

  4. JavaScript(四)—— JavaScript 内置对象/JavaScript 简单数据类型与复杂类型

    本篇为 JavaScript 系列笔记第三篇,将陆续更新 JavaScript(一)-- 初识JavaScript / 注释 / 输入输出语句 / 变量 / 数据类型 JavaScript(二)-- ...

  5. 理解JavaScript基本数据类型symbol

    symbol 概念 symbol是一个ES6标准种新增的一种基本数据类型,在JavaScript中,共有七种基本数据类型:string.number.bigint.boolean.null.undef ...

  6. Python数据类型之字符串类型

    Python字符串类型 单行字符串 多行字符串 字符串是数组 裁切字符串 正索引 负索引 字符串方法 获取字符串长度的len()方法 删除开头和结尾空白字符的strip()方法 只删除开头的前导符的l ...

  7. 2.7——golang数据类型【字符串类型】

    基本介绍 字符串就是一串固定长度的字符连接起来的字符序列.Go的字符串是由单个字节链接起来的. Go语言的字符串的字节使用utf-8编码标识Unicode文本 package main import ...

  8. Postgresql学习笔记之——数据类型之字符串类型

    一.Postgresql数据库字符串类型 类型 描述 character varying(n) 或 varchar(n) 变长字符串类型,最大空间1GB,存储空间4+实际的字符串长度.与MySQL中的 ...

  9. JavaScript(数据类型、字符串操作)

    JS基础 建议:一般情况下不在 head 标签中写 js 语句,因为该 js 语句会在 body 加载之前就执行,可能导致某些效果无效 // 单行注释 /*多行 * 注释*/ // 控制台输出语句 c ...

最新文章

  1. 用可组合的构建块丰富用户界面?谷歌提出「可解释性」的最新诠释
  2. 贵州省新农合业务系统容灾技术支撑服务项目
  3. qt opencv库配置大全
  4. python计算每月工资-python税后工资计算器
  5. C#后台获取数据库数据--ADO.NET
  6. TCP/IP详解学习笔记(2)-数据链路层
  7. HDU 1231 最大连续子序列 (动态规划)
  8. 没有bug队——加贝——Python 47,48
  9. echarts y轴只显示5个刻度_ECharts 解决双Y轴刻度不一致问题
  10. Microsoft SQL Server Query Processor Internals and Architecture
  11. 数据库的第一范式、第二范式、第三范式,BCNF范式
  12. C语言入门——求n的阶乘
  13. 为什么学计算机容易秃顶,为什么程序员更容易脱发?知道答案惊呆了!
  14. 存储单元,字,MAR,存储字长,存储字,存储容量
  15. STM32单片机-汇编指令2
  16. 【故障诊断】基于最小熵反卷积、最大相关峰度反卷积和最大二阶环平稳盲反卷积等盲反卷积方法在机械故障诊断中的应用研究(Matlab代码实现)
  17. 不可告人的隐私百度云_理解围绕软件技术标准的不可告人的动机和力量
  18. 建议阿里巴巴10亿回购股票救市
  19. Excel如何制作工资表
  20. IE错误 Java TM 已被阻止,因为它已过时并且需要更新 的解决方法

热门文章

  1. 插入(希尔)排序时间、空间复杂度
  2. Warning: mysqli_fetch_assoc() expects exactly 1 parameter, 2 given in求解决
  3. 一张图帮你看懂 iPhone 6 Plus 的屏幕分辨率
  4. 跨境电商平台运营知识:亚马逊日常运营技巧
  5. Petalinux快速入门向导 (15) 第十四章.硬盘速度测试
  6. 1、计算机图形学——基础变换矩阵
  7. sql server 简单应用
  8. Word图片无法置于文字上方解决方法
  9. 计时器(Chronometer)的使用
  10. 关于用ANSYS有限元仿真软件划分网格的一些体验