定义在函数外的变量一定是全局变量;定义在函数内的变量,如果声明了var,那该变量就是局部变量,如果不声明var,那么该变量就是全局变量。
1、全局变量与局部变量
JavaScript
var global = "Global"; test(); function test(){ var local = "Local"; document.writeln(global); document.writeln(local); } document.writeln(global); document.writeln(local);
2、两种类型的Cookie
i)持久性cookie,会被存储到客户端的硬盘上。
ii)回话cookie:不会被存储到客户端的硬盘上,而是放在浏览器进程所处的内存当中,当浏览器关闭时则该回话cookie就销毁了。
3、在JavaScript中,函数(function)就是对象
4、在JavaScript中,没有方法(函数)重载的概念
5、Function对象
在JavaScript中有一个Function对象,所有自定义的函数都是Function对象类型的。Function对象接受的所有参数都是字符串类型的,其中最后一个参数就是要执行的函数体,而前面的参数则是函数真正需要接受的参数。
6、隐含的对象arguments
在JavaScript中,每个函数都有一个隐含的对象arguments,表示给函数实际传递的参数。arguments.length就表示实际传递的参数的个数。
7、函数名.length
每一个函数对象都有一个length属性,表示该函数期望接受的参数个数。它与函数的arguments不同。arguments.length表示函数实际接受的参数个数。
8、JavaScript中有五种原始数据类型
Undefined、Null、Boolean、Number以及String。(注意:在JavaScript中,没有char数据类型)
Undefined数据类型的值只有一个:undefined;
Null数据类型的值只有一个:null;
Boolean数据类型的值有两个:true和false;
9、typeof运算符
typeof是一元运算符,后跟变量的名称,用于获取变量的数据类型,其返回值有5个:undefined、boolean、number、string以及object。
10、在JavaScript中,如果函数没有声明返回值,那么会返回undefined11、null与undefined的关系
undefined实际上是从null派生出来的。例如:
null与undefined的关系
JavaScript
alert(undefined == null); //浏览器返回true
11、强制类型转换
在JavaScript中有3种强制类型转换:Boolean(value),Number(value),String(value)。
12、Object对象
在JavaScript中,所有对象都是从Object对象继承过来的。
Object对象
JavaScript
var object = new Object(); for(var v in object){ alert(v); }
上面的代码中,浏览器并没有打印出什么,并不能说明Object对象不带有任何属性。下面代码测试Object对象中的属性是否可以枚举,如果返回false,则说明Object对象中的属性是不能枚举的。
Object对象中的属性是不能枚举的
JavaScript
alert(object.propertyIsEnumerable("prototype"));
浏览器弹出false对话框,则说明Object对象中的属性是不能枚举的。
接下来我们再看看window对象中的属性是否可以枚举的
window对象中的属性是可以枚举的
JavaScript
for (var v in window) { console.log(v); }
在Chrome浏览器中我们会看到浏览器调试控制台中打印出一大堆属性,说明window对象中的属性是可以枚举的。
13、在JavaScript中,可以动态添加对象的属性,也可以动态删除对象的属性
动态添加/删除对象的属性
JavaScript
var object = new Object(); alert(object.username);//undefined object.username = "zhangsan"; alert(object.username);//zhangsan object["password"] = "123"; alert(object.password);//123 delete object.username;//此时,username属性已经被删除 alert(object.username);
14、JavaScript中定义对象最常见的方式
定义对象最常见的方式
JavaScript
var object = { username:"zhangsan", password:12345 }; alert(object.username); alert(object.password);
15、数组
数组定义
JavaScript
//方法一 var array = new Array(); array.push(1); array.push(2); array.push(3); alert(array.length); //方法二(推荐) var array = [1,25,4]; array.sort(); alert(array);
调用数组的sort()方法,浏览器打印1,25,4,这并不是我们期望的结果。
对于JavaScript数组的sort方法来说,它会先将待排序的内容转换为字符串(调用toString()方法),按照字符串的先后顺序进行排序。
下列方式可以得到我们期望的结果(按数组大小进行排序):
数组排序
JavaScript