国密SM4加密实战:从源码实现到Bouncy Castle集成
2026/6/23 5:04:34
在 JavaScript 中,其他值到布尔值的转换遵循以下规则:
false的值)以下 6 个值在布尔上下文中会被转换为false:
false→false0和-0以及0n(BigInt) →false""(空字符串) →falsenull→falseundefined→falseNaN→falsetrue的值)除了上述 6 个 Falsy 值之外的所有值都会转换为true:
"0"、" "(空格)、"false"→true-1、1、Infinity→true{}、[]、function(){}→trueSymbol:Symbol()→trueBigInt非零值:1n→trueif(value){// value 为 truthy 时执行}if(!value){// value 为 falsy 时执行}value&&other;// 逻辑与value||other;// 逻辑或value?a:b;// 三元运算符Boolean(value)// Boolean() 函数!!value// 双重取反Boolean(0)// falseBoolean(1)// trueBoolean("")// falseBoolean("hello")// trueBoolean(null)// falseBoolean(undefined)// falseBoolean(NaN)// falseBoolean({})// trueBoolean([])// trueBoolean([0])// true(数组本身是对象)Boolean(false)// falseBoolean(true)// trueBoolean("0")// true(非空字符串)Boolean(" ")// true(空格也是非空字符串)Boolean(0n)// false(BigInt 零)Boolean(1n)// true[]是 truthy,但[] == false为true(因为[]转为数字是0){}是 truthy"0"和"false"是 truthy(因为它们是非空字符串)false,其他所有值都是true