String类型、Number类型、Object类型、Array类型的基本方法总结
2018-03-20 19:34
489 查看
一、String类型
String类型可以使用String构造函数来创建:var stringVal = new String("Hello welcome");
1.字符方法
charAt()和
charCodeAt()方法用于访问字符串中的特定字符,接收一个参数(基于0的字符位置),需要注意的是他们返回的值。
var stringVal = "Welcome to here"; //输出"W",以单字符字符串形式返回 console.log(stringVal.charAt(0)); //输出"101",返回小写字母"e"的字符编码 console.log(stringVal.charCodeAt(1)); //输出"e",ES5中另一个访问个别字符的方法,方括号加数字索引,IE7会返回undefined console.log(stringVal[1]);
2.字符串操作方法
concat()拼接字符串并返回拼接得到的新字符串,实际情况大多使用”+”号拼接;
slice()、
substr()、
substring(),这三个方法都返回一个被操作后的新字符串,接受一或两个参数,第一个参数指定开始位置,第二个参数可选,指定结束位置,如果第二个参数没有则默认为到字符串的末尾。
注意:
slice()和
substring()的第二个参数指定的是最后一个字符的位置(结果不包含这个位置的字符),
substr()的第二个参数指定的是返回的字符个数。如果参数是负值,
slice()会把传入的值与字符串长度相加;
substr()会把第一个负参数加上字符串长度,第二个参数转换为0;
substring()会把两个负参数都转换为0.
var stringVal = "Hi! "; var greeting = stringVal.concat("welcome","!"); console.log(greeting); //"Hi! welcome!" var stringValue = "Hello world"; console.log(stringValue.slice(2)); //"llo world" console.log(stringValue.substring(2)); //"llo world" console.log(stringValue.substr(2)); //"llo world" console.log(stringValue.slice(2,7)); //"llo w" console.log(stringValue.substring(2,7)); //"llo w" console.log(stringValue.substr(2,7)); //"llo wor"
var stringValue = "Hello world"; console.log(stringValue.slice(-2)); //"ld" console.log(stringValue.substring(-2)); //"Hello world" console.log(stringValue.substr(-2)); //"ld" console.log(stringValue.slice(2,-4)); //"llo w",变成了slice(2,7) console.log(stringValue.substring(2,-4)); //"He",变成了substring(2,0),相当于substring(0,2) console.log(stringValue.substr(2,-4)); //""(空字符串),变成了substr(2,0)
3.字符串位置方法
两个从字符串中查找子字符串的方法:indexOf()、
lastIndexOf(),它们返回字符串的位置,没有找到返回-1,区别:
indexOf()从字符串开始向后搜索,
lastIndexOf()从字符串末尾向前搜索。接收第二个参数,表示从字符串的哪个位置开始搜索,
indexOf()从指定位置向后搜索,
lastIndexOf()从指定位置向前搜索。
var stringVal = "Hello world"; console.log(stringVal.indexOf("e")); //输出1 console.log(stringVal.lastIndexOf("e")); //输出1 console.log(stringVal.indexOf("o")); //输出4 console.log(stringVal.lastIndexOf("o")); //输出7 console.log(stringVal.indexOf("o",6)); //输出7 console.log(stringVal.lastIndexOf("o",6)); //输出4
4.trim()方法
trim()方法会创建一个字符串的副本,删除前置及后缀的所有空格,返回结果。例如:
var stringVal = " Hello world "; var trimString = stringVal.trim(); console.log(trimString); //输出"Hello world"
5.字符串大小写转换方法
涉及字符串大小转换的方法有四个:toLowerCase()、
toLocalLowerCase()、
toUpperCase()、
toLocalUpperCase()其中
toLocalLowerCase()和
toLocalUpperCase()是针对特定地区的实现,少数语言会对Unicode大小写转换应用特定的规则。
var stringVal = "hello world"; console.log(stringVal.toLocalUpperCase()); //输出"HELLO WORLD" console.log(stringVal.toUpperCase()); //输出"HELLO WORLD" console.log(stringVal.toLocalLowerCase()); //输出"hello world" console.log(stringVal.toLowerCase()); //输出"hello world"
6.字符串模式匹配方法
String类型用于字符串模式匹配的方法:match()、
search()、
split()。
match()方法接收一个参数,是一个正则表达式或是一个RegExp对象。
var text = "cat,bat,sat,fat"; var pattern = /.at/; //和pattern.exec(text)相同 var matches = text.match(pattern); console.log(matches.index, pattern .lastIndex); //输出"0 0" console.log(matches[0]); //输出"cat"
search()方法返回字符串中第一个匹配项的索引,若没有找到匹配项,则返回-1。
var text = "cat,bat,sat,fat"; var posit = text.search(/at/); console.log(posit); //1 var posit2 = text.search(/dat/); console.log(posit2); //-1 var posit3 = text.search(/fat/); console.log(posit3); //12
replace()方法用于替换子字符串,方法接收两个参数,第一个参数可以是一个RegExp对象或一个字符串,第二个参数可以是一个字符串或者一个函数,如果第一个参数是字符串,仅替换第一个字符串:
var text = "cat,bat,sat,fat"; var result = text.replace("a","ha"); console.log(result); /"/chat,bat,sat,fat" var result2 = text.replace(/a/g,"waha"); console.log(result2); //"cwahat,bwahat,swahat,fwahat"
split()方法可以以特定分隔符或一个RegExp对象将字符串分割成多个子字符串,结果以数组形式展现。第二个参数可选,用来指定要返回数组的大小。
var colors = "red,blue,yellow,green,black"; var newColors = colors.split(","); var newColors2 = colors.split(",",3); var newColors3 = colors.split(/[^\,]+/); console.log(newColors); //["red", "blue", "yellow","green","black"] console.log(newColors2); //["red", "blue", "yellow"] console.log(newColors3); //["", ",", ",", ",", ",", ""]
7.localeCompare()方法
localeCompare()方法比较两个字符串,返回的值有几种情况:
-字符串在字母表里应排在字符串参数之前的返回一个负数;
-字符串在字母表里应排在字符串参数之后的返回一个正数;
-字符串等于字符串参数的返回0.
var stringVal = "sunshine"; console.log(stringVal.localeCompare("purple")); //1 console.log(stringVal.localeCompare("sunshine")); //0 console.log(stringVal.localeCompare("universe")); //-1
8.fromCharCode()方法
fromCharCode()方法接收一或多个字符编码,然后转为一个字符串:
console.log(String.fromCharCode(104,101,108,109,111)); //"helmo"
二、Number类型
Number类型提供了一些把数值格式化为字符串的方法toFixed()、
toExponential()、
toPrecision(),另外Number对象方法
parseFloat()、
parseInt()、
isFinite()、
isInteger()、
isNaN()、
isSafeInteger()。
isFinite()方法确定一个数值是不是有穷的(是不是位于最大值和最小值之间)
var result = Number.MAX_VALUE+Number.MAX_VALUE; console.log(isFinite(result)); //false var result = Number.MIN_VALUE+Number.MAX_VALUE; console.log(isFinite(result)); //true
isNaN()方法确定参数是否”不是数值”
console.log(isNaN(NaN)); //true console.log(isNaN(20)); //false(20是数值) console.log(isNaN("20")); //false("20"可以被转换成数值) console.log(isNaN("color")); //true("color"不能转换成数值) console.log(isNaN(true)); //false(ture可以被转换成数值)
Number()遵循一定规则把各种数据类型转换为数值:
var num1 = Number("Hello world"); //NaN var num2 = Number(""); //0 var num3 = Number("000011"); //11 var num4 = Number(false); //0
parseInt()遵循相应规则把字符串转换为数值,它会忽略字符串前面的空格,直到找到第一个非空字符,第二个参数指定要解析成什么进制格式:
var num1 = parseInt("3421hello"); //3421 var num2 = parseInt(""); //NaN var num3 = parseInt("0xA"); //10(十六进制) var num4 = parseInt(23.5); //23 var num5 = parseInt("070"); //56(八进制) var num6 = parseInt("60"); //60(十进制)
var num1 = parseInt("16",2); //1 var num2 = parseInt("16",8); //14 var num3 = parseInt("16",10); //16 var num4 = parseInt("16",16); //22 console.log(num1,num2,num3,num4);
parseFloat()遵循相应规则把字符串转换为数值,第一个小数点有效,第二个无效,它后面的字符串将被忽略,它始终都会忽略前导零:
var num1 = parseFloat("3421hello"); //3421 var num2 = parseFloat(""); //NaN var num3 = parseFloat("0xA"); //0 var num4 = parseFloat(23.5); //23.5 var num5 = parseFloat("23.45.76"); //23.45 var num6 = parseFloat("3.125e7"); //31250000 console.log(num1,num2,num3,num4,num5,num6);
三、Object类型
hasOwnProperty(propertyName):用于检查给定的属性在当前实例中(不是在实例的原型中)是否存在。
var arr = []; console.log(arr.hasOwnProperty("length"));//true console.log(arr.hasOwnProperty("hasOwnProperty"));//false
isPrototypeOf(object):用于检查传入的对象是否是当前对象的原型。
function Person() {} var obj = new Person(); console.log(Object.prototype.isPrototypeOf(obj)); //true
propertyIsEnumerable(prototypeName):用于检查给定属性是否可以使用for-in语句枚举。
var obj = { name: "Nicher", age: 23 } for (var i in obj) { console.log(i); //name age }
toLocalString():返回对象的字符串表示,与执行环境的地区对应。
var obj = {}; console.log(obj.toLocaleString());//[object Object] var date = new Date(); console.log(date.toLocaleString());//2018/3/20 下午3:51:50
toString():返回对象的字符串表示。
var obj = {}; console.log(obj.toString());//[object Object] var date = new Date(); console.log(date.toString());//Tue Mar 20 2018 16:02:31 GMT+0800 (中国标准时间)
valueOf():返回对象的字符串、数值、布尔值表示。
var obj = { name: "Lily", age: 24 }; console.log(obj.valueOf());//{name: "Lily", age: 24} var arr = [1,2,3]; console.log(arr.valueOf());//[1, 2, 3] var date = new Date(); console.log(date.valueOf());//1521533050919
四、Array类型
1.检测数组
Array.isArray()方法确定某个值到底是不是数组。
var arr1 = [1,2,3]; var arr2 = "Hello"; if (Array.isArray(arr1)) { //对数组执行的操作 var newArr = arr1.join("-"); console.log(newArr); //1-2-3 } if (Array.isArray(arr2)) { //对数组执行的操作 console.log(arr2); } else { console.log("Not a array"); //Not a array }
2.转换方法
所有对象都具有toLocalString()、
toString()、
valueOf()方法,
valueOf()仍返回数组本身,
toString()方法返回字符串,由数组中每个值的字符串形式以逗号分隔拼接而成。可以使用
join()方法使用不同的分隔符来构建这个字符串。
var colors = ["black","white","blue"]; console.log(colors); //["black", "white", "blue"] console.log(colors.toString()); //black,white,blue console.log(colors.valueOf()); //["black", "white", "blue"] console.log(colors.join("-")); //black-white-blue
3.栈方法
push()方法和
pop()方法,
push()方法可以接收任意数量的参数,添加到数组末尾,返回修改后数组的长度,
pop()方法从数组末尾移除最后一项,返回移除的项。
var colors = []; var pushed = colors.push("black","white"); console.log(pushed); //2 pushed = colors.push("yellow"); console.log(pushed); //3 pushed = colors.pop(); console.log(pushed); //"yellow" console.log(pushed.length); //2
4.队列方法
使用shif()和
unshif()方法可以像使用队列一样使用数组。
shif()方法能够移除数组中的第一个项并返回该项,同时数组长度减1,
unshift()方法在数组前端添加任意个项,并返回新数组的长度。
var colors = ["red","green"]; var result = colors.shift(); console.log(result); //"red" var result2 = colors.unshift("black","white"); console.log(result2); //3
5.重排序方法
数组中用来排序的方法reverse()和
sort()。
var arr = [1,2,3,4,5]; arr.reverse(); console.log(arr); //[5, 4, 3, 2, 1] var arr2 = [1,5,10,15]; arr2.sort(); console.log(arr2); //[1, 10, 15, 5]
6.操作方法
concat()方法基于当前数组所有项创建一个新数组副本,返回新构建的数组。
var colors = ["red","blue","pink"]; var colors2 = colors.concat("brown",["black","white"]); console.log(colors); // ["red", "blue", "pink"] console.log(colors2); //["red", "blue", "pink", "brown", "black", "white"]
slice()它能够基于当前数组中的一个或多个项创建一个新数组,接收一或两个参数,即要返回项的始末位置(不包含结束位置的项),第二个参数可选,没有默认到最后一项。如果
slice()方法中有一个负数,则用数组长度加上这个负数,如果起始位置大于结束位置,则返回空数组。
var colors = ["red","blue","pink","yellow","orange","skyblue"]; var colors2 = colors.slice(1); var colors3 = colors.slice(1,4); var colors4 = colors.slice(-2,-3); var colors5 = colors.slice(-2,-1); console.log(colors2); //["blue", "pink", "yellow", "orange", "skyblue"] console.log(colors3); //["blue", "pink", "yellow"] console.log(colors4); //[] console.log(colors5); //["orange"]
splice()方法,主要用途是向数组中部插入项,可以删除,插入,替换
-删除:可以删除任意数量的项,指定两个参数,要删除的第一项的位置和要删除的项数。
-插入:向指定位置插入任意数量的项,提供三个参数:起始位置、要删除的项数(0)以及要插入的项。
-替换:向指定位置插入任意数量的项,同时删除任意数量的项,指定三个参数:起始位置、要删除的项数、要插入的项。
var colors = ["pink","blue","white"]; var removeColors = colors.splice(0,1); //删除第一项 console.log(colors); //["blue", "white"] console.log(removeColors); //["pink"] removeColors = colors.splice(1,0,"red","green"); //从位置1开始插入两项 console.log(colors); //["blue", "red", "green", "white"] console.log(removeColors); //[] removeColors = colors.splice(1,1,"black","orange"); console.log(colors); //["blue", "black", "orange", "green", "white"] console.log(removeColors); //["red"]
7.位置方法
ES5为数组实例添加了两个位置方法indexOf()、
lastIndexOf(),它们都接受两个参数:要查找的项和查找起点位置索引。
indexOf()从数组的开头开始,
lastIndexOf()从数组的末尾向前查找。在没找到的情况下返回-1.
var numbers = [1,2,3,4,5,4,3,2,1]; console.log(numbers.indexOf(4)); //3 console.log(numbers.lastIndexOf(4)); //5 console.log(numbers.indexOf(4,4)); // console.log(numbers.lastIndexOf(4,4)); // var person = {name: "Lily"}; var person2 = [{name: "Ken"}]; var morePeople = [person]; console.log(person2.indexOf(person)); //-1 console.log(morePeople.indexOf(person)); //0
8.迭代方法
数组的5个迭代方法都接收两个参数,要在每一项上运行的函数和运行该函数的作用于对象(可选)。传入的函数接收三个参数:数组项的值、该项在数组中的位置和数组对象本身。-
every():对数组每一项运行给定函数,如果都返回true,则返回true。
-
filter:对数组每一项运行给定函数,返回该函数会返回true的项组成的数组。
-
foreEach():对数组的每一项运行给定函数,该方法无返回值。
-
map():对数组每一项运行给定函数,返回每次函数调用的结果组成的数组。
-
some():对数组每一项运行给定函数,如果函数任意一项返回true,则返回true。
var arr = [1,2,3,4,5,4,3,2,1]; var everyResult = arr.every((item,index,array) => item>2); console.log(everyResult); //false var someResult = arr.some((item,index,array) => item>2); console.log(someResult ); //true var filterResult = arr.filter((item,index,array) => item>2); console.log(filterResult); //[3,4,5,4,3] var mapResult = arr.map((item,index,array) => item*2); console.log(mapResult); //[2, 4, 6, 8, 10, 8, 6, 4, 2] arr.forEach((item,index,array) => { console.log(index+':'+item); })
9.归并方法
两个归并数组的方法:reduce()和
reduceRight(),这两个方法均迭代数组的所有项,方向相反。接收两个参数:在每一项上调用的函数和作为归并基础的初始值(可选)。传入的函数接收4个参数:前一个值,当前值,项的索引和数组对象。这个函数返回的任何值均自动作为第一个参数传给下一项。
var arr = [1,2,3,4,5]; var sum = arr.reduce((prev,cur,index,array) => prev+cur); console.log(sum); //15
var arr = [1,2,3,4,5]; var sum = arr.reduceRight((prev,cur,index,array) => prev+cur); console.log(sum); //15
相关文章推荐
- 写一个方法clone; 实现js五种数据类型(string, number, boolean, array, object)的复制
- 实现一个函数clone,使JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制
- 第3章 基本概念(3)数据类型:Number类型 String类型 Object类型
- javascript,对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制
- 实现JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制
- 【JavaScript】基本数据类型与引用数据类型区别(及为什么String、Boolean、Number基本数据类型会有属性和方法?)
- 面试题---实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。
- 实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。
- 实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制。
- 黑马程序员--06.基本数据类型包装类--【强制类型转换】【强转VS专用方法转换】【个人总结】
- int、double、boolean、char、float、long、Object等七种数据类型转换成String数据类型 用到的方法是String.valueOf();
- JavaScript Number 对象 Javascript Array对象 Location 对象方法 String对象方法
- 【语言基础】c++ 基本数据类型与字节数组(string,char [] )之间的转化方法
- 【J2SE归档总结】0x06 String &基本数据类型
- 基本类型String的原生方法详解
- javascript中数组array及string的方法总结
- js中通过Object.prototype.toString方法----精确判断对象的类型
- JavaScript的数据类型之Number, String, Boolean和Object
- js中将string变成number类型的快速方法
- Javascript中类型: undefined, number ,string ,object ,boolean