• 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

  • 相关阅读:
    ps2021神经ai滤镜无法使用,ps2021没法用神经元滤镜
    Go项目使用自定义的公共单元
    产品外观设计有哪些表面处理工艺
    后台页制作01《ivx低代码签到系统制作》
    【MHA】MySQL高可用MHA介绍8-常见错误以及解决
    蓝牙学习一(简介)
    深入了解 Bat 脚本:简单而强大的自动化工具——基础版
    点灯科技实现 “ESP8266-01/01s + 继电器” 远程开关
    【Django多对多使用through自定义中间表详解】
    算法竞赛——数论(一),数论内容的介绍,基础数论
  • 原文地址:https://blog.csdn.net/Flying____fish/article/details/128062534