console.log(typeof age-"abc")

来源:3-7 JavaScript数据类型之Number与isNaN

郝存杰

2018-11-10 19:18:28

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>Document</title>

    

</head>

<body>

   <script type="text/javascript">

    // 一次声明多个变量

    var name_01=18,email="marry@sina.com.cn";

    var distance=12.67,age=15;


    console.log(typeof (age-"abc"))

   </script>

</body>

</html>

根据老师的讲座练习。在console.log(typeof (age-"abc"))时,返回值是number;

在console.log(typeof  age-"abc")时,返回值是NaN。

这是正常的,还是我哪儿写错了?

写回答

1回答

Miss路

2018-11-11

这个是关于底层代码原理的,你可以这样来理解:

1、先说老师讲的typeof后面带括号的这种,typeof()是一个方法。其实是这样的执行流程,console.log(typeof  (age-"abc")),先运算这个减法:age-"abc ,结果是NaN,那么再执行 typeof NaN ,那么结果就是number。

http://img.mukewang.com/climg/5be7b4710001adf817380610.jpg

2、不带括号的,typeof 是操作符 ,操作符返回一个字符串,表示未经计算的操作数的类型。也就是说它直接运行了typeof  age-"abc,并没有先进行减法运算,所以直接把age-"abc归为NaN了。

如果帮助到了你,欢迎采纳!

1

0 学习 · 36712 问题

查看课程