var new= function(J, S) {
if (!J || !S) return 0;
如果有条件,谁能帮助我理解这一点?
答案 0 :(得分:2)
如果参数J或S中的任何一个为“ falsey”,则基本上将返回0(本身为“ falsey”值),这在JavaScript中表示它们等于undefined
,false
,NaN
,null
,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:
||
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)
正在检查变量J
或S
中的至少一个是否为falsey
值,然后表达式将计算为{{1 }},然后执行true
。
但是请注意,您的代码中有一个return 0
,这是因为Uncaught SyntaxError: Unexpected token 'new'
是JavaScript保留字,不能用作变量名。