js的数据类型、堆栈存储、多数据类型计算

js数据类型有哪些

基本数据类型: Number、String、Boolean、Undefined、Null、Symbol(es6新增独一无二的值) 和 BigInt(es10新增);

引用数据类型: Object。包含Object、Array、 function、Date、RegExp

栈堆存储

        栈内存是存储基本数据类型的 堆内存是存储引用数据类型的

        特点:栈内存是从上往下存储的

                   堆内存是从下往上存储

变量计算-类型转换:

1. 字符串拼接

+运算中有字符串,结果就是字符串拼接

2. ==与===

==二等表示值相等,类型可以不相等

===三等表示全等,类型相同值相等

Number()转换成Number类型在进行判断。例外规则,null==undefined,null/undefined进行运算时不进行隐式类型转换。通常把值转为Boolean值,进行条件判断。Boolean(null)===Boolean(undefined)>false===false 结果为true

3. if语句和逻辑运算

  1. truly变量和fasely

在这里插入图片描述

一个!是取反 

两个!! 是如果是true就是truly 如果是false就是falsely

falsely变量一共有6种 引用类型Boolean值全是true.

if语句中的判断

        if条件是单个值时,如果是truly值,条件成立, 如果是falsely值,条件不成立

逻辑判断:

        逻辑与(&&)运算规则: 左侧为truly返回右侧,左侧为fasely返回左侧。
        逻辑或( | | )运算规则: 左侧为truley返回左侧,左侧为fasely返回右侧

深拷贝和浅拷贝的区别

浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用

深拷贝: 创建一个新的对象和数组,将原对象的各项属性的“值”拷贝过来,是“值”而不是“引用”

浅拷贝实现

        1 .直接遍历

        2 .slice() 方法返回一个从已有的数组中截取一部分元素片段组成的新数组

        3 .concat() concat() 方法用于连接两个或多个数组 他可以返回新数组       

深拷贝实现

        1.循环遍历

        2.ES6的Object.assign 用于对象的合并,将源对象的属性,复制到目标对象,并返回合并后的target

        3.ES6扩展运算符  用于取出参数对象的所有可遍历属性,拷贝到当前对象之中

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值