夏天夏 夏天夏
首页
  • 技术分享

    • 小白都能看懂的闭包
    • 关于后台管理应用
    • 关于技术的取舍
    • 前端工程化
    • 切换node版本
    • 如何优雅的写事件代理
    • 我所不了解的技术
    • 我喜欢的parcel
    • angular1使用
    • npm script打造前端工作流
  • 发布一个node插件

    • 发布一个npm包
    • 如何打包一个插件工具库
    • 打包工具的选择
  • 年终总结

    • 2019年总结
    • 2020年总结
    • 2021年总结
  • JavaScript
  • CSS
  • 框架
  • Node
  • 服务
  • web3
  • 其他
我的作品
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

夏天夏

我也不饶岁月
首页
  • 技术分享

    • 小白都能看懂的闭包
    • 关于后台管理应用
    • 关于技术的取舍
    • 前端工程化
    • 切换node版本
    • 如何优雅的写事件代理
    • 我所不了解的技术
    • 我喜欢的parcel
    • angular1使用
    • npm script打造前端工作流
  • 发布一个node插件

    • 发布一个npm包
    • 如何打包一个插件工具库
    • 打包工具的选择
  • 年终总结

    • 2019年总结
    • 2020年总结
    • 2021年总结
  • JavaScript
  • CSS
  • 框架
  • Node
  • 服务
  • web3
  • 其他
我的作品
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • JavaScript

  • CSS

  • 框架

  • Node

  • 服务

  • 其他

    • 编程概念
    • 打包工具
    • 关于前端接口管理的一些思考
    • 开发环境
    • 浏览器兼容问题
    • 前端单元测试
    • 前端资源
    • 实用代码段
      • 浅拷贝
      • 数组去重复
      • 事件代理
      • 当前元素的index
      • 将NodeList转数组
      • 严格相等(NaN,+0,-0)
      • 生存min~max整数的随机数
      • 实时监控dom
      • 过滤不要的对象属性(如过滤xxx,yyy属性)
    • 书籍
    • 造轮子思路
    • 造轮子思路二
    • 自定义组件
    • ajax
    • git笔记
    • iview踩坑记
    • sass
    • webpack原理跟配置
    • Canvas
    • OpenGraph
    • SEO
  • 设计模式

  • web3

  • react

  • 学习笔记
  • 其他
夏天夏
2022-05-15
目录

实用代码段

48个ES6常用代码段 (opens new window)

# javascript

如何防止别人在你的网页打开控制台?

setInterval(()=>debugger)
1

# 函数防抖

防抖动是将多次执行变为最后一次执行

  var timer
  function hiFrequency(){
      if(timer){
          clearTimeout(timer)
      }
        timer = setTimeout(function(){
             console.log('do something')
        }, 300)
  }
  hiFrequency()
  hiFrequency()
  hiFrequency()
1
2
3
4
5
6
7
8
9
10
11
12

# 函数节流

节流是将多次执行变成每隔一段时间执行。

//待补充
1

# 简单的递归

function sun(n){
	if(n===1){
		return 1
	}else{
		return n+sun(n-1)
	}
}
sun(5) // 1+2+3+4+5 ==> 15
1
2
3
4
5
6
7
8

# 逆转消息

'abc'.split('').reverse().join('')
1

# 函数柯里化

function fn(template){
	return function(data){
    	return template.replace(`{name}`,data.name)
	}
}
var t=fn('<div>hi, I am {name}</div>')
t({name:"weibo"}) //"<div>hi, I am weibo</div>"
t({name:"jack"})  //"<div>hi, I am jack</div>"
1
2
3
4
5
6
7
8

# 浅拷贝

  • Object.assign() 主要用于浅拷贝或是合并对象
  • JSON.parse()和JSON.stringify() 只能够解析json表示的数据结构,因此函数这种不能被json表示的类型将不能被正确处理。

# 数组去重复

Array.from(new Set([1,2,2]))
1

# 事件代理

ul>li*8>{A$}
1

var ul=document.querySelector('ul')
ul.onclick=(e)=>{
  if(e.target.tagName=='LI'){
    console.log(e.target.innerText)
  }
}
1
2
3
4
5
6
7

# 当前元素的index

var index = [].indexOf.call(e.target.parentNode.children, e.target);
1

# 将NodeList转数组

1. const nodelistToArray = Array.prototype.slice.call(nodelist);
2. const nodelistToArray = [...nodelist]
3. const nodelistToArray = Array.from(nodelist)
1
2
3

# 严格相等(NaN,+0,-0)

1. Object.is(NaN,NaN) //true
2. Object.is(+0,-0)	//false

1
2
3

# 生存min~max整数的随机数

Math.floor(Math.random()*(max-min+1)+min);
1

# 实时监控dom

const myObserver = new ResizeObserver(entries => {
    console.log(entries)
});
const someEl = this.$el.querySelector(".box");
myObserver.observe(someEl);
1
2
3
4
5

# 过滤不要的对象属性(如过滤xxx,yyy属性)

let {yyy,xxx,...obj} = {xxx: 'XXX', yyy: 'YYY', el3: '3',asd:"asd",obj:{a:"aa"}};
console.log(obj)
1
2
编辑 (opens new window)
#代码段
上次更新: 2022/05/24, 23:27:54
前端资源
书籍

← 前端资源 书籍→

最近更新
01
远程办公的个人思考
02-21
02
SEO
01-02
03
NFT的价值
12-27
更多文章>
Theme by Vdoing | Copyright © 2019-2025 夏天夏 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式