JS中的数据类型

七种数据类型

JS语言中每一个值都属于某一种数据类型,JS共包括七种数据类型,string、number、boolean、undefined、null、object、symbol(ES6新增,暂不涉及)

简单&复杂数据类型

简单数据类型有string、number、boolean、undefined、null,object是复杂的数据类型
它还分为三个子类型:狭义的对象(object),数组(array),函数(function)

typeof运算符

可以通过typeof运算符知道某个值属于什么数据类型,它返回的值有以下七种:
'string'、'number'、'boolean'、'undefined'、'symbol'、'function'、'object'
注意:typeof null返回的是 ‘object’,typeof 函数返回的是 ‘function’

数据类型介绍

null和undefined

两者都表示‘没有’的意思,区别是null表示一个空的对象,转为数值时为0,undefined表示‘此处未定义’,转为数值时为NaN

null == undefined  //true
null === undefined  //false

布尔值

布尔值有两种状态,true和false,在JS中档某个位置预期是一个布尔值时,会自动将该位置的值转换为布尔值,以下六种值会转换为false:
undefined、null、false、0、NaN、""或''(空字符串)
注意:空数组([])和空对象({})布尔值为true

数值

在JS中所有数字都以64位浮点数进行储存,包括整数
由于浮点数不是精确的值,所以涉及小数的运算要注意:

0,1 + 0.2 === 0.3  //false
0.3 / 0.1 === 3  //false

数值大小和精度:
JS浮点数的64个二进制位从左到右依次代表:
第1位:符号位,0代表整数,1代表负数
第2~12位:指数部分,共11位
第13~64位:小数部分(有效数字),共52位
符号位决定了数值的正负,指数部分决定了数值的大小,小数部分决定了数值的精度
数值大小范围:2^1024 ~ 2^-1023,正向溢出时返回infinity,负向溢出时返回0
数值精度范围:-2^53 ~ 2^53,精度范围外的运算会出错

数值的进制:
十进制(没有前缀)、八进制(前缀0o或0O)、十六进制(前缀0x或0X)、二进制(前缀0b或0B)

字符串

放在单引号或双引号中间的字符
转义符‘\’用来表示一些特殊的字符:
\n :换行符,\r :回车键,\t :制表符,' :单引号," :双引号,\ :反斜杠
字符集:
JS中使用Unicode字符集,允许在程序中是Unicode码点,输出时会自动转成字面形式
每个字符在JS中以16位(2个字节)的UTF-16格式存储,但UTF-16包括两种长度,有16位(U+0000→U+FFFF,2个字节)和32位(U+10000→U+10FFFF,4个字节),JS只能识别2个字节的字符,4个字节的会识别成两个字符
Base64转码:
可以将任意值转换为09、AZ、a~z、+、/ 这64个字符组成的可打印字符

对象

1.对象是一组无序的键值对的集合
2.对象的所有键名都是字符串
3.对象的属性读取可以采用点运算符和方括号运算符,如果使用方括号运算符,键名要放在引号里面,不带引号的当作变量处理,如果使用点运算符,点后面的就是字符串
4.属性查看可以用Object.keys(obj)方法来查看
5.属性删除 delete obj.p //true
删除可删除属性或不存在的属性时返回true,不能删除继承的属性
6.属性是否存在 'p' in obj
不能区分属性时对象本身的还是继承的,可以用hasOwnProperty方法确认
7.属性遍历 for (var key in obj)
它遍历的是对象所有可遍历的属性,会跳过不可遍历的属性
它不仅遍历对象自身的属性,还遍历继承的属性,可以结合hasOwnProperty使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,138评论 0 13
  • JS中的数据类型一共有7种: 基本类型(简单类型):数值(number)、字符串(string)、布尔值(bool...
    si_月阅读 194评论 0 0
  • JS中一共有6种数据类型,分为:数字(Number)、字符串(String)、布尔值(Boolean)、undef...
    大春春阅读 698评论 0 4
  • 大家好,我是IT修真院上海分院第1期的Web学员刘洪利,今天给大家分享一下关于Js中的数据类型和常用方法 一.背景...
    LHongLi阅读 440评论 0 1
  • 朋友说,倒茶七分满,留得三分人情在,似乎有道理,然而照此说法,酒杯倒满难道就没有人情了吗? 酒席上热烈的气氛和豪言...
    大茶网阅读 204评论 0 0