javascript学习3

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>
        View Code
      • <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>
        View Code
      • 实例:两个输入框相加
      • 实例:判断输入值是否为小数
    • 隐式类型转换
      • +  =  *  /  %  <  >  ==  !  ++  --
  • 数据类型转换不成功
    • 数字类型: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>
    View Code
  • 例子说明
    • 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>

 

posted @ 2017-07-05 16:23  左耳_fly  阅读(191)  评论(0编辑  收藏  举报