JavaScript字符串和数值对象

目录

一、字符串对象 —— String

       连接(添加)字符串concat()函数

       替换(修改/删除)字符串replace()函数

       检索(搜索)字符串indexOf()、match()、search()函数

二、数值处理对象 

       Math对象

       数学常量属性、绝对值Math.abs()、次方幂Math.pow()、随机数Math.random()、四舍五入Math.round()、向上取整Math.ceil()和向下取整Math.floor()函数

       Number对象

       字符/串转整数toString()函数、四舍五入为指定小数的数值字符串toFixed()函数


一、字符串对象 —— String

1.1 String对象属性

方法

描述

constructor

对创建该对象的函数的引用

length

字符串的长度

prototype

允许您向对象添加属性和方法

注意:如果只是定义了字符串对象,却没有创建字符串对象,那么他是不具备向相对添加自定义的属性和方法的。例如:

var Str = "What Are You doing?";
Str.num = 10; //undefined

var StrObj = new String();
StrObj.num = 10; //10

1.2 String对象方法

方法

描述

concat()

连接字符串。

replace()

替换指定的或与正则表达式匹配的子串。

indexOf()

检索字符串。

search()

检索与正则表达式相匹配的值。

match()

找到一个或多个与正则表达式匹配的值。

split()

将字符串分割为字符串数组。

toLowerCase()

字符串转换为小写。

toUpperCase()

字符串转换为大写。

1、concat()连接字符串

concat()方法将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回。连接字符串还可以通过操作符“+”来连接两个字符串,称为字符串连接,他的作用和concat()函数是一样的。

var str1 = "How",str2 = " Are",str3 = " You"
console.log(str1.concat(str2,str3));  //How Are You
var Str = str1 + str2 + str3;
console.log(Str);  //How Are You

2、match()方法查找字符串

这个方法是使用正则表达式模式对字符串进行搜索,并返回一个包含搜索结果的数组对象。该方法的语法格式为:match(regExp)

如果没有为正则表达式设置全局标志(g),match方法产生的结果与没有设置全局标志(g)的exec方法的结果完全相同。如果设置了全局标志(g),match方法返回数组中包含所有完整的匹配结果,元素0~n依次是每个完整的匹配结果。

传递给match方法的参数是一个RegExp对象实例,及用表达式作为match方法的参数去搜索字符串;而传递给exec方法的参数是一个String类型的对象实例,即用表达式对象去搜索作为exec方法参数的字符串。

例如,在“Hello word”字符串中检索不同的字串,代码如下

var Str = "Hello word";
console.log("查找字符串word的结果为:" + Str.match("word"));  //word
console.log("查找字符串WORD的结果为:" + Str.match("WORD"));  //null
console.log("正则表达式匹配WORD的小写结果为:" + Str.match(/WORD/i));  //word

注意:检索出来的结果是数组对象,并非字符串更不是字符串对象

var Str = "Hello word";
var Result = Str.match("word");
console.log("数组长度:"+Result.length);  //1
console.log("字符串数组长度:"+Result[0].length);  //4

Result[1] = "Ni Hao";
console.log("拼接的数组为:"+Result);  //word,Ni Hao

3、search()方法查找字符串

该方法返回使用表达式搜索时,第一个匹配到的字符串在整个被搜索字符串中的位置。该方法的语法格式为:search(regExp)。

var Str = "Hello word";
console.log("查找字符串word的结果为:" + Str.search("word"));  //6
console.log("查找字符串WORD的结果为:" + Str.search("WORD"));  //-1
console.log("正则表达式匹配WORD的小写结果为:" + Str.search(/WORD/i));  //6

个人观点:match和search方法都可以搜索字符串中是否存在指定的字符串。两者不同的是,match方法如果检索出,则返回一个对象,里面存有指定的字符串对象,如果不存在则返回一个null值。search方法从字符串的0下标开始检索,如果检索出则返回第一个匹配到的初始下标,如果不存在则返回-1。

4、indexOf()f方法查找字符串

该方法可以查找子字符串在另外一个字符串里第一次出现的位置,返回子字符串在目标字符串里的索引,如果没有找到就返回-1。还有个函数是lastIndexOf()它的作用和indexOf是一样的,不同的地方是lastIndexOf()查找的是最后一次出现的位置。

var Str = "Hello word word";
console.log(Str.indexOf("word"));  //6
console.log(Str.lastIndexOf("word"));  //11

5、replace()方法

该方法将一些字符替换掉字符串中的指定字符,或替换掉匹配正则表达式的字符。该语法的格式为:stringObjet.replace(regExp / subStr,replaceStr)

var Str = "What Are You doing?";
console.log(Str.replace(/doing/,"Laoye"));  //What Are You Laoye?
console.log(Str.replace("doing","Laoye"));  //What Are You Laoye?

注意:如果想要替换掉字符串中所有指定的字符串,只需要在正则表达式中指定全局匹配模式即可。例如:Str.replace(/o/g,"xx")。

6、split()方法

该方法通过指定格式将一个字符串分割成子字符串数组。该方法的语法格式如下split([separator[,limit]])。

方法按照某种分割标志字符将一个字符串拆分成若干个子字符时所产生的子字符串数组。separator是分割标志符参数,可以是多个字符或者一个正则表达式,参数limit显示返回元素的个数。

var Str = "Hello word";
console.log(Str.split(""));  //H,e,l,l,o, ,w,o,r,d
console.log(Str.split("",3));  //H,e,l
console.log(Str.split(" "));  //Hello,word

个人观点:没有空格,表示的是每个字符都拆成一个子字符。而一个空格表示的,每个空格拆开的字符串都为子字符串。

 

二、数值处理对象

1、Math对象

Math对象提供了大量的数学常量和数学函数。Math对象不像Date和String那样的对象,它没有构造函数Math(),比如Math.sin()这样的函数只是函数,不是某个对象的方法。所以,无需创建Math对象,直接使用“对象名.成员”的格式就可以访问其属性或方法。

1.1 Math对象的属性

      Math对象的属性是数学中常用的常量。

1.2 Math对象的方法

      Math对象的方法是数学中常用的函数

这里一定要掌握比较常用的几个函数,分别是abs、pow、random、round、ceil、floor,分别对应数值的绝对值、次方幂、随机数、四舍五入、向上取整和向下取整,效果如:

console.log("-5的绝对值为:" + Math.abs(-5));  //5
console.log("2的3次方为:" + Math.pow(2,3));  //8
console.log("0~1随机生成的浮点数为:" + Math.random());  //0.350235...
console.log("2.56向上取整为:" + Math.ceil(2.56));  //3
console.log("2.56向下取整为:" + Math.floor(2.56));  //2
console.log("2.5的四舍五入为:" + Math.round(2.5));  //3

2、Number对象

Number对象是原始数值的包装对象。它可以不与运算符new一起使用,而直接作为转化函数来使用。以这种方式调用Number()时,它会把自己的参数转化成一个数字,然后返回转换后的原始数值或者Nan。

console.log(Number("a"));  //NaN -a并非数值字符

console.log(Number("10"));  //10
console.log(typeof Number("10"));  //number

var num = new Number("10");
console.log(num);  //10
console.log(typeof num);  //object

2.1 Number对象的属性

* MAX_VALUE属性:返回Number对象的最大可能值

* MIN_VALUE属性:返回Number对象的最小可能值

NEGATIVE_INFINITY属性:返回Number对象的负无穷大的值

* POSITIVE_INFINITY属性:返回Number对象的正无穷大的值

* prototype属性:可以为对象添加属性和方法

* constructor属性:返回创建此对象的函数引用

 

2.2 Number对象的方法(主要介绍两种)

* toString方法

  该方法可以把Number对象转换成一个字符串,并返回结果。该方法的语法格式为:NumberObject.toString(radix)

  注意:radix是可选项,默认为基数为10,即表示为十进制。它的值使用2~36之间的整数,如果参数是10以外的其他值,则ECMAScript标准允许返回任何值。

var num = new Number(120);
console.log(typeof num); //object
console.log(typeof num.toString()); //string
console.log(num.toString(2)); //1111000
console.log(num.toString(10)); //120
console.log(num.toString(16)); //78
console.log(num.toString(36)); //3c

* toFixed方法

   该方法将Number对象四舍五入为指定小数位数的数字,然后转换成字符串。该语法格式如下:NumberObject.toFixed(num)。

  注意:num是必选项,默认为0。规定小数的位数,是0~20之间的值。

var num = new Number(12.34567);
console.log(num.toFixed(0));    //12
console.log(num.toFixed(1));    //12.3
console.log(num.toFixed(2));    //12.35
console.log(num.toFixed(3));    //12.346