————— 第二天 ————— 题目如下: 有两个杯子,1号杯子里装着牛奶,2号杯子里装着等量的咖啡。 接下来,我们拿一个容积10毫升的小勺,从2号杯子里舀出10毫升咖啡,倒入1号杯。...于是1号杯变成了牛奶和咖啡的混合液: 然后,我们再从1号杯子里舀出10毫升的牛奶咖啡混合液,倒入2号杯: 此时,1号杯和2号杯都变成了既有牛奶又有咖啡。...———————————— (小灰把题目告诉给了大黄) 需要补充的是,在这道题目当中包含两个极端情况: 第一种情况,x为0,也就是从1号杯舀出的全是牛奶,那么1号杯的咖啡和2号杯的牛奶含量都是10毫升。...第二种情况,x为10,也就是刚给1号杯倒入咖啡,又全部舀回去。这种情况1号杯的咖啡和2号杯的牛奶含量都是0。 两个极端之间,是一般的情况,根据x的不同取值,10-x的结果也不同。...但无论怎样取值,1号杯的咖啡和2号杯的牛奶含量总是相等的。
js混淆、js加密,是一回事吗? 是的,js混淆、js加密指的是同一件事。 习惯上,国内称js加密,而国外叫做obfuscate,翻译为中文为混淆,其实是一样的。...都是指对js代码进行保护,比如把变量名变的无意义,把字符串加密、把执行流程打乱,等等。目的是让js代码失去可读性、变的难以理解。防止自己写的代码被他人使用或分析。...js混淆、js加密已经是个成熟的行业,有不少流行的工具,而且通常是saas模式的在线网站,比如js-obfuscator、jshaman、jsjiami.online,这些网站都是专业的js混淆加密工具...而在js编程中,还有另一种加密,是指加密算法,比如md5加密、base64加密,但一般直接叫作加密算法,而不叫js混淆或js加密。图片
在最开始学习 JavaScript 时,我一直被灌输 Object 中的 Key 是无序的,不可靠的,而与之相对的是 Map 实例会维护键值对的插入顺序。...「But,Object 的键值对真的是无序的吗?」实际上在 ES2015 以后,Object.keys 的规则变了: 在一些现代的浏览器中,keys 输出顺序是可以预测的!...Key 都为自然数: 注意这里的自然数是指正整数或 0,如果是其他类的 Number —— 浮点数或者负数 —— 都会走到下一组类型里,像NaN或者Infinity这种也自然归到下一个类型里,但是像科学记数法这个会稍微特殊一点...总结来说,就是当前的 key 如果是自然数就按照自然数的大小进行升序排序。...Recap 在 ES6 之前 Object 的键值对是无序的; 在 ES6 之后 Object 的键值对按照自然数、非自然数和 Symbol 进行排序,自然数是按照大小升序进行排序,其他两种都是按照插入的时间顺序进行排序
,不能生成 彩色图标。...通过图标平台网站下载 svg 图标,将图标放到项目中管理,通过 svgtofont.js 工具来生成它,这将是新的字体图标使用方式: ┌─...,不再维护字体文件 生成彩色图标文件 SVG Symbol 在项目中使用 svgtofont 读取一组 SVG图标并从SVG图标输出 TTF/EOT/WOFF/WOFF2/SVG 字体,字体生成器。...svgicons2svgfont.normalize Type: BooleanundefinedDefault value: false 通过将图标缩放到最高图标的高度来标准化图标。...警告: 下降是一个正值!
大部分站长安装的站点统计是第三方统计代码,js形式的,很少用以服务器日志为基础分析的统计。(当然能通过网站日志来分析网站的运营者比一般的站长水平相对要高一些,也更会折腾。...安装统计代码想必大家闭着眼睛都会,但如果网站是静态页面的话,那每个页面都要添加到,即使安装在统一调用的页脚,那生成页面也需要一定的时间。有没更便捷的办法呢?将统计代码写进常用的js文件中。 ...将统计代码写进js中,只要每个页面有调用这个js,那这些页面都会被记录。可有些统计都会在页面上留个小图标,对于有“强迫症”的人来说是致命的,直接在html中用display none来隐藏掉。...document.write ()类型的代码,可以用这个工具来快速转换:http://tool.chinaz.com/Tools/Html_Js.aspx 第二种方法是直接把type改为hidden...,type="hidden",测试可行,不用 怎么样,修改js文件后统计代码图标是不是被隐藏了呢?
在项目中本人使用的是 Fontawesome 图标库方案,使用它是因为提供的可用图标比较丰富,基本上不需要特意去找合适的图标,直接把它的图标库下载过来,免费的有800多个。...image.png 这么多图标难道要一个一个手写800多个 i 标签吗?三连拒绝!...name放到一个 solid.js 文件中,输出为数组,在组件中引入,然后就是循环数组 iconList,输出i标签,Fontawesome 的使用方式是:<i class="fas fas-<em>图标</em>name...,那么使用的时候就是: 接着在项目 components 根目录新建 index.<em>js</em>,这里<em>是</em>所有组件的集合 image.png 最后一步<em>是</em>在 main.<em>js</em> 中注册: import...Popover <em>是</em>需要鼠标点击其他地方才会隐藏的,选择一个<em>图标</em>后就关闭 Popover 呢,我的做法<em>是</em>:document.body.click()。
Q:条件格式中的图标集功能非常好,然而,在尝试使用上下箭头标识数据时,只能使用红色的向下箭头,我能使用绿色的向下箭头图标吗?如下图1所示。 ?...图1:当为负值时,使用右边的绿色箭头表示 A:Excel的条件格式图标集不能够自定义,因此,需要使用一点小技巧来实现。...单元格E2中是一个根据F2中的值返回相应字母的公式,单元格F2中计算费用变化率。 将单元格E2中的字体设置为“Wingding3”,这会使单元格中的p和q分别显示为向上和向下的箭头,如上图2所示。...当单元格中的值是p时,单元格字体颜色为红色。 ? 图3:设置条件格式规则 如果想看到变化的百分比,则保留单元格F2可见,否则可以隐藏该单元格。完整的效果如下图4所示。 ?
js引擎执行异步代码而不用等待,是因有为有 消息队列和事件循环。 消息队列:消息队列是一个先进先出的队列,它里面存放着各种消息。 事件循环:事件循环是指主线程重复从消息队列中取消息、执行的过程。...JS中分为两种任务类型:macrotask和microtask,在ECMAScript中,microtask称为jobs,macrotask可称为task 它们的定义?区别?...,不会执行其它 浏览器为了能够使得JS内部task与DOM任务能够有序的执行,会在一个task执行结束后,在下一个 task 执行开始前,对页面进行重新渲染 (task->渲染->task->…) microtask...另外,setImmediate则是规定:在下一次Event Loop(宏任务)时触发(所以它是属于优先级较高的宏任务),(Node.js文档中称,setImmediate指定的回调函数,总是排在setTimeout...最后 看到这里,应该对JS的运行机制有一定的理解了吧。
比特币网络需要10分钟才能完成一次确认,如果在商店里用比特币买一杯咖啡,可能咖啡已经喝完了,BTC还未到账,这种用户体验肯定无法投入实际应用。...为了解决BTC支付的应用场景,闪电网络是一种解决方案,想了解闪电网络的基本概念,可以阅读我以前写的一篇文章: 学习闪电网络,熊市中充值信仰 当前闪电网络的技术实现有好几种,功能比较齐全的有LND和eclair...在同步的时候,不用傻等着,还可做一件事,给这个Zap钱包充值,可以看到这个比特币地址以2开头,说明是一个testnet地址,testnet网里的BTC不值一分钱。...下面是关键的一步,可能很多人被卡在这里,打开闪电支付的通道,就是锁定一点点BTC在某个channel中,如果在右侧“我的网络”中看到BTC余额,说明闪电网络的通道已经创建成功。...打开acinq创建的测试网站(看名字,我差点以为是星巴克): https://starblocks.acinq.co/ ? 随便点一款咖啡放入购物车,checkout,生成一个支付二维码。 ?
如何给自己的网站添加方便快捷的“返回顶部”小图标按钮呢?...如下图: JS源代码: /** * JavaScript脚本实现回到页面顶部示例 * @param acceleration 速度 * @param stime 时间间隔 (毫秒) **/ function...// 滚动条到页面顶部的垂直距离 var y = Math.max(y1, Math.max(y2, y3)); // 滚动距离 = 目前距离 / 速度, 因为距离原来越小, 速度是大于
前言 一提到 Node.js ,我想大家都会想到它的一个特点,单线程。但是 Node.js 在运行的时候依赖 V8 这个宿主环境,难道在宿主环境中也是单线程吗?请看正文解释你这个疑惑。...是单线程,所以 Node.js 启动后线程数应该为 1,但是事实并非如此,呜呜呜。...解释一下这个原因: Node.js 中最核心的是 V8 引擎,在 Node.js 启动后,会创建 V8 的实例,这个实例是多线程的。 主线程:编译、执行代码。...所以大家常说的 Node.js 是单线程的指的是 JavaScript 的执行是单线程的(开发者编写的代码运行在单线程环境中),但 Javascript 的宿主环境,无论是 Node 还是浏览器都是多线程的因为...Libuv 本身是由 C++ 语言实现的,Node.js 中的非阻塞 IO 以及事件循环的底层机制都是由 libuv 实现的。 libuv架构图 ?
大家好,我是波导终结者。 WIN10到现在也有些年头了,虽然好的不学学坏的,天天搞强制升级有些烦人,有时候新版本的BUG也比较致命,但是整体的性能,功能和稳定性上还是有飞跃性的提升。...而WIN10的截图工具提升了窗口、全屏、矩形等截图选项,最关键的是提供了延迟功能,这样一来就几乎没有截不了的图了。...对于之前版本的虚拟桌面,曾有人吐槽过一个挺蠢的问题:其他桌面虽然不显示窗口,但是任务栏却照常显示图标哈哈。不过现在的版本已经不会了,而且集成了时间线功能(如果系统里有开的话)。...缺点是,录制的码率并没有办法自定义,而是提供30和60两种帧率,以及标准和高两种视频质量。如果对自定义功能细节需求非常高的朋友,建议去看看我之前写的OBS录屏。
——爱默生 前言 一提到 Node.js ,我想大家都会想到它的一个特点,单线程。但是 Node.js 在运行的时候依赖 V8 这个宿主环境,难道在宿主环境中也是单线程吗?...是单线程,所以 Node.js 启动后线程数应该为 1,但是事实并非如此,呜呜呜。...解释一下这个原因: Node.js 中最核心的是 V8 引擎,在 Node.js 启动后,会创建 V8 的实例,这个实例是多线程的。 主线程:编译、执行代码。...所以大家常说的 Node.js 是单线程的指的是 JavaScript 的执行是单线程的(开发者编写的代码运行在单线程环境中),但 Javascript 的宿主环境,无论是 Node 还是浏览器都是多线程的因为...Libuv 本身是由 C++ 语言实现的,Node.js 中的非阻塞 IO 以及事件循环的底层机制都是由 libuv 实现的。
好吧,我有点糊涂了,让我梳理一下,有一个东西像虚拟化,称为容器,那么我能在Heroku上用它吗? -是l, Heroku已经支持docker, 但是我告诉你: Heroku已经死了....有了Docker这个集装箱,我还需要一个船队吗? -Yeah, 为了可靠性. 但是Kubernetes会替你管理. 你知道谷歌就是使用Kubernetes,它运行在etcd上面 什么是etcd?...-是分布式协议RAFT的实现. 什么是Raft? -它类似Paxos. 上帝, 有必要给我下这么深的套路吗?像兔子洞一样深?我只是要启动一个应用,好吧,深呼吸,告诉我什么是Paxos?...Aphyr是谁? -Aphyr是那个写‘Call Me Maybe.’家伙,分布式系统和BDSM大牛,你不认识吗? 什么? 你说BDSM? -Yeah, BDSM. 在San Francisco....就这样吗? -Yes! 你不感到辉煌吗? 我还是要回到 Heroku. 2333333~
众所周知,联盟成员导航是中国博客联盟的特色之一。而网站图标则是导航的装饰之一,起到锦上添花的作用,让页面更精美耐看。 但是随着成员数量的增长,图标便成了页面的拖沓大户,严重拖慢了整体速度。...图标,如果要让网站看起来更专业、更美、更有个性,favicon.ico 是必不可少的。...所以,对于网站图标的大小,张戈给出的建议是 16*16 或者 32*32,再大是完全没有必要的!效果不见涨,还可能影响网站速度。...五、关于导航 最初,联盟导航用的是谷歌的网站图标 API 接口,在谷歌大姨妈之后,就不得不放弃了这个 API,另寻他法。...温馨提示: 如果发现贵站显示的是默认图标,请检查大小是否超标,请及时改善; 如果图标大小合格,请检查图标文件是否放在网站根目录,或者是否在 header 加上了 META 声明; 如果以上确认无误还是显示默认图标
逆向JS的过程可以相当复杂,因为JavaScript可以被多种方式混淆和保护。...以下是一些逆向JS的基本步骤和技巧: 代码美化(Beautify): 使用工具如JSBeautify或Prettier将混淆的代码转换为更易读的格式。...理解依赖和库: 如果代码依赖于外部库或框架,确保你理解这些依赖项是如何工作的,以及它们如何与主代码交互。 编写测试: 编写测试用例来验证你的理解。...遵守法律和道德准则: 在进行逆向JS时,务必遵守相关的法律和道德准则。不要尝试破解或破解他人的软件,除非你有明确的法律授权或正在进行安全研究。...请注意,逆向JS可能是一个复杂且耗时的过程,需要一定的编程经验和对JavaScript的深入理解。如果你是初学者,建议从简单的代码和示例开始练习,并逐渐增加难度。
什么是 Promise? Promise 是一种异步编程解决方案,避免回调地狱,可以把异步代码写得像同步一样。...Promise 是一个对象,用于表示一个异步操作的最终状态(完成或失败),以及该异步操作的结果值。 Promise 是一个代理(代理一个值),被代理的值在Promise对象创建时可能是未知的。...RookiePromise 编码小结 RookiePromise的结构是按照Promise/A+规范中对then、resolve接口的描述组织的;优点是编码过程直观,缺点是innerResolve函数篇幅太长...* These are written as Node.js modules with a few well-known exports: * * resolved(value): creates...执行测试 npx promises-aplus-testsRookiePromiseTestAdapter.js > log.txt ?
大家好,我是小丞同学,一名准大二的前端爱好者 这篇文章将带你了解 V8 是如何执行 JS 代码的 愿你忠于自己,热爱生活 引言 源代码首先通过解析器解析成 AST ,然后 AST...再通过解释器解释成最终的字节码 下面我们来聊聊解析器解析成 AST 的这个过程 首先我们先了解一下什么是 AST 1....生成字节码 在有了 AST 和作用域之后,就可以生成字节码了,字节码是介于AST 和机器码之间的一种代码,可以不需要将其转换成机器码后再执行,字节码可以理解为是机器码的一种抽象。...V8 执行 JS 代码的具体流程 在网上看到的一张图(侵删),很形象,excalidraw 上不去,不然我一定自己做了 参考资料 《V8是如何执行一段JS代码的?》...《【干货】8分钟带你了解V8引擎是如何运行JS!》 非常感谢您的阅读,欢迎提出你的意见,有什么问题欢迎指出,谢谢!
大家好,我是小丞同学,一名准大二的前端爱好者 这篇文章将带你了解 V8 是如何执行 JS 代码的 愿你忠于自己,热爱生活 引言 源代码首先通过解析器解析成 AST ,然后 AST 再通过解释器解释成最终的字节码...下面我们来聊聊解析器解析成 AST 的这个过程 首先我们先了解一下什么是 AST 1....生成 AST AST 中文名叫抽象语法树,它是源代码语法结构的一种抽象表示 它以树状的形式表现编程语言的语法结构,书上的每个节点都表示源代码中的一种结构 下面我们来一个例子看看 AST 是如何产生的 let...生成字节码 在有了 AST 和作用域之后,就可以生成字节码了,字节码是介于AST 和机器码之间的一种代码,可以不需要将其转换成机器码后再执行,字节码可以理解为是机器码的一种抽象。...V8 执行 JS 代码的具体流程 在网上看到的一张图(侵删),很形象,excalidraw 上不去,不然我一定自己做了
第一反应就是JS引擎将代码生成语法树的时候,可能解析不正确。于是,我在第一行末尾加分号测试。...这是一个辅助性的功能,然后有一些情况要注意: 如果你这样写代码: return a + b 那么自动分号插入后会这样: return; a + b; 更可能导致隐含BUG的状况是: a = b + c...(d + e).print() 他不会自动插入分号,因为第二行一括号开始,会被误认为是函数。...我最终的解法是先声明一个变量来指向这个数组,这样就可以避免以[开头,又不使用分号: let indexArray = [1, 2, 3] indexArray.map(i=>console.log(i)...版权声明 转载时请注明作者 Fundebug以及本文地址: https://blog.fundebug.com/2018/09/18/js-semicolon-bug/
领取专属 10元无门槛券
手把手带您无忧上云