美文网首页
JS里的数据类型

JS里的数据类型

作者: 猫晓封浪 | 来源:发表于2018-08-10 18:17 被阅读0次

    JS中的原始数据类型

    • number:数字类型(整数和小数)
    • string:字符串类型(一般用单引号或者双引号括起来的)
    • boolean:布尔类型(值只有两个:true,false)
    • null:空类型(值只有一个,即null)
    • undefined:未定义(值只有一个,即undefined)
    • object:对象类型
    • symbol:表示独一无二的值(ES6新增)

    number类型

    数字类型,包含整数和小数。
    JS中所有的数字都是以64位浮点数储存的,因为浮点数不是精确的值,所以不要用小数去验证小数,也不要进行小数的相加,可能出现错误。即存在0.1+0.2==0.3//false
    NaN也是属于数字类型,是一种特殊的数字类型。即不是数字。也不要用NaN去验证NaN,得到的结果也是false。NaN===NaN//false。可以使用isNaN去验证值或者是变量是不是数字,不是数字返回true,是数字则返回false。
    当想要表示不同进制时:

    • 二进制:以0b或者0B开头
    • 八进制:以0开头
    • 十进制:以平常数0-9表示
    • 十六进制:以0x或者0X开头

    string类型

    字符串类型,一般用单引号或者双引号括起来的。
    获取字符串的长度:

    var a='string'
    a.length  //6
    

    JS中也有转义符,常用反斜杠,即\。常用的有:\n(换行)、\t(tab键)、\'(单引号)、\"(双引号)、\\(反斜杠)。
    字符串的拼接:使用“+”号,可以将多个字符串拼接起来,其中只要有一个是字符串,其他的为数字,结果也是拼接,不是相加(原因:存在隐式转换)。

    123+'nihao'
    //'123nihao'
    

    注意:除了“+”号,其它符号不行。

    3 - '2'
    //1
    

    实现多行字符串(不是字符串里有回车):

    var s='12345\
    67890'  //'1234567890'
    //或者
    var s1='12345'+
    '67890'  //1234567890
    //或者
    var s2=`12345
    67890`  //1234567890(反引号且s2.length=11)
    

    其中第一种方法第一行不能有空格

    boolean类型

    布尔类型,只有两个值true(1)和false(0)。
    真值表:
    a&&b(逻辑与、且运算)

    b\a true false
    true true false
    false false false

    a||b(逻辑或、或运算)

    b\a true false
    true true true
    false true false

    null类型

    表示空,只有一个值null。

    undefined类型

    表示未定义,只有一个值undefined。

    null和undefined都表示没有,其中有一些细小的差别。

    1 定义了变量,但是没有值——undefined
    2 有一个对象,但是现在没有给值——null
    有一个非对象,但是没有给值——undefined

    函数在没有明确返回值时,如果接收了,结果也是undefined。
    如果一个变量的结果是undefined和一个数字进行计算,得到的结果是NaN,也没有意义。

    object类型

    表示对象,就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合。哈希表形式。

    var a = {
      name:'frank',
      age:18,
      children:'null'
    }
    

    key必须为字符串形式,引号可以省略。但是根据标识符规则:1.首字母不能使数字、2.中间不能有空格、3.后边必须是合法字符。

    {9a:'tom'}//错误形式
    {'9a':'tom'}//正确形式
    

    调用时,有两种方法:点方法和方括号法。

    a['name']//正确
    

    当key的命名符合标识符规则时,可以改写为点方法。

    a.name//正确,特例
    

    可以对对象中的key进行删除。

    delete a['name']
    a.name //undefinedd (无value)
    'name' in a //false (无key)
    

    当使用:

    a['name']=undefined
    'name' in a //true
    

    此时,只是更改'name'属性的value值为undefined,所以所以key还在。
    遍历对象(for....in...)

    for (var key in a) //此时打印出key的值
    

    如果需要打印出value的值

    console.log(a[key])//正确方法
    
    //错误方法示范
    console.log(a.key)
    //此时a.key===a['key'],
    //而a中没有'key'这个属性
    

    typeof运算符

    可以得到一个值是什么类型。

    number string boolean symbol undefined object
    'number' 'string' 'boolean' 'symbol' 'undefined' 'object'

    其中:

    typeof null //'object'
    typeof fn //'function'
    

    相关文章

      网友评论

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

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