内部类
- 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 */