JS之数据类型

262 阅读2分钟

JS共有七种数据类型:

  1. number/数值
  2. string/字符串
  3. boolean/布尔
  4. symbol/符号
  5. null
  6. undefined
  7. object/对象

number/数值

十进制

1 / 1.1 / 1.23e2

二进制

ob开头,不分大小写 ob1 > 1 0b10 > 2 0B10 > 2

八进制

0开头 011 > 8

十六进制

OX开头 0x11 > 17


String/字符串

‘你好’、"你好"
"" 、 ‘’ : 空字符length为0;
" " 、 ' ' : 空格字符串length为1;

转义

  • var a = ' ' ' //出错
    var a = " ' " //单引号
    var a = ' \' ' //单引号
    \ 为转义符,让浏览器知道后边不是结束的符号;
    var a = ' \\ ' //表示一个\
  • var n = '\n' //回车
  • var t = '\t' //Tab制表符

多行命令行

JS学习的是命令行的规则。当想换行时:

  • var s1='12345\
    67890'
    //坑人语法,问题如下:
  • var s2 = '12345\空格空格空格
    67890'
    //空格看不到,报错;
  • 尽量采用以下的易读语法:
    var s3 = '12345' +
    '67890'
  • ES6新特性: var s4 = [`反引号] 12345[回车]
    67890[反引号]

boolean/布尔

  • 历史:布尔/数学家/逻辑学/下雨/上课/没带伞/肺病/去世;
  • true真/false假
  • && 与/ || 或

symbol

搜索“方应杭 symbol”


null & undefined

  • null类型 : 一个值为null;
    undefined类型 : 一个值为undefined;
  • 都表示什么都没有,JS之父产生的bug;
  • 区别:
  1. 变量没有值时,用undefined;
  2. 惯例是:
    有一个对象object,现在不想赋值,用null;
    var object = null
    有一个非对象,不想赋值,建议初始化为undefined;
    var n = var n = undefined
    即一般情况下:null表示空对象;undefined表示空“非对象”。

object/对象/哈希表

  • 复杂类型由以上简单类型组成;

  • var person = {
    'name':'frank',
    'age':18,
    'gender':'male',
    'children':{name:'xxx',age:1}
    'self':person
    }

  • 读取:person['name'] ,
    引号里符合标识符规范时,可以:
    person.name

  • 方括号里单引号不能删

var name = 'jack'   

person[name]   //报错   

person[name]=person['jack'],不存在,undefined;

  • '' : 'frank'可以加入对象;
    person[''] = 'frank'
    同理'a[空格]b' = 'frank'也可以加入对象;
  • 9a : 'frank不可以加入对象,
    当key不加引号时,命名就必须按照标识符规范原则;

delete、in、for in 和 typeof

delete :将键、值同时清空;

delete person['name']   
person.name           //undefined  (无value)   
'name' in person      //false  (无key)

遍历对象:

for (var key in person){
    console.log(key)
}

打出key: name,age...

for (var key in person){
    console.log(person[key])
}

打出value:frank,18...

错误:

console.log(person.key)等于person['key'],并不存在key这个键。

typeof:

特殊情况:

  1. typeof null //object
  2. typeof function //function