内置对象,宿主对象,自定义对象的区别?
内置对象:
系统所提供的对象:Object,Array,Math,Date等等。
宿主对象:
JS所运行的环境提供的对象:BOM中的window,DOM中的document
自定义对象:
自定义构造函数所创建的对象 。
Array类型对象:
数组创建方式:
方式1:构造函数Array
// 语法:
var 数组名 = new Array(数据,数据,数据);
// 代码:
var names = new Array('张三','李四','王五','赵六');
方式2:数组字面量(推荐 )
// 语法:
var 数组名 = [数据,数据,数据]; // 数组字面量
// 代码:
var names = ['张三','李四','王五','赵六'];
数组对象常用的方法:
1.向前后数组添加元素:unshift()开头添加 push()末尾添加
// 向数组的开头添加一个或更多元素,并返回新的长度。【原数组会发生变化】
数组名.unshift(newelement1,newelement2,....,newelementX);
// 向数组的末尾添加一个或更多元素,并返回新的长度 【原数组会发生变化】
数组名.push(newelement1,newelement2,....,newelementX);
2从数组前后删除元素:shift()开头删除 pop() 末尾删除
// 删除并返回数组的第一个元素 【原数组会发生变化】
数组名.shift();
// 删除并返回数组的最后一个元素 【原数组会发生变化】
数组名.pop();
3.数组任意位置添加,删除 splice()
// 向/从数组中添加/删除项目,然后返回被删除的项目。【原数组会发生变化】
数组名.splice(index,howmany,item1,.....,itemX)
参数:
index 从哪个位置开始删 数字
howmany 删除几个 数字
item1,.....,itemX 新添加的数据(可以是多个) 可选
4.数组元素的查询 indexOf()第一个索引 lastIndexOf()最后一个索引
// 返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1
数组名.indexOf(searchElement); 【用的较多】
// 返回指定元素在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找
数组名.lastIndexOf(searchElement);
5.数组的反转和排序
// 颠倒数组中元素的顺序。 【原数组会发生变化】
数组名.reverse();
// 对数组的元素进行排序
数组名.sort(); // 默认排序顺序是根据字符串Unicode编码 【了解】
数组名.sort(function(a,b){ //【重点】
return a - b; // 升序(从小到大)
})
数组名.sort(function(a,b){ //【重点】
return a - b; // 升序(从小到大)
})
数组名.sort(function(a,b){ //【重点】
return b - a; // 降序(从大到小)
})
6.数组截取 slice() 和splice()区分开
// 从已有的数组中返回选定的元素。【截取后,不会改变原数组,而是返回新的数组】
数组名.slice(start,end);
7.数组的拼接 join(‘拼接符’)
// 用于把数组中的所有元素放入一个字符串。
数组名.join(separator);
8.数组的其他方法:
// 数组遍历
数组名.forEach(function(value,index,currentArray){
console.log(value);
});
// 过滤出符合筛选条件的元素,返回一个新的数组
数组名.filter(function(value,index,currentArray){
return 条件; // 如:return value >= 1000;
});
// 验证数组中的每一个元素是否都符合指定的条件,返回布尔值
数组名.every(function(value,index,currentArray){
return 条件; // 如:return value >= 1000;
});
// 验证数组中的元素,是否有符合指定条件的,返回布尔值
数组名.some(function(value,index,currentArray){
return 条件; // 如:return value >= 1000;
});
// 遍历数组中的每一个元素,更改后存入一个新的数组中,返回一个新的数组
数组名.map(function(value,index,currentArray){
return 操作; // 如:return value * 2;
});
字符串对象:
字符串的不可变性:
var str = 'abc';
str = 'hello';
//当重新给str赋值 的时候,数据‘abc’不会被更改,依然在内存里
//当重新给字符串赋值时,会在内存里重新开辟一片空间 ,这就是字符串的不可变性
//在大量拼接字符串的时候会有效率问题
为什么基本数据类型字符串可以以像对象一样使用?
// 普通字符串
var str = 'abc'; // 普通字符串不是对象
var len = str.length; // 但是为什么可以像对象一样使用点出东西?
alert(len); // 3
//把字符串包装成对象 → 基本包装类型
var strObj = new String('abc'); // 把字符串包装成对象
var len = strObj.length; // 因为是对象,所以可以点出东西。
alert(len); //3
字符串对象常用方法:
1.获取字符串的单个字符 charAt(index)
字符串.charAt(index);
字符串[index]; // 推荐使用
2.字符串拼接 ‘+’ 和截取slice()
// 拼接
字符串.concat(str1,str2,str3...);
拼接符 + //推荐使用
// 截取
字符串.slice(star,end);
3.查询字符在字符串中是否存在indexOf()
字符串.indexOf();
字符串.lastIndexOf();
4.清除空白符 trim()
字符串.trim(); // 去除字符串两边的空格
5.字母字符 大小写转换 toUpperCase() toLowerCase()
6.字符串替换 replace(older,new)
7.分割字符串split(‘=’)
Math对象
Math对象常用属性和方法:
1. Math.abs(数字); 获取一个数字的绝对值
2. Math.round(数字); 四舍五入
3.Math.PI; π
4.Math.ceil(数字); 向上取整
5.Math.floor(数字); 向下取整
6.Math.random(); 随机数[0,1);
7.Math.max(数字,数字,数字...); 求最大数
8.Math.min(数字,数字,数字...); 求最小数
date对象
Date类型对象介绍
Date类型对象是JavaScript提供的日期和时间的操作接口。它可以表示的时间范围是,1970年1月1日00:00:00前后的各1亿天(单位为毫秒)。
创建Date对象
var 变量名 = new Date(); // 创建当前时间对象
var date = new Date();
console.log(date);
方法2
var 变量名 = new Date(stringdate); // 创建指定的时间对象
// 参数 stringdate, 字符串格式→ 'year-month-date hh:mm:ss' 或 'year/month/date hh:mm:ss'
var date = new Date('2018/10/16 12:12:12');
var date2 = new Date('2018-10-16 12:12:12');
console.log(date);
console.log(date2);
方法3
var 变量名 = new Date(value); // 创建1970年开始value毫秒后的时间对象
// 参数 value, 数字,指的是毫秒数
var date = new Date(99999999999);
console.log(date);
常用的Date类型对象方法
1获取和设置年月日
日期对象.getFullYear() / 日期对象.setFullYear(数字) // 年
日期对象.getMonth() / 日期对象.setMonth(数字) // 月
注意:获取月份是从0开始的
日期对象.getDate() / 日期对象.setDate(数字) //日
2获取和设置时分秒
日期对象.getHours() / 日期对象.setHours(数字) // 时
日期对象.getMinutes() / 日期对象.setMinutes(数字) // 分
日期对象.getSeconds() / 日期对象.setMinutes(数字) // 秒
对象. getMilliseconds() / 对象.setMilliseconds(数字) // 毫秒
3获取星期数
日期对象.getDay(); // 0-6(周日0到周六6) 不能够设置,原因是周天是由今天的日期决定的。
4获取1970年至指定时间的总毫秒数
日期对象.getTime() / 日期对象.setTime(数字);
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有