【前端】JavaScript基础(二)

目录

一、内置对象

 Math对象

 Data日期

数组对象

 字符串对象

字符串的不可变

根据字符返回位置

 根据位置返回字符(重点)

 字符串基本方法(重点)

 字符串的替换与转换

二、简单类型和复杂类型

简单类型传参

复杂类型传参


一、内置对象

JavaScript中的对象分为3种:自定义对象、内置对象、浏览器对象。

内置对象:JS语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法)。

JavaScript提供了多个内置对象:Math、Date、Array、String等。

查阅文档:MDN 网页文档 (mozilla.org)

 Math对象

Math数学对象不是一个构造函数,所有我们不需要new来调用。

1.绝对值

Math.abs('-1');//隐式转换,会把字符型-1转换成数字型。

2.三个取整方法

        Math.floor();  //向下取整 往最小取值
        Math.ceil();  //向上取整 往最大取值
        Math.round(); //四舍五入,.5往大了取,如-1.5取-1

3.随机数方法

Math.random(); //返回一个大于等于0小于1的随机小数,这个方法里面不跟参数
Math.floor(Math.random()*(max-min+1))+min;//得到两个数之间的随机整数

 Data日期

Data()日期对象是一个构造函数,必须使用new来调用创建我们的日期对象。

        var date = new Date();
        console.log(date);
  • 如果没有参数,返回当前系统的当前时间
  • 参数常用的写法,数字型:2022,11,7或者字符串型'2022-11-7 8:8:8'

日期格式化

 注意:返回的月份小1个月,月份要+1。

获取日期的总的毫秒形式(时间戳):

1.通过valueOf()

        //获取距离1970年1月1日过去了多少毫秒数
        var date = new Date();
        console.log(date.valueOf());

2.通过getTime()

        //获取距离1970年1月1日过去了多少毫秒数
        var date = new Date();
        console.log(date.getTime());

 3.简单的写法(最常用的写法)

        var date1 = +new Date();

4.H5新增的方法

        console.log(Date.now());

数组对象

创建数组

1.利用数组字面量

var arr = [1,2,3];

2.利用new Arry()

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

检测是否为数组

1.instanceof检测

        var arr = [];
        console.log(arr instanceof Array);

 2.H5新增方法,ie9以上版本才可以

Array.isArray(参数);

添加删除数组元素的方法

 数组排序

        var arr1 = [13, 4, 77, 1, 7];
        arr1.sort(function (a, b) {
            return a - b;//升序排列
            return b - a;//降序排列
        });

数组索引方法

 数组转换成字符串

 字符串对象

基本包装类型:就是把简单数据类型包装成为复杂数据类型,这个简单数据类型就有了属性和方法。

JavaScript给String、Number和Boolean提供了基本包装类型。

        var str = 'andy';
        console.log(str.length);
        //1.把简单数据类型包装为复杂数据类型
        var temp = new String('andy');
        //2.把临时变量的值给str
        str = temp;
        //3.销毁这个临时变量
        temp = null;

字符串的不可变

指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。

因为字符串的不可变,所以不要大量的拼接字符串

根据字符返回位置

字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串。

 根据位置返回字符(重点)

 字符串基本方法(重点)

 字符串的替换与转换

        //1.替换字符replace('被替换的字符','替换为的字符') 它只会替换第一个字符串
        var str = 'andyandy';
        console.log(str.replace('a', 'b'));
        //有一个字符串'abcoefoxyozzopp'将里面所以的o替换为*
        var str1 = 'abcoefoxyozzopp';
        while (str1.indexOf('o') != -1) {
            str1 = str1.replace('o', '*');
        }
        console.log(str1);

        //2.字符转换为数组 split('分隔符');jion将数组转换成字符串
        var str2 = 'red,pink,blue';
        console.log(str2.split(','));

二、简单类型和复杂类型

简单类型又叫做基本数据类型或者值类型,复杂类型又叫做引用类型。

  • 值类型:简单数据类型/基本数据类型,在存储时变量中存储的就是值本身,因此叫做值类型 string,number,Boolean,undefined,null

简单数据类型null返回的是一个空的对象object,如果有个变量打算存储对象,但是暂时没想好放什么,这个时候就用null

  • 引用类型:复杂数据类型,在存储时变量中存储的仅仅是地址(引用),因此叫做引用数据类型。通过new关键字创建的对象(系统对象、自定义对象),如Object、Array、Date等

简单数据类型存放在栈里面,里面直接开辟一个空间存放的是值。

复杂数据类型存放在堆里面,首先在栈里面存放地址,用十六进制表示,然后这个地址指向堆里面的数据。

注意:JavaScript中没有堆栈的概念。

简单类型传参

函数的形参也可以看做是一个变量,当我们把一个值类型变量作为参数传给函数的形参时,其实是把变量在栈空间里的值复制了一份给形参,那么在方法内部对相残做任何修改,都不会影响到外部变量。

复杂类型传参

函数参数也可以看做是一个变量,我们把引用类型变量传给形参时,其实是把变量在栈空间里保存的堆地址复制给了形参,形参和实参其实保存的是同一个堆地址,所以操作的是同一个对象。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

钥钥睡着了

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

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

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

打赏作者

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

抵扣说明:

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

余额充值