JavaScript 中 && 简写的解释

2023-12-02

使用 jQuery 的水印插件,我尝试 jslint 并最小化函数,但我遇到了以前从未见过的语法,其中存在确实应该有赋值或函数调用的表达式:

(function($) {

    $.fn.watermark = function(css, text) {

        return this.each(function() {

            var i = $(this), w;

            i.focus(function() {
                w && !(w=0) && i.removeClass(css).data('w',0).val('');
            })
                .blur(function() {
                    !i.val() && (w=1) && i.addClass(css).data('w',1).val(text);
                })
                .closest('form').submit(function() {
                    w && i.val('');
                });

            i.blur();
        });
    };

    $.fn.removeWatermark = function() {

        return this.each(function() {

            $(this).data('w') && $(this).val('');
        });
    };
})(jQuery);

我对以下几行特别感兴趣:

w && !(w=0) && i.removeClass(css).data('w',0).val('');

and

!i.val() && (w=1) && i.addClass(css).data('w',1).val(text);

有人可以解释这个简写并重写这些函数,以便我可以比较它们以更好地理解简写吗?

谢谢。


让我们将您所询问的每个陈述分解为它们的组成部分:

w && !(w=0) && i.removeClass(css).data('w',0).val('');
  • w - Is w“真的”? (检查!= 0在这种情况下)
  • !(w=0) - Set w to 0,取结果的相反值,因此&&链条继续
  • i.removeClass(css).data('w',0).val('')- 删除类,将数据设置为0清除该值。

!i.val() && (w=1) && i.addClass(css).data('w',1).val(text);
  • !i.val()- 输入内容是否为空?
  • (w=1) - Set w to 1
  • i.addClass(css).data('w',1).val(text);- 添加类,将数据设置为1并将文本设置为水印文本。

这两者都只是声明really减少代码,当然会牺牲可读性。如果您正在查看缩小版本,那么这是很常见的,如果您not这是原版,用沙拉叉追作者,在我看来,原版应该比这个更具可读性,尽管对于缩小版来说就可以了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 中 && 简写的解释 的相关文章

  • 如何防止 Iframe 在与浏览器交互后弄乱浏览器的历史记录?

    因此 就我而言 我使用 Iframe 将 Grafana 附加到我的页面 这为我提供了漂亮且易于使用的图表 可以注意到 每次在图表上进行放大或缩小 使用鼠标单击 交互后 Grafana 的 Iframe 都会在我的 Angular 页面上触
  • Meteor:应用程序无法在 0.9.1.1 版本上运行

    出现类似错误 Error TypeError undefined is not a function evaluating Template create anonymous function iron dynamic template j
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • 如何监听 jQuery AJAX 请求?

    以下两种实现 ajaxRequest 1 2 的方法应该是等效的 话说回来 为什么验证回调已执行的单元测试 3 在 1 中成功而在 2 中失败 我应该如何重写测试 3 来监视 2 中的成功回调 如果我尝试stub jQuery ajax使用
  • 除了更改标题之外,如何在 Firefox 中强制另存为对话框?

    有没有办法在 ff 中强制打开 www example com example pdf 的另存为对话框 我无法更改标题 如果您可以将文件以 Base64 格式输出到客户端 则可以使用 data uri 进行下载 location href
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • 在 webpack 2.x 中使用 autoprefixer 和 postcss

    如何使用autoprefixer使用 webpack 2 x 以前 它曾经是这样的 module loaders test scss loader style css sass postcss postcss gt return autop
  • 通过 CDN 使用 Dojo 时如何加载自定义 AMD 模块?

    我正在使用 google 的 CDN 并尝试使用他们的加载程序加载我自己的 AMD 模块 我知道我做错了什么 但我被困住了 有任何想法吗
  • 如何在react-native中获取Text组件的onPress值

    我是一名新的 React Native 开发人员 我想使用 onPress 获取 Text 组件的值并将其传递给函数
  • Grails 在 javascript 内的 GSP 站点中使用 grails var

    我有一个在 GSP 文件中的 javascript 代码中使用 grails 变量值的问题 例如 我有一个会话值session getAttribute selectedValue 我想在 javascript 代码部分使用这个值 我现在的
  • Angular 2+ 安全性;保护服务器上的延迟加载模块

    我有一个 Angular 2 应用程序 用户可以在其中输入个人数据 该数据在应用程序的另一部分进行分析 该部分仅适用于具有特定权限的人员 问题是我们不想让未经授权的人知道how我们正在分析这些数据 因此 如果他们能够在应用程序中查看模板 那
  • 为 illustrator 导出脚本以保存为 web jpg

    任何人都可以帮我为 illustrator CC2017 编写一个脚本 将文件以 JPG 格式导出到网络 旧版 然后保存文件并关闭 我有 700 个文件 每个文件有 2 个画板 单击 文件 gt 导出 gt 另存为 Web 旧版 然后右键文
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div
  • 如何更改此 jquery 插件的时区/时间戳?

    我正在使用这个名为 timeago 的插件 在这里找到 timeago yarp com 它工作得很好 只是它在似乎不同的时区运行 我住在美国东部 费城时区 当我将准确的 EST 时间放入 timeago 插件时 比如 2011 05 28
  • 长轮询会冻结浏览器并阻止其他 ajax 请求

    我正在尝试在我的中实现长轮询Spring MVC Web 应用程序 http static springsource org spring docs 2 0 x reference mvc html但在 4 5 个连续 AJAX 请求后它会
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比
  • 在 React.js 中编辑丰富的数据结构

    我正在尝试为数据结构创建一个简单的基于网格的编辑器 但我在使用 React js 时遇到了一些概念问题 他们的文档对此没有太大帮助 所以我希望这里有人可以提供帮助 首先 将状态从外部组件传输到内部组件的正确方法是什么 是否有可能将内部组件中
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp
  • fullCalendar 未显示正确的结束日期

    我正在看调试页面 http jsbin com wukofacaxu edit js outputFullCalendar 官方网站的 我想安排一个活动时间为 22 09 2015 至 30 09 2015 dd mm yyyy 但它只显示

随机推荐

  • javascript中“=”的操作

    考虑下面的代码 var pub json general holis 12 10 2013 12 25 2013 12 26 2013 var holiday holis 12 02 2013 var pub json pub json g
  • 编辑和重新显示内容时强制刷新缓存

    我正在使用 asp net mvc 并且有一个显示项目的视图和一个允许编辑项目的视图 当用户提交编辑的项目时 它会将他们重定向到该项目的视图 由于项目视图正在被缓存 因此在重定向时不会反映更改 查看项目页面也可以内联编辑 然后提交按钮使用
  • 即使在文件名前面添加“r”,openpyxl 也无法在 Windows 上保存

    在 OS X 上 openpyxl save 对于名为 all done xlsx 的文件工作正常 然而 当在 Windows 上尝试时 会导致 c Users Tony Desktop ROI gt python roi cut6 py
  • Roxygen2 - 如何正确记录 S3 方法

    我读过 Roxygen2 PDF 和这个site 并且我不知道 method S3method export 之间的区别以及如何使用它们来正确记录 S3 方法 我编写了以下示例以供讨论 我如何正确记录这些 如何模拟 print 和其他通用函
  • Xamarin Forms 上的 UIWebView 弃用和 App Store 拒绝

    我可以修复以下问题吗 我的设置 Xamarin iOS 版本 13 16 0 13 Visual Studio 社区 Visual Studio Community 2019 for Mac 版本 8 5 2 内部版本 13 Xamarin
  • YouTube API 500 错误

    我正在尝试使用 Youtube Data API V3 编辑我的频道描述 但如果我尝试对 brandingSettings 执行任何操作 则会收到 500 内部服务器错误 我什至尝试启动私人浏览会话并使用不同的 Google 帐户 这是 G
  • 使用 mvvmcross 和 mono touch 将照片上传到网络服务

    我想做的只是使用 mono touch mono droid 和 mvvmcross 将照片上传到网络服务 希望在某种程度上这样我只需要为 android 和 IOS 编写一次代码 我最初的想法是让用户选择一个图像 在android中使用意
  • DateTime.ToOADate - 仅时间

    我有一个带有当前日期 DateTime Now 的 DateTime 变量 我可以将其转换为 OADate 格式 41392 524432 作为示例 但我如何才能转换这个 我是just获取没有日期的时间 例如 1 分 4 秒 01 04 在
  • 有一个为Windows API编写的汇编代码,如何在Linux上编译它并用Wine运行

    中有一个示例代码这个介绍 如下所示 Sample x64 Assembly Program Chris Lomont 2009 www lomont org extrn ExitProcess PROC external functions
  • Docker 在 docker run 命令上给出“没有这样的文件或目录:未知”

    我能够成功构建 Docker 镜像 通过docker build t foo bar 这是它的Dockerfile FROM ubuntu 20 04 COPY benchmark sh home benchmarking programm
  • 根据数据集中的另一个变量设置背景颜色

    我试图展示春分对我的数据的影响 即全年一系列远程跟踪的鸟类数据 为了做到这一点 我想绘制一年中每一天的纬度 并将春分效果作为背景中的颜色分级 我的数据看起来像这样 SO lt data frame date seq as Date 2000
  • 如何将 TIMESTAMPDIFF 添加到 SqlSoup 查询?

    我有一个正在运行并使用 SqlSoup 的报告程序 并且现在由 SqlSoup 调用生成整个查询 MySqL 函数除外 TIMESTAMPDIFF 实际的 SQL 短语应该是 TIMESTAMPDIFF PERIOD start time
  • JavaFX 2 WebView:如何增强滚动条

    我已经使用 JavaFX WebView 实现了日志查看器 然而 对于该日志查看器的用户来说 有一个大问题 网络查看器的滚动条非常细 我什至遇到了一个问题 在 Windows 7 XP 上 奇怪的是在 Windows 8 上没有 当单击滚动
  • 有人能解释一下 C# 中“按值传递”和“按引用传递”是什么意思吗?

    我不太确定 C 中 按值传递 和 按引用传递 的概念 我认为按值传递意味着 int i 9 我们将 int i 传递给一个方法 例如 method i 通过引用传递意味着精确传递其位置 例如 Class method variable 它会
  • Bootstrap 5 - 卡片元素在底部对齐

    好吧 我是 Bootstrap 的新手 我试图将一个按钮元素始终放在卡片的底部 即使正文很小 然而 我总是收到这个结果 它没有将我的按钮放在我需要的右下角
  • Android 纹理文本

    如何制作带有纹理而不是文本颜色或渐变的文本 例如 png 文件 就像是this 我理解逻辑 我应该使文本颜色透明并放在文本位图下方 我想我无法通过Textview 我不知道如何使用画布或 OpenGL 来做到这一点 有什么想法吗 这是一种使
  • 颠覆错误“无法读取状态行”是什么意思?

    这是一个相当基本的问题 但它让我发疯 我在 beanstalk com 上建立了一个全新的存储库 他们给了我网址 http my name svn beanstalkapp com blog 他们还会在存储库中自动创建标签 主干和分支文件夹
  • 奇怪:无法改变jni中Integer的值

    我用C编写了一个jni函数来设置两个java Integer对象的值 就像这样 jni do something JNIEnv env jobject thiz jobject p1 jobject p2 jclass c jfieldID
  • PHP:获取小数位数

    有没有一种直接的方法来确定 PHP 中整数 双精度值的小数位数 也就是说 不使用explode str 1 23444 print strlen substr strrchr str 1
  • JavaScript 中 && 简写的解释

    使用 jQuery 的水印插件 我尝试 jslint 并最小化函数 但我遇到了以前从未见过的语法 其中存在确实应该有赋值或函数调用的表达式 function fn watermark function css text return thi