javascript - 对于即将从 GET 响应接收其值的属性,我应该使用 Undefined 或 Null 作为默认值吗?
问题描述
假设我想呈现产品信息,但是必须首先通过 GET 请求,以便我可以将响应分配给产品。我的问题是,在 中data()
,product 的默认值应该是 undefined 还是 null,有什么区别吗?
<template>
<div>
{{ product }}
<div>
</template>
<script>
import axios from "axios"
export default {
data(){
return{
product: undefined,
productId: this.$route.params.productId
}
},
methods:{
async getProduct(){
let response = await axios.get("/product/" + this.productId)
this.product = response.data.product
},
},
mounted(){
this.getProduct()
}
}
</script>
解决方案
问题的“应该是”部分没有答案,因为这是一个见仁见智的问题,但对比两者之间的差异和共同点可能会有所帮助。
undefined
Undefined 是 JavaScript 中的一种数据类型,具有单个值,undefined
并且是
- 如果没有指定其他返回值,则默认从函数返回,
- 当读取一个从未初始化过的变量时,
- 读取从未设置过的对象的属性时(包括其下标是 Array 对象的属性的数组条目),并且
- 当访问已显式设置为的变量、属性或函数返回值时,
undefined
可能是因为它毕竟是一种数据类型。
未定义的值被视为false
比较语句或三元?
表达式,不包括严格的相等比较null === false
。
JSON 中不支持未定义的数据类型:在将数据对象序列化为 JSON 文本时undefined
转换为。null
null
Null 也是具有单个值的 JavaScript 数据类型null
。undefined
在许多方面,它与重要的区别相似:
null
默认情况下不会出现值,并且必须始终显式分配给变量、属性或从函数返回。null
将数据对象序列化为 JSON 时支持的值。null
具有“无对象”的历史意义或类似于数学中的空集phi的空对象类。
关于您的使用选择,初始化product
以undefined
突出显示该值尚未获得,但也有可能被解释为undefined
在要求返回时返回的函数中的错误product
。返回null
解决任何“这不是错误”的问题,并且是公认的做法。
推荐阅读
- struct - 改变结构内结构的值
- react-native - 将 env 文件传递给 detox
- sql - 行到列 - 拆分和填充
- flutter - 是什么导致了这个错误?(参数太多)Flutter
- node.js - 使用 nodejs 12 的 aws-lambda 函数返回错误:“EMFILE,打开的文件太多”
- android - 选择项目后更改 Spinner 列表内容 Android
- php - Laravel 目标类 [App\Http\Controllers\App\Http\Controllers\ApiController] 不存在
- javascript - JS中的日期转换问题
- excel - Excel VBA - WorksheetFunction.CountA 错误 - 需要对象
- javascript - 有没有办法在 jQuery AJAX 调用上触发 done 函数?