视频加载失败

ES6对象字面量的增强与函数参数默认值

808 字
4 分钟
ES6对象字面量的增强与函数参数默认值

对象字面量的增强#

属性和方法的简洁表示法#

对象字面量是什么

在 JavaScript 中用一对 {} 直接创建对象的一种写法

//这整段 { name: "Alice", age: 20 } 就叫 对象字面量。
//直接写出来就代表一个值,而不是通过 new 或函数生成
const obj = {
name: "Alice",
age: 20
};
//构造方式(不是字面量)
const obj = new Object();
obj.name = "Alice";

属性的简洁表示法

当 变量名 = 属性名 时,可以直接写变量名。

//标准
const name = "Alice";
const age = 20;
const obj = {
name: name,
age: age
};
//简洁
const name = "Alice";
const age = 20;
const obj = {
name,
age
};

方法的简洁表示法

在对象里定义函数时,可以省略 function 关键字和冒号 :。

//传统
const obj = {
say: function () {
console.log("Hello");
}
};
//简洁
const obj = {
say() {
console.log("Hello");
}
};

方括号语法#

方括号语法是 JavaScript 对象字面量里的一种写法,用来动态决定对象的属性名。

基本用法:

//传统
const obj = {
name: "Alice"
};
console.log(obj.name); // Alice
//方括号语法
const key = "name1";
const obj = {
[key]: "Alice"
};
console.log(obj.name1); // Alice

方括号语法可以放什么

//方括号里不只是变量,还可以是表达式,只要能求值:
const obj = {
["user" + "Name"]: "Alice"
};
console.log(obj.userName); // Alice

函数参数默认值#

函数参数的默认值是什么#

**函数参数的默认值(Default Parameters)**是 ES6 提供的语法,用来给函数的参数设置“默认值”。简单说:如果调用函数时没传这个参数,就用默认值

基本语法

function greet(name = "Guest") {
console.log("Hello " + name);
}
greet(); // Hello Guest
greet("Alice"); // Hello Alice

多个参数

function add(a = 1, b = 2) {
return a + b;
}
add(); // 3
add(5); // 7
add(5, 10); // 15

函数参数默认值的注意事项#

只在“undefined”时生效

function test(x = 10) {
console.log(x);
}
test(undefined); // 10
test(null); // null ❗不会用默认值

默认值可以是表达式

function getTime(time = Date.now()) {
return time;
}
function random(num = Math.random()) {
return num;
}
//每次调用都会重新计算

默认值可以依赖其他参数

function sum(a = 1, b = a + 1) {
return a + b;
}
sum(); // 1 + 2 = 3

开发小技巧:默认值最好从右边开始设置

//左边设置
const add {x=1,y} => x+y;
add(undefined,5)//6
//右边设置
const add {x,y=1} => x+y;
add(5)//6

函数参数默认值的应用#

//接受多个参数
// const logUser = (username = '张三', age = 0, sex = 'male') => {
// console.log(username, age, sex);
// };
// logUser('Alex', 18, 'male');
// logUser();
//接受一个对象
// const logUser = (options) => {
// console.log(options.username, options.age, options.sex);
// };
// logUser({ username: '张三', age: 0, sex: 'male' });
//接受一个对象,用解构赋值
// const logUser = ({ username, age, sex }) => {
// console.log(username, age, sex);
// };
// logUser({ username: '张三', age: 0, sex: 'male' });
//接受一个对象,用解构赋值,用默认值,如果什么都不传,有问题,不传是undefined,undefined不能解构赋值
// const logUser = ({ username = '默认名字', age = 0, sex = '未知' }) => {
// console.log(username, age, sex);
// };
// logUser({ username: '张三', age: 0 });
//
const logUser = ({ username = '默认名字', age = 0, sex = '未知' } = {}) => {
console.log(username, age, sex);
};
logUser();

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

ES6对象字面量的增强与函数参数默认值
https://f.youzi177.cn/posts/2026102105es6-dui-xiang-zi-mian-liang-de-zeng-qiang-yu-han-shu-can-shu-mo-ren-zhi/
作者
小封鸭
发布于
2026-10-21
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
小封鸭
小楼一夜听春雨,深巷明朝卖杏花
公告
欢迎来到我的博客。这里主要记录前端全栈和日常内容
分类
标签
最新动态
站点统计
文章
60
分类
3
标签
12
总字数
107,734
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
EdgeOne Pages
博客版本
Firefly v6.16.8
文章许可
CC BY-NC-SA 4.0
文章目录