問題一: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
字符串