Boolean evaluation of JavaScript arrays

I ran across an interesting bug the other day. I was testing an array to see if it evaluated to Boolean false, however just directly evaluating it always returned true: > !![] true Okay, so basically any array I put in there will be true regardless, right? I run this in the JavaScript console just for fun: > [] == true false What is going on here? It has to do with the The Abstr

JavaScript数组的布尔评估

我前几天遇到了一个有趣的bug。 我正在测试一个数组,以查看它是否评估为布尔值false,但直接评估它总是返回true: > !![] true 好吧,基本上,我放在那里的任何阵列都是true无论如何,对吧? 我在JavaScript控制台中运行它仅仅是为了好玩: > [] == true false 这里发生了什么? 它与“抽象平等比较算法”与用于将值转换为布尔值的算法有关。 通过查看规范,我们可以看到,第9个点是定义当Type(左侧值)为Ob

Why does "true" == true show false in JavaScript?

MDC describes the == operator as follows: If the two operands are not of the same type, JavaScript converts the operands then applies strict comparison. If either operand is a number or a boolean, the operands are converted to numbers if possible; else if either operand is a string, the other operand is converted to a string if possible. With this in mind, I would evaluate "true"

为什么“true”== true在JavaScript中显示false?

MDC描述==运算符如下: 如果两个操作数的类型不同,JavaScript会转换操作数,然后进行严格比较。 如果任一操作数是数字或布尔值,则操作数尽可能转换为数字; 否则,如果其中一个操作数是一个字符串,则另一个操作数将尽可能转换为字符串。 考虑到这一点,我会评估"true" == true ,如下所示: 他们是同一类型的吗? 没有 操作数是数字还是布尔值? 是 我们可以将两者都转换为数字吗? 否 ( isNaN(Numb

What is !! in javascript?

Possible Duplicate: What does the !! operator (double exclamation point) mean in JavaScript? $("#imjavascript").attr('checked', !!$('#mainCheck').attr('checked')); what do !! mean ? It's a double-negation or double-bang as some call it (possibly/probably other names as well), it's getting the property and converting it to a boolean. The first ! takes the inverse of the value - r

什么是 !! 在JavaScript?

可能重复: 什么! 运算符(双重感叹号)在JavaScript中的意思是? $("#imjavascript").attr('checked', !!$('#mainCheck').attr('checked')); 做什么 !! 意思 ? 这是一种双重否定或双重反应,因为有些人称它(可能/可能还有其他名称),它会获得属性并将其转换为布尔值。 第一! 取反值 - 导致一个布尔值,然后第二个取反的那个,所以你得到一个布尔返回,这是一个原始的true / false表示,而不是原来的逆。 这是

What does a !! in JavaScript mean?

Possible Duplicates: myVar = !!someOtherVar What does the !! operator (double exclamation point) mean in JavaScript? Came across this line of code strict = !!argStrict ... here and wondered what effect the !! has on the line? Pretty new to JS! It converts your value to a boolean type: var x = '1'; var y = !!x; // (typeof y === 'boolean') Also note the following: var x = 0; var y

什么是! 在JavaScript中意思?

可能重复: myVar = !! someOtherVar 什么! 运算符(双重感叹号)在JavaScript中的意思是? 遇到这行代码 strict = !!argStrict ...在这里,想知道什么效果!! 已经上线了? JS很新鲜! 它将您的值转换为布尔类型: var x = '1'; var y = !!x; // (typeof y === 'boolean') 还要注意以下几点: var x = 0; var y = '0'; // non empty string is truthy var z = ''; console.log(!!x); // false console.

When to use the double not (!!) operator in JavaScript

I understand what the double not operator does in JavaScript. I'm curious about it's use though and whether or not a recent assertion that I made is correct. I said that if (!!someVar) is never meaningful nor is (!!someVar && ... because both the if and the && will cause someVar to be evaluated as a boolean so the !! is superfluous. In fact, the only time that I could

何时在JavaScript中使用double not(!!)运算符

我理解JavaScript中的double not操作符的作用。 我很好奇它是否有用,以及我最近提出的断言是否正确。 我说if (!!someVar)从来没有意义也不是(!!someVar && ...因为if和&&都会导致someVar被评估为布尔值,所以!!是多余的。 事实上,我唯一能想到使用double not运算符是合法的是,如果你想对另一个布尔值做一个严格的比较(所以也许在返回值中明确地预期true或false)。 它是否正确? 我开始怀疑自己,当

What does the !! operator (double exclamation point) mean in JavaScript?

I've just walked into this code: val.enabled = !!enable and have no idea what does "!!" do... I googled JavaScript operators but haven't found this one.

什么! 运算符(双重感叹号)在JavaScript中的意思是?

我刚刚走进了这段代码: val.enabled = !!enable 并不知道什么是“!!” 做...我GOOGLE了JavaScript的运营商,但没有找到这一个。

Is it possible to create a "weak reference" in javascript?

Is there any way in javascript to create a "weak reference" to another object? Here is the wiki page describing what a weak reference is. Here is another article that describes them in Java. Can anyone think of a way to implement this behavior in javascript? There is no language support for weakrefs in JavaScript. You can roll your own using manual reference counting, but not espe

有没有可能在javascript中创建一个“弱引用”?

有没有什么办法在JavaScript中创建另一个对象的“弱引用”? 这里是维基页面,描述了什么是弱引用。 这是另一篇用Java描述它们的文章。 任何人都可以想出一种方法来在JavaScript中实现这种行为? JavaScript中没有对弱返回的语言支持。 您可以使用手动引用计数来滚动自己,但不会特别顺利。 你不能创建一个代理包装对象,因为在JavaScript中,对象永远不知道它们什么时候被垃圾收集。 因此,您的'弱引用'通过简单

Highlight selected table row

I have a problem implementing something in a drag and drop function. So far draggable and sortable is ok. Right now the problem is I'm trying to highlight the selected row and delete it using button. I have two tables: class A and class UI. I managed to highlight the tr table class A. However in table class UI I can't highlight the tr . Here is my jsfiddle. I really appreciate fo

突出显示所选表格行

在拖放功能中执行某些操作时遇到问题。 到目前为止,可拖动和排序是可以的。 现在问题是我想突出显示选定的行并使用按钮将其删除。 我有两个表:A类和类UI。 我设法突出显示tr表类A.但是在表类UI中,我无法突出显示tr 。 这是我的jsfiddle。 我非常感谢你的帮助。 你的代码和CSS有几个问题: 第一个问题 - 您的test2 CSS选择器仅设置为在类A下工作: 你的代码: .A tbody tr.test2 td { background: rgba(20,

When tableDnD is disabled it leaves residual css and I can't clear the css

tableDnD (table Drag and Drop) is a jQuery plugin I'm using to be able to re-order rows in my html table. It's a pretty cool library, but the fact that you can click, drag, and drop rows -- disables the ability to select that row by clicking -- it thinks you might be starting a drag and drop, or doing a 0-distance drag. So you can view my example here, and see what I'm talking abou

当tableDnD被禁用时,会留下残留的CSS,我无法清除CSS

tableDnD(表格拖放)是我用来重新排序我的html表中的行的jQuery插件。 这是一个非常酷的图书馆,但是您可以点击,拖拽和放置行的事实 - 通过点击来禁用选择该行的功能 - 它认为您可能正在开始拖放操作,或者执行0距离拖拽。 所以你可以在这里查看我的例子,看看我在说什么 - http://jsfiddle.net/du31ufts/5/ 它从禁用状态开始,因此启用行重新排序并查看库。 然后,尝试在中间选择一行。 显示蓝色突出显示选项的唯一方

iOS browser disable copy but highlight text CSS/Javascript

I have been successful at disabling the ability to highlight text in Safari on iOS using: -webkit-user-select: none; However, I do want to be able to highlight the text. I only don't want the copy box to show up. Is there any way I can do this? You could try disabling right click along with ctrl+c. Here is a javascript method for disabling right mouse clicking: <script type="tex

iOS浏览器禁用副本,但突出显示文本CSS / Javascript

我已经成功地禁用了使用以下方式在iOS Safari上突出显示文本的功能: -webkit-user-select:none; 但是,我确实希望能够突出显示文字。 我只是不希望复制框出现。 有什么办法可以做到这一点? 你可以尝试禁用与ctrl + c一起点击右键。 以下是禁用鼠标右键单击的javascript方法: <script type="text/javascript"> function catch_click(e) { if (!e) var e = window.event; var right_click = (e.which