这里if(typeof maxAge === 'number')为什么相等啊

这里if(typeof maxAge === 'number')为什么相等啊

    var maxAge = 18;

       

        console.log(typeof 'number'); // string

        console.log(typeof maxAge); // number

        if(typeof maxAge  ===  'number'){ // string和number类型相等

                console.log(121); //能打印出来

        }


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,这里相等的原因是当typeof maxAge返回回来的时候其实是"number"(是数字类型)所以会相等,如果将判断条件如下:

https://img1.sycdn.imooc.com//climg/628db78309cc1bb914570459.jpg

那么是条件是不成立的。那么所以说当typeof maxAge它在计算后得出的结果是"number"当后面也是"number"时才相等。相当于if("number" === "number")

祝学习愉快!

  • 慕田峪1427181 提问者 #1

    我知道maxAge 返回的类型是number,我的疑问是,number类型, 是可以加引号这样写吗'number' 加引号不就是string类型了吗

    2022-05-26 09:12:53
  • 好帮手慕小李 回复 提问者 慕田峪1427181 #2

    同学你好,typeof(maxAge)这里返回回来的是类型,这里并不是说要加引号,而是js-->规定typeof(xxx)返回的结果就是带引号包裹类型,另一方面如果不带引号不就成了变量了么。

    祝学习愉快!

    2022-05-26 09:43:01
  • 慕田峪1427181 提问者 回复 好帮手慕小李 #3

    我不明白的是 ===  'number' 这块,, 我不明白的是,为什么能和,加了引号的  ===  'number' 相等,

    你的意思是,用typeof 检测后得出的结果就是 ;'number'只不过浏览器省略了这个引号对吗,

    那么我这样写===  number是不是也是对的呢

    2022-05-26 10:05:28
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师