Javascript--String类型
来源:互联网 发布:程序流程图软件 编辑:程序博客网 时间:2024/06/11 13:49
1 说明
Javascript中用Strng类型来表示所有的字符类型的数据,在Javascript中没有Char和String的区别,这一点和其他的编程语言有区别.
2 如何表示字符
在Javascript中创建一个String数据,直接用引号将要表示的字符包含其中即可
var str = "这是测试字符啦!";
注意在Javascript,用来包含字符串的引号可以是单引号,也可以是双引号,例如上面的例子也可以写成:
var str = '这是测试字符啦!';
2.1 如何表示特殊字符
有些时候我们需要表示带空行或者带Tab的字符串,这时候我们应该怎么去实现呢? 我们脑海里面可能想到的表示方式可能有如下这种方式的:
var str = "这是第一行这是第二行这是第三行";
有这样的想法很正常,让我们看看上面这种方式在浏览器执行的结果吧:
大家可能会想,为什么会出错,其实这个道理也不是很难,大家知道在Javascirpt中程序的语句的分割方式有两种,一个是使用分号(;)来分割代码,另外一种方式就是使用换行来实现代码的分割。
对于前者大家应该知道,在每个Javascirpt语句写完了过后,在语句末尾一般会加上分号,第二种方式,是不怎么受推荐的方式的,直接使用换行来判断,例如下面这几段代码是有效的
var text1 = "第一行" var text2 = "第二行" alert(text1) alert(text2)
现在回归到我们的例子:
var str = "这是第一行这是第二行这是第三行";
浏览器在执行时候会将上面的第一行
var str = "这是第一行
作为一个独立完整的语句来进行解析,根据Javascript语法要求,上面这一句在格式上面不符合标准,所以会出现上图表示的错误信息.
因此,为了表示这类特殊的字符,Javascript使用类似与其他语言的转义方式来表示换行,Tab和其他特殊字符。
具体的方式是使用: 反斜杠(\) + 字符
这种结构来表示,例如,要表示换行,则是\n
.其他的特殊字符的表示方式如下表:
\n
换行 \b
退格符 \r
回车符 \t
制表符 \f
换页符 \\
\ \'
单引号 \"
双引号更多其他的特殊字符,请读者在搜索工具中查阅。
使用上面的特殊字符来表示特殊字符的数量还是有限的,所以应该提供一种更加统一的方式来表示字符,在Javascript使用\uNNNN
来表示Unicode,其中N表示是的十六进制数.
因此,可以用\u1234
来表示ሴ
2.2 如何使用转义
在Javascript表示字符的时候有些时候需要进行转义,例如:
我们想要表示: I'am a student
字符.
如果使用如下的语句:
var str = 'I'am a student';
则Javascript执行引擎在分析代码的时候,会将引号进行匹配,就不能有效的区分, 也就是将'I'
看做是一个字符串表达,结果会是I
字符, 但是,这并不是我们想要的结果,所以需要显示的告诉Javascript第二个'
应该解释为字符,而不是用来作为包含字符内容的,如何告诉Javascript执行引擎呢?
这就时候转义的用处来,转义,顾名思义,转变原有的意思,转义的方式是在要表示的内容前面加上\
, 所以,上面的字符可以表示为
var str = 'I\'m a student';
所以,我们可以发现,在表达某些字符可能出现二义性的时候,我们需要显示的告诉Javascript选用那种方式。
现在,让大家看一下,如果上面的字符串通过下面的表达方式,是否需要进行转义
var str = "I'm a student";
如果你的回答是不需要转义,恭喜你,答对了!
这种情况下,我们的Javascript执行引擎可以区分出双引号里面包含有一个单引号,而且此时,单引号应该解释为单引号,而不是用来包含字符的.
因此我们可以总结什么情况下,需要对双引号或单引号进行转义.
1 如果用单引号包含一个双引号字符,则双引号则不需要进行转义的;双引号同理,例如:
var str1 = "I'm a student";var str2 = 'show " in content ';
2 如果单引号包含的字符串里面需要表示单引号,则字符串里面的单引号需要进行转义,双引号同理,例如:
var str1 = 'I\'m a student';var str2 = "show \" in content";
3 属性
String类型定义length属性,这个属性用来表示字符串的长度,例如:
console.log("1234".length));
输出的结果应该是: 4
Javascript当中的String 对象有一个特性,就是一旦创建后,就不能进行修改,所以,一个String类型的对象它的长度是固定的。
4 方法
4.1 charAt
该方法用来访问字符串中特定位置的字符,该方法接受一个参数,该参数用来说明获取字符串中第几个字符,字符串中字符的索引是从0开始的.
var str = "12345"; console.log(str.charAt(3));
输出的结果是: 4
4.2 toLowerCase/toUpperCase
该方法获取字符串的大写或小写的形式. 例如:
console.log('shanghai'.toUpperCase());
结果是: SHANGHAI
4.3 子串
这部分涉及到String对象的三个方法(substring, substr和slice),
下面以字符串内容为”this is a demo”为例进行说明:
1 substring(startPosition, endPosition): 该方法的字符串不包含endPosition位置的字符.
"this is a demo".substring(0, 3);
输出的结果是: thi
2 slice(startPosition, endPosition): 该方法的字符串不包含endPosition位置的字符.
"this is a demo".slice(0, 3);
输出的结果是: thi
3 substr(startPosition, length): 该方法的获得的子字符串从startPosition位置开始,长度为length.
"this is a demo".substr(0, 3);
输出的结果是: thi
从上面我么可以看出substring和slice方法的功能类似,其实它们之间还是存在一定的差别的,主要差别是体现在它们对待负数和溢出数值的方式
负数(negative):
strstring将负数看做0,所以
console.log("demo".strstring(-1));
结果是:demo
slice将负数看做是从字符串的右侧开始定位,-1表示从右边起第一个字符.
console.log("demo".slice(-1));
结果是: o
5 字符串的比较
比较算法
1. 计算第一个字符: a = s1.charAt(0) b = s2.charAt(0),如果它们相等则继续,否则返回> 或者< 的结果;
2. 比较第二个字符,以此类推;
var str1 = "abc";var str2 = "abd";console.log(str1 > str2);
结果是: false
;
6 字符和数字
我们经常会看到类似于15 > "4"
的算式,对于这类算式,如何去判断的它的结果,Javascript的执行策略是:如果比较操作符的操作数有一个是数字,则其他的都将会转化为数字类型。
所以,下面例子:
console.log(11 > "2");
结果是: true
本文参考: http://javascript.info/tutorial/string
- [JavaScript]-----String类型
- javascript的String类型
- JavaScript String 字符串类型
- Javascript--String类型
- Javascript—String类型
- JAVASCRIPT:STRING类型
- javascript中String类型
- javascript类型系统之String
- javascript String类型的 方法
- JavaScript中的String类型和Object类型
- JavaScript string 字符串类型的扩展函数
- JavaScript将String转为double类型
- Javascript之String类型知识整理
- JavaScript中String类型的方法
- JavaScript读书笔记---基本数据类型string与基本包装类型String
- JavaScript学习笔记之Array类型与String类型
- javascript类型系统——字符串String类型
- 在javascript里 string 和 int 类型得相互转换
- Promise
- 蓝桥杯历届-密码发生器
- Java:按值传递还是按引用传递详细解说
- Mini类木马
- php正则表达式 获取开始字符串和结束字符串中的部分内容
- Javascript--String类型
- 历届试题 兰顿蚂蚁
- 线程 TLS 学习总结
- linux libjpeg对图像进行压缩
- 当你输入一个网址的时候,实际会发生什么?
- WebSocket
- ZOJ 3605 2012浙江省省赛 挺好的动规题
- 散列集Hashset ---猜年龄
- 运动和地理位置API