javascript NaN和isNaN的理解

JavaScript 中的 NaN 是什么? 在 JavaScript 中,NaN 是一个特殊的数值,表示非数字(Not-a-Number)。它是一个全局属性,通常作为一个无效或未定义的数值结果出现。NaN 是一个特殊的数值,与任何其他值进行比较都不会相等,包括它本身。因此,要使用 isNaN() 函数来检查一个值是否为 NaN,而不是使用相等运算符。当进行数学运算失败或将非数字字符串转换为数字时,通常会得到 NaN。 阅读详情

NaN(Not a Number) 是一个全局对象的属性,它表示未定义或不可表示的值,在编程中很少直接使用到 NaN,当算术运算返回一个未定义的或无法表示的值时,NaN就产生了。但是,NaN并不一定用于表示某些值超出表示范围的情况。将某些不能强制转换为数值的非数值转换为数值的时候,也会得到NaN。

返回NaN的运算有如下三种:
1. 操作数中至少有一个是NaN的运算
2. 未定义操作
- 下列除法运算:0/0、∞/∞、∞/−∞、−∞/∞、−∞/−∞
- 下列乘法运算:0×∞、0×-∞
- 下列加法运算:∞ + (−∞)、(−∞) + ∞
- 下列减法运算:∞ - ∞、(−∞) - (−∞)
3. 产生复数结果的实数运算。例如:
- 对负数进行开偶次方的运算
- 对负数进行对数运算
- 对比-1小或比+1大的数进行反正弦或反余弦运算

wiki NaN

typeof NaN返回number

一开始我会认为NaN表示的是一个非数字,所以typeof NaN返回的不应该是number,但其实NaN还是属于number类型,只不过用number类型无法表示而已,在ECMAScript标准中也明确定义了NaN属于Number类型。

Number type
set of all possible Number values including the special “Not-a-Number” (NaN) values, positive infinity, and negative infinity

关于typeof NaN number可以参考stackoverflow解答

NaN == NaN返回false

一般情况下一个数或者字符串和自身比较时应该返回true,但NaN和自身比较返回false,这是因为NaN表示一个无法表示的值,而这个无法表示的值可以有很多种,具体见上文。比如0/0返回NaN,0/’fail’也返回NaN,而0/0 != 0/’fail’,所以NaN == NaN返回false。

判断一个值是否是NaN

等号运算符(== 和 ===) 不能被用来判断一个值是否是 NaN。必须使用 Number.isNaN() 或 isNaN() 函数。

isNaN

isNaN() 函数用来判断一个值是否为 NaN。但是isNaN函数在判断之前会先通过ToNumber()函数强制转换,然后对强制转换后的值进行isNaN()判断。

ECMA中规定如下:

isNaN (number)
Returns true if the argument coerces to NaN, and otherwise returns false.
If ToNumber(number) is NaN, return true.
Otherwise, return false.

这样当通过isNaN()函数对字符串’abc’判断时会返回true,然而事实是字符串’abc’的type类型为string,而NaN的type类型为number,字符串’abc’不应该是NaN。但isNaN函数先通过ToNumber(‘abc’)把字符串’abc’强制转换为NaN了,所以isNaN(NaN)就返回true了。ECMA也推荐我们用x !== x返回true判断x是否为NaN。

A reliable way for ECMAScript code to test if a value X is a NaN is an expression of the form X !== X. The result will be true if and only if X is a NaN.

示例

isNaN(NaN);       // true
isNaN(undefined); // true
isNaN({});        // true

isNaN(true);      // false
isNaN(null);      // false
isNaN(37);        // false

// strings
isNaN("37");      // false: 可以被转换成数值37
isNaN("37.37");   // false: 可以被转换成数值37.37
isNaN("");        // false: 空字符串被转换成0
isNaN(" ");       // false: 包含空格的字符串被转换成0

// dates
isNaN(new Date());                // false
isNaN(new Date().toString());     // true

isNaN("blabla")   // true: "blabla"不能转换成数值
Number.isNaN()

Number.isNaN()在ES6中定义的,Number.isNaN() 方法用来检测传入的值是否是 NaN。该方法比传统的全局函数 isNaN() 更可靠。该方法不会强制将参数转换成数字,只有在参数是真正的数字类型,且值为 NaN 的时候才会返回 true。

示例

Number.isNaN(NaN);        // true
Number.isNaN(Number.NaN); // true
Number.isNaN(0 / 0)       // true

// 下面这几个如果使用全局的 isNaN() 时,会返回 true。
Number.isNaN("NaN");      // false,字符串 "NaN" 不会被隐式转换成数字 NaN。
Number.isNaN(undefined);  // false
Number.isNaN({});         // false
Number.isNaN("blabla");   // false

// 下面的都返回 false
Number.isNaN(true);
Number.isNaN(null);
Number.isNaN(37);
Number.isNaN("37");
Number.isNaN("37.37");
Number.isNaN("");
Number.isNaN(" ");
JavaScript中的isNaN函数-数字判断 需要注意的是,在进行判断时,isNaN函数会先将参数转换为数字,然后再进行判断。在JavaScript中,isNaN函数用于检测给定的值是否为NaN(非数字)。NaN表示不是一个有效的数字,它是由一些特殊的运算结果产生的,例如0除以0、负数的平方根等。isNaN函数的返回值为布尔值,如果给定的值是NaN,则返回true;需要注意的是,isNaN函数在进行类型转换时会先将参数转换为数字,然后再进行判断。isNaN是JavaScript中的一个内置函数,用于判断一个值是否为非数字(Not-a-Number)。 阅读详情

相关推荐

IROS 2025机器人技术解析:从诡异设计到硬核应用

机器人技术正从传统的结构化环境应用,迈向复杂非结构化场景的深度交互。其核心原理在于通过仿生设计、多模态感知与智能控制算法,赋予机器人类似生物的适应性与交互能力。这一技术演进的价值在于突破传统机器人在极端环境、精密操作和自然交互中的瓶颈。例如,结合深度强化学习的全身动力学控制,使机器人能在废墟、管道等复杂地形中自主导航;而软体机器人技术则通过材料变形实现安全、柔顺的抓取操作。这些技术最终服务于极端环境巡检、精密装配和高端陪护等刚性应用场景,推动机器人从功能实现迈向与环境、人进行深度、智能交互的新阶段。

weixin_34006468的博客 452

isNaN()函数讲解

isNaN() 这个函授接收一个参数,该参数可以是任意类型,而函数会帮我们确定这个参数是否“不是数值”;isNaN()在接收到一个值之后,会尝试将这个值转换为数值,如果能成功转换则返回false,否则返回true; 语法 isNaN(value) 参数 value:要被检测的值 返回值 如果给定的值能被转换为数字,则返回false;如果不能转换为数字,则返回true; 注意 如果想要判断一个值是否严格的等于NaN,推荐使用Number.isNaN()方法,此方法会判断传入的值是否为NaN这

qq_40117020的博客 3万+

ffmpeg 4.4 cenc-aes-ctr 加解密 MP4 工程性质分析

ffmpeg 4.4 cenc-aes-ctr 加解密 MP4 工程性质分析

Dream_Dynasty的博客 3047

JS中的NaN

JavaScript中,NaN是一个特殊的数字值(typeof NaN的结果为number),是not a number的缩写,表示不是一个合法的数字。 1. NaN的产生: 一个不能被解析的数字 Number('abc') // NaN Number(undefined) // NaN 失败的操作 Math.log(-1) // NaN Math.sqrt(-1) // NaN Mat...

码飞_CC的博客 5万+

Power BI实战:从数据清洗到可视化报表的完整流程

本文详细介绍了使用Power BI进行数据分析的完整流程,从数据获取、清洗整理到建模与可视化。通过实战案例,重点讲解了连接MySQL数据库、使用Power Query进行数据清洗、利用DAX创建核心度量值以及设计交互式报表的关键步骤与技巧,帮助用户高效完成从原始数据到专业可视化报表的转化,实现数据驱动决策。

weixin_29070721的博客 398

张量分解浅谈(四 Tucker 分解)

学完了SVD算法之后,我们继续回到张量几大分解的学习上来,本期学习的主要内容是张量的 Tucker 分解 以及 前面的CP分解还留下一点没有说完,正好一并补齐!后面的公式我将采用颜色标记,红色代表必须掌握,蓝色尽量掌握! 在这之前先附一张图,包含了各种运算符号的名称含义,大部分是前面说过或者使用过的: Tensor decomposition一 . Tucker 分解公式介绍和原理二 . 张量的 n-Rank 一 . Tucker 分解公式介绍和原理 我们先来看一张被使用过很多次的Trucker 分解图

欢迎来到 豪哥 的博客 1万+

isNaN()详解以及isNaN()和Number.isNaN()区别

isNaN用法: 我们先来看一组结果: 其中,true和false都可以被Number转换成数字1和0 null和空数组[]可以被Number转换为数字0 对象{}和undefined不可以被Number转换成数字,返回NaN 对于空字符串或者空格字符串或者数字字符串,可以被Number转换为数值 对于数组: 所以我们大概知道哪些值可以被Number转换为数字,哪些不可以,可以简单理解为: 对于可以被Number转换为数值的值x,那么isNaN(x)就是false 如果不可以被Number转换为数值的

Hiroshi's 1万+

LabVIEW+数据库应用系列保姆级教程,第一篇数据库连接

目录LabVIEW连接数据库的方法连接MySQL连接Oracle,SQL Server,Access等 LabVIEW连接数据库的方法 1、创建udl(Universal Data Link)是通用数据连接文件。界面操作,简单快捷。 2、编写连接字符串。需要熟悉连接字符串的结构,容易出错。 3、其他… 本教程教你使用第1种方法,也是最简单、最常用的方法。 连接MySQL 1、在MySQL Installer内安装MySQL Connector/ODBC,建议安装32位(X86),如下图: 2、创建ODBC

wwplh5520370的博客 1万+

JS中的空字符串""包含(isNaN()判断)

注意: 在 JS中 ,空字符串""代表的是数字0,而不是NaN

syl2850246的博客 3280

【Claude Code 实战】第十章:DevOps 与 CI/CD 集成 / 光子AI

本章摘要:探讨Claude Code在DevOps与CI/CD集成中的应用。DevOps作为现代软件工程核心,结合AI技术实现自动化全流程,从代码提交到生产部署。通过CALMS模型(文化、自动化、精益、度量、分享)解析DevOps理念,对比传统瀑布模式与DevOps模式差异,展示AI如何加速Dockerfile编写、CI/CD配置等任务。典型示例显示AI可将原本30-60分钟的手动配置缩短至1-2分钟,大幅提升DevOps效率。

AI天才研究院 367

大模型选型实战:为OpenClaw匹配最优“大脑”的全维度考量

大模型不是越贵越好,也不是参数越高越好,适合自己的使用场景才是最好的。按照我的方法,先明确自己的需求,再选对应的模型,配置多模型自动路由,既能保证体验,又能最大限度降低成本。我自己用这套配置用了半年多,不管是写文章、写代码还是处理复杂问题,都完全够用,成本也很低,大家可以参考一下。如果不知道选什么模型,可以在评论区说一下你的使用场景。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 343

NaN, isNaN()和Number.isNaN()

NaN 定义: 全称是 not a number , 代表非数字。在JavaScript中整数和浮点数都是Number类型。 特性1: console.log(typeof NaN) //number 特性2:不等于自身 console.log(NaN == NaN) //false console.log(NaN === NaN) //false 小朋友,你的脑袋里是不是也充满了大大的问号呢??? 什么时候会出现NaN? 1.两个非数值的数进行运算 console.log('a' - 1) //NaN

stay hungry, stay foolish 725

InvocationException: GraphViz‘s executables not found【BUG已解决】

在机器学习框架中遇到了一个bug:安装了GraphViz模块后,在对着sklearn的决策树文档操作输出决策树模型结果时,还是爆出了如下的错误: 报错位置为: 报错语句为:网上很多答案告诉我们,要我们安装GraphViz模块,然而并不对! 如下,我安装了GraphViz,但是还是报错了。 所以说问题不在这,我查阅质料发现,改正这个bug的方法有一个:下文详细描述。解决bug为: 1.去graphviz.官方下载自己电脑符合的操作系统的安装包:2,安装的时候,记住自己安装在电脑里的位置:以我的电脑为例,我的

一键难忘的博客 3968

javaScript 的学习笔记

js的数据类型 如图: typeof 的使用方法: console.log ();控制台打印输入。 负责检测类型;例如:console.log(typeof 变量);//返回值是数据类型。 undefined :类型只有一个值,申明变量没有赋值 ,那它的类型就是undefined类型。undefined值是自派生自nuLL,所以undefined==null,返回结果为ture. null:nu...

weixin_43727601的博客 158

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

js之NaN值与isNaN()函数

NaN “Not a Number”。出现这个数值比较少见,以至于我们可以不理它。当运算无法返回正确的数值时,就会返回“NaN”值。NaN 值非常特殊,因为它“不是数字”,所以任何数跟它都不相等,甚至 NaN 本身也不等于 NaN 。isNaN()计算一个参数,检查它是否为数值。 核心函数

okohisme的专栏 1138

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

JavaScript中 的NaN,神奇的存在 !

1. 什么是 NaN ? NAN全称是(not a number)是js中奇妙的存在,一般情况下只出现在Number方法的返回值中。虽然是notanumber 的意思,但是它js七大数据类型中的number类型。 2.NAN的神奇特点: * NAN是Number类型 var a = number('abc'); ...

qq_41995398的博客 592

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

判断值是否为NaN

周五的愉快摸鱼,群友问了个问题(还没问出来,群主直接抢答了...) 应该是要问,为什么herbSum的值是NaN,但是判断全是false 牛逼的群主直接给出了答案 之前做项目我还真没判断过NaN,就去百度了一下这个isNaN JavaScript isNaN() 函数 检查值是否为 NaN: isNaN(123) //false isNaN(-1.23) //false isNaN(5-2) //false isNaN(0) //false isNaN('123') //false i

qq_40228475的博客 1227

为什么NaN===NaN?

为什么NaN===NaN

qq_52372698的博客 2173

对属性NaN的理解纠正和对Number.isNaN() 、isNaN()方法的辨析

1.属性NaN的误解纠正 NaN (Not a Number)在w3c 中定义的是非数字的特殊值 ,它的对象是Number ,所以并不是任何非数字类型的值都会等于NaN,只有在算术运算或数据类型转换出错时是NaN【说明某些算术运算(如求负数的平方根)的结果不是数字。方法 parseInt() 和 parseFloat() 在不能解析指定的字符串时就返回这个值NaN。对于一些常规情况下返回有效数字...

weixin_34112900的博客 560

NaN,非数值

NaN,即非数值,是一个特殊的数值,这个数值适用于表示一个本来要返回的操作数未返回数值的情况(这样子就不会抛出错误了)。例如,在其他的编程语言中,任何数值除以0都是会导致错误的,从而会让代码停止执行,在世在javascript中,任何数值除以0都是会返回NaN,因此是不会影响其他代码的执行。 NaN本身就有两个非同寻常的特点,首先,任何涉及NaN都是会返回NaN的,这个特点导致在多步计算中有可能

sinat_36841379的博客 2687

JS 学习笔记 -- NAN && isNaN

1. NaN :即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)。其他语言可能导致错误,代码停止执行,但在ECMAScript 中,任何数值除以0 会返回NaN①,因此不会影响其他代码的执行。 特点:任何涉及NaN 的操作(例如NaN/10)都会返回NaN; NaN 与任何值都不相...

weixin_30538029的博客 145

isNaN()和Number.isNaN()的区别

isNaN(参数) 判断参数能不能转化为数字,可以返回true,否者返回false Number.isNaN(参数) 判断参数是不是NaN,首先判断参数是否是数字,不是直接返回false,如果是判断参数是不是NaN,是返回true,否则false 即Number.isNaN(参数),只有参数是 NaN时,返回true,其他一切数据均返回false ...

Wangnuor的博客 204

isNaN和Number.isNaN的区别

isNaN isNaN(非数字判断) 首先会进行Number函数的转换,如果转换后为number类型,那么就返回false, 否则返回true console.log(isNaN(123)); // false console.log(isNaN('1+1')); // false console.log(isNaN('12345')); // false console.log(isNaN('wqwq')); // true console.log(isNaN(NaN)); // true

温情 374

JavaScript数据类型(二)

JavaScript数据类型之Number与isNaN Number Number:表示整数和浮点数 NaN:即非数值(Not a Number)是一个特殊的数值 说明 任何涉及NaN的操作(例如NaN / 10)都返回NaN NaN与任何值都不相等,包括NaN本身 isNaN() 语法:isNaN(n) 功能:检测n是否是“非数值” 返回值:boolean 参数:参数n可以是任何类...

张恒华的博客 6156

Number.isNaN 和isNaN有何区别?

需要强调NaN是一个Number类型的值(value)。表示这是一个特殊的数值。 当一个值被强行转成Number类型的值时,转换失败该值变成NaN +'1' //1 字符串'1' 可被转换成number类型的 1 +'a' //NaN 字符串'a'转成number类型会变成NaN +null //0 null 可被转换成number类型的 0 +undefined //NaN undefined转成number类型的值变成NaN isNaN与Number.isNaN最大的区别在于isNa

qq_37524886的博客 533

什么样的运算会变成NaN

是not a number的缩写,表示不是一个合法的数字。

m0_63250938的博客 891
上一篇: CSS 定位总结
下一篇: javascript包装对象
joyfixing
博客等级 码龄17年 115粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值