js(26-50)

26dowhile

js(26-50)_第1张图片

27dowhile案例

1-100累加

<script>
    var sum=0
    var n=1
    do{
        sum+=n;
        n++;
    }while(n<=100)
    document.write(sum)
</script>

输出结果为 5050

prompt 直到输入名字,否则一直有弹出窗口

    <script>
        do{
            var input=prompt("请输入名字")
        }while(!input)
    </script>

用input变量存储

js(26-50)_第2张图片
点取消确定都不会关闭弹窗,直到输入名字

28for

js(26-50)_第3张图片

29for案例

累加到100

       var sum=0
       for(var i=1;i<=100;i++){
        sum+=i
       }
       document.write(sum)

1000-1100的闰年

var year
        for(year=1000;year<=1100;year++){
            if(year%400===0||year%4===0&&year%100!==0){
                document.write(year+" ")
            }   
        }

js(26-50)_第4张图片

       var count=0
        for(var year=1000;year<=1100;year+=4){
            //year+=4提高效率
            if(year%400===0||year%4===0&&year%100!==0){
                document.write(year+" ")
                count++
                if(count%4===0){
                    document.write("
"
) //每打印4个就换行 } } }

30循环控制语句

break

js(26-50)_第5张图片

可通过控制台看执行过程,当i=3时,进入if,执行break,直接跳出for循环,终止运行

continue

js(26-50)_第6张图片

31求质数

js(26-50)_第7张图片

        var judge=true
        var n=18
        for(i=2;i<=n;i++){
        //改为i<=n/2增加效率
            if (n%i===0){
              judge=false
              break
              //break增加效率
            }
        }
        if(judge)
        document.write("是质数")
        else
        document.write("不是质数")

输出结果不是质数

只有一个变量
        var n=32
        for(i=2;i<=n;i++){
            if (n%i===0){
                break
            }
        }
        if(i<n)
        document.write("不是质数")
        else
        document.write("是质数")

把n换成n/2也可

32九九乘法表

    for(m=1;m<=9;m++){
        for(n=1;n<=m;n++){
        //n<=m控制每行的式子个数
            document.write(m+"*"+n+"="+m*n)
            //拼接显示*和=
        }
        document.write("
"
) //每输出一行,就换行 }

js(26-50)_第8张图片


美化
<style>
    span{
        display: inline-block;
        width: 70px;
    }
style>    
<script>
    for(m=1;m<=9;m++){
        for(n=1;n<=m;n++){
            document.write(""+m+"*"+n+"="+m*n+"")
        }
        document.write("
"
) }
script>

js(26-50)_第9张图片

33初识函数

函数是一个复杂数据类型
js(26-50)_第10张图片

函数定义js(26-50)_第11张图片

声明式

function test1(){
document.write(“内容”)
}

js(26-50)_第12张图片

赋值式

var test2=function(){
内容
}

js(26-50)_第13张图片

调用函数

在这里插入图片描述

test1()
test3()

声明式可以先调用后定义,赋值式不可以

    function prime(n){
        for(var i=2;i<=n/2;i++){
            if(n%i===0){
                break
            }
        }
        if(i<=n/2){
           document.write(n+"不是质数")
        }
        else{
            document.write(n+"是质数")
        }
    }
    prime(3)
    prime(68)
    prime(29)

在这里插入图片描述

34函数实现九九乘法表

<style>
    span{
        display: inline-block;
        width: 70px;
    }
style>    
<script>
    function a(){
        for(m=1;m<=9;m++){
            for(n=1;n<=m;n++){
            document.write(""+m+"*"+n+"="+m*n+"")
            }
        document.write("
"
) } } a() a() a()
script>

js(26-50)_第14张图片

35函数的参数

js(26-50)_第15张图片

形参作用域仅在函数内部中

36函数的参数的案例n*n乘法表

<style>
    span{
        display: inline-block;
        width: 70px;
    }
</style>    
<script>
    function a(target){
        for(m=1;m<=target;m++){
            for(n=1;n<=m;n++){
            document.write(""+m+"*"+n+"="+m*n+"")
            }
        document.write("
"
) } } a(7) a(4) a(3) </script>

js(26-50)_第16张图片

若没有传入参数,则为undefined的类型,可以在for上面加上if(target===undefined){ alert(“请传入参数”)}用以提示
或者在if中写入target=9意为默认值为9

37函数的返回值

js(26-50)_第17张图片
js(26-50)_第18张图片
return后的内容不会执行

38案例

10-100内的所有质数

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

//截止线
        if(i<=n/2){
            return false
        }
        else{
            return true
        }

//上面这一块可直接换为
return i>n/2


    }
    
    var count=0
    for(var n=10;n<=100;n++){
        if(prime(n)){
        //函数调用,此处的n与上面函数的n作用域不同
            document.write(n+" ")
            count++
            if(count%5===0){
                document.write("
"
) } } }

js(26-50)_第19张图片

?


why!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    function prime(n){
        for(var i=2;i<=n/2;i++){
            if(n%i===0){
                return false
            }
            else{
                return true
            }   
        }
    }
    for(var i=1;i<=20;i++){
        if(prime(i)){
            document.write(i+"是质数")
        }
       
    }

在这里插入图片描述

39预解析

在这里插入图片描述
js(26-50)_第20张图片

40重名问题

41作用域

全局作用域

js(26-50)_第21张图片

局部作用域js(26-50)_第22张图片

42变量使用规则

js(26-50)_第23张图片

访问规则js(26-50)_第24张图片

js(26-50)_第25张图片

赋值规则

js(26-50)_第26张图片
js(26-50)_第27张图片

对象

js(26-50)_第28张图片

43对象数据类型

创建对象js(26-50)_第29张图片

    var obj={
        name:lucy,
        age:18,
    }
    document.write(obj)
    var obj2=new object()
    obj2.name=lucy
    obj2.age=18

不常规的用“a+b”=“内容”

44对象的基本操作

    var obj{}
    obj.name="内容"
    obj.age=18

法二
obj [“name” ]="内容”

 document.write("姓名是"+obj.name)

法二
document.write(obj [ “name” ]

obj.age=200

法二
obj【“name”】=“内容”

delete obj.name

法二
delete obj【“内容”】

45对象的遍历


    for(let i in obj){
        console.log(obj[i])
    }

46不同数据类型的存储

js(26-50)_第30张图片栈区的obj相当于地址
在堆里都有自己的地址

47数组数据类型

js(26-50)_第31张图片

let arr1=[a,b,c]
let arr2=[{z,b},{c,d},{e,f}]
let arr3=new array(a,b,c)
let arr4=new array(10)

48数组基本操作

长度length

可读,可写

document.write(arr1.length)
arr.length=3改变数组长度为3
也可直接改为0,清空数组

索引

let arr=["a","b","c"]
document.write(arr[0])
输出结果为a

document.write(arr[4])
输出结果为undefined

let arr=[1,2,3]
arr[4]=7
document.write(arr[4])
输出结果为7

遍历

let arr=[1,2,3]
for(let i=0;i<arr.length;i++){
    document.write(arr[i])
}

输出结果为1 2 3

复制

let arr1=[1,2,3,4]
let arr2=[]
for(let i=0;i<arr1.length;i++){
    arr2[i]=arr1[i]
    document.write(arr2[i])
}
 arr2[1]=8
document.write(arr2)

js(26-50)_第32张图片

49冒泡排序法

只一次循环

let arr=[3,1,9,2]
for(let i=1;i<arr.length-1;i++){
    if(arr[i]>arr[i+1]){
        var temp=arr[i]
        arr[i]=arr[i+1]
        arr[i+1]=temp
    }
}
document.write(arr)
let arr=[3,1,9,2]
for(let j=0;j<arr.length-1;j++){
    for(let i=0;i<arr.length-1-j;i++){
        if(arr[i]>arr[i+1]){
            var temp=arr[i]
            arr[i]=arr[i+1]
            arr[i+1]=temp
        }
    }
}
document.write(arr)


输出结果1239

50选择排序法

let arr=[3,1,9,2]
for(let m=0;m<arr.length-1;m++){
    let min=m
    for(let n=m+1;n<arr.length;n++){
        if(arr[n]<arr[min]){
            min=n
        }
    }
    let temp=arr[m]
    arr[m]=arr[min]
    arr[min]=temp
}
document.write(arr)

数组常用方法

你可能感兴趣的:(js,javascript,前端)