Javascript是解释性语言,是解释一句编译一句(为了适应网络上传输带宽,不能传输过大的这个特点,所以采用解释性语言)。其介于Java和HTML之间。
注释:只是为了给程序员看的,不会参与到程序的编译中。
虚拟机在操作平台上运行,Java程序是在各个操作平台的虚拟机上运行。Java是跨平台的,平台无关性的语言。其不依赖于操作系统,其各个操作系统的兼容性由虚拟机完成。
Javascript是由浏览器解释运行的,所以其和操作系统也是无关的,也是平台无关性的。
为了解决有些浏览器不能解析javascript代码而设计的,如果浏览器把不能识别Javascript代码,这些代码就会被忽略。
Javascript采用的是弱类型的数据类型。
js的放置
1.位于 head 部分的脚本:
当脚本被调用时,或者当事件被触发时,脚本就会被执行。当你把脚本放置到 head 部分后,就可以确保在需要使用脚本之前,它已经被载入了。
2.位于 body 部分的脚本:
在页面载入时脚本就会被执行。当你把脚本放置于 body 部分后,它就会生成页面的内容。
3.在 body 和 head 部分的脚本:
你可以在文档中放置任何数量的脚本,因此你既可以把脚本放置到 body,又可以放置到 head 部分。
4.还有一种是外部javascript
一、javascript对象
javascript的object类型
1.使用new运算符
var ob=new Object();创建一个对象
测试对象是什么类型:用typeof ,使用例子:typeof ob;
对象中包含哪些元素:
1.属性
2.函数
属性的创建方法:ob.name="例子",alert(ob.name);
2.可以省略new关键字
var ob=Object();
3.字面量方式创建对象
var ob={};
创建属性:var ob={name:'例子',age:18};
创建属性也可以是:var ob={‘name':'例子'};双引号也可以
输出:alert(ob.name);
alert(ob.['name']);用数组的方式输出,双引号也可以
4.给对象创建方法
1.传统的创建方法
function objrun(){
return '123';
}
var ob=new Object();
ob.name='lizi';
ob.age=18;
ob.run=objrun();会返回值,ob.run=getrun这个会打印出代码
alert(ob.run);
2.字面量的创建方法
var obj={
name:'我的名字',
age:21,
run:function(){//匿名方法
return '123';
}
};
测试调用函数
alert(obj.run());
5.删除属性
delete obj.name;
小技巧:字面量的对象显得代码更加简洁,具有封装的感觉
例如:我们要穿多个参数,字面量方法更加简洁
function box(obj){
if(obj.name!=undefined)alert(obj.name);
if(obj.love!=undefined) alert(obj.age);
}
a. var obj={
name:‘我的名字’,
age:21
}
b.匿名对象传参数
box({
name:‘我的名字’,
age:21
});
二、Array类型
创建Array的方法有两种:
1.使用new关键字
var obj=new Array();
var obj=new Array(10);创建一个包含10元素的数组
var obj=new Array('我的名字','地址');创建了一个数组,并分配了2个元素
alert(typeof obj);obj属于Object类型
var obj=new Array('我的名字','地址'),数组值的打印:
1.以下标
2.直接alert(obj);
字面量的增加修改
以对象的方式给数组赋值,因为数组也是一个object对象
var obe=['ty',21];
obe.length=10; 强制了元素量
alert(obe.length);
alert(obe);
根据obe的长度赋值
var obe=['ty',21];
obe[obe.length]="wod";获取最后一个下标值
alert(obe);
数组的内置方法:
var obe=['ty',21];
alert(obe.join("%"));join()方法是将数组以某种方式(在这里是用%分隔)分隔返回的字符串
数组的栈方法(后进先出),就是类似于有底的杯子中装了东西,再取出的过程
var obe=['ty',21];
alert(obe.push("我家门前")); 在数组的最后位置添加一个元素,并返回长度
alert(obe);
alert(obe.pop()); 移除数组中的最后一个元素 ,并返回被移除的那个元素
alert(obe);
数组的队列方法(先进先出),就是类似于无底的杯子中装了东西,再取出的过程
var obe=['ty',21,"我家门前"];
alert(obe.shift()); 移除数组中的第一个元素 ,并返回被移除的那个元素
alert(obe);
alert(obe.unshift("我家111")); 在数组的第一个位置添加一个元素 ,并返回长度
alert(obe);
数组中的排序方法
reverse()倒序
var box=[1,2,3,4,5];
alert(box.reverse());返回一个倒序的数组
alert( typeof box.reverse());object类型
alert(box);原数组也被逆序了
sort()正序
var box=[1,5,7,9,3,2];
box.sort();从小到大排序
alert(box);
var box=[0,1,5,10,15];
box.sort(); 从小到大排序
alert(box);
如果是两个位数的话,它会以个位来排序(及默认会以字符串的数字排序),所以结果会是 0,1,10,15,5 为了解决以上问题,我们必须得告诉浏览器要以数字类型来排序,代码示例如下:
function compare(value1,value2){
if(value1
return -1;
}else if(value1>value2){
return 1;
}else{
return 0;
}
}
var box=[0,1,5,10,15];
从小到大排序,将 compare传给sort()方法来达到数字的排序 ,只适合数组中本来就是数字的排序
box.sort(compare);
alert(box);
数组中操作方法
1.concat()方法,是在原来的数组中添加一个新的元素并创建一个新的数组
var box=['你好',123];
var info=box.concat("世界");
alert(info); 是在原来的数组中添加一个新的元素并创建一个新的数组
alert(box); 原来的数组没有变化
2.slice()方法的用法,取值
var box=['你好',123,'世界'];
var info=box.slice(1); 从下标为1开始读取数据直到把该数组的值读完
alert(info);
var box=['你好',123,'世界'];
//注意不是从第1个位置取3个,而是从第一个位置取到第3个位置(也就是不管从什么位置开始,都只取到第三个元素的地方)
var info=box.slice(1,3);
alert(info);
3.splice()方法的用法
a.筛选功能
var box=['你好',123,'世界'];
alert(box.splice(0,3)); //返回从第0个位置取3个元素
b.删除功能
var box=['你好',123,'世界'];
box.splice(0,2);//删除了从第0个位置取3个的元素
alert(box); //原对象只剩下’世界‘了
c.插入功能 var box=['你好',123,'世界'];
//1,0的意思是从下标为1的位置开始不取值, 1,0,"真","好"代表的是从下标为1的位置开始插入数据
//box.splice(1,0,"真","好");
//1,2的意思是从下标为1的位置开始截掉2个值, 1,2,"真","好"代表的是从下标为1的位置开始插入数据
box.splice(1,2,"真","好");
alert(box);
d.替换功能
var box=['你好',123,'世界'];
//1,1的意思是从下标为1的位置开始截掉1个值,并以100来替换 ,其实和插入功能差不多
box.splice(1,1,100);//返回被删除的那一条
alert(box);