第三周第五天筆記

  • 對象屬性名為變量時,不能用"."硼身,要用"[ ]",但是不能加雙引號覆享;
  • 基本數(shù)據(jù)類型是對鍵值對的引用佳遂,引用數(shù)據(jù)類型是對地址的引用;
    • 基本數(shù)據(jù)類型撒顿,對值的引用:
          var a=123;
          var b=a;
          b+=3;
          console.log(a);
          console.log(b);*/
        //打印出來的值中丑罪,a為123;b為126凤壁;
      
    • 引用數(shù)據(jù)類型吩屹,是對地址的引用:
          var a=[1,2,3,4]
          var b=a;
          b[4]=5;
          console.log(a);
          console.log(b);
          //打印出來的a為[1,2,3,4,5],b也為[1,2,3,4,5],
          // b引用的地址與a的地址為同一個地址拧抖,當(dāng)改變b中的元素時煤搜,a也會改變;
      
    • 普通對象的遍歷:for-in
       var a={ name:"guobin",age:26,sex:"男"};
          var b={};
          for( var attr in a){
              b[attr]=a[attr];//對象的克隆;
          }
          b.insert="meihao";//給b添加自定義屬性唧席;
          console.log(a);
          console.log(b);
          //打印出來的結(jié)果:a={name: "guobin", age: 26, sex: "男"};
          //b={name: "guobin", age: 26, sex: "男", insert: "meihao"};
      
  • 數(shù)組常用的方法:
    • 學(xué)習(xí)思路擦盾,需要關(guān)注4點:
      1. 方法的作用;
      2. 是否需要參數(shù)淌哟;
      3. 是否有返回值迹卢,返回值內(nèi)容;
      4. 原來數(shù)組是否改變徒仓;
    • 第一組:數(shù)組元素的增加腐碱,刪除,替換——原來數(shù)組會發(fā)生變化掉弛;
      • push()
        • 作用:給數(shù)組末尾增加一項症见;
        • 參數(shù):需要實參,為增加項的內(nèi)容狰晚;內(nèi)容為元素筒饰,不是數(shù)組;
        • 返回值:新數(shù)組的長度壁晒;
        • 原來數(shù)組發(fā)生改變瓷们;
      • pop()
        • 作用:刪除數(shù)組最后一項;
        • 參數(shù):不需要;
        • 返回值:刪除項的內(nèi)容谬晕;
        • 原來數(shù)組發(fā)生改變碘裕;
      • unshift()
        • 作用:給數(shù)組開頭添加一項;
        • 參數(shù):需要實參攒钳,為增加項的內(nèi)容帮孔;內(nèi)容為元素,不是數(shù)組不撑;
        • 返回值:新數(shù)組的長度文兢;
        • 原來數(shù)組發(fā)生改變;
      • shift()
        • 作用:刪除數(shù)組第一項焕檬;
        • 參數(shù):不需要姆坚;
        • 返回值:刪除項的內(nèi)容;
        • 原來數(shù)組發(fā)生改變实愚;
      • splice():刪除兼呵,插入,替換
        • 語法:splice(index,deleteCount,替換的內(nèi)容)腊敲;
        • index:從數(shù)組中開始的索引值击喂;(若參數(shù)中只添加index值,則從index值開始碰辅,后面的元素全部刪除)
        • deleteCount: 刪除元素的個數(shù)懂昂;(不可省略,若省略則為添加的內(nèi)容不能插入乎赴,除了只有index的情況)
        • 替換的內(nèi)容:可省略忍法,即無添加內(nèi)容;
        • 返回值:刪除的元素重新構(gòu)成的數(shù)組榕吼;若沒有刪除內(nèi)容饿序,則返回空數(shù)組;
        • 原來的數(shù)組會發(fā)生變化羹蚣;
        • 三種形式代碼:
          • 插入:arr.splice(2,0,"neirong");//刪除個數(shù)不能省略原探,省略后,插入失效顽素,在制定位置的插入咽弦;
          • 刪除:arr.splice(2,3);//當(dāng)刪除個數(shù)省略時,從2開始胁出,刪除3個后面的元素型型;
          • 替換:arr.splice(2,2,"neirong1","neirong2");//替換的個數(shù)與刪除的個數(shù)可以不相等;
        • 實例:克隆一份給變量
          var arr1=["mei","hao","de","yi","tian","a"]
          //需求:克隆一份arr1給arr2全蝶,不考慮arr1是否改變
          var arr2=arr.splice(0);
         //運行的結(jié)果中闹蒜,arr1為空數(shù)組寺枉,arr2內(nèi)容與arr1原來相同;
        
    • 第二組:截取/查找绷落、拼接姥闪、克隆——原來數(shù)組不會發(fā)生變化;
      • slice(m,n)
        • 作用:截取砌烁,克隆
        • 參數(shù):m,n-從索引m開始筐喳,查找到索引n結(jié)束,包前(m代表的元素)不包后(n代表的元素)函喉;
          • m:start,開始查找的索引值避归;正負(fù)整數(shù),當(dāng)為-1時函似,即倒數(shù)第一個元素
          • n:end,結(jié)束查找的索引值槐脏,正負(fù)整數(shù),可省略撇寞,當(dāng)省略時,即從開始一直到末尾堂氯;
        • 返回值:被選取的數(shù)組元素構(gòu)成的新數(shù)組蔑担;
        • 原來數(shù)組不發(fā)生改變;
        • 實例:請查找到[m,n]項:即找到m到n項
             var ree=arr.slice(m-1,n);//第m項對應(yīng)的索引值為m-1
          
        • 功能:克隆數(shù)組
             var rew=arr.slice(0);//或arr.slice()
          
      • concat()
        • 作用:數(shù)組拼接咽白,克隆
        • 參數(shù):
          • 數(shù)組名啤握,多個數(shù)組之間用逗號相連
          • 數(shù)組元素,起到添加元素的功能晶框,即arr.concat(["mei","hao"]);注:元素可以不是數(shù)組排抬,可以是數(shù)字,即concat([1,2,3],[2])與concat([1,2,3],2)結(jié)果是一樣的授段;
        • 返回值:拼接成的新數(shù)組蹲蒲;
        • 原數(shù)組不發(fā)生改變;
        • 功能:克隆
             var rew=arr.concat();//不填加參數(shù)侵贵,即達(dá)到克隆的效果届搁;
        
    • 第三組:數(shù)組轉(zhuǎn)字符串——原來數(shù)組不會發(fā)生變化;
      • toString()
        • 作用:數(shù)組轉(zhuǎn)字符串窍育;
        • 參數(shù):無卡睦;
        • 返回值:以逗號連接每個數(shù)組元素構(gòu)成的字符串;
        • 原數(shù)組沒有發(fā)生改變漱抓;
          var arr=[1,2,3,4,5,6];
          var str=arr.toString();
          console.log(str);//打印的結(jié)果是"1,2,3,4,5,6"—其中","為一個字符;
        
      • join()
        • 作用:以特定符號連接數(shù)組元素形成新的字符串表锻;
        • 參數(shù):任意符號,用于連接數(shù)組元素乞娄;
        • 返回值:以制定符號拼接數(shù)組元素形成的字符串瞬逊;
        • 原數(shù)組沒有發(fā)生改變显歧;
        • eval():把字符串作為JS代碼來執(zhí)行;
          • 實例1:如果參數(shù)設(shè)置為運算符號码耐,將字符串實現(xiàn)運算
             var arr=[1,2,3,4,5,6];
             var str=arr.join("+");
             console.log(str);//打印的結(jié)果是"1+2+3+4+5+6"—其中"+"為一個字符;
             var sum=eval(str);//sum值為加法運算求和值;
          
          • 實例2:字符串str1="alert(123)",通過eval()使字符串轉(zhuǎn)化為JS代碼執(zhí)行追迟;
             var str1="alert(123)";
             eval(strl);//頁面彈出123;
          
    • 第四組:數(shù)組的翻轉(zhuǎn)和排序——原來數(shù)組會發(fā)生變化骚腥;
      • reverse():翻轉(zhuǎn)
        • 功能:數(shù)組元素倒著寫出來敦间;
        • 參數(shù):沒有;
        • 返回值:返回一個跟原來被翻轉(zhuǎn)后的數(shù)組一樣的數(shù)組束铭;
        • 原數(shù)組發(fā)生改變廓块;
      • sort():排序
        • 功能:數(shù)組元素排序;
        • 參數(shù):函數(shù)契沫;
        • 返回值:返回一個跟原來被排序后的數(shù)組一樣的數(shù)組带猴;
        • 原數(shù)組發(fā)生改變;
       ary.sort(function(a,b){
             return a-b;//升序:從小到大排列懈万;
             return b-a;//降序:從大到小排列拴清;
             });
      
    • 第五組:數(shù)組常用但不兼容的方法:
      • indexOf()
        • 功能:查找特定的元素內(nèi)容;
        • 參數(shù):要查找的內(nèi)容会通;
        • 返回值:如果找到口予,則返回內(nèi)容對應(yīng)的索引值/位置;如果沒找到涕侈,返回-1沪停;
        • 原數(shù)組沒有發(fā)生變化;
      • forEach()
        • forEach()用來遍歷數(shù)組裳涛;
        • forEach()有兩個參數(shù):1)callback回調(diào)函數(shù)木张;2)context:用來改變this指向;
          • 回調(diào)函數(shù)中有三個參數(shù):1)數(shù)組的對應(yīng)的內(nèi)容端三;2)索引舷礼;3)原數(shù)組
          • context是用來改變this指向的,可傳可不傳技肩,如果不傳的話且轨,默認(rèn)this是window;如果傳了按傳的來虚婿;
        • 返回值:undefined; 沒有返回值旋奢;
        • 原數(shù)組不發(fā)生變化;
        var arr=["mei","hao","de","yi","tian","a"];
        var objm={};
        arr.forEach(function (item,index,input) {
            console.log(this);
        },objm);
        
      • map():也是遍歷數(shù)組然痊,跟forEach()功能一樣至朗,只是forEach()沒有返回值,map有返回值剧浸;
  • 實例:驗證碼的獲取代碼:獲取四個不重復(fù)的代碼锹引;
<script>
    var str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    var arr=[];
    //思路1:利用while循環(huán)進(jìn)行判斷
    while(arr.length<4){
        var rnd=Math.round(Math.random()*61);//獲取0到61之間隨機(jī)數(shù)
        if(arr.indexOf(str[rnd])===-1){//查找數(shù)組中的是否已經(jīng)存在該元素矗钟,若沒有則輸出-1;
            arr.push(str[rnd]);
        }
    }
    //思路2:利用for循環(huán)進(jìn)行判斷
    for(var i=0; i<4; i++){
        var rnd=Math.round(Math.random()*61);//獲取0到61之間隨機(jī)數(shù)
        if(arr.indexOf(str[rnd])===-1) {//查找數(shù)組中的是否已經(jīng)存在該元素嫌变,若沒有則輸出-1吨艇;
            arr.push(str[rnd]);
        }else{
            i--;//如果數(shù)組中已經(jīng)存在元素了,就必須重新再進(jìn)行循環(huán)腾啥,通過i-1來保證循環(huán)拿到的元素個數(shù)东涡;
        }
    }
</script>
  • 隨機(jī)數(shù)的獲取: 獲取[n,m]的隨機(jī)數(shù)代碼:var rnd=Math.round(Math.random()*(m-n)+n);;
<script>
    var rnd=Math.round(Math.random()*61);//獲得0-61之間的隨機(jī)數(shù)代碼
</script>
  • 封裝步驟:
    1. 把除了父容器以外的函數(shù),都剪切倘待,放到一個新的函數(shù)中疮跑,并起個名字;
    2. 把函數(shù)中可變的部分凸舵,作為形參祖娘;
    3. 在外面調(diào)用函數(shù),并傳入實參啊奄;
    4. 把html部分渐苏,復(fù)制多份,對待寬度不同的個別部分菇夸,分別設(shè)置整以;
    5. 獲取所有的父容器,逐個遍歷后峻仇,調(diào)用函數(shù);
<body>
    <div class="wrap" style="width:803px;">....</div>
    <div class="wrap">....</div>
    <div class="wrap" style="width:401px;">....</div>
<script>
    var oawrap=document.getElementsByClassName("wrap");
    for(var i=0; i<oawrap.length; i++){
        tab(oawrap[i]);//調(diào)用函數(shù)邑商,添加實參
    }
    function tab(ioawrap) {
        var oli=ioawrap.getElementsByTagName("li");
        var odiv=ioawrap.getElementsByTagName("div");
        for(var i=0;i<oli.length; i++){
            oli[i].index=i;
            oli[i].onclick=function () {
                for(i=0;i<oli.length; i++){
                    oli[i].className= "";
                    odiv[i].className="hide";
                }
                this.className="active";
                odiv[this.index].className="show";
            }
        }
    }
</script>
</body>
  • 知識點掌握:
    • 數(shù)據(jù)類型及區(qū)別摄咆;
    • 九九乘法表
    • 選項卡兩種思路:自定義屬性,函數(shù)閉包人断;
    • 求和函數(shù):實參個數(shù)不確定下的求和函數(shù)(arguments);
    • 數(shù)組的常用方法:14種吭从;
    • 隨機(jī)驗證碼:兩種思路:for循環(huán)和while循環(huán);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恶迈,一起剝皮案震驚了整個濱河市涩金,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌暇仲,老刑警劉巖步做,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異奈附,居然都是意外死亡全度,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進(jìn)店門斥滤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來将鸵,“玉大人勉盅,你說我怎么就攤上這事《サ簦” “怎么了草娜?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長痒筒。 經(jīng)常有香客問我宰闰,道長,這世上最難降的妖魔是什么凸克? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任议蟆,我火速辦了婚禮,結(jié)果婚禮上萎战,老公的妹妹穿的比我還像新娘咐容。我一直安慰自己,他們只是感情好蚂维,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布戳粒。 她就那樣靜靜地躺著,像睡著了一般虫啥。 火紅的嫁衣襯著肌膚如雪蔚约。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天涂籽,我揣著相機(jī)與錄音苹祟,去河邊找鬼。 笑死评雌,一個胖子當(dāng)著我的面吹牛树枫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播景东,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼砂轻,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了斤吐?” 一聲冷哼從身側(cè)響起搔涝,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎和措,沒想到半個月后庄呈,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡臼婆,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年抒痒,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颁褂。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡故响,死狀恐怖傀广,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情彩届,我是刑警寧澤伪冰,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站樟蠕,受9級特大地震影響贮聂,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜寨辩,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一吓懈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧靡狞,春花似錦耻警、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至梢杭,卻和暖如春温兼,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背武契。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工募判, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人咒唆。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓兰伤,卻偏偏與公主長得像,于是被迫代替她去往敵國和親钧排。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

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

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line)均澳,也就是一...
    悟名先生閱讀 4,149評論 0 13
  • 第3章 基本概念 3.1 語法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,128評論 0 21
  • 變量 聲明變量 命名變量區(qū)分大小寫的語言第一個字符是字母或下劃線_,數(shù)字不能作為第一個字符字符必須是字母恨溜,數(shù)字或者...
    flyingtoparis閱讀 812評論 0 0
  • 最近一直忙 和開發(fā)新品 有所累 難尋時間收拾心情 并問初衷 夜深賦詩一首以償 并共勉: 吾本徽州石敢當(dāng) 生性如山竹...
    嘯傲天涯_阿思藍(lán)閱讀 276評論 2 4
  • 嘭~。門開了找前,朔風(fēng)裹夾著霜雪前仆后繼的涌向小屋糟袁。一并帶來的還有一路的濃烈風(fēng)塵氣息√墒ⅲ“閣下哪里來项戴?” 沙啞的聲音伴隨...
    袁氏小主閱讀 363評論 2 2