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>

javascript学习3的更多相关文章

  1. JavaScript学习(一) —— 环境搭建与JavaScript初探

    1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...

  2. Web编程基础--HTML、CSS、JavaScript 学习之课程作业“仿360极速浏览器新标签页”

    Web编程基础--HTML.CSS.JavaScript 学习之课程作业"仿360极速浏览器新标签页" 背景: 作为一个中专网站建设出身,之前总是做静态的HTML+CSS+DIV没 ...

  3. JavaScript学习(3):函数式编程

    在这篇文章里,我们讨论函数式编程. 什么是函数式编程?根据百度百科的描述,“函数式编程是种编程典范,它将电脑运算视为函数的计算.函数编程语言最重要的基础是 λ 演算(lambda calculus). ...

  4. JavaScript学习(2):对象、集合以及错误处理

    在这篇文章里,我们讨论一下JavaScript中的对象.数组以及错误处理. 1. 对象 对象是JavaScript中的一种基本类型,它内部包含一些属性,我们可以对这些属性进行增删操作. 1.1 属性 ...

  5. JavaScript学习13 JavaScript中的继承

    JavaScript学习13 JavaScript中的继承 继承第一种方式:对象冒充 <script type="text/javascript"> //继承第一种方式 ...

  6. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  7. JavaScript学习11 数组排序实例

    JavaScript学习11 数组排序实例 数组声明 关于数组对象的声明,以前说过:http://www.cnblogs.com/mengdd/p/3680649.html 数组声明的一种方式: va ...

  8. JavaScript学习10 JS数据类型、强制类型转换和对象属性

    JavaScript学习10 JS数据类型.强制类型转换和对象属性 JavaScript数据类型 JavaScript中有五种原始数据类型:Undefined.Null.Boolean.Number以 ...

  9. JavaScript学习09 函数本质及Function对象深入探索

    JavaScript学习09 函数本质及Function对象深入探索 在JavaScript中,函数function就是对象. JS中没有方法重载 在JavaScript中,没有方法(函数)重载的概念 ...

  10. JavaScript学习08 Cookie对象

    JavaScript学习08 Cookie对象 JavaScript Cookie Cookie对象: Cookie是一种以文件的形式保存在客户端硬盘的Cookies文件夹中的用户数据信息(Cooki ...

随机推荐

  1. MySQL数据库服务器逐渐变慢分析

    第一步 检查系统的状态 1.1 使用sar来检查操作系统是否存在IO问题 #sar -u 2 10 — 即每隔2秒检察一次,共执行20次. [root@CacheMemCache tester]# s ...

  2. 讨伐Cucumber行为驱动

    Cucumber行为驱动,简称BDD,其核心思想是把自然语言转换成代码:但在敏捷开发的过程中,这种东西极大的束缚了测试人员的手脚,感觉它像封建时代的八股文,要遵守严格的韵律,反正我个人十分反感:就像在 ...

  3. 常用模块(chardet)

    作用:检测二进制的编码格式,不是百分百正确 import chardet f = open('test.txt', 'rb')data = f.read()print(data)result = ch ...

  4. 玩玩自动化测试之selenium篇

    现如今社会科技发展太快了,纯功能点点点已经落后别人好几条街了,所以为了让自己多点职业生涯年限,得挺起肩,傲起头.自动化测试,其本质是用代码程序测试程序,所以其实第一步应该学好编程语言,后再自己开发自动 ...

  5. Struts2(二.用户登录模块)

    1.编写Javabean /src/myuser/User.java 在strut1中,Javabean需要继承于struts1 api中的ActionForm类.struts2没有此要求 strut ...

  6. python进阶训练

    1.列表,字典,集合解析 from random import randint #列表解析,选出大于0的元素 data=[randint(-10,10)for i in range(10)] resu ...

  7. 【Python】python函数每日一讲 - dir()

    最近确实是有些忙,刚过了年,积攒了很多事情需要处理,所以每日一函数只能是每两天更新一篇,在这里和大家致歉. 今天我们来看一个非常重要的函数:dir() 中文说明:不带参数时,返回当前范围内的变量.方法 ...

  8. Xcode 自动打包之旅【本文摘自智车芯官网】

    由于公司项目很多,作为iOS端的开发工程师,在打包和上传App Store过程中超级费时,而且往往会有频繁更改需求重新打包.上传的情况.这些过程让我不胜其烦.之前有听说过自动打包,一直没有时间尝试,此 ...

  9. Java IO 流 体系结构图

  10. 【bzoj1787】[Ahoi2008]Meet 紧急集合 倍增LCA

    题目描述 输入 输出 样例输入 6 4 1 2 2 3 2 4 4 5 5 6 4 5 6 6 3 1 2 4 4 6 6 6 样例输出 5 2 2 5 4 1 6 0 题解 倍增LCA 首先有集合点 ...