TypeScript语法-- 1. 声明变量的3种方式

TypeScript 系列文章

可浏览博客主页的TypeScript专栏,会陆续添加相关文章,有问题或者可以优化的地方也希望大大门告知
共同进步 :)

在这里插入图片描述



TypeScript-声明

版本 Version 4.8.4


1. var,let,const

let和const是JavaScript里相对较新的变量声明方式。 像我们之前提到过的, let在很多方面与var是相似的,但是可以帮助大家避免在JavaScript里常见一些问题。 const是对let的一个增强,它能阻止对一个变量再次赋值。

// 一直以来我们都是通过var关键字定义JavaScript变量。
// 可以重复声明
var v = "var";
var v = "var";

// ES6新增了let声明,用来声明变量,用法类似与var,但是所声明的变量,只在let声明所在的代码块内有效。
let l = "let";
// 不可以重复声明
// let l="hello"; // vscode编辑器提示错误 Error

// const是对let的一个增强,它能阻止对一个变量再次赋值。
const c = "const";
// 不可以重复声明
// const c = "const"; // vscode编辑器提示错误 Error
// 不可重新赋值
// c="hello"; // vscode编辑器提示错误 Error

其中常见考题

// 常见考题之一 如何修改,获得01234567
for (var i = 0; i < 10; i++) {
  setTimeout(function () {
    // console.log(i);
  }, 100 * i);
}

// 方法一:IIFE立即执行函数
for (var i = 0; i < 10; i++) {
    // capture the current state of 'i'
    // by invoking a function with its current value
    (function(i) {
        setTimeout(function() { console.log(i); }, 100 * i);
    })(i);
}
// 方法二:使用let
for (let i = 0; i < 10; i++) {
  setTimeout(function () {
    // console.log(i);
  }, 100 * i);
}

2. 解构数组

直接看实例

let input = [1, 2];
// 这边限制了类型,报错了,可能写法不对~!!!  函数的话没问题
// let [first, second]: [number, number] = input; Error
let [first, second] = input;
console.log(first); // outputs 1
console.log(second); // outputs 2

// 快速交互值
[first, second] = [second, first];
console.log(first); // outputs 2
console.log(second); // outputs 1

// 作用于函数参数 这边函数参数就可以添加类型限制~~!!!
function f([first, second]: [number, number]) {
  console.log(first);
  console.log(second);
}
// 等同于???
function f2(first: number, second: number) {
  console.log(first);
  console.log(second);
}

// 变量数组里使用...剩余运算符 接收剩余变量
// 赋值数组里使用...扩展运算法 遍历数组
let [front, ...rest] = [1, 2, ...[3, 4]];
console.log("...rest中的...是剩余运算符");
console.log("...[3,4]中的...是扩展运算符");

console.log(front); // outputs 1
console.log(rest); // outputs [ 2, 3, 4 ]

let [front2] = [1, 2, 3, 4];
console.log(front2); // outputs 1

let [, second3, , fourth3] = [1, 2, 3, 4];
console.log("second3 => ",second3); // outputs 2
console.log("fourth3 => ",fourth3); // outputs 4

3. 解构对象

直接看实例

let o = {
  a: "foo",
  b: 12,
  c: "bar",
  d: 122,
};
// 这通过 o.a and o.b 创建了 a 和 b 。 注意,如果你不需要 c 你可以忽略它。
// 也可以用...剩余运算符 接收剩余变量
let { a, b, ...other } = o;
console.log(a);
console.log(b);
console.log(other);

// 对象结构 别名 主要看tempA ~
// 总共3个对象 第二个是干扰项,看不懂就去掉再看
// 第一个对象是变量对象,第二个对象是数据类型对象,第三个对象是赋值对象
// 其中 "333" 是第一个变量对象.aa的默认值
let { aa: tempA = "333" }: { aa: string } = {
  aa: "222",
};
console.log(tempA);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Penk是个码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值