day04 - JavaScript基础

控制台console.log打印多个值 ,用逗号隔开

var a = 1, b = 2 ;
        console.log(a,b);

. 对象才有

()函数、优先级、if()、switch( )

注意:
代码块中只有一句话的时候,可以省略大括号
if() 只有一条语句,可以省略大括号
switch case 只有一条语句,可以省略大括号

        //console.log()打印多个值
        var a = 1,b = 2;
        console.log(a, b);

        //省略大括号
        // if(1) alert(666);  //666
        if (0) alert(666);alert(777); //777

三目运算符

表达式: 条件?表达式1:表达式2
条件成立就执行表达式1,条件不成立就执行表达式2

        //三目运算符是双分支的简易写法
        var a = 2 ;
        var b = 3;
        var c ;
        a > b ? c = a : c = b ;
        console.log(c) ;  // 3

循环语句

变量初始值
while(条件) {
循环做的事情
变量产生变化
}
注意:while有可能一次也不会执行

for(变量初始值 ; 循环条件 ; 变量变化) {
循环要做的事情
}
注意:初始值只读一次
执行流程:初始值---->判断条件---->循环---->变量变化

do{
}while(条件)
注意:do while 先做后判断。至少执行一次

        //while循环,此时a>5条件不满足循环一次也不执行
        var a = 0 ;
        while(a > 5){
            console.log(a) ;
            a++;
        }

        //for循环
        for(var b = 0 ; b <= 5 ;b++){
            console.log(b) ;  // 0 1 2 3 4 5
        }

        //do while循环,此时循环至少执行一次
        var c =  0;
        do{
            console.log(c);
            c++;
        }while(c < 0)  //0

训练:100以内能被3和7整除的奇数

        //找到奇数
        var count = 0 ;
        for(var i = 0 ; i <= 100 ; i++){
            if(i % 2 !== 0){
                document.write(i+'&nbsp;&nbsp;&nbsp;&nbsp;')
                count++;
                if(count % 5 === 0){
                    document.write('</br>')
                }
            }
        }

        //同时被3和7整除
        for(var i = 1 ; i <= 100 ;i++){
            if(i % 3 === 0 && i % 7 === 0){
                document.write(i+'&nbsp;&nbsp;&nbsp;&nbsp;');
            }
        }

训练:计算1000-2000之间的闰年,每10个换行 ,并且计算出一共有多少个闰年

        // 方法一:
        // 计数
        var count = 0 ;  
        for(var y = 1000 ; y <= 2000 ; y++){
            if(y % 4 === 0 && y % 100 !== 0 || y % 400 === 0){
                document.write(y+'&nbsp;&nbsp;&nbsp;&nbsp;')
                count++;
                //当需要统计的数量发生改变的时候,才做判断
                if(count % 10 === 0){
                    document.write('<br>');
                }
            }
        }
        document.write('1000-2000之间的闰年有' + count + '个');


        //方法二:
        var count = 0;
        for(var y = 1000 ; y <= 2000 ; y++){
            if(y % 4 === 0 && y % 100 !== 0 || y % 400 === 0){
                document.write(y+'&nbsp;&nbsp;&nbsp;&nbsp;')
                count++;
                //当需要统计的数量发生改变的时候,才做判断
                if(count === 10){
                    document.write('<br>');
                    count = 0;
                }
            }
        }

训练:质数的判断
质数:只能被1和自己整除
合数:除了1和自己以外还能被其他数整除

        var n = 121;
        for(var i = 1 ; i < 121 ; i++){
            if(n % i === 0){
                alert('不是质数')
            }
            else{
                alert('是质数')
            }
        }

        //假设法 : 假设是一个质数
        var num = 121
        var flag = true ;
        for(var i = 1 ;i < num ; i++ ){
            if(i % num === 0){
                flag = false ;
            }
        }

        if(i === num){
            alert('是质数')
        }
        else{
            alert('不是质数')
        }

break和continue

作用:使用break和continue能够优化性能
break : 结束整个循环
continue : 结束本次循环,下次循环继续

        // break
        for(var i = 0 ; i < 10 ; i++){
            console.log(i);    
            if(i === 3){
                break;
            }
        }   // 0 1 2 3

        //continue
        for(var i = 0 ; i < 10 ; i++){
            if(i === 3){
                continue;
            }
            console.log(i); 
        }    // 0 1 2 4 5 6 7 8 9

训练:判断一个数是不是质数:
方法一:

        //判断质数
        var n = 12 ;
        
        //假设是一个质数
        var flag = true ;

        //找到她不是的证据
        for(var i = 1 ; i <= n ; i++){
            if(n % i === 0){
                flag = false ;
                // 如果找到了一个能被整除的数,表示这个数已经不是质数了,也就是知道了最终的结果,就不需要继续循环了
                break ;
            }
        }

        if(flag){
            alert('是质数')
        }
        else{
            alert('不是质数')
        }

        flag ? alert('是') : alert('不是') ;

方法二:

        //质数的判断
        // 如果循环提前结束,是因为找到了能被整除的数  --  说明不是质数
        // 如果循环正常结束,因为没有找到被整除的数   --  说明是质数

        var n = 7 ;
        for(var i = 2 ; i < n ; i++){
            if(n % i === 0){
                break;
            }
        }

        if(i === n){
            alert('是质数')
        }
        else{
            alert('不是质数')
        }

循环的嵌套

外层循环走一下,内层循环走一圈 ------------------------>时针和分针的关系
外层控制打印的行数,内层控制打印的个数

        // ****
        // ****
        // ****
        // ****

        // 外层 i 控制打印的行数
        for(var i = 1 ; i <= 4 ; i++){
            
              // 内层j控制打印*的个数
            for(var j = 1 ; j < 4 ; j++){
                document.write('*') ;
            }
            document.write('<br>') ;
        }

打印三角形训练:

        // *
        // **
        // ***
        // ****
        // *****

        // i 控制行数
        for(var i = 0 ; i <= 4 ; i++){

            // 打印星星,星星的个数跟行数一样
            for( var j =0 ;j <= i ; j++){
                document.write('*')
            }

            // 打印换行
            document.write('<br>')
        }


        // *****
        // ****
        // ***
        // **
        // *
        for(var i = 0 ; i <= 5 ; i++){
            for(var j = 0 ; j <= 5- i ; j++){
                document.write('*')
            }
            document.write('<br>')
        }

        // *****
        //  ****
        //   ***
        //    **
        //     *
        for(var i = 0 ; i <= 5 ; i++){
            for(var j = 0 ; j <= i ; j++){
                document.write('&nbsp;') ;
            }
            for(var k = 0 ; k <= 5 - i ; k ++){
                document.write('*') ;
            }
            document.write('<br>')
        }

训练九九乘法表:

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p {
            display: flex;
        }
        span{
            width: 90px;
            text-align: center;
            line-height: 40px;
            border: 1px solid #000;
            margin: 10px;
            background-color: #ff0;
        }
    </style>
</head>
<body>

    <script>

        for(var i = 1 ; i <= 9 ; i++) {
            document.write('<p>')
                for(var j = 1 ; j <= i ; j++) {
                    document.write('<span>' + j + '*' + i + '=' + i * j + '</span>')
                }
            document.write('</p>')
        }

    </script>
    
</body>

循环的特殊语法

1.for可以改写成while的形式,但是注意分号不能省

        //for语句改写while
        var i = 0 ;
        for( ; i < 10 ; ){
            console.log(666) ; 
            i++ ;
        }

2.for 第一个分号前面的代码只会执行一次,因此可以声明多个变量

for(var i = 0 , count = 0 ; i < 100 ; i++) {
            if(i % 2) {
                document.write(i + '&nbsp;')
                count++;
                if(count % 10 === 0) {
                    document.write('<br>')
                }
            }
        }

死循环

 for(;;) {
            console.log(666);   // 最简单的死循环
        }

for 执行的效率更高一点,一般情况都使用for
for 倾向于已知循环次数 for(;😉
while 一般条件复杂(死循环) while(true)
do while 至少执行一次

 for(;;){}


        for(var i = 0 ; ; i++) {
            console.log(i);
            if(i === 9) {
                break;
            }
        }

        var i = 0 ;
        while(true) {
            console.log(666);
            i++ ;
            if(i === 10) {
                break;
            }
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值