1.在当前位置跳出函数,不再执行后面的内容
function fn(){
var x=1;
return;//在当前位置跳出函数,不再执行后面的内容
x++;
console.log(x);
}
fn();
不打印任何内容
2.返回一个数据
局部变量和参数当函数运行完成后会清除,所以如果想让函数外部用到值就需要return返回出去
function fn1(a,b){
var sum=a+b;
// 如果没有使用return返回数据,意味着返回了一个undefined
return sum;
}
var s=fn1(3,5);
console.log(s)//8
3.多分支条件语句的使用
写个1000以内任意数字变成中文
例如
24 "二十四";
20 "二十";
10 "十";
5 "五";
15 "十五";
104 "一百零四";
120 "一百二十";
125 "一百二十五";
115 '一百一十五';
var arr = ["零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"];
function enToCh(num, bool) {
if (num % 100 === 0) return arr[num / 100] + "百";
if (num > 100 && num % 10 === 0) return arr[parseInt(num / 100)] + "百" + arr[num / 10 % 10] + "十";
if (num === 0 || num === 10) return arr[num];
if (num < 10) return bool ? "零" + arr[num] : arr[num];
if (num < 20) return "十" + arr[num % 10];
if (num % 10 === 0) return arr[num / 10] + "十";
if (num < 100) return arr[parseInt(num / 10)] + "十" + arr[num % 10];
if (num % 100 < 10) return arr[parseInt(num / 100)] + "百零" + arr[num % 10];
return arr[parseInt(num / 100)] + "百" + arr[parseInt(num / 10) % 10] + "十" + arr[num % 10];
}
console.log(enToCh(300));
4.工厂模式的使用
function fn(a,b){
var obj={a:1,b:2};
obj.a+=a;
obj.b*=b;
return obj;
}
var o=fn(3,5);
var o1=fn(3,5);
console.log(o===o1);//false 局部变量和参数当函数运行完成一次后会清除
//所以o和o1的引用地址不同
5.单例模式的使用(只能创建一个)
var o;
function fn(a,b){
o=o || {};
o.a=a;
o.b=b;
return o;
}
var s=fn(3,5);
var s1=fn(4,6);
console.log(s);
console.log(s1);
console.log(s===s1);
打印结果如下:
6.通过参数传入对象
function fn(o){
o.a=10;
o.b=20;
return o;
}
var o=fn({});
console.log(o);
打印结果如下:
7.如果传入的是一个函数,返回的是回调函数的结果
function fn(f){
return f();
}
function fn1(){
return 10;
}
var num=fn(fn1);
console.log(num);//10
8.返回一个私密对象
function fn(){
var a=1;
function fn1(){
return a;
}
return fn1;
}
var a=fn()();
console.log(a);//1
9.返回一个函数体
function fn(a){
return function(b){
return a+b;
}
}
var sum= fn(5)(6);
console.log(sum);//11