为了账号安全,请及时绑定邮箱和手机立即绑定

if(open1==ture)和if(open1="ture")和if(open1)在下面代码中的表现?

可以发现

if(open1==ture)和if(open1)效果是等同的,而if(open1="ture")貌似是错误的表达。有大神帮忙解释下吗?

<!DOCTYPE html>

<html>

 <head>

  <title> new document </title>  

  <meta http-equiv="Content-Type" content="text/html; charset=gbk"/>   

  <script type="text/javascript">  

    

function openWindow()


{


        var open1 = confirm('really open?');


        if (open1 ==true)


        {


        var open2 = prompt('open what?','http://www.imooc.com');


        window.open(open2,'_blank','width=400,height=500,toolbar=no,menubar=no')


        }


     else

     { }


}

  </script> 

 </head> 

 <body> 

      <input type="button" value="新窗口打开网站" onclick="openWindow()" /> 

 </body>

</html>



正在回答

4 回答

if的判断条件是一个布尔值

1:    open1 == true    是一个判断 返回一个布尔值 如果confirm点是 他就等价于 true === true

2:    open1    这个值是你的confirm的返回值 你点否 他就是false 点是 他就是true 

注意 所以可以看出上面两个是等价的

然后加点好玩的

3:    open1 == false    也是一个判断 返回一个布尔值 通过和式1对比 他的结果 和上面两个相反

4:    open1 = true    这就是一个赋值语句了 结束后open1值为true 所以条件恒成立

5:    open1 = false    和式4类似 open1值为false 条件恒不成立

然后才是正经的

6:    open1 = "true"    大部分语言认为非零值都是true 所以这个结果open1值为字符串"true" 条件恒成立

7:    open1 = "false"    所以这个结果open1值为字符串"false" 条件恒成立

8:    open1 = 10    类似的 这个也会是条件恒成立

9:    open1 = 0    重点来了 这个会使条件恒不成立   

好吧 其实这些都是不正经的

正经的是 因为一些历史原因才会有"=","=="的人类语言语义歧义

所以 为了保险 很多语言建议我们

        把变量放在右侧 比如 true == open1 因为 在误写成 true = open1 是 他会因为不符合语法规范直接挂掉 所以可以及时的把问题暴露出来

 

0 回复 有任何疑惑可以回复我~
#1

bblade 提问者

完全帮到我了 ,谢谢
2016-04-11 回复 有任何疑惑可以回复我~

="ture",变量就成了4个字节。新手,答错别骂我

0 回复 有任何疑惑可以回复我~

open1==ture

是等于,而

open1=“ture”

表示赋值,不能用在if语句里面

if(open1)

默认表示open1==true

0 回复 有任何疑惑可以回复我~

=是赋值语句    ==才是等于

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

if(open1==ture)和if(open1="ture")和if(open1)在下面代码中的表现?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信