基本类型:
undefined,null,boolean,number,string.
var num1=5;
var num2=5;//复制,是一个副本。
引用类型:
Object,
var obj1=new Object();
var obj2=obj1;//复制的副本是一个指针,复制后链各个变量将引
//用同一个对象。因此改变其中一个变量,就会影响另一个变量。
局部对象:
function setname(obj){
obj.name="nick";
obj=new Object();//局部变量,不会改变obj的值
obj.name="greg";
}
var person=new Object();
setname(person);
person.name;//"nick"
执行环境及作用域:
当代码在一个环境执行时,会创建变量对象的一个作用域链。作用域链的用途,是保证对执行环境有权访问所有变量和函数的有序访问。
查询标示符:如果局部环境中没有找到该变量名,则继续沿作用域链向上查找。搜索过程将一直追溯到全局环境的变量对象。
var color="blue";
function changecolor(){
if(color=="blue")
{
color="red";
}
else
{
color="blue";
}
}
changecolor();//改变了全局变量,因为可以在作用域链中找到它
color;//"red"
局部作用域中定义的变量可以在局部环境中与全局变量互换作用:
var color="blue";function changecolor(){
var anothercolor="red";
function swapcolor(){
var tempcolor=anothercolor;
anothercolor=color;
color=tempcolor;
//这里可以访问color,anothercolor和tempclor;
}
//这里可以访问color,anothercolor不可以访问tempclor;
swapcolor();
}
//这里只能访问color;
changecolor();
color;//"red"
引用类型:
Object:
定义:
var person=new Object();
person.name="nick";
var person={
name:"nick";
}
var person={};
person.name="nick";
将对象作为函数参数:
function display(args){
var output="";
if(typeof args.name=="string"){
output+="name"+args.name+"\n";
}
if(typeof args.age=="number"){
output+="age"+args.age+"\n";
}
alert(output);
}
display({
name:"nick",
age:12
})
Array:
var color=new Array("blue","red","yellow");
var color=new Array(3);
color.push("blue","red","yellow");//栈方法push与pop都是从栈的最后处理 color.pop()出去数组最后一个
//栈是后进先出
color.pop()//"yellow"
color.shift()//"blue"移出数组第一项 队列是先进先出
var color=[];
var color=["blue","red","yellow"];
color.length;//3
instanceof:单一的全局执行环境,不适用多个框架的网页
某个对象是不是数组的问题
color instanceof Array //true
Array.isArray(value)
Array.isArray(color)//true
排序
color.reverse();//排序从大到小
color.sort();//排序从小到大
比较函数:
function compare(a ,b){
return a-b;
}
Date:
var now=new Date();
function: