老师 1-14 这个代码没有看懂 if里面没有执行任何行为 用口语怎么翻译这个题目?

来源:1-14 选择练习

Alvin24

2019-01-30 17:04:38

http://img.mukewang.com/climg/5c5168a300014e2104020384.jpg

写回答

2回答

好帮手慕夭夭

2019-01-30

你好同学 ,并不是莫名其妙的转换 .这就是js代码存在的一种转换形式 , 叫做隐式转换 . 

隐式转换就是我们看不到的 , js自己去进行的转换 . 那么什么情况下会进行转换呢 . 例如如下:

逻辑与去判断两个操作数 , 如果这两个操作数返回的类型都是true , 那么就默认返回第二个操作数 .这个是逻辑与的规则 . 

http://img.mukewang.com/climg/5c5174720001c90003580052.jpg

所以根据这个规则 , js在进行判断时 , 就会把"hello" 和 1转换为布尔类型 , 这个转换过程是我们看不到的 , js自己去进行的 , 这就是隐式转换 . 如下转换两个操作数的过程 ,这个是我们看不到的 . 

http://img.mukewang.com/climg/5c5174890001dd3e02670077.jpg

所以像在if语句 ,while循环中 ,如果是一个表达式 ,就会自动转换数据类型去判断 . 

希望解答了你的疑惑 , 祝学习愉快 ! 望采纳 .

1

好帮手慕夭夭

2019-01-30

你好同学 ,不太明白描述的if里面没有执行任何行为具体说的是什么 .老师给你解释一下这个代码 ,看看能够解答你的疑惑 . 如果没有解决疑问 ,可以详细的描述一下你具体哪里不懂 .

if中的判断条件如果是一个表达式 , 表达式返回的结果隐式转换为布尔类型是true ,就会进入if里面的语句 ,如果是false  , 就不会进入if语句了 ,如果有esle , 会进入else . 例如如下:

逻辑或中只要有一个能够返回true  ,那么整个表达式返回的就是true , num1能够返回true ,所以if条件是可以进入的 , 弹出"hello"

http://img.mukewang.com/climg/5c516eea0001bf2003900221.jpg

祝学习愉快 ,望采纳 .

0
hlvin24
h if()括号里面仅仅是表达式 怎么就莫名其妙对其进行隐式转换为布尔类型了。
h019-01-30
共1条回复

0 学习 · 36712 问题

查看课程