js常见需求开发

1.动态js插入script标签

const script = document.createElement('script')
script.src = 'static/echarts.js'
script.onload = this.initEcharts.bind(this)
document.head.appendChild(script)

2.下载exal的实现(导出功能)

 _downloadExcal (url, data) {
      if (url && data) {
        // if (NODE_ENV === 'production') {
        //   url = url.replace('/api', '')
        // }

        let form = document.createElement('form')
        form.setAttribute('action', url)
        form.setAttribute('method', 'post')
        for (let item in data) {
          let val = data[item] === undefined ? '' : data[item] === null ? '' : data[item]
          let input = document.createElement('input')
          input.setAttribute('type', 'text')
          input.setAttribute('name', item)
          input.setAttribute('value', val)
          form.appendChildn(input)  //  注意ie的问题
        }
        document.body.appendChild(form)
        form.submit()
        document.body.removeChild(form)
      }
    }

3.转数字字符串的快捷方法

 num-0 转化为数字
num+'' 转化为字符串

4.熟知问题:
说明:只要bind绑定会返回一个新的函数,但是一旦绑定bind,就无法通过call或apply再次修改this,箭头函数也是不能修改this

5.requestAnimationFrame兼容写法:

if (!Date.now)
      Date.now = function() {
        return new Date().getTime()
      };
      (function() {
      'use strict'
      var vendors = ['webkit', 'moz']
      for (
        var i = 0;
        i < vendors.length && !window.requestAnimationFrame;
        ++i
      ) {
        var vp = vendors[i]
        window.requestAnimationFrame = window[vp + 'RequestAnimationFrame']
        window.cancelAnimationFrame =
          window[vp + 'CancelAnimationFrame'] ||
          window[vp + 'CancelRequestAnimationFrame']
      }
      if (
        /iP(ad|hone|od).*OS 6/.test(window.navigator.userAgent) || // iOS6 is buggy
        !window.requestAnimationFrame ||
        !window.cancelAnimationFrame
      ) {
        var lastTime = 0
        window.requestAnimationFrame = function(callback) {
          var now = Date.now()
          var nextTime = Math.max(lastTime + 16, now)
          return setTimeout(
            function() {
              callback((lastTime = nextTime))
            },
            nextTime - now
          )
        }
        window.cancelAnimationFrame = clearTimeout
      }
    })()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值