無標(biāo)題文章

[toc]?

?##1寸潦、基礎(chǔ)知識>ECMAScript(ES):規(guī)定了JS的一些基礎(chǔ)核心的知識(變量、數(shù)據(jù)類型、語法規(guī)范夜惭、操作語句等)>DOM:document object model 文檔對象模型苦银,里面提供了一些屬性和方法啸胧,可以讓我們操作頁面中的元素>BOM:browser object model 瀏覽器對象模型,里面提供了一些屬性和方法幔虏,可以讓我們操作瀏覽器###常用瀏覽器內(nèi)核瀏覽器的內(nèi)核是分為兩個部分的纺念,一是渲染引擎,另一個是JS引擎∷疲現(xiàn)在JS引擎比較獨立柠辞,內(nèi)核更加傾向于說渲染引擎。>- webkit內(nèi)核(V8引擎)> - 谷歌> - 大部分移動端瀏覽器> - 國內(nèi)大部分瀏覽器 360 QQ UC 獵豹 搜狗> - NODE基于V8來渲染JS>- Gecko 火狐瀏覽器>- Presto 歐朋瀏覽器> - Trident IE瀏覽器###數(shù)據(jù)類型的分類和檢測@[基本數(shù)據(jù)類型, 執(zhí)行步驟:, 引用數(shù)據(jù)類型] + Number + String + bloean + null:空對象指針 + undefined:未定義@[引用數(shù)據(jù)類型] + function 函數(shù)類型 + object對象數(shù)據(jù)類型: + {}普通對象 + 數(shù)組 + /$/ 正則[對象數(shù)據(jù)類型:是把描述同一事物的屬性和方法放在一個內(nèi)存空間中主胧,起到了分組的作用]####檢測數(shù)據(jù)類型- typeof:檢測數(shù)據(jù)類型的運算符- instanceof:檢測某個實例是否屬于這個類- constructor:獲取當(dāng)前實例的構(gòu)造器- Object.prototype.toString.call:獲取當(dāng)前實例所屬的類信息>Object.prototype.toString.call()方法測出的結(jié)果最準確叭首,其他都有局限性,得出的結(jié)果`[object 所屬類型]````Object.prototype.toString.call()==({}).toString.call()//true//每個類都是函數(shù) 只是函數(shù)名稱不同Object.toString()==Function.toString();//false```**typeof**:結(jié)果返回的是一個字符串踪栋,字符串內(nèi)包含的是數(shù)據(jù)類型- typeof 的局限性 - ==typeof null 的檢測結(jié)果不是‘null' 而是’object': 而null是基本數(shù)據(jù)類型 焙格,并不是object== - 使用typeof 無法具體區(qū)分出到底是數(shù)組還是正則或普通對象###Boolean>- 把其他類型轉(zhuǎn)換為布爾類型>- 只有==0,NaN,空字符串夷都、null眷唉、undefined==為false;其余都是true;>>- ! 或者 !!的意義>`!:先將數(shù)據(jù)類型轉(zhuǎn)化為布爾值囤官,再取反`>`!!:兩次取反相當(dāng)于沒有取反冬阳,只是把數(shù)據(jù)類型轉(zhuǎn)化為布爾類型`!null => true!!undefined =>false ###Number@`[NaN]`>- js中新增了一個數(shù)據(jù)類型:NaN(not a number 不是一個有效數(shù)字,但是屬于number) > + typeof NaN =>'number' >- `NaN!=NaN NaN和任何值都不等`@`[isNaN]` >isNaN:用來檢測這個值==是否不是有效數(shù)字==党饮,如果不是肝陪,則為true,反之,則為false>當(dāng)時使用isNaN檢測時刑顺,()中如果不是number類型:>基本數(shù)據(jù)類型:==先將其他類型值轉(zhuǎn)化為Number類型值==再運算>對象數(shù)據(jù)類型:==先將對其調(diào)用toString方法氯窍,再轉(zhuǎn)化為Number類型值==@`[Number]`>- 使用Number把字符串轉(zhuǎn)換為數(shù)字的時候,空字符串是零蹲堂,其它字符串中如果出現(xiàn)的字符代表純數(shù)字可以轉(zhuǎn)為正常的數(shù)字狼讨,如果出現(xiàn)了任何一個非有效數(shù)字的字符,最后的結(jié)果都是NaN>- 將引用類型轉(zhuǎn)化數(shù)據(jù)類型時柒竞,先將其轉(zhuǎn)化為字符串政供,后再轉(zhuǎn)化為number;({name:'zxt'}).toString() =>"[object Object]"Number(undefined) =>NaN@`[parseInt()]`>將其他類型值轉(zhuǎn)換number,和Number不同,提取規(guī)則:從左至右依次查找有效數(shù)字字符,直到遇見非有效字符為止(不管后面還有沒數(shù)字)> - parseInt('12px') =>12> - parseInt('px1') =>NaN> - parseInt('122.3') =>122@`[parseFloat()]`> 與parseInt不同的是支持小數(shù)> + parseFloat('12.34pxc')= 12.34`由于浮點數(shù)不是精確的值鲫骗,所以涉及小數(shù)的比較和運算要特別小心````0.1 + 0.2 === 0.3// false0.3 / 0.1// 2.9999999999999996```@`[toFixed()]`>控制數(shù)字保留小數(shù)點后面幾位```1.var num = parseFloat('width:12.5px'); //=>NaN2.if(num==12.5){3. alert(12.5);4.}else if(num==NaN){//=> NaN!=NaN5. alert(NaN);6.}else if(typeof num=='number'){//=> typeof NaN->'number'7. alert(0);//=>'0'8.}else{9. alert('啥也不是!');10.}```#####null 和 undefinednull: 沒有,沒有開辟內(nèi)存空間undefined: 未定義"" : 空字符串犬耻,什么都沒有,但是開辟了內(nèi)存空間null:什么都沒有执泰,但一般都是自己手動賦值的枕磁,后期再自己賦值unfefined:完全不在預(yù)期之內(nèi)###Object`對象是由0到多組鍵值對組成的,每一組之間用逗號分離`>每一個對象數(shù)據(jù)類型术吝,都是有0到多組的屬性名和屬性值組成的>屬性名:描述當(dāng)前對象具備的某些特征(數(shù)字/字符串格式)>屬性值:具體特征的值(任何數(shù)據(jù)類型)> >操作一個對象的屬性有2種方式 >`obj['key']` >`obj.key`(屬性名是數(shù)字不可以使用這種方法)**創(chuàng)建對象**>字面量方式:var obj={}>構(gòu)造函數(shù)方式:var obj=new Object();**對象鍵值對的操作:增计济、刪、改排苍、查**>var obj = {};>obj.name = 'zxt';//=>增加一個叫做NAME的屬性,屬性值是:'zxt'>obj['name'] = 29;//=>修改NAME對應(yīng)的屬性值:`一個對象的屬性名是不能重復(fù)的`沦寂,之前沒有這個屬性,我們的操作是增加操作淘衙,之前有這個屬性传藏,當(dāng)前操作就是在修改現(xiàn)有屬性名的屬性值>obj.age = null; //=>假刪除:把屬性值設(shè)置為空,但是屬性名是存在的 <=> obj['age'] = null =>獲取age的屬性值結(jié)果是null>delete obj.age;//=>真刪除:把屬性名和屬性值徹底從對象中移除掉 =>獲取age的屬性值結(jié)果是undefined>`獲取一個對象某一個屬性名對應(yīng)的屬性值彤守,如果當(dāng)前這個屬性在對象中并不存在毯侦,獲取的結(jié)果是undefined`**`obj[name]和obj['name']的區(qū)別`**```//-> age:變量名,代表的是它存儲的值//-> 'age':常量具垫,字符串的具體值var age = 'name';var obj = {name:'zhufeng',age:8};console.log(obj.age); =>8console.log(obj['age']); =>8console.log(obj[age]); => obj[age變量] =>obj['name'] =>獲取name屬性名的屬性值 =>'zhufeng'```####Object.keys:>Object.keys 返回一個所有元素為`字符串的數(shù)組`侈离,其元素來自于從給定的對象上面可直接枚舉的屬性。這些屬性的順序與手動遍歷該對象屬性時的一致筝蚕。`可以用來判斷對象是否為空:Object.keys(obj).length````let obj = { 0 : "a", 1 : "b", 2 : "c"};console.log(Object.keys(obj));// ['0', '1', '2']```###函數(shù)數(shù)據(jù)類型>函數(shù)數(shù)據(jù)類型也是按照引用地址來操作的>函數(shù):具備一定功能的方法###基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的區(qū)別>JS是運行在瀏覽器中的(內(nèi)核引擎)卦碾,==瀏覽器會給JS提供一個賴以生存的環(huán)境==,所以我們把這個環(huán)境叫做==全局作用域 window(global是后臺的)==>>JS代碼是自上而下依次執(zhí)行的基本數(shù)據(jù)類型是==按值==操作的:基本數(shù)據(jù)類型再賦值時起宽,是直接把值賦值給變量即可var a=12;var b=a; // b=12 把變量a存的值賦值給變量bb=13;alert(a); //a=12`引用數(shù)據(jù)類型是按空間地址(引用地址)來操作的:`var n={name:'主動'}洲胖; 1、先創(chuàng)建一個變量n; 2.瀏覽器首先會開辟一個存儲空間(內(nèi)存空間)坯沪,是把對象中需要存儲的鍵值對分別存儲在這個空間中宾濒,后期為了方便找到這個空間,瀏覽器會給空間設(shè)個地址(16進制)屏箍;3、把空間的地址賦值給變量;所以n存儲的是一個引用地址橘忱,并不是一個具體的值![Alt text](./1513571080711.png)###&&邏輯與||邏輯或- 在條件判斷中&&:所有都為真赴魁,才是真||:只要一個為真,就是真- 在賦值操作中||: a||b;看a的真假钝诚,a為真颖御,則返回a的值,a為假,則返回b,不管b是什么&&:a&&b, a為假潘拱,則返回a的值疹鳄,a為真,則返回b,不管b是什么真實項目中應(yīng)用邏輯或?qū)崿F(xiàn)默認值的設(shè)置操作邏輯與的優(yōu)先權(quán)高于邏輯或###JavaScript常用的操作語句>通過一系列的邏輯判斷芦岂,來完成特定的事情>for循環(huán)>if循環(huán):當(dāng)在判斷的操作中,很多條件都是符合的,執(zhí)行完成第一個符合的條件后,后面的條件不管是否符合都不在處理了####for in 循環(huán)@`用來遍歷(循環(huán))對象鍵值對的, '循環(huán)數(shù)組中的每一項', '條件瘪弓?條件成立執(zhí)行:條件不成執(zhí)行`;, 執(zhí)行步驟:]>key存儲的值都是字符串格式禽最,key中存的是屬性名>在for in 循環(huán)遍歷時腺怯,大部分瀏覽器都是先把對象中的鍵值對進行排序(整數(shù)數(shù)字在前,由小到大川无,其余按原來編寫順序排列)(小數(shù)算作字母呛占,不算數(shù)字)>`for in循環(huán)會遍歷對象原型上的方法`> itin [Tab] for in 循環(huán)快捷鍵####三元運算符>@`['條件?條件成立執(zhí)行:條件不成執(zhí)行懦趋;]`是簡單的if晾虑、else的另外一種寫法>如果某種情況并不需要做處理,我們可以用null,undefined,void 0占位即可>某一情況執(zhí)行多條操作仅叫,使用()包起來帜篇,每一項處理的事情之間用逗號分隔>在三元運算符中不能出現(xiàn)==break/continue/return== 會出現(xiàn) SyntaxErrorr 語法錯誤####switch case>也是if else某種特定情況的簡寫,可以在switch 語句中使用任何數(shù)據(jù)類型(在很多其他語言中只能使用數(shù)值)惑芭,無論是字符串坠狡,還是對象都沒有問題。其次遂跟,每個 case 的值不一定是常量逃沿,可以是變量,甚至是表達式幻锁。>每一種case情況結(jié)束都需要加break凯亮,達到條件成立處理完成,跳出當(dāng)前判斷`每一種case情況的比較都是使用===進行比較的:絕對相等``=:賦值哄尔,變量=值``==:比較假消,值==值``絕對比較,值===`如果左右兩邊比較的值是相同類型的岭接,那么直接比較內(nèi)容是否一樣即可富拗;如果兩邊值的類型不一樣,`==和===是有區(qū)別的`:===類型不一樣鸣戴,最后的結(jié)果就是false啃沪,更加的嚴謹 ==類型不一樣,瀏覽器首先會默認的把類型轉(zhuǎn)化為一樣的窄锅,然后再比較內(nèi)容创千,相對松散一些####for循環(huán)語句`for(初始值;驗證條件;步長累加){ 循環(huán)體}`@[執(zhí)行步驟:]>設(shè)置初始值>驗證條件>條件成立執(zhí)行循環(huán)體,否則推出循環(huán)>步長累加>驗證條件>···············>沒有步長累加會陷入死循環(huán)`for循環(huán)與for in循環(huán)的區(qū)別:for in 循環(huán)可以遍歷到原型上的公有屬性,而for循環(huán)只能遍歷私有的屬性`騰訊面試題```1.for(var i=0;i<10;i+=2){2. if(i<=5){3. i++;4. continue;5. }else{6. i--;7. break;8. }9. console.log(i);10.}11.console.log(i); //=>5```

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末追驴,一起剝皮案震驚了整個濱河市械哟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌殿雪,老刑警劉巖暇咆,帶你破解...
    沈念sama閱讀 211,423評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異冠摄,居然都是意外死亡糯崎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,147評論 2 385
  • 文/潘曉璐 我一進店門河泳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來沃呢,“玉大人,你說我怎么就攤上這事拆挥”∷” “怎么了?”我有些...
    開封第一講書人閱讀 157,019評論 0 348
  • 文/不壞的土叔 我叫張陵纸兔,是天一觀的道長惰瓜。 經(jīng)常有香客問我,道長汉矿,這世上最難降的妖魔是什么崎坊? 我笑而不...
    開封第一講書人閱讀 56,443評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮洲拇,結(jié)果婚禮上奈揍,老公的妹妹穿的比我還像新娘。我一直安慰自己赋续,他們只是感情好男翰,可當(dāng)我...
    茶點故事閱讀 65,535評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著纽乱,像睡著了一般蛾绎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸦列,一...
    開封第一講書人閱讀 49,798評論 1 290
  • 那天租冠,我揣著相機與錄音,去河邊找鬼薯嗤。 笑死肺稀,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的应民。 我是一名探鬼主播,決...
    沈念sama閱讀 38,941評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼诲锹!你這毒婦竟也來了繁仁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,704評論 0 266
  • 序言:老撾萬榮一對情侶失蹤归园,失蹤者是張志新(化名)和其女友劉穎黄虱,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體庸诱,經(jīng)...
    沈念sama閱讀 44,152評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡捻浦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,494評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了桥爽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片朱灿。...
    茶點故事閱讀 38,629評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖钠四,靈堂內(nèi)的尸體忽然破棺而出盗扒,到底是詐尸還是另有隱情,我是刑警寧澤缀去,帶...
    沈念sama閱讀 34,295評論 4 329
  • 正文 年R本政府宣布侣灶,位于F島的核電站,受9級特大地震影響缕碎,放射性物質(zhì)發(fā)生泄漏褥影。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,901評論 3 313
  • 文/蒙蒙 一咏雌、第九天 我趴在偏房一處隱蔽的房頂上張望戳鹅。 院中可真熱鬧,春花似錦稿存、人聲如沸偎球。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽檐薯。三九已至,卻和暖如春注暗,著一層夾襖步出監(jiān)牢的瞬間坛缕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,978評論 1 266
  • 我被黑心中介騙來泰國打工捆昏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赚楚,地道東北人。 一個月前我還...
    沈念sama閱讀 46,333評論 2 360
  • 正文 我出身青樓骗卜,卻偏偏與公主長得像宠页,于是被迫代替她去往敵國和親左胞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,499評論 2 348

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

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,216評論 0 4
  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉举户,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,690評論 0 9
  • width: 65%;border: 1px solid #ddd;outline: 1300px solid #...
    邵勝奧閱讀 4,783評論 0 1
  • JAVA面試題 1烤宙、作用域public,private,protected,以及不寫時的區(qū)別答:區(qū)別如下:作用域 ...
    JA尐白閱讀 1,146評論 1 0
  • 1.釋義 翻譯 ,理解為,意思是 Only a small number of Kadare's books ha...
    AG皓閱讀 539評論 0 0