Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么++;或者--can';在JavaScript中不能直接应用于文本?_Javascript_Type Conversion_Operators - Fatal编程技术网

为什么++;或者--can';在JavaScript中不能直接应用于文本?

为什么++;或者--can';在JavaScript中不能直接应用于文本?,javascript,type-conversion,operators,Javascript,Type Conversion,Operators,我正在学习JavaScript,现在在操作符一章中。我想知道为什么++true在JavaScript中是一个无效的表达式,而+true就可以了。我想差异是因为JavaScript中++(或--)操作符的工作方式。只是想知道当应用++时会发生什么 console.log(+true); // 1, fine console.log(++true); // SyntaxError 为什么true不会像+那样隐式转换为数字并递增 当值存储在变量中时,++执行预期的任务,但我们不能直接在文本上使用它。

我正在学习JavaScript,现在在操作符一章中。我想知道为什么
++true
在JavaScript中是一个无效的表达式,而
+true
就可以了。我想差异是因为JavaScript中
++
(或
--
)操作符的工作方式。只是想知道当应用
++
时会发生什么

console.log(+true); // 1, fine
console.log(++true); // SyntaxError
为什么
true
不会像
+
那样隐式转换为数字并递增


当值存储在变量中时,
++
执行预期的任务,但我们不能直接在文本上使用它。

因为当您使用
++
--
时,它会更改您正在操作的变量的值

var a=1;
console.log(++a);
控制台日志(a);
控制台日志(--a);

控制台日志(a)
+
-->
减量前后运算符隐式修改操作数变量或属性。操作数必须能够出现在赋值运算符的左侧,否则使用
++
--
没有意义


<> P>同样,C、C++、java也是如此。我想象如果不是所有的C继承编程语言,包括那些运算符。

<代码>代码+++/> >将变量加上1,并将增量值赋给变量。当参数不是变量时,这没有意义。无法更改
true
的值
++true
相当于
true=true+1

您不能对任何文本使用
++
,例如
console.log(++3)
也是一个错误,因为它相当于
console.log(3=3+1)

请注意,
++
将在必要时将布尔值转换为整数,但它必须位于变量中:

x=true;

console.log(++x)使用
++
--
运算符更改值。 在您的例子中,您试图增加
布尔值或不可变值,这是不可能的

var x = 10;
console.log(++x) // Output 11
console.log(x++) // Output 12
//Or
var y = true;
console.log(y++) //Output 2

在第二个场景中,输出为2,因为
true
等于
1
false
等于
0

查看“左手侧”和“右手侧”表达式;可能会有一些启示。长话短说,对于代码
1=1+1
来说,什么是合理的事情呢?
true
不是变量,
+
是一个曾经我认为如果我能做++1左右,这将真的毫无意义的问题。但后来我认为除了隐式类型转换,+1(或类似的表达式)也没用。
+
将其参数转换为数字。如果它已经是一个数字,它不会做任何事情,但它对一致性很有用。就像
x一样,如果
x
已经是字符串,则toString()
将正常工作。