zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    Jmeter 设置中文
    不同JDK版本直接的intern()方法的区别---JDK6 VS JDK6+
    java内存模型中堆和栈的区别
    JVM三大性能调优参数 -Xms -Xmx -Xss的含义
    Class<?>中isAssignableFrom()方法与instanceof关键字
    Lua中ipairs 和 pairs的区别
    Redis主从同步中的repl_backlog_buffer和repl_buffer
    Redis-开启使用AOF日志
    将windows 文件复制到linux上去
    winform集成第三方应用引起灾难性崩溃处理
  • 原文地址:https://www.cnblogs.com/web-Knowledge/p/7122059.html
Copyright © 2011-2022 走看看