JS-数据类型

2019-02-12  本文已影响6人  酒极子

Javascript7种数据类型,分别为number string boolean symbol null undefined以及object

数值(number):整数和小数(比如1和3.14)
字符串(string):文本(比如Hello World)。
布尔值(boolean):表示真伪的两个特殊值,即true(真)和false(假)
undefined:表示“未定义”或不存在,即由于目前没有定义,所以此处暂时没有任何值
null:表示空值,即此处的值为空。
对象(object):各种值组成的集合。

结下来分别具体介绍一下这7种数据类型

number(数值)

Js里的数值分别有
十进制二进制八进制十六进制

十进制 二进制 八进制 十六进制
1 0b1 0o123 0x1BC1
1.1 0B1 0O123 0X1BC1
.1
1.23e2(科学)

*十进制:没有前导0的数值。
*八进制:有前缀0o0O的数值,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。
*十六进制:有前缀0x0X的数值。
*二进制:有前缀0b或0B的数值。

默认情况下,JavaScript 内部会自动将八进制、十六进制、二进制转为十进制。

string(字符串)

单引号:'你好'
双引号:"你好"
空字符串:''&""
空格字符串:' '&" "

为了让浏览器理解我们需要输入到页面中的一些特殊符号是文本,而不是命令,所以要在是文本的特殊符号前加上"\"
比如

var a = '\n'  //会车(行)
var b = '\t'  //tab(制表符)
var c = '\\'  // "\" 符号

多行字符串推荐用下面这种方式
使用字符串拼接可以增加代码的易读性

var s = '123' + '456'

在ES6里可以用反引号 " ` "开头写多行字符串,反引号为数字键1左边的键

var s = `123
456`

boolean(布尔)

boolean是一个数学家,发明了逻辑学
故事:下雨 上课 没带伞 的了肺病 死了
布尔有两个值:true(真) false(假)

与运算
a && b的真值表

a\b

或运算
a || b的真值表

a\b

null和undefined

一般来说,null表示空对象
undefined表示空非对象

1.变量没有赋值:undefined
2.有一个对象(object),现在不想赋值,给它null(推荐)
有一个非对象,不想给他赋值,给他undefined(推荐)

object(对象)

前六种类型叫基本类型(简单类型)
object叫复杂类型,由简单类型组成

比如下面就是一个对象

{
'key' : value
'name' : 'jiujizi',
'age' : 20,
'gonder' : 'male'
}

'key':value这种格式储存值,除前六种基础类型外的类型都是变量。

值得一提的是,key最好加上单引号,这样功能是最强大的
(key如果不加单引号,就必须依照标示符的命名规则)
还有对象里还能有对象,具体操作方式以后再说

porson = {  //对象赋值给变量porson
          'key' : value
          'name' : 'jiujizi',
          'age' : 20,
          'gonder' : 'male'
          }
porson['name']  //jiujizi
porson.name  //这个也可以,不过是特例

上面就是对象的引用方式,记住单引号不能少

var person = {'name':jiujizi}
delete person['name']  // 删除person中的'name'这个key
person.name  //undefined(无value),因为delete操作符将key和value都删了

delete操作符能将对象的keyvalue都删了,与单纯的赋值成undefined不同

var person = {name:'jiujizi'}
person.name = undefined
'name' in person  //  true

对象内部的值就算被赋值为undefined,用in操作符来检验,它也依然是存在于该对象中的,并没有消失

一些操作符

var person = {'name':jiujizi}
delete person['name']  // 删除person中的'name'这个key
person.name  //undefined(无value),因为delete操作符将key和value都删了

用于删除对象对应的key值
,把key删了,value自然也就没了

var person = {name:'jiujizi'}
person.name = undefined  //  给name这个key赋值为'undefined'
'name' in person  //  true,用in操作符来检验key是否存在于对象中

用于检测一个key是否存在于一个对象中

var person = {name:'jiujizi',age:20}
for(var key in person){
console.log(key)  //  打印出person对象中的所有key
}  //  但打印的顺序是不确定的

for...in...可以用来遍历对象,但输出但值顺序却是不一定的

typeof 1  //  'number'
typeof 'aaa'  //  'string'
typeof symbol  //  'symbol'
typeof true  //  'boolean'
typeof null  //  'object'
typeof undefined  //  'undefined'
var a = {}
typeof a  //  'object'

typeof()可以打印出数据类型
打印出来的值都用单引号(双引号)包住,表示一个名词

这里有两个BUG

typeof null   //  'object'
var fn = function(){}
typeof fn  //  'function'
  1. null的数据类型应该是null,打印出来的却是object
  2. 数据类型function并不存在,但仍然可以打印出来,看来的确是一等公民了hhh
上一篇下一篇

猜你喜欢

热点阅读