isNaN("123")输出为false为什么用if判断就显示true

问题遇到的现象和发生背景

当给prompt输入"123"显示为不是一个数字

问题相关代码,请勿粘贴截图
var b =prompt("判断是不是一个数字");
            if(isNaN(b)){
                alert(b +"不是一个数字");
            }else{
                alert(b + "是一个数字");
            }
            console.log(isNaN("123"));//"false"

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

为什么结果不一致

prompt输出的本身就是个字符串,你加了双引号,是当做字符输出的,所以走true

img

img

img

isNaN判断是否是数字,显示字符串不是数字,后面if会用Number()把"123"转换123,非0数字为true

img