string类型
String 类型用于表示由零或多个 16位 Unicode字符组成的字符序列,即字符串。字符串可以由双 引号(")或单引号(')表示,因此下面两种字符串的写法都是有效的:
var firstName = "始皇";
var lastName = '秦';
字符字面量
string类型中的转义序列,即非打印字符:
字面量 | 含义 |
---|---|
\n | 换行 |
\t | 制表 |
\b | 空格 |
\r | 回车 |
\f | 走纸换页,针对打印机 |
\r | 回车键(\u000D) |
\t | 制表符(\u0009) |
\v | 垂直制表符(\u000B) |
\\ |
斜杠 |
' | 单引号'He said, ' hey.' ' |
'' | 双引号"He said, "hey."" |
\xnn | 用十六进制nn表示一个字符(n为0-F),eg:\x41表示A |
\unnnn | 用十六进制nnnn表示一个Unicode字符(n为0-F),eg: \u03e3表示希腊字符Σ |
转换为字符串
toString()
当toString传参时,此参数表示输出数值的基数,通过这个基数输出二进制,八进制,十六进制:
var num = 10; alert(num.toString()); // "10"
alert(num.toString(2)); // "1010"
alert(num.toString(8)); // "12"
alert(num.toString(10)); // "10"
alert(num.toString(16)); // "a"
null和undefined值没有tostring()方法,在不确定是否有这两个值时,可以使用String(),其转换规则为:
- 如果值有toString()方法,则调用该方法;
- 如果值时null,返回"null";
- 如果值是undefined,返回"undefined";
常用方法
分类 | 名称 | 描述 | 举例 |
---|---|---|---|
字符方法 | 返回某位置字符charAt() | 返回指定位置的字符,返回的字符是长度为 1 的字符串。stringObject.charAt(index) 如果参数 index 不在 0 与 string.length-1 之间,该方法将返回一个空字符串。注意:一个空格也算一个字符。 |
var mystr="Hello world!" document.write(mystr.charAt(2)); //l |
字符方法 | 返回某位置的字符编码charCodeAt() | stringObject.charCodeAt(index) |
var mystr="Hello world!" alert(mystr.charAt(1)); //101--e的字符编码 |
字符方法 | 接收字符编码,返回字符串fromCharCode() | 接收一或 多个字符编码,然后将它们转换成一个字符串。与charCodeAt() 执行的是相反的操作 | alert(String.fromCharCode(104, 101, 108, 108, 111)); //"hello" |
字符串操作方法 | 拼接字符串concat() | 将一或多个字符串拼接并返回拼接得到的新字符串 |
var stringValue = "hello "; var result = stringValue.concat("world");
|
字符串位置方法 | 查找位置indexOf() | 返回指定的字符串首次出现的位置stringObject.indexOf(substring, startpos) 从stringObject的startpos位置开始查找substring,如果没有此参数将从stringObject的开始位置查找。 ①indexOf() 方法区分大小写。 ②如果要检索的字符串值没有出现,则该方法返回 -1。 |
var str="I love JavaScript!" document.write(str.indexOf("I") + "<br />"); //0document.write(str.indexOf("v",8)); //9 |
字符串位置方法 | 查找位置lastIndexOf() | 而 lastIndexOf()方法 是从字符串的末尾向前搜索子字符串 |
var stringValue = "hello world"; alert(stringValue.lastIndexOf("o")); //7
|
大小写转换方法 | 大写toUpperCase() | String 对象的 toUpperCase() 方法:将字符串小写字母转换为大写 |
var mystr="Hello world!"; var mynum=mystr.toUpperCase();
|
大小写转换方法 | 小写toLowerCase() | String 对象的 toLowerCase()方法:将字符串所有大写字母都变成小写的字符串 |
var message="Hello world!"; var mychar=message.toLowerCase()
|
模式匹配方式 | match() | 与exec()方法相同。match()方法只接受一个参数,要么是一个正则表达式,要么是一个 RegExp 对象 |
var text = "cat, bat, sat, fat"; var pattern = /.at/; //与 pattern.exec(text)相同 var matches = text.match(pattern); alert(matches[0]); //"cat"
|
模式匹配方式 | search() | 参数与match相同,:由字符串或 RegExp 对象指定的一个正则表达式。search()方法返回字符串中第一个匹配项的索引;如果没 有找到匹配项,则返回-1。而且,search()方法始终是从字符串开头向后查找模式 |
var text = "cat, bat, sat, fat"; var pos = text.search(/at/); alert(pos); //1
|
替换子字符串 | replace() | 第一个参数可以是一个RegExp对象或一个字符串,第二个参数可以是一个字符串或一个函数,当第一个参数是字符串,那么只会替换第一个子字符串。要想替 换所有子字符串,唯一的办法就是提供一个正则表达式,而且要指定全局(g)标志 |
var text = "cat, bat, sat, fat"; var result = text.replace("at", "ond"); alert(result); //"cond, bat, sat, fat" result = text.replace(/at/g, "ond"); alert(result); //"cond, bond, sond, fond"
|
比较字符串 | localeCompare() | 比较两个字符串-- ① 如果字符串在字母表中应该排在字符串参数之前,则返回一个负数(大多数情况下是-1) ②如果字符串等于字符串参数,则返回 0; ③如果字符串在字母表中应该排在字符串参数之后,则返回一个正数(大多数情况下是 1) |
var stringValue = "yellow"; alert(stringValue.localeCompare("brick")); //1 alert(stringValue.localeCompare("yellow")); //0 alert(stringValue.localeCompare("zoo")); //-1
|
字符串分割split() | 将字符串分割为字符串数组,并返回此数组。stringObject.split(separator,limit) separator--从该参数开始切割,如果把空字符串 ("")用作 separator,那么 stringObject 中的每个字符之间都会被分割。 |
var mystr = "www.imooc.com"; document.write(mystr.split(".")); // www,imooc,com document.write(mystr.split(".", 2)+"<br>"); //www,imooc |
|
提取字符串substring() | 用于提取字符串中介于两个指定下标之间的字符stringObject.substring(startPos,stopPos) startPos--开始位置,必需项 stopPos--结束位置,可选 |
var mystr="I love JavaScript"; document.write(mystr.substring(7)); //JavaScriptdocument.write(mystr.substring(2,6)); //love |
|
提取指定数目的字符substr() | 从字符串中提取从 startPos位置开始的指定数目的字符串。stringObject.substr(startPos,length) 如果参数startPos是负数,从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。 |
var mystr="I love JavaScript!"; document.write(mystr.substr(7));
|
Math对象:
Math 对象是一个固有的对象,无需创建它,直接把 Math 作为对象使用就可以调用其所有属性和方法。这是它与Date,String对象的区别。
Math 对象属性
Math 对象方法
方法 | 描述 | 举例 |
---|---|---|
向上取整ceil() | Math.ceil(x) |
document.write(Math.ceil(0.8)) //1document.write(Math.ceil(-5.9)) //-5 |
向下取整floor() | Math.floor(x) |
document.write(Math.floor(0.8)) //0document.write(Math.floor(-5.9)) //-6 |
四舍五入round() | Math.round(x) |
document.write(Math.round(1.6)); //2 |
随机数random() | Math.random() | 返回一个大于或等于 0 但小于 1 的符号为正的数字值。要想返回0-10之间的:document.write((Math.random())*10);
|
Array 数组对象
数组定义的方法:
- 定义了一个空数组:
var 数组名= new Array();
- 定义时指定有n个空元素的数组:
var 数组名 =new Array(n);
3.定义数组的时候,直接初始化数据:
var 数组名 = [<元素1>, <元素2>, <元素3>...];
我们定义myArray数组,并赋值,代码如下:
var myArray = [2, 8, 6];
数组方法
方法 | 描述 | 举例 |
---|---|---|
数组连接concat() | 用于连接两个或多个数组。此方法返回一个新数组,不改变原来的数组。arrayObject.concat(array1,array2,...,arrayN)
|
类1var mya1 = new Array(1, 2, 3); document.write(mya1.concat(4, 5)); //1,2,3,4,5类2 var mya1= new Array("hello!") var mya2= new Array("world"); document.write(mya1.concat(mya2));
|
指定分隔符连接数组元素join() | 用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。arrayObject.join(分隔符) 如果省略分隔符,则用逗号 |
document.write(myarr3.join("-")); |
颠倒数组元素顺序reverse() | arrayObject.reverse() |
document.write(myarr.reverse()) |
选定元素slice() | 可从已有的数组中返回选定的元素。arrayObject.slice(start,end) ①返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。 ②该方法并不会修改数组,而是返回一个子数组。 ③可使用负值从数组的尾部选取元素。-1为最后一个元素 |
var myarr = new Array(1,2,3,4,5,6); document.write(myarr.slice(2,4) ); //3,4 |
数组排序sort() |
arrayObject.sort(方法函数) 如果不指定<方法函数>,则按unicode码顺序排列。 |
function sortNum(a,b) { return a - b; } document.write(myarr.sort(sortNum)); //升序 |
注意区分切片数组的slice和切片字符串的substring