初步认识函数
<script type="text/javascript">
console.log("你好");
sayHello(); //调用函数
//定义函数:
function sayHello(){
console.log("欢迎");
consolo.log("welcome");
}
</script>
函数是一种封装,即将一些语句封装到函数里面,通过调用的形式执行这些语句。
语法:
function函数名字(){
}
function是一个关键字,和var、typeof一样都是关键字,后面要加空格。函数名字的命名规定和变量的命名规定一样,只能是字母、数字、下划线、美元符号,不能以数字开头。后面要有一对空的小括号,里面是放参数用。大括号里面是这个函数的语句。
常见错误:
1. 不能小括号包裹大括号
function sayHello({
})
- 不能忘记小括号对:
function sayHello{
}
函数的调用
调用一个函数就是在这个函数的名字后面加小括号对儿。
语法:
函数名字();
定义函数,可以在调用的后面:这是JS的语法特性,函数声明头的提升。
<script type="text/javascript">
console.log("你好");
sayHello(); //调用函数
//定义函数:
function sayHello(){
console.log("欢迎");
console.log("welcome");
}
</script>
函数的功能、好处:
1)将会被大量重复的语句写在函数里面,这样以后需要这些语句的时候,直接调用函数,不用重写语句。
2)简化编程,让编程变得模块化。
函数的参数
<script type="text/javascript">
sayHello("你好啊","吃了吗"); //函数的调用(实际参数,真实的数值、字符串)
//定义函数(形式参数,表示接收一个值)
function sayHello(a,b){
console.log(a);
console.log(b);
}
</script>
实际参数和形式参数的个数要相同。
<script type="text/javascript">
qiuhe(3,4);
qiuhe("3",4);
qiuhe("我爱你","中国");
function qiuhe(a,b){
console.log(a+b);
}
</script>
分别输出的是7、34、我爱你中国。
函数的返回值
console.log(qiuhe(3,4));
function qiuhe(a,b){
return a+b;
}
return表示此时这个“函数调用的表达式”(红色部分)值就是这个a+b。
函数里面可以没有return,如果有,只能有一个,不能有多个return;
函数里面return后面不允许书写程序了,写在return后面的程序无效。
用函数的思想找出较大的数字:
var a = zhaodashu(3,zhaodashu(4,5));
console.log(a);
function zhaodashu(a,b){
if(a >= b){
return a;
}else{
return b;
}
}
用函数的思想判断水仙花数:
<script type="text/javascript">
for(var i = 100 ; i <= 999;i++){
if(panduanshibushishuixianhua(i) == true){
console.log(i);
}
}
//百位函数,这个函数的功能是,接收一个参数,返回这个参数的百位数
function baiwei(num){
return parseInt(num / 100);
}
//十位函数
function shiwei(num){
return parseInt(num % 100 / 10);
}
//个位函数
function gewei(num){
return num % 10;
}
//判断数字是否是水仙花数:
function panduanshibushishuixianhua(num){
var a = baiwei(num);
var b = shiwei(num);
var c = gewei(num);
if(num == Math.pow(a,3) + Math.pow(b,3) + Math.pow(c,3)){
return true;
}else{
return false;
}
}
</script>
不用函数的思想输出1~10000的所有质数:
for(var i = 2 ; i <= 10000;i++){
var sum = 0;
for(var j = 1 ; j <= i ; j++){
if(i % j == 0){
sum ++;
}
}
if(sum == 2){
console.log(i);
}
}
用函数的思想输出1~10000的所有质数:
<script type="text/javascript">
for(var i = 2 ; i <= 10000 ; i++){
if(panduanzhishu(i)){
console.log(i);
}
}
//因数个数函数。接收一个数字,返回这个数字的约数个数。
//比如,传入48,返回10。
//传入21,返回4
function yinshugeshu(num){
var sum = 0; //累加器
//从1开始到这个数字,一个个被这个数字除
//如果能够除尽,那么累加器加1
for(var i = 1 ; i <= num ; i++){
if(num % i == 0){
sum ++;
}
}
//最后返回这个累加器的值
return sum;
}
//判断是否是质数。接收一个数字,返回true、false。
//比如,传入21,返回false
//比如,传入13,返回true
function panduanzhishu(num){
if(yinshugeshu(num) == 2){
return true;
}else{
return false;
}
}
</script>
//请将偶数100,拆写成两个质数的和。列出所有情况
//比如3、97,比如11、89
//算法思路是,从2开始试,如果2是质数,且100-2也是质数,那么输出
for(var i = 1 ; i <= 100 ; i++){
if(panduanzhishu(i) && panduanzhishu(100 - i)){
console.log("数字100能够表示为" + i + "与" + (100 - i) + "的和");
}
}
//因数个数函数。接收一个数字,返回这个数字的约数个数。
//比如,传入48,返回10。传入21,返回4
function yinshugeshu(num){
var sum = 0; //累加器
//从1开始到这个数字,一个个被这个数字除
//如果能够除尽,那么累加器加1
for(var i = 1 ; i <= num ; i++){
if(num % i == 0){
sum ++;
}
}
//最后返回这个累加器的值
return sum;
}
//判断是否是质数。接收一个数字,返回true、false。
//比如,传入21,返回false
//比如,传入13,返回true
function panduanzhishu(num){
if(yinshugeshu(num) == 2){
return true;
}else{
return false;
}
}