JS中的数据类型

2018-07-22  本文已影响0人  si_月

JS中的数据类型一共有7种:

数值(number)

  1. 整数与浮点数:JavaScript内部,所有数字都是以64位浮点数形式储存。
  2. 数值精度:JavaScript 浮点数的64个二进制位,从最左边开始,是这样组成的。
    • 第1位:符号位,0表示正数,1表示负数,决定一个数的正负。
    • 第2位到第12位(共11位):指数部分,决定数值的大小。
      JavaScript 能够表示的数值范围为2的1024次方到2的-1023次方(开区间),超出这个范围的数无法表示。
    • 第13位到第64位(共52位):小数部分(即有效数字),决定数值的精度。
      精度最多只能到53个二进制位,绝对值小于等于2的53次方的整数,即-253到253,都可以精确表示。
  3. 数值的表示方法:
    • 十进制:没有前导0的数值。
    • 八进制:有前缀0o0O的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。0xff // 255
    • 十六进制:有前缀0x0X的数值。0o377 // 255
    • 二进制:有前缀0b0B的数值。0b11 // 3
    • 科学计数法:科学计数法允许字母e或E的后面,跟着一个整数,表示这个数值的指数部分。123e3 // 12300123e-3 // 0.123
  4. NaN:非数字,主要出现在将字符串解析成数字出现错误的场合。5-'x' // NaN
    NaN不等于任何值,包括它本身。
  5. 数值相关的方法:
    • parseInt()将字符串转为整数,接收第二个参数(2~36),被解析值的进制。
    • parseFloar()将一个字符串转为浮点数。
    • isNaN()判断一个值是否为NaN。
    • isFinite()返回一个布尔值,判断这只是否为正常的数值。除了Infinity-InfinityNaNundefined这几个值会返回falseisFinite对于其他的数值都会返回true

字符串(string)

字符串就是零个或多个排在一起的字符,放在单引号或双引号之中。

  1. 多行字符串实现:(字符串默认只能写在一行内。)
    • 可以在每行末尾使用反斜杠。
    • 使用运算符+
    • 运用多行注释的变通方法
    • ES6中添加一个方式,键盘1旁边的符号包围字符串,默认单行字符串末尾有空格
    var a = `1234
    6789`
    a.lenth = 9
    
  2. 反斜杠(\)转义符,在某些字符前面表示特殊含义,如\n表示换行。
  3. 字符串可以被视为字符数组,可以使用数组的方括号运算符,用来返回某个位置的字符(位置编号从0开始),但是无法改变字符串。
  4. length属性返回字符串的长度,也是无法改变的。
  5. 字符串中存在unicod字符时,会自动转为字面进行识别。

布尔值、null与undefined

  1. 布尔值只有“真(true)”与“假(false)”两个状态。
    • 常用操作符:&&与(两者均为真);||或(其中一者为真);非(相反);
    • undefined,null,false,0,NaN,''、""(空字符串)如果是布尔值会被转为false,其余都会被转为true`.
    • 空数组([])、空对象({})对应的布尔值都是true.
  2. null 和 undefined很相似,都可以表示“没有”
    区别:
    • a. 变量没有赋值----undefined。
      b. 有一个对象object,不想赋值----null。
          有一个非对象,不想赋值----undefined(这两个是推荐用法,惯例)。
    • null表示“空值”,undefined表示“未定义”。

对象(object)

对象是一组“键名-键值对”(key-value)的集合,是一种无序的复合数据集合,可以理解为哈希表。{'key':'value','key':'value','key':'value',·······}

  1. 键名与键值:
    • 键名是数值则会自动转为字符串
    • 如果键名不符合标识名的条件(比如第一个字符为数字,或者含有空格或运算符),且也不是数字,则必须加上引号,否则会报错。
    • 对象的每一个键名又称为“属性”(property),它的“键值”可以是任何数据
  2. 属性的相关操作:
    • 读取:两种方法:
       a.点运算符obj.p,数字键不能使用点运算符。
       b.方括号运算符obj['p']
          方括号内部可以使用表达式。
          数字键不加引号会自动转成字符串。
    • 赋值:obj.foo = 'hello',obj['foo'] = 'hello'
    • 查看:使用Object.keys查看一个对象本身的所有属性。
    • 删除:使用delete命令即可删除一个属性,delete pbj.p // true,删除成功返回true。
    • 属性是否存在: in运算符。'toString' in obj,但是不能识别哪些属性是对象自身的,哪些属性是继承的。利用hasOwnPorperty方法判断,是否为自身属性。
    • 属性遍历:利用for...in循环。
      • 它遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性。
      • 它不仅遍历对象自身的属性,还遍历继承的属性。
  3. with语句:格式如下:
    with (对象){
      语句;
    }
    

    作用:操作同一个对象的多个属性时,提供一些书写的方便。(少用)

上一篇下一篇

猜你喜欢

热点阅读