小记一点东西嘿嘿
符号
! && !!
! 逻辑非运算符
MDN web docs:链接点我
简单来说就是取反
boolean类型会直接进行判断
非布尔类型,可以转换为false的表达式如下
null
NaN
0
空字符串( “” or ‘’ 或 `` )
undefined
false
以上5类型值称为Falsy(假值),其余均为Truthy(真值),这五类型取反为true,其余均为false,举几个栗子⬇️
🌰
n1 = !true // console.log(n1) ---> false
n2 = !false // true
n3 = !'' // true
n4 = !'Cat' // false
!! 双重NOT运算符
MDN web docs这么解释:可以串联使用两个NOT运算符来显式强制将任何值转换为相应的布尔基元。转换基于值的“真实性(Trethy)”或“虚假性(Falsy)”
文档这东西就是晦涩哈,其实也就是基于真值与假值做转换或判断
可结合文末中Truthy与Falsy的栗子做判断
= && == && ===
= 赋值
== 判断 null == undefined console —> true
=== 全等于 不一样就false
…
扩展运算符:用于取出参数对象的所有可遍历属性(可枚举),拷贝到当前对象之中
懒了懒了,详情点击下方链接
https://blog.csdn.net/qq_30100043/article/details/53391308
隐式转换
很详细,很底层了
https://blog.csdn.net/itcast_cn/article/details/82887895
Truthy(真值)
在 JavaScript 中,truthy(真值)指的是在布尔值上下文中,转换后的值为真的值。所有值都是真值,除非它们被定义为 falsy(假值)(即除 false、0、""、null、undefined 和 NaN 以外皆为真值)。
例:
if (true)
if ({})
if ([])
if (42)
if ("foo")
if (new Date())
if (-42)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)
Falsy(假值)
在 JavaScript 中只有 7 个 falsy 值。这意味着当 JavaScript 期望一个布尔值,并被给与下面值中的一个时,它总是会被当做 false。
值 | 解释 |
---|---|
false | false关键字 |
0 | 数值零 |
0n | 当 BigInt 作为布尔值使用时, 遵从其作为数值的规则. 0n 是 falsy 值. |
“”, ‘’, `` | 字符串的长度为零,字符串可用双引号 “”, 单引号 ‘’, 或 模板字面量 `` 定义 |
null | 缺少值 |
undefined | 非数值 |
NaN | 原始值 |
JavaScript 中 falsy 值的例子 (在布尔值上下文中被转换为 false,从而绕过了 if 代码块):
if (false)
if (null)
if (undefined)
if (0)
if (0n)
if (NaN)
if ('')
if ("")
if (``)
if (document.all)