12.6作业

1

<script>
    a= function CJ(){
        let a=1
        for(i in arguments){
            a*=arguments[i]

        }
        return a
    }
    document.write(a(11,11,11))
</script>

2

<script>
    function pan(a){
        let b=a/10,c=a-b*10
        if(b==7||c==7){
            return 1
        }
        else{
            return 0
        }
    }
    for(let i=0;i<=100;i++){
        if(i%7==0&&i!=0){
            document.write(i)
            document.write('\n')
        }
        else if(i%7!=0){
            if(pan(i)){
                document.write(i)
                document.write('\n')    
            }
            }       
        }
       
</script>

3

<script>
    function FB(n){
        if(n==1||n==2){
            return 1
        }
        else{
            return FB(n-1)+FB(n-2)
        }
    }
    let n=+prompt('请输入兔子对数')
    let m=1
    while(FB(m)<n){
        m++
    }
    alert(`最少需要${m}个月`)


</script>

---------------------------------------------------------------------------------------------------------------------------------笔记

常见内置对象[续]
获取日期时间"new Date(年-月-日 时:分:秒)"
ps:"()"内为空,则默认为当前时间
获取年份"变量名.getFullYear()"
获取月份"变量名.getMonth()"
获取日期"变量名.getDate()"
获取时间[H]"变量名.getHours()"
获取时间[m]"变量名.getMinutes()"
获取时间[s]"变量名.getSeconds()"
获取星期"变量名.getDay()"
"变量名.getMilliseconds()"
获取时间戳[1970年1月1日0时0分0秒到当前时间对象的毫秒数]"变量名.getTime()"

    字符串对象
声明方式
1.用单引号/双引号/反引号        例:let a="aaaa"
2.String    例:let a=new String("aaaa")/let a=String("aaaa")
返回字符串长度"字符串名称.length"

    字符串的方法
[在"()"内使用]获取下标[0,1,2,3····]对应字符"str.charAt(数字)"
返回第一个[左到右]找到的相应字符的下标"字符串名称.indexOf("字符")"
返回第一个[右到左]找到的相应字符的下标"字符串名称.lastIndexOf("字符")"
连接字符串"串3=串1.concat(串2)"
正则匹配[数字]"变量名.match(/\d[数字]/g[全局匹配])"
正则替换"变量名.replace(/变量名/g[全局匹配],"更换内容")
截取字符串"变量名.slice(截取起始下标,截取结束下标)"
按照特点符号分割字符串【最终返回数组】"变量名.split("符号")"    ps:默认为","分割
将所有字符转为大写"变量名.toUpperCase()"
将所有字符转为小写"变量名.toLowerCase()"

    函数[一段具有独立功能的代码的集合,一段有名称的代码--定义一次,调用多次的代码]
声明函数"function 函数名(参数){代码}"
调用函数"函数名(赋值)"
返回函数结果"returun"    例"return a+b"
ps:想要将函数结果赋给某个变量,必须用return,否则显示"undefined";在函数被声明之前调用函数仍可以成功,前提是函数被声明了[原理:函数提升(函数在被声明后会被自动提升到最上层)]

值传递[函数对变量无影响]/引用传递(对象、数组···)[函数对对象、数组有影响]
对象存在"堆"中,每个[堆]都有一个16进制地址
数组将地址传递到函数中,函数影响地址,最终影响数组

作用域[名字生效的范围]
分为"全局作用域"、"函数作用域"
函数中定义的变量[又称局部变量],函数外无法使用
[函数在运行站中运行,完成后会立即"弹",所以函数外无法使用函数内定义的变量]
ps:函数可作为参数进行传递

默认值参数    例"function a(r,PI=3.14){alert(PI*r**2)}"(其中PI为默认值参数)s
默认参数放在所有参数的最后面

arguements对象[又称不定长参数](用于参数数量不确定的函数)
arguements是一个伪数组,在函数中用来表示参数集合
㊙️运用arguements时,想要进行数组遍历,只能运用【加强循环】,普通循环[详见12.4笔记]会提示"NaN"
ps:如果数字超过函数设定,只取前n个;

匿名函数
函数的表达式:将函数赋值给一个变量,就能用此变量调用函数        例:"a=ss[函数名]"

箭头函数[主要运用于函数表达式;作用为简写,同时解决一些function存在的问题]
形式"let 变量名=()=>{代码}"[当只有一个形参时,"()"可省略;代码只有一句时,"{}"可省略]
ps:(【单行的】箭头函数自带"return"效果;多行则需自行输入"return")
[输出时应直接在括号中输入函数加实参或者再定义一个变量承接,不能使用原变量承接]    例"alert(a(1,2))"/"b=a(1,2);alert(b)"]

递归[函数自身调用自身]
要求:递归出口最为重要;可最小化计算
在递归出口处"retrun 1"
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值