吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1469|回复: 19
收起左侧

[已解决] JS基础:为什么“是的”, “不是的” 也是表达式?

[复制链接]
clearwater 发表于 2020-2-9 08:49
本帖最后由 clearwater 于 2020-2-9 09:13 编辑

1、由于能量有限,加上问题简单,所以我只给前两位,回答正确,并且能帮我理解的大神评分。后面的人的答案如果雷同,我只能在此表示感谢了。请恕不一一评分了。(现在手上没能量,而且昨天还欠两位大神的热心值,所以本帖不晚于明天再补评分。)
2、请口下留情,不要来讥讽我;另外不要来回答与我的问题无关的水帖。比如:感谢分享,路过,帮顶,我也不懂。


我在跟某前端视频学习。之视频中提到什么是表达式。



表达式:是由数字、运算符、变量等以能求得数值的有意义排列方法所得的组合
简单理解:是由数字、运算符、变量等组成的式子
表达式最终都会有一个结果,返回给开发者,称为返回值


问题: 我不理解为什么“是的”, “不是的” 也称为表达式。 它们不是由数字、运算符或变量呀。
如果我把“的”,去掉也可以吗? 即, “是”, “不是”?

以下是视频和老师笔记的截图
1.PNG 2.PNG

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| clearwater 发表于 2020-2-9 08:52
我想明白了。

可能是老师表达有误吧?

截图中的“表达式1”, “表达式2” , 其实应该称为“返回值1” -是的, “返回值2” 不是的。

对吗?
milkbaby 发表于 2020-2-9 10:00
本帖最后由 milkbaby 于 2020-2-9 10:07 编辑
clearwater 发表于 2020-2-9 08:52
我想明白了。

可能是老师表达有误吧?

你说的也有问题,这里不能用返回值来表述,因为三目运算符的第二目和第三目只是在条件表达式为真或假时要执行的内容,并不一定是第一目表达式的真正返回值,因为第一目的返回结果,只有“True”和“False”这两种结果,但我们并不一定要用到这个结果,我们有用到其它表达式的自由,这个表达式可以是字符串,例如你举的例子“是的”、“不是的”,也可以是其它东西,例如变量、函数指针、对象、数组等任何具有实际意义的有效表达式。
这个老师举的例子也有问题,用“是的”和“不是的”容易误导初学者,应该用“真”或“假”来代替,这样就容易理解三目运算符的逻辑。其实,三目运算符就是if…else的简写,精炼代码,提高阅读性,算是以前的一个语法糖。(以上双引号只是为了打字方便,忽略语言之间的区别)
你上面举的例子可以转化为下面的普通形式(C#,其它语言类似),这样能更直观地帮助你理解三目运算符的功能
[C#] 纯文本查看 复制代码
if(num>5)
  "是的"     //num确实大于5时,走这条分支,打印这个字符串
else
  "不是的"    //num小于5时,走这条分支,打印这个字符串

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
clearwater + 1 + 1 两个回答特优质,会各给2个热心。另个热心是人品特高尚

查看全部评分

milkbaby 发表于 2020-2-9 10:19
本帖最后由 milkbaby 于 2020-2-9 10:22 编辑
clearwater 发表于 2020-2-9 10:09
我知道什么是三目运算符。

我之前学过一点基础的C 和C++可是都没有坚持下来,都忘光了。

不客气,大神不敢当,只是也是过来人,帮一把。
字符串也是一种表达式,表达式并不仅仅局限于变量(对计算机而言,实际上就是变量指向的地址)之类的东西,只要是能求得实际意义或结果的一个运算或地址,都可以是表达式,对于计算机而言,字符串实际上也只是个指向字符串内容本身的一个地址,所以字符串也是表达式,这样好理解了吧?
总之,一切经过特定组合能求得结果的有效语句,我们都可以将之称为表达式,这样一来,函数名(本身就是个地址,可以粗略理解成函数型的变量名)、对象名(也是个地址)跟字符串一样,在那里都算表达式。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
clearwater + 1 + 1 我还想再给您另外3个热心,我认为很值,不过要慢慢来

查看全部评分

bester 发表于 2020-2-9 08:51
这个是哪个教程?可否分享一下
 楼主| clearwater 发表于 2020-2-9 08:53
本帖最后由 clearwater 于 2020-2-9 09:34 编辑
bester 发表于 2020-2-9 08:51
这个是哪个教程?可否分享一下

赶紧保存。一会儿,我就删掉。因为害怕里面有啥小广告,我没发现。

我自己删了很多的小广告了,提心有漏网之鱼。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
bester + 1 + 1 我很赞同!

查看全部评分

连晋 发表于 2020-2-9 09:07
X > Y ?   A : B  

这个东西叫做 三目运算符

<表达式1> ? <表达式2> : <表达式3>; "?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。
可以理解为条件 ? 结果1 : 结果2 里面的?号是格式要求。也可以理解为条件是否成立,条件成立为结果1,否则为结果2。
取个名字真难 发表于 2020-2-9 09:07
这个是java里的三元表达式
流程是这样的
判断 num 是否大于5 那个?就是表示的是询问吧(个人理解),如果>5将返回一个string ’是的‘,否则就会返回string ’不是的‘
取个名字真难 发表于 2020-2-9 09:09
至于你的问题,是因为两个都是string 而 string 是表达式之一

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
clearwater + 1 + 1 之前没看懂大神的话。您是对的。谢谢

查看全部评分

sushangyu 发表于 2020-2-9 09:09
本帖最后由 sushangyu 于 2020-2-9 09:11 编辑

表达式我认为是num>5这个,至于后边是返回值,其实也变量的一种而已,我也只是懂皮毛,讲错了,各位大神勿喷,谢谢

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
clearwater + 1 + 1 谢谢@Thanks!

查看全部评分

 楼主| clearwater 发表于 2020-2-9 09:12
sushangyu 发表于 2020-2-9 09:09
表达式我认为是num>5这个,至于后边是返回值,其实也变量的一种而已

英雄和 楼主所见略同。多谢指教。

不晚于明天给您评分。(因为昨天欠两位大神的。所以要一一排队。)

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 20:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表