javascript-基础-对象&number&字符串&Date&Array&布尔&math&RegExp

对象

//创建添加属性
person=new Object();
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue";

//替代语法
person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};

//对象构造器
function person(firstname,lastname,age,eyecolor)
{
    this.firstname=firstname;
    this.lastname=lastname;
    this.age=age;
    this.eyecolor=eyecolor;
}
var myFather=new person("John","Doe",50,"blue");
var myMother=new person("Sally","Rally",48,"green");

方法也可以在构造函数内部添加

function person(firstname,lastname,age,eyecolor)
{
	this.firstname=firstname;
	this.lastname=lastname;
	this.age=age;
	this.eyecolor=eyecolor;

	this.changeName=changeName;
	function changeName(name)
	{
		this.lastname=name;
	}
}

基于prototype而不是基于类
for...in循环遍历属性

var person={fname:"John",lname:"Doe",age:25}; 

for (x in person) 
{ 
    txt=txt + person[x]; 
}

Number对象

js只有一种数字类型,所有的数字都是64位

var pi=3.14;    // 使用小数点
var x=34;       // 不使用小数点
var y=123e5;    // 12300000
var z=123e-5;   // 0.00123

精度

//整数最多15位
var x = 999999999999999;   // x 为 999999999999999
var y = 9999999999999999;  // y 为 10000000000000000
//小数的最大位数是 17
var x = 0.2+0.1; // 输出结果为 0.30000000000000004

八进制和十六进制

var y = 0377;   //前缀0
var z = 0xFF;   //前缀0x

//tostring输出不同进制
var myNumber=128;
myNumber.toString(16);   // 返回 80
myNumber.toString(8);    // 返回 200
myNumber.toString(2);    // 返回 10000000

无穷大

myNumber=2;
while (myNumber!=Infinity)
{
    myNumber=myNumber*myNumber; // 重复计算直到 myNumber 等于 Infinity
}

//0产生无限
var x = 2/0;
var y = -2/0;

NaN非数字

var x = 1000 / "Apple";
isNaN(x); // 返回 true
var y = 100 / "1000";
isNaN(y); // 返回 false

isNaN() 函数判断是否为NaN
无穷大也是一个数字Infinity
数字可以是数字或者对象
var y = new Number(123);

var x = 123;
var y = new Number(123);
typeof(x) // 返回 Number
typeof(y) // 返回 Object

var x = 123;              
var y = new Number(123);
(x === y) // 为 false,因为 x 是一个数字,y 是一个对象

属性

MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITY
POSITIVE_INFINITY
NaN
prototype
constructor

方法

toExponential()
toFixed()
toPrecision()
toString()
valueOf()

字符串

可以使用索引访问,转义用\

var character=carname[7];

属性

length
prototype
constructor

方法

charAt()
charCodeAt()
concat()
fromCharCode()
indexOf()
lastIndexOf()
match()
replace()
search()
slice()
split()
substr()
substring()
toLowerCase()
toUpperCase()
valueOf()

Date

参考手册
http://www.runoob.com/jsref/jsref-obj-date.html

//创建日期
new Date() // 当前日期和时间
new Date(milliseconds) //返回从 1970 年 1 月 1 日至今的毫秒数
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)

//设置时间
var myDate=new Date();
myDate.setFullYear(2010,0,14);

var myDate=new Date();
myDate.setDate(myDate.getDate()+5);

两个日期比较

var x=new Date();
x.setFullYear(2100,0,14);
var today = new Date();

if (x>today)
{
	alert("今天是2100年1月14日之前");
}
else
{
	alert("今天是2100年1月14日之后");
}

属性

constructor	返回对创建此对象的 Date 函数的引用。
prototype	使您有能力向对象添加属性和方法。

方法

getDate()	            从 Date 对象返回一个月中的某一天 (1 ~ 31)。
getDay()	            从 Date 对象返回一周中的某一天 (0 ~ 6)。
getFullYear()	        从 Date 对象以四位数字返回年份。
getHours()	            返回 Date 对象的小时 (0 ~ 23)。
getMilliseconds()	    返回 Date 对象的毫秒(0 ~ 999)。
getMinutes()	        返回 Date 对象的分钟 (0 ~ 59)。
getMonth()	            从 Date 对象返回月份 (0 ~ 11)。
getSeconds()	        返回 Date 对象的秒数 (0 ~ 59)。
getTime()	            返回 1970 年 1 月 1 日至今的毫秒数。
getTimezoneOffset()	    返回本地时间与格林威治标准时间 (GMT) 的分钟差。
getUTCDate()	        根据世界时从 Date 对象返回月中的一天 (1 ~ 31)。
getUTCDay()	            根据世界时从 Date 对象返回周中的一天 (0 ~ 6)。
getUTCFullYear()	    根据世界时从 Date 对象返回四位数的年份。
getUTCHours()	        根据世界时返回 Date 对象的小时 (0 ~ 23)。
getUTCMilliseconds()	根据世界时返回 Date 对象的毫秒(0 ~ 999)。
getUTCMinutes()	        根据世界时返回 Date 对象的分钟 (0 ~ 59)。
getUTCMonth()	        根据世界时从 Date 对象返回月份 (0 ~ 11)。
getUTCSeconds()	        根据世界时返回 Date 对象的秒钟 (0 ~ 59)。
getYear()	            已废弃。 请使用 getFullYear() 方法代替。
parse()	                返回1970年1月1日午夜到指定日期(字符串)的毫秒数。
setDate()	            设置 Date 对象中月的某一天 (1 ~ 31)。
setFullYear()	        设置 Date 对象中的年份(四位数字)。
setHours()	            设置 Date 对象中的小时 (0 ~ 23)。
setMilliseconds()	    设置 Date 对象中的毫秒 (0 ~ 999)。
setMinutes()	        设置 Date 对象中的分钟 (0 ~ 59)。
setMonth()	            设置 Date 对象中月份 (0 ~ 11)。
setSeconds()	        设置 Date 对象中的秒钟 (0 ~ 59)。
setTime()	            setTime() 方法以毫秒设置 Date 对象。
setUTCDate()	        根据世界时设置 Date 对象中月份的一天 (1 ~ 31)。
setUTCFullYear()	    根据世界时设置 Date 对象中的年份(四位数字)。
setUTCHours()	        根据世界时设置 Date 对象中的小时 (0 ~ 23)。
setUTCMilliseconds()	根据世界时设置 Date 对象中的毫秒 (0 ~ 999)。
setUTCMinutes()	        根据世界时设置 Date 对象中的分钟 (0 ~ 59)。
setUTCMonth()	        根据世界时设置 Date 对象中的月份 (0 ~ 11)。
setUTCSeconds()     	setUTCSeconds() 方法用于根据世界时 (UTC) 设置指定时间的秒字段。
setYear()	            已废弃。请使用 setFullYear() 方法代替。
toDateString()	        把 Date 对象的日期部分转换为字符串。
toGMTString()	        已废弃。请使用 toUTCString() 方法代替。
toISOString()	        使用 ISO 标准返回字符串的日期格式。
toJSON()	            以 JSON 数据格式返回日期字符串。
toLocaleDateString()	根据本地时间格式,把 Date 对象的日期部分转换为字符串。
toLocaleTimeString()	根据本地时间格式,把 Date 对象的时间部分转换为字符串。
toLocaleString()	    据本地时间格式,把 Date 对象转换为字符串。
toString()	            把 Date 对象转换为字符串。
toTimeString()	        把 Date 对象的时间部分转换为字符串。
toUTCString()	        根据世界时,把 Date 对象转换为字符串。
UTC()	                根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数。
valueOf()	            返回 Date 对象的原始值。

Array

参考:http://www.runoob.com/jsref/jsref-obj-array.html
创建数组

var mycars = new Array();
mycars[0] = "Saab";
mycars[1] = "Volvo";
mycars[2] = "BMW";

var myCars=new Array("Saab","Volvo","BMW");

var myCars=["Saab","Volvo","BMW"];

数组可以有不同对象

myArray[0]=Date.now;
myArray[1]=myFunction;
myArray[2]=myCars;

创建新方法(prototype是object属性,可以添加属性和方法)

Array.prototype.myUcase=function(){
    for (i=0;i<this.length;i++){
        this[i]=this[i].toUpperCase();
    }
}

数组方法和属性

concat()	    连接两个或更多的数组,并返回结果。
every()	        检测数值元素的每个元素是否都符合条件。
filter()	    检测数值元素,并返回符合条件所有元素的数组。
indexOf()	    搜索数组中的元素,并返回它所在的位置。
join()	        把数组的所有元素放入一个字符串。
lastIndexOf()	返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。
map()	        通过指定函数处理数组的每个元素,并返回处理后的数组。
pop()	        删除数组的最后一个元素并返回删除的元素。
push()	        向数组的末尾添加一个或更多元素,并返回新的长度。
reverse()	    反转数组的元素顺序。
shift()	        删除并返回数组的第一个元素。
slice()	        选取数组的的一部分,并返回一个新数组。
some()	        检测数组元素中是否有元素符合指定条件。
sort()	        对数组的元素进行排序。
splice()	    从数组中添加或删除元素。
toString()	    把数组转换为字符串,并返回结果。
unshift()	    向数组的开头添加一个或更多元素,并返回新的长度。
valueOf()	    返回数组对象的原始值。

布尔

var myBoolean=new Boolean();
如下内容为flase

无初始值
0
-0
null
""
false
undefined
NaN

math对象

http://www.runoob.com/jsref/jsref-obj-math.html
常量

Math.E
Math.PI
Math.SQRT2
Math.SQRT1_2
Math.LN2
Math.LN10
Math.LOG2E
Math.LOG10E

方法

document.write(Math.round(4.7));    //四舍五入
document.write(Math.random());      //0-1随机数
document.write(Math.floor(Math.random()*11)); //0-11之间随机数

其他方法

abs(x)	            返回 x 的绝对值。
acos(x)	            返回 x 的反余弦值。
asin(x)	            返回 x 的反正弦值。
atan(x)	             以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。
atan2(y,x)	        返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。
ceil(x)	            对数进行上舍入。
cos(x)	            返回数的余弦。
exp(x)	            返回 Ex 的指数。
floor(x)	        对 x 进行下舍入。
log(x)	            返回数的自然对数(底为e)。
max(x,y,z,...,n)	返回 x,y,z,...,n 中的最高值。
min(x,y,z,...,n)	返回 x,y,z,...,n中的最低值。
pow(x,y)	        返回 x 的 y 次幂。
random()	        返回 0 ~ 1 之间的随机数。
round(x)	        把数四舍五入为最接近的整数。
sin(x)	            返回数的正弦。
sqrt(x)	            返回数的平方根。
tan(x)	            返回角的正切。

RegExp对象

参考手册
http://www.runoob.com/jsref/jsref-obj-regexp.html

var patt=new RegExp(pattern,modifiers);
var patt=/pattern/modifiers;
var re = new RegExp("\\w+");

转义
i不区分大小写
g全部查找
test()方法,如果找到返回true

var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));

exec()检索指定的值,如果没有被发现,返回null

var patt1=new RegExp("e");
document.write(patt1.exec("The best things in life are free"));
posted @ 2017-03-08 10:38  zhangshihai1232  阅读(141)  评论(0)    收藏  举报