• 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

  • 相关阅读:
    23种设计模式中之中介者模式(Mediator Pattern)
    Python3-类基础
    怎么获取别人店铺的商品呢?
    css实现进度条
    Databend 开源周报 #66
    Ansible 的脚本 --- playbook 剧本
    c++常用知识
    ubuntu下网卡插入网线后仍然不连接
    BootStrap日历插件
    控制算法::速度前馈
  • 原文地址:https://blog.csdn.net/Flying____fish/article/details/128062534