JavaScript封装好的方法

1. JavaScript 数据类型: 字符串、数字、布尔、数组、对象、Null、Undefined

  细分:

      基本类型/值类型: 数值、布尔值、null、undefined

      引用类型:对象、数组、函数。

      行为与基本类型相似的不可变引用类型: 字符串(字符串具有可变的大小,它不能被直接存储在具有固定大小的变量中, 但没法改变一个字符串值的内容, 字符串在许多方面都和基本类型的表现相似)

2. JavaScript判断类型

  number、string、array、object、Boolean、null、undefined
  1. typeof array、object、null都返回object
  2. instanceof只能用来判断对象和函数,不能用来判断字符串和数字. 

    X instanceof Array 判断数组
    [] instanceof Array

var a = '123';
a instanceof String // false
var b = new String('123');
b instanceof String // true
typeof a =='string' // true
var c = [1,2,3];
c instanceof Array // true
var d = {'1': '1'};
d instanceof Object // true
var e = 1;
e instanceof Number; // false
var f = new Number(1);
f instanceof Number; // true

  3. X.constructor == Array/Object/String/Number/Boolean

3. JavaScript 对象

No1. Array

**********************************************************************************

  Type1. 不会改变现有的数组

  --------------------------------------------------------------------------

  1. concat()    

arrayObject.concat(arrayX,arrayX,......,arrayX)。
arrayX 必需。该参数可以是具体的值/数组对象。可以是任意多个。
连接两个或更多的数组,并返回结果(不去重)。
var a = [1,2,3];
b = a.concat(4,5); //[1,2,3,4,5]

var a = [1,2,3];
var b = [1,2,3];
c = a.concat(b) //[1, 2, 3, 1, 2, 3]

  2. jion()   

arrayObject.join(separator)
separator   可选。指定要使用的分隔符。默认,。
把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。

var a = [1,2,3];
a.join()             //"1,2,3"
a.join('.')          //"1.2.3"

  3. slice()    

arrayObject.slice(start,end) 左闭右开
start   必需。选取开始位置。负数,表示从数组尾部开始算起的位置。-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
end 可选。结束位置。该参数是结束的数组下标。如果没有指定该参数,那么包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。
var a = [1,2,3,4,5,6,7,8];
a.slice(0)              // [1, 2, 3, 4, 5, 6, 7, 8]
a.slice(1)              // [2, 3, 4, 5, 6, 7, 8]
a.slice(3,5)            // [4, 5]
a.slice(-3,-2)          // [6]
a.slice(-1,-2)          // []

  4. toString()  把数组转换为字符串,并返回结果。

arrayObject.toString()  == arrayObject.join()
var a = [1,2,3];
a.toString()              // "1,2,3"

  5. toLocaleString()

arrayObject.toLocaleString()
把数组转换为本地数组,并返回结果。toLocaleString()方法,主要用于将数组 Number对象或Date对象转换为本地格式的字符串.
var a = [1,2,3];
a.toLocaleString()              // "1, 2, 3 "

  Type2. 会改变现有的数组

  --------------------------------------------------------------------------

  6. pop()    

arrayObject.pop()
方法将删除 arrayObject 的最后一个元素,把数组长度减1,并且返回它删除的元素的值。
如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
var a = [1,2,3];
a.pop()  //3
a        // [1,2]
a.pop()  //2
a.pop()  //1
a.pop()  //undefined

  7. shift() 

arrayObject.shift()
方法用于把数组的第一个元素从其中删除,把数组长度减1,并返回第一个元素的值。
如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。
var a = [1,2,3];
a.shift() // 1

   8. push()

arrayObject.push(newelement1,newelement2,....,newelementX) 该方法会改变现有的数组(arrayObject)。
newelement1 必需。要添加到数组的第一个元素。
newelement2 可选。要添加到数组的第二个元素。
newelementX 可选。可添加多个元素。
向数组的末尾添加一个或更多元素,并返回新的长度。
var a = [1,2,3];
var b = [1,2,3];
a.push(5)          // 4
a                  // [1, 2, 3, 5]
a.push(b)          // 5
a                  // [1, 2, 3, 5, [1,2,3]]

9. unshift()

arrayObject.unshift(newelement1,newelement2,....,newelementX)
newelement1 必需。向数组添加的第一个元素。
newelement2 可选。向数组添加的第二个元素。
newelementX 可选。可添加若干个元素。
向数组的开头添加一个或更多元素,并返回新的长度。无法在 Internet Explorer 中正确地工作!
var a = [1,2,3];
a.unshift(0)          // 4
a                     // [0, 1, 2, 3]
a.unshift(0,1,2,3)    // 8
a                     //[0, 1, 2, 3, 0, 1, 2, 3]

10. reverse()

arrayObject.reverse()  颠倒数组中元素的顺序。
var a = [1,2,3];
a.reverse()           // [3, 2, 1]
a                     // [3, 2, 1]

11. sort()

arrayObject.sort(sortby)
sortby  可选。规定排序顺序。必须是函数。
方法用于对数组的元素进行排序。根据字母排序的
var a = [1,2,3, [1,2,3]];
a.sort()                   // [1,[1,2,3],2,3]
a                          // [1,[1,2,3],2,3]
var b = [1,10,1000,25,40,5];
// ****************
sortNumber(a,b)
{
    return b-a
}
b.sort()                   //[1, 10, 1000, 25, 40, 5]
b.sort(sortNumber)         // [1000, 40, 25, 10, 5, 1]
a.sort(sortNumber)         // [1,[1,2,3],3,2]

12. splice()

arrayObject.splice(index,howmany,item1,.....,itemX)
index   必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
item1, ..., itemX   可选。向数组添加的新项目。
删除元素,并向数组添加新元素。返回的是含有被删除的元素的数组。否则是[]
var a = [1,2,3];
a.splice(3,0,'')         // []
a                        // [1, 2, 3, ""]
a.splice(3,0)            // []
a                        // [1, 2, 3, ""]
a.splice(3,1)            // [""]
a                        // [1, 2, 3]
a.splice(3,0,5,6,7,8)    // []
a                        // [1, 2, 3, 5, 6, 7, 8]
a.splice(3,0,4)          // []
a                        // [1, 2, 3, 4, 5, 6, 7, 8]
a.splice(3,4)            // [4, 5, 6, 7]
a                        // [1, 2, 3, 8]

No2. Boolean

**********************************************************************************

1. toString() 

booleanObject.toString() 把数组转换为字符串,并返回结果。该方法不会改变现有的数组(booleanObject)。
a = true
a.toString()      //"true"

No3. Number

**********************************************************************************

1. toString()

NumberObject.toString(radix) 把数组转换为字符串,并返回结果。该方法不会改变现有的数组(NumberObject)。
radix   可选。规定数字的基数,使 2 ~ 36 之间的整数。默认基数 10。10 以外的其他值,则 ECMAScript 标准允许实现返回任意值。
var number = 32
number.toString(2)    // "100000"
number.toString(8)    // "40"
number.toString(16)   // "20"

2. toLocaleString()

NumberObject.toLocaleString()
根据本地规范进行格式化,可能影响到小数点或千分位分隔符采用的标点符号。
var number = 32
number.toLocaleString()    // "32"

3. toFixed()

NumberObject.toFixed(num) 可把 Number 四舍五入为指定小数位数的数字。
num 必需。规定小数的位数[0~20],或更大。默认0。
var number = 32.55
number.toString()    // "33"
number.toFixed(1)    // "32.5" //存在问题
number.toFixed(2)    // "32.55"
number.toFixed(3)    // "32.550"
function refineToFixed(number,fractionDigits){
    return Math.round(number * Math.pow(10,fractionDigits)) / Math.pow(10,fractionDigits);
}
number.toFixed(number, 1)    // "32.6" //存在问题

4. toPrecision()

NumberObject.toPrecision(num)可在对象的值超出指定位数时将其转换为指数计数法。
num   必需。规定必须被转换为指数计数法的最小位数[1~21]。
有效实现允许有选择地支持更大或更小的 num。
如果省略了该参数,则调用方法 toString(),而不是把数字转换成十进制的值。
var number = 10000000
number.toPrecision(4)  // "1.000e+7"
var number = 10
number.toPrecision(4)  //  "10.00"

No4. Date

**********************************************************************************

1. Date()  返回当日的日期和时间。 

Date()   // "Tue Mar 14 2017 11:09:04 GMT+0800 (CST)"

2. getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
3. getDay() 从 Date 对象返回一周中的某一天 (0(周日)到 6(周六))。
4. getMonth() 从 Date 对象返回月份 (0 ~ 11)。
5. getFullYear() 从 Date 对象以四位数字返回年份。
7. getHours() 返回 Date 对象的小时 (0 ~ 23)。
8. getMinutes() 返回 Date 对象的分钟 (0 ~ 59)。
9. getSeconds() 返回 Date 对象的秒数 (0 ~ 59)。
10. getMilliseconds() 返回 Date 对象的毫秒(0 ~ 999)。
11. getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
12. getTimezoneOffset() 返回本地时间与格林威治标准时间 (GMT) 的分钟差。
13. getUTC***() 根据世界时

var d = new Date();       // 2017-03-14  周二
var birthday = new Date("July 21, 1983 01:15:00")
d                       // Tue Mar 14 2017 11:16:04 GMT+0800 (CST)
d.getDate()             // 14
d.getDay()              // 2
d.getMonth()            // 2  //3月
d.getFullYear()         // 2017
d.getHours()            // 11
d.getMinutes()          // 16
d.getSeconds()          // 4
d.getMilliseconds()     // 462
d.getTime()             // 1489461364462
d.getTimezoneOffset()   // -480
d.getUTCDate()          // 14
d.getUTCHours()         // 3  //晚8个小时

14. parse() 返回1970年1月1日午夜到具体日期(字符串)的毫秒数。到日

Date.parse(datestring)
datestring  必需。表示日期和时间的字符串。

var d = Date.parse("Tue Mar 14 2017 11:16:04 GMT+0800 (CST)")
d          // 1489461364000

15. setDate() 设置 Date 对象中月的某一天 (1 ~ 31)。
16. setMonth() 设置 Date 对象中月份 (0 ~ 11)。
17. setFullYear() 设置 Date 对象中的年份(四位数字)。
18. setHours() 设置 Date 对象中的小时 (0 ~ 23)。
19. setMinutes() 设置 Date 对象中的分钟 (0 ~ 59)。
20. setSeconds() 设置 Date 对象中的秒钟 (0 ~ 59)。
21. setMilliseconds() 设置 Date 对象中的毫秒 (0 ~ 999)。
22. setTime() 以毫秒设置 Date 对象。
23. setUTC***() 根据世界时

dateObject.setDate(day)
dateObject.setMonth(day)
dateObject.setFullYear(day)
dateObject.setHours(day)
dateObject.setMinutes(day)
dateObject.setSeconds(day)
dateObject.setMilliseconds(day)
dateObject.setTime(day)

var d = new Date()  // 2017-03-14 周二
d                       // Tue Mar 14 2017 12:05:09 GMT+0800 (CST)
d.setDate(15)           // 1489550709064
d                       // Wed Mar 15 2017 12:05:09 GMT+0800 (CST)
d.setMonth(4)           // 1494821109064
d                       // Mon May 15 2017 12:05:09 GMT+0800 (CST)
d.setSeconds(36)        // 1494821136064
d                       // Mon May 15 2017 12:05:36 GMT+0800 (CST)

dateObject.setTime(millisec)调用 Date.UTC() 和 Date.parse()方法获得值
var d = new Date()
d                         // Tue Mar 14 2017 12:11:13 GMT+0800 (CST)
d.setTime(1494821136064)  // 1494821136064
d                         // 

24. toString()  把 Date 对象转换为字符串。

dateObject.toString()
var d = new Date()
d                       // Tue Mar 14 2017 12:22:50 GMT+0800 (CST)
d.toString()            // "Tue Mar 14 2017 12:22:50 GMT+0800 (CST)"

25. toTimeString() 把 Date 对象的时间部分转换为字符串。
26. toDateString() 把 Date 对象的日期部分转换为字符串。

var d = new Date()
d                       // Tue Mar 14 2017 12:24:59 GMT+0800 (CST)
d.toTimeString()        // "12:24:59 GMT+0800 (CST)"
d.toDateString()        // "Tue Mar 14 2017"

27. toUTCString()   根据世界时,把 Date 对象转换为字符串。

var d = new Date()
d                       // Tue Mar 14 2017 12:24:59 GMT+0800 (CST)
d.toUTCString()         // "Tue, 14 Mar 2017 04:26:12 GMT"  //晚8小时

28. toLocaleString() 根据本地时间格式,把 Date 对象转换为字符串。
29. toLocaleTimeString() 根据本地时间格式,把 Date 对象的时间部分转换为字符串。
30. toLocaleDateString() 根据本地时间格式,把 Date 对象的日期部分转换为字符串。

var d = new Date()
d                       // Tue Mar 14 2017 12:28:38 GMT+0800 (CST)
d.toLocaleString()      // "3/14/2017, 12:28:38 PM"
d.toLocaleTimeString()  // "12:28:38 PM"
d.toLocaleDateString()  // "3/14/2017"

31. UTC()   根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。 与parse()比较

Date.UTC(year,month,day,hours,minutes,seconds,ms)
Date.UTC(2017,3,14)         // 1492128000000

No5. Math

**********************************************************************************

1. random() 返回 0 ~ 1 之间的随机数。[0,1)
2. abs(x) 返回数的绝对值。
3. ceil(x) 对数进行上舍入。
4. floor(x) 对数进行下舍入。
5. round(x) 把数四舍五入为最接近的整数。
6. sqrt(x) 返回数的平方根。
7. max(x,y) 返回 x 和 y 中的最高值。
8. min(x,y) 返回 x 和 y 中的最低值。
9. pow(x,y) 返回 x 的 y 次幂。

Math.pow(2,3)           // 8
Math.pow(-2,3)          // -8
Math.pow(-2,4)          // 16

// 获取一定区域的随机整数值
//可取到最大值
function getRandomNum(minNum,maxNum) {
    var numRange = maxNum - minNum;
    var randNum = Math.random();  // [0,1)
    return (minNum + Math.round(randNum * numRange));
}

//可取到最大值, 几率大
function getRandomNum(minNum,maxNum) {
    var numRange = maxNum - minNum +1;
    var randNum = Math.random();  // [0,1)
    return (minNum + Math.floor(randNum * numRange));
}

//小数
function getRandomNum(minNum,maxNum) {
    var numRange = maxNum - minNum +1;
    var randNum = Math.random();  // [0,1)
    return minNum + randNum * numRange;
}

var num = getRandomNum(2,32);

//重写toFixed方法
function refineToFixed(number,fractionDigits){
    return Math.round(number * Math.pow(10,fractionDigits)) / Math.pow(10,fractionDigits);
}

No6. String

********************************************************************************** 

1. charAt() 返回在指定位置的字符。
2. charCodeAt() 返回在指定的位置的字符的 Unicode 编码。

stringObject.charAt(index)
index   必需。表示字符串中某个位置的数字,即字符在字符串中的下标。
var str="test";
str.charAt(1)       // "e"
str.charAt(5)       // ""
str.charCodeAt(1)   // 101

3. concat()    连接字符串。 该方法不会改变现有的字符串, 使用"+"进行字符串的连接

stringObject.concat(stringX,stringX,...,stringX)
stringX 必需。将被连接为一个字符串的一个或多个字符串对象。
var str1="test: "
var str2="No1"
str1.concat(str2)       // "test: No1"
str1                    // "test: "
str1 + str2             // "test: No1"
str1                    // "test: "

4. fontcolor() 使用指定的颜色来显示字符串。
5. fontsize() 使用指定的尺寸来显示字符串。

stringObject.fontcolor(color)
color 必需。该值必须是颜色名(red)、RGB 值(rgb(255,0,0))、十六进制数(#FF0000)。
var str="test"
str.fontcolor("Red")    // "<font color="Red">test</font>"
str.fontsize(7)         // "<font size="7">test</font>"
str                     //"test"

6. indexOf() 检索字符串。 可返回某个指定的字符串值在字符串中首次出现的位置。
7. lastIndexOf() 从后向前搜索字符串。索引位置与indexOf相同

stringObject.indexOf(searchvalue,fromindex)
searchvalue 必需。规定需检索的字符串值。
fromindex   可选的整数参数。规定在字符串中开始检索的位置。[0~stringObject.length - 1]。如省略该参数,则将从字符串的首字符开始检索。
var str = 'orange';
str.indexOf('o');           // 0
str.lastIndexOf('o')        // 0
str.indexOf('n');           // 3
str.indexOf('c');           // -1
var num = 2017;
num.toString().indexOf(2);  // 0
('' + num).indexOf(2);      // 0

var arr = ['2015', '2016', '2017'];
arr.indexOf(2)              // -1
arr.indexOf('2')            // -1
arr.indexOf('2015')         // 0
arr.toString().indexOf('2') // 0
arr.toString().indexOf(2)   // 0

8. localeCompare() 用本地特定的顺序来比较两个字符串。

stringObject.localeCompare(target)
stringObject > target  返回1
stringObject < target  返回-1
stringObject == target 返回0

'1'.localeCompare('2')         // -1
'1'.localeCompare('-1')        // 1
'1'.localeCompare('1')          // 0
var str=['3', '1', '2'];
str.sort(function(a,b){return a.localeCompare(b)})

9. match() 找到一个或多个正则表达式的匹配。该方法类似 indexOf() 和 lastIndexOf(),但是它返回指定的值,而不是字符串的位置。

stringObject.match(searchvalue/regexp)
searchvalue 必需。规定要检索的字符串值。
regexp  必需。规定要匹配的模式的 RegExp 对象。如果该参数不是 RegExp 对象,则需要首先把它传递给 RegExp 构造函数,将其转换为 RegExp 对象。
        如果 regexp 没有标志 g,只查找一次,有g,全局检索.
var str = 'test1 test2 test3'; str.match('test') // ["test"] str.match(/d+/g) // ["1", "2", "3"] str.match(/d+/) // ["1"]

10. replace()   替换与正则表达式匹配的子串。

stringObject.replace(regexp/substr,replacement)
regexp/substr   必需。该值是一个字符串,则将它作为要检索的直接量文本模式.
replacement 必需。一个字符串值。规定了替换文本或生成替换文本的函数。

var str = 'test1 test2 test3';
str.replace(/test/g, "Test")        // "Test1 Test2 Test3"
str.replace(/test/, "Test")         // "Test1 test2 test3"

  11. search()    检索与正则表达式相匹配的值。

stringObject.search(regexp)

var str = 'test1 Test2 test3';
str.search('Test')          // 6
str.search(/Test/)          // 6
str.search(/Test/i)         // 0
str.search(/Test/g)         // 6

12. slice() 提取字符串的片断,并在新的字符串中返回被提取的部分。

stringObject.slice(start,end)
start   起始下标。-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
end 结尾下标。默认字符串结尾。负数同上
var str = 'test1 Test2 test3';
str.slice(6)        // "Test2 test3"
str.slice(6, 11)    // "Test2"
str                 // "test1 Test2 test3"

13. substr()    从起始索引号提取字符串中指定数目的字符。

stringObject.substr(start,length)
start   起始下标。-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。
length  可选。子串中的字符数。必须是数值。默认从 start位置到结尾的字串。
var str = 'test1 Test2 test3';
str.substr(6)               // "Test2 test3"
str.substr(6, 5)            // "Test2"
str                         // "test1 Test2 test3"

 14. substring() 提取字符串中两个指定的索引号之间的字符。一般不用

stringObject.substring(start,stop)
start   必需。>0 整数,
stop    可选。>0 整数,默认从 start位置到结尾。
var str = 'test1 Test2 test3';
str.substring(6)      // "Test2 test3"
str.substring(6, 11)  // "Test2"
str                   // "test1 Test2 test3"

15. split() 把字符串分割为字符串数组。
16. toString() 返回字符串。

stringObject.split(separator,howmany)
separator   必需。字符串或正则表达式,从该参数指定分割。
howmany 可选。限制数组长度。无该参数,整个字符串都会被分割。
var str = 'test1 Test2 test3';
str.split(" ")      // ["test1", "Test2", "test3"]
str.split(" ",2)    // ["test1", "Test2"]
tr.split("",2)      // ["t", "e"]
str                 // "test1 Test2 test3"
str.split(" ",2).toString()         // "test1,Test2"

17. toLocaleLowerCase() 把字符串转按照本地方式换为小写。几种特殊字符不同
18. toLocaleUpperCase() 把字符串转按照本地方式换为大写。
19. toLowerCase() 把字符串转换为小写。
20. toUpperCase() 把字符串转换为大写。

var str = "aBcDeF";
str.toLocaleLowerCase()         // "abcdef"
str.toLocaleUpperCase()         // "ABCDEF"
str.toLowerCase()               // "abcdef"
str.toUpperCase()               // "ABCDEF"

No7. 全局对象

********************************************************************************** 

1. decodeURI() 解码某个编码的 URI。
2. encodeURI() 把字符串编码为 URI。
3. decodeURIComponent() 解码一个编码的 URI 组件。
4. encodeURIComponent() 把字符串编码为 URI 组件。

decodeURI(URIstring)
URIstring   必需。一个字符串,含有要解码的 URI 或其他要解码的文本。

var str = 'www.baidu.com/test test'
encodeURI(str)              // "www.baidu.com/test%20test"
decodeURI(encodeURI(str))   // "www.baidu.com/test test"
encodeURIComponent(str)     // "www.baidu.com%2Ftest%20test"
decodeURIComponent(encodeURIComponent(str))  // "www.baidu.com/test test"
decodeURI(encodeURIComponent(str))      // "www.baidu.com%2Ftest test"

5. isNaN() 检查某个值是否是数字。
6. Number() 把对象的值转换为数字。
7. parseFloat() 解析一个字符串并返回一个浮点数。
8. parseInt() 解析一个字符串并返回一个整数。
9. String() 把对象的值转换为字符串。

原文地址:https://www.cnblogs.com/floraCnblogs/p/js-type-object.html