【发布时间】:2019-05-12 05:32:44
【问题描述】:
> 和 < 等比较运算符在输入作为两个字符串值给出时返回 Boolean 值。
我尝试了几个例子:
/* String vs String */
console.log('firstName' < 'lastname'); // true
console.log('firstName' < 'Firstname'); // false
console.log('!firstName' < 'lastname'); // true
console.log('!firstName' < 'Firstname'); // true
console.log('!firstName' < '!Firstname'); // false
console.log('!firstName' < '_!Firstname'); // true
console.log('@!firstName' < '_!Firstname'); // true
console.log('@!firstName' < '2_!Firstname'); // false
/* String vs Number */
console.log('@!firstName' < 2); // false
console.log('@!firstName' < -1); // false
/* String vs Special Numbers */
console.log('@!firstName' < Infinity); // false
console.log('@!firstName' < -Infinity); // false
console.log('@!firstName' < -Infinity + Infinity); // false
/* String vs NaN */
console.log('@!firstName' < NaN); // false
console.log(NaN.toString()); // "NaN"
console.log('@!firstName' < "NaN"); // true
/* String vs Arrays */
console.log('firstName' < [Infinity, -Infinity]); // false
console.log('firstName' < ['Firstname', Infinity, -Infinity]); // false
console.log('firstName' < ['2_Firstname', Infinity, -Infinity]); // false
我真的很想知道 JavaScript 是如何真正评估这些表达式的。在上面的例子中,我觉得这个是最吸引人的一个console.log('@!firstName' < Infinity); // false。
所以,我的问题是:
如何使用“大于”和“is 这些场景中 JavaScript 中的小于" 运算符(来自上面的示例):
- 字符串与字符串,
- 字符串与数字,
- 字符串与特殊数字,
- 字符串与 NaN,
- 字符串与数组
【问题讨论】:
-
比较两个字符串时,它会逐个字符地比较它们。如果第一个字符不同,它就不会再看下去了。如果它们相同,则继续下一对字符。如果它到达一个字符串的末尾但没有到达另一个字符串的末尾,则较短的字符串“小于”较长的字符串。如果它们的长度相同且相同,则它们相等。
标签: javascript arrays string