网易微专业之《前端工程师》学习笔记(10)-JS的常用方法清单

慢慢补充。。。

目录

  • 正则
  • 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)求天数栗子


网易微专业之《前端工程师》学习笔记(10)-JS的常用方法清单_第1张图片

首先我们来看看原理

网易微专业之《前端工程师》学习笔记(10)-JS的常用方法清单_第2张图片

就是利用了浏览器可以动态计算传人的时间参数,比如日期输入第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

网易微专业之《前端工程师》学习笔记(10)-JS的常用方法清单_第3张图片

比如前端处理完Date后,要存到服务器端的时候就需要将Date转成number,怎么转呢,就用getTime()来获得number,这个number的意思是距1970年1.1的毫秒数。

网易微专业之《前端工程师》学习笔记(10)-JS的常用方法清单_第4张图片

如果要把服务器端的number转Date就直接把nubmer传到newDate()括号里作为参数,就可以了,如果你有个number就可以用setTime()来设置。

你可能感兴趣的:(网易微专业之《前端工程师》学习笔记(10)-JS的常用方法清单)