原生JavaScript第二天

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);//返回被替换的元素



Tagged , , , . Bookmark the permalink.

Comments are closed.