每日一题js

#<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 ) { // 这里的代码将会执行 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值