JavaScript对象

一、String对象

字符串的生成转换

你可以将任何类型的数据都转换为字符串,你可以用下面三种方法的任何一种:

1
2
3
4
var num= 19;                    // 19
var myStr = num.toString(); // "19"
var myStr = String(num); // "19"
var myStr = "" +num; // "19"

字符串转化为其他类型

js提供了parseInt()和parseFloat()两个转换函数,Number也可以实现转化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
parseInt("1234blue");   //returns 1234 
parseInt("0xA"); //returns 10
parseInt("22.5"); //returns 22
parseInt("blue"); //returns NaN
parseInt("10", 2); //returns 2
parseInt("10", 8); //returns 8
parseInt("10", 10); //returns 10
parseInt("AF", 16); //returns 175
parseFloat("1234blue"); //returns 1234.0 //actually returns 1234
parseFloat("0xA"); //returns NaN //actually returns 0
parseFloat("22.5"); //returns 22.5
parseFloat("22.34.5"); //returns 22.34
parseFloat("0908"); //returns 908
parseFloat("blue"); //returns NaN
Number(false) //0
Number(true) //1
Number(undefined) //NaN
Number(null) //0
Number( "5.5 ") //5.5
Number( "56 ") //56
Number( "5.6.7 ") //NaN
Number(new Object()) //NaN
Number(100) //100

字符的操作

1
2
3
var myStr = "I,love,you,Do,you,love,me";
var theChar = str.charAt(8); //获取指定索引上的字符o
var theCharcode = myStr.charCodeAt(8); //获取指定索引上的字符编码 111

字符串增删查改

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//替换
name = " Muaneng Tuanpeng ".trim(); //trim()删除字符串前后空格
name =name.replace("eng","ing"); //replace替换第一个eng成ing。
name =name.replace(/eng/g,"ing"); //replace接收正则表达式,/g替换全部。

//查询
var beginindex=name.indexOf("t",name.length-10);//indexOf和lastindexOf查询子字符串的位置,第二个参数表示从哪个索引开始向对面搜索。length函数表示取字符串的长度。未查询到时返回-1。
var endindex = name.lastIndexOf("g",0);

//截取
var subStr = name.slice(1,5); //读取子字符串,起始下标(包含),结束下标(不包含)
name1 = name.substring(beginindex,endindex); //slice、substring参数为首尾下标,substr为起点下标和长度。都不改变源字符串。
name1 = name.substr(-4); //传入负值时,slice将负值加上字符串长度,substr将第一个负值加上字符串长度,第二个负值转为0,substring将负值都转为0

//拼接
name1 = name+"Yes"+1; //使用+号拼接字符串和数据成一个新的字符串
name1 = name.concat("yes"); //也可以使用concat函数拼接字符串

//大小写转换
var lowCaseStr = name.toLowerCase(); //全部转换为小写
var upCaseStr = name.toUpperCase(); //全部转化为大写

字符串比较

比较两个字符串,比较是规则是按照字母表顺序比较的

1
2
3
4
5
var myStr = "chicken";
var myStrTwo = "egg";
var first = myStr.localeCompare(myStrTwo); // -1,表示小于
first = myStr.localeCompare("chicken"); // 0,表示等于
first = myStr.localeCompare("apple"); // 1,表示大于

字符串分割

1
2
3
var myStr = "I,Love,You,Do,you,love,me";
var substrArray = myStr .split(","); // ["I", "Love", "You", "Do", "you", "love", "me"];
var arrayLimited = myStr .split(",", 3)[0]; // split()的第二个参数,表示返回的字符串数组的最大长度。这里取["I", "Love", "You"]数组的第一个元素,即"I";

字符串原型

通过修改字符串的原型,可以为所有字符串添加公共函数。

1
2
3
4
String.prototype.startwith = function(text){    //设置字符串引用的原型,为String类型变量添加方法
return this.indexOf(text)==0;
};
var begin = name.startwith("mu"); //调用原型方法

二、Number对象

1
2
3
4
5
number.valueOf()://返回数学对象的原始值 
number.toExponential(fractionDigits)://将数字转换为指数表示形式字符串,fractionDigits指定指数的小数位的位数, 取值区间[0,20].
number.toFixed(fractionDigits)://将数字表示成10进制字符串, fractionDigits同上.
number.toPrecision(precision)://与toFixed()类同, 只是precision指定的是数字的有效位数, 取值范围[0,21].
number.toString(radix)://将number转换为需要的进制字符串形式,radix默认是10.

三、Object对象

Object对象包含如下属性和方法,也就意味着一切对象(函数也是对象)都包含如下方法。 每种方法和属性在不同的对象中有不同的作用,并不是每种对象都有使用每个方法的必要。

constructor属性

constructor属性是保存当前对象的构造函数,js通过构造函数来实现对象的实例化。

下面的例子中,constructor保存的就是Object构造函数。

1
2
3
4
5
6
7
8
var obj1 = new Object();
obj1.id = "obj1";
var obj2 = {
"id": "obj2"
};

console.log(obj1.constructor);//function Object(){}
console.log(obj2.constructor);//function Object(){}

hasOwnProperty(propertyName)方法

hasOwnProperty方法接收一个字符串参数,该参数表示属性名称,用来判断该属性是否在当前对象实例中,而不是在对象的原型链中。我们来看看下面这个例子:

1
2
3
var arr = [];    //实例化了一个Array对象
console.log(arr.hasOwnProperty("length"));//true
console.log(arr.hasOwnProperty("hasOwnProperty"));//false

在这个例子中,首先通过定义了一个数组对象的实例arr,我们知道数组对象实际是通过原型链继承了Object对象,然后拥有自己的一些属性,我们通过hasOwnProperty方法判断length是arr自己的属性,而hasOwnProperty是在原型链上的属性。

isPrototypeOf(Object)方法

isPrototype方法接收一个对象,用来判断当前对象是否在传入的参数对象的原型链上,说起来有点抽象,我们来看看代码。

1
2
3
function MyObject() {}
var obj = new MyObject();
console.log(Object.prototype.isPrototypeOf(obj)); //true

我们知道MyObject是继承自Object对象的,而在JS中,继承是通过prototype来实现的,所以Object的prototype必定在MyObject对象实例的原型链上。

propertyIsEnumerable(prototypeName)方法

prototypeIsEnumerable用来判断给定的属性是否可以被for..in语句给枚举出来。看下面代码:

1
2
3
4
var obj = {
name: "objName"
}
console.log(obj.propertyIsEnumerable("constructor"));//false1234

判断“constructor”是否可以被枚举,输出false说明无法被枚举出来。

toLocaleString()方法

toLocalString方法返回对象的字符串表示,和代码的执行环境有关。

1
2
3
4
5
var obj = {};
console.log(obj.toLocaleString());//[object Object]

var date = new Date();
console.log(date.toLocaleString());//2016/2/28 下午1:39:27

toString()方法

toString用来返回对象的字符串表示。

1
2
3
4
5
var obj = {};
console.log(obj.toString());//[object Object]

var date = new Date();
console.log(date.toString());//Sun Feb 28 2016 13:40:36 GMT+0800 (中国标准时间)

valueOf()方法

valueOf方法返回对象的原始值,可能是字符串、数值或bool值等,看具体的对象。

1
2
3
4
5
6
7
8
9
10
var obj = {
name: "obj"
};
console.log(obj.valueOf());//Object {name: "obj"}

var arr = [1];
console.log(arr.valueOf());//[1]

var date = new Date();
console.log(date.valueOf());//1456638436303

四、Date对象

var date = new Date();

属性:

1
2
constructor //所建立对象的函数参考 
prototype //能够为对象加入的属性和方法

方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
getDay() //返回一周中的第几天(0-6) 
getYear() //返回年份.2000年以前为2位,2000(包含)以后为4位
getFullYear() //返回完整的4位年份数
getMonth() //返回月份数(0-11)
getDate() //返回日(1-31)
getHours() //返回小时数(0-23)
getMinutes() //返回分钟(0-59)
getSeconds() //返回秒数(0-59)
getMilliseconds() //返回毫秒(0-999)
getUTCDay() //依据国际时间来得到现在是星期几(0-6)
getUTCFullYear() //依据国际时间来得到完整的年份
getUTCMonth() //依据国际时间来得到月份(0-11)
getUTCDate() //依据国际时间来得到日(1-31)
getUTCHours() //依据国际时间来得到小时(0-23)
getUTCMinutes() //依据国际时间来返回分钟(0-59)
getUTCSeconds() //依据国际时间来返回秒(0-59)
getUTCMilliseconds()//依据国际时间来返回毫秒(0-999)
getTime() //返回从1970年1月1号0:0:0到现在一共花去的毫秒数
getTimezoneoffset() //返回时区偏差值,即格林威治平均时间(GMT)与运行脚本的计算机所处时区设置之间相差的分钟数)
parse(dateString) //返回在Date字符串中自从1970年1月1日00:00:00以来的毫秒数
setYear(yearInt) //设置年份.2位数或4位数
setFullYear(yearInt)//设置年份.4位数
setMonth(monthInt) //设置月份(0-11)
setDate(dateInt) //设置日(1-31)
setHours(hourInt) //设置小时数(0-23)
setMinutes(minInt) //设置分钟数(0-59)
setSeconds(secInt) //设置秒数(0-59)
setMilliseconds(milliInt) //设置毫秒(0-999)
setUTCFullYear(yearInt) //依据国际时间来设置年份
setUTCMonth(monthInt) //依据国际时间来设置月(0-11)
setUTCDate(dateInt) //依据国际时间来设置日(1-31)
setUTCHours(hourInt) //依据国际时间来设置小时
setUTCMinutes(minInt) //依据国际时间来设置分钟
setUTCSeconds(secInt) //依据国际时间来设置秒
setUTCMilliseconds(milliInt) //依据国际时间来设置毫秒
setTime(timeInt) //设置从1970年1月1日开始的时间.毫秒数
toGMTString() //根据格林威治时间将Date对象的日期(一个数值)转变成一个GMT时间字符串,如:Weds,15 June l997 14:02:02 GMT
toUTCString() //根据通用时间将一个Date对象的日期转换为一个字符串
toLocaleString() //把Date对象的日期(一个数值)转变成一个字符串,使用所在计算机上配置使用的特定日期格式
toSource() //显示对象的源代码
toString() //将日期对象转换为字符串
UTC(yyyy, mm, dd, hh, mm, ss, msec) //返回从格林威治标准时间到指定时间的差距,单位为毫秒
valueOf() //返回日期对象的原始值

五、Math对象

属性:

1
2
3
4
5
6
7
8
9
10
11
constructor      //所建立对象的函数参考
prototype //能够为对象加入的属性和方法

E //欧拉常量,自然对数的底(约等于2.718)
LN2 //2的自然对数(约等于0.693)
LN10 //10的自然对数(约等于2.302)
LOG2E //以2为底的e的对数.(约等于1.442)
LOG10E //以10为底的e的对数(约等于0.434)
PI // ∏的值(约等于3.14159)
SQRT1_2 //1/2(0.5)的平方根(即l除以2的平方根,约等于o.707)
SQRT2 //2的平方根(约等于1.414)

方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
abs(x)     //返回数字的绝对值
acos(x) //返回数字的反余弦值
asin(x) //返回数字的反正弦值
atan(x) //返回位于-PI/2 和 PI/2 的反正切值
atan2(y,x) //返回(x,y)位于 -PI 到 PI 之间的角度
ceil(x) //ceil() 方法执行的是向上取整计算,它返回的是大于或等于x,并且与之最接近的整数。与floor是一对相反的函数
cos(x) //返回一个数字的余弦值
exp(x) //返回 E^x 值
floor(x) //floor() 方法执行的是向下取整计算,它返回的是小于或等于x,并且与之最接近的整数。

log(x) //返回底数为E的自然对数
max(x,y) //返回 x 和 y 之间较大的数
min(x,y) // 返回 x 和 y 之间较小的数
pow(x,y) // y^x , 返回 x 的 y 次幂的值
random() //返回位于 0 到 1 之间的随机函数
round(x) //四舍五入后取整
sin(x) //返回数字的正弦值
sqrt(x) //返回数字的平方根
tan(x) //返回一个角度的正切值
toSource() //显示对象的源代码
valueOf() //返回数学对象的原始值
-------------The End-------------

本文标题:JavaScript对象

文章作者:JunYiZzz

发布时间:2018年11月29日 - 10:11

最后更新:2018年11月29日 - 11:11

原始链接:https://junyizzz.github.io/JavaScriptObject/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。