内部类
- Math
- Date
- String
- Array
- Boolean
- Number
系统函数
JavaScript中本身就提供一些 可以直接使用的类,
这种由JS本身事先定义好的类就是内部类
① Array
② Boolean
③ Date
④ Math
⑤ Number
⑥ String
⑦ RegExp (待续)
⑧ Global (全局)
⑨ Object (根对象)
使用类的实例来访问 属性和方法
如: 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
对数字的操作
参考: http://www.w3school.com.cn/js/jsref_obj_math.asp
① PI
① 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位小数
对日期和时间的操作
参考: http://www.w3school.com.cn/js/jsref_obj_date.asp
① 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 对象。
对字符串的各种操作
参考: http://www.w3school.com.cn/js/jsref_obj_string.asp
length 字符串的长度
① str.indexOf(substr) 子串首次出现的索引
② str.split(separator,times) 分隔为字符串数组
③ str.substr(start,length) 截取指定个数, 支持负索引
④ str.substring(start,stop) 截取索引间字符, 包头不包尾
⑤ str.charAt(index) 返回指定位置的字符
⑥ toString() 内部函数都有
⑦ match()/replace()/search() ...
对数组的操作
参考: http://www.w3school.com.cn/js/jsref_obj_array.asp
length 数组元素个数
① arr.concat(arr1[,arr2,...]) 连接数组
② arr.join(separator) 所有元素放入一个字符串,分隔符隔开
③ arr.pop() 删除最后一个元素,并返回
④ arr.push(val1[,val2,..]) 末尾添加元素,并返回新的长度。
⑤ arr.reverse() 颠倒数组中元素的顺序
⑥ arr.shift() 删除第一个元素,并返回
arr.unshift(var1[,...]) 往数组头部添加元素 ,并返回新的长度
⑦ arr.sort([sortby]) 排序
将 布尔值 包装成对象
toString() 把逻辑值转换为字符串,并返回结果
valueOf() 返回 Boolean 对象的原始值。
MAX_VALUE 可表示的最大的数。
MIN_VALUE 可表示的最小的数。
NaN 非数字值。
num.toString(radix) 换为字符串,使用指定的基数 2 ~ 36。
num.toFixed(n) 转为字符串,指定位数的小数 0 ~ 20。
直接可使用, 无需用类名或实例名调用
参考: http://www.w3school.com.cn/js/jsref_obj_global.asp
NaN 指示某个值是不是数字值。
undefined 指示未定义的值, 变量只声明未赋值。
Infinity 代表正的无穷大的数值。
encodeURI(URIstring) 把字符串编码为 URI。
decodeURI(URIstring) 解码某个编码的 URI。
eval(string) 计算某个字符串,并当成JS来执行。
isFinite() 检查某个值是否为有穷大的数。
isNaN() 检查某个值是否是数字。
parseFloat() 解析一个字符串并返回一个浮点数。
parseInt() 解析一个字符串并返回一个整数。
String() 把对象的值转换为字符串。
- 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
*/