AngularJs的常量、解构、函数及面向对象
一、变量的声明
var num:number = 234.56; var str:string ="字符串"; //字符串 var arrayObj1 = new Array([100,200.98,300.12,400 ]); //创建一个number数组并赋值 var arrayObj2 = new Array(["a","b","c","d"]); //创建一个字符串数组并赋值 var arr3:number[]=[11,22,33.33,44];//定义指定数据类型的数组 //枚举 enum colors {red,green,yellow,blue}; enum colorsAll {red=1,green=3,yellow=5,blue}; var color1= colors[2]; var col2:colorsAll = colorsAll.blue; //通过属性值找 :下标 var student:any[]=["张三丰",18,"男","武当山1号809室"]; var student2 =["张无忌",16,"男","武当山1号301室"]; //不声明是何类型时,默认是any类型 function test():void{ num++; console.log("num:"+ num); console.log("str:"+ str); console.log("arrayObj1:"+arrayObj1.toString()); console.log("arrayObj2:"+arrayObj2.toString()); console.log("arr3:" +arr3.toString()); console.log("color1:" + color1); console.log("根据colorsAll[6]给出下标找值:" + colorsAll[6]); console.log("根据colorsAll[6]给出值找下标:" + col2); console.log("any类型student:" + student[0]+"/"+ student[3]); console.log("无类型student2:" + student2[0]+"/"+ student2[3]); } test();
二、常量
const url = "www.igolden.com.cn"; //常量的声明
三、解构
//将数组或对象:解构 var arr2:number[]=[111,222,333]; var [one,two,dog] = arr2; function test():void { console.log("dog:" + dog); //dog=333 解构方法1 } test(); function test2([one,two,dog]=[111,222,333]):void { console.log("two:"+ two); //two=222 解构方法2,解构作为参数传递过去 } test2();
四、ts中的函数
以下函数,调用的方法、执行的结果:完全一样。
//1.命名函数 function testAdd(x:number,y:number):number{ let n:number = x + y; return n; } console.log("testAdd:"+ testAdd(3,5)); //testAdd:8 //2.匿名函数 var testadd2 = function (x:number,y:number):number { let n:number = x + y; return n; } 1.传入的参数,可以带默认值
function testAdd(x:number=1,y:number=1):number{ let n:number = x + y; return n; } console.log("testAdd:"+ testAdd(3,5)); //testAdd:8 console.log("testAdd:"+ testAdd()); //testAdd:22.参数个数可变
//数组传参,参数个数可变 function testMore(one:string,...arr:string[]):string{ let str:string = one +":"+ arr.join("-"); return str; } var str= testMore("张三","李四","王五"); console.log(str); //张三:李四-王五 var str= testMore("张三","李四","王五","monica"); console.log(str);//张三:李四-王五-monica
3.箭头函数lambads
作用:用来突破作用域。下例中,this可指向父元素。
var pepObj={ name:["jack","tom","mary","wood"], gName:function () { return ()=>{ return{ n:this.name[2] } } } }; var myFun = pepObj.gName(); console.log("myFun:"+ myFun().n);
4.函数重载
函数名必须相同,参数可不同,返回值可不同。
五、类定义
class person{ name:string; age:number; constructor(s:string,n:number){ //构造方法,初始化 this.name = s; this.age = n; } showInfo(){ return this.name+"的age等于"+this.age; } } var p = new person("Jack",28); console.log(p.showInfo()); //Jack的age等于28
六、Var和let
(function() { var varTest = 'test var OK.'; let letTest = 'test let OK.'; { var varTest = 'varTest changed.'; let letTest = 'letTest changed.'; } console.log(varTest); //输出"varTest changed.",内部"{}"中声明的varTest变量覆盖外部的letTest声明 console.log(letTest); //输出"test let OK.",内部"{}"中声明的letTest和外部的letTest不是同一个变量