们知道字符串(String)类型是 JavaScript 中的基本数据类型之一,也是最常用的数据类型啦。下面我们来学习一下关于字符串的属性方法以及其的使用等。
JavaScript 字符串其实很好理解,就是被包围在单引号或双引号中的任意字符。字符串可以用于存储和处理文本。
示例:
例如像下面这样声明的变量都是字符串类型:
var str1="123";
var str2='12356';
var str3="你好,侠课岛";
var str4='hello summer';
var str5='good_boy';
一般情况下字符串就是一个或多个字符组成,除此之外,我们还可以使用 new 关键字将字符串定义为一个对象:
var name=new String("summer");
console.log(name); // 输出:summer
不过一般情况下我们最好不要创建 String 对象,因为这可能会导致执行速度变慢。
在 JavaScript 语言中我们可以通过索引来访问字符串中的每个字符,字符串的索引也是从 0 开始,第一个字符索引值为 [0],第二个字符索引值为[1],以此类推。
示例:
例如下述代码中,我们定义了一个字符串类型的变量 username,然后输出变量中索引值为1的字符:
var username="summer";
console.log(username[1]); // 输出: u
因为索引是从 0 开始计数,那么索引为1,那应该就是字符串中的第二个字符串,也就是 u。
我们先来看下面这个字符串:
var hobby="basketball";
你能知道这个字符串的长度为多少吗,其实你数一下就能知道,这个字符串的长度就是10。因为这个字符串有10个字符,所以它的长度为10。
这里要注意的是,字符串里面包含的空格也是会计入长度的,有1个空格长度加1,2个空格长度加2。
在 JavaScript 语言中,我们可以使用 length 属性来获取字符串长度,length 属性用于返回字符串的长度(字符数)。
示例:
例如获取下面这个变量 hobby 的长度并输出:
var hobby="basketball";
console.log(hobby.length); // 输出:10
实际使用时,可能会遇到带有空格的字符串,那么空格会计入字符的长度吗,我们来看看:
var str1="hello xkd";
console.log(str1.length); // 输出:9
通过输出结果我们可以知道,空格也会计入字符串的长度的。
从字符串的长度和索引的关系,我们可以得出一个结论,索引是从0开始,到length-1 结束的。
有些时候,字符串可能无法被解析,例如下面这个字符串:
var str1="嘿,你好呀~,"侠课岛"";
console.log(str1); // Uncaught SyntaxError: Unexpected identifier
那这个时候要怎么办呢,我们可以使用反斜杆 \ 来转义字符串中的双引号。
示例:
var str1="嘿,你好呀~,\"侠课岛\"";
console.log(str1); //输出:嘿,你好呀~,"侠课岛"
转义字符\可以用于转义撇号,换行,引号,等其他特殊字符。下面是一些可以用于转义字符转义的特殊字符:
字符串的方法有很多,下面我们简单来看一些比较常用到的几个方法:
var str1="Hello XKD";
console.log(str1.toLocaleLowerCase());
//输出: hello xkd
var str1="Hello XKD";
console.log(str1.toUpperCase());
//输出: HELLO XKD
var str1="Hello";
console.log(str1.toString());
//输出: Hello
var str1="Hello";
var str2="xkd";
console.log(str1.concat(str2));
//输出: Helloxkd
var str1="Hello xkd, Congratulations on login!";
console.log(str1.indexOf('xkd'));
//输出: 6
var str1="Hello xkd, Congratulations on login!";
console.log(str1.lastIndexOf('o'));
//输出: 31
var str1="Hello xkd, Congratulations on login!";
console.log(str1.slice(6, 8));
//输出: xk
var str1="Hello xkd, Congratulations on login!";
console.log(str1.split(" "));
//输出: ["Hello", "xkd,", "Congratulations", "on", "login!"]
var str1="Hello xkd, Congratulations on login!";
console.log(str1.substring(11, 17));
//输出: Congra
var str1="Hello xkd, Congratulations on login!";
console.log(str1.replace("xkd", "summer"));
//输出: Hello summer, Congratulations on login!
们知道字符串(String)类型是 JavaScript 中的基本数据类型之一,也是最常用的数据类型啦。下面我们来学习一下关于字符串的属性方法以及其的使用等。
JavaScript 字符串其实很好理解,就是被包围在单引号或双引号中的任意字符。字符串可以用于存储和处理文本。
示例:
例如像下面这样声明的变量都是字符串类型:
var str1="123";
var str2='12356';
var str3="你好,侠课岛";
var str4='hello summer';
var str5='good_boy';
一般情况下字符串就是一个或多个字符组成,除此之外,我们还可以使用 new 关键字将字符串定义为一个对象:
var name=new String("summer");
console.log(name); // 输出:summer
不过一般情况下我们最好不要创建 String 对象,因为这可能会导致执行速度变慢。
在 JavaScript 语言中我们可以通过索引来访问字符串中的每个字符,字符串的索引也是从 0 开始,第一个字符索引值为 [0],第二个字符索引值为[1],以此类推。
示例:
例如下述代码中,我们定义了一个字符串类型的变量 username,然后输出变量中索引值为1的字符:
var username="summer";
console.log(username[1]); // 输出: u
因为索引是从 0 开始计数,那么索引为1,那应该就是字符串中的第二个字符串,也就是 u。
我们先来看下面这个字符串:
var hobby="basketball";
你能知道这个字符串的长度为多少吗,其实你数一下就能知道,这个字符串的长度就是10。因为这个字符串有10个字符,所以它的长度为10。
这里要注意的是,字符串里面包含的空格也是会计入长度的,有1个空格长度加1,2个空格长度加2。
在 JavaScript 语言中,我们可以使用 length 属性来获取字符串长度,length 属性用于返回字符串的长度(字符数)。
示例:
例如获取下面这个变量 hobby 的长度并输出:
var hobby="basketball";
console.log(hobby.length); // 输出:10
实际使用时,可能会遇到带有空格的字符串,那么空格会计入字符的长度吗,我们来看看:
var str1="hello xkd";
console.log(str1.length); // 输出:9
通过输出结果我们可以知道,空格也会计入字符串的长度的。
从字符串的长度和索引的关系,我们可以得出一个结论,索引是从0开始,到length-1 结束的。
有些时候,字符串可能无法被解析,例如下面这个字符串:
var str1="嘿,你好呀~,"侠课岛"";
console.log(str1); // Uncaught SyntaxError: Unexpected identifier
那这个时候要怎么办呢,我们可以使用反斜杆 \ 来转义字符串中的双引号。
示例:
var str1="嘿,你好呀~,\"侠课岛\"";
console.log(str1); //输出:嘿,你好呀~,"侠课岛"
转义字符\可以用于转义撇号,换行,引号,等其他特殊字符。下面是一些可以用于转义字符转义的特殊字符:
字符串的方法有很多,下面我们简单来看一些比较常用到的几个方法:
var str1="Hello XKD";
console.log(str1.toLocaleLowerCase());
//输出: hello xkd
var str1="Hello XKD";
console.log(str1.toUpperCase());
//输出: HELLO XKD
var str1="Hello";
console.log(str1.toString());
//输出: Hello
var str1="Hello";
var str2="xkd";
console.log(str1.concat(str2));
//输出: Helloxkd
var str1="Hello xkd, Congratulations on login!";
console.log(str1.indexOf('xkd'));
//输出: 6
var str1="Hello xkd, Congratulations on login!";
console.log(str1.lastIndexOf('o'));
//输出: 31
var str1="Hello xkd, Congratulations on login!";
console.log(str1.slice(6, 8));
//输出: xk
var str1="Hello xkd, Congratulations on login!";
console.log(str1.split(" "));
//输出: ["Hello", "xkd,", "Congratulations", "on", "login!"]
var str1="Hello xkd, Congratulations on login!";
console.log(str1.substring(11, 17));
//输出: Congra
var str1="Hello xkd, Congratulations on login!";
console.log(str1.replace("xkd", "summer"));
//输出: Hello summer, Congratulations on login!
arkdown 标记应该使内容更好。那么为什么它经常使内容变得更糟呢?
标记帮助计算机知道如何在用户界面中呈现文本。没有标记,文本是纯文本——一串字符。这对于简单的交流来说很好,但纯文本无法表达更复杂的想法。
语法使单词成为有意义的内容。标记是计算机的语法。但是计算机语法与作者和读者使用的语法有很大不同。
HTML 是网络的通用标记语言。Markdown 被定位为一些编写应用程序和发布系统使用的 HTML 的轻量级替代品。一些内容开发人员将 Markdown 视为混合语法,为人类和机器提供一种通用语言,一种文本通信的“单一解决方案”。可悲的是,没有一种语言对人类和机器同样有意义。如果人和机器必须使用相同的语法,那么两者都需要做出妥协,并且会遇到意想不到的结果。
标记是一种认知负担。混入文本的代码会干扰作者的话的意思,这就是为什么没有人直接用 HTML 写文章的原因。用标记装饰的文本很难让作家和编辑阅读。它通过使用既不是单词也不是标点符号的附加字符来包围单词,从而分散了文本所说的内容。当作者需要在他们的文本中插入标记时,他们很可能会犯错误,导致计算机也难以阅读标记。
每天早上,在浏览我的 iPad 时,我都会看到标记给作者和读者带来的问题。
它们出现在 Apple News 的文章中,清晰地呈现在整洁的容器中。
苹果新闻格式
Apple News 使用 HTML 或 Markdown 的子集发布文本内容。Apple 提醒作者需要确保任何包含的标记在语法上是正确的:
“标点符号很关键。当您尝试预览您的文章时,article.json 文件中不正确的标点符号(即使是放错位置的逗号或弯引号而不是直引号)也会产生错误。”
这就是标记的麻烦——它在很大程度上取决于它的位置。缺少的空间或额外的空间可能会带来麻烦。开发人员理解这一点,但内容作者不会期望他们的写作格式会在 21 世纪的第三个十年出现问题。他们听说人工智能将很快取代作者。当然,计算机足够聪明,可以正确格式化书面文本。
通常,标记会触发文本的计算机语法和代码的计算机语法之间的冲突。保留字符尤其如此:计算机程序决定使用的特定字符,并且将优先于该字符的任何其他用途。计算机代码和书面散文也使用一些相同的标点符号来表示含义。但与这些标点符号相关的意图并不相同。
考虑星号。它可以充当文本中的脚注。在计算机代码中,它可能会发出函数信号。在
Markdown 中,它可以是一个项目符号或表示文本的粗体。在下面的示例中,我们看到字母“f”周围有两个星号。作者的目标并不清楚,但看起来这些是为了给字母加粗,除了一个额外的空格阻止了加粗。
星号使用错误
如果有任何符号在逻辑上应该在含义和使用上标准化,那就是引号。毕竟,引号表示其中的文本未修改或不应修改。但是使用不同的字符来表达引用有多种约定。在机器和人之间,对于如何表达引号以及它们所传达的内容没有达成一致意见。
当引用的文本被打断时,会发生高度可见的缺陷。引号中的文本应该很重要。下面的示例尝试在短语周围插入引号,却错误呈现了单引号的 Unicode。
引用符号错误
这是另一个引用示例。作者试图告诉代码这些引号是要显示的。但反斜杠转义字符除了引号字符外还显示。引号不是 Markdown 中要转义的字符。我在 Apple News 上面的路透社帖子中反复看到这个问题。
无法理解的语法
这个例子有引号和撇号混合,可能还有一个破折号——都被渲染为“?”。代码对作者的意图感到困惑,读者也是如此。
添加法语口音
添加了法语字符
有这样一个令人困惑的现象:“null”开始一个新段落。也许一些 Javascript 代码正在寻找它没有找到的东西。由于 Null 遵循以引号结尾的链接,因此部分混淆似乎是由链接的编码方式产生的。
错误引入了 Null
下面是链接问题的另一个示例。此介绍呈现得很拙劣,因为 Markdown 编码不正确。作者在呈现链接文本时无法弄清楚在哪里显示斜体,并且尝试了太多。
欢迎语标记错误
所有这些例子都来自专业人员创建的付费媒体。如果依赖收入的出版商会犯这种错误,那么在那些不经常编写网络内容的企业中,这种错误似乎更常见。
作者不应该处理标记。不要假设任何类型的标记对作者来说都是简单的。有些人认为
Markdown 是标记复杂性的答案。他们相信 Markdown 可以使标记变得民主化:任何人都可以容易地正确使用它。Markdown 可能看起来没有 HTML 复杂,但这并不意味着它不复杂。它通过以高度严格的方式使用熟悉的设备(例如空格和标点符号)来隐藏其复杂性。
如果作者能够弄乱标记,他们可能会。一些格式化场景可能很复杂,需要了解标记如何区分不同字符的优先级以及 Javascript 等代码如何?期望字符串。例如,在 Markdown 显示星号需要在 Apple News 使用两个反斜杠进行两次转换。这不应该是内容作者在截止日期前担心的那种细节。
*请认真填写需求信息,我们会在24小时内与您取得联系。