对象
JavaScript 的所有数据都可以被视为对象,而每个对象都有其 属性(properties)和 方法(methods)。
创建对象
/*
* 使用new关键字调用的函数,是构造函数constructor
* 构造函数是专门用来创建对象的函数
* 使用typeof检查一个对象时,会返回object
*/
/*
* 在对象中保存的值称为属性
* 向对象添加属性
* 语法:对象.属性名 = 属性值;
*/
killer = new Object(); //创建对象 killer.name = "mysterious"; // 对象的名字 killer.age = "18"; // 对象的年龄 killer.study = function(){ alert("学习"); } killer.eat = function(){ alert("吃饭"); }
或:
var killer = {}; killer.name = "Tom";
再者:
var killer = { name:"Tom"; age:"19"; }
采用函数的方式新建对象:
function killer(name,age) { this.name = name; this.age = age; this.study = function() { alert("studying"); }; this.eat = function() { alert("eating"); } }
然后通过 new 创建 killer 对象的实例:
var killer1 = new killer('Tom','19'); var killer2 = new killer('Jack','20');
访问
访问对象的属性或调用对象的方法,通过符号“.”。
/*
* 读取对象中的属性
* 语法:对象.属性名
*
* 如果读取对象中没有的属性,不会报错而是会返回undefined
*/
var x = killer1.name; var y = killer1.age; killer1.eat(); // 调用对象的方法
/*
* 如果要使用特殊的属性名,不能采用.的方式来操作
* 需要使用另一种方式:
* 语法:对象["属性名"] = 属性值
* 读取时也需要采用这种方式
*
* 使用[]这种形式去操作属性,更加的灵活,
* 在[]中可以直接传递一个变量,这样变量值是多少就会读取那个属性
*
*/
obj["123"] = 789; obj["nihao"] = "你好"; var n = "nihao"; //console.log(obj["123"]);
/*
* in 运算符
* - 通过该运算符可以检查一个对象中是否含有指定的属性
* 如果有则返回true,没有则返回false
* - 语法:
* "属性名" in 对象
*/
//console.log(obj.test2); //检查obj中是否含有test2属性 //console.log("test2" in obj); //console.log("test" in obj); console.log("name" in obj);
对象字面量
/*
* 使用对象字面量,可以在创建对象时,直接指定对象中的属性
* 语法:{属性名:属性值,属性名:属性值....}
* 对象字面量的属性名可以加引号也可以不加,建议不加,
* 如果要使用一些特殊的名字,则必须加引号
*
* 属性名和属性值是一组一组的名值对结构,
* 名和值之间使用:连接,多个名值对之间使用,隔开
* 如果一个属性之后没有其他的属性了,就不要写,
*/
var obj2 = { name:"猪八戒", age:13, gender:"男", test:{name:"沙僧"} }; console.log(obj2.test);
内置对象
String 字符串对象
String 的属性
该对象只有一个属性,即 length,表示字符串中的字符个数,包括所有的空格和符号
String 的方法
String 对象共有 19 个内置方法,主要包括字符串在页面中的显示、字体大小、字体颜色、字符的搜索以及字符的大小写转换等功能,下面是一些常用的:
charAt(n) :返回该字符串第 n 位的单个字符。(从 0 开始计数)
charCodeAt(n) :返回该字符串第 n 位的单个字符的 ASCII 码。
indexOf() :用法:string_1.indexOf(string_2,n); 从字符串 string_1 的第 n 位开始搜索,查找 string_2,返回查找到的位置,如果未找到,则返回 -1,其中 n 可以不填,默认从第 0 位开始查找。
lastIndexOf() :跟 indexOf() 相似,不过是从后边开始找。
split('分隔符') :将字符串按照指定的分隔符分离开,返回一个数组,例如:'1&2&345&678'.split('&');返回数组:1,2,345,678。
substring(n,m) :返回原字符串从 n 位置到 m 位置的子串。
substr(n,x) :返回原字符串从 n 位置开始,长度为 x 的子串。
toLowerCase() :返回把原字符串所有大写字母都变成小写的字符串。
toUpperCase() :返回把原字符串所有小写字母都变成大写的字符串。
Math 对象
“数学”对象,提供对数据的数学计算。
Math 的几个属性,是数学上几个常用的值:
E :返回常数 e (2.718281828...)。
LN2 :返回 2 的自然对数 (ln 2)。
LN10 :返回 10 的自然对数 (ln 10)。
LOG2E :返回以 2 为底的 e 的对数 (log2e)。
LOG10E :返回以 10 为底的 e 的对数 (log10e)。
PI :返回π(3.1415926535...)。
SQRT1_2 :返回 1/2 的平方根。
SQRT2 :返回 2 的平方根。
Math 的方法
Math 的内置方法,是一些数学上常用的数学运算:
abs(x) :返回 x 的绝对值。
round(x) :返回 x 四舍五入后的值。
sqrt(x) :返回 x 的平方根。
ceil(x) :返回大于等于 x 的最小整数。
floor(x) :返回小于等于 x 的最大整数。
sin(x) :返回 x 的正弦。
cos(x) :返回 x 的余弦。
tan(x) :返回 x 的正切。
acos(x) :返回 x 的反余弦值(余弦值等于 x 的角度),用弧度表示。
asin(x) :返回 x 的反正弦值。
atan(x) :返回 x 的反正切值。
exp(x) :返回 e 的 x 次幂 (e^x)。
pow(n, m) :返回 n 的 m 次幂 (nm)。
log(x) :返回 x 的自然对数 (ln x)。
max(a, b) :返回 a, b 中较大的数。
min(a, b) :返回 a, b 中较小的数。
random() :返回大于 0 小于 1 的一个随机数。
Array 数组对象
数组对象是对象的集合,里边的对象可以是不同类型的。数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置(从 0 开始计数)。
数组下标表示方法是用方括号括起来,比如:
myArray[2]="hello"
注意:JavaScript只有一维数组,要使用多维数组,请用这种虚拟法:
var myArray = new Array(new Array(), new Array(), new Array(), ...);
其实这是一个一维数组,里边的每一个元素又是一个数组。调用这个“二维数组”的元素时:
myArray[2][3] = ...;
Array 的属性
length :返回数组的长度,即数组里有多少个元素。它等于数组里最后一个元素的下标加一。
因此,想添加一个元素,只需要:
`` myArray[myArray.length] = ...;
####(2)Array 的方法
- join("指定分隔符") :返回一个字符串,把数组元素串起来,元素间用指定分隔符隔开。
- toString() :把数组转为字符串,并返回结果。
- reverse() :使数组元素倒序。
- slice(n,m) :返回子数组,从数组第 n 个元素到第 m 个元素。
- sort(SortFunction) :按照指定的 SortFunction 将数组的元素排序。
- concat(Array\_1,Array\_2) :用于连接两个或多个数组。