项目中遇到的JS中boolean判断问题

项目中遇到的JS中boolean判断问题

最近在项目中遇到一个关于js获取值进行truefalse 判断的问题:

示例代码如下:

<body>
		<div id="radioTest" style="margin-left: 40%;margin-right: 40%;">
			<input type="radio" name="flag" id="flag" value="true" onclick="trueClick()"/><input type="radio" name="flag" id="flag" value="false" onclick="falseClick()"/></div>
		
		<script type="text/javascript">
			
			function trueClick() {
				const flag = $("#radioTest input[name='flag']:checked").val();
				if (flag == true) {
					console.log("true被选择");
				}
				console.log("真——被点击,其值为:" + flag  + " 其类型为:" + typeof flag);
			}
			
			function falseClick() {
				const flag = $("#radioTest input[name='flag']:checked").val();
				if (flag == false) {
					console.log("false被选中")
				}
				console.log("真——被点击,其值为:" + flag  + " 其类型为:" + typeof flag);
			}	
		</script>
</body>    

如上述代码,为什么不能打印true被选择false被选择这两条语句?

原因:

​ 从<input type="radio" name="flag" id="flag" value="true" onclick="trueClick()"/>中获取的值是String类型,而不是Boolean类型,flagtrue进行比较的结果只能是false。

字符串类型转换为boolean类型
let str = '';
console.log("空字符串转换为boolean类型,值为: " + Boolean(str));
str = 'true';
console.log("'true'转换为boolean类型,值为: " + Boolean(str));
str = 'false';
console.log("'false'转换为boolean类型,值为:" + Boolean(str));
str = 'abcdefg';
console.log("其它普通字符串转换为boolean,值为:" + Boolean(str));

上述代码结果为:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值