这期内容当中小编将会给大家带来有关JavaScript中有哪些逻辑赋值运算符,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
JavaScript是什么
JS是JavaScript的简称,它是一种直译式的脚本语言,其解释器被称为JavaScript引擎,是浏览器的一部分,主要用于web的开发,可以给网站添加各种各样的动态效果,让网页更加美观。
<强>无条件和有条件强>
<强>数学运算符,例如<代码> +> 代码是无条件的。强>
在<代码> const x=1 + 2> 代码中,无论如何,我们总是将<代码> lh> 代码添加到<代码> RHS 代码>中,并将结果分配给x <代码> 代码>。
lh和RHS是数学领域内的概念,意为等式左边和等式右边的意思,在我们现在的场景下就是赋值操作符的左侧和右侧。当变量出现在赋值操作符的左边时,就进行lh查询;反之进行RHS查询。引用>我们甚至可以编写一些奇怪的代码,例如<代码> const x=false + 2 代码> . JS首先将<代码>假> 代码的lh转换为<代码> 代码>,因此得到<代码> const x=数量(false) + 2> 代码,其结果<代码>为const x=0 + 2> 代码。它将lh添加到,最后将其分配给<代码> x> 代码,得出<代码> 2> 代码。
<强>逻辑运算符,例如<代码>,和代码>是有条件的强>
在<代码> const x=true,,0 + 2> 代码中,首先计算lh,它为<代码> 代码>。因为lh的值为<代码>真正> 代码,所以我们接下来运行RHS操作,它的值为2,同时也运行赋值操作,结果是<代码> 2> 代码。
与<代码> const x=false,,0 + 2> 代码相比,lh为<代码>假> 代码,因此RHS被完全忽略。
你可能想知道为什么要避免计算RHS吗?两个常见的原因是获得<代码>更好的性能和避免副作用代码>。
<强>二元逻辑运算符强>
<强>,,| | ? ?强>
在JSX中我们经常使用<代码>,和代码>和<代码> | |> 代码来有条件地渲染界面。<代码> ? ? 代码>是<代码> nullish(空值)代码>合并运算符,它是最近刚通过提案的,很快就会普及。它们都是二元逻辑运算符。
<李>
使用<代码>,和代码>测试lh的结果是否是真值。
李> <李>使用<代码> | |> 代码测试lh的结果是否是虚值。
李> <李>用<代码> ? ?> 代码测试lh是否无效。
李><强>虚值,vs Nullish 强>
在JS中有哪些算是虚值呢?
<李>
空
李> <李>定义
李> <李>假
李> <李>南
李> <李>0
李> <李>”;“(空字符串)
李>下面这两姐妹被认为是nullish值。
<李>
空
李> <李>定义
李>值得注意的是,使用二元逻辑运算符不一定返回<代码>布尔值> 代码,而是返回表达式的<代码> lh 代码>或<代码> RHS> 代码值。为了明确这些表达式类型的要点,重看一下ECMAScript文档中的这句话是有帮助的:
<代码>,和代码>或<代码> | | 代码>产生的值不一定是布尔型的,而是两个操作数表达式之中的一个值。引用><强>一些事例强>
//,,,/,/如果,LHS 是真值,计算并返回,,否则返回,lh true ,,, 100 * * 2,//10000 , “Joe",,,,“JavaScript",//,“JavaScript" , false ,,, 100 * * 2,//,假的 , “,,,,,100 * * 2,//,,, , NaN ,,, 100 * * 2,//南 , null ,,, 100 * * 2,//空 , undefined ,,, 100 * * 2,//,未定义的<强>逻辑赋值运算符强>
<强>,,=| |=? ?=强>
这个运算符将赋值与条件逻辑运算符结合在一起,因此命名为<强>“逻辑赋值”强>。它们只是一种简写,例如,<代码> x和,=y 代码>是<代码> x和,(x=y) 代码>的简写。
从逻辑赋值返回的值不是更新的赋值,而是已计算表达式的值。
由于先前的ECMAScript特性,比如默认参数和nullish合并操作符,你可以说在逻辑赋值所提供的功能中肯定存在一些冗余。虽然这种速记看起来很流畅,而且我相信当我们发现更多的用例时,它会派上用场的。
<强>逻辑与赋值(,,=)强>
//,逻辑与 LHS ,,=,园艺学会//,等价于, LHS ,,, (=LHS RHS) ,//,事例//,if x  is 揭示真相,,assign x 用y, otherwise return x//,如果,x 为真值,则将,y 赋值给,x,,否则返回,x let x =1 const y =100 x ,,=, y //, x 为100 ,,//,与上面对应的长的写法 x ,,, (=x y)JavaScript中有哪些逻辑赋值运算符