您现在的位置是:首页> 编程文章 个人博客模板
JS-数据类型
无痕小Q个人博客 2020-02-21 02:46:47【 主页】 908人已围观
简介Javascript有7种数据类型,分别为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
的数值。
*八进制:有前缀0o
或0O的数值
,或者有前导0、且只用到0-7的八个阿拉伯数字的数值。
*十六进制:有前缀0x
或0X
的数值。
*二进制:有前缀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
操作符能将对象的key
和value
都删了,与单纯的赋值成undefined
不同
var person = {name:'jiujizi'}
person.name = undefined
'name' in person // true
对象内部的值就算被赋值为undefined
,用in
操作符来检验,它也依然是存在于该对象中的,并没有消失
一些操作符
delete
var person = {'name':jiujizi}
delete person['name'] // 删除person中的'name'这个key
person.name //undefined(无value),因为delete操作符将key和value都删了
用于删除对象对应的key值
,把key删了,value自然也就没了
in
var person = {name:'jiujizi'}
person.name = undefined // 给name这个key赋值为'undefined'
'name' in person // true,用in操作符来检验key是否存在于对象中
用于检测一个key是否存在于一个对象中
for...in...
var person = {name:'jiujizi',age:20}
for(var key in person){
console.log(key) // 打印出person对象中的所有key
} // 但打印的顺序是不确定的
用for...in...
可以用来遍历对象,但输出但值顺序却是不一定的
typeof
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'
- null的数据类型应该是null,打印出来的却是
object
- 数据类型
function
并不存在,但仍然可以打印出来,看来的确是一等公民了hhh
阅读量! (908)
点击排行
网站公告
- 欢迎来到我的博客
1:欢迎来到我的博客
2:博客免费api接口现已上线
3:博客会定期更新文章
4:欢迎大家来捧场
站点信息
- 建站时间:2019-8-30
- 网站程序:php,laravel-swoole框架
- 今日流量:71(10分钟统计一次)
- 本月流量:9412
- 浏览总量:388339
- 统计方式:中间件,redis消息队列,定时任务