
js
userkang
这个作者很懒,什么都没留下…
展开
-
vue2 和 vue3 中判断 slots 的兼容写法
除此之外,也可以借助 vue-demi 这个库,来兼容 vue2 和 vue3 的写法。原创 2024-08-30 19:24:15 · 368 阅读 · 0 评论 -
一行代码实现时间格式化—toLocaleString
平时经常会有时间格式化的需求,比如输出 2019-09-27 16:23:21 这样的时间格式。下面我们分别通过传统的方式和通过 toLocaleString 接口来实现。传统写法我们先用传统的方式来实现,输出格式例如:2019-09-27 16:23:21function currentTime() { var now = new Date(); var zeroFill = function(value) { if (value < 10) {原创 2021-01-29 14:52:01 · 8898 阅读 · 0 评论 -
JS 中 replace 和 replaceAll 的区别?
方法解释两种方法都返回一个新字符串,新字符串所有满足 pattern 的部分都已被 replacement 替换。pattern可以是一个字符串或一个 RegExp, replacement 可以是一个字符串或一个在每次匹配被调用的函数。原始字符串保持不变。1、当 pattern 都是正则表达式时,没有区别var value = '123-234-234-234'var pattern = /-/gconsole.log(value.replace(pattern, '/')) cons原创 2020-11-09 16:31:47 · 9581 阅读 · 3 评论 -
JS 实现一键复制功能
实现方式 function copyTable() { const table = document.getElementById('table') const range = document.createRange() // 设定range包含的节点对象 range.selectNode(table) // 窗口的selection对象,表示用户选择...转载 2020-04-22 18:06:27 · 1355 阅读 · 0 评论 -
JS设计模式——装饰器模式
什么是装饰者模式?装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。实例拿最近比较火的吃鸡游戏(绝地求生:大逃杀PUBG)来说,游戏中每个玩家降落到岛上,刚开始是一无所有的,需要通过捡拾或掠夺装备来武装自己,然后经过互相残酷的拼杀,获得游戏的胜利。游戏过程中,我们可以把每一个玩...原创 2020-02-27 14:04:23 · 1810 阅读 · 0 评论 -
JS设计模式——Mixin模式
什么是 Mixin 模式?Mixin 模式属于结构型设计模式。正如字面意思,就是为了在一个类中能够混入另一个类的某些方法,以较低的复杂性达到复用的目的。甚至可以用来间接实现多继承。实例在 JS 中,我们利用对象原型来实现 Mixin。下面是一个全局的混入方法:注意:由于 class 中的方法是不可枚举的,但通过 Object.getOwnPropertyNames 可以返回一个数组包含...原创 2020-02-20 02:15:18 · 960 阅读 · 0 评论 -
JS设计模式——工厂模式
什么是工厂模式?工厂模式(Factory Pattern)是创建型设计模式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来创建对象。简单工厂模式假如有一个屏幕生产工厂,生产各类屏幕。每类屏幕都是一个类,如下,我们通过屏幕工厂类提供的 createScreen 统一接口来创建屏幕对象。这便是一个简单工厂模式的应用。// 屏幕工厂类class Scre...原创 2020-02-13 01:33:07 · 1747 阅读 · 0 评论 -
JS设计模式——外观模式
什么是外观模式外观(Facade)模式是属于结构型模式,通过提供外观的包装隐藏系统的复杂性。火箭发射系统很复杂,但真正使用它的人,可能就需要一个按钮,让它发射就好。那么发射按钮就隐藏了启动程序及发射系统的复杂性。我们用的各种第三方库,大多也是通过给用户提供 API 来简化和隐藏内部的复杂实现。实例现在好多商店都在用微信或者支付宝扫码收款,如果放两个二维码经常会有顾客扫错,那么就可以应用外...原创 2020-01-13 01:00:48 · 270 阅读 · 0 评论 -
JS设计模式——命令模式
什么是命令模式?命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。实例应用我们要做一个简单的编辑器,我们来看看没有使用命令模式的代码。(忽略定义方法意义所在)class Editor { constructor() {...原创 2020-01-05 14:17:27 · 362 阅读 · 0 评论 -
JS设计模式——原型模式
什么是原型模式?原型模式属于创建型模式。是基于现有对象模版,通过克隆的方式创建新的对象。解决什么问题?比如定义一个 person1 的对象const person1 = { name: 'zkk', age: 18, sex: 'male', hobby: 'daydream', sayName: function() { console.log(this.name) }...原创 2019-12-30 16:32:33 · 252 阅读 · 0 评论 -
V8引擎不同版本对 await 处理方式差异
最近看了下 JS 异步编程的发展史。这是其中一篇文章:JavaScript 异步编程。在文章中发现有个例子的异步执行顺序和我自己执行的不一样。测试后发现:在 node 8.0.0 版本中 promise2 在 async1 end 后打印在 node 10.10.0 版本中 promise2 在 async1 end 前打印在 node 12.10.0 版本中 promise2 ...原创 2019-09-27 11:15:42 · 476 阅读 · 0 评论 -
requestAnimationFrame快速上手
polyfill for browsers without native supportvar lastTime = 0;var vendors = ['webkit', 'moz', 'ms', 'o'];for(var x = 0; x &lt; vendors.length &amp;&amp; !window.requestAnimationFrame; ++x) { ...原创 2018-05-28 19:35:19 · 608 阅读 · 0 评论 -
JS中some(),every(),forEach(),map(),filter()区别
JS在1.6中为Array新增了几个方法map(),filter(),some(),every(),forEach(),也就是一共有这么多方法了。刚开始接触这些倒也记得不是很清楚,在此纪录一下以加深影响。我主要从两个角度来理解和记忆吧,一个是API的使用,一个是内部实现。函数简述map():返回一个新的Array,每个元素为调用func的结果filter():返回一个符合func条...转载 2018-06-13 01:43:06 · 167 阅读 · 0 评论 -
javascript 进制转换
十进制转其他进制toString 方法可以传入一个2到36之间的整数,表示需要把数字转化成几进制。如下:// 10进制转2进制(255).toString(2) // &amp;amp;quot;11111111&amp;amp;quot;// 10进制转8进制(255).toString(8) // &amp;amp;quot;377&amp;amp;quot;// 10进制转16进制(255).toString(16) //原创 2018-11-23 14:04:44 · 268 阅读 · 0 评论 -
JavaScript 浮点数陷阱
最近看了一篇关于 JavaScript 浮点数陷阱的文章,写的挺不错,怕以后找不到了,我在这里自己再总结一份。问题在 JS 的运算中经常会遇到这样的问题: 0.1 + 0.2 = 0.30000000000000004 1 - 0.9 = 0.09999999999999998这些都是由与浮点数误差导致的问题。具体的分析,请往下看。浮点数存储JavaScript 中所有数字...原创 2018-12-04 15:46:17 · 388 阅读 · 0 评论 -
[译] JavaScript中{}+{}等于多少?
原文链接:http://www.2ality.com/2012/01/object-plus-object.html最近,Gary Bernhardt在一个简短的演讲视频“Wat”中指出了一个有趣的JavaScript怪癖:在把对象和数组混合相加时,会得到一些你意想不到的结果。本篇文章会依次讲解这些计算结果是如何得出的。> [] + []""> [] + {}"[objec...翻译 2019-01-17 14:26:45 · 239 阅读 · 0 评论 -
面试中你需要知道的 JavaScript 概念
1、一切都是对象一切(引用类型)都是对象,对象是属性的集合。2、函数和对象的关系对象是通过函数创建的(字面量的创建方式只是一种语法糖),函数也是一种对象。3、prototype 原型函数是一种对象,对象是属性的集合,prototype 是其中一个默认的属性。每个函数都有这个属性。prototype 的属性值也是一个对象。4、_proto_ (隐式原型)每个函数都有一个 protot...原创 2019-01-24 16:27:00 · 236 阅读 · 0 评论 -
JavaScript 是单线程非阻塞的
总所周知,JavaScript 是以单线程的方式运行的。说到线程就自然联想到进程。那它们有什么联系呢?进程和线程都是操作系统的概念。进程是应用程序的执行实例,每一个进程都是由私有的虚拟地址空间、代码、数据和其它系统资源所组成;进程在运行过程中能够申请创建和使用系统资源(如独立的内存区域等),这些资源也会随着进程的终止而被销毁。而线程则是进程内的一个独立执行单元,在不同的线程之间是可以共享进程资...原创 2019-02-21 18:41:04 · 1393 阅读 · 0 评论 -
Chrome 自带的隐藏福利
这是一个 Chrome 自带的一个隐藏福利,如果受够了 console 里面敲代码,费劲的换行和无法断点调试的苦,看看这个。这个东西叫做 snippets (代码片段),可能大部分人都写过属于自己的代码片段。我们看在 Chrome 中怎么用。1、打开 Sources 选项卡,切换到 Snippets 标签,点击图中的红色标记处。2、点击 New snippet 可以新建一个代码片段,编辑代...原创 2019-08-16 14:38:37 · 609 阅读 · 0 评论 -
常用js交互技巧总结
1、点击弹窗区域之外,隐藏弹窗$mask.on('click', function(e){ if (!$(e.target).closest([弹框区域]).size()) { _hide(); }})原创 2017-01-11 11:14:59 · 431 阅读 · 0 评论