文档章节

JavaScript 对象

曾劲松
 曾劲松
发布于 2016/11/08 22:16
字数 1124
阅读 10
收藏 0

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数...。此外,JavaScript 允许自定义对象。

创建 JavaScript 对象有两种不同的方法:

  1. 定义并创建对象的实例
  2. 使用函数来定义对象,然后创建新的对象实
//方法一
person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";

//或者使用下面的简写方式。
person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};
//方法二,使用函数来产生对象构造器
function person(firstname,lastname,age,eyecolor)
{
//这是数据
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;

//这是方法
function changeName(name)
{
this.lastname=name;
}
}

//然后使用上面的构造器产生对象实例
var myFather=new person("Bill","Gates",56,"blue");
var myMother=new person("Steve","Jobs",48,"green");

JavaScript 是面向对象的语言,但 JavaScript 不使用类,在 JavaScript 中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。JavaScript 基于 prototype,而不是基于类的。

循环遍历对象的属性:

//循环遍历对象的属性,结果:BillGates56:
var person={fname:"Bill",lname:"Gates",age:56};

for (x in person)
  {
  txt=txt + person[x];
  }

 

数字以及Number 对象

 Number 对象属性和方法手册:http://www.w3school.com.cn/js/js_obj_number.asp

所有 JavaScript 数字均为 64 位。JavaScript 不是类型语言。与许多其他编程语言不同,JavaScript 不定义不同类型的数字,比如整数、短、长、浮点等等。JavaScript 中的所有数字都存储为根为 10 的 64 位(8 比特),浮点数。

Number 对象是原始数值的包装对象。创建 Number 对象的语法:

var myNum=new Number(value);
var myNum=Number(value);
//当 Number() 和运算符 new 一起作为构造函数使用时,它返回一个新创建的 Number 对象。
//把 Number() 作为一个函数来调用,它将把自己的参数转换成一个原始的数值,
//并且返回这个值(如果转换失败,则返回 NaN)。

字符串(String)对象

String 对象属性和方法手册http://www.w3school.com.cn/jsref/jsref_obj_string.asp

String 对象的 length 属性声明了该字符串中的字符数。

需要注意的是,JavaScript 的字符串是不可变的(immutable),String 类定义的方法都不能改变字符串的内容。像 String.toUpperCase() 这样的方法,返回的是全新的字符串,而不是修改原始字符串。

Date(日期)对象

日期对象参考手册:http://www.w3school.com.cn/jsref/jsref_obj_date.asp

注意的问题,我们为日期对象设置了一个特定的日期 (2008 年 8 9 日):

var myDate=new Date()
myDate.setFullYear(2008,7,9)

注意:表示月份的参数介于 0 到 11 之间。也就是说,如果希望把月设置为 8 月,则参数应该是 7。

<html>
<head>
<script type="text/javascript">
function startTime()
{
var today=new Date()
var h=today.getHours()
var m=today.getMinutes()
var s=today.getSeconds()
// add a zero in front of numbers<10
m=checkTime(m)
s=checkTime(s)
document.getElementById('txt').innerHTML=h+":"+m+":"+s
setTimeout('startTime()',500)
//注意这个函数不是重复执行的,setInterval()才是
//还有clearTimeout( )
}

function checkTime(i)
{
if (i<10) 
  {i="0" + i}
  return i
}
</script>
</head>

<body onload="startTime()">
<div id="txt"></div>
<input type="button" value="停止计时" onclick="clearTimeout(t)"></input>
<input type="button" value="开始计时" onclick="startTime()"></input>
</body>
</html>

(数组)对象

数组参考手册:http://www.w3school.com.cn/jsref/jsref_obj_array.asp

var mycars = new Array()
mycars[0] = "Saab"
mycars[1] = "Volvo"
mycars[2] = "BMW"

for (x in mycars)//注意这里的x是下标,不是内容
{
document.write(mycars[x] + "<br />")
}

//合并两个数组
arr.concat(arr2)

//使用 join() 方法将数组的所有元素组成一个字符串。
var arr = new Array(3);
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"

document.write(arr.join());//默认以逗号为分隔组成字符串
document.write("<br />");
document.write(arr.join("."));//以点号为分隔组成字符串

//排序
function sortNumber(a, b)
{
return a - b
}

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />")
document.write(arr.sort(sortNumber))

 Boolean(逻辑)对象

Boolean(逻辑)对象用于将非逻辑值转换为逻辑值(true 或者 false)。您可以将 Boolean 对象理解为一个产生逻辑值的对象包装器。

var myBoolean=new Boolean(false);//结果是false
var b6=new Boolean("false")      //字符串的结果是true

Math(算数)对象

Math 对象参考手册(很详细):http://www.w3school.com.cn/jsref/jsref_obj_math.asp

Math(算数)对象的作用是:执行常见的算数任务。Math 对象提供多种算数值类型和函数。无需在使用这个对象之前对它进行定义。

Math.round(0.60)//四舍五入 结果为1

RegExp 对象

RegExp 对象用于存储检索模式。通过 new 关键词来定义 RegExp 对象。

RegExp 对象只有 3 个方法:test()、exec() 以及 compile()。

 

© 著作权归作者所有

上一篇: jQuery
下一篇: JavaScript快速入门
曾劲松
粉丝 5
博文 200
码字总数 141434
作品 0
武汉
私信 提问

暂无文章

Docker搭建Mysql集群、主从同步复制

1、创建数据挂载点: mkdir /opt/mysql-master/mysql、/opt/mysql-master/conf.d、/opt/mysql-slave/conf.d、/opt/mysql-slave/conf.d 2、分别在master、slave节点文件目录conf.d下创建touch......

WALK_MAN
16分钟前
0
0
手把手教你做中间件开发(分布式缓存篇)-借助redis已有的网络相关.c和.h文件,半小时快速实现一个epoll异步网络框架,程序demo

本文档配合主要对如下demo进行配合说明: 借助redis已有的网络相关.c和.h文件,半小时快速实现一个epoll异步网络框架,程序demo 0. 手把手教你做中间件、高性能服务器、分布式存储技术交流群 ...

y123456yz
17分钟前
0
0
阿里技术男的成长史:越想证明自己死得越快……

在上海工作8年后,身为部门经理的钱磊,管理着一家ERP公司的百十来号员工,“再往上爬就是老板和他儿子了……从这个领域的技术角度来讲算是做到了顶。”05年,钱磊就开始关注一家名字奇怪,做...

阿里云云栖社区
21分钟前
1
0
Spring-boot单元测试(私有方法测试)

Spring-boot的单元测试网上有了很多,当项目是可以使用spring-boot正常运行时,只要在测试类上添加如下配置就使用@Autowired的方式进行单元测试 @RunWith(SpringJUnit4ClassRunner.class)@...

琴兽
38分钟前
0
0
spring cloud(第一部)框架概述

关于微服务 近几年,'微服务'这个词越来越多的被身边的人所提及,到底什么是微服务,为什么微服务总是伴随着spring cloud被人们所提及,这里笔者结合多年的技术经历跟大家分享下自己的理解:...

白中墨
38分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部