// 传统模式
function fn1(num){
var num = num || 200;
return num;
}
// fn1这样有一个弊端当num = 0时,返回值为200
// 解决方法
function fn2(num){
var num = num === undefined ? 200 : num;
return num;
}
// ES6完美解决
function fn3(num = 200){
return num;
}
语法:直接在参数后面赋值:function(num = 2){}
-
方法被调用时,如果没有给参数赋值,就为默认值
-
方法被调用时,如果有给参数赋值,就为新赋值的值
回到顶部 目录
function foo() {}
foo.name // “foo”
(new Function).name // “anonymous”
(function(){}).bind({}).name // "bound "
回到顶部 目录
rest运算符的格式为:(…变量名)
rest在英文中意思代表剩余的意思
function fn (fister, second, …arg){
console.log(arg.length);
}
fn(1,2,3,4,5,6,7,8) // 6
由代码可得出,rest参数就是代表剩余参数的集合
参数的书写方式(建议)
-
确定的参数
-
默认值参数
-
rest参数
回到顶部 目录
扩展运算符的格式为:(…)
它就好比rest参数的逆运算(rest参数是将多个值存放到一个参数变量里面,而扩展运算符是将一个数组展开)
const a = [1,2,3,4,5];
// 扩展运算符的格式为:(…)
const b = […a];
console.log(b) // [1,2,3,4,5]
console.log(b == a) // false
console.log(b === a) // false
-
扩展运算符:和arguments差不多,但是arguments是类数组,并且arguments在严格模式中就没有效果了(所以以后就用…代替arguments)
-
扩展运算符后面还可以放置表达式
...(x > 0 ? ['a'] : [])
-
扩展运算符后面是一个空数组,则不产生任何效果
[...[], 1] 就等于 [1]
-
只有函数调用时,扩展运算符才可以放在圆括号中,否则会报错
扩展运算符带来的用途
function fn(a, b, c){}
let args = [0,1,2];
fn.apply(null, args); // ES5
fn(…args); // ES6
// 求数组最小值
Math.min.apply(null, [21, 3, 4]); // ES5
Math.min(…[21, 3, 4]); // ES6
// push函数
let arr1 = [1,2,3];
let arr2 = [4,5,6];
Array.prototype.push.apply(arr1,arr2); // ES5
arr1.push(…arr2); // ES6
const a1 = [1,2,3];
const a2 = a1; // 浅克隆改变a2的值,a1也会改变
const a3 = a1.concat(); // ES5
const a4 = […a1]; // ES6
-
合并数组
-
与解构赋值结合
-
字符串:将字符串转换为真正的数组
[...'aaaa']
回到顶部 目录
是指某个函数的最后一步是调用另一个函数(通过return关键字调用方法)。
function f (x){
return g(x);
}
上面代码中,函数f的最后一步是调用函数g,这就叫尾调用。
尾调用不一定出现在函数尾部,只要是最后一步操作即可。
以下三种情况,都不属于尾调用
// 情况一
function f(x){
let y = g(x);
return y;
}
// 情况二
function f(x){
return g(x) + 1;
}
// 情况三
function f(x){
g(x);
}
回到顶部 目录
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
3-1715352357696)]
[外链图片转存中…(img-DGZjWRKA-1715352357696)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!