4.6 JS的内置对象
JS跟JAVA一样,也是一种面向对象的编程语言,JS将对象总共划分为以下三种类型 :JS内置对象、浏览器内置对象、自定义对象
JS内置对象:JS语言自己已经定义好的一些对象,比如String、Date、Array......
浏览器内置对象:JS针对浏览器当前的系统配置,以及正在装载的页面提供的一些可供使用的对象: windows、history、location......
自定义对象:用户根据自己的需求而定义的对象
4.6.1 字符串对象
字符串类型是JS中基本数据类型中间的一个,JS跟JAVA一样,字符串同样也是一个独立的对象
4.6.1.1 字符串对象的创建
1)直接声明字符串变量
var str = "hello world";
通过直接声明:我们可以将声明后的变量看做是一个字符串对象, var这个关键字可以省略
2)使用new关键字创建字符串
var str = new String("hello world");
通过new关键字创建字符串对象,var关键字同样可以省略,构造器的String中的S必须大写,对象数据都存放在用户电脑内存的栈区域中。
4.6.1.2 字符串常见属性
属性 |
描述 |
constructor |
对创建该对象的函数的引用 |
字符串的长度 |
|
prototype |
允许您向对象添加属性和方法 |
测试字符串长度时,一个空格占一个字符位,一个汉字占一个字符位
4.6.1.3 字符串常见方法
方法 |
描述 |
创建 HTML 锚。 |
|
用大号字体显示字符串。 |
|
显示闪动字符串。 |
|
使用粗体显示字符串。 |
|
返回在指定位置的字符。 |
|
返回在指定的位置的字符的 Unicode 编码。 |
|
连接字符串。 |
|
以打字机文本显示字符串。 |
|
使用指定的颜色来显示字符串。 |
|
使用指定的尺寸来显示字符串。 |
|
从字符编码创建一个字符串。 |
|
检索字符串。 |
|
使用斜体显示字符串。 |
|
从后向前搜索字符串。 |
|
将字符串显示为链接。 |
|
用本地特定的顺序来比较两个字符串。 |
|
找到一个或多个正则表达式的匹配。 |
|
替换与正则表达式匹配的子串。 |
|
检索与正则表达式相匹配的值。 |
|
提取字符串的片断,并在新的字符串中返回被提取的部分。 |
|
使用小字号来显示字符串。 |
|
把字符串分割为字符串数组。 |
|
使用删除线来显示字符串。 |
|
把字符串显示为下标。 |
|
从起始索引号提取字符串中指定数目的字符。 |
|
提取字符串中两个指定的索引号之间的字符。 |
|
把字符串显示为上标。 |
|
把字符串转换为小写。 |
|
把字符串转换为大写。 |
|
把字符串转换为小写。 |
|
把字符串转换为大写。 |
|
toSource() |
代表对象的源代码。 |
返回字符串。 |
|
返回某个字符串对象的原始值。 |
4.6.2 数学对象Math
无论是JAVA还是JS ,数值计算这种场景一定是非常多的,为了方便计算,所以JS中,也提供了Math计算对象,相当于java的工具类,直接使用无需创建。
4.6.2.1 数学常量
Math计算对象,同样不需要大家去创建,直接使用就可以了。数学中有很多的常量,比如:PI.、E......
属性 |
描述 |
返回算术常量 e,即自然对数的底数(约等于2.718)。 |
|
返回 2 的自然对数(约等于0.693)。 |
|
返回 10 的自然对数(约等于2.302)。 |
|
返回以 2 为底的 e 的对数(约等于 1.414)。 |
|
返回以 10 为底的 e 的对数(约等于0.434)。 |
|
返回圆周率(约等于3.14159)。 |
|
返回返回 2 的平方根的倒数(约等于 0.707)。 |
|
返回 2 的平方根(约等于 1.414)。 |
4.6.2.2 数学方法
方法 |
描述 |
返回数的绝对值。 |
|
返回数的反余弦值。 |
|
返回数的反正弦值。 |
|
以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。 |
|
返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。 |
|
对数进行上舍入。 |
|
返回数的余弦。 |
|
返回 e 的指数。 |
|
对数进行下舍入。 |
|
返回数的自然对数(底为e)。 |
|
返回 x 和 y 中的最高值。 |
|
返回 x 和 y 中的最低值。 |
|
返回 x 的 y 次幂。 |
|
返回 0 ~ 1 之间的随机数。 |
|
把数四舍五入为最接近的整数。 |
|
返回数的正弦。 |
|
返回数的平方根。 |
|
返回角的正切。 |
|
返回该对象的源代码。 |
|
返回 Math 对象的原始值。 |
4.6.3 数学对象Number
Number对象为数值对象,它的创建方式也很简单
4.6.3.1 创建对象
(3种方式都行)
var num = new Number(3.14);
var num = new Number("3.14");
var num = Number(3.14);
4.6.3.2 对象属性
属性 |
描述 |
返回对创建此对象的 Number 函数的引用。 |
|
可表示的最大的数。 |
|
可表示的最小的数。 |
|
非数字值。 |
|
负无穷大,溢出时返回该值。 |
|
正无穷大,溢出时返回该值。 |
|
prototype |
使您有能力向对象添加属性和方法 |
4.6.3.3 对象方法
方法 |
描述 |
把数字转换为字符串,使用指定的基数。 |
|
把数字转换为字符串,使用本地数字格式顺序。 |
|
把数字转换为字符串,结果的小数点后有指定位数的数字。 |
|
把对象的值转换为指数计数法。 |
|
把数字格式化为指定的长度。 |
|
返回一个 Number 对象的基本数字值。 |
toFixed的例子:
var num = new Number(3.14159).toFixed(4);
得到num为3.1416,保留4位小数,多余的省略,遵循四舍五入。
4.6.4 Date对象
4.6.4.1 创建对象
var date = new Date();//得到用户系统时间
var date = new Date("June 10,2016");//得到曾经某一额时间的时间对象
var date = new Date(2000000000000);//创建一个距离1970-1-1 00:00:00有2000000000000毫秒的时间对象
var date = new Date("2015/10/23");//2015-10-23
var date = new Date(2015,6,10,17,56,23);//创建一个2015年7月10日17时56分23秒的时间对象,记住月份是从0开始
4.6.4.2 对象属性
属性 |
描述 |
返回对创建此对象的 Date 函数的引用。 |
|
使您有能力向对象添加属性和方法。 |
4.6.4.3 对象方法
方法 |
描述 |
返回当日的日期和时间。 |
|
从 Date 对象返回一个月中的某一天 (1 ~ 31)。 |
|
从 Date 对象返回一周中的某一天 (0 ~ 6)。 |
|
从 Date 对象返回月份 (0 ~ 11)。 |
|
从 Date 对象以四位数字返回年份。 |
|
请使用 getFullYear() 方法代替。 |
|
返回 Date 对象的小时 (0 ~ 23)。 |
|
返回 Date 对象的分钟 (0 ~ 59)。 |
|
返回 Date 对象的秒数 (0 ~ 59)。 |
|
返回 Date 对象的毫秒(0 ~ 999)。 |
|
返回 1970 年 1 月 1 日至今的毫秒数。 |
|
返回本地时间与格林威治标准时间 (GMT) 的分钟差。 |
|
根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。 |
|
根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。 |
|
根据世界时从 Date 对象返回月份 (0 ~ 11)。 |
|
根据世界时从 Date 对象返回四位数的年份。 |
|
根据世界时返回 Date 对象的小时 (0 ~ 23)。 |
|
根据世界时返回 Date 对象的分钟 (0 ~ 59)。 |
|
根据世界时返回 Date 对象的秒钟 (0 ~ 59)。 |
|
根据世界时返回 Date 对象的毫秒(0 ~ 999)。 |
|
返回1970年1月1日午夜到指定日期(字符串)的毫秒数。 |
|
设置 Date 对象中月的某一天 (1 ~ 31)。 |
|
设置 Date 对象中月份 (0 ~ 11)。 |
|
设置 Date 对象中的年份(四位数字)。 |
|
请使用 setFullYear() 方法代替。 |
|
设置 Date 对象中的小时 (0 ~ 23)。 |
|
设置 Date 对象中的分钟 (0 ~ 59)。 |
|
设置 Date 对象中的秒钟 (0 ~ 59)。 |
|
设置 Date 对象中的毫秒 (0 ~ 999)。 |
|
以毫秒设置 Date 对象。 |
|
根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。 |
|
根据世界时设置 Date 对象中的月份 (0 ~ 11)。 |
|
根据世界时设置 Date 对象中的年份(四位数字)。 |
|
根据世界时设置 Date 对象中的小时 (0 ~ 23)。 |
|
根据世界时设置 Date 对象中的分钟 (0 ~ 59)。 |
|
根据世界时设置 Date 对象中的秒钟 (0 ~ 59)。 |
|
根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。 |
|
返回该对象的源代码。 |
|
把 Date 对象转换为字符串。 |
|
把 Date 对象的时间部分转换为字符串。 |
|
把 Date 对象的日期部分转换为字符串。 |
|
请使用 toUTCString() 方法代替。 |
|
根据世界时,把 Date 对象转换为字符串。 |
|
根据本地时间格式,把 Date 对象转换为字符串。 |
|
根据本地时间格式,把 Date 对象的时间部分转换为字符串。 |
|
根据本地时间格式,把 Date 对象的日期部分转换为字符串。 |
|
根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。 |
|
返回 Date 对象的原始值。 |
如果要做日期格式化:
//动态给Date对象添加新的方法
Date.prototype.format = function () {
var y = this.getFullYear();
var m = this.getMonth() + 1;
var d = this.getDate();
var hh = this.getHours();
var mm = this.getMinutes();
var ss = this.getSeconds();
return y + "-" + formatNumber(m) + "-" + formatNumber(d) + " " + formatNumber(hh) + ":" + formatNumber(mm) + ":" + formatNumber(ss);
}
//位数不够,就使用0补位
function formatNumber(value) {
if (value < 10) {
value = '0' + value;
}
return value;
}
var date = new Date(2015, 5, 10, 17, 56, 23);
alert(date.format());
4.6.5数组对象Array
JS中的数组对象,根据JAVA中的Arraylist集合一样,都是一个有序数据集合。数组中允许存放不同类型的数组。然后使用数组名和下标的结合,就可以取得数组中的元素。
4.6.5.1 数组的创建
三种创建方式
var array = new Array();//创建一个没有指定大小的数组对象
var array = new Array(5);//创建一个有五个大小空间的数组
var array = new Array("hello","world","ni","hao");//创建一个包含这些内容的数组对象
4.6.5.2 数组的属性
属性 |
描述 |
返回对创建此对象的数组函数的引用。 |
|
设置或返回数组中元素的数目。 |
|
使您有能力向对象添加属性和方法。 |
在我们获取数组数据的时候,为了防止数组越界,可以先获取数组的总长度,然后再去获得这些数据。
4.6.5.3 数组的方法
方法 |
描述 |
连接两个或更多的数组,并返回结果。 |
|
把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。 |
|
删除并返回数组的最后一个元素 |
|
向数组的末尾添加一个或更多元素,并返回新的长度。 |
|
颠倒数组中元素的顺序。 |
|
删除并返回数组的第一个元素 |
|
从某个已有的数组返回选定的元素 |
|
对数组的元素进行排序 |
|
删除元素,并向数组添加新元素。 |
|
返回该对象的源代码。 |
|
把数组转换为字符串,并返回结果。 |
|
把数组转换为本地数组,并返回结果。 |
|
向数组的开头添加一个或更多元素,并返回新的长度。 |
|
返回数组对象的原始值 |
在JAVA、C#中定义的数组,长度是不可变;但是在JS中定义的数组,长度是随时可以修改的。
4.6.5.3.1 数组的添加
var array = new Array(1);
array[5] = "wc";
array[10] = "w3c";
array.push("banana");
添加内容可以直接对指定位置赋值,没赋值的位置为undefined,也可以用push()方法在数组末尾进行追加。
4.6.5.3.2 数组的删除
var array = new Array("hello","world","ni","hao");
delete array[2];//删除指定位置的内容
如果不想删除指定位置的内容,可以使用pop()删除数组最后一个元素、shift()删除数组第一个元素。
4.6.5.3.3 数组的合并
数组合并用到了concat()方法,它不会去改变原数组,而是合并后返回一个新的数组。
例如:
var array = new Array("hello","world","ni","hao",1,3,0);//创建一个包含这些内容的数组对象
var array2 = array.concat("my",9);
alert(array2);
显示效果:hello,world,ni,hao,1,3,0,my,9
4.6.5.3.4 数组的排序
JS根JAVA都针对数组提供了排序手段,JS中的排序手段使用的是sort()函数,sort函数在排序时,将按照ASCI字符顺序进行升序排列。
有两种排序方式:
- 按照字母顺序进行排序,即按照ASCI码进行升序排列,也可以叫做自然排序
例如:
var array = new Array("hello","world","ni","hao",1,3,0);//创建一个包含这些内容的数组对象
alert(array.sort());
显示效果:0,1,3,hao,hello,ni,world
- 按照自己定义的方式进行排序
例如:
function mysort(a,b){
return b-a;
}
var array = new Array("hello","world","ni","hao",1,3,0);//创建一个包含这些内容的数组对象
alert(array.sort(mysort));
显示效果:3,1,0,hao,ni,world,hello
4.6.5.4 数组的事例
HTML部分:
<body>
<!--验证码,显示验证码-->
<span id="msg"></span>
<!--刷新按钮,点击按钮刷新验证码-->
<button onclick="showCode()">刷新</button><br/>
<!--显示系统时间-->
<span id="date"></span>
</body>
javascript部分:
/*显示验证码*/
function showCode() {
document.getElementById("msg").innerHTML = buildCode(4);
}
/*生产一定位数的验证码*/
function buildCode(n) {
/*验证码中可能包含的数据*/
var s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYS0123456789";
var ret = "";
for (var i = 0; i < n; i++) {
var index = Math.floor(Math.random() * 62);
console.log(index);
ret += s.charAt(index);
}
return ret;
}
//动态给Date对象添加新的方法
Date.prototype.format = function () {
var y = this.getFullYear();
var m = this.getMonth() + 1;
var d = this.getDate();
var hh = this.getHours();
var mm = this.getMinutes();
var ss = this.getSeconds();
return y + "-" + formatNumber(m) + "-" + formatNumber(d) + " " + formatNumber(hh) + ":" + formatNumber(mm) + ":" + formatNumber(ss);
}
//位数不够,就使用0补位
function formatNumber(value) {
if (value < 10) {
value = '0' + value;
}
return value;
}
function showDate() {
document.getElementById("date").innerHTML = buidDate();
}
/**
* 创建时间
*/
function buidDate() {
var date = new Date();
return date.format();
}
function show() {
showCode();
//间隔1秒钟执行showDate()方法
setInterval("showDate()", 1000);
}
window.onload = show;