Chapter 1

  • 问题一:JavaScript对象,基本类型和字面值之间的区别?

基本类型和字面值相等,对象实例和字面值不相等(可用于快速区分基本类型和对象实例)

clipboard.png

  • 问题二:验证一个变量已经定义了,是一个字符串,并且它不为空

1.一般解决思路:

if(typeof unknownVariable === 'string' && unknownVariable.length > 0),但此处忽略了该变量可能为String对象,此时使用typeof就会返回Obejct

2.较好解决思路:

if(((typeof unknownVariable!= 'undefined' && unknownVariable) && unknownVariable.length()>0) && typeof unknownVariable.valueOf()  == 'string')

先判断其是否未定义,或定义了为null,再通过其长度判断是否为空,此时满足条件的可以为数组可以为字符串,因此在通过最后的valueof将其类型锁定至string


静书
603 声望55 粉丝

简书