js基础篇 06 Math Date Array 基本包装类型 String 数据类型补充

06 Math Date Array 基本包装类型 String 数据类型补充

Math

Math数学对象 不是一个构造函数 ,所以我们不需要new 来调用 而是直接使用里面的属性和方法即可

属性

PI

圆周率

方法

max()

返回参数列表中的最大值,如果参数为可以转换为数字的字符串则也会隐式转换为数字在作为参数,若不可以则返回NaN,参数列表为空则返回-Infinity

abs()

返回参数中的值的绝对值,如果参数为可以转换为数字的字符串则也会隐式转换为数字在作为参数,若不可以则返回NaN

floor()

返回参数中的值的向下取整值,如果参数为可以转换为数字的字符串则也会隐式转换为数字在作为参数,若不可以则返回NaN

ceil()

返回参数中的值的向上取整值,如果参数为可以转换为数字的字符串则也会隐式转换为数字在作为参数,若不可以则返回NaN

round()

返回参数中的值的四舍五入值,如果参数为可以转换为数字的字符串则也会隐式转换为数字在作为参数,若不可以则返回NaN

random()

random() 返回一个随机的小数 0 =< x < 1

例子

得到两个数之间的随机整数 并且 包含这2个整数

function getRandom(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

自定义对象

var myMath = {
    PI: 3.141592653,
    max: function() {
        var max = -Infinity;
        for (var i = 1; i < arguments.length; i++) {
            if (arguments[i] > max) {
                max = arguments[i];
            }
        }
        return max;
    }
}

Date

使用Date 如果没有参数 返回当前系统的当前时间

参数常用的写法 数字型 2019, 10, 01 或者是 字符串型 ‘2019-10-1 8:8:8’

语法

var date1 = new Date();//返回当前系统的当前时间
var date2 = new Date(2021, 2, 25);
var date3 = new Date('2021-2-25 23:17:8');

方法

getFullYear()

返回Date的年

getMonth()

返回Date的月份小1个月

getDate()

返回的是 几号

getDay()

周一返回的是 1 周六返回的是 6 但是 周日返回的是 0

getHours()

getMinutes()

getSeconds()

valueOf()、getTime()、now()(H5新增的)

就是Date的时间 距离1970.1.1 总的毫秒数

+new Date()

和valueOf()、getTime()、now()一样都是返回 Date的时间 距离1970.1.1 总的毫秒数

例子
var date1 = +new Date();//返回现在到1970.1.1总的毫秒数
var date2 = +new Date(2021, 2, 25);//返回现在到2021.2.25总的毫秒数
var date3 = +new Date('2021-2-25 23:17:8');//返回现在到2021-2-25 23:17:8总的毫秒数

Array

回顾

04 数组 函数/数组

语法

创建数组

var arr1 = new Array(); // 创建了一个空的数组
var arr2 = []; // 创建了一个空的数组

数组元素没有限定数据类型

var arr3 = [1, 2, '3', true];//数组中没有限制要同一种数据类型

之前笔记(04 数组 函数)中曾说过这两种方法

现在再讲一讲它的构造方法

var arr1 = new Array();  // 创建了一个空的数组
var arr2 = new Array(2);  // 这个2 表示 数组的长度为 2  里面有2个空的数组元素 
var arr3 = new Array(2, 3); // 等价于 [2,3]  这样写表示 里面有2个数组元素 是 2和3

检测是否为数组

instanceof

运算符 它可以用来检测是否为数组

例子
var arr = [];
var obj = {};
console.log(arr instanceof Array);//true
console.log(obj instanceof Array);//false
Array.isArray()

H5新增的方法 ie9以上版本支持

var arr = [];
var obj = {};
console.log(arr instanceof Array);//true
console.log(obj instanceof Array);//false

常用方法

push()

在我们数组的末尾 添加一个或者多个数组元素,并返回数组长度

(1) push 是可以给数组后面追加新的元素
(2) push() 参数直接写 数组元素就可以了
(3) push完毕之后,返回的结果是 新数组的长度
(4) 原数组也会发生变化

var arr = [1, 2, 3];
arr.push(4, 'pink');
unshift()

(1) unshift是可以给数组前面追加新的元素
(2) unshift() 参数直接写 数组元素就可以了
(3) unshift完毕之后,返回的结果是 新数组的长度
(4) 原数组也会发生变化

var arr = [1, 2, 3];
arr.unshift(4, 'pink');
pop()

pop() 它可以删除数组的最后一个元素

(1) pop是可以删除数组的最后一个元素 记住一次只能删除一个元素
(2) pop() 没有参数
(3) pop完毕之后,返回的结果是 删除的那个元素
(4) 原数组也会发生变化

shift()

shift() 它可以删除数组的第一个元素

(1) shift是可以删除数组的第一个元素 记住一次只能删除一个元素
(2) shift() 没有参数
(3) shift完毕之后,返回的结果是 删除的那个元素
(4) 原数组也会发生变化

reverse()

翻转数组

sort(sortby)

这个方法比较复杂,下面这段是从WSchool中摘录下来的

如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较。

如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数 a 和 b,其返回值如下:

  • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
  • 若 a 等于 b,则返回 0。
  • 若 a 大于 b,则返回一个大于 0 的值。
例子
var arr = [13, 4, 77, 1, 7];
arr.sort(function(a, b) {
    //  return a - b; 升序的顺序排列
    return b - a; // 降序的顺序排列
});
indexOf()

从前往后寻找某个元素,若找到则返回该元素的索引,若找不到则返回-1

lastIndexOf()

从后往前寻找某个元素,若找到则返回该元素的索引,若找不到则返回-1

toString()

等同于join()(无参数)或者join(‘,’)

join(str)

在元素之间拼接str,当参数为空时则拼接**‘,’**

基本包装类型

按照之前所说,只有复杂数据类型object才会有属性和方法,但是在01 js基本内容 js输入输出语句 js变量 js数据类型中就讲到,String有一个属性length,而String是简单数据类型之一,这就显得有点令人不解,其原因是因为String类有基本包装类型,将简单数据类型包装成为了复杂数据类型

执行基本包装类型要经过以下步骤

var str=‘js’
  1. 把简单数据类型包装为复杂数据类型

    var temp = new String('js');
    
  2. 把临时变量的值 给 需要初始化的值

    str = temp;
    
  3. 销毁临时变量

    temp = null;
    

String

特性

和java一样,字符串具有不可变性,字符串拼接其实是新建一个字符串出来,会占用我们的内存,所以我们尽量不好大量的去拼接字符串

方法

indexOf()

和数组中的indexOf()一样,从前往后寻找某个元素,若找到则返回该元素的索引,若找不到则返回-1,

这里扩展一下其用法,它可以有第二个参数fromindex,其作用是使寻找是从fromindex这个索引的元素开始往后的

charAt(index)

返回index这个索引的字符值

charCodeAt(index)

返回相应索引号的字符ASCII值

使用该方法的一般目的: 判断用户按下了哪个键

concat()

concat() 方法用于连接两个或多个字符串。

该方法没有改变原有字符串,但是会返回连接两个或多个字符串新字符串。

substr(start,length)

substr() 方法可在字符串中抽取从 start 下标开始的length数目的字符。

replace()

替换字符 replace(‘被替换的字符’, ‘替换为的字符’) 它只会替换第一个字符

其实这个方法还是比较复杂的,引用WSchool的介绍

replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。

具体可以去https://www.w3school.com.cn/jsref/jsref_replace.asp查看

split()

字符转换为数组 split(‘分隔符’),和join()相反

[index]

和数组有点接近,这是H5新增的用法,作用和charAt(index)一致

数据类型补充

简单数据类型null

返回的是一个空的对象 object

如果有个变量我们以后打算存储为对象,暂时没想好放啥, 这个时候就给 null

  1. 简单数据类型 是存放在栈里面 里面直接开辟一个空间存放的是值
  2. 复杂数据类型 首先在栈里面存放地址 十六进制表示 然后这个地址指向堆里面的数据

简单数据类型传参

传值不传址,和其他语言一致,所以函数不会改变简单数据类型的值

复杂数据类型传参

传址,和其他语言一致,所以函数会直接改变复杂数据类型的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值