js实用好用的一些符号 ,你准没用过

Math.floor(4.9) === 4      //true
// 简写为:
~~4.9 === 4      //true

不过要注意,对正数来说 ~~ 运算结果与 Math.floor( ) 运算结果相同,而对于负数来说与Math.ceil( )的运算结果相同:

~~4.5                // 4
Math.floor(4.5)      // 4
Math.ceil(4.5)       // 5

~~-4.5        		// -4
Math.floor(-4.5)     // -5
Math.ceil(-4.5)      // -4

右移运算符 >>

运算符执行有符号右移位运算。与左移运算操作相反,它把 32 位数字中的所有有效位整体右移,再使用符号位的值填充空位。移动过程中超出的值将被丢弃。

举个例子:假设我们往右移动一位,其实就是除于2然后向下取整了,如果移动2位,就是除于4向下取整,以此类推,反正就是2的n次方。

4 >> 1 // 2
9 >> 1 // 4
15 >> 2 // 3

左移运算符 <<

同上,这里为乘,就不解释了

+ 正号

这个符号既是加号,也是正号,可以最优雅的将某个值转换成数字。

const timestamp = +new Date() // 时间戳
console.log(+'18' === 18) // true

空值合并运算符 ??

只有左侧的值为null或undefined的时候才使用右侧的值。

let obj = {age: 0, name: '', sex: null, has: false};
obj.has ?? '111'; // false
obj.age ?? '111'; // 0
obj.name ?? '111'; // ''
obj.sex ?? '111';  // 111
obj.addr ?? '111'; // 111

空值赋值运算符 ??=

和空值合并运算符??类似(可常量、可变量)。
当??=左侧的值为null、undefined的时候,会将右侧的值赋值给左侧变量。

let obj = {name: '', age: 0, has: false, sex: null}
obj.name ??= 'jack'
obj.age ??= 18
obj.has ??= true
obj.sex ??= 'man'
obj.add ??= '...'
console.log(obj) // {name: '', age: 0, has: false, sex: 'man', add: '...'}

可选链操作符 ?.

可选链操作符平时经常能看见,但是对象用中括号取值的时候可能就比较小众了。

let obj = {name: '', age: 0, has: false, sex: null}
obj?.['name']?.['length']
obj.getName?.()

使用BigInt支持大整数计算问题

es2020引入了一种新的数据类型 BigInt,用来表示任意位数的整数
例如

// 超过 53 个二进制位的数值(相当于 16 个十进制位),无法保持精度
Math.pow(2, 53) === Math.pow(2, 53) + 1 // true

// BigInt
BigInt(Math.pow(2, 53)) === BigInt(Math.pow(2, 53)) + BigInt(1) // false

除了使用BigInt来声明一个大整数,还可以使用数字后面加n的形式

1234 // 普通整数
1234n // BigInt



### React

*   介绍一下react

*   React单项数据流

*   react生命周期函数和react组件的生命周期

*   react和Vue的原理,区别,亮点,作用

*   reactJs的组件交流

*   有了解过react的虚拟DOM吗,虚拟DOM是怎么对比的呢

*   项目里用到了react,为什么要选择react,react有哪些好处

*   怎么获取真正的dom

*   选择react的原因

*   react的生命周期函数

*   setState之后的流程

*   react高阶组件知道吗?

*   React的jsx,函数式编程

*   react的组件是通过什么去判断是否刷新的

*   如何配置React-Router

*   路由的动态加载模块

*   Redux中间件是什么东西,接受几个参数

*   redux请求中间件如何处理并发



![](https://img-blog.csdnimg.cn/img_convert/9749ea39072fc4b7b27af6f3a4db5ab1.png)
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值