zoukankan      html  css  js  c++  java
  • 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() 把对象的值转换为字符串。

  • 相关阅读:
    linux笔记2.20
    新安装ubuntu后几项配置
    linux网络配置
    linux笔记2.19
    jquery在不同浏览器获取文件路径出现问题!
    软件工程师如何定义自己的职业路线
    标识符
    结对项目-四则运算 “软件”之升级版
    小学四则运算 “软件”之初版
    分布式版本控制系统Git的安装与使用
  • 原文地址:https://www.cnblogs.com/floraCnblogs/p/js-type-object.html
Copyright © 2011-2022 走看看