2-16 没有匹配不会显示

2-16 没有匹配不会显示

if(matchingResult.value != null){

return matchingResult.value ;

}else{

return matchingResult.value = '(没有匹配)';

}

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

虽然都是没有信息,但是null不指向任何对象,相当于没有任何值,代表内存中根本没有这个东西,而“”代表一个长度为0的字符串空,他是有内存空间的.

祝学习愉快~

如果可以解决你的疑问,要采纳哦!


  • TeLiCH 提问者 #1
    那刚才说当没有匹配到的时候,是空字符串,没有匹配到不是应该返回null吗?
    2018-07-18 19:38:06
  • TeLiCH 提问者 #2
    var str = '/[a\nb]/'; /*此处写代码*/ var pattern = /\/\[a b\]\//; document.write(pattern.exec(str)); 就像这个一样返回null,而刚才那个为什么返回的是空字符串呢?脑壳疼
    2018-07-18 19:40:53
  • 妮可妮可妮_ 回复 提问者 TeLiCH #3
    同学可以尝试一下当匹配不到的时候,matchingResult.value值的类型为字符串,我们需要判断matchingResult.value的值,所以if的判断条件就是if(matchingResult.value != "")
    2018-07-19 10:50:04
妮可妮可妮_ 2018-07-19 15:15:45
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>arguments</title>
</head>

<body>
    <textarea name="" id="bb" cols="30" rows="10"></textarea>
    <button id="btn">df</button>
    <script>
    btn.onclick = function() {
        var a = null;
        bb.value = a;
        console.log(bb.value);
    }
    </script>
</body>

</html>

可以测试一下这个小例子会不会更容易解决疑惑

妮可妮可妮_ 2018-07-18 16:08:03

http://img1.sycdn.imooc.com//climg/5b4ef5320001114204510208.jpg

 因为如果有正确匹配的时候,是有内容的,所以不为null,走的是if

 当没有匹配到的时候是空字符串,你的if判断条件为当matchingResult.value 不为 null的时候,所以满足if条件,所以不能输出(没有匹配) 

建议参考上图所示修改代码,祝学习愉快!


  • 提问者 TeLiCH #1
    后来我也发现改成空字符串啦 但是还是不太明白null和空字符串的 不是说没匹配到就是null吗
    2018-07-18 18:03:09
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
进击JavaScript核心 2018
  • 参与学习       466    人
  • 提交作业       74    份
  • 解答问题       635    个

JavaScript不仅能实现静态页面到动态特效的转变,还能完成数据的动态交互,但是关于js到底功能有多强大,大家还是有所期待的,本路径将带你深入到js中,一一揭开JavaScript的神秘面纱。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师