node.js - JavaScript的一个不能理解的地方

查看:53
本文介绍了node.js - JavaScript的一个不能理解的地方的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

最近在学JavaScript(NodeJs)
在用for遍历一个JsonArray的时候发现了一个问题
我当时是这样子写的:

按道理来说这样写应该是错的,应该要判断是不是为Null,但是我运行了一下,居然成功了,没有报错,输出也正常
黑人问号脸...
求告知这是什么原理...
难道obj2=obj1.result[i]会返回一个boolean??
之前学过JAVA,感觉JavaScript相对JAVA有点不严谨,思想有点被禁锢...

解决方案

赋值表达式会返回所赋的值。也就是说obj2=obj1.result[i]会返回obj1.result[i]

js是动态语言,它有隐私转换的特性,就是在该需要用到某种数据类型的时候,它会通过预先的规则来将传进来的值转换成特定的类型。

那么在刚刚赋值表达式obj2=obj1.result[i]中返回值是obj1.result[i],那js引擎就会对obj1.result[i]进行类型转换成Boolean类型。

如果你obj1.result[i]的值是除NaN,0,undefined,null,''之外的其他值,都会转换成true,否则则是false

这篇关于node.js - JavaScript的一个不能理解的地方的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆