1. 在js中为某个对象(控件)绑定事件通常可以采取两种手段:
1)<input type=”button” οnclick=”clickHandler();”>
2)<input type=”button” id=”button1”>
<script type=”text/javascript”>
var v = document.getElementById(“button1”);
v.onclick = clickHandler;
</script>
2. 有两种类型的cookie
1) 持久性cookie,会被存储到客户端的硬盘上。
2) 会话Cookie:不会存储到客户端的硬盘上,而是放在浏览器进程所处的内存当中,当浏览器关闭则该会话cookie就销毁了。
3. 在JavaScript中,函数(function)就是对象。
4. 在JavaScript中,没有方法(函数)重载的概念。
5. 在JavaScript中有一个Function对象,所有自定义的函数都是Function对象类型的。Function对象接收的所有参数都是字符串类型的,其中最后一个参数就是要执行的函数体,而前面的参数则是函数真正需要接收的参数。
6. 在JavaScript中,每个函数都有一个隐含的对象arguments,表示给函数实际传递的参数。
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
javaScript是网景netscape公司开发的一种基于客户端浏览器,面向对象,事件驱动式的网页
脚本语言。前身叫livescript。
<script>
function add(num){
alert(1);
}
function add(num,num1){
alert(2);
}
add(123); // 这里只会执行alert(2),因为js中没有重载的概念,下面的方面会覆盖上面的方法。
</script> // 所以alert(1)永远不会执行。
同样的道理,如下题:
<script type="text/javascript">
var add = new Function("number", "number1", "alert('1---');alert(number + number1);");
var add = new Function("number", "alert('2---');alert(number + 20);");
add(10, 30); //这里也只会执行第二个方法。结果为2--- 30.
</script>
JS中有个arguments隐式参数的感念,相当于你传的值都可以隐式的放在arguments中,如下
function add()
{
if(1 == arguments.length)
{
alert(arguments[0]);
}
else if(2 == arguments.length)
{
alert(arguments[0] + arguments[1]);
}
else if(3 == arguments.length)
{
alert(arguments[0] + arguments[1] + arguments[2]);
}
}
add2(3); //得到3
add2(3, 4); // 得到7
add2(3, 4, 5); //得到12
◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
1 每一个函数对象都有一个length属性,表示该函数期望接收的参数格式。它与函数的arguments不同,arguments.length表示函数实际接收的参数格式。
2. JavaScript中有五种原始数据类型:Undefined、Null、Boolean、Number以及String。
3. Undefined数据类型的值只有一个:undefined。
4. Null数据类型的值只有一个:null。
5. Boolean数据类型的值有两个:true和false。
6. JavaScript中没有char数据类型。
7. typeof是一元运算符,后跟变量的名称,用于获取变量的数据类型,其返回值有5个:undefined、boolean、number、string以及object。
8. 在JavaScript中,如果函数没有声明返回值,那么会返回undefined。
9. null与undefined的关系:undefined实际上是从null派生出来的。
10. 强制类型转换:在JavaScript中有3种强制类型转换:Boolean(value),Number(value),String(value)。
11. 在JavaScript中,对于函数中定义的变量来说,加var表示局部变量,不加var表示全局变量。
12. 在JavaScript,所有对象都是从Object对象继承过来的。Object中的属性是不可枚举的(propertyIsEnumerable返回false),因此无法通过for…in语句得到其中的属性。
13. 在JavaScript中,可以动态添加对象的属性,也可以动态删除对象的属性。如下:
var ooo=new Object();
alert(ooo.name);
ooo["name"]='tiankong';
alert(ooo.name);
delete ooo.name;
alert(ooo.name);
14. 在JavaScript中定义对象的第二种方式:
var object = {name:"zhangsan",pw:123};
15. 对于JavaScript数组的sort方法来说,它会先将待排序的内容转换为字符串(调用toString()方法),按照字符串的先后顺序进行排序.
16. JavaScript中定义对象的几种方式(JavaScript中没有类的概念,只有对象):
1) 基于已有对象扩充其属性和方法:
var object = new Object();
object.name = "ok";
object.sayHello=function(name){
this.name = name ;
alert(this.name);
}
object.sayHello("okTwo");
2)工厂方式
function createObject(){
var object = new Object();
object.name = "zhangsan";
object.password = 123;
object.say = function(){
alert(this.name);
}
return object;
}
var ob1 = createObject();
var ob2 = createObject();
ob1.say(); // "zhangsan"
alert(ob1 == ob2); // false.但是如果将var object = new Object();提到函数外面为全局变量,那么就为true。
带参数的构造方法:
function createObject(name,password){
var object = new Object();
object.name = name;
object.password = password;
object.say = function(){
alert(this.name);
}
return object;
}
var ob1 = createObject("zhangsan",123);
让一个函数对象被多个对象所共享,而不是每一个对象拥有一个函数对象。
function say(){
alert(this.name);
}
function createObject(name,password){
var object = new Object();
object.name = name;
object.password = password;
object.say = say;
return object;
}
3) 构造函数方式
function createObject(){
this.name = "zhangsan";
this.password = 123;
this.say = function(){
alert(this.name);
}
}
var ob1 = new createObject(); //可以在构造对象时传递参数
ob1.say();
4)原型(“prototype”)方式
function Person(){}
Person.prototype.name = "zhaosan";
var p1 = new Person();
alert(p1.name); //方法这些都要加prototype关键字