JavaScript中的“ if(!J ||!S)”是什么意思?

时间:2019-09-18 03:28:12

标签: javascript if-statement

var new= function(J, S) {
    if (!J || !S) return 0;

如果有条件,谁能帮助我理解这一点?

4 个答案:

答案 0 :(得分:2)

如果参数J或S中的任何一个为“ falsey”,则基本上将返回0(本身为“ falsey”值),这在JavaScript中表示它们等于undefinedfalseNaNnull,0或''(空字符串)。

目的可能是在继续执行该函数的其余部分之前检查参数是否不丢失,大概是因为如果缺少任何一个参数,该函数将出错或返回无效结果。

答案 1 :(得分:1)

如果({import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: HomePage(), ); } } class HomePage extends StatefulWidget { @override _HomePageState createState() => _HomePageState(); } class _HomePageState extends State<HomePage> { bool show = true; @override Widget build(BuildContext context) { var appbar = AppBar(); var maxHeight = appbar.preferredSize.height; return SafeArea( child: Scaffold( body: Stack( children: <Widget>[ Positioned.fill( child: GestureDetector( onTap: () { setState(() { show = !show; }); }, child: Container( color: Colors.black, child: Center(child: FlutterLogo())))), AnimatedAlign( duration: kThemeAnimationDuration, alignment: Alignment(0, show ? -1 : -2), child: ConstrainedBox( constraints: BoxConstraints(maxHeight: maxHeight), child: FlexibleSpaceBar.createSettings( currentExtent: maxHeight, child: appbar, ), ), ), ], ), ), ); } } )J或S为falsy,则函数返回0:

  • ||
  • 0
  • '',“”,``(空字符串)
  • false
  • null
  • undefined

如果两个值均为真,则返回NaN

undefined

答案 2 :(得分:0)

如果J =“”或为null或未定义,0,NaN,false,则!J为真。

!"" -> true
!null -> true
!undefined -> true
!NaN -> true
!0 -> true
!false -> true

它将检查J,S变量为空,为null还是未定义。

答案 3 :(得分:0)

if (!J || !S)正在检查变量JS中的至少一个是否为falsey值,然后表达式将计算为{{1 }},然后执行true

但是请注意,您的代码中有一个return 0,这是因为Uncaught SyntaxError: Unexpected token 'new'是JavaScript保留字,不能用作变量名。