JS 里的数据类型

JavaScript具备七种数据类型


  • number(数值):整数和小数
  • string(字符串):文本
  • boolean(布尔):true和false
  • null:表示空值 可转化为数值,值为0
  • undefined:表示未定义,不存在 可转化为数值NaN(Not a Number)
  • object(对象):各种键值对组成的集合,除object外均为基础类型
  • symbol:ES6新增的第七种数据类型

primitivetype(原始类型):number、string、boolean

JavaScript有三种方法确定一个值是何种类型:
1)typeof运算符:
    typeof运算符可返回值得数据类型
    数值、字符串、布尔值、null、undefined、symbol、对象分别返回:'number'、'string'、
    'boolean'、'object'、'undefined'、'symbol'、'object'
    例如:typeof 3  //返回"number"
    但有几个比较特殊,函数返回"function",null返回"object",[]返回"object"
2)instanceof运算符:可用来区分数组与对象
3)object.prototype.toString方法
1.number(数值)

JavaScript内部所有数字均以64位浮点数形式储存(由于浮点数不是精确的值,所以涉及小数的比较与运算时需要小心)

  • 整数与小数:1和1.1
  • 科学计数法:1.25E2
  • 二进制: xb11
  • 八进制:011(后来ES5添加了0o11语法)
  • 十六进制:0x11
parseInt():将字符串转为整数
    如果遇到不能转换的便不再进行下去,返回已转好的部分
    如果字符串第一个字符不能转换为数字,返回NaN
    如果其中有第二个参数,例如10,即十进制转十进制
    parseInt('1000', 10)  //十进制转十进制,结果为1000
    parseInt('1000', 2)  //二进制转十进制,结果为8
    parseInt('1000', 8)  //八进制转进制,结果为512
    parseInt('1000', 16)  //十进制转十进制,结果为4096
parseFloat():将字符串转为浮点数,会将空字符串转为NaN
isNaN():判断值是否为NaN
isFinite():返回布尔值,表示某值是否为正常数
2.string(字符串)
  • 空字符串:''(空字符串的length为0)
  • 多行字符串:
    1.在每一行末尾使用使用反斜杠\(反斜杠后不能有任何空格或字符)
    2.将长字符串分为多块字符串:'123' +'234' + '345'
    3.ES6中增加使用反引号`123`形式可写多行字符串(换行时缩进与回车都会包含在字符串中)
转义:
\0 :null
\b :后退键
\f :换页符
\n :换行符
\r :回车键
\t :制表符
\v :垂直制表符
\' :单引号
\" :双引号
\\ :反斜杠
3.boolean(布尔)

boolean取值时只有两个值:true和false
a && b :在 a 和 b 都为 true 时,取值为 true;否则为 false(&&:与)
a || b :在 a 和 b 都为 false 时,取值为 false;否则为 true(||:或)

4.null和undefined

null和undefined均表示什么也没有(没有值)

  • (语法规范)如果一个变量没有被赋值,那么这个变量的值就是 undefiend
  • (惯例)如果想要表示一个还没赋值的对象,就用 null。如果想要表示一个还没赋值的非对象(字符串/数字/布尔/symbol),就用 undefined
5.object(对象)
1.object 是复杂类型,是上面几种基本类型(无序地)组合(以键值对的形式key-value)在一起
2.object 里面可以有 object
3.object 的 key 一律是字符串,不存在其他类型的 key
4.object[''] 是合法的,空字符串也可以当做object的key
5.object['key'] 可以写作 object.key
6.object.key 与 object[key] 不同
7.创建对象有三种方法:
  var o1 = {};
  var o2 = new object();
  var o3 = Object.create(Object.propotype);
8.object.keys()方法可以查看对象本身的所有属性
9.delete命令用于删除对象属性(只能删除对象本身属性,无法删除继承的属性):delete object['key']
10.in运算符用于检查对象是否包含某属性(检查键名):'key' in object
   但是in运算符无法识别属性是对象自身的还是继承的

你可能感兴趣的:(JS 里的数据类型)