https://blog.csdn.net/mirror_Mx/article/details/85112689
if(1 > 0){document.write('a');document.write('b');document.write('b');}if(2 > 0){document.write('a');document.write('b');document.write('b');}if(3 > 0){document.write('a');document.write('b');document.write('b');}
1、高内聚低耦合
//这一步封装组件,给后面的其他函数使用funtion test() {document.write('a');document.write('b');document.write('b');}//引入 test() 方法,不用重复造轮子,直接调用就可以,减少代码冗余if(1 > 0){test()}if(2 > 0){test()}if(3 > 0){test()}
2、定义不同的变量的值,可以进行计算输出
function test() {var a = 123;var b = 234;var c = a+b;document.write(c);}test();输出结果:357
3、抽象功能出来,进行解耦合
funtion test() {document.write('hello world');}test();
4、函数的定义、也是函数声明
//test 是一个变量名//funtion 是关键字,方法功能函数//函数和变量没有多大的区别,函数就是另一种类型的变量,他和数组和对象,都是引用//栈内存里面存地址//这是函数的一种定义形式funtion test() {}//变量名/函数名:驼峰写法//复合单词,必须第一个单词小写后面的每个单词开头大写//函数声明funtion theFirstName() {}document.write(theFirstName);
5、函数表达式
一般说函数表达式就是匿名函数表达式
//命名函数表达式//这个函数名是testvar test = funtion test() {document.write('a');}test();//匿名函数表达式;可以不写funtion 后面的函数名//这个函数名是demovar demo = funtion() {document.write('b');}test();//这个函数名是 abcvar test = funtion abc() {document.write('a');}test();//表达式忽略它的名字funtion test() {document.write('a');}
6、函数组合
//有关键字,函数名,(), {},还有参数funtion test() {document.write('a');}test();
7、参数
funtion test(a,b) {//括号里面的a,b 就相对于 定义了a,b(声明了2个变量); 没有值//var a;//var b;//声明了2个变量有何作用?通过传参形式赋值}test(1, 2);//test括号里面的值。1就会到a里面去,2就会到b里面去;//括号里面 a,b 为形参//括号里面 1,2 为实参funtion test(a,b) {document.write(a+b);}test(1, 2);//输出结果:3funtion sum(a,b) {var c = a + b;document.write(c);}sum(3, 4);//输出结果:7
8、不限制实参传入,如果形参多,则提示undefined
函数里面会通过 arguments 存储实参
//求 实参 长度funtion sum(a) {//arguments---[11,2,3]for(var i 0; i < arguments.length; i++) {console.log(arguments[i])}}//实际参数 -- 实参sum(11,2,3)//console.log 打印出结果:三个实参11,2 ,3//求 形参 长度funtion sum(a) {console.log(sum.length);}sum(11,2,3)//console.log 打印出结果:1


实参对应形参,才会映射
没有实参,有形参,是不会映射,就算你直接赋值也打印不出来值,输出的是undefined

输出的是: undefined
9、返回值 return,函数的结束条件+返回值;
//函数执行了 a ,就终止了。不会继续往下执行//这里叫return 终止函数funtion sum(a,b) {console.log('a');returnconsole.log('b');}sum(1)
//这里叫返回值函数funtion sum() {return 123;conlole.log('a')}var num = sum(); //这一步是定义一个num来存储返回值;直接写sum();不返回值。

结果: number 123
10、写一个函数,功能是告知你所选定的小动物的叫声。
function scream(animal) {switch(animal) {case "dog" :document.write('wang?');return;case "cat":document.write('miao');return;case "fish":document.write('oooooo');return;}}
11、写一个函数,实现加法计数器。
12、定义一组函数,输入数字,逆转并输出汉字形式。
function reverse() {var num = window.prompt('input');var str = "";for(var i = num.length - 1; i >= 0; i--) {str += transfer(num[i]);}document.write(str);}function transfer() {switch(target) {case "1" :return "壹";case "2" :return "俩";case "3" :return "三";}}
13、写一个函数,实现n的阶乘。
function jc(n) {if(n == 1) {return 1;}return n *jc(n - 1);}
13.1、递归
function mul(n) {if(n == 1) {return 1;}return n * mul(n-1);}mul(5)
//1.找规律
//2.找出口
使用递归程序特别慢,复杂程序不要使用递归。
14、写一个函数,实现斐波那契数列。
function fb(n) {if(n == 1 || n == 2) {return 1;}return fb(n-1) + fb(n-2);}fb(n) == fb(n-1) + fb(n-2);fb(5) == fb(4) + fb(3);fb(4) == fb(3) + fb(2);fb(3) == fb(2) + fb(1);
15、作用域
//函数里面的变量可以外部全局变量//函数外面的变量不可以访问内部变量//两个相邻之间独立的函数作用域是不能相互访问的var a = 123;//var 外面的变量是全局变量function test() {var b = 243;function demo() {var c =555;document.write(b); //可以访问bdocument.write(a); //可以访问a}demo();document.write(c);//不能访问}test();document.write(b); //不可以访问//相邻之间不能访问var global = 100;function test() {var a = 123;}function demo() {var b = 234;}
16、要求输入一串低于 10 位的数字,输出这串数字的中文大写
input:100 output:一佰
input:1001010 output:壹佰万壹仟零壹拾
1 var strNumber = ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖','拾'];2 var numberOfWeight = ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿'];34 var num = "10001";5 chineseNumber(num);67 function chineseNumber( num ) {8 var onum = num;9 if ( onum == 0 ) {10 print(strNumber[num[0]]);11 return;12 }13 while ( num != '' ) {14 if ( num > 0 ) {15 if ( num[0] == 0 ) {16 if ( num.length <= 4 )17 print(strNumber[num[0]]);18 } else {19 print(strNumber[num[0]]);20 }2122 if ( num[0] > 0 || num.length > 4)23 print(numberOfWeight[num.length-1]);24 }25 num = num.substring(1);26 while ( num[0] == 0 && num[1] == 0) {27 num = num.substring(1);28 }29 }30 }3132 function print( s ) {33 document.write(s);34 }
