相关疑难解决方法(0)

为什么JS中的isNaN(null)== false?

JS中的这段代码给了我一个弹出窗口,说"我认为null是一个数字",我觉得有点令人不安.我错过了什么?

if (isNaN(null)) {
  alert("null is not a number");
} else {
  alert("i think null is a number");
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Firefox 3.这是一个浏览器错误吗?

其他测试:

console.log(null == NaN);   // false
console.log(isNaN("text")); // true
console.log(NaN == "text"); // false
Run Code Online (Sandbox Code Playgroud)

那么,问题似乎不是与NaN的精确比较?

编辑:现在问题已经得到解答,我已经清理了我的帖子,以便为存档提供更好的版本.然而,这使得一些评论甚至一些答案有点难以理解.不要责怪他们的作者.我改变的事情包括:

  • 删除了一条说明,说我首先通过恢复其含义搞砸了标题
  • 早期的答案显示我没有明确说明为什么我认为这种行为很奇怪,所以我添加了检查字符串并进行手动比较的示例.

javascript

117
推荐指数
5
解决办法
5万
查看次数

为什么要避免在JavaScript中创建对象?

我正在关注W3Schools的JavaScript教程.在阅读每个页面时,他们会向用户注意"避免创建对象"并改为使用原始数据类型.他们给出了这样的理由:"代码变得难以理解,或者如果使用对象,执行速度将会降低".我们应该避免在JavaScript中创建对象吗?

例如:

var value = new Number(1);  // Avoid this
var value = 1;              // do something like this instead.
Run Code Online (Sandbox Code Playgroud)

javascript

48
推荐指数
2
解决办法
4290
查看次数

你如何在JavaScript中测试NaN?

我有一个变量x,我想测试x是否设置为NaN.我怎么做?

我的第一直觉可能就是测试它,就像这样:

if (x === NaN) {  ...
Run Code Online (Sandbox Code Playgroud)

傻兔子,不,这太容易了.NaN在SQL中就像NULL,它不等于任何东西,甚至本身.

但是看,有一个叫做的函数isNaN()- 也许会这样做!

不,据我所知,isNaN()完全没有价值.

例如,isNaN([""])正确返回false,但isNaN(["."])返回true.你不想知道我是如何了解这个缺陷的.

我该怎么做呢?

事实证明,我的问题与问题重复,但所选答案是错误的.将正确的答案有20%之多upvotes.

javascript nan

39
推荐指数
2
解决办法
4万
查看次数

isNaN()与parseInt()的混淆

有一些奇怪的东西.

为什么
isNaN("")我得到False
不过,
parseInt("")我得到NaN

javascript

16
推荐指数
1
解决办法
1万
查看次数

JavaScript真的是什么?

这个说false,意思""是一个数字:

alert(isNaN("")); 
Run Code Online (Sandbox Code Playgroud)

这个说NaN,意思""是不是数字,不能转换:

alert(parseFloat(""));
Run Code Online (Sandbox Code Playgroud)

我期待第二个代码转换""为,0因为""测试时是一个数字,IsNaN但我错了!我疯了还是我错过了什么?

javascript

5
推荐指数
1
解决办法
155
查看次数

parseInt不起作用

在我当前的源代码文本框值是1.当我尝试alert(isNaN(obj.text())它返回false预期但在我写alert(a);它后parseInt 返回NaN

minus.click(function () {
     var a = 1; if (!isNaN(obj.text())) a = parseInt(obj.text()); 
     if (a > 1) a -= 1; obj.text(a);
});
Run Code Online (Sandbox Code Playgroud)

问题是什么?

编辑:这是完整的代码:

<input type="text" class="basket-txt" value="1" />


jQuery.fn.basket = function (options) {
    var defaults = {
    }
    options = jQuery.extend(defaults, options);
    this.each(function () {
        var $this = $(this);
        $this.height(32).css({ 'line-height': '32px', 'font-weight': 'bold', 'width':'40px', 'text-align':'center', });
        var tbl = $('<table border="0" style="border-spacing:0px;float:left;">').appendTo($this.parent());
        var tr1 = $('<tr>').appendTo(tbl);
        var plus = $('<div …
Run Code Online (Sandbox Code Playgroud)

javascript jquery

1
推荐指数
2
解决办法
3178
查看次数

标签 统计

javascript ×6

jquery ×1

nan ×1