当前位置: 首页>后端>正文

Harmony学习(一)TS学习1

前情:华为手机在nxet版本中将剥离AOSP,无法使用Android app,作为Android开发为鸿蒙手机app开发做准备。

TypeScript学习

1.基础类型

1.1 boolean类型
let check:boolean=false;
1.2 number类型
let size:number=6;
1.2 string类型
let name:string='Mr.Li'
let age:string="12"
1.4 array类型
let list:number[]=[1,2,3]
let list2:Array<number>=[1,2,3]
1.5 元组类型
let t:[]=[string,number];
x=['this is a string',1]//fine
x=['string','文字‘]//error

获取元组数据

let msg =x[0]//根据下标获取对应值
1.6 enum类型
enum Enum{
   RED,YELLOW,BLUE//默认编号从0开始
}
1.7 any类型
let data1:any='this is a string';
let dataAny:any=1;
let dataObject:object=1;
//any和object区别:any可以使用对应类型方法,object不可以调用对应类型方法
1.8 Void类型
let unusabe:void=undefine

2.变量声明

2.1 var,let和const

var 变量提升机制

我们在全局作用域中或还是在局部作用域中,使用var关键字声明的变量,都会被提升到该作用域的最顶部,这就是我们常说的变量提升。

function car(color){
if(color){
var value='白色'
}else{
console.log(value)//undefined
}
console.log(value)//undefined
}
car(false)

上面example中,if代码块中的var声明的变量就被提升到了函数的顶端,有的小伙伴就会疑惑了,if代码块里的都没执行,怎么会提升到顶端了呢?,这是因为javaScript引擎,在代码预编译时,javaScript引擎会自动将所有代码里面的var关键字声明的语句都会提升到当前作用域的顶端, 因此上面的代码就会被解析为下面。

[图片上传失败...(image-5146c0-1701239840143)]

function car(color){
  var value;
  if(color){
    value='白色'
  }else{
    console.log(value)//undefined
  }
    console.log(value)//undefined
  }
    car(false)
  • 只在当前函数下声明的变量有效
  • 在代码块和{ }括号之内有效

let声明

let声明和var声明用法是一样,都是定义变量,使用let声明的变量没有var那样的变量提升,let声明的变量只在当前作用域中有效。我们来把上面的example重写一下。

function car(color){
if(color){
let value='白色'
}else{
console.log(value)//error
}
console.log(value)//error
}
car(false)

禁止重复声明

如果在同一个作用域中某个变量已经存在,再次使用let关键字声明的话会报错。

var value='aaa'
let value='bbb'//error

 在不同作用域

var value='aaa'//全局
if(true){
let value='bbb'//代码块中无影响
}

上面example中,可以完全看到,只有在相同作用域中重复声明变量才会报错。

const声明
ECMAscript6中还提供了const关键字声明,const声明指的是常量,常量就是一旦定义完就不能修改的值。还有一点需要注意的是,常量定义必须初始化值,如果不初始化值就会报错。


https://www.xamrdz.com/backend/37h1945768.html

相关文章: