JavaScript学习笔记之对象
在 JavaScript 中一切皆对象,包括数字、字符串、函数等等,此外,JavaScript 还允许自定义对象
1、自定义对象
(1)定义对象
JavaScript 是面向对象的语言,但 JavaScript 不使用类,因此也不会通过类来创建对象
JavaScript 除了可以使用内置对象,还允许通过函数来定义对象
function person(firstName,lastName)
{
this.firstName = firstName;
this.lastName = lastName;
this.setName = setName;
function setName(firstName,lastName)
{
this.firstName = firstName;
this.lastName = lastName;
}
}
(2)创建对象
var obj = new person("Bill","Gates");
(3)访问属性和方法
obj.setName("Steve","Jobs")
document.write(obj.firstName + " " + obj.lastName + "<br />");
// Steve Jobs
(4)添加属性
obj.age = 50;
document.write(obj.age + "<br />");
// 50
(5)遍历属性
for (x in obj)
{
document.write(x + " ");
}
// firstName lastName setName age
以下是 JavaScript 中常用的内建对象
2、Array
Array 对象用于在单个变量中存储多个值
可以使用以下语句创建 Array 对象:
var myArray = new Array();
var myArray = new Array(size);
// 参数 size 是期望的元素个数
var myArray = new Array(element0, element1, ..., elementn);
// 参数 element0 ..., elementn 是初始元素列表
(1)属性
- constructor:对创建对象的函数的引用
var test = new Array();
if (test.constructor==Array) {document.write("This is an Array");}
if (test.constructor==Boolean) {document.write("This is a Boolean");}
if (test.constructor==Date) {document.write("This is a Date");}
// This is an Array
document.write(test.constructor);
// function Array() { [native code] }
- length:数组中元素的数目
(2)方法
添加或删除元素
concat(array1, ...... ,arrayX):连接数组,并返回结果
- pop():删除并返回数组的最后一个元素
- push(element1, .... ,elementX):向数组的末尾添加一个或更多元素,并返回新的长度
- shift():删除并返回数组的第一个元素,直接修改原有对象
unshift(element1, .... ,elementX):向数组的开头添加一个或更多元素,并返回新的长度,直接修改原有对象
splice(index,howmany,element1,.....,elementX):添加/删除元素,返回被删除的元素,index 指定初始位置,howmany 指定数量,element1,.....,elementX 指定向数组添加的新元素
var arr = new Array("A","B","C","D","E","F");
arr.splice(1,4,"T");
document.write(arr);
// A,T,F
工具
- slice(start,end):类似于 Python 中的切片操作,用于创建副本,在原数组上进行操作
var arr = new Array("1","2","3","4","5");
document.write(arr.slice(1,4));
// 2,3,4
- reverse():数组反转
var arr = new Array("5","4","3","2","1");
arr.reverse();
document.write(arr);
// 1,2,3,4,5
- sort(sortby):数组排序,在原数组上进行操作,sortby 是用于指定排序规则的函数,它接受两个参数,返回一个用于说明两个参数相对顺序的数字,默认是按字符编码进行排序
function sortNumber(a, b){return a - b;}
var arr = new Array("5","1","4","2","3");
arr.sort(sortNumber);
document.write(arr);
// 1,2,3,4,5
- join(separator):把数组所有元素放入一个字符串,并通过 separator 指定分隔符进行分隔,默认为逗号
var arr = new Array("A","B","C");
document.write(arr.join());
// A,B,C
转换成字符串
- toString():把数组转换为字符串,并返回结果
- toLocaleString():根据本地时间格式把数组转换为字符串,并返回结果
其它
- toSource():返回 Array 对象的源代码
- valueOf():返回 Array 对象的原始值
3、Boolean
Boolean 对象用于表示两个 "true" 或 "false"
可以使用以下语句创建 Boolean 对象:
new Boolean(value); //构造函数
Boolean(value); //转换函数
(1)属性
- constructor:对创建对象的函数的引用
(2)方法
转换成字符串
- toString():把逻辑值转换为字符串,并返回结果
其它
- toSource():返回 Boolean 对象的源代码
- valueOf():返回 Boolean 对象的原始值
4、Date
Date 对象用于处理日期和时间
可以使用以下语句创建 Date 对象:
var myDate = new Date()
// Date 对象会自动把当前日期和时间作为初始值
(1)属性
- constructor:对创建对象的函数的引用
(2)方法
- Date():返回当前的日期和时间
document.write(Date())
// Fri Feb 15 2019 23:00:00 GMT+0800 (中国标准时间)
返回时间
- getFullYear():返回 Date 对象的年份(4 位数字)
- getMonth():返回 Date 对象的月份(0 ~ 11)
- getDate():返回 Date 对象的日期(1 ~ 31)
- getDay():返回 Date 对象的星期(0 ~ 6)
- getHours():返回 Date 对象的小时(0 ~ 23)
- getMinutes():返回 Date 对象的分钟(0 ~ 59)
- getSeconds():返回 Date 对象的秒数(0 ~ 59)
- getMilliseconds():返回 Date 对象的毫秒(0 ~ 999)
根据世界时返回时间
- getUTCFullYear():根据世界时返回 Date 对象的年份(4 位数字)
- getUTCMonth():根据世界时返回 Date 对象的月份(0 ~ 11)
- getUTCDate():根据世界时返回 Date 对象的日期(1 ~ 31)
- getUTCDay():根据世界时返回 Date 对象的星期(0 ~ 6)
- getUTCHours():根据世界时返回 Date 对象的小时(0 ~ 23)
- getUTCMinutes():根据世界时返回 Date 对象的分钟(0 ~ 59)
- getUTCSeconds():根据世界时返回 Date 对象的秒数(0 ~ 59)
- getUTCMilliseconds():根据世界时返回 Date 对象的毫秒(0 ~ 999)
设置时间
- setFullYear(year,month,day):设置 Date 对象的年份(4 位数字)
- setMonth(month,day):设置 Date 对象的月份(0 ~ 11)
- setDate(day):设置 Date 对象的日期(1 ~ 31)
- setHours(hour,min,sec,millisec):设置 Date 对象的小时(0 ~ 23)
- setMinutes(min,sec,millisec):设置 Date 对象的分钟(0 ~ 59)
- setSeconds(sec,millisec):设置 Date 对象的秒数(0 ~ 59)
- setMilliseconds(millisec):设置 Date 对象的毫秒(0 ~ 999)
根据世界时设置时间
- setUTCFullYear(year,month,day):根据世界时设置 Date 对象的年份(4 位数字)
- setUTCMonth(month,day):根据世界时设置 Date 对象的月份(0 ~ 11)
- setUTCDate(day):根据世界时设置 Date 对象的日期(1 ~ 31)
- setUTCHours(hour,min,sec,millisec):根据世界时设置 Date 对象的小时(0 ~ 23)
- setUTCMinutes(min,sec,millisec):根据世界时设置 Date 对象的分钟(0 ~ 59)
- setUTCSeconds(sec,millisec):根据世界时设置 Date 对象的秒数(0 ~ 59)
- setUTCMilliseconds(millisec):根据世界时设置 Date 对象的毫秒(0 ~ 999)
返回毫秒数与分钟差
- getTime():返回 1970 年 1 月 1 日至今的毫秒数
- UTC():根据世界时返回 1970 年 1 月 1 日 到指定日期的毫秒数
- parse():返回 1970 年 1 月 1 日午夜到指定日期的毫秒数
- getTimezoneOffset():返回本地时间与格林威治标准时间的分钟差
转换成字符串
- toString():把 Date 对象转换为字符串
var d = new Date()
document.write (d.toString())
// Fri Feb 15 2019 23:00:00 GMT+0800 (中国标准时间)
- toTimeString():把 Date 对象的时间部分转换为字符串
- toDateString():把 Date 对象的日期部分转换为字符串
- toUTCString():根据世界时把 Date 对象转换为字符串
var d = new Date()
document.write (d.toUTCString())
// Fri, 15 Feb 2019 15:00:00 GMT
- toLocaleString():根据本地时间格式把 Date 对象转换为字符串
var d = new Date()
document.write (d.toUTCString())
// 2019/2/15 下午11:00:00
- toLocaleTimeString():根据本地时间格式把 Date 对象的时间部分转换为字符串
- toLocaleDateString():根据本地时间格式把 Date 对象的日期部分转换为字符串
其它
- toSource():返回 Date 对象的源代码
- valueOf():返回 Date 对象的原始值
5、Math
Math 对象用于执行数学任务
注意,Math 对象没有构造函数,它的属性和方法不是某个具体对象的方法
(1)属性
- PI:圆周率
document.write(Math.PI);
// 3.141592653589793
- E:自然对数的底数
document.write(Math.E);
// 2.718281828459045
- LN2:以 e 为底的 2 的对数
document.write(Math.LN2);
// 0.6931471805599453
- LN10:以 e 为底的 10 的对数
document.write(Math.LN10);
// 2.302585092994046
- LOG2E:以 2 为底的 e 的对数
document.write(Math.LOG2E);
// 1.4426950408889634
- LOG10E:以 10 为底的 e 的对数
document.write(Math.LOG10E);
// 0.4342944819032518
- SQRT2:2 的平方根
document.write(Math.SQRT2);
// 1.4142135623730951
- SQRT1_2:2 的平方根的倒数
document.write(Math.SQRT1_2);
// 0.7071067811865476
(2)方法
一般
- abs(x):绝对值
- ceil(x):上取整
- floor(x):下取整
- round(x):四舍五入取整
- max(x,y):最大值
- min(x,y):最小值
- random():随机数
指数、对数、幂函数
- exp(x):指数值
- log(x):对数值
- pow(x,y):幂值
- sqrt(x):平方根
三角函数
- sin(x):正弦值
- cos(x):余弦值
- tan(x):正切值
- asin(x):反正弦值
- acos(x):反余弦值
- atan(x):反正切值
其它
- toSource():返回 Date 对象的源代码
- valueOf():返回 Date 对象的原始值
6、Number
在 JavaScript 中只有一种数字类型,它将所有数字储存为 64 位的浮点数
整数(不适用小数或指数计数法)的精度为 15 位,小数的精度为 17 位
若数字的前缀为 0,则 JavaScript 将其解释为八进制数;若前缀为 0x,则解释为十六进制数
可以使用以下语句创建 Number 对象:
new Number(value); //构造函数
Number(value); //转换函数
(1)属性
constructor:对创建对象的函数的引用
MAX_VALUE:可表示的最大的数
document.write(Number.MAX_VALUE);
// 1.7976931348623157e+308
- MIN_VALUE :可表示的最小的数
document.write(Number.MIN_VALUE);
// 5e-324
- POSITIVE_INFINITY:特殊值,表示正无穷大
var x = Number.MAX_VALUE * 2;
if (x == Number.POSITIVE_INFINITY) { document.write(x); }
// Infinity
- NEGATIVE_INFINITY:特殊值,表示负无穷大
var x = -Number.MAX_VALUE * 2;
if (x == Number.NEGATIVE_INFINITY) { document.write(x); }
// -Infinity
- NaN:特殊值,表示非数字值,NaN 与所有值都不相等,包括它自己,但是可以用 isNaN 判断
var x = Number.NaN;
if (isNaN(x)) { document.write(x); }
// NaN
(2)方法
转换成不同格式的数字
- toFixed(num):将 Number 对象四舍五入为指定小数位数的数字,num 用于指定小数位数,默认为 0,范围为 0 ~ 20
var number = new Number(12.34);
document.write(number.toFixed(1))
// 12.3
- toExponential(num):将 Number 对象转换为使用指数计数法的数字,num 用于指定小数位数,默认为使用尽可能多的数字,范围为 0 ~ 20
var number = new Number(123.4);
document.write(number.toExponential(1))
// 1.2e+2
- toPrecision(num):可在对象的值超出指定位数时将其转换为指数计数法,num 用于指定指数计数法的最小位数,默认为调用方法 toString(),范围为 1 ~ 21
转换成字符串
- toString(radix):将数字转换为字符串,radix 用于指定数字基数,默认为 10,范围为 2 ~ 36
var number = new Number(1234);
document.write(number.toString(2))
// 10011010010
- toLocaleString():将数字转换为本地格式的字符串,根据本地规范进行格式化
其它
- valueOf():返回 Number 对象的基本数字值,通常在需要时后台将进行自动调用
7、String
String 对象用于处理文本
JavaScript 中的字符串是不可变的类型,String 类定义的方法都不能改变字符串的内容,它们返回全新的字符串,而非修改原始的字符串
可以使用以下语句创建 String 对象:
new String(value); //构造函数
String(value); //转换函数
(1)属性
- constructor:对创建对象的函数的引用
- length:返回字符串的字符数目
(2)方法
格式控制
- big():大号字符串
- small():小号字符串
- bold():粗体字符串
- italics():斜体字符串
- blink():闪动字符串
- strike():删除线
- sub():下标
- sup():上标
- fontcolor(color):字体颜色
- fontsize(size):字体大小
- fixed():打字机文本
- anchor(anchorname):创建锚
var str = "Hello world";
document.write(str.anchor("myAnchor"));
- link(url):将字符串显示为链接
var str = "Hello world";
document.write(str.link("URL"));
大小写
- toLowerCase():把字符串转换为小写
toUpperCase():把字符串转换为大写
- toLocaleLowerCase():按照本地方式把字符串转换为小写
toLocaleUpperCase():按照本地方式把字符串转换为大写
字符
- charAt():返回指定位置的字符
- charCodeAt():返回指定位置的字符的 Unicode 编码
- fromCharCode(Unicode1, ... ,UnicodeX):从字符编码创建一个字符串
document.write(String.fromCharCode(72,69,76,76,79))
// HELLO
工具
- indexOf(searchvalue,fromindex):检索字符串,searchvalue 定义需要检索的字符串值,fromindex 定义在字符串中开始检索的位置,默认为 0
- lastIndexOf(searchvalue,fromindex):从后向前检索字符串,searchvalue 定义需要检索的字符串值,fromindex 定义在字符串中开始检索的位置,默认为 length - 1
- search(regexp/substr):根据正则表达式/子字符串检索字符串,返回匹配的位置
- match(regexp/substr):根据正则表达式/子字符串检索字符串,返回指定的值
- replace(regexp/substr,replacement):根据正则表达式/子字符串的匹配结果替换字符串
- localeCompare(target):根据本地排序规则与 target 字符串进行比较
- split(separator,howmany):把字符串分割为字符串数组,separator 指定分隔符,howmany 指定返回数组的最大长度
- slice(start,end):类似于 Python 中的切片操作,用于创建副本
- substr(start,length):返回从 start 下标开始的长度为 length 的子字符串
- substring(start,stop):返回从 start 下标开始至 stop 下标结束的子字符串
转换成字符串
- toString():返回字符串
其它
- toSource():返回 String 对象的源代码
- valueOf():返回 String 对象的原始值
8、RegExp
RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具
可以使用以下语句创建 RegExp 对象:
new RegExp(pattern, attributes);
pattern 是一个字符串,用于指定正则表达式的模式
attributes 是一个可选的字符串,用于指定正则表达式的标志
- 若为 "g",则指定全局匹配
- 若为 "i",则指定区分大小写
- 若为 "m",则指定多行匹配
(1)属性
- global:是否具有标志 g
- ignoreCase:是否具有标志 i
- multiline:是否具有标志 m
- lastIndex:开始下一次匹配的字符位置
- source:正则表达式的源文本
(2)方法
- compile():编译正则表达式
- exec(string):检索字符串中的正则表达式的匹配,返回找到的值,并确定其位置
var str = "abcdcbabcdcba";
var patt1 = new RegExp("a");
var result = patt1.exec(str);
document.write(result);
// a
- test(string):检测一个字符串是否匹配某个模式,返回 true 或 false
var str = "abcdcbabcdcba";
var patt1 = new RegExp("a");
var result = patt1.test(str);
document.write(result);
// true
9、Function
全局属性和函数可用于所有内建的 JavaScript 对象
(1)全局属性
- Infinity:正无穷大
- NaN:特殊值,非数字值
- undefined:未定义的值
- Packages:根 JavaPackage 对象
- java:java.* 包层级的一个 JavaPackage
(2)全局函数
编码解码
decodeURI(URIstring):解码某个编码的 URI
- decodeURIComponent(URIstring):解码一个编码的 URI 组件
- encodeURI(URIstring):把字符串编码为 URI
- encodeURIComponent(URIstring):把字符串编码为 URI 组件
escape(string):对字符串进行编码
document.write(escape("Hello World!"));
// Hello%20World%21
- unescape(string):对由 escape() 编码的字符串进行解码
数值检查
- isFinite():检查某个值是否为有穷大
- isNaN():检查某个值是否为数字
对象转换
- Number(object):把对象的值转换为数字
- String(object):把对象的值转换为字符串
- parseInt(string, radix):解析字符串,并返回整数
- parseFloat(string):解析字符串,并返回浮点数
其它
- eval(string):将 string 作为脚本执行
- getClass(object):返回一个 JavaObject 的 JavaClass
10、Event
事件通常与函数配合使用,通过事件驱动函数执行,以下属性可插入 HTML 标签来定义事件动作
鼠标
- onclick:鼠标点击
- ondblclick:鼠标双击
- onmousedown:鼠标按键被按下
- onmouseup:鼠标按键被松开
- onmousemove:鼠标被移动
- onmouseout:鼠标从某元素移开
- onmouseover:鼠标移到某元素上
键盘
- onkeydown:键盘按键被按下
- onkeyup:键盘的键被松
- onkeypress:键盘按键被按下或按住
加载
- onload:加载文档或图像
- onunload:退出页面
- onerror:加载文档或图像时发生错误
- onabort:加载图像时被中断
其它
- onfocus:获得焦点
- onblur:失去焦点
- onselect:文本被选定
- onsubmit:提交按钮被点击
- onchange:用户改变域的内容
- onreset:重置按钮被点击
- onresize:窗口或框架被调整尺寸
参考资料:
http://www.w3school.com.cn/js/index.asp
http://www.w3school.com.cn/jsref/index.asp
JavaScript学习笔记之对象的更多相关文章
- JavaScript:学习笔记(8)——对象扩展运算符
JavaScript:学习笔记(8)——扩展运算符 对象的扩展运算符 扩展运算符是三个点(...).用于取出参数对象的所有可遍历属性,然后拷贝到当前对象之中. 如上图所示,新建了一个对象a,然后通过扩 ...
- JavaScript学习笔记——BOM_window对象
javascript浏览器对象模型-windwo对象 BOM Browser Object Model window对象 是BOM中所有对象的核心. 一.属性 1.(位置类型-获得浏览器的位置) IE ...
- JavaScript学习笔记-JSON对象
JSON 是一种用来序列化对象.数组.数值.字符串.布尔值和 null 的语法.它基于 JavaScript 语法,但是又有区别:一些 JavaScript 值不是 JSON,而某些 JSON 不是 ...
- JavaScript学习笔记——3.对象
JavaScript 对象 - 创建对象 1- var obj = new Object(); 2- var obj = {}; *例子:var person = {Name:"Hack&q ...
- JavaScript学习笔记——DOM_document对象
javascript-document对象详解 DOM document(html xml) object modledocument对象(DOM核心对象) 作用: 1.内容 innerHTML 2. ...
- Javascript学习笔记:对象的属性类型
在ECMAScript中有两种属性:数据属性和访问器属性 1.数据属性 configurable:表示能否通过delete删除属性从而重新定义属性:或者能否修改属性的特性:或者能否把属性修改为访问器属 ...
- JavaScript:学习笔记(9)——Promise对象
JavaScript:学习笔记(9)——Promise对象 引入Promise Primose是异步编程的一种解决方案,比传统的解决方案回调函数和事件更加合理和强大.如下面为基于回调函数的Ajax操作 ...
- JavaScript:学习笔记(10)——XMLHttpRequest对象
JavaScript:学习笔记(10)——XMLHttpRequest对象 XHR对象 使用XMLHttpRequest (XHR)对象可以与服务器交互.您可以从URL获取数据,而无需让整个的页面刷新 ...
- Javascript学习笔记——操作浏览器对象
Javascript学习笔记 目前尝试利用javascript去对于一个浏览器对象完成一系列的访问及修改, 浏览器是网页显示.运行的平台,常用的浏览器有IE.火狐(Firefox).谷歌(Chrome ...
随机推荐
- mac关闭和开启启动声
1 关闭 sudo nvram SystemAudioVolume=%01 2 开启 sudo nvram -d SystemAudioVolume
- codeforces 939E Maximize! 双指针(two pointers)
E. Maximize! time limit per test 3 seconds memory limit per test 256 megabytes input standard input ...
- HTTP协议下可拖动时间轴播放FLV的实现(伪流媒体)
HTTP协议下实现FLV的播放其实并不复杂,当初实现的原理是使用了flowPlayer插件实现的,效果还不错.但仍有两大问题影响着客户的访问情绪: 1.预加载时页面卡死,似乎没有边下边播. 2.偶尔边 ...
- it人必进的几大网站
1.chinaunix网址:http://www.chinaunix.net/简介:中国最大的linux/unix技术社区. 2.itpub网址:http://www.itpub.net/ 简介:有名 ...
- E20170630-ts
displacement n. 取代,替代; 免职,停职; [船] 排水量; [化] 置换;
- curl 采集的时候遇到301怎么办
采集的时候遇到301,采集数据有错误 $ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt( ...
- NS2学习笔记(三)
代理(Agents) 代理是网络层数据包产生和使用的端点,用于实现多层的协议.Agent类部分用OTcl实现,部分用C++实现.C++的代码在~ns/agent.cc和~ns/agent.h中,OTc ...
- 使用Quartz2.2.3做持久化,启动程序后,控制台报错问题
该错误是由mysql-connector-java.jar版本太低导致. MLog clients using log4j logging. Initializing c3p0-0.9.1.1 [bu ...
- 联想 K10(K10e70) 免解锁BL 免rec Magisk Xposed 救砖 ROOT 版本号 S206
>>>重点介绍<<< 第一:本刷机包可卡刷可线刷,刷机包比较大的原因是采用同时兼容卡刷和线刷的格式,所以比较大第二:[卡刷方法]卡刷不要解压刷机包,直接传入手机后用 ...
- Android Eclipse 安装教程 2016.06.13版
2016.8.16修改 第一步,也是最为关键的一步——修改hosts文件 为什么说是最关键的一步呢?因为接下来的操作,我们都需要连接google网,也就是要连接国外的网站.一般情况下,国外的网站是无法 ...