Function parameters
Default parameters(默认值)
function multiply(a, b = 1) {
return a * b;
}
multiply(5); // 5
Rest parameters
function multiply(multiplier, ...theArgs) {
return theArgs.map(x => multiplier * x);
}
var arr = multiply(2, 1, 2, 3);
console.log(arr); // [2, 4, 6]
变量作用域
1.var
和不带var
作用相同,都是在window
对象上添加属性
2.带var
的变量不可以删除,不带var
修饰的变量可以删除
var a = 123; // 全局变量
b = 456; // 全局变量
console.log(a); // 123
console.log(b); // 456
console.log(window.a); // 123
console.log(window.b); // 456
在局部中,var
是局部变量,函数加载时入栈,结束时出栈,不带var
是全局变量,还是在window
对象上添加属性
function fn() {
var a = 123;
b = 456;
console.log(a); // 123
console.log(b); // 456
console.log(window.a); // undefined
console.log(window.b); // 456
}
fn();
参数默认为 undefined
function myFunction(x, y) {
if (y === undefined) {
console.log("true");
}
}
参考:
https://www.w3school.com.cn/js/js_function_parameters.asp
arguments
arguments 对象包含函数调用时使用的参数数组。
function myFunction(x, y) {
for (i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
值传递引用传递
1.其余是值传递
2.object对象是引用传递
参考:
https://blog.csdn.net/qq_36476745/article/details/81745364