JS里的数据类型

作者: 飞天小猪_pig | 来源:发表于2019-04-14 20:18 被阅读198次

    JS的7大数据类型

      1、number    2、string    3、boolean
      4、symbol    5、null      6、undefined
      7、object
    

    注意:JS是没有array、function这两种类型,这两种都是属于object类型的。

    一、number数据类型(数字类型)

    var x=1 //整数  
    var x=1.1 //小数
    var x=1.23e2 //科学记数法 1.23e2=1.23*10^2
    var x=0b11 //二进制
    var x=011 //八进制  (后来ES5添加了0o11语法)
    var x=0x11 //十六进制
    

    注意:上述提到均为number的数据类型,其中以0b开头的表示二进制,以0开头的表示八进制,以0x开头表示十六进制

    二、string数据类型(字符串类型)

    var x='你好' //中文字符串
    var y="你好" //中文字符串
    var x='abc'  //英文字符串
    var  x='1'  //数字字符串
    var x='' //空字符串,length=0
    var x=' ' //空格字符串,length=1
    

    注释:字符串必须要用单引号或双引号括起来,如数字1和数字'1',前者没有单引号属于number类型,后者添加单引号属于string类型。

    1、字符串中转义符\的应用:

    var x='\' //转义符,一个整体
    var x='\n' //表示回车键,length=1
    var x='\t' //表示Tab键,length=1
    var x='\\' //表示斜杠\,length=1
    
    转义字符表

    2、多行字符串几种表达方法:

     var x='12345 \
            67890'  //在换行的地方加上一道斜杠,不然表示错误(方法1)
     var x2='12345 '+'67890' //(方法2)
     var x3=`12345
     6789` //ES6增加表达方法,利用反引号,包括回车在内的长度:length=10(方法3)
    

    注释:方法2比方法1使用效果更佳,如使用方法1斜杠后面如果多出一个空格符号,就极容易导致调试出现bug

    三、boolean数据类型(布尔类型)

    布尔类型值只有truefalse
    其中false出现情况只有五种分别是0nullunfinedNaN''"";
    其他情况均为true值,如:空数组,空对象、负值、正值等。

     var a=true; //如果a为真,则执行if语句
     var a=false; //如果a为假,则不执行if语句
     if(a){console.log(a)}  //打印出a值
    

    布尔数据类型与运算符&&(与),||(或)的结合使用:a&&b,a||b


    a&&b a||b

    四、null和undefined数据类型

    其中null数据类型只有一个值null,undefined数据类型也只有一个值undefined,两者皆表示什么都没有,这是JS发展过程中存在一个历史bug。
    两种最大区别如下:
    (1)变量没有进行赋值-----用undefined

     var a  //undefined
    

    (2)有一个对象object,现在不想给值-----用null

    var obj=null
    

    注释:只要不是对象,目前不想给值情况,推荐使用undefined

    五、object数据类型(对象类型)

    简述一下对象:如一个人有姓名,年龄,性别等特性,这些特性都是能体现在同一个人身上,而这个人则可以称之为对象,这个对象包含相关所有特性。

    var person={
                'name':'fei' //string类型
                'age':18 //number类型
                'gende':'male' //string类型
                }
    

    由上述例子看出,对象是复杂类型,它是由简单数据类型组成,当我们要读取对象里面数据时,可以使用person['name'],注意括号里面的单引号不能省略。

      var name='fei' //undefined  全局变量
      var person={
                'name':'fei' //string类型
                'age':18 //number类型
                'gende':'male' //string类型
                }
    

    如使用person[name]没有单引号,这个时候实际访问的person['fei']打印出来的就是undefined

    var person={
                'name':'fei' ;
                'age':28 ;
                'gende':'male' ;
                'children':{'name':'qin','age':5} //对象中包括对象
                }
    

    对象中的'name'命名如果符合标识符命名规则则访问对象中name内容可以由person['name']改成person.name

    六、delete、in、forin和typeof用法

    1、delete可以删除对象中的数据类型,这个时候可以in来验证是否完成对象中数据类型的删除。

    delete和in的用法
    (1)delete对象中的'name',再去访问person['name'],显示是undefined(无value);
    (2)delete对象中的'name',再去验证'name' in person,显示是false(无key)
    注意;如果我们没有用delete删除对象中的'name',而是用person['name']=undefined这种情况只是把value清空了,但是key还是存在的。

    2、for....in用来遍历对象

    for...in使用
    打印出来的nameage顺序是随机的,如果改成console.log(person.key)是打印不出任何东西,里面等价于字符串key,而key是变量,可以改成(person[key]), 如果要同时打印keyvalue,应改(key,person[key])

    3、typeof求一个变量是什么样的数据类型

     typeof 1 //number类型
     typeof 'fei'//string类型
     typeof null //object对象(特例)
     typeof function //function函数(特例)
    

    对于typeof返回类型只有上述两个特例,其他均返回对应的数据类型。

    相关文章

      网友评论

        本文标题:JS里的数据类型

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