JavaScript学习笔记(二)

JavaScript学习笔记(二),第1张

函数:函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。

函数就是包裹在花括号中的代码块,前面使用了关键词 function,当调用该函数时,会执行函数内的代码。

可以在某事件发生时直接调用函数(比如当用户点击按钮时),并且可由 JavaScript 在任何位置进行调用。

//函数的应用场景
        //煮饺子,这是一个 *** 作,需要多行代码来实现,此时一般封装成函数
        //function baoJiaoZi(){ //驼峰命名方式
        //    console.log("买肉,买菜")
        //    console.log("洗刷刷")
        //    console.log("剁,和面")
        //    console.log("包饺子")
        //    console.log("煮饺子")
        //    console.log("端上桌") 
        //}

        //做披萨
        //function zuoPiSa(){ 
        //    console.log("和面")
        //    console.log("包")
        //    console.log("上锅")
        //    console.log("端上桌") 
        //}

        //女神发号施令包饺子,调用函数
        //baoJiaoZi //不报错,但不调用函数
        //baoJiaoZi() //函数名() 表示调用

        //console.log("程序执行结束")

        //function baoJiaoZi(meat,vegetables){ //驼峰命名方式
        //   console.log("买:",meat,vegetables)
        //   console.log("洗刷刷")
        //   console.log("剁,和面")
        //   console.log("包饺子")
        //   console.log("煮饺子")
        //   console.log("端上桌") 
        //}

        //函数中没有参数,但调用时,传入参数,不报错,可行,与Java c 不同。
        //这种写法,不够直观,工作中一般不用,但可能会出笔试题。
        //function baoJiaoZi(meat,vegetables){ //驼峰命名方式
        //   //console.log(arguments) // arguments是数组类型
        //   //console.log(typeof arguments)
        //   console.log("买",arguments[0],arguments[1])
        //   console.log("洗刷刷")
        //   console.log("剁,和面")
        //   console.log("包饺子")
        //   console.log("煮饺子")
        //   console.log("端上桌") 
        //}

        //baoJiaoZi("驴肉","大葱")

        //做数学运算,肯定要有参数,也要有返回值
        //写一个简单的加法,没意义,只是为了掩饰效果

        function add(a,b){

            var res = a + b //步骤1 执行赋值运算符右侧的部分,即:a+b
                            //步骤2 将a+b的结果,赋值给左侧的res
            return res      //将res的结果返回
        }
        //将add()函数的执行结果,赋值给c
        var c = add( 1 , 2 )

        console.log("c = ",c)

        console.log("程序执行结束")

return:

有时,我们会希望函数将值返回调用它的地方。通过使用 return 语句就可以实现。

在使用 return 语句时,函数会停止执行,并返回指定的值。

//在函数中,return也可以用在if语句
        function xiuXianLevel(score){
            if(score>=95){
                return("渡劫")
            }
            else if(score>=90){
                return("大乘")
            }
            else if(score>=80){
                return("合体")
            }
            else if(score>=70){
                return("元婴")
            }
            else if(score>=60){
                return("金丹")
            }
            else {//没有必要再做判断
                return("筑基")
            }
        
        }

        //var res = xiuXianLevel(92)
        //console.log("res = ",res)

        function game(){
            for (var i = 1; i < 30; i++) {

                if ( i%7 == 0) { //表示7的倍数
                    return i  //当i为7时,就返回(终止循环) 注意:return要在函数中,不在函数中会报错
                }
                console.log(i)
            }
        }

        var res = game()

        console.log("res = ",res)

函数表达式:

//普通函数
        //function baoJiaoZi(){ //驼峰命名方式
        //    console.log("买肉,买菜")
        //    console.log("洗刷刷")
        //    console.log("剁,和面")
        //    console.log("包饺子")
        //    console.log("煮饺子")
        //    console.log("端上桌") 
        //}

        //函数表达式,可以理解为:匿名函数,且赋给变量
        //注意:这不是调用函数,并获取函数的返回值
        var baoJiaoZi = function(meat,vegetables){ //  没有名,所以叫匿名函数
            console.log("买:",meat,vegetables)
            console.log("洗刷刷")
            console.log("剁,和面")
            console.log("包饺子")
            console.log("煮饺子")
            console.log("端上桌") 
            console.log("滚蛋")
            return "你是个好人,可是我们不合适!"
        }

        var res = baoJiaoZi("羊杂","猪腰子")
        console.log("res = ",res)

        console.log("baoJiaoZi = ",baoJiaoZi) //baoJiaoZi后面没有(),不是调用函数,打印函数对象
        console.log("typeof baoJiaoZi 结果:",typeof baoJiaoZi)

Math:

Math 对象用于执行数学任务。

Math 对象并不像 Date 和 String 那样是对象的类,因此没有构造函数 Math()。

        console.log(window)
        //window 表示当前打开的浏览器窗口
        //通过window 可以实现很多根据浏览器相关的功能
        //如:alert()警告对话框,就是与浏览器相关
        //window.alert("1")
        //window可以省略
        //alert(“1”)

        var max = window.Math.max(1,2)
        console.log("max=",max)

        var random = Math.random()
        console.log("random=",random)

        console.log("-1的绝对值",Math.abs(-1) )

        //Math.PI = 1.2
        console.log("pi :",Math.PI)//常量(不可改变)名一般大写

string:字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和 *** 作字符串。 

        //var s = "三藏,悟空,八戒,悟净"
        
        //console.log(s.length) //16.返回字符串的长度,就是返回字符串有多少个字符
        //应用场景,注册时,密码长度的校验,不能少于8位
        var password = "12345678"

        var len = password.length //获取password的长度,将长度赋值给password

        if (len < 8) {
            alert("密码不能少于8位!")
        }else{
            console.log("密码校验通过!")
        }

        //拼接字符串======================================
        var s1 = "悟空"
        var s2 = "八戒"
        //var res = s1 + s2
        var res = s1.concat(s2)
        console.log("res = ",res)

        //查找字符串======================================
        var s= "三藏,悟空,八戒,悟净"
        var pos = s.indexOf("悟空") //从左往右找
        console.log("pos = ",pos)

        console.log("三藏的位置",s.indexOf("三藏"))
        console.log("悟空的位置",s.indexOf("悟空"))

        //查找字符串,从右往左找=========
        //有些时候,必须得用从右往左找
        //如:要获取文件后缀,复联.mp4
        //从左往右找 文件后缀,会有问题:  复联.3.高清.中文字幕.mp4(类似这种,文件名中有多个点..就会找不到)
        var filename = "复联.3.高清.中文字幕.mp4"
        var suffixPos = filename.lastIndexOf(".") //从右往左找
        console.log(filename,"的后缀的位置是:",suffixPos)

        //trim()==========把字符串左侧,右侧空格去掉
        var s2 = "李雷"
        console.log("s2.trim()结果:",s2.trim())

        console.log("abcDEF转成大写:","abcDEF".toLocaleUpperCase())
        console.log("abcDEF转成小写:","abcDEF".toLocaleLowerCase())

字符串提取:

        var s = "李雷,韩梅梅,lucy"

        //var res = s.slice(3,5) // 开始位置包含,结束位置不包含
        //console.log("res = ",res)

        //var res2 = s.slice(3) // 从索引是3的位置开始截取,一直截取到结尾
        //console.log("res2 = ",res2)

        //var res3 = s.slice(-4)
        //console.log("res3 = ",res3)

        ========================================
        //var filename = "复联.3.高清.中文字幕.mp4" 
        //var pos = filename.lastIndexOf(".")
        //var suffix = filename.slice(pos)
        //console.log(filename,"后缀是",suffix)

        var res = s.substring(3,5) // 开始位置包含,结束位置不包含
        console.log("res = ",res)

        var res2 = s.substring(3) // 从索引是3的位置开始截取,一直截取到结尾
        console.log("res2 = ",res2)

        var res3 = s.substring(-4)
        console.log("res3 = ",res3)

        //========================================
        var filename = "复联.3.高清.中文字幕.mp4" 
        var pos = filename.lastIndexOf(".")
        var suffix = filename.substring(pos)
        console.log(filename,"后缀是",suffix)

数组array:

一个人最多拿10瓶啤酒,那么如何拿20瓶啤酒?

一个班级的学生有30人,如何用变量表示这30人的数学成绩?用30个变量吗?

应该使用数组,数组的作用相当于上面的啤酒箱,可以装入30人的数学成绩。

数组就是:集合,存储数据,按一定的 顺序排列

        //var nameArray = []
        //var nameArray = ["三藏","悟空","八戒","悟净"]
        //var nameArray = new Array()

        var nameArray = new Array("三藏","悟空","八戒","悟净")

        console.log("nameArray:",nameArray)
        console.log("nameArray 的类型:", typeof nameArray)
        console.log("nameArray 的长度(元素的数量):", nameArray.length)

        //访问数组中的元素,通过索引访问
        //数组名【索引】
        console.log(nameArray[0])
        console.log(nameArray[1])

        //修改数组中的元素
        //数组名【索引】 = 值
        nameArray[0] = "唐僧"

        console.log(nameArray[0])

        //数组的遍历,打印数组中的每一个元素
        //通过for、while循环语句进行遍历
        //i的最大值是 数组长度-1
        for(var i = 0;i < nameArray.length;i++){
            console.log(nameArray[i])
        }

待续。。。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/731082.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存