美文网首页
数据类型上

数据类型上

作者: CeaCrab | 来源:发表于2018-02-24 18:54 被阅读0次

    基本类型(简单类型)

    1. 七种数据类型
    1. 数值(数字)number
    2. 字符串 string
    3. 布尔 boolean
    4. 符号 symbol
    5. null
    6. undefined
    7. 对象 Object
    **************************
    js一切都是对象是错误的 除了对象还有其他6种
    **************************
    没有array(数组) function这种类型,他们都属于Object。所以说出了上边的6种其他都是对象。
    
    1. 数字 number
    • 十进制
      1 or 1.1 (.1)
      1.23e2 1.2310的平方(科学计数法)*
    • 二进制
      0b开头
      0b1 就是1
      0b2 就是2
    • 八进制
      0开头 比如011
      电话号码存储不能用八进制 要用字符串
    • 十六进制
      0x开头 比如0x11
    1. 字符串 string
    // 可以是单引号/双引号,也可以是空的字符串(空字符串和空格字符串不一样,空字符串长度是0,空格字符串长度是1)
    '你好' 
    "你好"
    ""
    ''
    ' '
    " "
    
    • 转义字符反斜杠 ' \ '
    var  a = ' ' '   or  '' '' '''  //错误 
    var a =  " ' "  or   ' " '   ===   '  \' ' or "  \" "  //正确
    var a = ' \n ' //回车
    var a = ' \t ' //Tab 
    var a =  ' \\ '  //表示 \ 
    长度都为1
    ……
    
    image.png
    • 多行字符串
    //多行是换行输入不是回车,可以用 \ 连接,也可以用 + 连接
    var a = ' 123456
                   23465 ' //报错
    var a = ' 123546 \
                   12345 '  //正确
    var a = ' 123546' +
                   '12345 '  //正确 (推荐)
    ***************************************
    //ES6语法表示多行字符串用反引号,数字1左边的符号 " '~ " 
    var a = `123546 +
    12345 '   // 中间有空格
    a.length = 12
    
    image.png
    1. 布尔(boolean) 一个数学家的名字
    boolean 的两个值:true(真)  false(假)
    a&&b ---ab同时为真/假则为真/假   (与)
    a||b  ---ab一方为真则为真 两个都为假则为假     (或)
    
    1. null 和 undefined(类型)
    //null 和 undefined都表示什么也没有
    null 值为: 'null'
    undefined 值为:'undefined'
    //不同之处 null一般表示空对象,undefined一般表示空非对象
    1. 变量没有赋值 -- undefined    //语法
    //惯例 
    2. 一个对象Object,不想赋值 --可以设置为null  ( var Object = null)
    3. 有一个非对象,不想赋值 -- undefined ( var n)即可
    
    image.png

    复杂类型

    对象 Object(对象就是简单类型的组合)
    • 语法
    var person = {
      name = " xxx"     ----name和age默认会变成字符串
      age = 18
    }
    
    image.png
    • 使用
      如果key为遵循标识符取的 可以不加引号,自动转为字符串,否则必须加上引号!
      对象的key ---现实使用中一般不加引号 要遵循标识符规则,加引号一般没什么限制
    数组的key可以为:a9 = 'xxx'
    
    对象的key设置建议加上引号
    var obj = {
     'a9' = 'xxx'
    }
    不如对象key为 a空格b,不加引号会报错
    
    *********************
    //声明
    var person = {
      name = " xxx"     
      age = 18
    } 
    
    //取值
    person['name']  // xxx
    person['age'] // 18            
    ***********************************************
    //对象的key可以是空字符串
    var person = {
      '' = 'xxx'
    }
    person[''] --//xxx
    
    对象中可以包含对象 (?包含自己?)黑人问号
    • 删除key:value
      delete删除一个keykeyvalue都删除了,如果key=undefined,只表示删除了valuekey还是存在的。
    var a = { name:'xxx'}
    delete a['name']
    
    a['name'] //undefined
    'name' in a // false
    ********************************
    var a = { name:'xxx'}
    a.name = undefined
    
    a['name'] //undefined
    'name' in a // true
    
    image.png
    • 遍历对象for…in
    //打印key
    var person = { name:  'xxx',age: 18}
    for(var key in person){
      conlole.log(key)  
      // name 
         age
    }
    //打印value
    var person = { name:  'xxx',age: 18}
    for(var key in person){
      conlole.log(person[key])
      // xxx 
         18
    }
    //打印key:value
    var person = { name:  'xxx',age: 18}
    for(var key in person){
      conlole.log(key,person[key])
      // name:xxx 
         age:18
    }
    
    • 查询变量类型 typeof
      变量类型是一个名词 必须是一个字符串
    var t = 1
    typeof t // 'number'
    
    var t = 'fffff'
    typeof t // 'string'
    
    var t = false
    typeof t // 'boolean'
    
    var t = undefined
    typeof t // 'undefined'
    
    • 用typeof查看变量类型的时候有两个bug
    1. typeof null 理论上会返回'null' 实际返回'object'
    2. typeof function(函数) 理论上会返回'object' 实际返回'function'
    
    2个bug

    相关文章

      网友评论

          本文标题:数据类型上

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