#<100 return后面不能换行 箭头函数返回对象需要包裹,防止对象的{}与函数{}冲突
- let nums=(a,b)=>{
- if(a>b)
- console.log('a is bigger')
- else
- console.log('b is bigger')
- return
- a+b
-
- }
- console.log(nums(3,2));
- console.log(nums(1,2));
- /*return后面不能换行*/ // a is bigger undefined ;b is bigger undefined
-
- const user = { name: "Lydia", age: 21 }
- const getUser = user => { name: user.name, age: user.age }
- console.log(getUser(user))
- /*返回对象 应该用小括号包起来*/ //Uncaught SyntaxError: Unexpected token ':'
#101.Truthy、Falsy与true、false的区别(详见文末@#101)
- const one = (false || {} || null);
- const two = (null || false || "");
- const three = ([] || 0 || true);
- console.log(one, two, three);
-
- //{} "" [] 条件判断时除了Falsy全部转换为真值。Falsy有 false, 0、-0, '', undefined, null, NaN, document.all
@#101 javascript中的任何对象都还隐含一个boolean值,这便是大家所说的truthy和falsy原则.
truthy和falsy值
隐含有false属性的: false 0(零) “”(空串) null undefined NaN
除此之外的其他值隐含的均是true属性,像“0”(字符串)、“false”(字符串),还有空函数、空数组、空对象这些比较容易搞混的,都是能返回true。
关于falsy值之间的比较,分为以下几种情况
1.false、0、空串三者是可以互等的
var c = (false == 0); // true var d = (false == ""); // true var e = (0 == ""); // true
2.null和undefined可以互等,但是不与其他几种相等
var f = (null == false); // false var g = (null == null); // true var h = (undefined == undefined); // true var i = (undefined == null); // true
3.NaN,不与其他任何值相等,甚至与自己都不等
var j = (NaN == null); // false var k = (NaN == NaN); // false
javascript使用typeof(NaN),返回值是number,也就是说这个NaN还是个number类型。还好js提供了一个函数inNaN()用来判断一个变量是否是数字
var l = (false == 0); // true var m = (false === 0); // false
空数组,例如var a = [];是返回true的,但也得看你怎么用,区别:if ( [] ) { // 这里的代码将会执行 } if ( [] == true ) { // 这里的代码不会执行 } if ( [] == false ) { // 这里的代码将会执行 }