js中, 用变量或对象作为if或其他条件的表达式

源: 因为js是弱语言, 就体现在js的变量是弱类型的, 在js中所有变量类型声明都用var, 而在其他强类型语言中,如java/c,必须有强制类型转换和类型检查才能编译通过等,

但是: 弱语言也有优势: 起码在写js条件判断表达式时可以直接用变量或者对象来判断

来人, 上代码:

// 代码很简洁, 先讨论当变量a为不同值时的条件表达式结果
	var a; // 只声明变量 
	if (a) {
			alert('true');
		} else {
			alert('false');
		}

  

 

 

a的值说明表达式 if(a)的结果: 
var a; 只声明不赋值 false
 a = '' || a = "" || a = null || a = undefined 当a为空串或null或undefined时,评估结果为false false
 a = 'somevalue', ... 当为a赋值后, 评估结果true 
 a = ' ' || a = " " * a为空格, 空格也是一个字符, 评估结果为true 
 a = 0 || a = 0.0 * 当a为数值0或0.0,0.00,评估结果为false,其他数值一律为true 
 a = f 当a为函数对象, 且不带括号, 该函数对象定义了评估结果就为true,否则为false  
 a = f() 当a为函数对象, 且带括号, 则先执行函数, 按照函数的返回结果来作为评估结果, 若无返回结果: 则为false,因为默认返回undefined 
a = obj.pro1, a = obj.f1()当a为对象的属性或方法时, 按照a为单独带队属性或方法时的一样进行评估 

转载于:https://www.cnblogs.com/nelson-hu/p/7879468.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值