JavaScript 是一个非常有趣的语言,但同时也充满了各种奇怪的行为。这些奇怪的行为有时会搞砸我们的日常工作,有时则会让我们忍俊不禁。 WTFJS 这个开源项目的初衷只是因为好玩。...收集一些疯狂的例子,并尽可能解释它们的原理,学习以前不了解的知识。 如果你是初学者,您可以根据此笔记深入了解 JavaScript。...如果你是专业开发人员,你将从这些例子中看到人见人爱的 JavaScript 也充满了非预期的边界行为。 总之,古人云:三人行,必有我师焉。我相信这些例子总能让你学习到新的知识。...— StackOverflow 上的“为什么在 JavaScript 中 0 小于 Number.MIN_VALUE?”...,这个项目收集一些JavaScript的例子,并尽可能解释它们的原理,值得看看学习一下。
直接在浏览器中编辑网页内容 javascript:document.body.contentEditable='true';void(0); 访问任意网站,在地址栏输入以上代码,会发生当前网页已经变成编模式了...将上述代码中的true改成false重新执行一遍即可恢复。 2....舞动的图片 javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200;...他的作用就是让网页上的图片飞舞起来。 ? 3....in forms on this page:\n\n"+s);else alert("There are no passwords in forms on this page.");})(); 访问一个带密码框的页面
关于多目标任务有趣的融合方式 简介 如何通过融合解决多标签分类(MLC)问题.这里给了两个的方案: SST 与大多数机器学习模型一样,这里的目标是构造一个将输入映射到输出的函数,在这种情况下,输出将是一组向量...此外,还引入了stack的方式(SST)提高效果。SST有两个预测阶段。在第一阶段,用m个模型预测m个目标。在后一阶段,通过变换训练集D,为每个目标学习一组m'元模型。...在变换后的训练集中,它使用输出空间的估计值。 ERC 这里需要注意的是,训练的时候我们依赖的是真实标签Y1,...,Ym-1,因为我们已经有了真实值,但对于预测,ERC必须依赖于估计值。...但作为ML中的一个假设,输入和输出变量应该是独立的。为了解决这个问题,在训练中拆除了一部分样本用于训练,并对估计值进行了k-折叠交叉验证,并将其用于训练部分,代码见参考资料。
干货 作者:炼丹小生来自:炼丹笔记 如何通过融合解决多标签分类(MLC)问题.这里给了两个的方案: SST 与大多数机器学习模型一样,这里的目标是构造一个将输入映射到输出的函数,在这种情况下,输出将是一组向量...此外,还引入了stack的方式(SST)提高效果。SST有两个预测阶段。在第一阶段,用m个模型预测m个目标。在后一阶段,通过变换训练集D,为每个目标学习一组m'元模型。...在变换后的训练集中,它使用输出空间的估计值。 ERC 这里需要注意的是,训练的时候我们依赖的是真实标签Y1,...,Ym-1,因为我们已经有了真实值,但对于预测,ERC必须依赖于估计值。...但作为ML中的一个假设,输入和输出变量应该是独立的。为了解决这个问题,在训练中拆除了一部分样本用于训练,并对估计值进行了k-折叠交叉验证,并将其用于训练部分,代码见参考资料。
如何通过融合解决多标签分类(MLC)问题.这里给了两个的方案: SST 与大多数机器学习模型一样,这里的目标是构造一个将输入映射到输出的函数,在这种情况下,输出将是一组向量.单一目标(ST)考虑m个单一模型来预测多标签...此外,还引入了stack的方式(SST)提高效果。SST有两个预测阶段。在第一阶段,用m个模型预测m个目标。在后一阶段,通过变换训练集D,为每个目标学习一组m'元模型。...在变换后的训练集中,它使用输出空间的估计值。 ERC 这里需要注意的是,训练的时候我们依赖的是真实标签Y1,...,Ym-1,因为我们已经有了真实值,但对于预测,ERC必须依赖于估计值。...但作为ML中的一个假设,输入和输出变量应该是独立的。为了解决这个问题,在训练中拆除了一部分样本用于训练,并对估计值进行了k-折叠交叉验证,并将其用于训练部分,代码见参考资料。
分享5个有趣的 JavaScript 代码 作者:matrix 被围观: 1,377 次 发布时间:2011-08-13 分类:Wordpress 兼容并蓄 | 无评论 » 这是一个创建于...4037 天前的主题,其中的信息可能已经有所发展或是发生改变。...很多人认为编程语言只是用于工作,没有什么乐趣,其实,只要我们发挥奇思妙想,再死板的东西也有有趣的一面。这篇文章告诉大家:使用JavaScript,可以做很多很多有趣的事情。...让图片飞起来 只要把下面的代码贴到浏览器的地址栏里然后按Enter键,当前网页的所有图片都将动起来。...让网页可编辑 此JavaScript代码,可以让你实时修改任何的网页,在Firefox中,你甚至可以把修改的网页保存到起来,对于网页设计者来说,这个功能可以辅助完善页面效果。
如果你查看我的常规 JavaScript 代码,会看到到处都有解构。 读取对象属性和访问数组项是常见的操作。结构使这些操作变得更加轻松和简洁。...在本文中,除了基本用法之外,我还将会介绍在 JavaScript 中 5 种有趣的解构用法。 1. 交换变量 通常交换两个变量的方法需要一个附加的临时变量。...在右侧,创建一个数组 [b,a],即 [2,1]。数组的第一项 2 分配给 a,第二项 1 分配给 b。 尽管仍会创建临时数组,但使用解构分配交换变量更为简洁。 这不是极限。...:这意味着第一个元素将被忽略。...除了基本用法外,数组解构还可以方便地交换变量、访问数组项、执行一些不可变的操作。 JavaScript 提供了更大的可能性,因为你可以用迭代器自定义解构逻辑。
最近在协助团队完成ES数据的切换(业务数据迁移),过程中遇到一个比较好玩的BUG ,和大家分享并作为经验记录。...在最后的数据验证环节,发现有一个ID对应不上了,如下图所示,通过对比工具,发现一个长度较大的ID发生了偏移,其他的数据都没有问题。这是为什么呢?一头雾水。...千年虫问题:这个问题相信很多人IT人都听说过,简单来说,就是由于前期计算机的存储资源较为昂,在表达时间时,为了节约空间,有位科学家提出了一个方案,把1960年8月11日,简写成600811。...但这样会有一个问题,就是当时被缩写掉的是19XX年中19,如果时间来到2000年,程序就无法准确表达时间。比如:2000年1月1日,简写成六位数是000101。计算机就会怀疑人生,怎么时间倒流了呢?...2038年问题:现在很多时候,我们在处理时间问题时,都喜欢用时间戳来记录,因为简单方便,不需要考虑时区问题(时区问题很让人头疼的,一不小出就容易出错)。但是这里面会有一个小BUG哟。什么是时间戳呢?
前言 这个问题来自于看到的一个面试题,其中的解题过程比较有趣,有很多值得借鉴的地方,这里写出来作为记录。 题目 假设一栋100层的楼,两个完全一样的鸡蛋。...非完美的5分解决方案: 解决方案一的灵感来自于已知两数的和,求两数的平方和的最小值。即假设两数和为25,求两数的平方和的最小值和最大值。 ...这个解法比较简单,直接设一个数位x,则另一个数为(25-x),两数的平方和为 x2 + (x-25)2 = 2x2 - 50x + 625 = 2(x - 12.5)2 + n 可以只当x为12.5的时候取得最小值...丢第一个鸡蛋,直到第一个鸡蛋碎掉。然后从碎之前的一次丢位子的后面一层开始一直往上一层丢,直到找到刚好第二个蛋碎的位置。此时最坏情况下需要试18次。 ...假设第一次丢蛋没碎,那么第二次丢肯定要在x层之上丢,假设第二次丢的层数比第一次丢的高z层,同第一次一样假设第二次丢鸡蛋碎了, 那么最坏的情况下找到N需要的次数应该是: 1 + 1 + z - 1 =x;
而JavaScript里的任务又分为同步任务和异步任务两种,基于事件循环(Event Loop)机制执行任务。...同步任务作为首要任务会在主线程里执行,异步任务则被“发配”到由另一个线程管理的任务队列中等待处理。...根据HTML Standard中的描述,一个事件循环中的执行流程大致如下。...,更新UI 2.JavaScript中的异步任务 能在JavaScript中执行异步任务的一般有以下这几种方法。...setImmediate作为一个新的API,可以马上将相关“事件”添加到任务队列里,通知主线程把相应任务放到主线程中去执行。
type=2 在JavaScript中,创建数组可以使用Array构造函数,或者使用数组直接量[],后者是首选方法。...在本文中,我将复习一些数组原型的方法,并探索这些方法的用法。 1、循环:.forEach 这是JavaScript中最简单的方法,但是IE7和IE8不支持此方法。...和.forEach的参数类似,需要一个包含value,index,和array三个参数的回调函数,并且也有一个可选的第二个上下文参数。...一个典型的用例,使用.reduce的求和函数。...slice()方法会返回源数组的一个浅拷贝。.
前置说明 最近在自学JavaScript,看到一些用js实现的算法,觉得挺有意思的,记录一下 冒泡排序 原理 比较相邻的两个元素,如果前一个比后一个大,则交换位置。...比较完第一轮的时候,最后一个元素是最大的元素。 这时候最后一个元素是最大的,所以最后一个元素就不需要参与比较大小。...获得目标数组,选定一个元素最为标志位,遍历剩余的元素,比标志位大放右边,比标志位小放左边。 特别注意:还有与标志位相等的元素,如果你存储相等的元素,就实现了去重,如果存储了,就不去重。...,也是利用一个对象obj,将数组元素作为对象的属性名,如果不存在该属性名,则值赋为1,如果存在,则值加1。...'; // 定义一个临时变量tmp存储生成的随机字符串 let tmp = ''; //获取str的长度 let len = str.length; // 生成一个长度为n的随机字符串
作者:Andy Chen 译者:前端小智 来源: medium 不晓得大家在利用 React.js 开发网页的时候有没有用过一个很好用的组件叫 styled-components,styled-components...是一个用来产生元素样式的组件,让你可以在 JSX 中编写 css 达到 CSS-IN-JS 的技巧,讲了这么多就是因为 styled-component 的官方文件有说了这句话: This unusual...backtick syntax is a new JavaScript feature called a tagged template literal....在上面的例子可以看到输出的格式有点奇怪,竟然是个数组而不是单纯的字符串而已,这是因为 JavaScript 要把 template string 记录起来,这样才能把 template string 中的变量抓出来...strings 也就是除了变量以外的其他字串的集合,会是一个数组,其余的参数则是会根据 template strings 中带入的变量一一的列举出来。
最近问了大佬一个问题,监听和定时器两个性能的问题,大佬给我普及了宏任务和微任务的概念,于是网上找见了这样一段代码: console.log('script start'); setTimeout(function...的执行机制,JavaScript的事件循环、同步、异步就不多说了,今天分享的是宏任务和微任务。...先记住两个概念: 宿主环境提供的叫宏任务,由语言标准提供的叫微任务,这是算比较标准也算比较好记忆的区分宏任务和微任务了。...宿主环境: 简单来说就是能使javascript完美运行的环境,只要能完美运行javascript的载体就是javascript的宿主环境。目前我们常见的两种宿主环境有浏览器和node。...语言标准: 我们都知道JavaScript是一种编程语言,但其实JavaScript由ECMA制定标准,称之为ECMAScript,所以由语言标准提供的就是微任务,比如ES6提供的promise。
今天在回顾JavaScript进阶用法的时候,发现一个有趣的问题,话不多说,先上代码: for(var j=0;j<10;j++){ setTimeout(function(){console.log...这就决定了它必须是单线程的,设想JavaScript同事有两个线程,一个线程在DOM节点添加内容,一个线程删除该节点,浏览器就会出现混乱。...所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心特征,将来也不会改变。 单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。...如果前一个任务耗时很长,后一个任务就不得不一直等着。 为了优化单线程的性能,JavaScript将任务分成两种,一种是同步任务(synchronous),另一种是异步任务(asynchronous)。...同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务;异步任务指的是,不进入主线程、而进入"任务队列"(task queue)的任务,只有主线程中的同步任务执行完毕,异步任务才会进入执行队列执行
有时候,小小的细节往往隐藏着大大的智慧 今天在回顾JavaScript进阶用法的时候,发现一个有趣的问题,话不多说,先上代码: for(var j=0;j<10;j++){ setTimeout(function...这就决定了它必须是单线程的,设想JavaScript同事有两个线程,一个线程在DOM节点添加内容,一个线程删除该节点,浏览器就会出现混乱。...所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心特征,将来也不会改变。 单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。...同步任务指的是,在主线程上排队执行的任务,只有前一个任务执行完毕,才能执行后一个任务....只要主线程空了,就会去读取"任务队列",这就是JavaScript的运行机制。这个过程会不断重复。 而setTimeout,就被JavaScript定义为异步任务。
最近遇到了一个挺好玩的东西,应该是前段时间突然火起来cloudeye,在wooyun上有卖激活码,不过找到了一个免费版的还不错… 背景 在实际渗透环境时,我们经常会遇到疑似命令执行或者没有回显的注入,第一种我们可能会用各种各样的请求来判断是否存在命令执行...现在我们有个一个更好的解决办法,dns带外查询… 原理 rr菊苣曾经写过一篇解释原理的文章 简单的来说,cloudeye自己保留dns的日志信息,并对应每个会员一个二级域名,这样我们可以通过 ping...test.xxxxx.dnslog.info 这样的多级域名方式,把我们需要返回的信息链接到url中,然后分析日志,test部分就是我们得到的信息 免费的平台 先推荐一个免费的平台吧,并不是每一个人都会花...对于 MySQL 熟悉的人可能会知道 MySQL 有一个 load_file 的 function,可以用来读取文件。...传入 我们看到收到了请求 查询user()的时候可能会发生错误,因为在url中@有特殊意义,(╯-_-)╯╧╧,需要编码一下 感觉还是挺有趣的…
这是一个显示参与国际联盟的人员之间联系的图。图片来源:Martin Grandjean(CC BY-SA 3.0) AirBnB提供了另一个有趣的示例。...基本思想是制作各种指标,将图的离散几何形状转换为附加到每个顶点的数字。 这是一个有趣的设置,可以看到一些图论的实际应用,你不需要事先知道任何机器学习——我会从快速温和地回顾你需要的一切开始探讨。...,QkQ1,而如果任务是分类,那么这些类别 Qi问一被视为投票和预测P点的类,P是获得最多选票的分类。...预测边 到目前为止,我们已经通过结合图论特征来增强传统的机器学习任务。我们的最后一个主题是传统的非图论世界中没有对应项的机器学习任务:边预测。...对于二元分类,通常只报告0到1之间的单个倾向分数,因为另一个类的倾向得分只是互补概率。 回到边预测任务,考虑一个有 n 个顶点的图,想象一个从 n 个中选择 2 行的矩阵,由图中的顶点对索引。
不晓得大家在利用 React.js 开发网页的时候有没有用过一个很好用的组件叫 styled-components,styled-components 是一个用来产生元素样式的组件,让你可以在 JSX...JavaScript feature called a tagged template literal....在上面的例子可以看到输出的格式有点奇怪,竟然是个数组而不是单纯的字符串而已,这是因为 JavaScript 要把 template string 记录起来,这样才能把 template string 中的变量抓出来...strings 也就是除了变量以外的其他字串的集合,会是一个数组,其余的参数则是会根据 template strings 中带入的变量一一的列举出来。...我是刷碗智,新的一年,我们一起刷刷刷。 代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。
领取专属 10元无门槛券
手把手带您无忧上云