JavaScript基础学习笔记 第六天

124 阅读5分钟

JavaScript 内置对象

内置对象

  • 对象分为三种 : 自定义对象 , 内置对象 , 浏览器对象
  • 内置对象就是指的 js 语言自带的一些对象 , 这些对象供开发者使用 , 提供了一些基本而且必要的功能

查文挡

  • MDN / W3C 查阅步骤
    • 查询该方法的功能
    • 查看里面的参数的意义和类型
    • 查看返回值的意义和类型
    • 测试 注意 : 参数加入中括号的意思是可选的

Math 对象

  • Math对象不是一个构造函数 , 我们不需要 new 来使用 , 可以直接使用方法和属性即可

  • Math对于内部的参数存在隐式转换 , 如果无法转换 , 输出NaN

    console.log(Math.PI); // 返回 pi 的值
    console.log(Math.max(1,2,3)); // 返回 1, 2, 3 中最大的值
    console.log(Math.max(1, 2, '3')) // 返回1, 2, '3' 中的最大值 ,由于  字符串 '3' 能被转换为数字型 , output : 3 

    // 其他重要Math对象中的方法

    Math.abs(); // 返回参数的绝对值 
    Math.floor(); // 向下取整 
    Math.ceil(); // 向上取整 
    Math.round(); // 四舍五入
    Math.random(); // 随机在 [0 , 1) 返回一个浮点数
    Math.PI(); // 输出PI

Date 对象

  • Date 是构造函数 , 我们必须使用 new 来创建我们的日期对象 , 即获取当前时间必须实例化

  • 如果内部没有参数 , 返回当前系统当前时间

    var date = new Date(); 
    console.log(date); // output : Mon Sep 09 2019 09:14:50 GMT+0800(中国标准时间) (当前时间)
  • 传入字符串
    var date = new Date(2019, 9, 9);
    console.log(date); // Wed Oct 09 2019 00:00:00 GMT+0800 (中国标准时间)
    // 注意此时的月份是 Oct (十月) 
  • 格式化日期
    // 格式化 日期
    var date = new Date();
    console.log(date.getFullYear()); // 返回当前年份
    console.log(date.getMonth()); // 返回当前月份 , 注意计数方式 (0 - 11)
    console.log(date.getDate()); // 返回当前日期 
    console.log(date.getDay()); // 返回当前曜日 , 星期天是第一天 , 计数方式 (0 - 6) , 即 0 代表周日
    // 格式化 时间 (返回时间格式是 24 小时制)
    var date = new Date();
    console.log(date.getHours);  // 返回当前时间的 时
    console.log(date.getMinutes); // 返回但前时间的 分
    console.log(date.getSeconds); // 返回当前时间的 秒
    // 时间戳 , Date 对象是基于 1970 年 1 月 1 日开始计时的 , 毫秒数是不会重复的
    var date = new Date();
    console.log(date.valueOf()); 
    console.log(date.getTime()); // 使用较多的 , 获取自 1970 年 1 月 1 日开始的计时的总毫秒数
    
    var date1 = +new Date(); // 不建议使用
    console.log(date1);
    
    var date = Date.now(); // H5 新增 , 存在兼容性问题 , 也比较常用
    console.log(date);

数组 对象

  • 检测是否为数组类型 :
    Array.isArray(); // 用于确定传递的值是否为一个 Array
    arrayName instanceof Array ; // 返回的是布尔值
  • 数组添加或者删除元素 :
    // push () 在数组的尾部 , 添加一个或者多个元素
    // 例如 : 
    var arr = [1, 2, 3];
    arr.push(4, 5); // 返回的值是改变之后的数组长度
    console.log(arr); // output : [1 , 2 , 3 , 4 , 5] 
    // 注意 : 是在原数组的基础上的改变 
    unshift(); // 在数组的头部 , 添加一个或者多个元素
    // 语法与 push 类似
    // pop () 删除数组最后的一个元素
    var arr = [1, 2, 3, 4, 5];
    arr.pop(); // 只能删除一个元素 , 返回值是删除的那个元素
    // 注意 : 是在原数组的基础上的改变
    
    shift(); // 只能删除一个元素 , 返回值是删除的那个元素
    splice(参数1, 参数2, 参数3,); 
    // 第 1 个参数 : 表示的是数组的第 '索引' 个元素
    // 第 2 个参数 : 表示要删除的元素个数
    // 第 3 个参数以及后面的元素 : 表示增加的元素
    // 这将会改变元素数组
  • 数组排序
    // 反转数组 , 会改变原来的数组
    var arrayName = [1, 2, 3];
    arrayName.reverse();
    console.log(arrayName);
    // 数组排序 , 会改变原来的数组 默认是以 ASCII 升序排序
    var arrayName = [2, 3, 1];
    var fn = function () {
        if(a > b) {
            return 1; // 如果a > b那么 a 就排到 b 前面
        } 
        if(a < b) {
            return -1; //如果a < b那么 b 就排到 a 前面
        }
        return 0;
    }
    arrayName.sort(fn);
  • 索引查找
    indexOf(); // 查找元素的索引 
    lastIndexOf(); // 从最后的元素开始查找 , 只要找到一个 , 就返回索引数值
  • 数组转换为字符串
    toString();
    join(); // 中间可以添加参数 , 来改变分隔符

  • 数组对象其他操作
// 截取数组 , 返回一个新的数组 , 原数组没有发生改变
var newArr =  arr.slice(`参数1`, `参数2`)
// 第一个参数 截取的起始位置
// 第二个参数 截取的终点位置 
//    

字符串对象

  • 基本包装类型

  • 含义 : 就是把简单数据类型包装成复杂数据类型

    var temp = new String(); // 生成临时变量
    str = temp; // 赋值给我们声明的变量
    temp = null; // 销毁临时变量
    // String , Number , Boolean 都可以被包装成复杂数据类型
  • 字符串的不可变性

  • 含义 : 指的是字符串在内存中的不可变型

  • 根据字符返回位置

    indexOf(); // 有可选的第二参数 , 第二个参数 , 是从某个索引号开始寻找
    lastIndexOf(); 
  • 根据位置返回字符
    // 根据位置返回字符
    str.charAt(index); 
    // 根据位置返回字符的 ASCII 码
    str.charCodeAt(index);
    //获取指定位置的字符
    str[index];
  • 字符串的操作方法重点
    // 连接字符串 , arr1 调用 , 链接 arr2
    arr1.concat(arr2); 
    // 截取字符串
    slice(n,m); // n : 为起始位置的索引 , m : 结束位置的索引 ,半包半闭区间不包括 m
    
    // 替换字符串中的某一个字符
    replace('x', 'y'); // 'x' : 被替换掉的字符 , 'y' : 目标字符
    
    //字符串转换为数组
    var str = 'wyf&cxk&lh'
    str.split('&'); 
    console.log(str);

    // 转换字符串大小写
    var str = 'vDASBJKDBFKASBFk';
    console.log(str.toUpperCase());
    console.log(str.toLowerCase());

简单类型 与 复杂类型

  • 简单数据类型 (值类型) 与 复杂数据类型 (引用类型) : 常用的称呼 : 基本数据类型引用类型
  • 堆 与 栈
  • 两种类型的 存储方式
    • 简单数据类型 存放在栈内部 , 在内部开辟的空间直接存数值
    • 复杂数据类型 存放在堆内部 , 首先在栈内部开辟空间 , 存放指向 堆 的地址
  • 两种类型的 传参
    • 基础数据类型传参 , 传递的是值
    • 引用数据类型 , 传递的是内存地址