JS中的内置对象与复杂数据类型

Js内置对象

js中的对象分为3种:
①自定义对象
②内置对象 (JS基础内容,属于ECMAScript)
③浏览器对象 (JS独有的,JS API讲解)

1,什么是内置对象
JS自带的对象,提供一些常用和基本的功能,帮助开发者快速开发

2,根据文档查询指定API的使用方法
MDN:Molilla开发者网络,包括HTML,CSS和万维网及HTML5应用的API
MDN:http://developer.mozilla.org/zh-CN/ W3C

3,如何学习对象中的方法:
一,查询方法的功能
二,查看参数的意义和类型
三,查看返回值的意义和类型
四,通过demo进行测试

Math对象的常用方法

math是一个内置对象,有自己的属性和方法,直接使用即可

1,绝对值方法
console.log(Math.abs(1));
console.log(Math.abs(-1)); 
console.log(Math.abs('-1'));
//隐式转换,把字符串转换为数字-1
2,三个取整方法
Math.floor()向下取整,往最小的取值
Math.cell()向上取整,往最大的取值
Math.round()四舍五入
3,随机数方法random()
①返回一个随机的小数  0<=x<1
②这个方法里不含参数
③代码验证
console.log(Math.random());
//想要得到两个数之间的随机整数并包含这两个整数
function getRandom(min,max){
  return Math.floor(Math.random()*(max-min+1))+min;
  }
  console.log(getRandom(1,10));

Date对象的常用方法

日期对象是一个构造函数对象,必须使用new来调用创建日期对象

1,获取当前时间必须实例化
var now=new Date();
console.log(now);
2Date()构造函数的参数
如果括号里面有时间,就返回参数里的时间
格式为('2019-5-1')或者('2019/5/1')
计算机起始时间从1970年开始
距离1970年1月1日,获得Date总的毫秒数
1,valueOf()
2,getTime()
var date = new Date();
console.log(date.valueof);
console.log(date.getTime());

Array对象的常用方法

创建数组的两种方式:

1,字面量创建
var arr=[1,2,3];
console.log(arr[0]);
2,利用new Array()创建
var arr1=new array(2);//表示数组长度为2
var arr1=new array(2,3);//等价于[2,3]
console.log(arr1);

检测是否为数组:

(1)instanceof 运算符
var obj={};
var arr=[];
console.log(arr instanceof array);
console.log(obj instanceof array);

(2) Array.isArray(参数);
H5新增的方法,ie9以上的版本支持
var obj={};
var arr=[];
console.log(Array.isArray(obj));//false
console.log(Array.isArray(arr));//true

push() : 添加数组元素的方法

var arr=[1,2,3];
arr.push(4,'pink');
console.log(arr);
push可以给数组追加新的元素
push参数直接写数组元素即可
Push完毕之后,返回的结果是新数组的长度
原数组也会发生变化

unshift () :在数组的开头添加一个或多个数组元素

arr.unshift('red','purple');
console.log(arr);

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

arr.pop();
console.log(arr);
返回值为删除的元素

shift () : 删除数组的第一个元素

arr.shift();
console.log(arr);

reverse() : 翻转数组

var arr=['pink','red','blue'];
arr.reverse();
console.log(arr);

sort ():数组排序

var arr1=[1,2,5,9,0];
arr1.sort();
console.log(arr1);
sort()只能给个位数排序
var arr1=[1,21,5,19,0];
arr1.sort(function(a,b){
return a-b;//升序排序
return b-a;//降序排序
});
console.log(arr1);

数组索引方法

indexof(数组元素):
从前往后查找,返回数组元素的索引号,找不到元素时返回-1
lastIndexof(数组元素):
从后往前查找,返回最后出现的数组元素的索引号

var arr=['red','blue','green','pink'];
console.log(arr.indexof('blue'));//2

**

重点:数组去重!!

**
有一个数组 [‘c’,‘a’,‘z’,‘a’,‘x’,‘a’,‘x’,‘c’,‘b’ ],要求去除数组中重复的元素

function unique(arr){
    		var newArr=[];
    		for (var i=0;i<arr.length;i++){
    			if(newArr.indexOf(arr[i]) == -1){
    				newArr.push(arr[i]);
    			}
    		}
    		return newArr;
    	}
    	var demo=unique(['c','a','z','a','x','a','x','c','b'] );
    	console.log(demo);

数组转化为字符串

1,toString()方法将我们的数组转换为字符串
var arr=[1,2,4];
console.log(arr.toString());//1,2,4
2,join(分隔符)
var arr1=['green','pink','blue'];
console.log(arr1.join());//green-pink-blue
console.log(arr1.join('-'));//green-blue-pink
console.log(arr1.join('&'));//green&blue&pink

其他补充方法:
concat()返回一个新的数组
slice()返回被截取项目的新数组
splice()返回被删除项目的新数组

String对象的常用方法

基本包装类型:把简单数据类型包装成为复杂数据类型

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

JS中一共有三个特殊的引用类型:String,Number,Boolean

字符串的不可变
指字符串里的值不可变,虽然看上去可以改变内容,实质是地址改变,在内存中开辟了一个内存空间。
因为字符串不可变,所以不要大量的拼接字符串,否则会占据大量内存空间

var str='andy';
console.log(str);//输出andy
str='red';
console.log(str);//输出red

字符串对象的所有方法,都不会修改字符串本身,操作完成会返回新的字符串

根据字符返回位置

var str='改革春风吹满地,春天来了';
console.log(str.indexOf('春');//返回2
console.log(str.indexOf('春',3);//从索引号3开始查找,返回8

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

charAt(index)//根据位置返回字符

var str='andy';
console.log(str.charAt(3));//输出y

//遍历所有的字符
for(var i=0;i<str.length;i++){
console.log(str.charAt(i));
}

charCodeAt(index)//返回索引号位置返回对应的ASCII码,判断用户按下了哪个键
例:var str ='andy';
console.log(str.charCodeAt(0));//返回a对应的ASCII码97

字符串操作方法

1,concat('red','pink','blue');
//输出redpinkblue
2,substr('截取的起始位置','截取的长度');
var str1='改革春风吹满地';
console.log(str1.substr(2,3));
//输出春风
3,replace('被替换的字符','替换为的字符');
只会替换第一个字符
var str='andyandy';
console.log(str.replace('a','b'));
//输出bndyandy

例:敏感词替换
将字符串'sdfdsjddjdnskdjnsd'中的所有j替换为*

```bash
var str='sdfdsjddjdnskdjnsd';
while(str.indexOf('j')!=-1){
	str1=str1.replace('j','*');
	}
	console.log(str1);

字符转换为数组split(‘分隔符’)
join:把数组转换为字符串

var str2='red','pink','blue';
console.log(str2.split(','));
//输出["red","pink","blue"]
var str3='red&pink&blue';
console.log(str3.split('&'));
//输出["red","pink","blue"]

简单类型与复杂类型

简单类型又叫做“基本数据类型”或者“值类型”
在存储时变量中存储的是“值本身”
例如:string,number,boolean,undefined,null
null返回的是一个空的对象(object),如果有个变量我们以后打算存储为对象,但是还没想好放啥,这个时候就给null

复杂数据类型又叫做引用类型 通过new关键字创建的对象(系统对象,自定义对象)
例如Object,Array,Date等
复杂数据类型首先在栈里面存放地址,十六进制表示,然后地址指向堆里面的数据

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

在这里插入图片描述

堆和栈

堆:存储复杂数据类型(对象),一般由程序员分配释放,若程序员不释放,由垃圾回收机制回收

栈:存储简单数据类型,由操作系统自动分配释放存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值