JS数据类型简介

2018-12-26  本文已影响0人  desperadokk

JS一共有七种数据类型:number、 string、boolean、null、symbol、undefined、object。

number

  1. 十进制
    比如1、1.1、.1、1.23e2
  2. 二进制
    0b或者0B开头:0b11、0B11都表示3
  3. 八进制
    0开头:011表示9
  4. 十六进制
    0x开头:0x11表示17

string

可以用单引号''或者双引号""引起来:‘你好’、“你好”
也可以是空字符串''或者"",注意空字符串和空格字符串' '、" "的区别,前者长度为0,后者为0 。
JS的转义符是反斜杠:
有些特殊意义的转义符如:\n回车 \t制表符
多行字符串(不是字符串里有回车)可以这样写:var s = '1234' + '5678'

boolean

boolean只有2个值:true和false
&&是与运算、||是或运算

symbol(暂时不讲)

null

只有一个值:null

undefined

只有一个值:undefined
null和undefined都表示什么都没有。

  1. 变量没有值——undefined
  2. 有一个对象object目前不考虑赋值——null
  3. 有一个非对象,不想赋值——undefined
    上述第二、三种都是推荐用法,用另一个值也是可以的。

object

hash表:由键值对组成。如

var person ={'name': 'James',
             'age': 38,
             'married': true,
             children: {name: Lily, 'age': 18}
             }

其中键可以不加引号也可以加双引号或者单引号。
当键不加引号时,键的命名必须符合标识符原则,否则一定要用引号引起来。
hash表取值用person['name']表示'James',其中name的引号不能省略,如果键的命名符合标识符命名规范可以用person.name表示‘James’。
删除hash表内数据可以用delete person['name']或者用特例delete person.name
还有一个特例:

var obj = {
  0.7: 'Hello World'
};

obj['0.7'] // "Hello World"
obj[0.7] // "Hello World"

数字键可以不加引号,因为会自动转成字符串。

注意,数值键名不能使用点运算符(因为会被当成小数点),只能使用方括号运算符。

var obj = {
  123: 'hello world'
};

obj.123 // 报错
obj[123] // "hello world"

遍历对象的键值:

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

hash表内键值对排列是没有顺序的。

其他

查看变量的数据类型可用typeof查看,比如:

var t = 'ssss'
typeof t
\\"string"

但是JS有两个bug:typeof null的返回值是object(应该返回null才对);function f(){} typeof f返回function(应该返回object因为函数是object)

上一篇下一篇

猜你喜欢

热点阅读