标签:定义函数 lan 引入 问题 函数变量 window 意思 3.3 3.1
function abs(x) {if (x >= 0) {return x;} else {return -x;}}
var abs = function (x) {if (x >= 0) {return x;} else {return -x;}};
//比定义的参数多abs(10, ‘blablabla‘); // 返回10abs(-9, ‘haha‘, ‘hehe‘, null); // 返回9//比定义的参数少abs(); // 返回NaN --> 此时abs(x)函数的参数x将收到undefined,计算结果为NaN
// foo(a[, b], c)// 接收2~3个参数,b是可选参数,如果只传2个参数,b默认为null:function foo(a, b, c) {if (arguments.length === 2) {// 实际拿到的参数是a和b,c为undefinedc = b; // 把b赋给cb = null; // b变为默认值}// ...//要把中间的参数b变为“可选”参数,就只能通过arguments判断,然后重新调整参数并赋值}
function foo(a, b) {var i, rest = [];if (arguments.length > 2) {for (i = 2; i<arguments.length; i++) {rest.push(arguments[i]);}}console.log(‘a = ‘ + a);console.log(‘b = ‘ + b);console.log(rest);}
function foo(a, b, ...rest) {console.log(‘a = ‘ + a);console.log(‘b = ‘ + b);console.log(rest);}foo(1, 2, 3, 4, 5);// 结果:// a = 1// b = 2// Array [ 3, 4, 5 ]foo(1);// 结果:// a = 1// b = undefined// Array []//如果传入的参数连正常定义的参数都没填满,也不要紧,rest参数会接收一个空数组(注意不是undefined)
//用rest参数编写一个sum()函数,接收任意个参数并返回它们的和‘use strict‘;function sum(...rest) {var result = 0;for(var value of rest){result += value;};return result;}// 测试:var i, args = [];for (i=1; i<=100; i++) {args.push(i);}if (sum() !== 0) {alert(‘测试失败: sum() = ‘ + sum());} else if (sum(1) !== 1) {alert(‘测试失败: sum(1) = ‘ + sum(1));} else if (sum(2, 3) !== 5) {alert(‘测试失败: sum(2, 3) = ‘ + sum(2, 3));} else if (sum.apply(null, args) !== 5050) {alert(‘测试失败: sum(1, 2, 3, ..., 100) = ‘ + sum.apply(null, args));} else {alert(‘测试通过!‘);}
//定义一个计算圆面积的函数area_of_circle(),它有两个参数:r: 表示圆的半径;pi: 表示π的值,如果不传,则默认3.14‘use strict‘;function area_of_circle(r, pi) {var temp = 3.14;if(arguments.length > 1){temp = pi;}return temp*r*r;}// 测试:if (area_of_circle(2) === 12.56 && area_of_circle(2, 3.1416) === 12.5664) {alert(‘测试通过‘);} else {alert(‘测试失败‘);}//网友答约:pi=pi?pi:3.14; return pi*r*r;
‘use strict‘;function foo() {var x = ‘Hello, ‘ + y;alert(x);var y = ‘Bob‘;}foo();
function foo() {var y; // 提升变量y的申明var x = ‘Hello, ‘ + y;alert(x);y = ‘Bob‘;}
// 唯一的全局变量MYAPP:var MYAPP = {};// 其他变量:MYAPP.name = ‘myapp‘;MYAPP.version = 1.0;// 其他函数:MYAPP.foo = function () {return ‘foo‘;};//把自己的代码全部放入唯一的名字空间MYAPP中,会大大减少全局变量冲突的可能
‘use strict‘;function foo() {for (var i=0; i<100; i++) {//}i += 100; // 仍然可以引用变量i}
‘use strict‘;function foo() {var sum = 0;for (let i=0; i<100; i++) {sum += i;}i += 1; // SyntaxError}
标签:定义函数 lan 引入 问题 函数变量 window 意思 3.3 3.1
原文地址:http://www.cnblogs.com/deng-cc/p/6607906.html