2 yzy4829229 yzy4829229 于 2016.02.29 15:00 提问

关于Javascript中confirm函数的逻辑问题

在以下函数中,弹出信息框之后,我点击确认,返回true,弹出来的却是else的内容,如果我点击取消,弹出的也是else的内容。
如果我改变变量name的名字,那么逻辑判断正确。请问是这个name变量的名字有什么问题吗?

 var name = confirm("你喜欢我吗?");
    if(name == true){
        alert("谢谢,其实我也喜欢你很久了!");
    }
    else{
        alert("操,不喜欢我就滚!");
    }

3个回答

showbo
showbo   Ds   Rxr 2016.02.29 15:49

你是不是在window作用域下执行的?这样name是窗口属性window.name,字符串格式的,虽然confirm返回布尔变量但是还是被转为字符串了

   function fun() {
        var name = confirm('ok')
        alert(typeof(name))//boolean
        alert(name)
        alert(window.name)
    }
    var name = confirm('window')
    alert(typeof (name))//string
    alert(name)//true或者false
    alert(window.name)//true
    fun();
yzy4829229
yzy4829229 太棒了,谢谢您!
接近 2 年之前 回复
caozhy
caozhy 点赞失效了?showbo正解
接近 2 年之前 回复
caozhy
caozhy   Ds   Rxr 2016.02.29 15:04

看下你的代码别的地方是不是又定义了一个name

yzy4829229
yzy4829229 肯定没有,你用你的浏览器试试
接近 2 年之前 回复
hjkNet
hjkNet   Ds   Rxr 2016.02.29 15:17

图片说明图片说明

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!