慢慢补充。。。
目录
- 正则
- Array的方法
- String的方法
- Math的方法
- Date的方法
正则
《网易微专业之《前端工程师》学习笔记(12)-JS正则》
Array的方法
《JavaScript 数组常用方法介绍》
String的方法
《JavaScript 字符串常用方法介绍》
Math的方法
(1)Math.max()和Math.min();
max()和min()方法用于确定一组数值中的最大值和最小值。这两个方法都可以接收任意多个数值参数,比如下面的栗子。
var max=Math.max(3,54,32,16);
alert(max); //54
var min=Math.min(3,54,32,16);
alert(min); //3
这两个方法经常用于避免多余循环和在if语句中确定一组数的最值。
另外要找到数组中的最大或最小值,可以像下面这样使用apply()方法。
var values=[1,2,3,4,5,6,7,8];
var max=Math.max.apply(Math,values);
apply函数中的第一个参数为函数所属对象,通常为当前页面(this)。用上面这个技巧的关键是把Math对象作为apply()的第一个参数,从而正确设置this值。第二个参数为传入到函数中的参数数组(必须为数组)。
(2)舍入方法
指的是,math中将小数值舍入为整数的几个方法:Math.ceil()、Math.floor()和Math.round()。
- Math.ceil()是向上取整;
- Math.floor()是向下取整;
- Math.round()是数学课上的正常的四舍五入;
Math.ceil(1.1);//2
Math.ceil(1.9);//2
Math.floor(25.1) //25
Math.floor(25.9) //25
Math.round(25.1) //25
Math.round(25.9) //26
再来来看看应用的实例:
var numVar=2;
var numVar2=3.5;
var numVar3=-80.6;
document.write("3.5的floor()值为"+Math.floor(numVar2)+"
");
(3)Math.random()
Math.random()方法返回大于等于0小于1的一个随机数。对于某些站点来说,这个方法非常实用,因为可以利用它来随机显示一些名人名言和新闻事件。
用下面的公式“
值=Math.floor(Math.random()*可能值的总数+第一个可能的值)
公式中用到Math.floor()这个将小数向下取整的方法,是因为Math.random()总是返回一个小数值,而用这个小数值乘以一个整数,然后再加上一个整数,最终的结果仍然还是一个小数。
举个栗子,假如你想选择一个1到10之间的数值,可以像下面的代码那样写:
var num=Math.floor(Math.random()*10+1);
分析一下:总共有10个可能的值(1到10),而第一个可能的值是1。而如果想要选择一个介于2到10之间的值,就应该将上面的代码改成下面这样的:
var num=Math.floor(Math.random()*9+2);
分析下:从2数到10总共有9个数,因此可能值的总数就是9,而第一个可能的值就是2。
当然,多数情况下,都可以用一个函数来计算可能值的总数和第一个可能的值,例如:
function selectFrom(lowerValue,upperValue){
var choices=upperValue-lowerValue+1;
return Math.floor(Math.random()*choices+lowerValue);
}
var num=selectFrom(2,10);
alert(num); //介于2和10之间的一个数值(包括2和10)
分析下:函数selectFrom()接受两个参数:一个是最小值,一个是最大值。而用最大值减去最小值再加1就得到可能值的总数,然后再套用的刚才的公式中去。
(4)Math.abs(num)是返回num的绝对值
Math.abs(-10); //10
数值类型转换的方法
(一)将数值格式化为字符串:toFixed()
toFixed()方法会按照制定的小数位返回数值的字符串表示。例如:
var num=10;
alert(num.toFixed(2)); //"10.00"
分析下:传入的2是显示几位小数的意思,如果数值本身包含的小数位数比指定的小数位数多,那么数值就会被舍入处理。如:
var num=10.005;
alert(num.toFixed(2)); //"10.01"
正是因为能够自动舍入,所以toFixed()方法很适合处理货币值。不过当toFixed()传入0,IE8会出错,IE9修复了错误。
(二)将字符串转换为数字
(1)parseInt():返回整型的数字
语法:
parseInt(string,radix)
其中radix表示string参数中数字的进制,默认是十进制,取值范围为2~32。但是如果字符串的第一个字符不能被转换为数字,那么parseInt()函数会返回NaN。实例如下:
document.write(parseInt("25")+"
");
//返回25
document.write(parseInt("11",2)+"
");
//参数是2进制,返回十进制结果,返回3
document.write(parseInt("8M")+"
");
//参数首字符是数字,但后面的是字符,返回8
(2)parseFloat():返回浮点型的数字
语法如下:
parseFloat(string);
只能传入一个参数,和parseInt()不同,说明,如果字符串的第一个字符不能被转换为浮点数,那么parseFloat()函数会返回NaN。看下栗子:
document.write(parseFloat("25.33")+"
"); //25.33
document.write(parseFloat("25.33M")+"
"); //25.33
(3)Number()函数把对象的值转换为数字。这个是重点有难度,需要花点功夫去掌握。
Number(object)
说明:参数必须是JS对象。如果对象的值无法转换为数字,那么 Number() 函数返回 NaN。实例如下:
Number('100.1') // 100.1
Number('12.4b5') // NaN
Number('www') // NaN
当然传入数值、字符串、布尔值也没关系,数值、字符串、布尔值这些基本类型值被读取的时候EcmaScript会短暂的创建一个相应的对象,并进行操作。
关于Number()函数在特殊值的转换结果暂略。。。等Uolcano整理完再补充。
Date的方法
(1)获取当前日期就用:
var date=new Date();
console.log(date);
返回:Sat Jan 23 2016 16:15:17 GMT+0800 (中国标准时间)
(2)打印指定的日期,可以在()后面传人时间参数
new Date(year,month[,day[,hour[,minutes[,seconds[,milliseconds]]]]])
比如,传人2016.02.03.14:52,可以这样写
var date=new Date(2016,1,3,14,52);
console.log(date);
返回:Wed Feb 03 2016 14:52:00 GMT+0800 (中国标准时间)
注意:月份是从0开始计算的,比如你要输1月份,就要输0,2月份就要输1。另外,参数默认的必须填年和月,其他的诸如日小时分钟可以选择不填。
(3)getXXX()
var date=new Date(2015,7,20,14,57,18)
date.getFullYear(); //2015
date.getMonth(); //7
date.getDate(); //20
date.getHours(); //14
date.getMinutes(); //57
date.getSeconds(); //18
(4)日期格式转换
如何把JS的默认时间格式换成我们想要的右边那种格式呢。
function padding(number){
return number<10?"0"+number:""+number;
}
function format(date){
return date.getFullYear()+"-"
+padding(date.getMonth()+1)+"-"
+padding(date.getDate())+" "
+padding(date.getHours())+":"
+padding(date.getMinutes())+":"
+padding(date.getSeconds());
}
var date=new Date(2015,7,20,14,57,18);
format(date);
返回:"2015-08-20 14:57:18"
(5)setXXX();
var date=new Date(2015,7,20,14,57,18);
date.setFullYear(2046); //2046-08-20 14:57:18
date.setMonth(2); //2046-03-20 14:57:18
date.setDate(15); //2046-03-15 14:57:18
date.setHours(8); //2046-03-15 08:57:18
date.setMinutes(16); //2046-03-15 08:16:18
date.setSeconds(56); //2046-03-15 08:16:59
接下来我们看,如果我们吧setDate设置为35天,会如何呢?
var date=new Date(2015,7,20,14,57,18);
date.setDate(35);
/*需要经过上面的格式转换*/
//2015-09-04 14:57:18
由此我们可以看出,会setXXX()会进行动态计算的,因此这个常常可以活用来计算每月到底有几天。
(6)求天数栗子
首先我们来看看原理
就是利用了浏览器可以动态计算传人的时间参数,比如日期输入第0天,就会返回上个月的最后一天,上个月的最后一天的数字就是上个月的天数了,用这个原理来求天数。下面我们来看实际的代码:
function getDays(year,month){
var date =new Date(year,month,0);
return date.getDate();
}
alert("2001年2月有"+getDays(2001,2)+"天");
alert("2001年3月有"+getDays(2001,3)+"天");
(7)Date转number和number转Date
比如前端处理完Date后,要存到服务器端的时候就需要将Date转成number,怎么转呢,就用getTime()来获得number,这个number的意思是距1970年1.1的毫秒数。
如果要把服务器端的number转Date就直接把nubmer传到newDate()括号里作为参数,就可以了,如果你有个number就可以用setTime()来设置。