Typescript入门__2__变量声明

119 阅读1分钟

1、var

1、声明的变量作用域只有全局作用域、函数作用域和eval函数作用域
2、存在变量定义提升,但是不存在赋值提升,所以有

console.log(a);// undefined
var a = 12;
console.log(a);//12

2、let

1、let声明变量存在块级作用域: for、if、try/catch等代码块(作用域)内部的变量在外面没法访问
2、不存在变量提升,提前使用变量会造成暂时性死区

s = 12;//illegal to use 's' before it is declared;
let s;

3、不能重复定义变量
s = 12; // 任何形式定义已存在
let s = 21; // error: interferes with parameter declaration

let s = 12;
var s = 21;//error: can't have both declarations of 'x'

 3、const

1、赋值后不能重新赋值(值类型放心使用,引用类型的要注意防止出错)

4、 解构

解构数组
1、普通赋值

let [x,y] = [1,2];
2、交换变量值

[x,y] = [y,x]
3、参数赋值

function f([x,y]:[number,number]){}
f([1,2])

4、剩余变量操作符...rest

let [x,y,...rest] = [4324,23,423,43,432,432,2];

 对象解构

1、普通赋值

let a = {x:12,y:34:z:56};
let {x,y} = a;
x;//12
y;//34
2、剩余变量

let a = {x:12,y:34:z:56};
let {x,...rest} = a;
rest;//{y:34,z:56};
3、属性重命名

没看懂>.<
4、默认值

let {x,y = 12} = a;
 

匿名函数

type C = { a: string, b?: number }
function f({ a, b }: C): void {    
// ...
}


展开

let x = [1,2];
let y = [3,4];
var z=  [...x,..y,5];//[1,2,3,4,5]