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

Under the Hood: NaN of JS

一、NaN 的本质 我们知道 NaN(Not A Number) 会出现在任何不符合实数领域内计算规则的场景下。比如 Math.sqrt(-1)就是 NaN,而 1/0 就不是 NaN。...同时需要注意的是,NaN 只会出现在浮点类型中,而不会出现在 int 类型里(当然 JS 并没有这个概念) 什么意思?用你熟悉的任何支持 int 和 double 两种类型的语言(比如 C)。...---- 两种 NaN 如果再细分的话,NaN 还可分为两种: Quiet NaN Signaling NaN 从性质上,可以认为第一种 NaN 属于“脾气比较好”,比较“文静”的一种,你甚至可以直接定义它...比如我们在 JS 中可以使用类似于 NaN+1,NaN+'123' 的操作,还不会报错。 而 Signaling NaN 就是一个“爆脾气”。...NaN 不等于 NaN ?

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

    两数相加 js 实现

    它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。...9,9,9,9,9,9,9], l2 = [9,9,9,9] 输出:[8,9,9,9,0,0,0,1] 提示: 每个链表中的节点数在范围 [1, 100] 内 0 <= Node.val <= 9 题目数据保证列表表示的数字不含前导零...ListNode} */ var addTwoNumbers = function(l1, l2) { let head = null; let tail = null; // 由题意可知,数字的最高位在链表的最后位...定义当前的进位变量 // 链接从头开始取的每一个节点刚好为每个数组的最低位节点,所以从头开始遍历链表,以最长的链表长度作为遍历结束条件 // 遍历是从当前节点链表头开始遍历,头放置的是数字的低位

    2.3K30

    Javascript 变量 ,数据类型,运算符

    所以推荐大家将能合并的js文件合并到一个文件中,然后再去引用 5、JavaScript 输出消息的几个写法 alert(“”);在页面中弹出提示框,显示消息 confirm(“”) ;弹窗显示...一般与if...else配合使用 prompt("");在网页弹出输入框,一般用来接收用户输入消息 document.write("");在网页中输出消息,里面可以放HTML标签 console.log...= >= <= 结果:一种是true(正确的) 一种是false(错误的)  9、算术运算符 加  + 1、当两个Number类型的变量相加,结果为Number 2、当一个Number类型的变量和一个String...类型的变量相加,最后结果为字符串(加号起到的是连接的作用) 减  - 1、当两个Number类型的变量相减,结果为Number 2、当一个Number数据类型的变量和一个数字的字符串类型变量相减,最后的结果为...输出结果为:NaN NaN: not a number 但是它是一个Number类型 乘    * ​ 不同类型运算结果与减法的结果一致 除   / 结果同上,区别:当一个数字除以0最后的结果为 infinity

    1.4K30

    js中三种弹出

    的输入和输出,实现与用户能进行交互的js代码。...今天小编就来简单介绍一下js中的三种弹出对话框,小编先单独对这几个方法进行详细讲解,接着,将这几个方法进行对比,好了,开始我们的js之旅吧`(*∩_∩*)′…… 第一种:alert()方法 alert...,效果如下; 在页面上弹出对话框并显示一句话“上联:山石岩下古木枯”,单击“确认”按钮后再显示第2个对话框并显示“白水泉边少女妙!”...注意:两个对话框是分别显示的,而不是一个覆盖另一个,这是因为js实在执行完第一个alert()并等到用户点击“确认”按钮之后才去执行第二个alert()的。...看下面一个小例子:在页面上两次弹出提示对话框,使用户能输入有关信息,代码如下: ?

    9.6K50

    一句话判断IE浏览器

    "1,2"   alert([1,]);//相当于alert([1,].toString());--在非IE的标准浏览器上,js引擎会自动删除最后的",",所以在IE上会弹出"1,",而在非IE上会弹出...,而"1"可以转换为数字1,所以最终的结果:IE上会转换失败弹出"NaN",而非IE浏览器上会弹出数字"1" //上面的+号转换字符串为数字的测试 var s = +"5"; alert(s+1); /.../ok,到这里为止,我们知道 +[1,] 最终在IE为上NaN,在非IE浏览器上则为数字1 //下面再来看看很有个性的NaN alert(NaN==true);//弹出 false alert(NaN=...=false);//弹出 false alert(NaN==NaN);//弹出 false //即NaN不管与谁比较都是false alert(!...NaN);//相当于alert(!(NaN==true)),根据上面的解释当然是弹出true //所以,alert(!

    1.6K30

    面试题

    1. js延迟加载 会背 defer:等html全部加载完成,才会顺次执行js代码。 async:和html解析是同步的,不是顺次执行js代码,谁先加载完先执行谁。...理解 如下引入外部js文件script.js,在script.js中打印了对应id是root的元素。但是因为我们在head标签中先引入的外部文件,然后才去渲染的dom,所以此时结果为 null。...NaN是一个数值类型,但是不是一个具体的数字alert(true+1) // 2 alert('name'+true) // 'nametrue' alert(undefined+1) // NaN...undefined+1) // number typeof(null) // Object typeof(undefined) // undefined 使用加运算符的规律 字符串和任何值相加...对于数值 与非字符串类型相加,都将其转为数值 只要存在NaN,结果就是NaN Infinity + Infinity = Infinity -Infinity + ( -Infinity) =

    30610

    撬动offer:两个长字符串数字相加

    编写一个函数实现这两个数的二进制字符串相加。考虑都是无符号数字相加。...题目变种 有两个字符串分别如下: String a = "1879987637894818799876378948"; String b = "176898"; 字符串里的数字是0到9的任意一个数字字符...编写一个函数实现这两个十进制字符串的相加。考虑都是无符号数字相加。...那么就不可以使用简单的数字相加的方法了,因为a或者b早就溢出了,Integer或者Long已经无法表示a或b这两个数值了。这时候要怎么计算呢?...回想一下老师教的数字是怎么相加,其实就是从数字的最右边的最后一位开始(就是个位开始计算),将两个对应的位进行相加,对于十进制,如果相加数字大于等于10,就往前进一位。就这样教计算机进行计算即可。

    1K20
    领券