zoukankan      html  css  js  c++  java
  • javascript 红宝书笔记之数据类型

     
    typeof   检测给定变量的数据类型,通过typeof来区分函数和其它对象
     
    var message = 'some string';
    console.log(typeof(message));     // "string"
     
    console.log(typeof(null));   // "Object" 特殊的返回值,因为null被认为是一个空的对象引用。
     
     
    注意:
    • 尚未声明过的变量,只能进行一项操作,就是使用typeof检测它的数据类型
     
     
    Undefined    它只是一个值,值是undefined. 
                 场景:使用var 声明变量,但没有赋值(没有初始化)时,这个变量会返回 undefined.
                 Undefined主要目的是用于比较,是为了正式区分空对象指针与未经过初始化的变量,我理解为,是为了区分变量的返回值是空对象null还是undefined
     
    当声明变量未赋值时,这个变量与undefined是等价的
    var message;
    console.log(message == undefined);   //true
     
    无论什么情况下,都不要把一个变量的值,设为undefined
     
     
     
    注意:
    • 对未赋值的变量与未声明的变量,执行typeof时,均返回 undefined;
    • 在实际操作中,只需要知道一点,使用typeof检测变量时,如果返回 undefined ,我们就会知道,这个变量没有被赋值,就是没有被初始化;
     
     
    null     它只有一个值,是第二个只有一个值的数据类型,它的值是 null。
             它表示一个空的对象指针,使用typeof检测时会返回 “Object”.
     
    var message = null;
    console.log(typeof(message));   //  "Object"
     
    如果定义的变量,将来用于保存对象,那么最好将该变量初始化为null,因为null是一个空对象.如果这个变量还没有真正的保存对象,那么这个变量的值就应该是null,而不是其它的数据类型
     
     
    Number     数据类型  它会值可以保存为  +0  或  -0  , +0  = -0 它们是相等的。
               可以保存为整数与浮点数。
               NaN Not a Number  这个值是表示本来要表示数值的操作数未返回数据的情况
    任何涉及NaN的操作都会返回NaN;NaN与任何值都不相等,它与任何值比较都为false;
     
    • 方法:isNaN(param) 只接收一个参数,为了判断这个参数是否可以转换为数值 ,所有不能转换为数值的参数均返回false  
               
    什么叫浮点数? 就是该数值必须包含一个小数点,而且小数点后面必须至少有一位数字。保存浮点数的内容空间是保存整数的 2倍 ,因此,只要遇到浮点数,我们就要把它转变为整数。
    将浮点数转换为整数的常用方法是:e表示法 =》 e前面的数值 * 10
    • 方法: Math.round(数值)  接收一个数值参数,目的是把不同的数四舍五入至最接近的整数
             document.write(Math.round(0.6));    //1
             document.write(Math.round(12.9));   //13
             document.write(Math.round(0.4));    //0
     
               数值转换  可以把非数值转换为数值 = 一元加操作
     
    • 方法 a : Number()  转型函数,可以用于任何数据类型
    1. true => 1
    2. false => 0
    3. null => 0
    4. undefined => NaN
    5. "" => 0 ;"123" => 123; "0123" => 123; "holle wrold" => NaN;
    • 方法 b : parseInt(字符串, 基数)  [pa:z] 参数有2个  专门用于把字符串转成数值。基数:多少进制,无论什么情况下,都要写明要转换成什么进制的基数,默认十进制,它的基数就是10
              var num = parseInt("10",2);   //2
              var num = parseInt("10",8);   //8
              var num = parseInt("10",10);  //10
              var num = parseInt("22.5");   //22
    • 方法 c : parseFloat(字符串)             参数只有一个    专门用于把字符串转成数值,它只能解析十进制值,因此,它的参数只有一个,没有基数
               var num = parseFloat("22.34.5");    //22.34
               var num = parseFloat("0908.5");     //908.5
               var num = parseFloat("1234red");    //1234
               var num = parserFloat("22.5");      //22.5 
     
     
     
    string    字符串
     
              转义字符:用于不可打印的特殊字符,通常用于表示一些功能:
                换行;     制表;      退格;       回车;    \斜杆
     
              转换字符串: 
    • 方法1:  toString(基数)   没有参数,但是有基数,要输出什么进制的值,改变基数即可。这个方法会通过基数改变输出的值。默认会输出基数为10的字符串。
              var num = 10;
              num.toString(2);    //转换为二进制字符串
              num.toString(8);    //转换为八进制字符串
              ... ...
      • 方法2: string(value)   转型函数,能够将任意的值转为字符串,没有基数。
         
     
     
    Object    对象
     
    var Obj = new Object();
     
     
    操作符
     
    ~   非        返回数值的反码;
    &   与        只有两个条件满足为true,才是true;只要有一个条件为false,就全部是false;
    |   或        只有一个条件为true,就是true;
    <<  左移      将数值的所有位向左移动指定的位数;
    >>  右移      将数值的所有位向右移动指定的位数;
     
     
    !   求反      无论这个值是什么类型,都会返回一个布尔值;
    !!            第一个 !  是返回一个布尔值;第二个 ! 是对返回的布尔值求反;
                   !false  //true;
                   !"red"  //false,非空字符串为false;       !!"red"      //true
                   !0      //true;                          !!0          //false
                   !NaN    //true;                         !!NaN         //false
                   !""     //true;                         !!""          //false
     
    &&  逻辑与    如果第一个条件为true,还会对第二个条件进行求值;
                  如果第一个条件为false,就直接跳出来了,不会对第二个条件进行求值;
     
    ||  逻辑或    如果第一个条件为true,就不会对第二个条件进行求值;
     
    ==  相等,则为true
    !=  不相等,则为true
     
    nuu == undefined     NaN != NaN     false == 0    true == 1     "5"  ==  5
     
    a ? b : c   条件操作
     
    a 为条件  b c 分别指不同的值;当条件满足时,值为b;当条件不满足时,值为c
     
    =   赋值
    ,   逗号,一次声明多个变量,一次执行多条语句
     
    var num = 1 , num2 = 2 , num3 = 3 , ...
     
     
     
    语句  (使用while循环做不到的同样使用for循环也做不到)
     
    if 语句                 条件判断                                if(条件){执行}
     
    do-while 语句           先执行一次再根据条件判断                 do {执行} while {条件}
     
    while 语句              执行前,先根据条件判断                   while (条件){执行}  条件的初始化变量,在外部
     
    for 语句                执行前,先根据条件判断                   for(条件){执行}     条件的初始化变量,在内部
     
    for-in 语句             要迭代的属性精准到一个对象或数组中        for ( 属性 in 对象 ){执行}
     
    label 语句              添加标签                                 标签名 : for(){}
     
    break 语句              立即退出循环
     
    continue 语句           立即退出循环,退出后,会从循环的顶部继续执行
     
    switch 语句             流控制,与break搭配使用                  switch(条件){case:....break;}
     
    with 语句               将代码的作用域设置到一个特定对象中        with(共同的对象){执行}
              
                            var num = location.subString(1);
                            var num2 = location.hostName;
                            var num3 = location.href;
     
                            上面的代码,都包含有一个location对象,使用with语句:
         
                             with (location){
                                  var num = subString(1);
                                  var num2 = hostName;
                                  var num3 = href;
                             }
     
  • 相关阅读:
    OpenDataSource、OPENQUERY、OPENROWSET用法
    DROIDSLAM 论文阅读笔记
    android之路重新开启
    Android工程目录
    新入园
    获取输入框内容,数值类型转换问题
    基于.net平台remoting、DB2技术的大型分布式HIS系统架构及开发(项目架构师方向)
    基于ios开发点餐系统应用(附带源码)
    DEV控件及如何实现一些功能的应用(附带PPT讲解)
    基于J2EE+JBPM3.x/JBPM4.3+Flex流程设计器+Jquery+授权认证)企业普及版贝斯OA与工作流系统
  • 原文地址:https://www.cnblogs.com/baiyygynui/p/5526104.html
Copyright © 2011-2022 走看看