js总结之数据类型

js属于弱数据类型语言,一个变量可以赋值不同的数据类型。
目前js的数据类型一共有以下7种:
基本数据类型(操作值)

  • string
  • number (浮点类型)
  • boolean
  • undefined
  • null
  • symbol

引用数据类型(操作地址)

  • Object
    包括object,array,function,date,RegExp,

基本数据类型

1、number 数字
强制类型转换

1)返回值为数字或者NaN (not a number)
Number(a)
机制:从左往右查找,只要一个不是数字则返回 NaN
"" , [],null, false 的返回值都为0
true 的返回值都为1
undefined 返回值为 NaN
16px 返回 NaN

2)isNaN 表示不是一个数字
不是数字,返回true。是数字返回false
空 null true false 的返回值都为false
undefined 返回值为 true

非强制类型转换

3)parseInt 返回整数,忽略小数
机制:从左往右查找字符不是数字则返回 NaN,是数字则返回数字,取整数。
console.log(parseInt(' ') )
空值 true false null undefined 的返回值都为 NaN
16px 返回 16
4)parseFloat 浮点数 返回小数
NaN跟任何值比较都不相等,包括它自己本身
空值 true false null undefined的返回值都为 NaN
NaN == NaN false

2、string 字符串
toString()
3、boolean (true/false) 布尔类型

如果逻辑对象无初始值或者其值为 0、-0、null、""、false、undefined 或者 NaN,那么对象的值为 false。否则,其值为 true(即使当自变量为字符串 "false" 时)数组,对象都为真
!先转化为布尔,再取反
!! 直接调用布尔

4、undefined 只声明未定义
5、null 空值
console.log(Number(null)) 返回 0
基本数据类型之间互不影响,一个值改变,另一个值不会改变

引用数据类型

一、对象数据类型

1、对象类 (object)

获取属性值的方式:

对象名.属性名
对象名["属性名"]
数字可以作为属性名,但是获取的只能用第二种

2、数组类 (Array)
3、正则类 (RegExp)
4、时间类 Date

js中的所有元素都是对象,对象中分很多类,每一个具体类又可以细分为实例

二、函数数据类型
1、数学类 (Math)

规律

数字和其他类型的数据比较
数字 == 字符串 字符串先调用(number( ))强制转化为数字,再比较
1== '1' //true
1== '123' //false
1=='1px' //false
0==[] //true
0=={} //false
数字和其他类型数据类型比较,都是先把其他数据类型先转化为数字类型。跟对象数据类型,先调用toString( )方法,再调用Number( ) ,转化为数字类型

字符串和其他类型数据的比较

字符串 == 布尔(true false) 都先转化为数字,再比较
字符串 ==对象 都先转化为数字,再比较。空数组为0,空字符串也为0

布尔数据类型和其它数据类型

布尔== 对象 都分别转换为数字类型,再比较
对象数据类型
先调用toString( )方法,再调用Number( ) ,转化为数字类型

比较法则:
  1. null 或 undefined 跟其他数据类型比较 都为false
    null == undefined 为true
    null === undefined 为false
  2. 对象 == 对象 false
  3. 数据类型的比较都要转化为数字,再进行比较
  4. NaN 跟任何都不相等,都为false
  5. 同样类型的数据比较数值就可以

基本数据类型和引用数据类型的区别

  1. 基本数据类型操作的值,引用数据类型,操作的是一个内存地址;
  2. 基本数据之间互不影响,引用数据类型之间相互有影响
  3. 浏览器会开辟一个环境,让代码自上而下执行,代码块后面的内容以字符串的形式存在内存地址里

判断数据类型的方法

  1. typeof 用来检测基本数据类型
    返回值是字符串
typeof(null)  //"object "
typeof(undefined)  //"undefined"
typeof([ ])   //"object"
typeof(function(){})  // "function"

typeof 只要超过两个输出的都是 "string"
局限性:没办法去判断具体的数据类型,比如引用数据类型

  1. instanceof 用来检测对象数据类型
    作用:判断一个实例属不属于这个类
    验证原型对象与实例对象之间的关系
  2. constructor 构造函数 和instanceof 的作用比较像
  3. object.prototype.toString.call( ); 原型链

数据比较方法

两个值进行比较,如果数据类型不一样的话,会进行默认的数据类型转换

  • 对象==对象:比较的是各自代表的内存地址,地址相同则相等,地址不同则不相等

  • 对象==数字:先把对象toString,然后把结果在Number,最后和数字比较

  • 对象==字符串:先把对象toString,然后在比较

  • 对象==布尔:都转换成数字

  • 字符串==数字:字符串转换成数字

  • 字符串==布尔:都转换成数字

  • 布尔==数字:布尔转换成数字

  • null==undefined是相等的,他们和自身也相等,除此之外和其它任何的值都不相等

  • NaN==NaN是不相等的

  • 把一个值转换成布尔类型:!、!!、Boolean、if(num)条件的意思也是先把num转成布尔值验证真假...
    只有“0、NaN、空字符串、Null、Undefined”代表false,其余都是true

![]==false:==判断的优先级是最低的,先把左右俩边的表达式执行,执行的结果在进行比较
![] 转换成布尔再取反,结果为true

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

推荐阅读更多精彩内容