问题一:JavaScript对象,基本类型和字面值之间的区别?数组
基本类型和字面值相等,对象实例和字面值不相等(可用于快速区分基本类型和对象实例)spa
问题二:验证一个变量已经定义了,是一个字符串,而且它不为空code
1.通常解决思路:对象
if(typeof unknownVariable === 'string' && unknownVariable.length > 0)
,但此处忽略了该变量可能为String对象,此时使用typeof
就会返回Obejct
blog
2.较好解决思路:ip
if(((typeof unknownVariable!= 'undefined' && unknownVariable) && unknownVariable.length()>0) && typeof unknownVariable.valueOf() == 'string')
先判断其是否未定义,或定义了为null
,再经过其长度判断是否为空,此时知足条件的能够为数组能够为字符串,所以在经过最后的valueof
将其类型锁定至string
字符串