1.typeof操作符
typeof操作符用来检测变量的数据类型
2.数据类型
2.1Undefined类型,只有一个值undefined(在使用var声明变量没有初始化的时候,这个变量数据类型的值就是undefined)
注意:没有初始化和没有声明的变量是不一样(虽然typeof返回的值都是undefined,但是没有声明的会报错的)
2.2Null类型,只有一个值null,typeof操作符检测null返回object(这样就可把将来要保存对象的变量初始化为null)
注意:underfined和null两个比较是相等的(也就是说定义为null的变量和未初始化的变量两个比较返回true)
2.3Boolean类型,有两个值true和false(注意这里1不一定等于true,在php里面可以数字0、字符串0、空字符串、false)
当然任何一个值可以通过Boolean()函数显示强制性转换,如果用到if判断条件那么会隐式转换,只有0和NaN、null、underfined、空字符串显示转换才是假
2.4Number类型,包含两种数值整型和浮点型,Nan是一个特殊的值(就是12/0或者0/0的结果)
Number()是转型函数,可以转换任何数据类型,parseInt()是把字符串转成数值整数部分,parseFloat()转成小数
2.5String类型,字符串可以用双引号或者单引号包含表示
2.6Object类型,可以通过new操作符来创建
3.函数
//函数定义
function message(name,age){
alert(‘你的姓名是’+name+’年龄是’+age);
}
//函数的调用
message(‘Joyous’,20);
//带有返回值的函数定义
function msg(){
return ‘这是一句话’;
}
var mess=msg();
alert(mess);
关键的函数使用方法:arguments
function add()
{
var sum=0;
for(var i=0;i<arguments.length;i++)
sum+=arguments[i] ;
return sum;
}
var num1=add(1,2,3,5);
var num2=add(2,5,6,7,2);
这样的意思就是说参数不固定可以使用arguments 4.对象
对象有属性和方法,
//对象创建
var obj=new Object();
var obj=Object();
var obj={};
//对象属性
obj.name=’Joyous’;
var obj={
name : ‘joyous’,
age : 24
}
//获取属性
obj.name;
obj[‘name’]=’Joyous’;
//对象方法
//第一种
function myfun()
{
return ‘Joyous’;
}
var obj=new Object();
obj.run=myfun;
alert(obj.run());
//或者使用obj.run=myfun();alert(obj.run);
var obj={
name : ‘Joyous’,
fun : function(){ //这里是匿名方法
return 123;
}
}
alert(obj.fun());
//删除属性
var obj={
name : ‘Joyous’,
age : 24
}
delete obj.name;
5.数组
//定义数组
var arr=new Array();
var arr=new Array(‘Joyous’,24,’上海’);
//如果这样就是定义存放10个元素的数组
var arr=new Array(10);
//其中以上new都可以省略
var arr=[1,2,4,5];//注意这里最后一个逗号在不同的浏览器会出现不同结果
arr[‘name’]=’Joyous’;
//获取数组
document.write(arr);
//用下标读取
document.write(arr[0]);
备注:数组里面可以存放任何类型元素
6.对象中的方法
//内置方法
var obj = [‘Joyous’,24,’河南’,new Date()];
document.writeln(obj);
document.writeln(“<br>”);
document.writeln(obj.toString());
document.writeln(“<br>”);
document.writeln(obj.valueOf());
document.writeln(“<br>”);
document.writeln(obj.toLocalString());
document.writeln(“<br>”);
document.writeln(obj.join(“|”));
//栈方法,先进后出
var obj = [‘Joyous’,24,’河南’];
obj.push(‘新的元素’);
document.write(obj);
document.write(obj.pop());//后进先出,弹出最后一个元素
document.write(obj);
//队列方法
var obj=[‘Joyous’,24,’河南’];
document.write(obj);
document.write(“<br>”);
document.write(obj.shift());//先进先出,弹出第一个元素
document.writeln(obj.unshift(‘新元素’));//在IE上返回结果返回undefined,所以尽量不要使用。这个方法是在第一个位
置插入元素
document.writeln(obj);
//排序
//从大到小排序
var obj=[2,3,4,5,6];
document.write(obj.reverse());
document.write(obj);
//从小到大
document.write(obj.sort());
document.write(obj);
//默认的sort用来排序数字有问题需要加上以下参数
function compare(var1,var2){
if (var1<var2) {
return -1;
} else if (var1>var2) {
return 1;
} else {
return 0;
}
}
var obj=[0,1,5,10,15];
document.write(obj.sort());
document.write(obj.sort(compare));
//操作方法
var obj=[1,2,3,4];
var obj1=obj.concat(‘新元素’);//创建一个新数组并添加新元素
document.write(obj);
document.write(obj1);
var obj3=[1,3,4,5];
var obj4=obj3.slice(2);//根据传递的数组下标开始建立新的数组
document.write(obj4);
var obj3=[1,3,4,5,3,4,5];
//var obj4=obj3.slice(2);//根据传递的数组下标开始建立新的数组
var obj5=obj3.slice(1,4);//下标为1开始,长度是4-1,总共3个元素
document.write(obj3);
document.write(‘<br>’);
document.write(obj5);
//splice() 方法用于插入、删除或替换数组的元素
var obj1=[1,2,3,4,5,6];
//var obj2=obj1.splice(1,3);
//删除功能,第一个参数是起始下标,第二个是长度,这样就从obj1中删除建立新的数组到obj2中
//插入功能
var obj2=obj1.splice(1,0,’新元素’);
document.write(obj1);
document.write(‘<br>’);
document.write(obj2);//没有输出任何信息
//替换功能
var obj2= obj1.splice(1,2,’新元素’,’第二个新的’);
document.write(obj1);
document.write(‘<br>’);
document.write(obj2);//返回被替换的元素