【学习任务】利用数组的解构赋值,实现三个变量值的交换
我要参与
【学习任务】利用数组的解构赋值,实现三个变量值的交换
学习任务 739
等57人参与
来源: 第23周 / Python全能工程师

我们学习了数组的解构赋值,小伙伴们编写代码来实现一下三个变量值的交换吧

任务要求如下:
1、声明三个变量,分别为x=10, y=20, z=30
2、实现这三个变量的交换,得到的结果为x=30,y=10, z=20
3、输出交换之后的x、y、z的值

实现效果如下:
图片描述

去发布

登录后即可发布作业,立即

我的作业

全部作业 57

慕雪6704168

在 JavaScript 中,var和let都是用于声明变量的关键字,它们有以下区别:
作用域
var:具有函数作用域。即声明的变量在整个函数内都可访问 ,即便在函数内的块级结构(如if语句块、for循环块)中声明,在块外也能访问。例如:
javascript
function test() {
if (true) {
var a = 10;
}
console.log(a); // 10,在if块外仍能访问
}
test();

let:具有块级作用域。声明的变量仅在其所在的块级结构(由{}包裹,如if块、for循环块)内有效,块外无法访问。例如:
javascript
function test() {
if (true) {
let b = 20;
}
console.log(b); // ReferenceError: b is not defined,在if块外无法访问
}
test();
变量提升
var:存在变量提升现象。在代码执行前,var声明的变量会被提升到其作用域顶部,但初始化(赋值)不会提升。所以可以在声明前使用该变量,不过值是undefined。例如:
javascript
console.log©; // undefined
var c = 30;
上述代码实际执行顺序相当于:
javascript
var c;
console.log©;
c = 30;
let:不存在变量提升。在声明变量之前使用它会报错,因为let声明的变量在声明位置才会被初始化,在声明之前处于 “暂时性死区”。例如:
javascript
console.log(d); // ReferenceError: Cannot access ‘d’ before initialization
let d = 40;
重复声明
var:在同一作用域内允许重复声明变量。后面声明的会覆盖前面的声明。例如:
javascript
var e = 50;
var e = 60; // 不会报错,e的值为60
let:在同一作用域内不允许重复声明变量。否则会抛出语法错误。例如:
javascript
let f = 70;
let f = 80; // SyntaxError: Identifier ‘f’ has already been declared
全局对象属性
var :在全局作用域中使用var声明的变量会成为全局对象(浏览器环境下是window对象 ,Node.js 环境下是global对象)的属性。例如在浏览器环境中:
javascript
var g = 90;
console.log(window.g); // 90
let :在全局作用域中用let声明的变量不会成为全局对象的属性。例如:
javascript
let h = 100;
console.log(window.h); // undefined
通常更推荐使用let声明变量,因为它能更好地控制作用域,减少变量意外污染全局作用域或被重复声明等问题,让代码更易理解和维护 。 不过在一些需要考虑兼容性,或者利用变量提升特性的场景下,可能还会用到var 。

提交于  2025-04-08 16:49:55
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师