Javascript表达式:对象数组;
Javascript expression: object array;
我正在使用 ng-flow 示例进行基本图像上传。我看到一个表达式,我不明白它是如何工作的。
基本上,这是表达式:
<p>Demo object array expression in Javascript:</p>
<p id="demo"></p>
<script>
var expr = !!{png:1,gif:1,jpg:1,jpeg:1}['pdf', 'gif', 'jpg'];
document.getElementById("demo").innerHTML = expr ;
</script>
似乎上面的意思是 return 如果数组的最后一个元素中有有效图像则为真。我不知道为什么,但是在我研究了代码之后,这是我的结论。
如果有人可以帮助我理解上述内容并给我 link 文档,我将不胜感激。我到处搜索但没有找到任何参考。
Click here to see the html which has this expression from ng-flow
我认为代码的目的是禁止上传不是图像的文件。
任何人都可以推荐更简单的替代方案,请告诉我。
塔雷克
该语句中实际上发生了很多事情,但主要只是布尔逻辑。
先看语句['pdf', 'gif', 'jpg']
。这包含 javascript ,
运算符,它将其包含的语句的 return 值设置为最后一个逗号后的值。
例如
var a = 1, 2, 'foo'; // a -> 'foo'
var foo = ['a', 'b', 'c'];
foo[0, 2, 1]; // foo[0, 2, 1] -> foo[1] -> 'b'
在这种情况下,它解析为 ['jpg']
这里有一些相关的文档:
您可能已经猜到了,!
return 是一个布尔表达式,它将 truthy
或 true
语句的值反转为 false
falsey
或 false
声明 true
。
{png:1,gif:1,jpg:1,jpeg:1}['jpg'];
是 1
,这是一个 truthy
值。 !1
变为 false
。最后 !false
就是 true
;
在此处查看更多内容:
我正在使用 ng-flow 示例进行基本图像上传。我看到一个表达式,我不明白它是如何工作的。
基本上,这是表达式:
<p>Demo object array expression in Javascript:</p>
<p id="demo"></p>
<script>
var expr = !!{png:1,gif:1,jpg:1,jpeg:1}['pdf', 'gif', 'jpg'];
document.getElementById("demo").innerHTML = expr ;
</script>
似乎上面的意思是 return 如果数组的最后一个元素中有有效图像则为真。我不知道为什么,但是在我研究了代码之后,这是我的结论。
如果有人可以帮助我理解上述内容并给我 link 文档,我将不胜感激。我到处搜索但没有找到任何参考。
Click here to see the html which has this expression from ng-flow
我认为代码的目的是禁止上传不是图像的文件。
任何人都可以推荐更简单的替代方案,请告诉我。
塔雷克
该语句中实际上发生了很多事情,但主要只是布尔逻辑。
先看语句['pdf', 'gif', 'jpg']
。这包含 javascript ,
运算符,它将其包含的语句的 return 值设置为最后一个逗号后的值。
例如
var a = 1, 2, 'foo'; // a -> 'foo'
var foo = ['a', 'b', 'c'];
foo[0, 2, 1]; // foo[0, 2, 1] -> foo[1] -> 'b'
在这种情况下,它解析为 ['jpg']
这里有一些相关的文档:
您可能已经猜到了,!
return 是一个布尔表达式,它将 truthy
或 true
语句的值反转为 false
falsey
或 false
声明 true
。
{png:1,gif:1,jpg:1,jpeg:1}['jpg'];
是 1
,这是一个 truthy
值。 !1
变为 false
。最后 !false
就是 true
;
在此处查看更多内容: