javascript数据类型、函数传参

  • javascript语言核心:ECMAScript
  • 定义js的语法:基本对象、数据类型
  • js的数据类型

    • typeof运算符  判断数据类型

      • 字符串、数字、布尔、函数、对象(obj、[]、{}、null)、未定义(undefined)、数组、null...
      • 数据类型使用原则:一个变量只存放一种类型数据  
  • 数据类型转换
    • 数据类型转换

      • Number、parseInt、parseFloat

        <script type="text/javascript">
        var a1='';
        var a2=' ';
        var a3=[];
        var a4=null;
        var a5=[1]; var a6=[1,2,3];
        var json={json};
        var a7=Number(json);
        var a8=function(){alert(1)}
        var a9; console.log(Number(a1));//0
        console.log(Number(a2));//0
        console.log(Number(a3));//0
        console.log(Number(a4));//0
        console.log(Number(a5));//1 console.log(Number(a6));//NaN
        console.log(a7);//NaN
        console.log(Number(a8));//NaN
        console.log(Number(a9));//NaN
        </script>
      • <script type="text/javascript">
        var a1='+200px';
        var a2='-200px';
        var a3='200px12345';
        var a4='000000200px12345'; console.log(parseInt(a1));//200
        console.log(parseInt(a2));//-200
        console.log(parseInt(a3));//200
        console.log(parseInt(a4));//200
        </script>
      • 实例:两个输入框相加
      • 实例:判断输入值是否为小数
    • 隐式类型转换
      • +  =  *  /  %  <  >  ==  !  ++  --
  • 数据类型转换不成功
    • 数字类型:NaN详解

      • not a number不是个数字的数字类型
      • 一旦写程序中出现NaN,肯定进行了非法的运算操作
    • 特点:
      • 非数字的数字类型
      • false
      • NaN!=NaN
  • 检测数字的方法:isNaN
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript">
    window.onload=function(){
    var aLnp=document.getElementsByTagName('input');
    var str='';
    aLnp[1].onclick=function(){
    str=aLnp[0].value;
    //Html中拿到的内容,类型都是字符串
    //alert(typeof str);
    if(isNaN(str)){
    alert(str+'不是数字');
    }else{
    alert(str+'是数字');
    }
    }
    }
    </script>
    </head>
    <body>
    <input type="text" />
    <input type="button" value="判断输入值是不是数字"/>
    </body>
    </html>
  • 例子说明

    • var arr = [ '100px', 'abc'-6, [], -98765, 34, -2, 0, '300', , function(){alert(1);}, null, document, [], true, '200px'-30,'23.45元', 5, Number('abc'), function(){ alert(3); }, 'xyz'-90];
      
      /*
      1、找到arr里所有的数字:-98765, 34, -2, 0, 5
      2、找到可以转成数字的:'100px', -98765, 34, -2, 0, '300', '23.45元', 5
      3、把转成数字以后,最大值判断出来:300
      4、把 NaN 所在的位置找出来:1 14 17 19
      */
    • 答案1
      <!DOCTYPE HTML>
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>无标题文档</title>
      <script src="http://www.jq22.com/jquery/jquery-1.9.1.js"></script>
      <script>
      var arr = [ '100px', 'abc'-6, [], -98765, 34, -2, 0, '300', , function(){alert(1);},null, document, [], true, '200px'-30,'23.45元', 5, Number('abc'), function(){ alert(3); }, 'xyz'-90]; var numArr=[];
      $(function(){
      for(var i=0;i<arr.length;i++){
      if(typeof arr[i]==='number' && !isNaN(arr[i])){
      numArr.push(arr[i]);
      }
      }
      console.log(numArr);//[-98765, 34, -2, 0, 5]
      });
      </script>
      </head>
      <body>
      </body>
      </html>
    • 答案2
      <!DOCTYPE HTML>
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>无标题文档</title>
      <script src="http://www.jq22.com/jquery/jquery-1.9.1.js"></script>
      <script>
      var arr = [ '100px', 'abc'-6, [], -98765, 34, -2, 0, '300', , function(){alert(1);},null, document, [], true, '200px'-30,'23.45元', 5, Number('abc'), function(){ alert(3); }, 'xyz'-90]; var numArr=[];
      $(function(){
      for(var i=0;i<arr.length;i++){
      if('number' && parseFloat(arr[i])){
      numArr.push(arr[i]);
      }
      }
      console.log(numArr);//["100px", -98765, 34, -2, "300", "23.45元", 5]
      }); /* parseFloat(0) ----> 0 但是结果里面0没有输出来 不知道原因 知道的可以告诉我一下*/
      </script>
      </head>
      <body>
      </body>
      </html>
    • 答案3
      <!DOCTYPE HTML>
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>无标题文档</title>
      <script src="http://www.jq22.com/jquery/jquery-1.9.1.js"></script>
      <script>
      var arr = [ '100px', 'abc'-6, [], -98765, 34, -2, 0, '300', , function(){alert(1);},null, document, [], true, '200px'-30,'23.45元', 5, Number('abc'), function(){ alert(3); }, 'xyz'-90]; var numArr=[];
      $(function(){
      var index=0;
      for(var i=0;i<arr.length;i++){
      if(arr[index] < arr[i]){
      index = i;
      if(!isNaN(arr[i])){
      numArr += 'number' && parseFloat(arr[i]);
      }
      }
      }
      console.log(numArr);//300
      });
      </script>
      </head>
      <body>
      </body>
      </html>
    • 答案4
      <!DOCTYPE HTML>
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>无标题文档</title>
      <script src="http://www.jq22.com/jquery/jquery-1.9.1.js"></script>
      <script>
      var arr = [ '100px', 'abc'-6, [], -98765, 34, -2, 0, '300', , function(){alert(1);},null, document, [], true, '200px'-30,'23.45元', 5, Number('abc'), function(){ alert(3); }, 'xyz'-90]; var numArr=[];
      $(function(){
      for(var i in arr){
      if(typeof arr[i] === 'number' && isNaN(arr[i])){
      numArr += i+ '、';
      }
      }
      console.log(numArr);//1、14、17、19、
      });
      </script>
      </head>
      <body>
      </body>
      </html>

最新文章

  1. afxcomctl32.h与afxcomctl32.inl报错
  2. css-css权威指南学习笔记5
  3. gulp打包js/css时合并成一个文件时的顺序解决
  4. 在测试框架中使用Log4J 2
  5. 把 TBytes 转换为十六进制字符串
  6. 什么是JDK,JRE
  7. Oracle游标总结三
  8. masterha_check_repl报错汇总
  9. SQL删除数据库里所有表的外键,同时删除所有用户表
  10. Jlink烧写图文教程
  11. Android 天气应用开发
  12. 36th成都区域赛网络赛 hdoj4039 The Social Network(建图+字符串处理)
  13. Centos 如何 发布Java项目
  14. 功能测试话题分享-0323 Bug
  15. python之路day12--装饰器的进阶
  16. Java_判断文件是否写入完成
  17. C#项目学习记录
  18. docker 使用指南
  19. Istio如何使用相同的端口访问网格外服务
  20. spark的ML和MLLib两个包区别和联系?

热门文章

  1. golang 小知识点记录
  2. Entity Framework + WCF 远程调用出错
  3. web开发微信文章目录
  4. 对工具的反思 &amp; deadlines与致歉
  5. 基于jersey和Apache Tomcat构建Restful Web服务(一)
  6. inline-block 空隙
  7. Ubuntu-C++环境设置
  8. 10-Mysql数据库----数据的增删改
  9. iOS-Hello World
  10. STL应用——hdu1702(队列+堆栈)