1.遍历数组和键值对
//数组
var arr = [2,3,4,"abc",true]; // 字面值
for(var item in arr) {
console.log(arr[item]);
}
//键值对
var kv = {
"key1":"赵晓虎",
"key2":"牛亮亮"
};
for(var key in kv) {
console.log(kv[key]);
}
2.argument参数
javascript函数体内,arguments像数组(并不是真的数组,是一个Arguments对象, 再次强调)一样,有length属性,可以代表传给函数的参数的个数。
arguments对象的长度是由实参个数而不是形参个数决定的。形参是函数内部重新开辟内存空间存储的变量,但是其与arguments对象内存空间并不重叠。对于arguments和值都存在的情况下,两者值是同步的,但是针对其中一个无值的情况下,对于此无值的情形值不会得以同步。
argument的使用
<script type="text/javascript">
var func = function(n1,n2) {
var arr = arguments;
alert(arr[0] === n1);
alert(arr[1] === n2);
for(var i = 0; i < arr.length; i++) {
console.log(arr[i]);
}
};
func(1,2,3,4,"测试", true);
var foo = function() {
switch(arguments.length) {
case 0: func1(); break;
case 1: func2(); break;
// ...
default: funcN(); break;
}
};
function f(v1) {
alert(v1);
}
function f(v1, v2) {
alert(v1 + ", " + v2);
}
f(1);
</script>
3.Function对象(动态函数)
1.语法
var func = new Function(...);
// Function参数中最后一个参数是方法体,前面的参数都是该方法的参数
// 参数类型都是字符串
var getMax = function(n1, n2) {
return n1 > n2 ? n1 : n2;
};
//
var func = new Function("n1", "n2", "return n1 > n2 ? n1 : n2;");
2.调用方法
<script type="text/javascript">
var func = function() {
// 获得页面中id为txt的元素
// value属性获得其中的值
var txt = document.getElementById("txt").value;
// new Function(txt)();
var func1 = new Function(txt);
func1();
};
</script>
<textarea id="txt"></textarea>
<br />
<input type="button" value="点击执行" οnclick="func();"/>
4.对象json
json是一种简单的数据格式,比xml更轻巧。JSON是JavaScript原生格式,这意味着在JavaScript中处理JSON数据不需要任何特殊的API或工具包。
json可以将javascript对象中表示的一组数据转换为字符串(伪对象),然后就可以在函数之间轻松地传递这个字符串,
或者在异步应用程序中将字符串从web客户端传递给服务端程序。
使用
<script type="text/javascript">
var o = {
"name":"赵晓虎123",
sex:"女",
age:19,
"sayHello":function() {
// jkformat("{0}{1}", 11, 22);
// alert(name);
alert("你好,我是"
+ this.name
+ ",我今年"
+ this.age
+ "岁了,我是"
+ this.sex
+ "的");
}
};
/*
alert(o.name);
alert(o.sex);
alert(o.age);
o.sayHello();
5,js中的对象
js中的对象就是键值对。
函数是一等公民。使用
var foo = function() {};
键值对,值可以是数字、字符串或布尔类型的数据,好比字段
值也可以是函数,好比方法,键就是变量名或函数名
// 对象的字面值(JSON)
var o = {}; // Object对象
var o = {
name:"赵晓虎",
sex:"男",
age:19,
sayHello:function() {
alert("你好")
}
};
6.构造方法与对象
var o1 = {};
var o2 = new Object(); // Object的构造方法
// js中所有的对象类型"来自于"object
构造方法就是普通方法,调用的时候使用new就可以将其作为构造方法来使用了, js没有类,直接使用构造方法创建对象
实现步骤,创建一个函数,new这个函数
添加成员,在构造方法中使用this.成员进行添加,js支持动态成员, 如果一个对象没有定义Memeber的属性,但是现在希望她有
只需要用"对象.Member=值",那么就可以给这个对象创建该成员了。