JavaScript数据结构【准备】

一、变量与数据类型

变量:var、let、const

数据类型:

值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。

引用数据类型(对象类型):对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。

可以看出虽然JS有多种数据类型,但是不同于Java、C/C++,JavaScript,并不是一种强类型的语言,而是弱类型的语言,也可以算是JS的一个特点,与之对应的是关于另一种描述:动态类型(变量的类型会随着赋值不同类型的数据而改变);

这一特性对于前端来说算是一把双刃剑:一方面定义的变量的时候不用过多的考虑其类型,效率因此得到提升,另一方面由于没有类型的约束,从而会引发项目莫名的崩溃,造成不稳定性,对后期维护或者二次开发来说都是不小的挑战。

有问题自然有解决问题,TypeScript由此应运而生,带着并且以肉眼可见的速度席卷而来,受到广大前端开发者的青睐,赫然成为前端开发的必备技能,可以对变量的类型进行约束,从而将一些潜在的风险扼杀再摇篮里。

更多思考:

  1. 对象类型和原始类型的不同之处?
  2. 判断数据有哪些方式?有什么区别?
  3. 类型转换有那些方式?有什么区别?

参考及相关:

菜鸟教程-JavaScript数据类型

MDN-JavaScript数据类型

二、运算符

算数运算符:+、- 、* 、\ 、% 、++ 、--

赋值运算符:=、+=、-=、*=、/=、%=

比较运算符:==、===、!=、>、<、>=、<=

逻辑运算符:&&(l逻辑与)、||(逻辑或)、!(逻辑非)

位运算符:&、|、~、^、<<、>>

其他:

  • delete操作符:用于删除对象的某个属性;如果没有指向这个属性的引用,那它最终会被释放
    传送门

三、真与假(true&false)

数值类型

转换成布尔值

undefined

false

null

false

布尔值

true是true、false是false

+0、-0和NaN都为false,其他都为true

字符串

如果字符串是空的(长度是0)为false、其他(长度大于等于1)都为true

对象

true

注意:对象始终为true

四、相等运算符(==和===)

== 和 === 的区别:

前者会进行类型转换(隐式转换),然后对值进行比较;

后者则不进行类型转换,类型相同进行值的比较,类型不同直接返回false

== 运算符比较是不同类型的如何比较

类型(a)

类型(b)

结果

null

undeifned

true

undefined

null

true

字符串

a == toNumber(b)

字符串

toNumber(a) == b

布尔值

任何类型

toNumber(a) == b

任何类型

布尔值

a == toNumber(b)

字符串或数

对象

a == toPrimitive(b)

对象

字符串或数

toPrimitive(a) == b

类型相同时,JS使用equals方法比较两个值或对象,类型不同时用用到的两个方法toNumbertoPrimitive为内置方法

参考及相关:

toNumber

toPrimitive

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值