gpt4 book ai didi

javascript - 我不明白 JavaScript 中的这种比较是如何工作的

转载 作者:行者123 更新时间:2023-12-01 01:54:41 25 4
gpt4 key购买 nike

考虑以下变量href:

var href = element.attr('href');

我遇到过类似这样的情况:

href && href.indexOf('javascript') == -1 ? TRUE : FALSE

谁能解释一下这种比较是如何进行的或者为什么有人会这样做?

最佳答案

含义

您的比较字面意思是这样的:

  1. 如果href存在
  2. href是一个不包含子字符串“javascript”的字符串
    • 然后,返回TRUE
    • 否则,返回FALSE
<小时/>

组件

它由以下组件组成:

  1. href :
    将有a truthy value如果href存在
  2. href.indexOf('javascript') == -1 :
    将是 TRUE如果“javascript”不是字符串 href 的子字符串
  3. A && B :
    返回TRUE如果两者AB具有真实的值(value)
  4. X ? Y : Z :
    返回Y如果X具有真实值且 Z如果没有的话
<小时/>

用例

您可能会问,为什么有人会这样做?为什么有人会寻找字符串 javascript里面href<a>标签,你可能会问?

那么,考虑以下 HTML:

<a href="javascript:alert('Hello World')">Click me</a>

现在,这一切都会触发 alert()当您点击该链接时。虽然这是无害的,但黑客可以使用相同的技术来运行各种恶意代码。

虽然这不完全是一个万无一失的解决方案,但比较href && href.indexOf('javascript') == -1 ? TRUE : FALSE几乎可以肯定用于查找此类恶意代码并将其删除。

关于javascript - 我不明白 JavaScript 中的这种比较是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35751338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com