JS 里的数据类型

2018-09-09  本文已影响0人  小白兔养家

js的七种数据类型:
1、数字 number
2、字符串 string
3、布尔 boolean
4、Symbol(符号)
5、null
6、undefined
7、对象 object

基本类型

数字 number

// 十进制
1   1.1    .1   1.23e2
// 二进制 
 0b11
// 八进制
011
// 十六进制 
0x11

字符串 string

// 空字符串 (长度为 0)
''     ""
// 空格字符串 (长度为 1)
' '    " "
// 转义符(长度为1)
var a = '\''    // 单引号
var n = '\n'   // 回车
var t = '\t'    // 制表符
var b = '\\'   // 转义符
// 多行字符串(s2为推荐写法,s1容易在\后多空格产生错误)
var s1 = '12345 \
          67890'
var s2 = '12345' + 
         '67890'
var s3 = '12345 \   
          67890'
var s4 = `12345
67890`

布尔 boolean

// a&&b 与
只有在a和b同时为真,a&&b为真
// a||b  或
a和b有一个为真,a||b为真。都为假,为假

null和undefined

null类型的值为null
undefined类型的值为undefined
// 都表示什么都没有
// 区别
1、(语法)如果一个变量没有被赋值,它是undefined
2、(惯例)如果有一个对象object,但是现在还没有赋值,推荐使用null
          如果有一个非对象,还没有给它赋值,用undefined

复杂类型

var name = 'frank'
var age = 18
var gender = 'male'
//复杂类型是由基本类型组成的
var person = 
{
  'name': 'frank',
  'age': 18,
  'gender': 'male'
}

对象 object

var person = 
{
  'name': 'frank',
  'age': 18,
  'gender': 'male',
  'married': true,
  'children': null,
  self: person,  //***
  '': 'frank',   // person['']
  9a: 'frank',   // 错误写法,不加引号的key的规则必须遵守标识符的规则
  '9a': 'frank'     // 可以
}
// 获取key
person['name'] // 不可以用person[name]
在符合标识符的情况下可以用 person.name
// delete
delete person['name']
person.name   // undefined (无value)
'name' in person  // false (无key)
person.name = undefined  // 只把value设为undefined,key还是存在的
// 遍历对象
for(key in person){
  console.log(key) 
  console.log(person.key)   // 不行
  console.log(person[key])  // 正确语法
  console.log(key,person[key])  // 浏览器不按规范打印
}

typeof的两个BUG

type null // 'object'
type fn // 'function'
上一篇 下一篇

猜你喜欢

热点阅读