首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

不知道可以JS 做的 6 件事

作者:Daniel 译者:前端小智 来源:js-craft JS 是一种灵活的语言,这种特性让我们经常觉得它是一门最简单的语言,也是最难掌握的语言。...我使用 JavaScript 已有很多年了,但我仍然偶然发现一些我不知道的隐藏语法或技巧。 我们来一直看看,我发现了哪些。 1....const book = { author: '前端小智', title: '我不知道可以JS 做的 6 件事' } with(book) { console.log(author...); // 前端小智 console.log(title); // 我不知道可以JS 做的 6 件事 } 使用 with语句的 JavaScript 代码很难优化,因此它的运算速度比不使用...5. arguments.callee.caller 我们可以使用arguments.callee.caller来查看哪个函数调用了当前函数。 arguments JS 普通函数的默认值。

1.1K10

5件你可能不知道可以使用 CSS-in-JS 来做的事情

除了传统的 CSS,你还可以使用 内联样式 和 CSS-in-JS 作为 React 应用程序的样式选项。...在这篇文章中,我将讨论在 CSS-in-JS 中你可以用上面的库来做的五件事,而我打赌这是你不知道的。...3.使用关键帧链接多个动画 与内联样式不同,CSS-in-JS 允许你使用关键帧定义动画。...在 这里,您可以找到如何使用它的示例。 结论 CSS-in-JS 是一种使用 JavaScript为应用程序设置样式的技术,你可以使用实现它的库来做有趣的事情。...在这篇文章中,我向你展示了5件你可能不知道可以使用这些库来做的事情。当然,并不是所有的库都是对等的,有些情况只适用于特定的库。 在这个 页面 中,您可以测试和比较许多 CSS-in-JS 的库。

1.4K30
您找到你想要的搜索结果了吗?
是的
没有找到

5件您可能不知道可以使用 CSS-in-JS 来做的事情

know about 除了传统的 CSS,您还可以使用 内联样式 和 CSS-in-JS 作为 React 应用程序的样式选项。...在这篇文章中,我将讨论在 CSS-in-JS 中你可以用上面的库来做的五件事,而我打赌这是你不知道的。...animation-name: ${heightAnimation}; animation-duration: 1.5s; animation-timing-function: ease; `; 但是很多人不知道的是...在 这里,您可以找到如何使用它的示例。 结论 CSS-in-JS 是一种使用 JavaScript为应用程序设置样式的技术,您可以使用实现它的库来做有趣的事情。...在这篇文章中,我向您展示了5件您可能不知道可以使用这些库来做的事情。当然,并不是所有的库都是对等的,有些情况只适用于特定的库。 在这个 页面 中,您可以测试和比较许多 CSS-in-JS 的库。

96910

不知道JS 沙箱隔离

另外一种值得借鉴的思路是阿里云开发平台的 Browser VM,其核心入口逻辑在 Context.js 文件中。...其在 common/channel.js 中统一封装了子线程和主线程互相通信的接口和序列化通信数据的接口,然后我们可以看到其在 Worker 下实现 DOM 逻辑处理的总入口文件在 worker 目录下...,从该入口文件顺藤摸瓜,可以看到其实现了计算 DOM 后通过 postMessage 通知主线程进行渲染的入口文件 WorkerBridge.js 以及其他基于 React 库实现的 DOM 构造、Diff...操作、生命周期 Mock 接口等相关代码,而接受渲染事件通信的入口文件在 page 目录下,该入口文件接受 node 操作事件后再结合 WorkerDomNodeImpl.js 中的接口代码实现了 DOM...粗略翻看下 worker-dom 源码,我们在 src 根目录下可以看到 main-thread 和 worker-thread 两个目录,分别打开看了下后,可以发现其实现拆分 DOM 相关逻辑和 DOM

1.9K40

不知道 CSS 可以做的 4 件事

animation-timing-function使用了三次贝塞尔(Cubic Bezier)函数生成速度曲线,可以让我们的动画产生平滑的过渡。...run { to{ background-position: -900% 0 } } steps函数接受两个参数,第一个参数会根据你指定的步进数量,把整个动画切分为多帧,第二个可选的参数可以是...还可以使用 step-start 和 step-end 这样的简写属性,它们分别等同于 steps(1, start) 和 steps(1, end) ❝很多时候我们的gif动画都可以直接用css效果实现...可以完全阻止使用连字符,也可以控制浏览器什么时候使用,或者让浏览器决定什么时候使用。...开发中我们一定遇到过 Web 应用程序中页脚的问题,在这种情况下,具有任何块级样式的页脚在处理较长的内容时,可以正常工作,但在页面较短时时就不准确了。

1.2K10

不知道 CSS 可以做的 4 件事

animation-timing-function使用了三次贝塞尔(Cubic Bezier)函数生成速度曲线,可以让我们的动画产生平滑的过渡。...run { to{ background-position: -900% 0 } } steps函数接受两个参数,第一个参数会根据你指定的步进数量,把整个动画切分为多帧,第二个可选的参数可以是...还可以使用 step-start 和 step-end 这样的简写属性,它们分别等同于 steps(1, start) 和 steps(1, end) ❝很多时候我们的gif动画都可以直接用css效果实现...可以完全阻止使用连字符,也可以控制浏览器什么时候使用,或者让浏览器决定什么时候使用。...开发中我们一定遇到过 Web 应用程序中页脚的问题,在这种情况下,具有任何块级样式的页脚在处理较长的内容时,可以正常工作,但在页面较短时时就不准确了。

1.3K30

JS的分号可以省掉吗?

第一反应就是JS引擎将代码生成语法树的时候,可能解析不正确。于是,我在第一行末尾加分号测试。...如果你不想用分号,又怕出问题,v2ex上有位童鞋给出了一个速记方案: 如果你写 JS 代码不喜欢带分号,而又搞不清什么时候必须加分号,可以这么做:在以 "("、"[" 、"/"、"+"、"-" 开头的语句前面都加上一个分号...我最终的解法是先声明一个变量来指向这个数组,这样就可以避免以[开头,又不使用分号: let indexArray = [1, 2, 3] indexArray.map(i=>console.log(i)...) 关于Fundebug Fundebug专注于JavaScript、微信小程序、微信小游戏、支付宝小程序、React Native、Node.js和Java实时BUG监控。...版权声明 转载时请注明作者 Fundebug以及本文地址: https://blog.fundebug.com/2018/09/18/js-semicolon-bug/

9K60

JS】446- 你不知道的 map

但是这个map背后的东西可以让你看到另外一个世界,我相信,如果你不想了解Ramda,也能从这篇文章中有所收获。 下面我们进入到例子。 简单的使用 像下面这样使用这个函数。...当然可以,有很多东西从某种维度上讲都是同一类东西,关键R.map的维度是什么呢? 先别讲什么乱七八糟的,接下来咱们来看一看官方文档上都有哪些描述....其实你可以这样理解:transformer是一个函数的载体,transformer['@@transducer/step']就是这个函数。...从上面R.map的实现中可以看到,传入_dispatchable的methodsName中,第一个方法名是fantasyland/map。...函子也可以解释为小范畴范畴内的态射。--维基百科 范畴和范畴也会有映射关系,如果把范畴视作一个对象时,函子就是范畴之间的态射。然后组成了一个范畴的范畴。

1.3K20

Js可以写桌面应用端?

1、下载nw.js https://nwjs.io/ 最好下载sdk版本。 2、解压打开安装包 下载完之后,解压打开 图中的「app文件夹」是我自己创建的,你也需要自己创建一个,里面放你项目文件。.../icon.png", "transparent":false } } 下面是各个参数的意思: name:这个app的名称,可以随便取一个~ main:...resizable:是否可以调整窗口大小。 icon:窗口的图标,也是在快速启动栏显示的图标。 transparent:窗口背景是否透明。...下载链接打开它,选中「app.exe」然后将你刚才下好的nw.js里原始文件(除去你自己生成和创建的文件或文件夹)。...拖到下面的大方框中,点击Process 4、完成 进度条完成后,根目录下会有个app_boxed.exe的文件,这个文件可以在任何地方打开,是不是很happy!!!

12.9K10

不知道JS循环中断

你知道 JS 中断循环有哪些吗?除了 for 循环的 break,还有哪些可以中断循环?接下来笔者以实际业务例子,分享几种能中断循环的方案,希望你在实际业务中能用得上。...结果喜大普奔,依然可以,测试结果如下 这已经达到我们想要的效果了。...于是测试结果依旧ok 为什么数组可以用for..of循环,你可以在控制台打印注意到 原来默认申明的[]原型链上有一个这样的iterator的迭代器,所以你可以利用iterator的特性,用for.....总结 forEach的中断循环可以抛异常来达到目的,但是不适合此业务场景 for 循环通用大法,break可以终止循环 while循环,break也可以终止循环 iterable特征的可迭代器,for....源码地址:https://github.com/maicFir/lessonNote-js/tree/master/lessonNote-js/js/01

2.1K10

Redis可以实现限流你不会不知道吧?

Redis不仅仅是可以做限流,还可以做数据统计,附近的人等功能,这些可能会后续写到。...所以依靠setnx可以很轻松的做到这方面的功能。 比如我们需要在10秒内限定20个请求,那么我们在setnx的时候可以设置过期时间10,当请求的setnx数量达到20时候即达到了限流效果。...而我们如果用Redis的list数据结构可以轻而易举的实现该功能 我们可以将请求打造成一个zset数组,当每一次请求进来的时候,value保持唯一,可以用UUID生成,而score可以用当前时间戳表示,...因为score我们可以用来计算当前时间戳之内有多少的请求数量。...有兴趣的可以后续了解下他的GeoHash算法;BitMap,HLL以及布隆过滤器数据(Redis4.0之后加入,可以用Docker直接安装redislabs/rebloom)结构。

24420

《你不知道的JavaScript》:理解js原生函数

本篇来看下js中的原生函数,也叫内置函数。...所有typeof返回值为object的对象(比如数组、函数)都包含一个内部属性[[class]](可以将其看作一个内部的分类,而非传统的面向对象意义上的类)。...没什么感受,就不举例了,有兴趣的可以自行去看。可能等我以后确实碰到用了,才会觉得这玩意很重要?到时再看吧。...最后总结下,js为所有基本类型值提供了封装对象,它们也被称为原生函数(String、Number、Boolean等)。注意这些对象的首字母是大写的,与那些全小写的作用类型值名称以示区分。...当要访问基本类型值的一些方法或属性时,如length或者String.prototype,js引擎会自动对该值进行封装(即用相应类型的封装对象来包装它)来实现对这些属性和方法的访问。

73020

《你不知道的JavaScript》:js面向委托设计

回顾下js原型继承,js版的继承与传统面向对象的继承的区别主要是不复制对象,而是通过对象的内置属性[[Propertype]]来关联需要“继承”的对象,这样当引擎在对象中查找不到预期的属性或方法时,应付通过...所以我们可以这样理解js的原型继承机制,其本质就是对象间的关联关系。 好,弄明白了这个对象间的关联关系,才能理解js中的对象委托。...所以在写js时,心里要有个思想转换,要从类思维模式转为委托思维模式。...通过[[Propertype]]将oneStudent对象委托到Students对象,实现js版的继承。...看了委托的机制,有人可能想既然可以单方委托,那是不是可以互相委托?可以可以,但强烈不建议,那样调试起来就是欲仙欲死了。

99530

不知道的Node.js性能优化

------ 斯塔克·成龙·王 ---- 1、使用最新版本的 Node.js 仅仅是简单的升级 Node.js 版本就可以轻松地获得性能提升,因为几乎任何新版本的 Node.js 都会比老版本性能更好...同时也有专门的 benchmarking 团队来监控性能变化,你可以在这里看到 Node.js 的每个版本的性能变化: https://benchmarking.nodejs.org/ 所以,你可以完全对新版本...而 Node.js v10.0 加入了一个新的特性:stream.pipeline,可以替代 pump 帮助我们更好的管理 stream。...比如,我在今年九月份的时候把 Node.js 的 net.isIPv6() 从 C++ 迁移到了 JS 的实现,让大多数的测试用例都获得了 10%- 250% 不等的性能提升(具体PR可以看这里)。...node-clinic 是 NearForm 开源的一款 Node.js 性能诊断工具,可以非常快速地定位性能问题。

3.3K70
领券