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
    */

时间: 2024-10-01 14:36:18

JavaScript-面向对象-系统函数-内部类-Math-Date-String-Array-Boolean-Number的相关文章

JavaScript内置对象,Date String Array等,以及这些对象操作。

练习题: 某班的成绩出来了,现在老师要把班级的成绩打印出来.效果图:2014年5月9日 星期六--班级总分为: 班级平均分为:格式要求:1.显示打印的日期. 格式为类似“2014年03月21日 星期三” 的当前的时间.2.计算出该班级的平均分(保留整数).同学成绩数据如下:"小明:87; 小花:81; 小红:97; 小天:76;小张:74;小小:94;小西:90;小伍:76;小迪:64;小曼:76"任务第一步:可通过javascript的日期对象来得到当前的日期.提示:使用Date()

JavaScript面向对象(01)--函数

在JavaScript中,函数和对象有区别,也有联系, 首先函数是一个对象,但是和对象存在一些区别如下: 1,不论在java还是js中,如果把一个对象赋值给另一个变量,那么,后者会指向前者对象所在的内存地址,这也就是所谓的引用类型 例如:Java中创建一个Person类,存在一个name属性 Person p1 = new Person(); Person p2 = p1; 那么会有p1和p2指向同一块内存地址,可以验证,假设对p2做赋值操作: p2.setName("xxx"),那么

javascript(js)基础3:.js面向对象三大特征(封装、继承、多态) and 内部类.js系统函数

封装<script language="JavaScript"> function Person(name,age,sal){ this.name=name;//公开属性 this.age=age; this.sal=sal; sal=sal;//私有属性 //如何定义公开方法(特权方法)和私有方法 //如果我们希望操作私有的属性,则使用公开方法 this.show=function(){ window.alert(age+sal) } //私有方法,可以访问对象的属性(只

内置对象(Date String Math Array)

什么是对象 JavaScript 中的所有事物都是对象,如:字符串.数值.数组.函数等,每个对象带有属性和方法. 对象的属性:反映该对象某些特定的性质的,如:字符串的长度.图像的长宽等: 对象的方法:能够在对象上执行的动作.例如,表单的"提交"(Submit),时间的"获取"(getYear)等: JavaScript 提供多个内建对象,比如 String.Date.Array 等等,使用对象前先定义,如下使用数组对象: var objectName =new Ar

实现一个函数clone,使JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制

实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number.String.Object.Array.Boolean)进行值复制. 1 /** 对象克隆 2 * 支持基本数据类型及对象 3 * 递归方法 */ 4 function clone(obj) { 5 var o; 6 switch (typeof obj) { 7 case "undefined": 8 break; 9 case "string": o = obj + &q

为何Math没有构造函数,而String, Array,Date有?

创建object时,可以用object literal方法来创建一个对象,也可以通过constructor(关键词function)来创建object type,再通过关键词new,结合不同的arguments来创建很多个对象. String:一般通过literal方法来创建.常用属性:length:常用方法:charAt(), concat(), indexof(), toUpperCase(). Array:可以通过literal创建:如果调用构造函数 Array() 时没有使用参数,那么返

javascript: new Date(string)在IE中显示NaN的问题!

在chrome中使用,使用 new Date("20xx-xx-xx 00:00:00") 显示正常,但在IE中显示NaN,如果使用 new Date("20xx/xx/xx 00:00:00") 则可以解决兼容问题(chrome,IE,firefox,opera均测试正常). 另:var days = parseInt((cur.getTime() - up.getTime()) / (24 * 60 * 60 * 1000));可以计算两个日期之间的天数. ja

读javascript高级编程08-引用类型之Global、Math、String

一.Global 所有在全局作用域定义的属性和方法,都属于Global对象. 1.URI编码: encodeURI():主要用于对整个URI编码.它不会对本身属于URI的特殊字符进行编码. encodeComponentURI():主要用于对URI中的某一部分进行编码,很常用的是对查询字符串参数进行编码.它会对所有非标准字符进行编码. 对应的解码方法是decodeURI()和decodeURIComponent. var uri='http://www.cnblogs.com?a=1 2&b=陈

02.JavaScript 面向对象精要--函数

在JavaScript中,函数其实也是对象.是函数不同于其他对象的特点是:函数存在一个被称为[[Call]]的内部属性.[[Call]]属性是函数独有的,表明该对象可以被执行.ECMAScript 定义了typeof操作符对具有[[Call]]属性的对象返回 "function".理解函数的行为是理解JavaScript的核心. 一.函数声明式和表达式 1.1 函数声明  以function开头后面跟着函数的名字 function add(num1,num2){ return num1