Javascript是Netscape公司语言,基于对象和事件驱动。
和java的不同之处:
1,所属公司不一样。java是sun公司,现在是Orcale公司.
2,js是基于对象,java是面向对象。
3,js是由浏览器解释并执行,java是由jvm解释并执行。
4,js是弱类型的语言,java是强类型。
5,js是非严谨的,java是严谨的。
javascript运行在客户端。
javascript需要被浏览器所解释执行,就必须要将代码和html相结合。
结合方式是什么样的呢?
1,通过定义<script>标签将js代码存入其中。并指定type属性。方便与浏览器启动指定的解析引擎。
2,也可以通过<script>标签,使用src属性连接一个指定的js文件进来。
Javascript的基本语法:
1,变量。
通过var关键字定义变量,该变量可以赋予不同类型的常量。
ar x = 3;
x = "abc";
特殊的常量:undefined
2,语句。
if,switch,while,do while,for.
使用逻辑运算符进行布尔表达式连接的时候,需要是短路与和短路或。 && ||
因为在js中,非0即为true,0为false。非null为true,null为false。
js特有的语句:
with(对象){}:可以确定对象所使用的范围。在范围内,可以直接使用指定对象的属性和 行为,而不用,对象. 的形式调用。简化了对象的操作。
for(变量 in 对象):可以对对象的属性及行为进行遍历。
3,数组。
对于js的数组特点在于:该数组的长度是可变的,相对与java中的集合。
该数组中可以存放的元素类型是可以不同的 。
定格格式:
var arr = [3,true,"abc"];
var arr = new Array();
var arr = [[3,1,9],[3,4]];
操作形式和java一样。都是通过for进行遍历,同时也使用了指针思想。
4,函数。
通过function关键字定义函数。
a,一般函数。
格式:function 函数名(形式参数...)
{
执行语句;
return 返回值;
}
通常了提供代码复用可以将代码封装成函数。
两个明确:
#,明确该功能实现后的结果。
#,该功能在实现过程中是否有未知内容参与运算。
b,动态函数。
使用的Function对象。
var show = new Function("x","y","return x+y;");
动态函数的特点:可以将参数列表,和方法体作为参数传递。
c,匿名函数。
一般函数的简写形式。
function(){}
匿名函数通常可以用于事件的处理的。
如:window.onload = funciton(){alert('onload over');}
在函数使用时需要注意的部分:
function show()
{
return "show run";
}
var method = show();
var method = show;
两句代码都是正确的,
第一句表示的是show方法运行后的结果赋值给method变量。
第二句表示的是将show指向的对象的地址赋值给method。那么method也指向 了该对象。
那么就可以通过method();的形式来调用这个show方法。
--------------------------------------------------------------------------------------------------------------------------------------
js可以通过对象形式将数据进行封装。
首先对对象进行描述,通过函数来完成。
function Person(name,age)
{
this.name = name;
this.age = age;
}
var p = new Person("lisi",30);
alert(p["name"]+".."+p.age);
p.show = function()
{
alert("show run");
}
----------------------------------------------------------------------------------------------------------------------------------
Javascript中的已定义好的一些对象。
1,String,Math,Date,Array,Function
这些对象都有一个属性叫做prototype原型.
prototype可以获取指定的对象引用
可以通过该引用给已有的对象赋予一些新的功能。
那么在使用该对象时,可以直接调用定义好的新功能。
function getMax()
{
var max = 0;
for(var x=1; x<this.length; x++)
{
if(this[x]>this[max])
max = x;
}
return this[max];
}
var arr = [3,4,16,7];
arr.sort();//直接调用Array对象的sort方法对数组进行排序。
那么可不以象调用sort方法一样调用getMax方法呢?
就需要将getMax方法添加到Array对象当中。
Array.prototype.getMax = getMax;
var x = arr.getMax();
alert("max="+x);
var str = "abc";
str.substring(1,2);
str.bold();//<b>str</b>
/*//模拟一下String中fontcolor方法。
function mycolor(color)
{
return "<font color='"+color+"'>"+this+"</font>";
}
String.prototype.color = mycolor;
str.color("red");
*/
//给字符串对象定义一个新功能,去掉字符串两端空格。
function trim()
{
var start,end;
start = 0;
end = this.length-1;
while(start<=end && this.charAt(start)==" ")
start++;
while(start<=end && this.charAt(end)==" ")
end--;
return this.substring(start,end+1);
}
String.prototype.trim = trim;
var s = " ab c ";
s = s.trim();
alert("--"+s+"--");//ab c
------------------------------------------------------------------------------------------------------------------------------------
常见的全局方法。
parseInt(numstr,[radix]);//将数字格式的字符串转成整数。如果指定了基数,那numstr,就会按照执行基数进行转换。
var num = parseInt("110",2);//表示“110”这个字符串会按照二进制进行转换。
alert("num="+num);//num = 6;
var x = 6;
alert(x.toString(2));//110.//获取6对应的二进制表现形式。