JavaScript是面向对象的语言,但JavaScript不使用类。JavaScript中将对象分为三种:本地对象、内置对象、宿主对象。
本地对象:是独立于宿主环境的JavaScript预定义对象,通俗地说就是构造函数。
内置对象:由本地对象来实现,且独立于宿主环境的所有对象。在JavaScript程序执行时,内置对象会自动初始化并存在。内置对象是本地对象的一类特例,二者在本质上是相同的。ECMA-262只定义了两个内置对象:Global和Math。
宿主对象:是JavaScript寄宿环境定义的对象(即DOM和BOM),它们由客户端浏览器环境定义,与JavaScript语言本身没有直接关系。但JavaScript能够控制这些对象的行为,实现对其读写操作。

1.字符串对象

字符串对象是和字符数据类型相对应的JavaScript本地对象,属于JavaScript常用对象之一,主要提供诸多方法实现字符串检查、抽取、连接、分隔等字符串相关操作。

1.1创建字符串对象

(1)直接声明字符串变量

[var] 字符串变量=字符串;var string1="Hello";

(2)使用new关键字创建字符串对象

[var] 字符串对象=new String(字符串);
var string1=new String("Hello");

1.2字符串对象的属性

属性 描述
constructor 字符串对象的函数模型
length 字符串长度
prototype 添加字符串对象的属性

2.数学对象

JavaScript语言把所有复杂的数据公式与运算都封装在数学(Math)对象中。该对象不需要实例化就可以直接调用。

2.1数学对象的属性

属性 描述
E 算术常量e,即自然对数的底数 约2.718
LN2 2的自然对数 约0.693
LN10 10的自然对数 约2.302
LOG2E 以2为底的e的对数 约1.414
LOG10E 以10为底的e的对数 约0.434
PI 圆周率 约3.14159
SQRT1_2 1/2的平方根 约0.707
SQRT2 2的平方根 约1.414

Math对象的属性都是数学常数,不能对其赋值,属性值是固定的。
1.round和pow配合-----四舍五入保留小数
四舍五入取整数方法round和求某数的次幂方法配合使用

Math.round(num*pow(10,n))/Math.pow(10,n);//num表示需要四舍五入的数值,n表示需要保留的小数位数
     <script>var nu=12.3456;var a=Math.round(nu*Math.pow(10,1))/Math.pow(10,1);document.write(a);</script>

2.toFixed方法和toPrecision方法
JavaScript针对数值(Number)对象提供了toFixed方法和toPrecision方法,实现了对数值型小数位数的保留操作。

方法 描述
toFixed 返回某数四舍五入之后保留x位小数
toPrecision 返回某数四舍五入之后保留x位字符
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>产生随机数,计算平方、平方根、自然对数</title><script>var data;function getRandom(){data=Math.floor(Math.random()*100);alert("随机数为:"+data);}function calc(){var a=Math.pow(data,2);var b=Math.sqrt(data).toFixed(2);var c=Math.log(data).toFixed(2);alert("随机整数"+data+"平方为"+a+"平方根为"+b+"自然对数为"+c);}</script></head><body><form id="myForm" name="myForm" method="post"><input type="button" value="随机数" onclick="getRandom()" /> <input type="button" value="计算" onclick="calc()" /></form></body>
</html>

3.日期对象

JavaScript内置了本地对象Date。

3.1创建日期对象

在JavaScript中,创建日期对象必须使用new语句。使用关键字new创建新日期对象时,可以使用如下四种方法。
(1)获取本地系统的当前时间

new Date();
<!DOCTYPE html>
<html><head><meta charset="utf-8"><title></title><script type="text/javascript">var date1=new Date();document.write(date1);</script></head><body></body>
</html>


(2)通过一个时间格式的字符串来创建指定的时间对象
日期字符串的格式,年月日之间可使用“,”或“/”,时间数字间使用“:”。

new Date(日期字符串);
     <script type="text/javascript">var date2=new Date("2020,12/8 8:26:30");document.write(date2);</script>


(3)通过多选参数来创建指定时间对象
参数之间使用逗号“,”隔开,年份要使用四位,月份用0至11的整数,代表1月到12月。

new Date(年,月,日,[时,分,秒,毫秒]);
     <script type="text/javascript">var date3=new Date(2020,11,8);var date4=new Date(2020,11,8,8,26,30,0);document.write(date3);document.write(date4);</script>



(4)通过传递一个毫秒数值来创建指定的时间对象
计算起点为1970年1月1日0时0分0秒0毫秒

new Date(毫秒);
     <script type="text/javascript">var date5=new Date(1000000000000000);document.write(date5);</script>

3.3日期运算

(1)日期对象与整数年、月或日相加
日期对象与整数年、月或日相加,需要将相加的结果通过set开头的方法设置成新的日期对象。

date.setDate(date.getDate()+value);//增加天
date.setMonth(date.getMonth()+value);//增加月
date.setFullYear(date.getFullYear()+value);//增加年

(2)日期对象相减
JavaScript中允许两个日期对象相减,相减之后将得到两个日期之间的毫秒数。通常会将毫秒转换为秒、分、小时、天等。

4.数组对象

数组是有序数据的集合,JavaScript中的数组元素允许属于不同数据类型。
数组元素的值可以为任意类型的数据,同一数组的不同元素可以保存不同类型。
数组的长度是不固定的,可以任意延长和缩减。
JavaScript不支持二维或多维数组。但是,JavaScript数组元素可以包含数组。

4.1创建数组对象

JavaScript中使用new关键字创建Array对象,创建数组对象有三种方式。
(1)空数组

var a=new Array();

(2)声明长度为n的空数组

var a=new Array(n);

(3)通过参数列表赋值,创建数组

var a=new Array(元素1,元素2,元素3.....);

4.2数组对象的操作

(1)数组的长度属性—length
可以返回数组对象的长度,也就是数组中元素的个数。length的取值随着数组元素的增减变化,并且用户还可以修改length属性值。假设现在有一个长度为5的数组,那么数组对象的length属性值就为5,如果将length属性值赋值为3,那么数组中的最后两个元素就会被删除,并且数组的长度也会改为3。如果将length属性值赋值为7,那么数组的长度也会改为7,新增加的值均为unfined。所以***length具有快速添加和删除数组末尾元素的能力***。

<script type="text/javascript">var arr=new Array(1,2,3,4,5);document.write("数组的长度为:"+arr.length+"<br />");arr.length=7;document.write("数组的长度为:"+arr.length);
</script>


(2)访问数组
引用数组元素是通过数组的序列号。在JavaScript数组中的元素序列号是从0开始计算的,然后依次加1.可以对数组元素赋值或取值。

数组变量[i]=值;//为数组元素赋值
变量名=数组变量[i];//使用数组元素为变量赋值

for语句

<script type="text/javascript">var arr=new Array(1,2,3,4,5);arr.length=7;for(var i=0;i<arr.length;i++){document.write(arr[i]+"<br />");}
</script>


for…in语句(没有显示出完整的数组元素,将有定义的对象显示出来)

     <script type="text/javascript">var arr=new Array(1,2,3,4,5);arr.length=7;for(var i in arr){document.write(arr[i]+"<br />");}</script>


(3)添加数组元素

  • 修改数组length属性
  • 直接为元素赋值
    (4)删除数组元素
  • 修改数组的length属性
  • 调用JavaScript中的delete—将该元素的值改为unfined,没有删除空间结构
  • 调用JavaScript中数组的方法splice()—彻底删除元素
<script type="text/javascript">var arr=new Array(1,2,3,4,5);arr.length=3;document.write(arr.length+"<br />");delete arr[1];document.write(arr.length+"<br />");document.write(arr[1]+"<br />");
</script>

4.3排序数组和反转数组

JavaScript提供了数组排序的方法sort([比较函数名]),如果没有比较函数,元素按照ASCII字符顺序升序排列;如果给出比较函数,根据函数进行比较。
对于数值型数据,如果按字符比较,得到的结果并不是用户需要的,因此需要借助比较函数。比较函数有两个参数,分别代表每次排序时的两个数组项。sort()排序时每次比较两个数组项都会执行这个参数,并把两个比较的数组项作为参数传递给这个函数。当函数的返回值大于0时就交换两个数组的顺序,否则就不交换,即函数返回值小于0,表示升序排列,函数返回值大于0,表示降序排列。

     <script type="text/javascript">var arr=new Array(40,100,1,5,25,10);document.write("未排序前:");document.write(arr.toString()+"<br />");document.write("默认排序后:");arr.sort();document.write(arr.toString()+"<br />");function asc(a,b){return a-b;}arr.sort(asc);document.write("定制排序后:");document.write(arr.toString()+"<br />");</script>

JavaScript对象 1相关推荐

  1. 如何获取HTML元素对应JavaScript对象?

    <!DOCTYPE html> <html><head><meta charset="UTF-8"><title>< ...

  2. JavaScript对象,方括号和算法

    by Dmitri Grabov 德米特里·格拉波夫(Dmitri Grabov) JavaScript对象,方括号和算法 (JavaScript Objects, Square Brackets a ...

  3. 我对javascript对象的理解

    前言 JavaScript这门语言除了基本类型都是对象,可以说JavaScript核心就是对象,因此理解JavaScript对象及其种种特性至关重要,这是内功.本文介绍了我对es5对象,原型, 原型链 ...

  4. 《JavaScript启示录》——1.21 JavaScript对象和Object()对象

    本节书摘来自异步社区<JavaScript启示录>一书中的第1章,第1.21节,作者:[美]Cody Lindley著,更多章节内容可以访问云栖社区"异步社区"公众号查 ...

  5. 《JavaScript启示录》——第1章 JavaScript对象 1.1创建对象

    本节书摘来自异步社区<JavaScript启示录>一书中的第1章,第1.1节,作者:[美]Cody Lindley著,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...

  6. 如何通过其值获取JavaScript对象中的键?

    本文翻译自:How to get a key in a JavaScript object by its value? I have a quite simple JavaScript object, ...

  7. 如何从JavaScript对象中删除项目[重复]

    本文翻译自:How to remove item from a JavaScript object [duplicate] Possible Duplicate: 可能重复: How to remov ...

  8. 如何遍历JavaScript对象?

    本文翻译自:How to iterate over a JavaScript object? I have an object in JavaScript: 我在JavaScript中有一个对象: { ...

  9. 打印JavaScript对象的内容? [重复]

    本文翻译自:Print content of JavaScript object? [duplicate] This question already has an answer here: 这个问题 ...

  10. 通过属性值从对象数组中获取JavaScript对象[重复]

    本文翻译自:Get JavaScript object from array of objects by value of property [duplicate] This question alr ...

最新文章

  1. [reference]-ARM缩写
  2. 【每周CV论文推荐】 初学深度学习单张图像三维人脸重建需要读的文章
  3. v8学习笔记(一) 调用层次
  4. php中msubstr,PHP学习:thinkphp中字符截取函数msubstr()用法分析
  5. 进程同步(multiprocess.Lock、multiprocess.Semaphore、multiprocess.Event) day38
  6. Python使用数学形态学腐蚀运算删除验证码图片中的干扰噪点和线条
  7. [美国]《暮光之城4:破晓(下)》[BD-RMVB.720p.中英双字][2012年冒险幻想]
  8. 全面了解小微信贷风控
  9. Qt图像中心旋转的两种方法
  10. PhysX Setup
  11. vmware vmbox 使用虚拟机安装Windows11提示电脑不符合最低系统要求的解决方案
  12. C语言入门:数字分离
  13. C#生成word压缩下载
  14. 电脑桌面图标不能正常显示解决办法
  15. 华为 DAYU 整体介绍
  16. 织梦网站数据入库接口(实现图片本地化,自动图片打水印)【原创】
  17. 0914WEB漏洞-二次,加解密,DNS等注入
  18. 【iOS】iPhone4 无SHSH备份如何降级至6.1.2版本?
  19. [ShaderGraph]11.小草摇曳效果
  20. MATLAB矩阵变换--三角阵

热门文章

  1. JAVA-读取excel转成html 将excel表格转换为HTML文件格式 转成前端表格样式
  2. 2020校招搜狗笔试
  3. PiXYZStudio:Revit 模型轻量化
  4. 什么是VTP?(简单介绍)
  5. 直观上理解PCA中特征值和特征向量
  6. Java 电商订单管理设计,基于Java的电商网站的设计与实现
  7. 电脑增加机械硬盘计算机管理,电脑新增加一块硬盘安装并使用的教程
  8. 计算机卡死快捷键,必看!电脑运行卡或软件卡死无响应,怎么办?
  9. Deep Spatio-Temporal Representation for Detection of Road Accidents Using Stacked Autoencoder
  10. opencore 启动总是在win_单双硬盘装Windows/Mac双系统用OpenCore引导菜单添加Windows引导项...