网易微专业之《前端工程师》学习笔记(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)+"<br/>");

(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")+"<br/>");
//返回25

document.write(parseInt("11",2)+"<br/>");
//参数是2进制,返回十进制结果,返回3

document.write(parseInt("8M")+"<br/>");
//参数首字符是数字,但后面的是字符,返回8

(2)parseFloat():返回浮点型的数字

语法如下:

parseFloat(string);

只能传入一个参数,和parseInt()不同,说明,如果字符串的第一个字符不能被转换为浮点数,那么parseFloat()函数会返回NaN。看下栗子:

document.write(parseFloat("25.33")+"<br/>");   //25.33

document.write(parseFloat("25.33M")+"<br/>");  //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()来设置。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,847评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,208评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,587评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,942评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,332评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,587评论 1 218
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,853评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,568评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,273评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,542评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,033评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,373评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,031评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,073评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,830评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,628评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,537评论 2 269

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,152评论 0 4
  • 有人说过,很多弯路到最后都成了直路,所有的坑到最后也都成了坦途;所谓的直路和坦途并不是摆在眼前的,都是不断的的...
    老衲法号一眉道人阅读 1,266评论 0 4
  • 本章内容 使用对象 创建并操作数组 理解基本的 JavaScript 类型 使用基本类型和基本包装类型 引用类型的...
    闷油瓶小张阅读 652评论 0 0
  • 一、茶(平水韵·下平七阳) 2016.4.29 空山谷雨忙,日暮锁窗凉。 诗酒情还短,禅茶话更长。 绿萝瓯上摆,兰...
    不惑磊哥阅读 576评论 0 1
  • 很久没有细致品味生活了。 偶遇满天星,恰好家里的花瓶也空置了许久,便买了这样满满一大束。嫣红的,青绿的,鹅黄和雪白...
    且柔阅读 260评论 0 0