我无法理解这个for循环如何在JavaScript中终止:
var files = ["A", "B"];
for (var i = 0, f; f = files[i]; i++) {
console.log(f);
}
Run Code Online (Sandbox Code Playgroud)
运行时,它会在屏幕上显示A和B,但为什么f = files [2]结束循环?如果我f=files[2]在我的控制台中运行,我会得到"未定义"的答案,那么这应该结束循环这一事实背后的理由是什么?
奖金问题:为什么不写下循环,如下所示?
for (var i=0; i < files.length; i++) {
f = files[i];
console.log(f);
}
Run Code Online (Sandbox Code Playgroud)
这对我来说似乎更清晰,更易于维护,所以有没有理由在第二段代码中使用第一段代码?
将数组的长度检查为真值并检查它是否> 0是否有任何区别?
换句话说,有没有理由使用其中一个语句而不是另一个:
var arr = [1,2,3];
if (arr.length) {
}
if (arr.length > 0) {
}
Run Code Online (Sandbox Code Playgroud) 假设我在JavaScript中有一个函数:
function something (variable) {
console.log(variable);
}
Run Code Online (Sandbox Code Playgroud)
如果没有传递变量,如何设置,默认为null?
我对编码相当陌生,并被列入每日编码问题邮件列表并得到了这个问题:
给定一个数字列表和一个数字 k,返回列表中的任意两个数字加起来是否为 k。
我的解决方案(经过一些 stackoverflow 挖掘后)看起来像这样;
function problemOne_Solve()
{
const k = 17;
const values = [11, 15, 3, 8, 2];
for (i=0; i < values.length; i++) {
if ( values.find( (sum) => { return k-values[i] === sum} ) ) return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我想知道为什么它有效。在我看来,带有 fat-arrow 函数的部分关闭了 if 语句条件逻辑内的括号。在 if 语句之后没有这样的括号,我认为这是必需的。
我还想知道如何输出总和为“k”的一对或多对,以进一步构建解决方案。例如,我希望能够在页面上显示对。
我有一个来自PHP端的结果,json_encode并将所有值作为字符串发送(而不是它的原始类型).来的字符串quote_tax是a 1|0,当然这是true|false例如:
{
"country_id": "3",
"country_name": "Italy",
"contract_tax": "1",
"quote_tax": "0",
"contract_inflation": "0",
"quote_inflation": "0"
}
Run Code Online (Sandbox Code Playgroud)
当我想基于这样的值执行某些操作时,因为它们以字符串形式出现,我需要做这样的事情:
data.quote_tax == '1'
? $('#contract_tax').val(1).attr('checked', 'checked')
: $('#contract_tax').val(0).removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)
我确实知道.parseInt()将它们转换为整数,但我相信那时我需要进行相同的比较但是这种情况比较INT:
data.quote_tax == 1
? $('#contract_tax').val(1).attr('checked', 'checked')
: $('#contract_tax').val(0).removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)
我试过这种方式:
Boolean(data.quote_tax) == true
? $('#contract_tax').val(1).attr('checked', 'checked')
: $('#contract_tax').val(0).removeAttr('checked');
Run Code Online (Sandbox Code Playgroud)
它不起作用,因为Boolean(data.quote_tax)总是评价true即使data.quote_tax = '0'.
我已经检查了这些帖子,但我找不到合适的解决方案:
任何想法在这里有什么问题或如何做到这一点?
我正在AngularJS的一个网站上工作.我有一个表格,故意设置为"display:none".
我有一个按钮,上面写着.我想要的是,当我点击创建按钮时,设置为"display:none"的表单应该更改为"display:block",并且应该隐藏创建按钮.
提交表单后,表单应隐藏,再次显示创建按钮.
PS:现在我明白有几种方法可以做到这一点,比如我可以使用ng-show或ng-hide指令.或者我可以使用ng-click指令.在开发严肃而专业的Web应用程序时,我想知道在这种情况下最好的编程实践是什么.
这是一件简单的事情,所以如果你能提供很好的代码.
javascript jquery performance-testing angularjs single-page-application
<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var cars = ["BMW", "Volvo", "Saab", "Ford"];
var i = 0;
var text = "";
for (;cars[i];) {
text += cars[i] + "<br>";
i++;
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
棘手的是这里:
for (;cars[i];) {
text += cars[i] + "<br>";
i++;
}
Run Code Online (Sandbox Code Playgroud)
来自: w3schools的tryjs_loop_for_cars
For-loop的语句2是否曾被评估并且如果它是假的则终止循环?布尔类型的语句2不是?它怎么能像For/In循环一样使用?
我需要帮助,谁知道这件事的遗产或背后的事情?这应该是一个后门功能吗?
我有眼睛,我知道现在存在,不要告诉我这只是存在,但它是如何工作的?
为什么空字符串和 false 布尔值之间的逻辑 AND 比较返回空字符串?为什么字符串和 false 布尔值之间的逻辑 AND 比较返回 false?
例子:
'' && true; --> returns ''
'string' && true --> returns true;
'' && false --> returns ''
'string' && false --> returns false;
Run Code Online (Sandbox Code Playgroud)
问题是为什么 javascript 会这样?
我有一个简单的解析来获得textareas集合的总和.它工作正常,但如果字段中没有值,那么计算就不会运行.
如何在不使内容实际为0的情况下使默认值为0?就像,我不希望字段加载0已经在框中等待 - 我只是希望公式不要担心空字段.
这是jQuery:
jQuery(document).ready(function(){
jQuery(".button1").click(function(){
var set1 = function() {
var calc1 = 0;
$('.calc1').each( function(index,item) {
calc1 += parseInt(jQuery(item).val());
});
$('.result1').html(calc1);
}
set1();
});
});
Run Code Online (Sandbox Code Playgroud)
如果您想获得更好的想法,可以在这里看到编码:https://codepen.io/JTBennett/pen/NENMdP
我很感激任何帮助!我知道这可能是一个愚蠢的错误,但我已经尝试了一些不同的东西而且还没有到达任何地方.