
批改状态:合格
老师批语:以后可能不会再用到var
let
/const
var
关键字回顾
var
是我们接触JavaScript学习的第一个变量定义关键字,使用var
定义存在以下几点问题:
var
存在变量声明提升(不管在哪里声明,均视为作用域顶部声明)var
污染全局(一旦声明,就成为window对象属性)var
可以重复定义,后面覆盖前面(项目中重复定义可能导致严重后果)var
在循环中使用的时候,循环体外依然可以使用var
在循环绑定事件过程中,变量无法保存,循环会在瞬间执行完let
关键字let
不存在变量声明提升(必须先声明再使用,否则会报错)let
为块作用域,不会污染全局(只在块作用域中有效)let
不可以重复定义(无论是var,let,还是const)let
在循环中使用的时候,循环体外不可使用let
为块级作用域,在循环绑定事件过程中let会在这个循环中生效,再次循环时let会重新定义生效const
关键字
const
用来声明只读变量: 常量(全部大写)
js中的解构,可以很方便的将对象中的属性赋值到某个变量中。(数组按索引排列,可以随便定义变量名)
let arr = ['peter','peter@php.cn',33,'男'];
let [userName,email,age,gender]=arr;
console.log(userName); //输出:peter
console.log(email); //输出:peter@php.cn
console.log(age); //输出:33
console.log(gender); //输出:男
let [userName,[email,age],gender]=['peter',['peter@php.cn',33],'男']
let arr = ['peter','peter@php.cn',33,'男'];
//更新邮箱地址
let [userName,email,age,gender]=[arr[0],arr[1]='peter@qq.com',arr[2],arr[3]]
let arr = ['peter','peter@php.cn',33];
//性别使用默认值:男
let [userName,email,age,gender='男']=arr;
对象解构,变量名必须与对象属性名称一致
let obj = {userName:"peter", email:"peter@php.cn", age:33, gender:"男"};
let {userName, email, age, gender} = obj;
console.log(userName); //输出:peter
console.log(email); //输出:peter@php.cn
console.log(age); //输出:33
console.log(gender); //输出:男
let user = {
userName: "peter",
email: "peter@php.cn",
other: {
age: 33,
gender: "男",
},
};
//对象的属性名必须与左边解析变量声明模板中的变量同名
let {userName,email,other: { age, gender }} = user;
console.log(userName); //输出:peter
console.log(email); //输出:peter@php.cn
console.log(age); //输出:33
console.log(gender); //输出:男
let userName = "peter";
let email = "peter@php.cn";
// 立即执行();
({userName,email} = {userName:'Peter Zhu',email:"peterzhu@php.cn"}) ;
console.log(userName); //输出:Peter Zhu
console.log(email); //输出:peterzhu@php.cn
2.2.4 :对象解构4(使用默认值)
let user = {
userName: "peter",
email: "peter@php.cn",
other: {
age: undefined, //未定义或使用undefined,解构时使用自定义值
gender: "男",
},
};
let {userName,email,other: { age='35' , gender}} = user;
console.log(userName); //输出:peter
console.log(email); //输出:peter@php.cn
console.log(age); //输出:35
console.log(gender); //输出:男
2.2.5 :对象解构5(别名)
let userName = 'peter zhu';
let user = {
userName: "peter",
email: "peter@php.cn",
other: {
age: undefined, //未定义或使用undefined,解构时使用自定义值
gender: "男",
},
};
// userName已经存在变量,使用别名userName:name
let {userName:name,email,other: { age='35' , gender}} = user;
console.log(name); //输出:peter(需要使用别名name访问)
console.log(email); //输出:peter@php.cn
console.log(age); //输出:35
console.log(gender); //输出:男
对var/let/const定义变量的区别进行了示例并理解;
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号