Javascript新手在这里,我的思绪现在正在弯曲。
var test = false
test = !test
// returns true
我知道了!是一个爆炸操作符,并将布尔值更改为与当前相反的值。
但是我无法理解
中发生的事情test = !test
变量测试首先指向false值,但此变量是否设置为自身?似乎测试变量已设置为自身,然后bang运算符应用使其成立。但是赋值运算符的两边可以设置相同的变量吗?
答案 0 :(得分:0)
让我们一步一步来做。
test =
您现在正在为test
分配一个新值
= ![...]
这与...的逻辑相反。
= !test
... test
中的当前值。这段代码总结的是反转测试并将该操作的结果应用于变量本身,从而有效地改变它。
有助于理解整个操作的是test
不指向false但 false。
答案 1 :(得分:0)
它返回true。也许你应该在陈述结尾加上;
。
https://jsfiddle.net/dtpx1d5m/
答案 2 :(得分:0)
var test = false; // test = false
test = !test; // test = true (because `test` was `false`, now it's equal to opposite value: `true`)
并且不要忽略行尾的分号。
答案 3 :(得分:0)
test
此处您将test = !test
的值设置为false。
test
首先评估的是右侧。因此,通过追溯到test
,您将获得其价值。
Ultimatelly false
与!test
相同。因此!false
变为true
,其评估为test = !test
。
因此,您的test = !false
与test = true
相同,最后变为ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
答案 4 :(得分:0)
您只需使用新值分配变量测试,新值为!test。
var test = false;
test = !test; //you assign new value to test, and old value will be replaced
document.getElementById('tes').value = test;

<input type='text' id='tes'>
&#13;