JavaScript中的name以及prompt()对话框取消时的值

一、存在问题

在写demo时,发现的一个问题。就是prompt()方法弹出的对话框点击取消按钮时,获取到的值应该是null,我却获取到"null"

二、问题分析

我的demo是

<script>
	var name = '';
	while(name == '' || name == null){
		name = prompt('请输入你的账号:',"");
	}
</script>

按理来说,prompt()方法浏览器弹出对话框不输入内容点击确定按钮获取到的是'',直接点击取消按钮就会获取到null。那我这里的判断通过不了,就会继续弹出对话框给用户输入。

但是,当我点击取消按钮时,对话框关闭了没有继续弹出。

我对demo进行修改

<script>
	var name = '';
	while(name == '' || name == null){
		name = prompt('请输入你的账号:',"");
	}
	console.log(name);
	console.log(name == '');
	console.log(name == null);
	
	console.log(typeof(name));
</script>

浏览器弹出对话框,我点击取消按钮,控制台打印:
在这里插入图片描述
说明我获取到的值是"null",而不是null。
我怀疑是我前面声明var name ='';使后面获取的值是string类型,于是我把demo改为:

<script>
	while(name == '' || name == null){
		var name = prompt('请输入你的账号:',"");
	}
	console.log(name);
	console.log(name == '');
	console.log(name == null);
	
	console.log(typeof(name));
</script>

结果还是一样,我去网上看了下,有人也碰到类似问题,原来是变量名引起的,把name换成name1,就可以达到我要的效果

<script>
	//while(name1 == '' || name1 == null){
		var name1 = prompt('请输入你的账号:',"");
	//}
	console.log(name1);
	console.log(name1 == '');
	console.log(name1 == null);
	
	console.log(typeof(name1));
</script>

在这里插入图片描述
这次点击对话框的取消按钮,获取到的值是null。

三、问题由来

name是JavaScript中内置的值,在菜鸟课程网站里提及点击查看
在这里插入图片描述
找个空白页面,去浏览器控制台测试下:
在这里插入图片描述
我没有声明任何变量,控制台打印a会报错,打印name则是字符串""

四、总结

(1)平时命名变量名时,为了避免出现奇怪的问题,我们要尽量避免使用JavaScript中内置的值,例如name。
(2)prompt()方法弹出的对话框,当不输入内容时点击确定按钮获取到的值是'',当点击取消按钮时获取到的值是null。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值