今天所学
函数
函数返回值
// 两个数的和
function sum(a,b){
return 1
只会输出1
// console.log(2)
}
// 如果函数使用 return语句,那么跟再return后面的值,就成了函数的返回值
console.log(sum(1,2))
alert(sum(2,5)
// 返回值注意
// 如果函数没有显示的使用 return语句 ,那么函数有默认的返回值:undefined
// 如果函数使用 return语句,但是return后面没有任何值,那么函数的返回值 也是:undefined
// 函数使用return语句后,这个函数会在执行完 return 语句之后停止并立即退 出,也就是说return后面的所有其他代码都不会再执行。
就近原则
函数里面有这个变量 ,就不去外面找了 ,就不去外面找了
var a = 1;
// function fn(){
// console.log(a);
// var a = 2;
// }
// fn()
声明提升只提升变量,不提升变量的值
提升变量名 , 变量的值不提升
3.创建函数
JS加载的时候,只加载函数名,不加载函数体。所以如果想使用内部的成员变量,需要调用函数。
函数创建第一种方式
// function a(a,b) {
// return a+b
// }
// 函数创建第二种方式
// var a = function (a,b) {
// return a+b
斐波那契数列 1 1 2 3 5 8 13 21 34 55 89
function fbnq(a){
var num1 = 1;
var num2 = 1;
var num3 = 0;
for(var i = 0;i<a-2;i++){
num3 = num2 + num1;
num1 = num2;
num2 = num3;
}
return num3
}
函数封装
function sum(arr){
// var sum = 0;
// for(var i =0;i<arr.length;i++){
// sum += arr[i]
// }
// console.log(sum)
// }
函数单独放在那 没有任何 意义的 只有 在调用的时候,才能让执行
// sum(arr);
// sum(arr1);
求圆的周长和面积
function zc(r){
return 2*Math.PI*r
}
function s(r){
return Math.PI*Math.pow(r,2)
}
console.log(zc(5);
判断一个数是不是质数
一个数的所有因数
function isYin(a){
var arr = []
for(var i =1;i<=a;i++){
if(a % i == 0){
// arr[arr.length] = i
arr.push(i)
}
}
return arr
}
如果只有两个因数就是质数,套用上面的函数
function isPrime(a){
if(isYin(a).length === 2){
return "是质数"
}else if(a<2){
return "ye是质数"
}else{
return "bu是质数"
}
}
求水仙花数
for(var i=100;i<=1000;i++){
var b=parseInt(i/100);
var s=parseInt((i%100)/10);
var g=parseInt(i%10);
if((Math.pow(b,3)+Math.pow(s,3)+Math.pow(g,3))===i){
console.log(i)
}
}
判断完美数
function shu(a){
var arr=[]
for(var i=1;i<=a;i++){
if(a%i==0){
//把他的因数放进一个数组中
arr.push(i)
}
}
return arr
}
var b=prompt("a")
console.log(shu(b))
var sum=0;
for(var j=0;j<shu(b).length-1;j++){
sum=sum+shu(b)[j]
// 求数组的和
}
if(sum==b){
alert("是完美数")
}else{
alert("不是")
}