JS 里的数据类型

JS里有七种数据类型

Number String Boolean  undefined null symbo 和Object

这些数据类型除symbo是ES6新特性外其它的六种都是原有的类型,JS中除开这七种不存在其他多于的数据类型,常见的误解是function 和 array

typeof会多出来一种数据类型 function 这是JS的一个著名BUG,其实function和array都要归为对象的类型中

function实际上是object的一个“子类型”。具体来说,函数是“可调用对象”。 --你不知道的JavaScript中卷

所以我们常见的 JS中一切都是对象的说法是错误的,正确来说是除上面的6种数据类型之外都是对象

object与其它六种类型的数据要许多不同的名字,最常见的就是

  • 简单类型与复杂类型
  • 原始类型和复杂类型

我比较喜欢叫简单类型与复杂类型比较顺口


number

number类型的展现形式不同,其主要的是进制的不同造成的

主要的进制有

  • 十进制
  • 二进制 0b开头
  • 八进制 0开头
  • 十六进制 0x开头

string

转义字符

在字符串中有许多特殊的字符来显示特定的功能

字符串的表现形式为单引号或者双引号,那么如果我在单引号中使用单引号就会出现错误,所以就出现了转义字符,告诉JS引擎这个东西如何显示

反斜杠开头 比如 /t 制表符 /n 回车 /' /" 单双引号 且转义字符的长度都为1

console.log('/t') // 1

多行字符串

在写字符串的时候,字符太长或者需要跳到下一行输出时,多行字符串就有用了

第一种写法  var s = '12345 \

          34567'

这样可以实现多行字符,但是很容易出现bug且不具有易读性,因为在 \ 如果不小心多输出了几个空白符就会出现bug且不容易找到,所以不推荐

var s = '1234 \ 
        3456'
console.log(s)

    • "error"
    • "l</b.render/<@https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:13922
      k</a.use/<@https://static.jsbin.com/js/prod/runner-4.1.7.min.js:1:10866
      "

第二种写法 var s2 = ‘12345'

+'67890'

这种写法是推荐写法

第三种写法 反引号 ` `

所以ES6觉得这样太麻烦了所以推出了反引号的写法,但需要注意的一点是反引号是包含了回车符

var s = `sad
as`
console.log(s.length) // 6

boolean

只有两种值,且false和true

object 对象

我们来讲一下JS中唯一的复杂类型,复杂类型由简单的类型组成

var name = "frank"

var age = 18

var garrder = 'null'

变成对象就是

var obj = {

    name: 'frank',

    age: 18,

    garrder: 'null'

}

且对象里的键值只支持字符串,且键值不加引号,就会有很大限制,如必须用标识符的方式来声明

如果要删除对象里的键值和value

就需要使用 delete person['name'] ,删除key和value

 

posted on 2019-02-17 18:54  城外三石  阅读(113)  评论(0)    收藏  举报

导航