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

數(shù)據(jù)類型運算符流程控制語句
JavaScript 定義了幾種數(shù)據(jù)類型? 哪些是原始類型?哪些是復(fù)雜類型?原始類型和復(fù)雜類型的區(qū)別是什么?
  • JavaScript 定義6種數(shù)據(jù)類型
    1. 數(shù)值(number):整數(shù)和小數(shù)(比如1和3.14)
    2. 字符串(string):字符組成的文本(比如"Hello World")
    3. 布爾值(boolean):true(真)和false(假)兩個特定值
    4. undefined:表示“未定義”或不存在阱穗,即此處目前沒有任何值
    5. null:表示空缺桩撮,即此處應(yīng)該有一個值,但目前為空
    6. 對象(object):各種值組成的集合
  • 原始類型:數(shù)值(number)欺抗、字符串(string)池户、布爾值(boolean)
  • 復(fù)雜類型:對象(object)
  • 至于undefined和null黎比,一般將它們看成兩個特殊值
  • 原始類型和復(fù)雜類型的區(qū)別:
    1. 基本類型變量存的是值斩郎,復(fù)雜類型的變量存的是內(nèi)存地址
    2. 基本類型在賦值的時候拷貝值第步,復(fù)雜類型在賦值的時候只拷貝地址疮装,不拷貝值
typeof和instanceof的作用和區(qū)別?
  • typeof可以檢測給定變量的數(shù)據(jù)類型,typeof一般只能返回如下幾個結(jié)果: number ,boolean ,string, function, object, undefined,是有局限性,對于Array粘都、Null等特殊對象使用typeof一律返回object;此外我們可以使用typeof來獲取一個變量是否存在廓推,如if(typeof a!="undefined"){},而不用去使用if(a)因為如果a 不存在(未聲明)就會出錯
  • instanceof用于判斷一個變量是否某個對象的實例翩隧,運算符返回一個布爾值樊展。instanceof只能用來判斷對象和函數(shù),不能用來判斷字符串和數(shù)字等
如何判斷一個變量是否是數(shù)字、字符串专缠、布爾雷酪、函數(shù)
判斷數(shù)據(jù)類型
判斷數(shù)據(jù)類型
NaN是什么? 有什么特別之處?
  • NaN含義是Not a Number,即非數(shù)值涝婉,是一個特殊的數(shù)值哥力,用于表示一個本來要返回數(shù)值的操作數(shù)未返回數(shù)值的情況
  • 特別之處:
    1. 任何涉及NaN的操作(例如NaN+10)都會返回NaN
    2. NaN和任何值都不相等,包括NaN本身
如何把非數(shù)值轉(zhuǎn)化為數(shù)值?
  • number()函數(shù)轉(zhuǎn)化
  • paseInt()轉(zhuǎn)化墩弯;轉(zhuǎn)換規(guī)律:
    1. 忽略字符串前面的空白字符吩跋,找到第一個非空白字符
    2. 如果第一個字符不是"-"或者數(shù)字則返回NaN
    3. 如果是,繼續(xù)解析渔工,直到非數(shù)值模式為止
    4. 0開頭會當(dāng)做八進制锌钮,0X開頭會當(dāng)做十六進制,可以指定第二個參數(shù)指定基數(shù)parseInt('101' ,2),其中2就是二進制
==與===有什么區(qū)別
  • == equality 相等涨缚,"== "兩邊值類型不同的時候轧粟,要先進行類型轉(zhuǎn)換,再比較
    例:
5 == '5'                //使用相等比較運算符的時候脓魏,會將string '5'兰吟,自動轉(zhuǎn)換成number 5,進行比較茂翔,從而可以滿足比較條件混蔼,因為 5 == 5
  • === identity 嚴(yán)格相等,不做類型轉(zhuǎn)換,類型不同的一定不等
    例:
5 === '5'              //使用 === 嚴(yán)格相等 的比較運算符時珊燎, 則不會自動做轉(zhuǎn)換處理惭嚣,顯然 number 5 ,是不會和 string '5',相等的悔政。因此晚吞,返回boolean的 false值
break與continue有什么區(qū)別
  • break 的作用是跳出當(dāng)前循環(huán)體語句
  • continue 的作用是跳出當(dāng)前次數(shù)循環(huán)進行下一次循環(huán)
void 0 和 undefined在使用場景上有什么區(qū)別
  • void操作符會執(zhí)行后面的表達式并返回undefined。由于undefined在函數(shù)中可以賦值谋国,所以進行判斷某一變量是否未定義時常使用void 0
以下代碼的輸出結(jié)果是?為什么?
console.log(1+1);      //輸出為"2" 槽地,對兩個數(shù)字做加法運算
console.log("2"+"4");      //  輸出為"24" ,對兩個字符串進行拼接運算
console.log(2+"4");      // 輸出為"24",有一個為字符串芦瘾,會將數(shù)字轉(zhuǎn)化為字符串然后做字符串拼接運算 
console.log(+"4");      //輸出為"4"捌蚊,在只有一個字符串時會強制轉(zhuǎn)化為數(shù)字 
以下代碼的輸出結(jié)果是?
var a = 1;       
a+++a;        //輸出為 "3" ;先a++得到結(jié)果為1近弟,[可看為(a++)+a的運算] 
typeof a+2;      //輸出為"number2" 缅糟;typeof a的運算優(yōu)先級高于"+",所以typeof a得到number,"number+2" 運算則變?yōu)樽址唇舆\算
以下代碼的輸出結(jié)果是? 為什么
 var a = 1;      //
 var b = 3;      //
 console.log( a+++b );      // 輸出為"4" 祷愉;等同于(a++)+b,即就是1+3
遍歷數(shù)組窗宦,把數(shù)組里的打印數(shù)組每一項的平方
 var arr = [3,4,5]
打印數(shù)組每一項的平方
打印數(shù)組每一項的平方
遍歷 JSON, 打印里面的值
var obj = {
 name: 'hunger', 
 sex: 'male', 
 age: 28 
}
打印JSON的值
打印JSON的值
以下代碼輸出結(jié)果是? 為什么
var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val)          //typeof a優(yōu)先級最高赦颇,先計算typeof a得到number,之后在進行字符串拼接運算得到number2

var d = 5;
var data = d ==5 && console.log('bb')
console.log(data)          //先運算console.log('bb')得到bb赴涵,然后在運算 d ==5 && 沐扳,console.log返回值為undefined,所以輸出為undefined

var data2 = d = 0 || console.log('haha')
console.log(data2)          //先運算console.log('haha')輸出haha句占,然后進行“||”,因為0的布爾值是false躯嫉,console.log('haha')返回值為undefined纱烘,最后data2的值為undefined
 
var x = !!"Hello" + (!"world", !!"from here!!");
console.log(x)          //輸出結(jié)果是2。!!"Hello"的結(jié)果為true祈餐,(!"world", !!"from here!!") 逗號運算符用于對兩個表達式求值擂啥,并返回后一個表達式的值,!!"from here!!"的結(jié)果為true帆阳,因此(!"world", !!"from here!!")返回true哺壶,所以var x = true + true。當(dāng)數(shù)字和布爾值或布爾值與布爾值進行+蜒谤、-山宾、*、/操作時鳍徽,會將布爾值轉(zhuǎn)換為數(shù)字资锰,true轉(zhuǎn)換為1,false轉(zhuǎn)換為0阶祭。所以var x = true + true轉(zhuǎn)換為var x = 1 + 1,因此最終結(jié)果為2
輸出結(jié)果
輸出結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绷杜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子濒募,更是在濱河造成了極大的恐慌鞭盟,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瑰剃,死亡現(xiàn)場離奇詭異齿诉,居然都是意外死亡,警方通過查閱死者的電腦和手機培他,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進店門鹃两,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人舀凛,你說我怎么就攤上這事俊扳。” “怎么了猛遍?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵馋记,是天一觀的道長号坡。 經(jīng)常有香客問我,道長梯醒,這世上最難降的妖魔是什么宽堆? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮茸习,結(jié)果婚禮上畜隶,老公的妹妹穿的比我還像新娘。我一直安慰自己号胚,他們只是感情好籽慢,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著猫胁,像睡著了一般箱亿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上弃秆,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天届惋,我揣著相機與錄音,去河邊找鬼菠赚。 笑死脑豹,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的衡查。 我是一名探鬼主播晨缴,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼峡捡!你這毒婦竟也來了击碗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤们拙,失蹤者是張志新(化名)和其女友劉穎稍途,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體砚婆,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡械拍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了装盯。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坷虑。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖埂奈,靈堂內(nèi)的尸體忽然破棺而出迄损,到底是詐尸還是另有隱情,我是刑警寧澤账磺,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布芹敌,位于F島的核電站痊远,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏氏捞。R本人自食惡果不足惜碧聪,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望液茎。 院中可真熱鬧逞姿,春花似錦、人聲如沸捆等。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽楚里。三九已至,卻和暖如春猎贴,著一層夾襖步出監(jiān)牢的瞬間班缎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工她渴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留达址,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓趁耗,卻偏偏與公主長得像沉唠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子苛败,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

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