typeJavaScript筆記----字符串,參數,函數,表達式,循環

1、字符串新特性--雙丿(撇)號聲明字符串    、多行字符串        var myName = `fang                    my hao li                     jsk c sdf` //這樣不會報錯。    、字符串模板        console.log(`qsdaf ${myName}`)        console.log(`qsdaf ${myName()}`)//函數和變量能夠直接寫這裏面${}        console.log(`<div>                <span>${myName}</span>                </div>`)//這樣就能夠很快的寫出來,而不用加號鏈接;    、自動拆分符串        function test(a,b,c) {            console.log(a);            console.log(b);            console.log(c);        }        var myname = 'ni hao';        var getAge = function(){            return 18        }//下面的調用,a爲一個數組['hello my name is',',im','']; b爲'ni hao';c爲18;也就是說這樣會以變量爲分隔        test`hello my name is ${myname},im ${getAge()}`;2、   參數新特性        一、   參數類型--在參數名稱後面使用冒號來指定參數的類型                、any 能夠任何類型                    var myname: any = 18;                、string 字符串類型                    var myname: string = "zhang san"                、number 數字類型                    var my: number = 20                、boolean 布爾類型                    var name: boolean =true                function test (name:string):string {                    return ""                }//意思爲參數只能爲字符串,函數返回值也只能是字符串;                、自定義類型                    class person {                        name:string;                        age: number;                    }                    var zhangsan :Person = new Person()                        zhangsan.name = "zhailiang";                        zhangsan.age = 18        二、 參數默認值--在參數聲明後面用等號來指定參數的默認值                var my: string = "fang";                function test(a:string,b:string,c:string="wo"){                    console.log(a)                    console.log(b)                    console.log(c)                }                 test{'sfa','sss','asd'}//沒有給默認值時必須給3個參數否則會報錯;有默認值的參數能夠不寫(但必須寫在最後面)        三、可選參數--在方法的參數聲明後面用問號標明此參數爲可選參數                function test(a:string,b?:string,c:string="wo"){                    console.log(a);                    console.log(b);//爲b.length時會報錯                    console.log(c);                }            test{'sfa'} //這樣不會報錯,b爲undefined;還有一個注意的也像默認參數同樣,可選參數一定要寫在必寫參數的後面3、函數新特性        一、Rest and Spread操做符(...)--用來聲明任意量的方法參數            function func1(...args) {                    args.forEach(function(arg){                        console.log(arg);                    })            }            func1(1,2,3);func1(1,3,4,5,6)//正向用            function func2(a,b,c) {                console.log(a);                console.log(b);                console.log(c);            }            var args = [1,2],args1 = [5,6,7];            func1(...args);func1(...args1)//反向用        二、generater函數--控制函數的執行過程、手工暫停和恢復代碼執行            function* doSomething(){                console.log("start");                yield;                console.log("finish")            }            var fun1 =doSomething();            func1.next();//會在yield的地方中止            func1.next();         三、destructuring析構表達式--經過表達式將對象或數組拆解成任意數量的變量            function getStock(){             return {                 code:"IBM",                 price: {                     price1:100,                     price2:200                 }             }            }            var {code:codex,price:{price2}} = getStock();            console.log(codex);            console.log(price2)//從對象中拆解            var array = [1,2,3,4];            var[number1,number2] = array;            console.log(number1)//1            console.log(number2)//2            var[,,,number1,number2] = array;            console.log(number1)//3            console.log(number2)//4            var[number1,number2,...others] = array;            console.log(number1)//1            console.log(number2)//2            console.log(others)//[3,4]4、表達式和循環        一、箭頭表達式--用來聲明匿名函數,消除傳統匿名函數的this指針問題            var sun = (arg1,arg2) =>arg1+arg2//只有一行不用寫大括號,也不用寫return關鍵字            var sun =arg3 =>console.log(arg3)//只有一個參數時不用寫小括號            var myArray = [1,2,3,4,5,6];            console.log(myArray.filter(value =>value%2 == 0))            function gerStock(name:string){                this.name = name;                setInterval(()=> {                    console.log("name is:" + this.name);                },1000)            }            var stock = new getStock("IBM")//能夠看到打出來爲「name is: IBM」,消除了傳統匿名函數this指針問題,要是用ES5寫就拿不到IBM        二、forEach() ,for in 和 for of            var myArray = [1,2,3,4];            myArray.desc = 'four number';            myArray.forEach(value=>console.log(value))//會忽略掉它的屬性,而且不能夠被打斷            for (var n in myArray){                console.log(n)//打出的鍵值對的鍵和屬性 0,1,2,3,desc                console.log(myArray[n])//打出的每個值            }            for (var n of  myArray) {                if(n>2) break;                console.log(n)            }//和forEach差很少只是能夠被打斷用break ;集合,數組均可以用,也能夠用在字符串上,這時會把字符串的每個字符都打印出來
相關文章
相關標籤/搜索