JS 常用方法汇总(三)

1、n-m之间的随机数

function numRandom(n, m) {
        if (n > m) {
            return parseInt(m + Math.random() * (n - m + 1));
        } else {
            return parseInt(n + Math.random() * (m - n + 1));
        }
}

2、时间过滤器 yyyy-mm-dd hh:mm:ss

filters = (data) =>{
            var time = new Date(data);
            var timeStr = time.getFullYear()+"-"+
            (time.getMonth()+1).toString().padStart(2,"0")+"-"+
            time.getDate().toString().padStart(2,"0")+ " "+
            time.getHours().toString().padStart(2,"0")+":"+
            time.getMinutes().toString().padStart(2,"0")+":"+
            time.getSeconds().toString().padStart(2,"0");
            return timeStr;
}

function formatDate(date) {
            var year = date.getFullYear();
            var month = date.getMonth() + 1;
            var day = date.getDate();
            var hour = date.getHours();
            var minute = date.getMinutes();
            var second = date.getSeconds();
                // return year+"-"+month+"-"+date+" "+hour+":"+minute+":"+second;
            return year + '-' + (String(month).length > 1 ? month : '0' + month) + '-' +
            (String(day).length > 1 ? day : '0' + day) + ' ' + (String(hour).length > 1 ? hour : '0' + hour) + ':' + (String(minute).length > 1 ? minute : '0' + minute)
            + ':' + (String(second).length > 1 ? second : '0' + second)
}
//如果记得时间戳是毫秒级的就需要*1000 不然就错了记得转换成整型
 
var d = new Date();  //Tue Mar 26 2019 05:00:00 GMT+0800 (中国标准时间)
console.log(formatDate(d))  //2019-03-26 05:00:00

3、返回顶部通用方法

function backTop(btnId) {
        var btn = document.getElementById(btnId);
        var d = document.documentElement;
        var b = document.body;
        window.onscroll = set;
        btn.style.display = "none";
        btn.onclick = function () {
            btn.style.display = "none";
            window.onscroll = null;
            this.timer = setInterval(function () {
                d.scrollTop -= Math.ceil((d.scrollTop + b.scrollTop) * 0.1);
                b.scrollTop -= Math.ceil((d.scrollTop + b.scrollTop) * 0.1);
                if (d.scrollTop + b.scrollTop == 0)
                    clearInterval(btn.timer, (window.onscroll = set));
            }, 10);
        };
        function set() {
            btn.style.display = d.scrollTop + b.scrollTop > 100 ? "block" : "none";
        }
}
backTop("goTop");
// 给按钮绑定一个click事件,点击按钮时,返回顶部
 $('#goToTop a').click(function(){
    $('html ,body').animate({scrollTop: 0}, 300);
    return false;
 });
$("div").scrollTop(0)

对象Object构造方法

Object.assign()将所有可枚举的自身属性的值从一个或多个源对象复制到目标对象。

Object.create()用指定的原型对象和属性创建一个新对象。

Object.defineProperty()将给定描述符描述的命名属性添加到对象。

Object.defineProperties()将给定描述符描述的命名属性添加到对象。

Object.entries()返回一个包含[key, value]给定对象自己的可枚举字符串属性的所有对的数组。

Object.freeze()冻结对象。其他代码无法删除或更改其属性。

Object.fromEntries()从可迭代的[key, value]对中返回一个新对象。(这是的反向  Object.entries)。

Object.getOwnPropertyDescriptor()返回对象的命名属性的属性描述符。

Object.getOwnPropertyDescriptors()返回一个包含对象自身所有属性描述符的对象。

Object.getOwnPropertyNames()返回一个数组,其中包含给定对象自己的所有可枚举和不可枚举属性的名称。

Object.getOwnPropertySymbols()返回直接在给定对象上找到的所有符号属性的数组。

Object.getPrototypeOf()返回prototype指定对象的。

Object.is()比较两个值是否相同。求所有NaN值(不同于“抽象相等比较”和“严格相等比较”)。

Object.isExtensible()确定是否允许扩展对象。

Object.isFrozen()确定对象是否冻结。

Object.isSealed()确定对象是否密封。

Object.keys()返回一个数组,其中包含给定对象自己的所有可枚举字符串属性的名称。

Object.preventExtensions()防止对象的任何扩展。

Object.seal()防止其他代码删除对象的属性。

Object.setPrototypeOf()设置对象的原型(其内部[[Prototype]]属性)。

Object.values()返回一个数组,该数组包含与给定对象自己的所有可枚举字符串属性相对应的值。

更改数组对象中属性的参数名:

let data1 = [
   { appName: "应用1", capacity: 233456 },
   { title: "应用2", key: 124535 }
];
let data2 = [];
data1.forEach(item => {
    data2.push({
         name: item.appName || item.title,
         value: item.capacity || item.key
    });
});
console.log(data2)

参考文章:https://www.cnblogs.com/joe235/p/13679218.html

对里面的内容进行了一些修改和补充,有问题请联系修正,Thanks♪(・ω・)ノ

未完待续~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值