1、引用
/* var num = 10;function show(num){num ;alert(num);}alert(num); //10show(num); //11 num = numalert(num); //10*//*引用*//*var arr = [1, 2, 3, 4];function show(arr){arr.push("hello");alert(arr);}alert(arr); //[1, 2, 3, 4]show(arr); //[1, 2, 3, 4, "hello"]alert(arr); //[1, 2, 3, 4, "hello"]*/
2、引用排序函数
<html lang="en"><head><meta charset="UTF-8"><title>Document</title><script src = "tool.js"></script><script>var arr = [10, 9, 5, 1, 2, 6, 7];// bubbleSort(arr);selectSort(arr);alert(arr);</script></head><body></body>
</html>
3、return
/*function add(num1, num2){var b = num1 num2;return "hello";}*/
/*1、确定你的函数要不要结果。2、return语法,return后面写什么,外面拿到的值,就是return后面的表达式。*//*var res = add(10, 20);alert(res);*/
4、arguments
function show(){alert(arguments.length);alert(arguments); //输出:object Arguments}show(1, 2, 3);var arr = [1, 2, 3, 4, 5];show(arr);
5、习题
1、有一个从小到大排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。([2,3,4,56,67,98] //63
2、编写函数map(arr) 把数组中的每一位数字都增加30%
3、编写函数has(arr , 60) 判断数组中是否存在60这个元素,返回布尔类型
/*var arr = [2,3,4,56,67,98];var num = 63;for(var i = 0; i < arr.length; i ){if(arr[i] > num){arr.splice(i, 0, num);break;}}*/// alert(arr);/*关键:找出第一个第一个比该数大的数*/var arr = [10, 20, 30, 40, 60];function map(arr){for(var i = 0; i < arr.length; i ){arr[i] = arr[i] * 1.3;}}/*map(arr);alert(arr);*/function has(arr, num){var isHas = false; //假设没有for(var i = 0; i < arr.length; i ){if(arr[i] == num){isHas = true;break;}}return isHas;}var res = has(arr, 60);alert(res);
4、生成13位条形码(对之前的知识综合练习)
Ean-13码规则:第十三位数字是前十二位数字经过计算得到的校验码。
例如:690123456789
第三位计算其校验码的过程为:
1、前十二位的奇数位和6 0 2 4 6 8=26
2、前十二位的偶数位和9 1 3 5 7 9=34
3、将奇数和与偶数和的三倍相加26 34*3=128
4、取结果的个位数:128的个位数为8
5、用10减去这个个位数10-8=2
所以校验码为2(注:如果取结果的个位数为0,那么校验码不是(10-0=10),而是0)实现方法ean13()计算验证码,输入12位条码,返回带验证码的条码。
例如:输入:692223361219输出:6922233612192//想办法将这个十二位数拆成每一位//69012345678function barCode(num){//1、分别取出每一位数var numArr = []; //存储取下来的每一位数while(1){if(num == 0){break;}numArr.push(num % 10);num = parseInt(num / 10);}numArr.reverse();//2、求奇数和和偶数和var odd = 0;var even = 0;for(var i = 0; i < numArr.length; i ){if(i % 2 == 0){//奇数位odd = numArr[i];}else{//偶数位even = numArr[i];}}//3、var tmp = (odd even * 3) % 10;if(tmp != 0){tmp = 10 - tmp;}numArr.push(tmp);return Number(numArr.join(""));}var res = barCode(690123456789
);alert(res);
5、编写函数norepeat(arr) 将数组的重复元素去掉,并返回新的数组
/*
倒着删除
【注】凡是遍历数据去重,都倒着删除。
*/
function noRepeat(arr){//去重//选择arr.length - 1个数 和后面进行比较//i选出的数/*for(var i = 0; i < arr.length - 1; i ){//j被比的数for(var j = i 1; j < arr.length; j ){if(arr[i] == arr[j]){arr.splice(j, 1);}}}*/for(var i = arr.length - 1; i > 0; i--){for(var j = i - 1; j >= 0; j--){if(arr[i] == arr[j]){arr.splice(j, 1);}}}}var arr = [10, 20, 20, 20, 30, 20, 40, 50];noRepeat(arr);alert(arr);
6、猴子吃桃
最强王者法则:
1、找出临界值,临界值就是,不用计算,直接心算得出的值。
2、找出第n次和n-1次的关系
3、假设函数已经可以使用,写出n和n-1之间的公式。
有一堆桃子不知数目,猴子第一天吃掉一半,觉得不过瘾,又多吃了一只,第二天照此办法,吃掉剩下桃子的一半另加一只,天天如此,到第num(num <= 10)天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少只?n为还剩n天吃完的桃子数分析:peach(10) / 2 - 1 = peach(9);peach(10) = (peach(9) 1) * 2;peach(n) = (peach(n - 1) 1) * 2;function peach(n){if(n == 1){return 1;}return (peach(n - 1) 1) * 2;}//46var res = peach(5);alert(res);
7、密文
/*某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:1、每位数字都加上5,2、然后用除以10的余数代替该数字,3、再将第一位和第四位交换,4、第二位和第三位交换,请编写一个函数,传入原文,输出密文*///4 3 2 1function ciphertext(num){//1、拆成数组var numArr = [];while(1){if(num == 0){break;}numArr.push(num % 10);num = parseInt(num / 10);}for(var i = 0; i < numArr.length; i ){numArr[i] = 5;numArr[i] = numArr[i] % 10;}return Number(numArr.join(""));}var res = ciphertext(1234);alert(res);
8、计算器
<head><meta charset="UTF-8"><title>Document</title></head><body><input type="text" id = "num1" placeholder="请输入第一个数"><input type="text" id = "num2" placeholder="请输入第二个数"><!-- 点击按钮以后,执行后续字符串中的代码--><button onclick = "btnClick(' ');"> </button><button onclick = "btnClick('-');">-</button><button onclick = "btnClick('/');">/</button><button onclick = "btnClick('*');">*</button><button onclick = "btnClick('%');">%</button></body><script>function btnClick(operator){// alert(operator); var oNum1 = Number($("num1").value);var oNum2 = Number($("num2").value);//根据不同的运算符,进行不同的运算。var res = counter(oNum1, operator, oNum2);alert(res);}/*简化代码*/function $(id){return document.getElementById(id);}function counter(num1, operator, num2){var res = 0;//1、运算符判断switch(operator){case " ":res = num1 num2;break;case "-":res = num1 - num2;break;case "*":res = num1 * num2;break;case "/":res = num1 / num2;break;case "%":res = num1 % num2;break;default:alert("error");break;}return res;}</script>
</html>
【注】<body><!-- onclick = ""后面字符串中写着js的执行代码 --><button id = "btn" onclick = "btnClick();">按钮</button></body><script>/*var oBtn = document.getElementById("btn");oBtn.onclick = function(){alert(1);}*/function btnClick(){alert("点击");}</script>
更多专业前端知识,请上 【猿2048】www.mk2048.com