老师,下面这个加上typeof返回值是string,不加typeof才是NaN

来源:3-12 JavaScript数据类型之数值转换

慕先生1376233

2020-06-09 21:02:33


<!DOCTYPE html>

<html>

<head>

<title>index </title>

</head>

<body>

     <script type="text/javascript">

     

      //声明保存用户名的变量不能以数字开头

      /*var name;*/


      //变量赋值


      /*name="marry";*/


      //声明保存年龄的变量

      /*var age;

      age=18;

      //var age=18声明的同事赋值


      //声明保存邮箱的变量

      var emali="marry@sina.com.cn"; */



      //一次声明多个变量

      var name="marry",age=18,

      emali="marry@sina.com.cn",address,astting=null;

      var distance=12.67980;

      var id="16";


         //在控制台中打印

      console.log(name);

     

          // 检测数据类型

      console.log(typeof(age));



        //声明一个变量没有赋值,返回的类型就是  underfined

      console.log(typeof(address));

         

      //Number

      console.log(distance)


        console.log(age-3);


        //NaN非数值,

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


        //isNaN返回值boolean,true/false,

        console.log(isNaN(age));

        console.log(isNaN(emali));

       // isNaN尝试会转数字

        console.log(isNaN(id));


        //转换数值


        //number强制转换

        id=Number(id);

        console.log(typeof(id));

        //字符串转不了的情况下,返回NaN

        name=Number(name);

        console.log(typeof(name));


        //字符串不能相减,返回值NaN 

       var top="28px";

       console.log(top-10);



      









</script>

</body>

</html>

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

写回答

1回答

好帮手慕星星

2020-06-10

同学你好,typeof检测值的类型,类型中没有NaN。而name变量值为字符串类型,即使Number()转化之后,得到的NaN也是字符串类型,可以和正常的NaN输出对比一下

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

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

所以使用typeof检测name的时候为string字符串类型。

祝学习愉快!

0

0 学习 · 40143 问题

查看课程