JS 里的数据类型

JS 里的数据类型

JavaScript 的数据类型,共有六种。

1、数值(number)
2、字符串(string)
3、布尔值(boolean)
4、undefined
5、null
6、对象(object)

原始类型:number string boolean
复合类型:object
特殊值:undefined null

JS三种方法判断一个值到底是什么类型

1、typeof运算符
数值、字符串、布尔值分别返回number、string、boolean。
注意以下几个案例的typeof的返回值

typeof undefined  //undefined
typeof null  //object
typeof fn  //function

2、instanceof运算符

3、Object.prototype.toString方法

  • 数值(number)

1、整数与浮点数
JS内部,所有的数字都是以64位浮点数形式存储,JS底层语言中没有整数的概念,所有的数字都是小数,即64位浮点数,
因浮点数,不是精确的值,运算时要特别小心

0.1 + 0,2 === 0.3 //false

2、数值的表示法
下面两种情况,JS自动转换为科学计数发
(1)小数点前的数字多于21位

12324234343453454565486450978054789567
1.2324234343453454e+37

(2)小数点后的零多于5个。

.0000000009
9e-10

3、数值的进制

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

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

4、特殊数值
(1)JS 内部实际上存在2个0:一个是+0,一个是-0,区别就是64位浮点数表示法的符号位不同。它们是等价的。
只有作为分子时不等价

1/0    //Infinity
1/-0   //-Infinity

(2)NaN,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。

NaN不等于任何值,包括它本身。
NaN与任何数(包括它自己)的运算,得到的都是NaN。
NaN在布尔运算时被当作false。
判断是否是NaN的方法,isNaN(),isNaN只对数值有效,如果传入其他值,会被转为数值

5、正无穷Infinity和负无穷-Infinity

Math.pow(2, 1024)   // Infinity
0/0   //Nan
1/0   //Infinity

Infinity大于一切数值(除了NaN),-Infinity小于一切数值(除了NaN)
Infinity与NaN比较,总是返回false。

  • 字符串(string)

1、string 用单引号或双引号表示
2、空字符串和空格字符串

''.length  //0
' '.length  //1

3、转义符:反斜杠 \

4、多行字符串的写法

//第一种
var x1 = '123\
         234'
//第二种     (推荐)    
var x2 = '123' +
         234'

ES6多行字符串

var x3 = `123
344`
  • 布尔值(boolean)
    1、布尔只有两个值true or false
    2、下面的运算符计算结果会返回布尔值

两元逻辑运算符: && (And),|| (Or)
前置逻辑运算符: ! (Not)
相等运算符:===,!==,==,!=
比较运算符:>,>=,<,<=

3、布尔值转换规则,下面六个值转为false,其他均为true

undefined
null
false
0
NaN
""或''(空字符串)

  • null和undefined
    null与undefined都可以表示“没有”,相等运算符(==)甚至报告两者相等,那null和undefined有什么区别呢?
undefined == null   // true

null 只有一个值null
undefined 只有一个值undefined
变量没有赋值,是undefined
有一个对象,还不想赋值,推荐给一个空值null
非对象,还不想赋值,推荐给一个undefined

  • 对象(object)

1、对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合
2、键名:对象的所有key都是字符串,加不加引号都可以,非字符串的key会自动转为字符串,但不加引号,key必须符合标识符
3、获取属性值
(1) object[‘key’],方括号运算符,键名必须放在引号里面,否则会被当作变量处理。
(2) object.key,此时key是字符串key

4、查看所有属性
Object.keys方法,属性以数组的方式列出

5、删除对象的属性

delete object['key']  //删除后无key,无value
object.key  //undefined
'key' in object  //false

//这种情况,只是把undefined的值赋给key,key还是在的
object['key'] = undefined

6、in运算符
检查对象是否包含某个属性,如果包含就返回true,否则返回false。

var obj = { p: 1 };
'p' in obj // true

in运算符它不能识别哪些属性是对象自身的,哪些属性是继承的。继承的属性也返回true

7、for…in 循环
for...in循环用来遍历一个对象的全部属性。

它遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性。
它不仅遍历对象自身的属性,还遍历继承的属性。

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

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,135评论 0 13
  • 1. 七种数据类型 number 数值 :整数和小数 string字符串 : 文本 boolean布尔值 :tru...
    加油吧_阅读 147评论 0 0
  • 本篇文章将简要地讲述关于Javascript数据类型的一些知识,文章中仅挑选不同数据类型的一些个人认为容易在平时出...
    宣泽彬阅读 275评论 0 0
  • 数据类型: 数字(number), 字符串(string), 布尔(boolean), symbol(符号), n...
    遠_阅读 224评论 0 0
  • 不知道今天的进展如何,是否还会带来这样那样的麻烦,在每个人无声之中的倾诉里,谁也无法责怪或者代替老师这样的重要角色...
    子之雾阅读 84评论 0 0