js數(shù)據(jù)類型運(yùn)算符流程控制語句

1.JavaScript 定義了幾種數(shù)據(jù)類型? 哪些是原始類型?哪些是復(fù)雜類型?原始類型和復(fù)雜類型的區(qū)別是什么?

js定義了6種數(shù)據(jù)類型分別是 Number,String,undefined,null,boolean,object

null和undefined的區(qū)別是 null一般表示空值,而undefined表示沒有值

原始類型是 數(shù)值,字符串,布爾類型

復(fù)雜類型是:object 對(duì)象:數(shù)組,函數(shù),正則表達(dá)式。

至于undefined和null,一般則是將它們看作兩個(gè)特殊的值。

原始類型與復(fù)雜類型的區(qū)別是:

原始類型是不能再細(xì)分的了,而復(fù)雜類型則是多個(gè)原始類型的值的合成,可以看作是一個(gè)存放各種值的容器。


2.typeof和instanceof的作用和區(qū)別?

typeof測試原始數(shù)據(jù)類型,instanceof測試實(shí)例類型

圖1


圖2


圖3


圖4


圖5

而instanceof可以區(qū)分?jǐn)?shù)組和對(duì)象


圖6

3.如何判斷一個(gè)變量是否是數(shù)字、字符串、布爾、函數(shù)


圖1


圖2

4.NaN是什么? 有什么特別之處?

NaN表示 非數(shù)字 Not a number,NaN和任何值都不相等。

特別之處是:NaN==NaN結(jié)果是false


5.如何把非數(shù)值轉(zhuǎn)化為數(shù)值?

5.1 Number()

5.2 parseInt( )

3 parseFloat ( )?


6.==與===有什么區(qū)別

==普通相等,表明是值的相等

而===則是嚴(yán)格相等,比較的是類型和值

7.break與continue有什么區(qū)別

break是跳出循環(huán)體,continue跳出單次循環(huán)

8.void 0 和 undefined在使用場景上有什么區(qū)別

undefined在JavaScript中并不屬于保留字/關(guān)鍵字,因此在IE5.5~8中我們可以將其當(dāng)作變量那樣對(duì)其賦值(IE9+及其他現(xiàn)代瀏覽器中賦值給undefined將無效)于是采用void方式獲取純正的未經(jīng)賦值的undefined則成了通用準(zhǔn)則。void 變量 無論怎樣結(jié)果都為undefined

9.以下代碼的輸出結(jié)果是?為什么?


9.1 ?console.log(1+1) 結(jié)果為2 , 因?yàn)?b>兩個(gè)操作數(shù)都是數(shù)字,會(huì)加做加法運(yùn)算

9.2 console.log("2"+"4")結(jié)果為”24“ ,因?yàn)?b>兩個(gè)操作數(shù)是字符串,會(huì)做字符串拼接

9.3 console.log(2+"4")結(jié)果是”24“,因?yàn)?b>當(dāng)操作數(shù)中一個(gè)是字符串的時(shí)候,如果另一個(gè)不是字符串,則會(huì)將該操作數(shù)轉(zhuǎn)為字符串,所以將2轉(zhuǎn)為”2“,然后再做字符串的拼接。

9.4 console.log(+"4") 結(jié)果是4,當(dāng)只有一個(gè)字符串參數(shù)的時(shí)候會(huì)將其轉(zhuǎn)換為數(shù)字

10. 以下代碼的輸出結(jié)果是?


結(jié)果是"number2"

優(yōu)先級(jí)為 ++,+

分析:a+++a=(a++)+a

先執(zhí)行a++結(jié)果為1,a=1+1=2,

1+a則結(jié)果為1+2=3.而 typeof a+2中typeof的優(yōu)先級(jí)比+高 ,先執(zhí)行 typeof a,結(jié)果為”number“,”number“+2,則是2轉(zhuǎn)為”2“,然后做字符串的拼接,結(jié)果為”nuber2“

11. 以下代碼的輸出結(jié)果是? 為什么


結(jié)果為 4

分析:a+++b=(a++)+b,因?yàn)椤?+”的優(yōu)先級(jí)高于“+”,所以先執(zhí)行(a++),而(a++)是先執(zhí)行后+,則結(jié)果為1,a=2,(a++)+b則是1+b=1+3=4.

12. 遍歷數(shù)組,把數(shù)組里的打印數(shù)組每一項(xiàng)的平方



13. 遍歷 JSON, 打印里面的值



14. 以下代碼輸出結(jié)果是? 為什么


14.1


? ? ?結(jié)果為"number2"

分析:"||"或運(yùn)算是前面的值為true,則不管后面的值如何,則結(jié)果為前面的值

優(yōu)先級(jí)為: typeof ?+ ?> || =

var? vall=(typeof a)+b || (c>0)

typeof a結(jié)果為“number”,"number"+b結(jié)果為"number2", 或運(yùn)算是“number2”為結(jié)果,因此 val為“number2”

14.2


結(jié)果為 undefined

只要“&&”前面是true,無論“&&”后面是true還是false,結(jié)果都將返“&&”后面的值;

優(yōu)先級(jí)是: == ?&& ? =

var ?data=(data==5)&&(console.log("bb") )

(data==5)結(jié)果為 true,&&運(yùn)算以(console.log("bb") )的值為結(jié)果 undefined。因?yàn)楹瘮?shù)表達(dá)式?jīng)]有return 語句就會(huì)返回undefined


14.3


結(jié)果:undefined

只要“||”前面為false,無論“||”后面是true還是false,結(jié)果都返回“||”后面的值。

優(yōu)先級(jí):|| =

等式為 var data2=d=(0||console.log("haha"))

(0 || console.log("haha")) 0是false,結(jié)果undefined,因?yàn)楹瘮?shù)表達(dá)式?jīng)]有return 語句就會(huì)返回undefined

data2=undefined

14.4

結(jié)果: 2

當(dāng)有逗號(hào)運(yùn)算的時(shí)候取后面的值。

等式為:var x=true+(!!"form here!!")

? ? ? ? ? ? ? ? ? ? ? =true+true

? ? ? ? ? ? ? ? ? ? ?=2

關(guān)乎邏輯運(yùn)算符的”短路”功能的總結(jié)如下

1、只要“||”前面為false,無論“||”后面是true還是false,結(jié)果都返回“||”后面的值。

2、只要“||”前面為true,無論“||”后面是true還是false,結(jié)果都返回“||”前面的值。

3、只要“&&”前面是false,無論“&&”后面是true還是false,結(jié)果都將返“&&”前面的值;

4、只要“&&”前面是true,無論“&&”后面是true還是false,結(jié)果都將返“&&”后面的值;

參考鏈接:https://www.cnblogs.com/pigtail/archive/2012/03/09/2387486.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容