javascipt数据类型

来源:互联网 发布:免费数据恢复大师 编辑:程序博客网 时间:2024/04/28 06:27

javaScript数据类型

undefined

  • 使用var声明变量但未初始化,或者直接未声明
    var a; <br>alert(a);//undefined <br>alert(b);//控制台输出b is not defined(这是会报错)</li>

  • 区分空对象指针与尚未定义的变量

  •     var a=null;    alert(a);//null    alert(typeof a);//object    var b;    alert(a);//undefined
  • 对未初始化的变量以及未声明的变量使用typeof运算符均会返回undefined

    var a;

    alert(typeof a);//undefined

    alert(typeof b);//undefined

null

  • 逻辑上null表示一个空对象的指针

    var a=null;

    alert(a);//null

  • 使用typeof检测会返回object

    alert(typeof a);//object

undefined与null的关系

  • undefinded派生于null因此在使用“==”进行比较
    会返回一个人true;

     alert(undefined==null);//true alert(undefined===null);//false,数据类型不同
  • 没必要将变量声明为undefined,声明空对象应将值赋给null

    var a=null;

boolean

  • true为真,false为假
  • true不一定为1,false不一定为0,会发生转换类型但不同

         alert(true==1);//true     alert(true===1);//false     alert(false==0);//true     alert(false===0);//false
  • 使用Boolean()进行转换

    • 转换为true

      任何非空字符串任何非0数值任何非空对象 null和undefined会转换为false alert(Boolean(undefined)); alert(Boolean(null));
      • 转换为false

        空字符串

        0以及NaN

        null以及undefined

String

特性

  • 由0个或多个16位Unicode字符组成
  • 单引号和双引号不能交叉
  • 可以使用.length属性访问字符串长度

    • 转义序列表示一个字符
    • 无法精确返回双字符长度(汉字占两个字节)

          str="abc a\x675";    alert(str);//abc ag5    alert(str.length);//7  \x67为16进制转义字符
  • 字符串一旦被创建,其值不能改变,若要改变必须销毁原有的字符串

    var lang = “Java”;lang = lang + “Script”实现这个操作的过程如下:首先创建一个能容纳10个字符的新字符串,然后在这个字符串中填充“Java”和“Script”,最后一步是销毁原来的字符串“Java”和“Script”,因为这两个字符串已经没用了。但是在低版本的浏览器(如IE6)中,字符串拼接速度是很消耗一个性能的过程。

转义序列

  • \n 换行 \t 制表符
  • \b 空格 \r 回车
  • \f 分页符 \反斜杠\
  • \’单引号 \” 双引号
  • \xnn 十六进制数,n 代表0~F
  • \unnnn 以十六进制表示一个Unicode字符

类型转换

  • toString

    • 使用的类型:number boolean String object;
    • 参数:2,8,16,10 进制转换后变字符串

      /*var a=289;alert(a.toString());alert(a.toString(2));alert(a.toString(8));alert(a.toString(10));alert(a.toString(16));*/var a=null;var b=undefined;var c=NaN;var d=new Object();var e=true;//alert(a.toString())// Cannot read property 'toString' of null//alert(b.toString())// Cannot read property 'toString' of undefinedalert(c.toString())//NaNalert(d.toString())//objectalert(e.toString())//true
  • String()

    • null
    • nudefined

      var b=undefined;var c=NaN;var d=new Object();var e=true;alert(String(1));//1alert(String(b));//undefinedalert(String(c));//NaNalert(String(d));//objectalert(String(e));//true
  • eval()

    • 计算字符串表达式的值或代码片段并以数值的形式返回

      eval("x=10;y=20;document.write(x*y)");//200document.write("<br>" + eval("2+2"));//4document.write("<br>" + eval(x+17));//27

number

进制

  • 十进制
  • 八进制
    • 前导:0
    • 有效序列:0~7
    • 超出范围
      • 前导0被忽略
      • 后续数值以十进制计数
  • 十六进制
    • 前导:0x或者0X
    • 有效序列0~F

浮点数

  • 小数后面至少一位
  • 科学计数法
    • 小数点后有6个0的浮点数
    • 以e或者E为底*10的N次幂
  • 最高的进度
    • 17位小数
  • 缺陷
    • 存在舍入误差
    • 无法测试特定的浮点数值

数值范围

  • 最小大值
    • Number.MIN_VALUE;
    • Number.Max_VALUE;
  • 超出范围
    • 正无穷
      • Infinity
      • Number.POSITIVE_INFINITY
    • 负无穷
      • -Infinity
      • Number.NEGATIVE_INFINITY
    • 缺陷
      • 无法参与下一次计算
    • 检测方法
      • isFinite()
        • 超出:false
        • 合法:true

NaN

  • 含义
    • Not a Number
    • 非数值
  • 特性
    • 任何涉及NaN操作都将返回NaN
    • NaN与任何数值都不等(包括自己)
  • 检测
    • isNaN()
      • 可转换数值:(false)
      • 不能:true

数值转换

Number()

  • Boolean
    • true:1
    • false:0
  • null
    • 0
  • undefined
    • NaN
  • String

    • 只包含数字或有效浮点格式
      • 十进制数
      • 前导0忽略
    • 包含有效十六进制数格式
      • 相同大小的十进制数
    • 空字符串
      • 0
    • 其他格式字符串

      • NaN

        var a="12asd";alert(Number(a));//NaN
  • object

    • valueOf():返回对象的原始值
    • toString()

paseInt()

  • 特性
    • 忽略前置空格
    • 直接找到第一个非空格字符
      • 不是数值或负号:NaN
      • 数字字符
        • 解析数字字符
        • 遇到非数字字符结束
  • 参数
    • 参数1:解析的字符
    • 参数2:转换时的进制

parseInt()

  • 从第一个字符开始解析
  • 遇到无效字符结束
  • 只有第一个小数点有效
  • 忽略前导0
  • 十六进制始终为0
  • 没有小数点或者小数点后全为0:转换整数

object

  • 定义:一组数据或功能的集合
  • 声明: var o=new Object();
  • 属性与方法

    • Constructor:用于返回创建的当前对象的函数

          var d=new Date();     alert(d.constructor);//function Date() { [native code] }
    • hasOwnProperty(propertyName):是用来判断一个对象是否有你给出名称的属性或对象。不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员
    • isPrototypeOf(object):检测传入的对象是否是另一额对象的原型
    • propertyIsEnumerable(propertyName):检测给定属性能否用for-in语句枚举
    • toLocalString():返回对象的字符串表示,该字符串与执行环境的地区对应
    • toString()返回对象的字符串表示
    • valueOf()返回对象的字符串,数值或者布尔值:通常与toString()的值相同
0 0
原创粉丝点击