JavaScript基础(四)对象、数组、对象与数组的常用API

举报
敬 之 发表于 2022/04/15 23:20:16 2022/04/15
【摘要】 目录 一、对象 1. 对象的创建 2. 对象属性的访问 3. 遍历对象属性 4. 检测属性是否存在 5. 对象的方法 二、数组对象  1. 数组的创建 2. 访问数组 3. 数组长度 4. 数组的遍历 5. 数组API 三、各类对象常用API 一、对象       ...

目录

一、对象

1. 对象的创建

2. 对象属性的访问

3. 遍历对象属性

4. 检测属性是否存在

5. 对象的方法

二、数组对象 

1. 数组的创建

2. 访问数组

3. 数组长度

4. 数组的遍历

5. 数组API

三、各类对象常用API


一、对象

        俗话说,万物皆对象。在真实生活中,汽车是一个对象。汽车有诸如车重和颜色等属性,也有诸如启动和停止的方法。在JavaScript中,对象是一组属性与方法的集合,属于引用类型数据。

1. 对象的创建

        在JavaScript中,自己创建的对象就是自定义对象,常用创建方式为字面量方式,格式如下:

{ 属性名 : 属性值 , 属性名 : 属性值 ...... }
 

可以看出,用字面量创建对象很简单,就是直接在大括号里写属性名:属性值。属性名的引号可以省略,但属性名含有特殊字符时必须添加引号。例如:创建一个手机对象,带有颜色、品牌、大小、产地属性,同时因为made-in中间有特殊字符,所以该属性名需要加引号。


  
  1. var phone = {
  2. color:'黑色',
  3. brand:'HUAWEI',
  4. size:6.5,
  5. 'made-in':'北京'
  6. };

第二种创建方式为通过内置的构造函数创建 ,格式如下:

new Object( );
 

此语句表示创建一个空对象,它需要单独的添加每个属性,例如:


  
  1. var car = new Object();//创建空对象car
  2. car.color = '黑色';//添加属性
  3. car.brand = '红旗';
  4. car.width = '2.10米';
  5. car.length = '3.5米';
  6. console.log(car);

2. 对象属性的访问

        格式为:对象.属性名;也可以使用对象[ ' 属性名 ' ];以下代码使用了这两种方式:


  
  1. var laptop = {
  2. lid:1,
  3. title:'手机',
  4. price:3600,
  5. 'shelf-time':'2021-02-02'
  6. }
  7. //console.log(laptop);
  8. //访问属性
  9. console.log(laptop.lid);//1
  10. console.log(laptop['shelf-time']);//2021-02-02
  11. console.log(laptop['title']);//手机

 此外,也可以对属性进行修改或者添加:


  
  1. laptop.price = 5699;//将价格修改为5699
  2. laptop.pic = 'huawei.jpg';//添加图片属性

3. 遍历对象属性

        遍历属性是通过循环的方式(for-in循环)一次次的访问对象中的每个属性,格式为:  

for ( var k in 对象 ) { }   
 

其中,k 代表每个属性名,对象 [k] 代表属性名对应的属性值。看一道例题:


  
  1. //创建对象,保存一组成绩,遍历对象的属性,获取每一个成绩,计算出总成绩和平均成绩
  2. var score = new Object();
  3. score.chi = 89;
  4. score.eng = 80;
  5. score.mat = 100;
  6. score.che = 79;
  7. score.his = 91;
  8. var sum = 0,count = 0;//sum记录成绩之和,count记录科目数
  9. for (var k in score){//开始遍历,获取各科成绩
  10. console.log('课程:' + k,'成绩:' + score[k]);
  11. sum = sum + score[k];
  12. count ++;
  13. }
  14. console.log('总成绩为:' + sum);
  15. console.log('平均成绩为:' + sum / count);

4. 检测属性是否存在

(1)对象名.属性名 === undefined;存在返回false,不存在返回true

(2)对象名.hasOwnProperty('属性名');存在返回true,不存在返回false

(3)'属性名' in 对象名;存在返回true,不存在返回false


  
  1. var emp = {
  2. eid:1,
  3. ename:'aaa',
  4. sex:'男'
  5. };
  6. console.log( emp.salary === undefined );//true 说明不存在
  7. console.log( emp.hasOwnProperty('salary'));//false 说明不存在
  8. console.log('salary' in emp);//false 不存在

5. 对象的方法

        方法对应的是一个函数,如下代码:name是属性,而使用了函数的play就是方法。


  
  1. var person = {
  2. name:'张三',//成员属性
  3. play:function( ){//成员方法
  4. this //指代调用方法时的对象,跟所在的对象没有关系
  5. }
  6. };
  7. person.play( ); //调用方法

 方法的调用和属性基本相同,格式如下:


  
  1. var js = {
  2. sum:function(a,b){
  3. return a + b;
  4. },
  5. ax:function(c,d){
  6. return c * d;
  7. }
  8. };
  9. console.log( js.sum(10,1) );
  10. console.log( js.ax(3,5) );

二、数组对象 

        数组是数据的一组集合,每个数据称作元素,特点是便于操作数据。

1. 数组的创建

        创建方式类似于对象,有字面量创建和内置函数创建,格式如下:


  
  1. //数组字面量
  2. var p = ['张三','李四',20,true];
  3. var salary = [12000,4500,6500,12000,15000];
  4. var emp = ['手机','冰箱','电脑','洗衣机','空调'];
  5. var car = ['红旗','大众','本田','福特','吉利','别克',];
  6. //内置函数创建
  7. var arr = new Array('huawei','xiaomi','oppo','vivo');

2. 访问数组

        格式:数组[下标],下标是数组为每个元素自动添加的编号,从0开始。例如 car[1] 就为大众,emp[0] 就为手机。

3. 数组长度

        格式:数组.length,用于获取数组元素的个数;需要在数组的末尾添加元素时,只需用到 数组 [ 数组.length ] = 值 即可。

4. 数组的遍历


  
  1. for(var i = 0;i < 数组.length;i++){
  2. i //下标
  3. 数组[i] //下标对应的元素
  4. }

举例:创建salary数组,遍历数组获取各个工资 后求和。


  
  1. var salary = [15000,4500,5400,27000,12000];
  2. for (i = 0,sum = 0;i < salary.length;i++){
  3. sum = sum + salary[i];
  4. }
  5. console.log('总工资为:' + sum);

5. 数组API

        API 是 JavaScript 中预定的函数和方法。API 有很多,以下列出比较常用的几种:

API 用途
toString( ) 将数组转为字符串
indexOf( )  检测数组中是否含有某个元素,返回的是元素的下标,如果找不到则返回-1
join( )     将数组转为字符串,同时指定分割的符号 eg:join('-')
concat   拼接多个数组,返回一个大的数组 eg:arr1.concat(arr2)
reverse( )   翻转数组元素
slice( )         截取数组中的元素slice(start,end) ;start是开始的下标,end是结束的下标
splice( )       删除数组中的元素
push( )         往数组的末尾添加一个或者多个元素,返回的是数组的元素,原数组会发生变化
pop( )         删除数组末尾的一个元素,返回的是删除的那个元素,原数组会发生变化
unshift( )     往数组的开头添加一个或者多个元素,返回的是数组的元素,原数组会发生变化
shift( )         删除数组开头的一个元素,返回的是删除的那个元素,原数组会发生变化

用法示例:


  
  1. var arr = ['a','b','c'];
  2. console.log( arr.toString() );//数组转字符串
  3. console.log( arr.join('-') );//将数组转为字符串,同时以“-”隔开
  4. var arr1 = ['张三','李四','王五'];
  5. var arr2 = ['李健','许巍','朴树'];
  6. var arr3 = ['张惠妹','邓丽君','张靓颖'];
  7. console.log( arr1.concat(arr2,arr3) );//拼接数组

三、各类对象常用API

Math对象

API 用途
ceil( )         向上取整  eg:console.log( Math.ceil(3.1) );//4
floor( )       向下取整
round( )     四舍五入取整
random( ) 取随机,0~1之间   (>=0  <1)
Math.PI     获取圆周率
max( )       获取一组数字的最大值
min( )       获取一组数字的最小值
pop(x,y)   计算x的y次幂 
abs( )       取绝对值

Data对象:用于对日期、时间的存储和计算

API 用途
new Date('2021/7/16 10.52.30')
new Date(2021,6,16,10,52,30),第二个参数月份的范围是0~11代表1~12月
new Date( ),存储的是当前操作系统的时间
new Date(1000),存储的是距离计算机元年的毫秒数
创建
getFullYear( )   
getMonth( ),月份0~11代表1~12月
getDate( )
getHours( )
getMinutes( )
getSeconds( )
getDay( ),获取星期(0~6)
getTime( ),获取距离计算机元年的毫秒数
获取存储的日期时间
toLocaleString( )
toLocaleDateString( )
toLocaleTimeString( )
转为本地字符串(存在兼容性问题,用于开发阶段)
setFullYear( )
setMonth( )
setDate( )
setHours( )
setMinutes( )
setSeconds( )
setMilliseconds( )
setTime( ),修改距离计算机元年毫秒数 ,会产生具体的日期日期
修改日期时间

数值对象

API 用途
new Number( )   将数据强制转换为数值,返回对象
Number( )        将数据强制转换为数值,返回数值
toFixed(n)           强制保留小数点后n位
toString(n)         转为字符串,设置为n进制

布尔对象

new Boolean( )     将数据强制转换为布尔型,返回对象
Boolean( )           将数据强制转换为布尔型,返回布尔型
!!数据                   隐式将数据转换为布尔型

文章来源: majinjian.blog.csdn.net,作者:Developer 小马,版权归原作者所有,如需转载,请联系作者。

原文链接:majinjian.blog.csdn.net/article/details/119058394

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。