• 每日学到 42 - JavaScript内置对象


    目录

    JavaScript

    数组

    数组属性和方法

    Date对象

    String

    Math对象

    命名函数和匿名函数

    函数自调用

    函数的数据类型

    函数作为函数的参数

    函数的return

    JS变量作用域

    隐式全局变量和全局变量

    作用域链

    预解析


    JavaScript

    数组

    1. var nums = new Array(5);
    2. nums[0] = 10;
    3. nums[1] = 10;
    4. nums[2] = 10;
    5. console.log(nums[0]);//10
    6. console.log(nums[3]);//undefined
    7. console.log(nums[5]);//undefined
    8. console.log(nums.length);//5
    9. // JavaScript可以访问数组中不存在的索引,会返回undefined,不代表数组已经扩容
    10. nums[5] = 10;
    11. console.log(nums.length);//6
    12. // 这时候元素增加,数组长度不够用,所以数组自动扩容。

    数组属性和方法

        属性
            length
                设置或返回数组中元素的数目
        方法
            join( )
                把数组的所有元素放入一个字符串,通过一个分隔符进行分隔
            sort()
                对数组排序
            push()
                向数组末尾添加一个或更多元素,并返回新的长度
            concat()
                合并两个数组

    Date对象

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

    1. var date = new Date(2018,0,7);
    2. //年 月 日 月份从0开始0-11

        方法
            getDate()
                返回 Date 对象的一个月中的每一天,其值介于1~31之间
            getDay()
                返回 Date 对象的星期中的每一天,其值介于0~6之间(注:0代表周日)
            getHours()
                返回 Date 对象的小时数,其值介于0~23之间
            getMinutes()
                返回 Date 对象的分钟数,其值介于0~59之间
            getSeconds()
                返回 Date 对象的秒数,其值介于0~59之间
            getMonth()
                返回 Date 对象的月份,其值介于0~11之间(注:0代表1月份)
            getFullYear()
                返回 Date 对象的年份,其值为4位数

    String

        var 字符串对象=new String(参数)
            参数 是要存储在 String 对象中或转换成原始字符串的值
        属性
            length
                字符串的长度
        方法
            charAt()
                返回在指定位置的字符(注:字符串中第一个字符的下标是0)
            concat()
                连接字符串
            replace()
                用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串
            split()
                把一个字符串分割成字符串数组
            indexOf()
                返回某个指定的字符串值在字符串中首次出现的位置
            lastIndexOf()
                返回一个指定的字符串值最后出现的位置
            match()
                可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配
            toLowerCase()
                把字符串转换为小写
            toUpperCase()
                把字符串转换为大写
            substr()
                从起始索引号提取字符串中指定数目的字符(不建议使用)
            substring()
                提取字符串中两个指定的索引号之间的字符
            slice()
                提取字符串的某个部分,并以新的字符串返回被提取的部分

    Math对象

        ceil()
            对数进行上舍入
        floor()
            对数进行下舍入
        round()
            把数四舍五入为最接近的数
        random()
            返回0.0~1.0之间的随机数

    命名函数和匿名函数

        命名函数:如果函数有名字,就是命名函数
        匿名函数:如果函数没有名字,就是匿名函数

        区别:
            因为非匿名函数在定义时,就已经创建函数对象和作用域对象;所以,即使未调用,也占用内存空间;

            匿名函数,仅在调用时,才临时创建函数对象和作用域链对象;调用完,立即释放,所以匿名函数比非匿名函数更节省内存空间

    理解了上面这两句,下面这段代码的输出结果就能理解了

    1. function f1() {
    2. console.log("哈哈哈");
    3. }
    4. f1();//你好
    5. function f1() {
    6. console.log("你好");
    7. }
    8. f1();//你好
    9. //如果在页面中有两个同名的命名函数,后面的一个命名函数会覆盖前面的命名函数
    10. var f2 = function() {
    11. console.log("函数表达式");
    12. };
    13. f2();//函数表达式
    14. var f2 = function() {
    15. console.log("函数声明");
    16. };
    17. f2();//函数声明
    18. //如果在页面中有两个同名的匿名函数,后面的匿名函数不会覆盖前面的匿名函数

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

    函数自调用

    1. //先声明函数
    2. function f1(){
    3. console.log("先声明函数,再调用");
    4. }
    5. f1();
    6. //声明函数的同时进行调用
    7. (function f2(){
    8. console.log('声明函数的同时调用函数');
    9. })();

    函数的数据类型

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

    函数作为函数的参数

    1. //回调函数:在一个函数中去调用另外一个函数,调用的这个函数是由参数传递过来的
    2. function f1(fn){
    3. console.log('我是f1函数里的输出语句');
    4. fn();
    5. }
    6. function f2(){
    7. console.log("我是回调函数哦~");
    8. }
    9. f1(f2);

    函数的return

    1. function max(num1,num2){
    2. if(num1>num2){
    3. return num1;
    4. }else{
    5. return num2;
    6. }
    7. }
    8. var max =max(1000,200);
    9. console.log(max);

        函数的返回值可以是函数

    1. function f1() {
    2. console.log("f1函数调用了");
    3. return function() {
    4. console.log("我是f1函数里return返回的结果");
    5. };
    6. }
    7. //ff是一个匿名函数
    8. var ff=f1();
    9. ff();

    JS变量作用域

        JS没有作用域的概念,但是,函数中定义的变量只能在函数中使用

        全局变量和局部变量区别:作用域不同、声明位置不同、生存期不同
            全局变量:在函数外声明的变量,网页上的所有脚本和函数都能访问它
            局部变量:在函数内部声明的变量(使用var),只能在函数内部访问它
                可以在不同的函数中使用名称相同的局部变量
            生存期
                局部变量在函数运行以后被删除
                全局变量在页面关闭后被删除

    隐式全局变量和全局变量

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

    作用域链

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

    预解析

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

  • 相关阅读:
    NIO Selector选择器解析
    JUC系列(一&二):线程基础、生产与消费模型、8锁问题
    两种PDF密码都忘记了,怎么办?
    [附源码]计算机毕业设计springboot行程规划app
    探索Web Components
    深度学习中的注意力机制模型及代码实现(SE Attention、CBAM Attention)
    YGG 西班牙 subDAO——Ola GG 正式成立
    广度优先遍历解决迷宫问题
    展锐平台NewGallery2内存泄露分析
    正则表达式
  • 原文地址:https://blog.csdn.net/m0_52588421/article/details/126890953