js第六天

内置对象

js中对象分为三大类 自定义对象 内置对象 浏览器对象(js中独有浏览器对象)
内置对象就是指 JS 语言自带的一些对象,这些对象供开发者使用,并提供了一些常用的或是最基本而必要的功能(属性和方法),内置对象最大的优点就是帮助我们快速开发 JavaScript 提供了多个内置对象:Math、 Date 、Array、String等

如何自主学习对象中的方法

  1. 查文档查阅该方法的功能
  2. 查看该方法里面的参数的意义与类型
  3. 查看返回值的意义和类型
  4. 通过demo进行测试

Math几个常用的属性及方法

属性:Math.PI 圆周率
方法:
Math.abs()取绝对值 并且可以饮食转换

console.log(Math.abs('-1')); // 隐式转换 会把字符串型 -1 转换为数字型

Math.floor()向下取整
Math.ceil()向上取整
Math.round()四舍五入
Math.random() 返回一个0-1的随机小数 [0,1)左闭右开

随机取两个数之间的一个整数(包括这两个数)
function getRandom(min, max) {            	
	return Math.floor(Math.random() * (max - min + 1)) + min;       
  }

date日期属性

date只能通过Date构造函数来实例化日期对象

var date = new Date();

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

例如 Mon Apr 20 2020 21:18:58 GMT+0800 (中国标准时间)
参数常用的写法 数字型 2019, 10, 01 或者是 字符串型 ‘2019-10-1 8:8:8’

var date1 = new Date(2019, 10, 1);//数字型要注意返回的月份是11月
var date2 = new Date('2019-10-1 8:8:8');

重点记住字符串类型的写法
在这里插入图片描述
其中要格外注意getDay得到的星期的排列顺序是[‘星期日’, ‘星期一’, ‘星期二’, ‘星期三’, ‘星期四’, ‘星期五’, ‘星期六’] 也就是说如果是星期日返回的是0
getMonth返回的当前月份也是0-11,缩写上文说的数字型的月会加一
获取总的毫秒数的方法

// 实例化Date对象
var now = new Date();
// 1. 用于获取对象的原始值
console.log(date.valueOf()) 
console.log(date.getTime()) 
// 2. 简单写可以这么做
var now = + new Date();   
// 3. HTML5中提供的方法,有兼容性问题
var now = Date.now();

数组

创建数组有两种方式
字面量

var arr = [1,"test",true];

new Array()

var arr = new Array();

关于Array 后面跟的参数
上面代码中arr创建出的是一个空数组,如果需要使用构造函数Array创建非空数组,可以在创建数组时传入参数
如果只传入一个参数,则参数规定了数组的长度如果传入了多个参数,则参数称为数组的元素

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

检测是否为数组
1.instanceof 可以判断一个对象是否是某个构造函数的实例

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

2.Array.isArray()用于判断一个对象是否为数组,isArray() 是 HTML5 中提供的方法

var arr = [1, 23];
var obj = {};
console.log(Array.isArray(arr));   // true
console.log(Array.isArray(obj));   // false

数组中有进行增加、删除元素的方法,部分方法如下
在这里插入图片描述
push unshift返回的是新数组的长度 原来的数组会发生相应的变化
pop是可以删除数组的最后一个元素 记住一次只能删除一个元素 返回的是删除的那个元素
shift是可以删除数组的第一个元素 记住一次只能删除一个元素 返回的是删除的那个元素
push pop都是在数组的末尾进行操作
unshift shift是对数组的开头进行操作

数组排序
在这里插入图片描述
注意:sort方法需要传入参数来设置升序、降序排序
如果传入“function(a,b){ return a-b;}”,则为升序
如果传入“function(a,b){ return b-a;}”,则为降序

数组中有获取数组指定元素索引值的方法,部分方法如下
在这里插入图片描述

var arr = ['red', 'green', 'blue', 'pink', 'blue'];        console.log(arr.indexOf('blue')); //2
console.log(arr.lastIndexOf('blue')); // 4
console.log(arr.indexOf('yellow')); // 找不到 -1

indexOf可以有第二个参数 也就是从哪个索引号开始查找
数组转换为字符串
在这里插入图片描述
join方法如果不传入参数,则按照 “ , ”拼接元素
join可以自定义分隔符 但是toString只能以,为分隔符

其他几个方法
在这里插入图片描述

字符串对象

为了方便操作基本数据类型,JavaScript 还提供了三个特殊的引用类型:String、Number和 Boolean。 基本包装类型就是把简单数据类型包装成为复杂数据类型,这样基本数据类型就有了属性和方法。
内部相当于:

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

字符串的不可变:
指的是里面的值不可变,虽然看上去可以改变内容,但其实是地址变了,内存中新开辟了一个内存空间。 当重新给字符串变量赋值的时候,变量之前保存的字符串不会被修改,依然在内存中重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变。由于字符串的不可变,在大量拼接字符串的时候会有效率问题

字符串的所有方法都不会修改自身 操作完成后返回的是一个开辟了新空间的新字符串
1.根据字符返回字符所处的位置
在这里插入图片描述

console.log(str.indexOf('春', 3)); // 从索引号是 3的位置开始往后查找

用法类似数组

根据位置返回字符,字符串通过基本包装类型可以调用部分方法来操作字符串,以下是根据位置返回指定位置上的字符:
在这里插入图片描述
charCodeAt(index) 返回相应索引号的字符ASCII值 目的: 判断用户按下了那个键
在这里插入图片描述
replace() 方法用于在字符串中用一些字符替换另一些字符,其使用格式如下:

字符串.replace(被替换的字符串, 要替换为的字符串)

只替换第一个符合标准的字符

 // 有一个字符串 'abcoefoxyozzopp'  要求把里面所有的 o 替换为 *        
var str1 = 'abcoefoxyozzopp';        
while (str1.indexOf('o') !== -1) {            
	 str1 = str1.replace('o', '*');        
}        
	 console.log(str1);

split()方法用于切分字符串,它可以将字符串切分为数组。在切分完毕之后,返回的是一个新数组。
字符串.split(“分割字符”) 与其相反的而时数组的方法join

复杂数据类型(引用类型):在存储时变量中存储的仅仅是地址(引用),通过 new 关键字创建的对象(系统对象、自定义对象),如 Object、Array、Date等;
简单类型传参
函数的形参也可以看做是一个变量,当我们把一个值类型变量作为参数传给函数的形参时,其实是把变量在栈空间里的值复制了一份给形参,那么在方法内部对形参做任何修改,都不会影响到的外部变量。
复杂数据类型传参
函数的形参也可以看做是一个变量,当我们把引用类型变量传给形参时,其实是把变量在栈空间里保存的堆地址复制给了形参,形参和实参其实保存的是同一个堆地址,所以操作的是同一个对象。
复杂数据类型指向的是地址

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值