• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            專職C++

            不能停止的腳步

              C++博客 :: 首頁 :: 聯系 :: 聚合  :: 管理
              163 Posts :: 7 Stories :: 135 Comments :: 0 Trackbacks

            常用鏈接

            留言簿(28)

            我參與的團隊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            #

            數組的解構與函數變參

            解構

            es6新增了一個解構功能,如下所示

            let [aa,bb,cc]= [1,2,3]; 
            console.log(aa,bb,cc);
            //顯示為1 2 3
            • 1
            • 2
            • 3
            • 1
            • 2
            • 3

            也就是將右邊數組的元素依次賦值給左邊數組列表中變量 .

            • 也可以是已經定義好的變量
            let aa,bb,cc; 
            [aa,bb,cc] = [1,2,3];
            • 1
            • 2
            • 1
            • 2
            • 可跳過,一些變量
            let [aa,,cc] = [1,2,3];
            • 1
            • 1
            • 可少于變量數量
            let [aa,bb,cc] = [1,2];   //cc===undefined; 
            //或let [aa,bb,cc] = [1,,3]; //bb===undefined;
            • 1
            • 2
            • 1
            • 2
            • 也可以用于函數返回多值
            function mmm(v) {     
            if(v=== true) {
            return [true,1,2,3];
            }
            else{
            return [false];
            }
            }
            let [result,bb,cc,dd] = mmm(true);
            if(result) {
            console.log(bb,cc,dd);
            }
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12

            這個和lua的多值返回一樣的效果.可以簡化一些函數返回處理

            變量 操作符…

            對于函數變量,es2015增加了操作符…,實際上也是數組,大大簡化了變參的操作. 
            對于參數名稱,建議使用默認的args 
            - 常見使用

            function sum(…args) {
            let r = 0;
            for(let i = 0; i < args.length; i++) {
            r += args[i];
            }
            return r;
            }
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 再調變參函數
            function printLog(…args) {
            console.log(…args); //這一步大大簡化了,如果是ES5那就頭痛了.要用arguments,
            }
            • 1
            • 2
            • 3
            • 1
            • 2
            • 3
            • 還可以很輕松的擴展參數
            function printLog(…args) {
            console.log("專有前綴",…args,"專有后綴");
            }
            • 1
            • 2
            • 3
            • 1
            • 2
            • 3
            • 因為…args是一個數組,也就是它可以用數組的方法操作.
            function printLog(...args) {
            for(let i = 0; i < args.length; i++) {
            console.log(args[i]);
            }
            args.push("end");
            console.log(...args);
            }
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 用…還可以將數組插入的新數組中去,
            let u = [1,2,3]; 
            let u1 = […u,4,5];
            console.log(u1); //顯示為[1,2,3,4,5];
            • 1
            • 2
            • 3
            • 1
            • 2
            • 3

            后記

            到此,所有數組和相關筆記就沒有了,期待Node.js能完整支持es6,省得用babel再編譯了.再復雜的東西,都是由最簡單的元素組成.如果忽視最簡單的元素,就像JavaScript中的let,const,for,數組等,如果不能充分的理解和使用,你所的”高深代碼”能好到哪里去呢?

            posted @ 2017-03-29 17:09 冬瓜 閱讀(1503) | 評論 (0)編輯 收藏

                 摘要: 前面一篇,我們寫了數組的基礎,在這里則會把主要的方法和應用列出來.
            對于迭代方法和歸并方法只是一個簡化代碼的作用,可能這些方法功能非常見,所以干脆默認提從了這兩組方法。對于js的數組,使用起來非常方法,相比c/c++真是無與倫比…。在C++11標準后,也可以同樣提供一個強大的動態數組。但是js的數組,可以存放任何元素,這個是C++不能比的,雖然可以實現,但是代價就有點大了。相對來說,現在版本的java和C#,則可以。因為java所有的都是Object…  閱讀全文
            posted @ 2017-03-07 18:03 冬瓜 閱讀(1490) | 評論 (0)編輯 收藏

            Array 類型恐怕是 ECMAScript 中最常用的類型了。而且,ECMAScript 中的數組與其他多數語<言中的數組有著相當大的區別。
            雖然 ECMAScript 數組與其他語言中的數組都是數據的有序列表,但與其他語言不同的是,ECMAScript 數組的每一項可以保存
            任何類型的數據。也就是說,可以用數組的第一個位置來保存字符串,用第二位置來保存數值,用第三個位置來保存對象,以此
            類推。而且,ECMAScript 數組的大小是可以動態調整的,即可以隨著數據的添加自動增長以容納新增數據。算是萬能的容器.

            JS中的數組還有很多功能,這篇先講講基礎

            創建數組

            用new方法

            下面是一組用new Array創建數組,實際上,也可以不用new,直接使用Array也是一樣的

            1: let a = new Array(); //這里創建了一個沒有元素的空數組 
            2: let a = new Array(10); //這里創建了元素個數為20的數組
            3: let a = new Array(1,2,3,"aaaa"); //這里創建指定數組元素的數組
            //等同于
            1: let a = Array(); //這里創建了一個沒有元素的空數組
            2: let a = Array(10); //這里創建了元素個數為20的數組
            3: let a = Array(1,2,3,"aaaa"); //這里創建指定數組元素的數組
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7

            用[]

            下面是一組用[]創建數組的辦法,多數用這種方法比較簡潔

            4:let a = []; //創建一個空數組 
            5:let a=[1,2,3,"aaa"];//指定元素列表的創建數組
            6:let a = [1,,2];//指定元素列表,但是會跳過若干元素創建數組 //跳過的部分為#ff0000
            • 1
            • 2
            • 3
            • 4
            • 1
            • 2
            • 3
            • 4

            length屬性

            對于數組的長度,用屬性length可以獲得


            可以通過設置該值,來改變數組的大小 
            也可以能過下標設置,如

            let a = [1,2,3]; 
            a[10]=99;
            console.log(a);
            //結果為[ 1, 2, 3, , , , , , , , 99 ],也就是在沒有的位置插入了undefined
            • 1
            • 2
            • 3
            • 4
            • 1
            • 2
            • 3
            • 4

            [下標]訪問

            用[下標]的方式,可以訪問數組的元素 
            例:

            let a=[3,2,1]; 
            for(let i = 0; i < a.length; i++){
            console.log(a[i]);
            }
            • 1
            • 2
            • 3
            • 4
            • 1
            • 2
            • 3
            • 4

            如果對數組越辦訪問,得到的將是undefined,

            數組遍歷方法:

            //方法一 
            let a = [1,2,3,4,5];
            for(let i in a){
            console.log(a[i]);
            }
            //方法二
            for(let e of a){
            console.log(e);
            }
            //方法三
            for(let i = 0; i < a.length; i++) {
            console.log(a[i]);
            }
            //方法四
            a.forEach((e)=>{
            console.log(e);
            });
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12
            • 13
            • 14
            • 15
            • 16
            • 17
            • 1
            • 2
            • 3
            • 4
            • 5
            • 6
            • 7
            • 8
            • 9
            • 10
            • 11
            • 12
            • 13
            • 14
            • 15
            • 16
            • 17

            四個執行結果是一樣的.

            判斷是否為數組

            let a = [1,2,3,45]; 
            let b = 1129;
            console.log(Array.isArray(a),Array.isArray(b));
            //顯示為true false
            • 1
            • 2
            • 3
            • 4
            • 1
            • 2
            • 3
            • 4

            將數組變成字符串

            數組的toString,toLocaleString會生成以逗號分隔的元素列表的字符串toString會調用每個元素的toString 而toLocalString則會調用每個元素的toLocalSetring方法. 
            join方法,則會以toString生成字符串,但是分隔符是參數中指定的,而不是默認的逗號

            let a=[1,2,3]; 
            let b = a.join("A");
            //結果b="1A2A3";
            let c = a.toString();
            //c='1,2,3'
            let d = a.toLocaleString();//d='1,2,3'
            • 1
            • 2
            • 3
            • 4
            • 1
            • 2
            • 3
            • 4

            基礎篇先到這里

            posted @ 2017-03-03 14:24 冬瓜 閱讀(1549) | 評論 (0)編輯 收藏

                 摘要: 因為有注冊到Embarcadero,所以還能常常收到Embarcadero郵件。告訴我現在是10.1.2版本了

            以前還申請過免費的序列號,但是就一直沒有用過。Delphi/C++Builder太大了,幾十個G,看到我弱小的C盤,

            只好放棄了,以前還會安裝2010版本的,有空拿來做一下工具,現在都好久沒有安裝了。

            好懷念當年的Turbo C!  閱讀全文
            posted @ 2017-02-28 10:31 冬瓜 閱讀(1590) | 評論 (0)編輯 收藏

                 摘要: cppblog人氣真不行了,目前只有我和eryar兩個人在發博!!!雖然暫時沒有搞C++了,但是其他人呢?各位來點人氣  閱讀全文
            posted @ 2017-02-27 19:44 冬瓜 閱讀(2049) | 評論 (2)編輯 收藏

                 摘要: 注:關于node-heapdump請看 使用node heapdump

            基于appium源碼 1.6.3 運行,發現運行一段時間后,會出現內存溢出.
            用node-heapdump生成heap快照 發現多了很多字符串對象:內容如下  閱讀全文
            posted @ 2017-02-23 20:35 冬瓜 閱讀(2046) | 評論 (0)編輯 收藏

                 摘要: 在使用appium的過程中,發現有內存泄露,最后就process out of memory了,就掛了
            網上用使用增加運行內存的方式(還是抗不住),沒辦法,就只好找出內存泄露的地方了
            對node.js很多文章,都是說用memwatch,結果發現,這個是一個死項目,有四年沒有更新過了,在現有的環境下,是沒有辦法編譯的。
            然后又有一個memwatch-next,顧名思義,就是memwatch的下一個版本,結果是果然也可以編譯,一些事件也支持,但是要headdump后要end后,就掛了。
            國內,用百度,你一萬年都別想解決問題,估計找成人不宜的東西,百度世界第一名,google也不比過百度。  閱讀全文
            posted @ 2017-02-23 14:28 冬瓜 閱讀(2525) | 評論 (0)編輯 收藏

                 摘要: 這里是基于node的xmldom上擴展的工具,在使用appium的時候,常常需要用source功能來分析當前上下文,所以擴展了若干函數,用于分析。這些代碼是基于node 6.9.x JavaScript ES6語法實現。(關于如何在node使用ES6的語法,請參考我的前文:js筆記四:node 6.9.x for gulp完整配置過程)完成代碼如下:xml_utils.jsCo...  閱讀全文
            posted @ 2017-02-20 14:31 冬瓜 閱讀(1328) | 評論 (0)編輯 收藏

                 摘要: 在node下,需要常常用目錄的多級操作,所以用博客做一個記錄  閱讀全文
            posted @ 2017-02-14 15:09 冬瓜 閱讀(2612) | 評論 (0)編輯 收藏

                 摘要: 這世界上已經有很多開發工具了。現在基于node.js上開發,對了了一下:visual studio 2015+ntvs ,webStorm,Atom,Sublime,editplus,notepad++和vscode,最終選擇了vscode。
            vs2015太大了,不是跨平臺,ntvs這個插件對node.js和js支持還不夠好。
            webStorm也是一個非常不錯的,相對vscode,還是有點大,重點它是收費的。  閱讀全文
            posted @ 2017-02-10 14:50 冬瓜 閱讀(2676) | 評論 (0)編輯 收藏

            僅列出標題
            共17頁: 1 2 3 4 5 6 7 8 9 Last 
            国产精品久久久久久久app| 久久综合给合久久狠狠狠97色| 欧美亚洲国产精品久久蜜芽| 久久久久亚洲AV成人网| 国内精品综合久久久40p| 精品久久久久久中文字幕| 午夜精品久久久内射近拍高清| 18岁日韩内射颜射午夜久久成人| 久久精品国产免费| 久久永久免费人妻精品下载| 久久久精品视频免费观看| 久久精品中文字幕无码绿巨人| 精品水蜜桃久久久久久久| 久久99国产精品久久久| 亚洲午夜久久久影院伊人| 久久精品亚洲乱码伦伦中文 | 欧美久久久久久午夜精品| 国产精品久久久亚洲| 狠狠色噜噜色狠狠狠综合久久| 国产精品热久久毛片| 99精品国产在热久久无毒不卡 | 久久妇女高潮几次MBA| 久久精品国产只有精品66| 欧美亚洲另类久久综合| 国产亚洲综合久久系列| 国产成人无码久久久精品一| 亚洲AV无码久久| 伊人久久精品无码av一区| 久久午夜无码鲁丝片秋霞| 欧美久久一级内射wwwwww.| 欧美麻豆久久久久久中文| 午夜精品久久久久成人| 亚洲AV伊人久久青青草原| 久久这里只有精品视频99| 热久久视久久精品18| 漂亮人妻被中出中文字幕久久| 少妇久久久久久被弄到高潮| 亚洲日韩欧美一区久久久久我| 九九精品久久久久久噜噜| 亚洲精品白浆高清久久久久久| 久久精品人人槡人妻人人玩AV|