JavaScript
中的所有事物都是对象:字符串、数值、数组、函数等,也允许JavaScript
自定义对象。
JavaScript
提供多个内建对象,比如 String、Date、Array
等。对象只是带有属性和方法的特殊数据类型。
访问对象的属性
objectName.propertyName
访问对象的方法
方法是能够在对象上执行的动作。调用方法的语法:objectName.methodName()
例如:
//使用了 String 对象的 toUpperCase() 方法来将文本转换为大写
var message="Hello world!";
var x=message.toUpperCase();```
**创建javaScript**
创建新对象有两种不同的方法:
- 定义并创建对象的实例
- 使用函数来定义对象,然后创建新的对象实例
定义并创建对象的实例:
person=new Object();
person.firstname="Bill";
person.lastname="Gates";
person.age=56;
person.eyecolor="blue";```
也可以写成以下这样:
person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};
也可以使用对象构造器创建:
<html>
<body>
<script>
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
}
myFather=new person("Bill","Gates",56,"blue");
document.write(myFather.firstname + " is " + myFather.age + " years old.");
</script>
</body>
</html>```
**JavaScript 类**
`JavaScript` 是面向对象的语言,但 `JavaScript` 不使用类。在 `JavaScript `中,不会创建类,也不会通过类来创建对象(就像在其他面向对象的语言中那样)。`JavaScript` 基于 `prototype`,而不是基于类的。
**JavaScript for...in 循环**
`JavaScript for...in `语句循环遍历对象的属性。
for (对象中的变量)
{
要执行的代码
}```
for...in 循环中的代码块将针对每个属性执行一次
//执行属性fname、lname、age
var person={fname:"Bill",lname:"Gates",age:56};
for (x in person)
{
txt=txt + person[x];
}```
**javaScript数字**
所有` JavaScript `数字均为 64 位,`JavaScript `不是类型语言。与许多其他编程语言不同,`JavaScript `不定义不同类型的数字,比如整数、短、长、浮点等。`JavaScript `中的所有数字都存储为根为 10 的 64 位(8 比特),浮点数。
- 八进制和十六进制
如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 "x",则解释为十六进制数。
**数字属性和方法**
属性:
MAX VALUE//最大值
MIN VALUE//最小值
NEGATIVE INFINITIVE//负无穷大,溢出时返回该值
POSITIVE INFINITIVE// 正无穷大,溢出时返回该值
NaN//非数字值
prototype//向对象添加属性和方法
constructor// 返回对创建此对象的 Number 函数的引用```
方法:
toExponential()//把对象的值转换为指数计数法
toFixed()// 把数字转换为字符串,结果是小数点后有指定位数的数字
toPrecision()//[n](http://www.w3school.com.cn/jsref/jsref_toprecision.asp)
把数字格式化为指定的长度
toString()// 把数字转换为字符串,使用指定的基数
valueOf()// 返回一个 Number 对象的基本数字值```
**JavaScript 字符串(String)对象**
//使用字符串对象的长度属性来计算字符串的长度。
var txt="Hello world!"
document.write(txt.length)```
使用字符串对象的toUpperCase()方法将字符串转换为大写:
var txt="Hello world!"
document.write(txt.toUpperCase())```
// 使用replace() 方法在字符串中用某些字符替换另一些字符。
<script type="text/javascript">
var str="Hello Microsoft!"
document.write(str.replace(/Microsoft/,"World"))
</script>
//将会输出“Hello World"
还有很多方法,比如:indexOf()
可以定义字符串某一个字符首次出现的位置。match()
可以查找字符串中特定的字符,如果找到的话,返回这个字符。
JavaScript Date(日期)对象
属性
constructor//返回对创建此对象的 Date 函数的引用。
prototype //向对象添加属性和方法。```
方法:
Date()//返回当日的日期和时间
getDate()//从 Date 对象返回一个月中的某一天 (1 ~ 31)
getHours()//返回 Date 对象的小时 (0 ~ 23)
getTime()//返回 1970 年 1 月 1 日至今的毫秒数。
上面列举的都是常见的,还有很多没有提及到的,请点击[日期对象](http://www.w3school.com.cn/jsref/jsref_obj_date.asp)
**JavaScript Array(数组)对象**
`Array `对象用于在单个的变量中存储多个值。
创建 `Array` 对象的语法:
new Array();
new Array(size);// size 是期望的数组元素个数。返回的数组,length 字段将被设为
size 的值
new Array(element0, element1, ..., elementn);//element ..., elementn 是参数
列表。当使用这些参数来调用构造函数 Array() 时,新创建的数组的元素就会被初始化为这
些值。它的 length 字段也会被设置为参数的个数```
返回值
- 返回新创建并被初始化了的数组。
- 如果调用构造函数
Array()
时没有使用参数,那么返回的数组为空,length
字段为 0。 - 当调用构造函数时只传递给它一个数字参数,该构造函数将返回具有指定个数、元素为
undefined
的数组。 - 当其他参数调用
Array()
时,该构造函数将用参数指定的值初始化数组。 - 当把构造函数作为函数调用,不使用
new
运算符时,它的行为与使用new
运算符调用它时的行为完全一样。
属性 :
constructor//返回对创建此对象的数组函数的引用
length//设置或返回数组中元素的数目
prototype //向对象添加属性和方法```
方法:
concat() //连接两个或更多的数组,并返回结果
push()//向数组的末尾添加一个或更多元素,并返回新的长度
reverse() //颠倒数组中元素的顺序
toString() //把数组转换为字符串,并返回结果```
上面列举的都是常见的,还有很多没有提及到的,请点击数组对象
JavaScript Boolean(逻辑)对象
Boolean
(逻辑)对象用于将非逻辑值转换为逻辑值(true
或者 false
)。
使用关键字new
来定义。
属性:
constructor//返回对创建此对象的 Boolean 函数的引用
prototype //向对象添加属性和方法。
Boolean 对象方法```
方法:
toSource()//返回该对象的源代码。
toString() //把逻辑值转换为字符串,并返回结果。
valueOf() //返回 Boolean 对象的原始值。```
JavaScript Math(算数)对象
执行常见的算数任务。
常见方法:
abs(x)//返回数的绝对值
random() //返回 0 ~ 1 之间的随机数
round(x)//把数四舍五入为最接近的整数```
Math对象属性还有一些方法一般不常用,详细使用方法请参考[Math对象](http://www.w3school.com.cn/jsref/jsref_obj_math.asp)
###JavaScript RegExp(正则表达式) 对象
用于规定在文本中检索的内容。new 关键词来定义 RegExp 对象。
方法:
- `test()` 检索字符串中的指定值。返回值是 true 或 false
- `exec()` 方索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null
- `compile()` 既可以改变检索模式,也可以添加或删除第二个参数
完整正则表达式对象请点击[正则表达式](http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp)