首页 > 试题广场 >

({} + 'b' {}&nb...

[单选题]
({} + 'b' > {} + 'a')返回值是()
  • a
  • b
  • ba
  • true
  • false
  • 执行报错
这题涉及到隐式类型转换,相关题解文章:https://blog.csdn.net/qq1456732491/article/details/122247566
发表于 2021-12-30 23:51:44 回复(0)

论如何写出被同事打死的代码😇

发表于 2019-11-18 19:58:04 回复(8)
代码 结果
console.log({} + 'b') "[object Object]b"
console.log({} + 'a') "[object Object]a"
console.log(({} + 'b' > {} + 'a')) true

1.“+”连接字符会转换为字符
2.“+”优先级高于“>”
3.“>”运算符比较字符串大小时,会把字符串转换为ASCII码依次比较,这里很明显b大于a

发表于 2019-09-07 09:13:49 回复(7)
在{}+‘b’>{}+'a'中
{}处在语句的起始位置,不会被解析成{}空对象,会被解析为一个表达式,类似于这样
{
}
+‘b’
此时的+‘b’是一个表达式值为NaN
第二个{}并没有处在语句的起始位置,所以会被解析成为空对象
此时的{}+'a' 结果为【object object】a
所以{}+'b'>{}+'a'结果为false
而({}+'b'>{}+'a')结果为true
因为上面的表达式解析后的结果是【object object】b >【object object】a 
此时会按照ASCII码进行比较
发表于 2019-09-17 18:15:38 回复(10)
{} + 'b' -> NaN
{} + 'a' -> NaN
{} + 'b' > {} + 'a' -> false
({} + 'b' > {} + 'a') -> true
发表于 2019-07-16 19:53:31 回复(4)
1、括号会让编译器将其解释为一句表达式,不加{}会被单独分开解释
2、ASCII码进行比较b比a大
3、这些都是很简单的知识点,不知道为什么要出这种拐弯抹角的沙雕题来检验,这种语法在实际应用中谁会这么写,这是在做奥利匹克JS竞赛题吗
发表于 2020-07-16 23:34:08 回复(1)
以下截图请配合高赞食用:
图1

图2

图3

发表于 2022-05-13 17:15:26 回复(0)
这么写代码会被人打死,这种题用来考试也是醉了……
发表于 2020-03-24 23:11:04 回复(0)
sb出题人
发表于 2022-02-13 17:56:56 回复(1)
在{}+‘b’>{}+'a'中 {}处在语句的起始位置,不会被解析成{}空对象,会被解析为一个表达式,类似于这样 { } +‘b’ 此时的+‘b’是一个表达式值为NaN 第二个{}并没有处在语句的起始位置,所以会被解析成为空对象 此时的{}+'a' 结果为【object object】a 所以{}+'b'>{}+'a'结果为false 而({}+'b'>{}+'a')结果为true 因为上面的表达式解析后的结果是【object object】b >【object object】a  此时会按照ASCII码进行比较
发表于 2020-06-12 18:27:09 回复(0)
隐式转换以后进行比较
发表于 2023-08-14 23:38:18 回复(0)
但我浏览器结果是false
发表于 2023-04-24 11:33:27 回复(0)
人蠢了,可以转换,英语就是对于的ascll码😭😭
发表于 2022-11-14 18:06:32 回复(0)
啥玩意儿?多选题,然后答案是D??说好的多选呢?
发表于 2021-12-25 18:18:46 回复(0)
这种代码的意义是什么??????  折磨人的吗?
发表于 2021-10-15 21:57:27 回复(0)
字符串 ASCII比较
发表于 2021-07-02 22:32:26 回复(0)
括号会将其解释为一条语句
发表于 2021-04-27 14:16:50 回复(0)