JavaScript之math() date() array

作者: 匿名用户404 | 来源:发表于2017-07-14 19:37 被阅读39次

    Math

    Math对象时JavaScript的内置对象,提供一系列数学常数和数学方法。Math对象只提供了静态的属性和方法。

    Math属性(只读的数学常数)

    Math.E // 2.718281828459045
    Math.LN2 // 0.6931471805599453
    Math.LN10 // 2.302585092994046
    Math.LOG2E // 1.4426950408889634
    Math.LOG10E // 0.4342944819032518
    Math.PI // 3.141592653589793
    Math.SQRT1_2 // 0.7071067811865476
    Math.SQRT2 // 1.4142135623730951

    Math方法

    1. round
    round方法用于四舍五入

    Math.round(0.1) // 0
    Math.round(0.5) // 1
    注意:它对于负值的运算结果和正值略有不同,主要体现在对 .5的处理。

    2.abs,max,min
    abs方法返回参数值的绝对值

    Math.abs(1) //1
    Math.abs(-1) //1

    max方法返回最大的参数,min方法返回最小的参数

    Math.max(2,-1,5) //5
    Math.min(2,-1,5) //-1

    3.floor,ceil
    floor方法返回小于参数值的最大整数

    Math.floor(3.2) //3
    Math.floor(-3.2) //-4

    ceil方法返回大于参数值的最小整数

    Math.celi(3.2) //4
    Math.celi(-3.2) //-3

    4.pow,sqrt,log,exp
    pow方法返回第一个参数为底数,第二个参数为幂的值
    sqrt方法返回参数值的平方根(如果参数是负数就返回NaN)
    log方法返回以e为底的自然数对数
    exp方法返回常数e的参数次方

    5.random
    random方法返回0到1之间的一个伪随机数,区间 [0,1)

    // 返回给定范围内的随机数
    function getRandomArbitrary(min, max) {
    return Math.random() * (max - min) + min;
    }
    // 返回给定范围内的随机整数
    function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
    }


    Date

    Date对象是JavaScript提供的日期和时间的操作接口

    Date方法

    1.Date.now()
    now方法返回当前距离 1970年1月1日00:00:00的毫秒数

    2.Date.parse()
    parse方法用来解析日期字符串,返回距离1970年1月1日 00:00:00的毫秒数
    日期字符串的格式应该完全或者部分符合YYYY-MM-DDTHH:mm:ss.sssZ格式,Z表示时区,是可选的
    如果解析失败,返回NaN

    Date.parse("January 26, 2011 13:51:50")
    Date.parse("Mon, 25 Dec 1995 13:30:00 GMT")

    3.Date.UTC()
    默认情况下,Date对象返回的都是当前时区的时间
    Date.UTC方法可以返回UTC时间。该方法接受年、月、日等变量作为参数,返回当前距离1970年1月1日 00:00:00 UTC的毫秒数

    4.Date()
    Date函数可以直接调用,返回一个当前日期和时间的字符串,这时候是否有参数结果一样

    5.get

    Date.prototype.getTime():返回实例对象距离1970年1月1日00:00:00对应的毫秒数,等同于valueOf方法
    Date.prototype.getDate():返回实例对象对应每个月的几号(从1开始)
    Date.prototype.getDay():返回星期,星期日为0,星期一为1,以此类推
    Date.prototype.getFullYear():返回四位的年份

    Date.prototype.getMonth():返回月份(0表示1月,11表示12月)
    Date.prototype.getHours():返回小时(0-23)
    Date.prototype.getMilliseconds():返回毫秒(0-999)
    Date.prototype.getMinutes():返回分钟(0-59)
    Date.prototype.getSeconds():返回秒(0-59)
    Date.prototype.getTimezoneOffset():返回当前时间与UTC的时区差异,以分钟表示,返回结果考虑到了夏令时因素

    6.set

    Date.prototype.setDate(date):设置实例对象对应的每个月的几号(1-31),返回改变后毫秒时间戳
    Date.prototype.setFullYear(year [, month, date]):设置四位年份
    Date.prototype.setHours(hour [, min, sec, ms]):设置小时(0-23)
    Date.prototype.setMilliseconds():设置毫秒(0-999)
    Date.prototype.setMinutes(min [, sec, ms]):设置分钟(0-59)
    Date.prototype.setMonth(month [, date]):设置月份(0-11)

    Date.prototype.setSeconds(sec [, ms]):设置秒(0-59)
    Date.prototype.setTime(milliseconds):设置毫秒时间戳


    Array

    在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一,数组是值的有序集合,由于弱类型的原因,JavaScript中数组十分灵活、强大,不像是Java等强类型高级语言数组只能存放同一类型或其子类型元素,JavaScript在同一个数组中可以存放多种类型的元素,而且长度也是可以动态调整的,可以随着数据增加或减少自动对数组长度做更改。

    创建数组

    构造函数创建数组

    1.无参构造函数,创建一空数组
    var a1 = new Array();
    2.一个数字参数构造函数,指定数组长度(由于数组长度可以动态调整,作用并不大),创建指定长度的数组
    var a2 = new Array(5);
    3.带有初始化数据的构造函数,创建数组并初始化参数数据
    var a3 = new Array(4, 'hello', new Date());

    字面量创建数组

    1.使用方括号,创建空数组,等同于调用无参构造函数
    var a4 = [];
    2.使用中括号,并传入初始化数据,等同于调用带有初始化数据的构造函数
    var a5 = [10];

    注意点
    1.在使用构造函数创建数组时如果传入一个数字参数,则会创建一个长度为参数的数组,如果传入多个,则创建一个数组,参数作为初始化数据加到数组中
    var a1 = new Array(5);
    console.log(a1.length);//5
    console.log(a1); //[] ,数组是空的
    var a2 = new Array(5,6);
    console.log(a2.length);//2
    console.log(a2); //[5,6]
    但是使用字面量方式,无论传入几个参数,都会把参数当作初始化内容
    var a1 = [5];
    console.log(a1.length);//1
    console.log(a1); //[5]
    var a2 = [5,6];
    console.log(a2.length);//2
    console.log(a2); //[5,6]

    2.使用带初始化参数的方式创建数组的时候,最好最后不要带多余的”,”,在不同的浏览器下对此处理方式不一样
    var a1 = [1,2,3,];
    console.log(a1.length);
    console.log(a1);
    这段脚本在现代浏览器上运行结果和我们设想一样,长度是3,但是在低版本IE下确实长度为4的数组,最后一条数据是undefined

    Array方法

    1.pop,push(栈方法)
    pop和push能够让我们使用堆栈那样先入后出使用数组

    var a = new Array(1,2,3);
    a.push(4);
    console.log(a);//[1, 2, 3, 4]
    console.log(a.length);//4
    console.log(a.pop());//4
    console.log(a); //[1, 2, 3]
    console.log(a.length);//3

    2.shift,unshift(队列方法)
    既然栈方法都实现了,先入先出的队列怎么能少,shift方法可以删除数组index最小元素,并使后面元素index都减一,length也减一,这样使用shift/push就可以模拟队列了,当然与shift方法对应的有一个unshift方法,用于向数组头部添加一个元素

    var a=new Array(1,2,3);
    a.unshift(4);
    console.log(a);//[4, 1, 2, 3]
    console.log(a.length);//4
    console.log(a.shift());//4
    console.log(a); //[1, 2, 3]
    console.log(a.length);//3

    3.终极皮皮虾神级方法--splice

    JavaScript提供了一个splice方法用于一次性解决数组添加、删除(这两种方法一结合就可以达到替换效果),方法有三个参数

    1.开始索引

    2.删除元素的位移

    3.插入的新元素,当然也可以写多个

    splice方法返回一个由删除元素组成的新数组,没有删除则返回空数组

    常用操作

    1.join(char)
    这个方法在C#等语言中也有,作用是把数组元素(对象调用其toString()方法)使用参数作为连接符连接成一字符串,不会修改原数组内容

    var a = new Array(1,2,3,4,5);
    console.log(a.join(',')); //1,2,3,4,5
    console.log(a.join(' ')); //1 2 3 4 5

    **2.slice(start,end)
    不要和splice方法混淆,slice方法用于返回数组中一个片段或子数组,如果只写一个参数返回参数到数组结束部分,如果参数出现负数,则从数组尾部计数(-3意思是数组倒第三个,一般人不会这么干,但是在不知道数组长度,想舍弃后n个的时候有些用,不过数组长度很好知道。。。。,好纠结的用法),如果start大于end返回空数组,值得注意的一点是slice不会改变原数组,而是返回一个新的数组

    var a = new Array(1,2,3,4,5);
    console.log(a); //[1, 2, 3, 4, 5]
    console.log(a.slice(1,2));//2
    console.log(a.slice(1,-1));//[2, 3, 4]
    console.log(a.slice(3,2));//[]
    console.log(a); //[1, 2, 3, 4, 5]

    3.concat(array)
    看起来像是剪切,但这个真不是形声字,concat方法用于拼接数组,a.concat(b)返回一个a和b共同组成的新数组,同样不会修改任何一个原始数组,也不会递归连接数组内部数组

    var a = new Array(1,2,3,4,5);
    var b = new Array(6,7,8,9);
    console.log(a.concat(b));//[1, 2, 3, 4, 5, 6, 7, 8, 9]
    console.log(a); //[1, 2, 3, 4, 5]
    console.log(b); //[6, 7, 8, 9]

    **4.reverse()
    方法用于将数组逆序,与之前不同的是它会修改原数组

    var a = new Array(1,2,3,4,5);
    a.reverse();
    console.log(a); //[5, 4, 3, 2, 1]

    5.sort()
    sort方法用于对数组进行排序,当没有参数的时候会按字母表升序排序,如果含有undefined会被排到最后面,对象元素则会调用其toString方法,如果想按照自己定义方式排序,可以传一个排序方法进去,很典型的策略模式,同样sort会改变原数组。

    相关文章

      网友评论

        本文标题:JavaScript之math() date() array

        本文链接:https://www.haomeiwen.com/subject/abeohxtx.html