JavaScript学习Day003(内置对象)

本文详细介绍了JavaScript数组的声明、操作(如length属性、join、sort、冒泡排序等)、Date对象和String对象的方法,以及函数的声明、作用域、数据类型和作为参数的使用。涵盖了数组操作的基础和高级技巧,适合开发者深入理解JavaScript数组的各个方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组的属性和方法

数组的声明

    <script>
        //声明数组并分配空间
        var nums = new Array(5);
        //赋值
        nums[0]=10;
        nums[1]=20;
        nums[2]=30;
        //输出数组中的元素值
        console.log(nums[0]);//10
        console.log(nums[2]);//30
        console.log(nums[4]);//underfined
        console.log(nums[6]);//underfined

        //声明数组和赋值合并写
        var strs = ["2","323","342","132"];
        console.log(strs[0]);
        console.log(strs[4]);//underfined
    </script>

数组的属性和方法

    <script>
        var nums=[11,32,432,12,546,23135,431233,32];
        //获取数组的长度
        console.log(nums.length)

        console.log(nums);

        //join():将数组里的元素取出来组装成一个字符串,元素之间使用指定的符号进行连接
        var newNums = nums.join("-");
        console.log(newNums);
        //sort():对数组进行升序排序
        var numbers=nums.sort();
        console.log(numbers);

        //冒泡排序
        //外层for循环控制比较的轮数
        for(var i=0;i<nums.length-1;i++){
            for(var j=0;j<nums.length-1-i;j++){
                if(nums[j]>nums[j+1]){
                    var temp=nums[j];
                    nums[j]=nums[j-1];
                    nums[j-1]=temp;
                }
            }
        }
        console.log(nums);

        //push();想数组末尾添加元素
        var length= nums.push(100,200);
        console.log(length);
        console.log(nums);

        var str1 = ["hello","java","js"]
        var str2 = ["math","css"]
        var str =str1.concat(str2);
        console.log(str)
    </script>

Date对象

var 日期对象=new Date(参数) 参数格式:MM  DD,YYYY,hh:mm:ss

    <script>
        var date = new Date();
        console.log(date);

        //通过date.getDay()获取的星期是一个阿拉伯数字,0表示周日,1表示周一
        var num = date.getDay();
        var week = ["日", "一", "二", "三", "四", "五", "六"]

        console.log("今天是" + date.getFullYear() + "年" + (date.getMonth() + 1) + "月" + date.getDate() + "日,星期" + week[date.getDay()] + "," + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds())
    </script>

String对象

 

<script>
        var str1 = new String("q-w-e-r-e");
        console.log(str1);

        var str2 = 'hello java';
        console.log(str2);

        //获取字符串的长度
        // console.log(str1.length);
        // console.log(str2.length);

        // console.log(str1.charAt(2));
        // console.log(str1.concat(str2));
        // console.log(str1.replace("w","123"));
        // console.log(str1.split("-"));


        // console.log(str1.indexOf("e"));
        // console.log(str1.lastIndexOf("e"));
        // console.log(str1.match("e"));

        // console.log(str1.toLowerCase());
        // console.log(str1.toUpperCase());

        console.log(str1);
        // console.log(str1.substr(1,2));
        console.log(str1.substring(1,2))

        console.log(str1.slice(1,4));

        console.log(str2.repeat(5));
    </script>

Math对象

    <script>
        //输出圆周率
        console.log(Math.PI)

        //上舍入:返回一个比指定数大的最小整数值
        console.log(Math.ceil(9.00001))//10

        //下舍入:返回一个比指定数小的最大整数值
        console.log(Math.floor(9.999999999))//9

        //四舍五入:  <0.5舍去 ≥0.5就进1
        console.log(Math.round(5.50000000001));

        //random():随机返回一个≥0.0,小于1.0之间的浮点数
        var num1=Math.random
        console.log(num1);

        //返回一个[0.0 , 10.0)之间的浮点数
        console.log(Math.random()*10);

        //返回一个[0.0 , 10.0)
        console.log(parseInt(Math.random()*10));

        //随机返回一个[39 , 51)之间的整数
        console.log(parseInt(Math.random()*12)+39)
    </script>

函数

定义函数

函数声明 function 函数名 () {  //函数体  }     函数表达式   var 变量 = 匿名函数 ;

命名函数和匿名函数

    如果函数有名字,就是命名函数
    如果函数没有名字,就是匿名函数
    区别
        如果在页面中有两个同名的命名函数,后面的一个命名函数会覆盖前面的命名函数
        如果在页面中有两个同名的命名函数,后面的一个匿名函数不会覆盖前面的匿名函数

    <script>
        function f1(){
            console.log("我是恁叠")
        }

        //命名函数
        f1();
        function f1(){
            console.log("我是你爹")
        }

        //命名函数调用
        f1();
        //如果在页面中有两个同名的命名函数,后面的一个命名函数会覆盖前面的命名函数

        var f2=function(){
            console.log('马力');
        }

        //匿名函数
        f2();
        var f2=function(){
            console.log('立马');
        }

        //匿名函数调用
        f2();
        //如果在页面中有两个同名的命名函数,后面的一个匿名函数不会覆盖前面的匿名函数
    </script>

 函数自调用
(function f2(){
        console.log("声明函数同时调用函数")
})();

    <script>
        //先声明函数
        function f1(){
            console.log("我是恁叠");
        }
        f1();

        //声明函数的同时进行调用
        (function f2(){
            console.log("声明函数同时调用函数")
        })();
    </script>

函数的数据类型
    结论:函数是有数据类型,它的数据类型是:function 

    <script>
        function f1(){
            console.log('qwert');
        }

        console.log(typeof f1());//function

        var f2 = function(){
            console.log('asdfg');
        }

        console.log(typeof f2());//function
    </script>

函数作为函数的参数

回调函数

在一个函数中去调用另外一个函数,调用的这个函数是由参数传递过来的

function f1(x , y){
  console.log(x+y);
}
function f1(fn){
  fn();
}
function f2(){
  console.log("我是回调函数")
}
f1(f2);

函数里的return

任何数据类型都可以作为返回值

    <script>
        function max(num1,num2){
            if(num1>num2){
                return num1;
            }else{
                return num2;
            }
        }
        var max=max(100,200);
        console.log(max);
    </script>

 函数的返回值是一个函数

    <script>
        function f1(){
            console.log("f1函数调用了");
            return function(){
                console.log("我是f1函数里的return返回的结果")
            }
        }
        //ff是一个匿名函数
        var ff=f1();
        ff();
    </script>

js变量的作用域

    js没有作用域的概念,但是函数中定义的变量只能在函数中使用
    没有使用var声明的变量自动升级为全局变量,在函数外也可以使用

隐式全局变量和全局变量

    隐式全局变量
        指声明变量时没有使用声明变量的关键字
    隐式全局变量是可以被删除的,但是全局变量不会

作用域链

    沿着作用域链一级一级地搜索的过程。搜索过程始终从作用域链底端开始,然后逐级向上回溯,直到找到为止(如果找不到,通常会报错)

    <script>
        var num = 10;
        function f1() {
            var num = 20;

            function f2() {
                var num = 30;

                function f3() {
                    var num = 50;
                    console.log(num);
                }
                f3();
            }
            f2();
        }
        f1();
    </script>

 这样输出的是50,如果把f3中的输出代码注释掉就是输出f2中的数据30

预解析

    1、变量的声明提前了----提前到当前所在的作用域的最上面
    2、函数的声明也会被提前---提前到当前所在的作用域的最上面 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放在糖果旁的是我很想回忆的甜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值