JavaScript对象 1
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相关推荐
- 如何获取HTML元素对应JavaScript对象?
<!DOCTYPE html> <html><head><meta charset="UTF-8"><title>< ...
- JavaScript对象,方括号和算法
by Dmitri Grabov 德米特里·格拉波夫(Dmitri Grabov) JavaScript对象,方括号和算法 (JavaScript Objects, Square Brackets a ...
- 我对javascript对象的理解
前言 JavaScript这门语言除了基本类型都是对象,可以说JavaScript核心就是对象,因此理解JavaScript对象及其种种特性至关重要,这是内功.本文介绍了我对es5对象,原型, 原型链 ...
- 《JavaScript启示录》——1.21 JavaScript对象和Object()对象
本节书摘来自异步社区<JavaScript启示录>一书中的第1章,第1.21节,作者:[美]Cody Lindley著,更多章节内容可以访问云栖社区"异步社区"公众号查 ...
- 《JavaScript启示录》——第1章 JavaScript对象 1.1创建对象
本节书摘来自异步社区<JavaScript启示录>一书中的第1章,第1.1节,作者:[美]Cody Lindley著,更多章节内容可以访问云栖社区"异步社区"公众号查看 ...
- 如何通过其值获取JavaScript对象中的键?
本文翻译自:How to get a key in a JavaScript object by its value? I have a quite simple JavaScript object, ...
- 如何从JavaScript对象中删除项目[重复]
本文翻译自:How to remove item from a JavaScript object [duplicate] Possible Duplicate: 可能重复: How to remov ...
- 如何遍历JavaScript对象?
本文翻译自:How to iterate over a JavaScript object? I have an object in JavaScript: 我在JavaScript中有一个对象: { ...
- 打印JavaScript对象的内容? [重复]
本文翻译自:Print content of JavaScript object? [duplicate] This question already has an answer here: 这个问题 ...
- 通过属性值从对象数组中获取JavaScript对象[重复]
本文翻译自:Get JavaScript object from array of objects by value of property [duplicate] This question alr ...
最新文章
- [reference]-ARM缩写
- 【每周CV论文推荐】 初学深度学习单张图像三维人脸重建需要读的文章
- v8学习笔记(一) 调用层次
- php中msubstr,PHP学习:thinkphp中字符截取函数msubstr()用法分析
- 进程同步(multiprocess.Lock、multiprocess.Semaphore、multiprocess.Event) day38
- Python使用数学形态学腐蚀运算删除验证码图片中的干扰噪点和线条
- [美国]《暮光之城4:破晓(下)》[BD-RMVB.720p.中英双字][2012年冒险幻想]
- 全面了解小微信贷风控
- Qt图像中心旋转的两种方法
- PhysX Setup
- vmware vmbox 使用虚拟机安装Windows11提示电脑不符合最低系统要求的解决方案
- C语言入门:数字分离
- C#生成word压缩下载
- 电脑桌面图标不能正常显示解决办法
- 华为 DAYU 整体介绍
- 织梦网站数据入库接口(实现图片本地化,自动图片打水印)【原创】
- 0914WEB漏洞-二次,加解密,DNS等注入
- 【iOS】iPhone4 无SHSH备份如何降级至6.1.2版本?
- [ShaderGraph]11.小草摇曳效果
- MATLAB矩阵变换--三角阵
热门文章
- JAVA-读取excel转成html 将excel表格转换为HTML文件格式 转成前端表格样式
- 2020校招搜狗笔试
- PiXYZStudio:Revit 模型轻量化
- 什么是VTP?(简单介绍)
- 直观上理解PCA中特征值和特征向量
- Java 电商订单管理设计,基于Java的电商网站的设计与实现
- 电脑增加机械硬盘计算机管理,电脑新增加一块硬盘安装并使用的教程
- 计算机卡死快捷键,必看!电脑运行卡或软件卡死无响应,怎么办?
- Deep Spatio-Temporal Representation for Detection of Road Accidents Using Stacked Autoencoder
- opencore 启动总是在win_单双硬盘装Windows/Mac双系统用OpenCore引导菜单添加Windows引导项...