我试着用下面的代码检查用户输入的是不是数字。它没有起作用。
var a = Number(prompt("Enter a number"));
if (a !== NaN) {
console.log("yes");
}
else {
console.log("no");
}
当输入不是数字,输出为NaN时,我尝试打印a的值。但是,这段代码仍然不能工作。我知道我可以使用isNaN(),但是为什么我的代码不能工作?是否有其他方法可以在不使用isNaN()的情况下检查输入是否为数字?
有没有解释为什么在这个例子中类型返回号:
class MyClass{}
var result = typeof - "Hello, World";
// -----------------^
console.log(result);
// number -- for me, it's not logic
var result2 = typeof + new MyClass();
// ------------------^
console.log(result2);
// number -- for me, it's not logic
但在这种情况下
我希望我能够登录到控制台,一个数字被一个变量乘法的结果,但是我在使用Javascript时得到了NaN。
我的尝试:
var div = Number(console.log(10 / 50)); //returns 0.2
typeof div //number
console.log(div * 100); //returns NaN
我也试过
var div = Number(console.log(10 / 50)); //returns 0.2
typeof div //number
console.log(Number(div) * 100); //returns NaN
为什么会
我试图将一个值设置为一个未定义的变量,类型会改变,但值不会改变。为什么会发生这种情况呢?
let average; // is it a must to do 'average = 0;' for it work?
for (const [oddName, odd] of Object.entries(game.odds)) {
// console.log(typeof oddName); // is a str
console.log(typeof odd); // is a num
console.log(typeof average);
javascript尝试捕获错误,而不是打印定义的错误。这里发生了什么。以及为什么NaN打印。
let num = "sflkj"
try {
let thenum = parseInt(num)
console.log(thenum)
} catch (error) {
console.log("that is not a number.")
}
var num1 = parseInt(document.getElementById("num-one").value) ; //'num-one , num-two'is an <input> text field
var num2 = parseInt(document.getElementById("num-two").value) ;
var test = num1 + num2 ;
因此,当我打开Devtools并在控制台中键入时:
typeof test
>'number'
但当我记录下来的时候:
我有一个带有两个值的2D数组,我想用一条小消息来打印这个差异。
var array = [[0,2],[3,4]];
console.log(array[0][1]-array[0][0]) //prints '2'
console.log(array[0][1]-array[0][0] + ' is the number') //prints '2 is the number'
console.log('The number is' + array[0][1]-array[0][0]) //prints 'NaN'
我有一个函数,它有以下几行:
payementReceived=data.toJSON().total;
paymentTotal=$("#paymentTotal").html();
console.log(typeof(parseInt(paymentTotal)));
console.log(typeof(parseInt(paymentReceived)));
console.log(parseInt(paymentTotal)-parseInt(paymentReceived));
我在控制台中得到了以下内容
number
num
我是javascript的初学者,我试着写一个简单的解码函数。这就是它:
function decode(text) {
let letter, count, i, result, letters;
result = "";
for (i = 0; i < text.length; i++) {
count = text[i];
if (typeof Number(count) === "number") {
count = Number(count);
我正在使用Eloquent Javascript学习Javascript。
在第二章中,有一段代码:
let theNumber = Number(prompt("Pick a number"));
if (!Number.isNaN(theNumber)) {
console.log("Your number is the square root of " +
theNumber * theNumber);
}
我试图理解Number.isNaN方法,并查看了有关它的W3schools,我得到了这些示例:
Number.isNa
我想要一个函数接受两个参数,如果它们都是数字,告诉我哪个更大。我也希望它能给出一个很好的输出,如果它们中的一些不是数字(因为它无论如何都不能计算它)。
我已经到了它可以处理int,但不能处理浮点数的地步。这让我摸不着头脑,我想知道写下来的最佳实践是什么。
这是我到目前为止所得到的;
var iamanumbergenius = function(a, b) {
if (Number.isInteger(a) && Number.isInteger(b)) {
if (a > b) {
console.log('first is greater');
代码的思想很简单:检查参数类型,如果是数字,则添加所有数字。如果类型是具有数字的字符串,则从字符串中提取数字并将其添加到提取的其他数字中。如果根本没有数字,而且只有字符串,则在控制台中返回消息:"All are strings"。
let result = 0;
function specialMix(...data) {
for (let i = 0; i < data.length; i++) {
if (typeof data[i] === "number") {
result += data[i];
我把一个字符串解析成一个浮点数,当我打印变量的类型时,我得到了数字。但是,如果我将变量添加到数组中,并从中打印变量,则会得到字符串。但是如果我然后点击索引,我会再次得到数字。
let clicks = []
let latitude = parseFloat(stringCoords.substring(11, 28))
clicks.push(latitude)
console.log(typeof(latitude)) -- prints number
for (var object in clicks) {
console.log(typeof(object)) -- prints
我知道这个错误
{ [CastError: Cast to Number failed for value "NaN" at path "area"]
message: 'Cast to Number failed for value "NaN" at path "area"',
name: 'CastError',
kind: 'Number',
value: NaN,
path: 'area&
我用JS编写了下面的代码。
函数foo() {
var s = "Jack";
s = parseInt(s);
console.log(s)
if (s!=NaN) {
if (typeof (s) == "number")
console.log("number");
else if (typeof (s) == "string")
console.log("string");
} else {
console.log("Your entry is
实际上我正在尝试下面这样的..
<!DOCTYPE html>
<html>
<body>
<p>A number divided by a non-numeric string becomes NaN (Not a Number):</p>
<p id="demo"></p>
<script>
var d = "10"; //typeof d is string
document.getElementById("demo").innerHTML
实际上,这是一个简单的程序,用来检查数字是否可以被2整除,或者不能被2整除,或者输入不是一个数字。根据我的信息,isNaN('berry)应该给我true,因为‘’berry‘是一个字符串,但是在我的代码中,这是非常错误的。
守则是:
var isNum = function(number) {
// My code goes here!
if (number%2===0){
return true
}
else if (isNaN(number)){
console.log("enter the number not the strin
我试图映射一个数组,并使用它的值或键作为返回的数据,在中。有人能解释为什么值0被读取为NaN吗?我在使用类型记录枚举时也注意到了同样的问题。
我使用的是:类型记录v.4.7.4,RN 0.69.2和react 18
带有控制台输出的简单代码示例:
const R = [...Array(4).keys()];
R.map((_i, key) => {
console.log(_i, key);
});
Output:
NaN NaN // value 0 is interpreted as NaN ???
1 1
2 2
3 3
这似乎只有在通过console.log或调试
有人能解释一下为什么类型的的行为方式如下:
typeof
//Returns: SyntaxError: Unexpected token } (Quite obvious)
"Why am I a " + typeof
//Returns: SyntaxError: Unexpected token }
"Why am I a " + typeof + "";
//Returns: "Why am I a number"
"Why am I a " + typeof + "??";