美文网首页
JavaScript数据类型

JavaScript数据类型

作者: 闪电西兰花 | 来源:发表于2016-10-26 16:36 被阅读0次
    1.ECMAScript中的5种简单数据类型
    • Undefined:只有一个值undefined,表示变量只被声明,没有被初始化,也就是有这个指针,但指针没有指向任何空间
    var mes;
    console.log(typeof mes);        //undefined
    
    • Null:只有一个值null,表示一个空对象指针,因此用typeof检测null值时返回object;如果定义的变量将来准备用于保存对象,那么最好将该变量初始化为null
    • Boolean:有2个值,分别是truefalse,常用于条件测试中
    • Number:整数、浮点数、十六进制等都统一为该类型,需要注意的是Number类型是有范围的;还有NaN表示非数值(Not a Number),这个数值表示一个本来要返回数值的操作数未返回数值的情况;任何涉及NaN的操作都返回NaNNaN与任何值都不相等,包括本身
    • String:由零或多个16位Unicode字符组成的字符序列;可以用单引号或双引号表示,没有区别,匹配即可;任何字符串的长度都可以通过其length属性获得
    //ECMAScript中的字符串是不可变的
    //要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量
    var mes = 'Java';
    mes = mes + 'Script';
    console.log(mes);             //JavaScript
    //首先创建一个能容纳10个字符的新字符串
    //然后在这个字符串中填充'Java'和'Script'
    //最后销毁原来的字符串'Java'和'Script'
    
    String类型包含一些特殊的字符字面量(转义字符):
    \n: 换行
    \r: 回车
    \t:水平制表符
    \\:\
    
    2.ECMAScript中的复杂数据类型
    • Object:JS的核心概念,JS的所有数据都可以被视为对象,即一种无序的数据集合,由若干个“键值对”(key-value)构成,key我们称为对象的属性,value可以是任何JavaScript类型,甚至可以是对象
    3.typeofinstanceof的作用和区别
    • typeof:一个操作符;用于获取一个变量的类型,一般只能返回如下结果:"number","boolean","string","function","object","undefined";但是当遇到Array,Null等特殊对象时,typeof只会返回"object",这就是typeof的局限性
    typeof(1);         //"number"
    typeof("2");       //"string"
    typeof(new Object());      //"object"
    
    • instanceof:用于判断某个变量是否是某个对象的实例,返回值为布尔值,instanceof的内部机制是:每个实例都有proto隐藏属性,instanceof的时候会拿实例的proto属性与构造函数的prototype比较是否相同,因此写法也和typeof不同
    var a = [1,2,3];
    var b = function(){};
    console.log(a instanceof Array);   //true
    console.log(b instanceof Function);   //true
    
    4.数值转换
    • Number():可用于任何数据类型;规则相当复杂而且不合理,几乎不使用
    • parseInt()parseFloat():用于将字符串转换成数值;
    • parseInt()parseFloat()规则如下:
      • 忽略字符串前面的空白字符,找到第一个非空白字符
      • 如果第一个字符不是负号(-)或者数字返回NaN(转换空字符串返回NaN)
      • 如果是继续解析,直到非数字字符为止
      • 0开头会当做八进制,0x开头会当做十六进制,但是可以指定第二个参数指定基数
    • parseInt()parseFloat()区别:
    • 字符串中第一个小数点是有效的
    • 始终忽略前面的零
    parseInt(" ");                          //NaN
    parseInt("1234blue");                   //1234
    parseInt("22.5");                       //22
    parseFloat("22.5");                     //22.5
    parseFloat("0909.5");                   //909.5
    

    相关文章

      网友评论

          本文标题:JavaScript数据类型

          本文链接:https://www.haomeiwen.com/subject/hgaiyttx.html