运算符
1.赋值运算符 =
let a:number=9;
let bz1:string='可乐'
let bz2:string='雪碧'
let bz3:string=''
// 雪碧与可乐互换
bz3=bz1
bz1=bz2
bz2=bz3
console.log(bz1)
console.log(bz2)
console.log(bz3)
2.算术运算符 + - * / %取余,求模,取模
let num11:number=10;
let num12:number=3;
console.log(num11+num12);
console.log(num11-num12);
console.log(num11*num12);
console.log(num11/num12);
console.log(num11%num12);
// 123 1234 12345
let g1:number=123%10;
// parseInt 把字符串转换成整数
let s1:number=parseInt(`${123/10}`)%10;
let b1:number=parseInt(`${123/100}`);
console.log(`百位:${b1},十位${s1},个位${g1}`);
console.log(`倒数:${g1*100+s1*10+b1}`)
let g2:number=1234%10;
let s2:number=parseInt(`${1234/10}`)%10;
let b2:number=parseInt(`${1234/100}`)%10;
let q2:number=parseInt(`${1234/1000}`)
console.log(`千位:${q2},百位:${b2},十位${s2},个位${g2}`);
console.log(`倒数:${g2*1000+s2*100+b2*10+q2}`)
let g3:number=12345%10;
let s3:number=parseInt(`${12345/10}`)%10;
let b3:number=parseInt(`${12345/100}`)%10;
let q3:number=parseInt(`${12345/1000}`)%10
let w3:number=parseInt(`${12345/10000}`)
console.log(`万位:${w3},千位:${q3},百位:${b3},十位${s3},个位${g3}`);
console.log(`倒数:${g3*10000+s3*1000+b3*100+q3*10+w3}`)
3.比较运算符 > < >= <= == ===
let flag3=12>9;
let flag4=12<9;
let flag5=12>=12;
//
let num13:number=12;
let str1:string='12';
// == 不能比较不同类型
let flag6= num13==12;
console.log(flag6);
// 建议使用 === (全等于/绝对等于)
let flag7= 'num13'===str1
console.log(flag7);
4.三元运算
变量= 表达式1 ? 结果A:结果B
let day:number=30
let str2:string= day%2===0 ? "张正":"张晓雯"
console.log(str2);
// 大于等于18岁是成人,小于18未成年人
let age:number=18
let str3:string= age>=18 ? "成年人":"未成年人"
console.log(str3)
// 娃娃脸要去泰国(去/不去) 性别:男/女
let tg:string="不去"
let sex1:string= tg==="去" ? "男":"女"
console.log(sex1)
5.关系运算符 与或非
5.1 与 &&两个条件同时成立
let sex:string="女"
let isHuo:boolean=false
// 女的,活的
let flag8:boolean= sex==="女"&& isHuo;
console.log(flag8)
5.2 或 || 有一个成立,就成立
sex="男"
isHuo=true
flag8=sex==="女" || isHuo
console.log(flag8)
5.3非 相反的/不是
sex="女"
flag8= sex!=="男"
flag8= !(sex==="男")
6.++ – += -= *= /=
let a1:number=1;
// i++ 先赋值,后运算(第二次用到i,i的值加1)
a1++;//每次运行都+1
console.log(a1++);
// ++i 先运算,再赋值(直接+1)
a1=1;
++a1;
console.log(++a1);
console.log('----------------');
let a2:number=10
let a3= a2++ + a2++ + ++a2 + a2++;
// 10+11+13+13
console.log(a3);
// += a+=3 ---> a=a+3
let a4:number=10;
a4+=3;
console.log(a4);
7.位移运算
// 8 1000 2 10
console.log(15>>>2);
// 10 10000
let a5:number=2<<3
console.log(a5);
// 2^8
// let a6:number=2*2*2*2*2*2*2*2
let a6:number=2<<7
console.log(a6);
console.log(Math.pow(2,8));
变量的数据类型
1.数字类型 number
// 名称:数据类型=值
let age1:number=12;
// 16进制的数字需要在前边加上 0x
let num1:number=0x123ACD;
// 十进制,不需要额外符号,默认使用的就是十进制
let num2:number=13;
// 八进制 0o
let num3:number=0o7657;
// 二进制 0b
let num4:number=0b1001;
console.log(num1);
console.log(num2);
console.log(num3);
console.log(num4);
2.字符串 string
使用’'或者""或者 ``中的内容都是字符串
let name3='转账';
let name4="客家话";
// `` 特殊用法,可以代替字符串的拼接
let name5=`小马甲${num3}`;
console.log(name3)
// 可以使用+进行字符串的拼接
console.log("姓名:"+name4+"年龄:"+age1)
console.log(`姓名:${name4}年龄:${age1}`)
// 只要用引号引用,就变成字符串
let name6='123'
let name7='age1'
3.布尔值 boolean
boolean-> true 真 false 假 不能用0和1表示
let flag:boolean=true
let flag2:boolean=false
4. null 空 表示空值
let n1:null=null;
5.undefined
表示没有初始值
let n2;
let n3:undefined;
console.log(n2);
6.any 任何类型
let n4:any='123';
let n5:any=true;
let n6:any="终端";
7.枚举 enum 默认值从0开始
enum Sex{男,女};
console.log('------------------------');
console.log(Sex.女);
enum Stu{作者=9,小马甲=10,张晓雯=11}
console.log(Stu.小马甲);
// 枚举的值是数字类型
let aa:number=Stu.张晓雯;
常用方法
let a7:string='123';
let a8:number=123;
let a9:null=null;
let a10:undefined=undefined;
// 确认数据类型 typeof
console.log(typeof a7);
console.log(typeof a8);
// null类型为 object
console.log(typeof a9);
console.log(typeof a10);
// 数字转字符串
let str5:string=a8+"";
let string=`${a8}`
console.log(str5);
console.log(a8.toString);
// 包装类 Number
let aaa:String=new String(a8)
console.log(typeof aaa);
// let str5:string=a8.toString(2);//转换成二进制
// 字符串变成数字
let a12:number=Number('123.9')
// 小数转变成整数
console.log(a12);
let a13:number=parseInt(`${a12}`)
// 有几位小数的字符串
console.log(a12.toFixed(2));
// 转小数
console.log(parseFloat('123.999'))