web前端全系列 教程
1839个小节阅读:2242.9k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
ES6 之前,不能直接为函数的参数指定默认值,只能采用变通的方法
xxxxxxxxxx
function log(info) {
info = info || 'World';
console.log(info);
}
log();
ES6 允许为函数的参数设置默认值,即直接写在参数定义的后面
xxxxxxxxxx
function log(info = 'world') {
console.log(info);
}
log();
除了简洁,ES6 的写法还有两个好处:首先,阅读代码的人,可以立刻意识到哪些参数是可以省略的
另外,一个容易忽略的地方是,参数默认值不是传值的,而是每次都重新计算默认值表达式的值。也就是说,参数默认值是惰性求值的。
xxxxxxxxxx
let x = 99;
function add(p = x + 1) {
console.log(p);
}
add() // 100
x = 100;
add() // 101
xxxxxxxxxx
function add(x = 1, y) {
console.log(x+y);
}
add(10) // NaN
指定了默认值以后,函数的length
属性,将返回没有指定默认值的参数个数。也就是说,指定了默认值后,length
属性将失真
xxxxxxxxxx
function fn1(x){}
console.log(fn1.length); // 1
function fn2(x=1){}
console.log(fn2.length); // 0
利用参数默认值,可以指定某一个参数不得省略,如果省略就抛出一个错误
xxxxxxxxxx
function missingParameter() {
throw new Error('Missing parameter');
}
function add(x = missingParameter()) {
console.log(x);
}
add() // Missing parameter
实时效果反馈
1. 下列代码运算结果是多少:
xxxxxxxxxx
function fn1(x,y=10) { }
console.log(fn1.length);
A 0
B 1
C 2
D 报错
答案
1=>B