我想知道JavaScript null和undefinedJavaScript 之间的区别.
我试图了解如何使用默认参数对false值和null值进行解构.以下是我跑过的一些例子:
// #1
const person = { email: 'a@example.com' }
const { email = '' } = person
// email is 'a@example.com'
// #2
const person = { email: '' }
const { email = '' } = person
// email is ''
// #3
const person = { email: false }
const { email = '' } = person
// email is boolean false. why?!
// #4
const person = { email: null }
const { email = '' …Run Code Online (Sandbox Code Playgroud) 我有一个 mongoose 模式,用于存储端口号。我还为该字段设置了默认值。
port:{
type:Number,
default:1234
}
Run Code Online (Sandbox Code Playgroud)
如果我没有通过我的 API 获得任何值,它就会被设置为1234. 但是,如果有人发送null,它会接受null并保存到数据库。
不应该是隐蔽null的1234吗?null不是数字!我理解错了吗?
我正在考虑这里给出的解决方案,但我不想为没有它应该可以工作的东西添加额外的代码(除非我错了并且它不应该转换null为1234)
假设obj对象是obj = {b:1,c:2,d:null,e:undefined},我们使用解构分配:
const {
b : amer ,
c : karam ,
d : moji = 3 ,
e : yasi = [] ,
} = obj;
Run Code Online (Sandbox Code Playgroud)
amer是1和karam是2,它是正确的,但我把默认值d和e。因此,如果d或e有undefined或null,分配使用默认值,yasi是[]因为e是undefined但moji返回null值,它是如此的不可思议,因为在解构assingment默认值是用于检查undefined或null。
为什么解构分配不检查空值?