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

JavaScript 有趣的冷知识:神奇的 NaN

前言随着笔者写 JavaScript 的时间越来越长,遇到的坑也越来越多,在踩坑的过程中也发现了一些有趣的冷知识,因此笔者就想写成一个系列文来记录这些有趣的冷知识,废话不多说马上开始今天的文章吧!...NaN首先要介绍的是在 JavaScript 中让人又爱又恨的 NaN , NaN 的全名为: Not a Number ,翻成中文就是这个值并不是一个数字,通常都会发生在进行数字的转换上会返回的结果,...其实早在 IEEE 754 的规范中就有定义如果判断式遇到 NaN 就要返回 false ,但应该大多数的读者跟笔者一样都不会刻意去看这种文件吧 XD,这时候就可以多看看 ECMAScript 的规范,...其实刚刚的 + 3 中的 + 并不是拿来做相加的动作,这个 + 是 Number() 的简写,换句话说刚刚笔者所做的不管是 + 3 或 + 'a' 都是在做转型成数字的动作,所以 + 3 可以输出 3...JavaScript 真的是个充满惊喜的程序语言呢?

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

    分享5个有趣的 JavaScript 代码

    分享5个有趣的 JavaScript 代码 作者:matrix 被围观: 1,377 次 发布时间:2011-08-13 分类:Wordpress 兼容并蓄 | 无评论 » 这是一个创建于...4037 天前的主题,其中的信息可能已经有所发展或是发生改变。...很多人认为编程语言只是用于工作,没有什么乐趣,其实,只要我们发挥奇思妙想,再死板的东西也有有趣的一面。这篇文章告诉大家:使用JavaScript,可以做很多很多有趣的事情。...让图片飞起来 只要把下面的代码贴到浏览器的地址栏里然后按Enter键,当前网页的所有图片都将动起来。...让网页可编辑 此JavaScript代码,可以让你实时修改任何的网页,在Firefox中,你甚至可以把修改的网页保存到起来,对于网页设计者来说,这个功能可以辅助完善页面效果。

    63520

    JavaScript 解构的5个有趣用法

    如果你查看我的常规 JavaScript 代码,会看到到处都有解构。 读取对象属性和访问数组项是常见的操作。结构使这些操作变得更加轻松和简洁。...在本文中,除了基本用法之外,我还将会介绍在 JavaScript 中 5 种有趣的解构用法。 1. 交换变量 通常交换两个变量的方法需要一个附加的临时变量。...尽管一开始遇到了一些困难,但后来我看到了它的好处:单向数据流更容易处理。 不变性禁止更改对象。幸运的是,解构可以帮你轻松地以不变的方式完成某些操作。 结合使用 ......你可以以不变的方式从对象中删除属性。...当初读到有关对象解构的文章时,我惊讶于不必静态地知道属性名称。你可以用动态属性名称来解构对象!

    92110

    你不知道的Javascript:有趣的setTimeout

    今天在回顾JavaScript进阶用法的时候,发现一个有趣的问题,话不多说,先上代码: for(var j=0;j<10;j++){ setTimeout(function(){console.log...别急,让我们先来思考一下,这段代码在浏览器中的执行结果是什么? 甲:顺序打印0到9? 乙:这题我见过,打印十个10! 哪个答案正确?...每次for循环的迭代,都将setTimeout中的回调函数加入任务队列等待执行。...也就是说,只有同步任务中的for循环完全结束,主线程中才会去任务队列中找到尚未执行的十个setTimeout(十次迭代)回调函数并顺序执行(先进先出)。...setTimeout,牵扯出了很多JavaScript的深层次问题,虽然总结成一篇文章只有区区数百字,但是我在成文的过程中查阅了大量的资料,也做了许多实验。

    745100

    你不知道的Javascript:有趣的setTimeout

    有时候,小小的细节往往隐藏着大大的智慧 今天在回顾JavaScript进阶用法的时候,发现一个有趣的问题,话不多说,先上代码: for(var j=0;j<10;j++){ setTimeout(function...别急,让我们先来思考一下,这段代码在浏览器中的执行结果是什么? 甲:顺序打印0到9? 乙:这题我见过,打印十个10! 哪个答案正确?我们继续上图: ?...每次for循环的迭代,都将setTimeout中的回调函数加入任务队列等待执行。...也就是说,只有同步任务中的for循环完全结束,主线程中才会去任务队列中找到尚未执行的十个setTimeout(十次迭代)回调函数并顺序执行(先进先出)。...setTimeout,牵扯出了很多JavaScript的深层次问题,虽然总结成一篇文章只有区区数百字,但是我在成文的过程中查阅了大量的资料,也做了许多实验。

    84140

    JavaScript 有趣的冷知识:tagged template literals

    是一个用来产生元素样式的组件,让你可以在 JSX 中编写 css 达到 CSS-IN-JS 的技巧,讲了这么多就是因为 styled-component 的官方文件有说了这句话: This unusual...backtick syntax is a new JavaScript feature called a tagged template literal....这个 tagged template literal 让我有点好奇了,因为之前在使用 styled-components 的时候有发现明明要产生元素的 method 都是 function,可是在 styled-compoents...在上面的例子可以看到输出的格式有点奇怪,竟然是个数组而不是单纯的字符串而已,这是因为 JavaScript 要把 template string 记录起来,这样才能把 template string 中的变量抓出来...strings 也就是除了变量以外的其他字串的集合,会是一个数组,其余的参数则是会根据 template strings 中带入的变量一一的列举出来。

    25130

    13个有趣的JavaScript原生数组函数

    type=2 在JavaScript中,创建数组可以使用Array构造函数,或者使用数组直接量[],后者是首选方法。...在本文中,我将复习一些数组原型的方法,并探索这些方法的用法。 1、循环:.forEach 这是JavaScript中最简单的方法,但是IE7和IE8不支持此方法。...通常用法:.filter(fn(value, index, array), thisArgument),跟C#中的LINQ表达式和SQL中的where语句类似,.filter只返回在回调函数中返回true...splice .splice 是我最喜欢的原生数组函数,只需要调用一次,就允许你删除元素、插入新的元素,并能同时进行删除、插入操作。...我经常使用.indexOf的情况是当我有比较时,例如:a === ‘a’ || a === ‘b’ || a === ‘c’,或者只有两个比较,此时,可以使用.indexOf:['a', 'b', 'c

    57230

    从 vue-cli 源码中,我发现了27行读取 json 文件有趣的 npm 包

    这叫做导入断言,用来告诉 JavaScript 引擎,现在加载的是 JSON 模块。 接下来我们学习 read-pkg 源码[9]。 3....环境准备 3.1 克隆 # 推荐克隆我的项目,保证与文章同步 git clone https://github.com/lxchuan12/read-pkg-analysis.git # npm i -...用最新的VSCode 打开项目,找到 package.json 的 scripts 属性中的 test 命令。鼠标停留在test命令上,会出现 运行命令 和 调试命令 的选项,选择 调试命令 即可。...new URL('data.txt', import.meta.url) 注意,Node.js 环境中,import.meta.url 返回的总是本地路径,即是file:URL协议的字符串,比如 file...学 Node.js 可以多找找简单的 npm 包学习。比直接看官方文档有趣多了。不懂的就去查官方文档。查的多了,自然常用的就熟练了。

    3.9K10

    JavaScript 有趣的冷知识:模板字符串

    :Andy Chen 译者:前端小智 来源: medium 本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章...中编写 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 中的变量抓出来...我是刷碗智,新的一年,我们一起刷刷刷。 代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。

    33220

    Python中几个有趣的函数

    众所周知,python功能强大、语法灵活,这些得益于其丰富而强大的库。除了众多第三方库和方法函数,python自带的很多函数也非常有趣,用起来称得上优雅。 ?...例如,如果对列表中的某个变量依次完成求值,并返回一个新的列表,则可以应用map: a = [1, 2, 3, 4] map(str, a) # list(map...(str, a)) # ['1', '2', '3', '4'] 这是map函数的一个典型用法:接受2个参数,第一个参数(上例中是str()函数)是一个要作用的函数,第二个参数是可迭代变量。...例如: a = [1, 2, 3, 4] b = [2, 2, 3, 3] list(map(lambda x, y:x**y, a, b)) # [1, 4, 27, 64] 与zip函数中类似,当...不过可能是由于应用场景有限的原因,reduce在python3中已不再是全局调用函数,必须要从functools包中导入方可使用: from functools import reduce a = range

    61420

    【BOOM】一款有趣的Javascript动画效果

    实践出真知,有的时候看到一些有趣的现象就想着用自己所学的知识复现一下。  ...我就寻思着,在浏览器环境下,用 Javascript 怎么实现呢?...在浓烈的好奇心驱使下,最终利用 Javascript 和 CSS3 完成了模仿上面的效果,通过调用方法,可以将页面上的图片一键爆炸,我给它起了个 boomJS 的名字,贴两张效果图: ? ?...,利用 Javascript 做了一些巧妙的变换,所以第一步所做的就是取到原图的高宽及相对浏览器视窗的定位,再创建一个新的容器附着在原图之上,然后隐藏原图。...可以看到,这里分割成了很多个小块,每个小块其实是一个 div 然后,这些小块被添加到我们上一步中设置的容器当中,然后利用原图设置 div 的背景图,所有 div 利用的都是原图一张背景图,接着图片定位就可以完成这样一个效果

    1.3K50

    Help | 我又有一个有趣的想法!

    当然,前几天去跑去学校西园吃饭的时候,一个人也没事干,稍微刷了下历史消息,总结: 最近新手太多 问题绝大多数为新手问题,而且他们基本没看过《生信札记》推文 总的来说,绝大多数 TBtools 功能,我实现之后...举个例子 问,为什么我用 TBtools 计算 KaKs,有不少值是NaN 答,翻公众号历史推文.... 多少找找,可以找到 [1240] 当然,这个回答是对的。但是多少略显麻烦。...尽管手机微信其实是支持搜索公众号历史推文的,但我相信,可能绝大多数人并不知道如何操作。 于是,我有一个绝妙的 idea。...我的有趣想法 对于这类实现简单,但是想法有趣的经历,在TBtools开发上,我有过至少三次: 插件实现模式 - 目前不少人在用的 TBtools-Plugins,在此基础上,也才有现在的 RNAseq...R插件实现 - 尽管很多人并不知道,这个花了我一些时间,因为要整便携版本的R,windows简单,mac花了一点功夫,我相信,或许不久之后会看到国内或者国外类似的实现也出来,TBtools 目前有几个follower

    54850

    盘点Excel中的那些有趣的“bug”

    但在今天这篇文章里,我们不是为了讲Excel中那些大家已经耳熟能详的功能,让我们一起来看看,即便强大如Excel也会有的一些令人费解的计算结果吧!...1900年2月29日 小学生都知道在我们现在使用的公历(格里高利历)中规定:年份是4的倍数,且不是100的倍数的,为闰年;年份为100的倍数,必须是400的倍数才是闰年。 ?...Excel官方给出过回复,这是Excel前身Lotus 1-2-3的一个bug,但是修复问题会导致历史文件出现一天的误差,出于对老文件的兼容,同时这个Bug影响很小,Excel并未修复这个bug,1900...在 "文件" 菜单上,单击 "选项",然后单击 "高级" 类别。 在 "计算此工作簿时" 部分,选择所需的工作簿,然后选中 " 将精度设定为显示" 复选框。 ?...总结 Excel中有很多这样并不是很符合日常行为的操作,以上只是葡萄城在研究Excel电子表格时遇到的其中一部分有趣的内容,相信大家也遇到过什么比较奇妙的计算错误,欢迎留言吐槽。

    89720

    我的 JavaScript 比你的 Rust 更快

    近日,他写了一篇文章,记录了自己凭借经验赢了与新人开发者打赌的故事,而“我的 JavaScript 比你的 Rust 更快”的结论也是来自这个打赌。...他的故事或许可以说明运行策略在研发实践中的重要性。 对我来说,软件架构师这活儿最让人开心的一点就是能指导开发者理解最新的概念、影响他们的技术判断。...其实刚毕业那会我也认为自己很懂,但这行干久了,我越来越觉得计算机系统像是魔法…… 他的信心并非毫无来由,这个结论如同“C++ 比 JavaScript 速度快”,基本属于业界共识。...总 结 其实全文写下来,我也得不出特别明确的结论。下面只给出几个粗浅的观点: 内存管理很有趣,每种方法都是在做取舍。只要策略运用得当,任何一种语言都能获得巨大的性能提升。...从头到尾我都在说 JavaScript,但这里实际指的是 TypeScript。 归根结底,大家得根据实际情况选择最适合的技术方案。我们越是了解不同栈的不同特征,在选择的时候就越是从容有数。

    50820

    Python中那些低调有趣的模块

    python语言上位成功的其中一个原因是其丰富的社区支持,不管你有什么奇奇怪怪的需求,大概率能在网上搜到一个库来便捷实现。这篇文章就列举了几个低调的python模块,可能会派上用场。...彩蛋:试试扫上图二维码 enum enum 枚举模块是一组符号名称(枚举成员)的集合,枚举成员应该是唯一的、不可变的。在枚举中,可以对成员进行恒等比较,并且枚举本身是可迭代的。...其值经过序列化,写入到由 dbm 创建和管理的数据库。 ? email & smtplib smtplib模块是python中smtp(简单邮件传输协议)的客户端实现。...sh 如果你需要在python程序中完成某项工作,发现这在bash中很简单,但是却不知道怎么在python中实现(或者很复杂),譬如『递归搜索文件』。...这时候你就需要尝试一下sh这个库了,它能让你将shell命令以函数的形式导入到python中。 ? Tqdm 说实话感觉tqdm并不算低调,因为至今我已经听到好多人为它代言了。

    51320

    Kali Linux中那些有趣的命令

    需要记录很多的命令来实现某个功能。正是这样,也让学习Linux有了一定的门槛。但是你知道吗?Linux中也有很多的有趣命令,当然所有Linux发行版都可以安装运行这些命令!一起来玩耍吧!...可以给别人来个恶作剧,他一敲ls,不知道的肯定很有效果 alias ls=sl fortune 命令 输出一句话,有笑话,名言什么的 (还有唐诗宋词sudo apt-get install fortune-zh...cowthink,这个是奶牛想,那个是奶牛说,哈哈,差不多 安装 sudo apt-get install cowsay 运行 cowsay "大表哥,牛逼666" cowsay -l查看其它动物的名字...,然后-f跟上动物名,如 cowsay -f tux "坑爹啊" 还可以让cowsay说出fortune的内容,就像这样: fortune | cowsay cmatrix 命令 这个很酷!...yes 命令 输出无穷无尽的字符,按ctrl+c结束,如 yes 我很NB cal 9 1752 cal是打印日历,不过这个是很奇葩的一个月, shred 覆盖搞乱文件,就是文档粉碎,哈哈,要把你私藏的大片种子和电影销毁

    2K40

    一个有趣又棘手的 JavaScript 示例库

    JavaScript 是一个非常有趣的语言,但同时也充满了各种奇怪的行为。这些奇怪的行为有时会搞砸我们的日常工作,有时则会让我们忍俊不禁。 WTFJS 这个开源项目的初衷只是因为好玩。...收集一些疯狂的例子,并尽可能解释它们的原理,学习以前不了解的知识。 如果你是初学者,您可以根据此笔记深入了解 JavaScript。...如果你是专业开发人员,你将从这些例子中看到人见人爱的 JavaScript 也充满了非预期的边界行为。 总之,古人云:三人行,必有我师焉。我相信这些例子总能让你学习到新的知识。...— StackOverflow 上的“为什么在 JavaScript 中 0 小于 Number.MIN_VALUE?”...,这个项目收集一些JavaScript的例子,并尽可能解释它们的原理,值得看看学习一下。

    32520

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券