【前端】常用操作笔记

这篇博客汇集了前端开发中的实用技巧,包括去除number输入框的上下箭头、拼接接口与参数、微信网页动态修改title的方法,以及获取路由参数的函数。同时,也分享了nginx的基础操作指南,如启动、关闭、重载服务等。此外,还介绍了dayjs库获取当前月第一天和最后一天的方法,以及使用setTimeout模拟setInterval和setInterval实现setTimeout的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【前端】常用操作笔记

  1. 输入框input类型为number时,去掉上下箭头方式:
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type="number"]{
-moz-appearance: textfield;
}
  1. 拼接接口与参数
exportParams (url, param) {
 const arr = []
  for (const key in param) {
    if (param[key] || param[key] * 1 === 0) {
      arr.push(`${key}=${param[key]}`)
    }
  }
  return url + '?' + arr.join('&')
}
  1. 微信网页版动态修改title的方法:
setTitle: function(title){
   document.title = title;
    var i = document.createElement('iframe');
    i.src = 'http://m.baidu.com/favicon.ico';
    i.style.display = 'none';
    i.onload = function(){
        setTimeout(function(){
            i.remove();
        }, 9);
    };
    document.body.appendChild(i);
},
  1. 获取路由参数
getParam2Obj (url) {
 const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
  if (!search) {
    return {}
  }
  const obj = {}
  const searchArr = search.split('&')
  searchArr.forEach(v => {
    const index = v.indexOf('=')
    if (index !== -1) {
      const name = v.substring(0, index)
      const val = v.substring(index + 1, v.length)
      obj[name] = val
    }
  })
  return obj
}
  1. nginx 基础操作
启动服务:start nginx
退出服务:nginx -s quit
强制关闭服务:nginx -s stop
重载服务:nginx -s reload  (重载服务配置文件,类似于重启,服务不会中止)
验证配置文件:nginx -t
使用配置文件:nginx -c "配置文件路径"
使用帮助:nginx -h
tasklist /fi "imagename eq nginx.exe" 查看是否已启动(显示2个进程)
  1. 【转】dayjs 获取当前月第一天和最后一天
getMonthFirstLast(time){
 let date=new Date(time)
  //获取当前月的第一天     
  let monthStart = date.setDate(1)
  //获取当前月 
  let currentMonth=date.getMonth()
  //获取到下一个月,++currentMonth表示本月+1,一元运算
  let nextMonth=++currentMonth
  //获取到下个月的第一天      
  let nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1)
  //一天时间的毫秒数
  let oneDay=1000*60*60*24
  //获取当前月第一天和最后一天
  let firstDay = this.$dayjs(monthStart).format("YYYY-MM-DD");
  //nextMonthFirstDay-oneDay表示下个月的第一天减一天时间的毫秒数就是本月的最后一天
  let lastDay = this.$dayjs(nextMonthFirstDay-oneDay).format("YYYY-MM-DD")
  return {firstDay, lastDay }
},

链接:https://blog.csdn.net/weixin_42354407/article/details/106489798

  1. 【转】用setTimeout实现setInterval
function mySetTimout(fn, delay) {
    let timer = null
    const interval = () => {
        fn()
        timer = setTimeout(interval, delay)
    }
    setTimeout(interval, delay)
    return {
        cancel: () => {
            clearTimeout(timer)
        }
    }
}
// 测试
const { cancel } = mySetTimout(() => console.log(888), 1000)
setTimeout(() => {
    cancel()
}, 4000)

作者:Sunshine_Lin
链接:https://juejin.cn/post/7023906112843808804

  1. 【转】用setInterval实现setTimeout
function mySetInterval(fn, delay) {
    const timer = setInterval(() => {
        fn()
        clearTimeout(timer)
    }, delay)
}

// 测试
mySetInterval(() => console.log(888), 1000)

作者:Sunshine_Lin
链接:https://juejin.cn/post/7023906112843808804

  1. 深拷贝
    https://juejin.cn/post/7017991655009566728
  2. 如何防止CSRF攻击?
    https://juejin.cn/post/6844903689702866952
  3. 如何防止XSS攻击?
    https://juejin.cn/post/6844903685122703367
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值