js-集锦-数据类型
js-汇总-数据类型
js数据类型
Javascript中只有五种简单类型,分别为null,undefined,boolean,String和Number.一种复杂类型:object。
undefined:未定义,我们也可称之为不存在,typeof(undefined)=undefined.
null:为空。undefined是不存在,而null是存在,但却无。
typeof(null)=object,但null又不是object,这就是null的神奇而独特之处。
boolean:true or false。
Number:NaN和Infinity是两个特殊之数,NaN代表一个无法用数值来表示的数字,而Infinity代表一个无穷大的数字
String:字符串,Javascript中没有字符的概念,字符串是表示文本的最小单位。在字符串中,有这样的两个函数,
分别是 charAt(index)和charCodeAt(index)分别返回对应索引的字符和字符Unicode编码。
在我们平时,可能经常会使用下标的方式访问,如s[10],可是这并不是ECMAScript的标准,应该尽量避免。
1.字符串的创建
var str = "string is create";
2.字符串的拼接
var longString = "One " + ",Two.";
3.获取字符串的子串
1> substring()
substring()的原型为: string.substring(from, to)
第一个参数from指定了子字符串在原字符串中的起始位置(基于0的索引);第二个参数to是可选的,
第一个参数from指定了子字符串在原字符串中的起始位置(基于0的索引);第二个参数to是可选的,
它指定了子字符串在原字符串的结束位置(基于0的索引),一般情况下,它应比from大,如果它被省略,
那么子字符串将一直到原字符串的结尾处。
如果参数from不小心比参数to大了会怎样?JavaScript会自动调解子字符串的起止位置,也就是说,
如果参数from不小心比参数to大了会怎样?JavaScript会自动调解子字符串的起止位置,也就是说,
substring()总是从两个参数中较小的那个开始,到较大的那个结束。不过要注意,它包含起始位置的那个字符,
但不包含结束位置的那个字符。
var fullString = "Every dog has his day.";
var section = fullString.substring(0, 4); // section is "Ever".
var fullString = "Every dog has his day.";
var section = fullString.substring(0, 4); // section is "Ever".
var sec = fullString.substring(3, -1); // Eve
2>slice()
原型为: string.slice(start, end)
参数start表示子串的起始位置,如果为负数,那么可以理解为倒数第几个开始,例如-3表示从倒数第三个开始;
参数end表示结束位置,与start一 样,它也可以为负数,其含义也表示到倒数第几个结束。
slice()的参数可以为负数,所以要比substring()更加灵活,但没那么宽容了,如果 start比end要大,它将返回一个空字符串
var fullString = "Every";
var section = fullString.slice(-1, 3);//返回空字符串,因为起始位置为倒数第一个
3>substr()
原型为: string.substr(start, length)
start表示起始位置,length则表示子字符串的长度。JavaScript标准不提倡使用该方法。
4.字符串大小写转变 使用toLowerCase()和toUpperCase()方法:
5.判断两个字符是否相等
javaScript有两种相等运算符。一种是完全向后兼容的,标准的"==",如果两个操作数类型不一致,
它会在某些时候自动对操作数进 行类型转换,考虑下面的赋值语句:
var strA = "weclome to here";
var strB = new String("weclome to here");
var strA = "weclome to here";
var strB = new String("weclome to here");
alert(strA ==strB) //true
这两个变量含有相同的字符序列,但数据类型却不同,前者为string,后者为object,在使用"=="操作符时,
JavaScript会尝试各 种求值,以检测两者是否会在某种情况下相等.
但是 "严格"的"===",它在求值时不会这么宽容,不会进行类型转换。
所以表达式strA === strB的值为false,虽然两个变量持有的值相同。
6.字符串的查找
1>使用string的indexOf()方法:
strObj.indexOf(subString[, startIndex])
strObj.indexOf(subString[, startIndex])
strObj为要进行判断的字符串,subString为要在strObj查找的子字符串,startIndex是可选的,
表示查找的开始位置(基于0的 索引),如果startIndex省略,则从strObj开始处查找,如果startIndex小于0,
则从0开始,如果 startIndex大于最大索 引,则从最大索引处开始
2>lastIndexOf():
strObj.lastIndexOf(substring[, startindex])
strObj 为要进行判断的字符串,subString为要在strObj查找的子字符串,startIndex是可选的,
strObj.lastIndexOf(substring[, startindex])
strObj 为要进行判断的字符串,subString为要在strObj查找的子字符串,startIndex是可选的,
表示查找的开始位置(基于0的索引),如果 startIndex省略,则从strObj末尾处查找,如果startIndex小于0,
则从0开始,如果startIndex大于最大索引,
则从最大 索引处开始。该方法自右向左查找,返回subString在strObj中最后出现的位置,如果没有找到,返回-1.
3> 其他函数汇总
concat('e1','e2','3'.......) – 将两个或多个字符的文本组合起来,返回一个新的字符串。
charAt(index) – 返回指定位置的字符。
match() – 检查一个字符串是否匹配一个正则表达式。
replace('原串',‘目标串’) – 用来查找字符串,然后使用新字符串代替匹配的字符串,只替换第一个匹配的字符串。
search('字符串'):返回字符串在索引中的位置。否则返回 -1 。
split(分割符号) – 通过将字符串划分成子串,将一个字符串做成一个字符串数组。
length – 返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。
charAt(index) – 返回指定位置的字符。
match() – 检查一个字符串是否匹配一个正则表达式。
replace('原串',‘目标串’) – 用来查找字符串,然后使用新字符串代替匹配的字符串,只替换第一个匹配的字符串。
search('字符串'):返回字符串在索引中的位置。否则返回 -1 。
split(分割符号) – 通过将字符串划分成子串,将一个字符串做成一个字符串数组。
length – 返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。