something about JavaScript(1)

JavaScript定義了六種數(shù)據(jù)類型:

  • Number類型
  • String類型
  • Boolean類型
  • Object類型
  • undefined類型
  • null類型

原始類型和復(fù)雜類型

  • 原始類型

    數(shù)值候引、字符串、布爾值稱為原始類型(primitive type)的值塘秦,即它們是最原始的數(shù)據(jù)類型媳危,不能再細(xì)分了灰瞻。

  • 復(fù)雜類型

    而將對象(Object類型)稱為復(fù)雜類型(complex type)的值周偎,因為一個對象往往是多個原始類型的值的合成缆巧,可以看作是一個
    存放各種值的容器窃植。至于undefined和null领铐,是兩個特殊值悯森。

  • 對象類型

    對象類型還可以細(xì)分為三個子類型

    1. 狹義的對象(Object)
    2. 數(shù)組(array)
    3. 函數(shù)(function)
    4. 正則表達(dá)式(regexp)

關(guān)于typeof和instanceof的作用和區(qū)別。

typeof

在變量和值上調(diào)用typeof绪撵,將返回一個字符串瓢姻,這個字符串標(biāo)示了這個變量或值的類型。如果這個變量或值是一個引用類型將會返回"object"音诈。其中typeof null 返回的object幻碱,這是因為JavaScript最初設(shè)計的一個錯誤绎狭,然后被沿用到現(xiàn)在。

返回的判斷類型一共有六種

  1. number
  2. boolean
  3. string
  4. function
  5. object
  6. undefined

instanceof

instanceof用于判斷一個變量是否某個對象的實例褥傍,運算符返回一個布爾值儡嘶,instanceof只能用來判斷對象和函數(shù),不能用來判斷字符串和數(shù)字等恍风。

所以instanceof是一個判斷蹦狂,而typeof是求值。

如何判斷一個變量是否是數(shù)字朋贬、字符串凯楔、布爾、函數(shù)

用 typeof 變量名;就可返回一個此變量類型的字符串,假如此變量名為a:

  • typeof a === "number";
  • typeof a === "string";
  • typeof a === "boolean";
  • typeof a === "function";

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

NaN是JavaScript的特殊值 锦募,表示“非數(shù)字”(Not a Number)摆屯。

注意

  1. NaN不是數(shù)字但是它的數(shù)據(jù)類型是數(shù)字。

    typeof NaN //Number

  2. NaN是JavaScript中唯一一個不等于任何值(包括自身)的值糠亩。

    NaN == NaN //false

  3. NaN在Boolean運算的時候被當(dāng)做false

    Boolean(NaN)//false

  4. NaN和任何數(shù)(包括自身)運算結(jié)果都是NaN

    NaN+1 //NaN

  5. 判斷NaN的方法
    typeof value === 'number' && isNaN(value);

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

  1. parseInt()虐骑、parseFloat()專門用于把字符串轉(zhuǎn)換成數(shù)值(比較常用的)。
  2. Number()可以用于任何數(shù)據(jù)類型(此函數(shù)平時很少使用)赎线。

Number()的轉(zhuǎn)換規(guī)則:

  1. 如果是Boolean值廷没,true和false將分別被轉(zhuǎn)換為1和0。

  2. 如果是數(shù)字值氛驮,只是簡單的傳入和返回腕柜。

  3. 如果是null值,返回0矫废。

  4. 如果是undefined盏缤,返回NaN。

  5. 如果是字符串蓖扑,遵循下列規(guī)則:

    • 如果字符串中只包含數(shù)字(包括前面帶正號或負(fù)號的情況)唉铜,則將其轉(zhuǎn)化為十進制數(shù)值,既"1"變成1律杠,"123"變成123潭流,但是"012"會變成11(注意:前導(dǎo)的零被忽略了);
    • 如果字符串中包含有效的十六進制格式柜去,如"0xf"則將其轉(zhuǎn)換為相同大小的十進制整數(shù)值灰嫉;
    • 如果字符串是空的(不包含任何字符),則將其轉(zhuǎn)換為0嗓奢;
    • 如果字符串中包含除上述格式之外的字符讼撒,則將其轉(zhuǎn)換為NaN;
    • 如果是對象,則調(diào)用對象的valueOf方法根盒,然后依照前面的規(guī)則轉(zhuǎn)換返回的值钳幅。如果轉(zhuǎn)換的結(jié)果是NaN,則調(diào)用對象的toString()方法炎滞,然后再次依照前面的規(guī)則轉(zhuǎn)換返回的字符串值敢艰。

==與===的區(qū)別

  • "==":等于運算,但是不比較值的類型册赛, 兩邊值類型不同的時候钠导,要先進行類型轉(zhuǎn)換,再比較森瘪。
  • "===":完全等于運算辈双,不僅比較值,而且還比較值的類型柜砾,當(dāng)兩邊類型不一致時,不做類型轉(zhuǎn)換换衬,類型不同的一定不等痰驱,只有兩者一致才為真。

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

  • break用于強制退出循環(huán)體瞳浦,執(zhí)行循環(huán)后面的語句
  • continue 用于退出本次循環(huán)担映,執(zhí)行下次循環(huán)

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

一般都是用來對某個值做if判斷,判斷是否等于undefined叫潦。
但是一般用void 0來代替undefined,undefined 是windows的一個屬性蝇完,每次使用都要調(diào)用,比較費時矗蕊,而且它還是一個可以重定義的變量短蜕,容易出錯。
不管void后的運算數(shù)是什么傻咖,只管返回undefined朋魔,用void 0.只是比較省事,也可用void 1; void100;

一些面試題

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

  • console.log(1+1);//2
  • console.log("2"+"4");//"24"
  • console.log(2+"4");//"24"
  • console.log(+"4");//4
var a = 1;  
a+++a;       //a++的結(jié)是1  后面+a的值是2 卿操,整個表達(dá)式值為3
typeof a+2;  //typeof的優(yōu)先級比+高

//輸出結(jié)果:"number2"

 var a = 1;
 var b = 3;
 console.log( a+++b );
 
 //輸出結(jié)果4
 

遍歷數(shù)組警检,把數(shù)組里的打印數(shù)組每一項的平方

 var arr = [3,4,5];

  for(var i = 0 ; i < arr.length ;i++)
  {
    console.log(arr[i]*arr[i]);
  }
//輸出結(jié)果
 9
 16
 25

遍歷 JSON, 打印里面的值

var obj = {
 name: 'hunger', 
 sex: 'male', 
 age: 28 
}

for(key in obj){
    console.log(obj[key])
}
//輸出結(jié)果 
hunger
male
28

以下代碼輸出結(jié)果是

var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val) 

//輸出結(jié)果
“number2”

var d = 5;
var data = d ==5 && console.log('bb')
console.log(data)
//輸出結(jié)果
bb

var data2 = d = 0 || console.log('haha')
console.log(data2)
//輸出結(jié)果
haha

var x = !!"Hello" + (!"world", !!"from here!!");
//(!"world", !!"from here!!") 返回后者 !!"from here!!" =>true;
//!!"Hello"=>true
//true + true =2;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市害淤,隨后出現(xiàn)的幾起案子扇雕,更是在濱河造成了極大的恐慌,老刑警劉巖窥摄,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件镶奉,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機腮鞍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門值骇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人移国,你說我怎么就攤上這事吱瘩。” “怎么了迹缀?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵使碾,是天一觀的道長。 經(jīng)常有香客問我祝懂,道長票摇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任砚蓬,我火速辦了婚禮矢门,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘灰蛙。我一直安慰自己祟剔,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布摩梧。 她就那樣靜靜地躺著物延,像睡著了一般。 火紅的嫁衣襯著肌膚如雪仅父。 梳的紋絲不亂的頭發(fā)上叛薯,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音笙纤,去河邊找鬼耗溜。 笑死,一個胖子當(dāng)著我的面吹牛省容,可吹牛的內(nèi)容都是我干的强霎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼蓉冈,長吁一口氣:“原來是場噩夢啊……” “哼城舞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起寞酿,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤家夺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后伐弹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拉馋,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了煌茴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片随闺。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蔓腐,靈堂內(nèi)的尸體忽然破棺而出矩乐,到底是詐尸還是另有隱情,我是刑警寧澤回论,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布散罕,位于F島的核電站,受9級特大地震影響傀蓉,放射性物質(zhì)發(fā)生泄漏欧漱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一葬燎、第九天 我趴在偏房一處隱蔽的房頂上張望误甚。 院中可真熱鬧,春花似錦谱净、人聲如沸靶草。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至裕寨,卻和暖如春浩蓉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背宾袜。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工捻艳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人庆猫。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像月培,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子杉畜,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

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

  • 1纯续、標(biāo)識符 標(biāo)識符是指變量、函數(shù)、屬性的名字猬错,或函數(shù)的參數(shù)。 格式規(guī)則: 第一個字符必須是一個字母倦炒、下劃線(_)或...
    霜天曉閱讀 703評論 0 0
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,238評論 0 4
  • 標(biāo)簽: 我的筆記 ---學(xué)習(xí)資料:http://javascript.ruanyifeng.com/ 1. 導(dǎo)論 ...
    暗夜的怒吼閱讀 817評論 0 1
  • 登錄 /api/login? .post? .request? ? body{String email...
    小旎子_8327閱讀 184評論 0 0
  • 好幾天沒下樓轉(zhuǎn)轉(zhuǎn)了,趁著早起析校,下樓到公園里頭呼吸下新鮮空氣构罗。 走過一條小道上,抬眼...
    對影成雙丹閱讀 298評論 0 0