1、循环
//(1)for in 测试也可以用break退出循环
var myArray=[1,2,3,4];
myArray.desc="my Arraay";
for(var n in myArray)
{
console.log(n);//打印结果是键
console.log(myArray[n]);//结果是对应键得值
}
//(2)forEach,没有办法中断循环,且会忽略属性desc
myArray.forEach(value => console.log(value);
//(3)for of 可以用break中途退出,可以将string字符单个拿出来
for(var n of myArray)
{
if(n>2)break;
console.log(n);//打印结果是键
}
2、类,继承,接口实现
interface IPerson
{
sex:string;
Seelp():void;
}
interface IStudent
{
Study():void;
}
class Person implements IPerson
{
constructor(public name:string,public sex)//这里相当于创建了name字段,第二需要实现接口属性
{
console.log( "调用了自定义构造函数");
}
Eat()
{
console.log(this.name+"吃了饭");//所以这里可以调用name属性
}
Seelp():void//实现接口
{
console.log("人需要睡觉");
}
}
export default class Student extends Person implements IStudent//extends继承,implements实现可用","分割实现多个
{
public age:number;//默认为public,C#默认private
constructor(name:string,sex:string,age:number)
{
super(name,sex);
this.age=age;
}
LookBook()
{
this.Eat();
console.log("看第一次书");
super.Eat();//这两种方法均可调用非私有方法
console.log("看第二次书");
}
Study():void
{
console.log("学生需要学习")
}
}
var ming:Student=new Student("XiaoMing","gg",15);
ming.LookBook();
var stus:Array<Student>;
stus[0]=new Student("xiaoHong","gg",14);
stus[1]=new Student("xiaoGang","mm",16)
3、模块(理解为单独每个不同得新脚本)
export导出,import导出
//上面学生类标记可以导出,假设他们再同名文件夹下
import Student from "./wq";//就将学生类导入该模块
//import { Student } from "./wq";//如果学生类没有加上default,就需要加个大括号
var stus=new Student("XG","GG",13);//即可调用不同模块得内容
4、./和…/以及/之间的区别?
(1)./是当前目录
(2)…/是父级目录
(3)/是根目录
5、类型定义文件(暂时没看)