一.字符串:數組
一、多行字符串,使用雙撇號進行換行
`hello
hello`
二、字符串模板(引用變量)。
var a = 5
console.log(`${a}`);
三、自動拆分字符串(字符串模板調用方法test,自動將模板裏字符拆分爲第一個變量template,整個模板的表達式會被拆分紅一個數組,並將該數組當成實參傳入方法所用來接收的形參。
function test(template,name,age){
console.log(template);
console.log(name);
console.log(age);
}
var name = 'chen';
var getAge=function(){
return 18;
}
test`hello my name is ${name},i am ${getAge()}`,
二 ts參數 (可參考這個篇,較詳細->https://blog.csdn.net/qq_15701939/article/details/83934608)函數
var name:string = "chen"; var age:number = 20; var man:boolean = true; var title:any = "hello"; //自定義參數
class person{
name:string;
age:number;
}
person.name = "chen";
person.age = 21;
function test(name:string){} void js沒有空值的概念,在ts中,可用void表示沒有任何返回值的函數 function test(name:string):void{ } 用void聲明變量的時候,只能賦值爲undefined和null
let name:void = undefined;
function test(name:string):string{ return "" }
默認值
function test(name:string = "chen"):string{ console.log(name) }
test();
可選參數
function test(name?:string):string{ console.log(name) }
test();
三 rest和spread 操做符this
rest 可接收任意數量的參數
function fun1(...ages){
ages.forEach((arg){
console.log(arg)
})
}
var e = [1,2,3,4]
fun1(...e)
spread 傳遞固定數量的參數
function fun2(a,b,c){
ages.forEach((arg){
console.log(arg)
})
}
var e = [1,2.3]
fun2(...e);
四 generator函數spa
function* dosomething(){ console.log("start") yield; console.log("finish") } var a = dosomething(); a.next();
五 析構表達式.net
1.對象時取值
function test(){ return{ a:1, b:"hello" } } var {a,b} = test(); console.log(a); console.log(b);
從對象的對象裏取值
function test(){
return{
a:1,
b:{
aa:"hello
} } } var {a,b:{aa}} = test(); console.log(a); console.log(b);
2.數組裏取值
var arr1 = [1,2,3,4];
var [a,b]=arr1;
console.log(a);//1
console.log(b);//2
var [..a,b]=arr1;
console.log(a);//3
console.log(b);//4
var [a,b...c]=arr1;
console.log(a);//1
console.log(b);//2
console.log(c); //[3,4]
六 箭頭表達式rest
var a = (b,c) => b+c; var arr = [1,2,3,4]; console.log(arr.filter(value)=>value%2 == 0);
重要的:消除this指向
fuction a (name:string){
this.name= name;
setInterval((){
console.log("my name is " + this.name);
},1000)
}
var c = a("chen") //my name is chen;
七 forEach, for in for of code
var name =[1,2,3,4]; name.desc="four number"; name.forEach(value => console.log(value)) //不能被打斷,只能全遍歷
var name =[1,2,3,4]; name.desc="four number"; for(var a in name){ console.log(a) //打印的只是鍵,不是值 console.log(name(a)),這樣才能打印值 }
var name =[1,2,3,4]; name.desc="four number"; for(var a of name){ if(a > 3)break; //能夠用break打斷 console.log(a) //1,2,3 }