zoukankan      html  css  js  c++  java
  • 《JavaScript高级编程》读书笔记——数据类型

    ECMAScript中有5种简单数据类型(基本数据类型):Undefined、Null、Boolean、Number和String,还有一种复杂数据类型——Object,Object本质上是由一组无序的名值对组成的。
    1. typeof操作符
         对一个值使用typeof操作符可能返回下列某个字符串:
    • "undefined"——如果这个值未定义
    • "boolean"——如果这个值是布尔值
    • "string"——如果这个值是字符串
    • "number"——如果这个值是数值
    • "object"——如果这个值是对象或null
    • "function"——如果这个值是函数
     
    2. undefined值是派生自null值的,因此 null==undefined 为true
     
    3. Number类型
         var intNum=55;     //十进制
         var octalNum1=070;     //八进制的56
         var octalNum2=079;     //无效的八进制数值,解析为79 
         var octalNum2=08;     //无效的八进制数值,解析为8
         var hexNum1=0xA;     //十六进制的10
         var hexNum2=0x1f;     //十六进制的31
     
    • NaN
         NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(例如,除以0会返回NaN)。
         NaN本身有两个特点:首先,任何设计NaN的操作都会返回NaN;其次,NaN与任何值都不想等,包括NaN本身(例如 NaN==NaN 返回false)。
         针对这两个特点,ECMAScript定义了isNaN( )函数(例如:isNaN(NaN)返回true)。
    • 数值转换
         有3个函数可以把非数值转换为数值:Number( )、parseInt( )和parseFloat( )。Number( )可以用于任何数据类型,另外两个函数则专门用于字符串转换数值。
         Number( )函数的转换规则如下:
      • 如果是Boolean值,true和false将分别转换为1和0。
      • 如果是null值,返回0。
      • 如果是undefined,返回NaN。
      • 如果是字符串:
        • 如果只包含数字,则转换为十进制数值。
        • 如果包含有效的浮点格式,则转换为浮点数值。
        • 如果包含有效的十六进制,例如“0xf”,则转换为相同大小的十进制整数值。
        • 如果字符串是空的,则转换为0。
        • 如果字符串包含除上述之外的字符,则转换为NaN。
      • 如果是对象,则调用对象的valueOf( )方法,然后依照前面的规则转换。如果转换结果是NaN,则调用对象的toString( )方法,然后依照前面的规则转换。
         parseInt( )函数转换规则:(会忽略字符串前面的空格,直至找到第一个非空格字符
      • 如果第一个字符不是数字字符或者负号,返回NaN。
      • 如果第一个字符是数字字符,会继续解析接下来的字符,直至解析完所有字符或者遇到了一个非数字字符。(例如,“1234blue”返回1234)
      • 如果字符串以“0x”开头且后跟数字字符,就会当做十六进制转换为十进制;如果以“0”开头,会当做八进制转换为十进制。(注:parseInt("****",16),第二个参数指定按十六进制解析,依次类推)
         parseFloat( )与parseInt( )类似,也是从第一个字符开始解析,若遇到无效的浮点数字字符则停止,忽略后面的字符串(例如:“22.34.5”返回22.34)。第二个区别在于它始终会忽略前导的零。如果可解析为整数,则返回整数。
     
    4. String类型
         在调用数值的toString( )方法时,可传递一个参数:输出数值的基数。
         null和undefined没有toString( )方法。在不知道是null或undefined的情况下,可使用转型函数String( ):
         var value1=10;
         var value2=true;
         var value3=null;
         var value4;
         alert(String(value1));     //"10"
         alert(String(value2));     //"true"
         alert(String(value3));     //"null"
         alert(String(value4));     //"undefined"
     
    5. Object类型
         Object的每个实例都具有下列属性和方法:
    • constructor:保存着用于创建当前对象的函数。
    • hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中是否存在。
    • isPrototypeOf(object):用于检查传入的对象是否是传入对象的原型。
    • propertyIsEnumerable(propertyName):用于检查给定的属性是否能够使用for-in语句累美剧。
    • toLocaleString( ):返回对象的字符串表示,该字符串与执行环境的地区对应。
    • toString( ):返回对象的字符串表示。
    • valueOf( ):返回对象的字符串、数值或布尔值表示;通常与toString( )方法相同。

    作者:webbzhong
    出处:http://www.cnblogs.com/webbzhong/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。

  • 相关阅读:
    手机端调用摄像头拍照
    判断浏览器是否支持css3属性或单位
    浏览器页面加载解析渲染机制(一)
    css默认值汇总
    分享几个高效编写JS 的心得
    说几个JS优化技巧吧
    yahoo的30条优化规则
    Jquery的$命名冲突
    C语言时间头文件
    C语言随机数的生成
  • 原文地址:https://www.cnblogs.com/webbzhong/p/4923862.html
Copyright © 2011-2022 走看看