TypeScript学习(三):变量定义,运算符,语句,函数

 //1.变量定义,var和let的区别

 var t1="";

 var t1="123"

 let t2=123;

 //let t2=456;//区别1.let重复声明会报错,var则不会,所以建议一般用let来声明变量,免得覆盖了前值

//在html文档中,存在window对象时,此时this指向window对象

console.log(this.t1); // 123

//console.log(this.t2); // 区别2.let声明的变量不会在全局对象里面创建属性,输出:undefined

//2.变量声明

var global_num = 12;          // 全局变量 或使用let

class Numbers {

   num_val = 13;             // 实例变量

   static sval = 10;         // 静态变量

   

   storeNum():void {

      var local_num = 14;    // 局部变量

   }

}

console.log("全局变量为: "+global_num)  

console.log(Numbers.sval)   // 静态变量

var obj = new Numbers();

console.log("实例变量: "+obj.num_val);

//3.运算符

//3.1 算术运算符 加+ 减- 乘* 除/ 自增++ 自减-- 取模%

let a:number=200,b:number=100;

console.log(a+b);

console.log(a-b);

console.log(a*b);

console.log(a/b);

a++;

console.log(a);

a--;

console.log(a);

console.log(a%b);

/**

 * 结果

 * 300

 * 100

 * 20000

 * 2

 * 201

 * 200

 * 0

 */

//3.2 关系运算符 等于== ,不等于!=, 大于>, 小于< ,大于等于>=, 小于等于<=

var num1:number = 5;

var num2:number = 9;

console.log("num1 的值为: "+num1);

console.log("num2 的值为:"+num2);

var res = num1>num2

console.log("num1 大于n num2: "+res)

res = num1<num2

console.log("num1 小于 num2: "+res)  

res = num1>=num2

console.log("num1 大于或等于  num2: "+res)

res = num1<=num2

console.log("num1 小于或等于 num2: "+res)  

res = num1==num2

console.log("num1 等于 num2: "+res)  

res = num1!=num2  

console.log("num1 不等于 num2: "+res)

/**

 * 结果

 * num1 的值为: 5

   num2 的值为:9

   num1 大于n num2: false

   num1 小于 num2: true

   num1 大于或等于  num2: false

   num1 小于或等于 num2: true

   num1 等于 num2: false

   num1 不等于 num2: true

 *

 *

 */

//3.3 逻辑运算符 与&& 或|| 非!

var avg:number = 20;

var percentage:number = 90;

console.log("avg 值为: "+avg+" ,percentage 值为: "+percentage);

   

var res:boolean = ((avg>50)&&(percentage>80));

console.log("(avg>50)&&(percentage>80): ",res);

var res:boolean = ((avg>50)||(percentage>80));

console.log("(avg>50)||(percentage>80): ",res);

var res:boolean=!((avg>50)&&(percentage>80));

console.log("!((avg>50)&&(percentage>80)): ",res);

/**

 * 结果

 * avg 值为: 20 ,percentage 值为: 90

 * (avg>50)&&(percentage>80):  false

 * (avg>50)||(percentage>80):  true

 * !((avg>50)&&(percentage>80)):  true

 */

//3.4 二进制,位运算符 按位与&, 或|, 非~, 异或^,左移<<,右移>>,无符号右移>>>

var c:number = 2;   // 二进制 10

var d:number = 3;   // 二进制 11

   

var result;

       

result = (c & d);    

console.log("(c & d) => ",result)

           

result = (c | d);          

console.log("(c | d) => ",result)  

       

result = (c ^ d);  

console.log("(c ^ d) => ",result);

   

result = (~d);

console.log("(~d) => ",result);

result = (c << d);

console.log("(c << d) => ",result);

result = (c >> d);

console.log("(c >> d) => ",result);

result = (c >>> 1);

console.log("(c >>> 1) => ",result);

/**

 * 结果

  (c & d) =>  2

  (c | d) =>  3

  (c ^ d) =>  1

  (~d) =>  -4

  (c << d) =>  16

  (c >> d) =>  0

  (c >>> 1) =>  1

 */

  //3.5赋值运算符

  /**

   *  = (赋值),+= (先进行加运算后赋值),-= (先进行减运算后赋值),*= (先进行乘运算后赋值),/= (先进行除运算后赋值)

   * 类似的还有:<<=, >>=, >>>=, &=, |= 与 ^=

   *

   *  */

  var e:number = 12

  var f:number = 10  

   

  e = f

  console.log("e = f: "+e)

   

  e += f

  console.log("e+=f: "+e)

   

  e -= f

  console.log("e-=f: "+e)

   

  e *= f

  console.log("e*=f: "+e)

   

  e /= f

  console.log("e/=f: "+e)    

   

  e %= f

  console.log("e%=f: "+e)

  /**

   * 结果

   * e = f: 10

     e+=f: 20

     e-=f: 10

     e*=f: 100

     e/=f: 10

     e%=f: 0

   */

//3.6 三元运算符 ? :

var num:number = -2

var result1 = num > 0 ? "大于 0" : "小于 0,或等于 0"

console.log(result1)

//结果:小于 0,或等于 0

//3.7 类型运算符typeof 返回数据的类型,instanceof 运算符用于判断对象是否为指定的类型

var num = 12 ;//这是js的写法,ts需要指定类型,ts兼容js语法

console.log(typeof num);  

//输出结果: number

class Person{

   constructor(public name:string,public age:number){};

}

const p=new Person("jacky",18);

console.log(p instanceof Person);  

//输出结果: true

//3.8其他运算符 -表示取负,+字符串相连

var x = 1;

var y = -x;

console.log("x 值为: ", x); // 输出结果 1

console.log("y 值为: ", y); // 输出结果 -1

var msg:string = "good"+"job"

console.log(msg);//输出goodjob

//4.语句

//4.1条件语句 if,if else, if else if else,switch

var  num:number = 5

if (num > 0) {

   console.log("数字是正数")

}

//输出结果:数字是正数

var num:number = 12;

if (num % 2==0) {

    console.log("偶数");

} else {

    console.log("奇数");

}

//输出结果:偶数

var num:number = 2

if(num > 0) {

    console.log(num+" 是正数")

} else if(num < 0) {

    console.log(num+" 是负数")

} else {

    console.log(num+" 不是正数也不是负数")

}

//输出结果:2是正数

var grade:string = "A";

switch(grade) {

    case "A": {

        console.log("优");

        break;

    }

    case "B": {

        console.log("良");

        break;

    }

    case "C": {

        console.log("及格");

        break;    

    }

    case "D": {

        console.log("不及格");

        break;

    }  

    default: {

        console.log("非法输入");

        break;              

    }

}

//输出结果:优

//4.2 循环语句 for,fo...in,for...of,forEach,every,while,do  while

//for 计算4的阶乘

var num:number = 4;

var i:number;

var factorial = 1;

for(i = num;i>=1;i--) {

   factorial *= i;

}

console.log(factorial)

//输出结果:24

//for in 循环数组

var j:any;

var n:any = "a b c"

for(j in n) {

    console.log(n[j])  

}

//for of循环

let someArray = [1, "string", false];

for (let entry of someArray) {

    console.log(entry); // 1, "string", false

}

//forEach循环

let list = [4, 5, 6];

list.forEach((val, idx, array) => {

    // val: 当前值

    // idx:当前index

    // array: Array

    console.log("idx="+idx+",val="+val+",array="+array);

});

/**

 * 运行结果:

 * idx=0,val=4,array=4,5,6

   idx=1,val=5,array=4,5,6

   idx=2,val=6,array=4,5,6

 */

//every循环

let list1 = [4, 5, 6];

list1.every((val, idx, array) => {

    // val: 当前值

    // idx:当前index

    // array: Array

    console.log("every,idx="+idx+",val="+val+",array="+array);

    return true; // Continues

    // Return false will quit the iteration

});

//运行结果同上

var num = 4;

var factorial = 1;

while (num >= 1) {

    factorial = factorial * num;

    num--;

}

console.log("4的阶乘为:" + factorial);

//运行结果:4的阶乘为:24

//do while循环

var n1:number = 10;

do {

    console.log(n1);

    n1--;

} while(n1>=0);

//break 退出当前循环体

var i:number = 1

while(i<=10) {

    if (i % 5 == 0) {  

        console.log ("在 1~10 之间第一个被 5 整除的数为 : "+i)

        break;     // 找到一个后退出循环

    }

    i++

}  // 输出 5 然后程序执行结束

//continue 继续当前循环,continue以下语句不被执行

var num:number = 0

var count:number = 0;

for(num=0;num<=20;num++) {

    if (num % 2==0) {

        continue

    }

    count++

}

console.log ("0 ~20 之间的奇数个数为: "+count)    //输出10个奇数

//无限循环

for(;;) {

   console.log("这段代码会不停的执行")

}

while(true) {

   console.log("这段代码会不停的执行")

}

//5.函数定义function

function test(p1:string,p2:number):number {  

   // 函数定义

   console.log("调用函数")

   return 123;

}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值