为什么要写成null==obj
时间: 2023-08-14 11:08:27 浏览: 52
将`null`放在表达式的左侧,例如`null==obj`,是一种编程习惯,被称为“Yoda 表达式风格”(Yoda Conditions)。这种风格得名于星球大战中的 Yoda 角色,因为他的语言特点是将谓语放在主语之后,例如“Powerful you have become, the dark side I sense in you”(你变得强大了,我感受到你身上的黑暗面)。Yoda 表达式风格也是将常量或字面量放在表达式的左侧,而将变量放在右侧。
使用`null==obj`这种写法的好处是,如果不小心将`==`写成了`=`,例如`null=obj`,编译器会提示错误,因为不能将值赋给常量。而如果使用`obj==null`这种写法,将`==`写成`=`时,编译器不会报错,而是将`null`赋值给`obj`,可能会导致程序出现逻辑错误。因此,使用`null==obj`这种写法可以减少编程错误的发生,提高代码的可读性和可维护性。
相关问题
为什么规范要求写null==obj而不是obj==null
规范要求写`null==obj`而不是`obj==null`是因为在一些语言中,比如Java,使用`=`符号进行赋值时,如果不小心将`==`写成了`=`, 就会导致程序出现逻辑错误。而将`null`放在前面,就能够避免这个问题,因为如果不小心将`=`写成了`==`,编译器会提示错误。此外,将`null`放在前面也可以让代码更加易读,因为`null`是一个常量,而变量通常是排在前面的。
const getPostData = () => { let obj = { ...form.getFieldsValue(true) }; obj.month && (obj.month = obj.month.format("YYYY-MM-01 00:00:00")); // 考虑要不要写一个通用工具类 const newObj = {}; for (const [key, value] of Object.entries(obj)) { if (value !== undefined && value !== null && value !== "") { newObj[`${SearchName.EQ}_${key}`] = value; } } return newObj; };将这段代码封装成utils里的通用工具类,并可以在整个项目中使用
你可以将这段代码封装成一个通用工具类,让它在整个项目中使用。以下是一个示例:
首先,在你的项目中创建一个名为utils的文件夹,然后在该文件夹中创建一个名为commonUtils.js的文件。
在commonUtils.js文件中,添加以下代码:
```javascript
import { SearchName } from '路径/到/SearchName'; // 替换为SearchName的路径
export const formatFormData = (form) => {
let obj = { ...form.getFieldsValue(true) };
obj.month && (obj.month = obj.month.format("YYYY-MM-01 00:00:00"));
const newObj = {};
for (const [key, value] of Object.entries(obj)) {
if (value !== undefined && value !== null && value !== "") {
newObj[`${SearchName.EQ}_${key}`] = value;
}
}
return newObj;
};
```
在上面的代码中,我们将原始代码封装在名为formatFormData的函数中,并将需要导入的SearchName路径替换为你实际的路径。
现在,你可以在整个项目中使用这个通用工具类。在需要使用的地方导入commonUtils.js并调用formatFormData函数,示例如下:
```javascript
import { formatFormData } from '路径/到/commonUtils'; // 替换为commonUtils的路径
// 在需要的地方调用
const postData = formatFormData(form);
// 使用postData进行后续操作
```
记得将路径替换为你实际的路径。
这样,你就可以在整个项目中使用这个通用工具类来封装上述代码,并且可以重复使用。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)