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、函数表达式
一般说函数表达式就是匿名函数表达式
//命名函数表达式
//这个函数名是test
var test = funtion test() {
document.write('a');
}
test();
//匿名函数表达式;可以不写funtion 后面的函数名
//这个函数名是demo
var demo = funtion() {
document.write('b');
}
test();
//这个函数名是 abc
var 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);
//输出结果:3
funtion 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');
return
console.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); //可以访问b
document.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 = ['', '拾', '佰', '仟', '万', '拾', '佰', '仟', '亿'];
3
4 var num = "10001";
5 chineseNumber(num);
6
7 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 }
21
22 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 }
31
32 function print( s ) {
33 document.write(s);
34 }