28-JavaScript-面向对象-系统函数-内部类-Math-Date-String-Array-Boolean-Number

内部类
 - Math
 - Date
 - String
 - Array
 - Boolean
 - Number

系统函数

1. 内部类


 1) 什么是内部类


    JavaScript中本身就提供一些 可以直接使用的类,
    这种由JS本身事先定义好的类就是内部类

 2) 主要的内部类


    ① Array
    ② Boolean
    ③ Date
    ④ Math
    ⑤ Number
    ⑥ String
    ⑦ RegExp (待续)
    ⑧ Global (全局)
    ⑨ Object (根对象)

 3) 分类(以使用的方式分)


    ① 动态内部类

    
        使用类的实例来访问 属性和方法

        如: var num = new Number(12.34).toFixed(1);  
             // 12.3
             var date = new Date().toLocaleString(); 
             //2013年11月14日 11:56:04

    ② 静态内部类    

        
        直接使用类名来访问 属性和方法

        如: var circleArea = 3 * 3 * Math.PI;
            // // 28.274333882308138


2. Math 

    
    对数字的操作
    参考: http://www.w3school.com.cn/js/jsref_obj_math.asp
 

 1) 常用属性


    ① PI      
 

 2) 常用方法


    ① abs(x)        绝对值
    ② ceil(x)        向上取整,如 ceil(1.6) = 2; ceil(1.1) = 2;
    ③ floor(x)      向下取整,如 floor(1.6) = 1; ceil(1.1) = 1;
    ④ max(x, y)   求较大值
    ⑤ min(x, y)    求较小值
    ⑥ round(x)    四舍五入
    ⑦ random()   (0, 1) 区间的任意16位小数

 3) 举例

    console.info( Math.ceil( 1.1 ) ); // 2
    console.info( Math.ceil( 1.6 ) ); // 2

    console.info( Math.floor( 1.1 ) ); // 1
    console.info( Math.floor( 1.7 ) ); // 1

    /* [intNum1, intNum2] 的整数
    <==>  
      Math.round( Math.random() * (intNum2 - intNum1) + intNum1 )
      
        0 < x < 1
        3 <= y <= 100

        0 * 97 < x * 97 < 1 * 97
    ==> 0 < x * 97 < 97
    ==> 0 + 3 < x * 97 + 3 < 97 + 3
    ==> 3 < x * 97 + 3 < 100 
    ==> 3 <= Math.round( x * 97 + 3 ) <= 100   
        
        
        var x = Math.random() * (intNum2 - intNum1) + intNum1;
        x = Math.round( x );

    */
    for (var i = 0; i < 20; i++) { // [3, 100]
        var x = Math.random() * (100 - 3) + 3;
        x = Math.round( x );
        console.info( x );
    }


3. Date


    对日期和时间的操作
    参考: http://www.w3school.com.cn/js/jsref_obj_date.asp

 1) 常用方法


    ① Date()                   返回当前日期和时间
    ② d.getDate()           返回月中的第几天(1~31)    
    ③ d.getDay()            周中第几天(0~6)
    ④ d.getMonth()        年中第几月(0~11)
    ⑤ d.getFullYear()     以四位数字返回年份
    ⑥ d.getHours()         小时数(0 ~ 23)。
    ⑦ d.getMinutes()      分钟 (0 ~ 59)。
    ⑧ d.getSeconds()     秒数 (0 ~ 59)。
    ⑨ d.getMilliseconds()  毫秒(0 ~ 999)。
    ⑩ getTime()                返回 1970 年 1 月 1 日至今的毫秒数。
       setTime()                  以毫秒设置 Date 对象。 

 2) 举例    

    
    var date = new Date();

    // 格林威治时间
    // console.info( date ); // Date {Thu Nov 14 2013 12:40:42 GMT+0800}

    // 本地格式时间
    // console.info( date.toLocaleString() ); // 2013年11月14日 12:42:04

    var year = date.getFullYear();
    var month = date.getMonth();
    var dayOfMonth = date.getDate();
    var dayOfWeek = date.getDay();
    var hours = date.getHours();
    var minutes = date.getMinutes();
    var seconds = date.getSeconds();

    console.info( "over..." );

/* 断点调试, 查看

    year 2013
    month 10            // 当前11月
    dayOfMonth 14
    dayOfWeek 4
    hours 12
    minutes 59
    seconds 34
*/

    


4. String


    对字符串的各种操作
    参考: http://www.w3school.com.cn/js/jsref_obj_string.asp

 1) 常用属性


    length      字符串的长度

 2) 常用方法


    ① str.indexOf(substr)           子串首次出现的索引
    ② str.split(separator,times)  分隔为字符串数组
    ③ str.substr(start,length)     截取指定个数, 支持负索引
    ④ str.substring(start,stop)   截取索引间字符, 包头不包尾
    ⑤ str.charAt(index)              返回指定位置的字符  
    ⑥ toString()                         内部函数都有
    ⑦ match()/replace()/search() ...
 

 3) 举例


    // ① str.indexOf(substr)         子串首次出现的索引
    // ② str.split(separator,times)  分隔为字符串数组
    // ③ str.substr(start,length)    截取指定个数, 支持负索引
    // ④ str.substring(start,stop)   截取索引间字符, 包头不包尾
    // ⑤ str.charAt(index)           返回指定位置的字符  
    // ⑥ toString()                  内部函数都有

    var str = "0123456789";

    var length = str.length;
    var strArr1 = "1991-03-19".split("-");
    var strArr2 = "1991-03-19".split();
    var strArr3 = "1991".split("");
    /*
        length  10
        strArr1 ["1991", "03", "19"]
        strArr2 ["1991-03-19"]
        strArr3 ["1", "9", "9", "1"]
    */


    str = "0123456789";

    var subStr = str.substr(2, 4);
    var subStr2 = str.substring(2, 4);
    /*
        subStr  "2345"
        subStr2 "23"
    */


    str = "0123456789";
    var ch = str.charAt(3); 
    // ch  "3"

    str = "a12b123c1234d"
    var index = str.indexOf("12");
    var index2 = str.indexOf("12", 2); 
    var index3 = str.indexOf("123455");
    /*
        index 1
        index2 4
        index3 -1
    */    


    console.info("over...");


5. Array


    对数组的操作
    参考: http://www.w3school.com.cn/js/jsref_obj_array.asp

 1) 常用属性


    length      数组元素个数

 2) 常用方法


    ① arr.concat(arr1[,arr2,...])  连接数组
    ② arr.join(separator)           所有元素放入一个字符串,分隔符隔开
    ③ arr.pop()                          删除最后一个元素,并返回
    ④ arr.push(val1[,val2,..])     末尾添加元素,并返回新的长度。
    ⑤ arr.reverse()                    颠倒数组中元素的顺序
    ⑥ arr.shift()                     删除第一个元素,并返回
         arr.unshift(var1[,...])   往数组头部添加元素 ,并返回新的长度
    ⑦ arr.sort([sortby])         排序          

 3) 举例

   
    //--- 数组的创建
    
    // 动态添加数据
    var arr = new Array();
    arr[0] = "A";
    arr[1] = "B";
    arr["K"] = "kkk";
    // length = 2, 但可引用 arr["K"]


    // 创建时初始化数据
    var arr2 = new Array("A", "B");

    // 初始化数组大小
    var arr3 = new Array(2); // length = 2
    // 注: 可动态扩充

/*
    ① arr.concat(arr1[,arr2,...])        连接数组
    ② arr.join(separator)       所有元素放入一个字符串,分隔符隔开
    ③ arr.pop()                 删除最后一个元素,并返回
    ④ arr.push(val1[,val2,..])  末尾添加元素,并返回新的长度。
    ⑤ arr.reverse()             颠倒数组中元素的顺序
    ⑥ arr.shift()               删除第一个元素,并返回
       arr.unshift(var1[,...])   往数组头部添加元素 ,并返回新的长度
    ⑦ arr.sort([sortby])        排序          
*/
    
    arr  = ["a", "b", "c", "d"];
    arr2 = ["e", "f"];

    //--- concat() toString() join()
    arr = arr.concat(arr2);
    // a,b,c,d,e,f

    console.info( arr.toString() );

    console.info( arr.join( "-" ) );
    // a-b-c-d-e-f

    //--- pop()
    console.info( arr.pop() );  // f
    console.info( arr.toString() ); // a,b,c,d,e

    arr  = ["a", "b", "c", "d"];

    //--- push()
    console.info( arr.push(1, 2) ); // 6
    console.info( arr.toString() ); // a,b,c,d,1,2

    //--- reverse()
    arr  = ["a", "b", "c", "d"];
    arr.reverse();
    console.info( arr.toString() ); // d,c,b,a

    //--- shift() unshift()
    arr  = ["a", "b", "c", "d"];
    
    console.info( arr.shift() );    // a
    console.info( arr.toString() ); // b,c,d

    console.info( arr.unshift(1, 2) ); // 5
    console.info( arr.toString() );    // 1,2,b,c,d 

    //--- sort() 默认升序
    arr = [2, 6, 3, 1, 4];
    console.info( arr.sort() ); // [1, 2, 3, 4, 6]
    console.info( arr.toString() );//1,2,3,4,6

    // 降序
    arr = [5, 2, 6, 3, 1, 4];
    arr.sort(function(x, y){
        return y - x;
    });

    console.info( arr.toString() ); // 6,5,4,3,2,1

    console.info("over...");


6. Boolean


    将 布尔值 包装成对象

 1) 常用方法


    toString()  把逻辑值转换为字符串,并返回结果
    valueOf()   返回 Boolean 对象的原始值。

 2) 举例

    var bool = new Boolean(true);

    console.info( bool.toString() );
    console.info( bool.valueOf() );
    console.info( typeof bool.valueOf() );
  

7. Number    


 1) 常用属性


    MAX_VALUE   可表示的最大的数。
    MIN_VALUE    可表示的最小的数。
    NaN                 非数字值。

 2) 常用方法


    num.toString(radix)    换为字符串,使用指定的基数 2 ~ 36。
    num.toFixed(n)          转为字符串,指定位数的小数 0 ~ 20。

 3) 举例

    console.info( Number.MAX_VALUE );
    // 1.7976931348623157e+308
  
    var num = new Number(10);

    console.info( num.toString(2) ); // 1010
    console.info( num.toString(3) ); // 101
    console.info( num.toString(4) ); // 22

    num = new Number(1.23456);

    console.info( num.toFixed(2) ); // 1.23
    console.info( num.toFixed(3) ); // 1.235
    console.info( num.toFixed(10) );// 1.2345600000


8. 系统函数    


 直接可使用, 无需用类名或实例名调用
 参考: http://www.w3school.com.cn/js/jsref_obj_global.asp

 1) 常用属性


    NaN            指示某个值是不是数字值。
    undefined   指示未定义的值, 变量只声明未赋值。
    Infinity        代表正的无穷大的数值。

 2) 常用方法


    encodeURI(URIstring)     把字符串编码为 URI。
    decodeURI(URIstring)     解码某个编码的 URI。
    eval(string)    计算某个字符串,并当成JS来执行。
    isFinite()        检查某个值是否为有穷大的数。 
    isNaN()         检查某个值是否是数字。
    parseFloat()    解析一个字符串并返回一个浮点数。
    parseInt()        解析一个字符串并返回一个整数。
    String()           把对象的值转换为字符串。

 3) 举例

    //--- NaN
    console.info( NaN );
    console.info( parseInt("a") );

    //--- undefined
    console.info( undefined );
    var kk;
    console.info( kk );
/*
    encodeURI(URIstring)     把字符串编码为 URI。
    decodeURI(URIstring)     解码某个编码的 URI。
    eval(string)    计算某个字符串,并当成JS来执行。
    isFinite()  检查某个值是否为有穷大的数。 
    isNaN()     检查某个值是否是数字。
    parseFloat()    解析一个字符串并返回一个浮点数。
    parseInt()  解析一个字符串并返回一个整数。
    String()    把对象的值转换为字符串。
*/

    //--- encodeURI decodeURI
    var uri = "http://www.baidu.com?key=张";

    var uriEncode = encodeURI(uri);
    var uriDecode = decodeURI(uriEncode);

    console.info(uri);
    console.info(uriEncode);
    console.info(uriDecode);
    /*
        http://www.baidu.com?key=张
        http://www.baidu.com?key=%E5%BC%A0
        http://www.baidu.com?key=张
    */

    //--- eval
    // eval("alert( '哇哈哈' )");

    //--- isFinite
    console.info( 1/0 ); 
    console.info( isFinite( 1/0 ) );
    /*
        Infinity
        false
    */

    //--- isNaN
    console.info( isNaN( "a" ) ); // true

    //--- parseFloat parseInt
    var floatNum = parseFloat("1.2");
    var intNum = parseInt( "123" );

    console.info( floatNum + "   " + typeof( floatNum ) );
    console.info( intNum + "   " + typeof( intNum ) );
    /*
        1.2   number
        123   number
    */






  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值