每日一题:相不相等

介绍

小蓝想要自己开发一套用于 JS 单元测试的基础 API,先从编写一个用于检验两个数据值是否相等的函数开始吧,但是此时的小蓝却犯了难,聪明的你快来帮帮他吧~

准备

开始答题前,需要先打开本题的项目代码文件夹,目录结构如下:

1
└── index.js

其中:

  • index.js 是需要补充代码的 js 文件。

目标

请你编写一个名为 expectFn 的函数,用于帮助开发人员测试他们的代码。它可以通过参数 val 接受任何值,并返回一个对象,该对象包含下面两个函数:

  • toBe(val):接受另一个值并在两个值相等( === )时返回 true 。如果它们不相等,则返回 “Not Equal” 。
  • notToBe(val):接受另一个值并在两个值不相等( !== )时返回 true 。如果它们相等,则返回 “Equal” 。

示例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 示例 1:
输入:console.log(expectFn(5).toBe(5))
输出:true
解释:5 === 5 因此该表达式返回 true

// 示例 2:
输入:console.log(expectFn(5).toBe(null))
输出:"Not Equal"
解释:5 !== null 因此抛出错误 "Not Equal".

// 示例 3:
输入:console.log(expectFn(5).notToBe(5))
输出:"Equal"
解释:5 === 5 因此抛出错误 "Equal".

// 示例 4:
输入:console.log(expectFn(5).notToBe(null))
输出:true
解释:5 !== null 因此该表达式返回 true.

规定

  • 请勿修改 index.js 文件中 TODO 之外的任何内容。
  • 请严格按照考试步骤操作,切勿修改考试默认提供项目中的文件名称、文件夹路径、class 名、id 名、图片名等,以免造成判题无法通过。

判分标准

  • 本题完全实现题目目标得满分,否则得 0 分。

总通过次数: 794 | 总提交次数: 935 | 通过率: 84.9%

难度: 中等 标签: 2023, 省模拟赛, Web 前端

题解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
/**
* @param {string} val
* @return {Object}
*/
var expectFn = function(val) {
// TODO
return {
toBe(val2) {
if (val === val2) {
return true
} else {
return 'Not Equal'
}
},
notToBe(val3) {
if (val !== val3) {
return true
} else {
return 'Equal'
}
}
}
};