------- android培训、java培训、期待与您交流! ----------
以下仅为个人平时学习笔记,可能有有错误的地方,希望有看到者提出来,共同讨论,谢谢!
1.当script标签中定义了src属性连接了一个指定的js文件后,那么,script标签内的代码就不会执行了.
2.其实,在javascript中,函数本身就是一个对象.函数名就是这个对象的引用.例如:
func(){...}
func对应函数实体地址.打印的话,会将"func(){}"打印出来,相当于字符串文本.
3.动态函数
var show=new Function("x,y","var sum=x+y;return sum;");
var sum = show(4,5);
显示结果sum为9.
相当于:
function show(x,y)
{
var sum = x+y;
return sum;
}
4.匿名函数:其实就是函数的简写形式.
var method1 = function()
{
alert("Haha");
}
method1();//调用该匿名函数(函数看成对象了);
5.函数可以用于事件处理.
function func()
{
alert("Haha");
}
window.onload = func;
//简写格式如下:
window.onload = function()//匿名函数
{
alert("Haha");
}
5.arguments 获得参数实际传入的参数。arguments.length、arguments[i];
****************************************************************************
6.javascript中的数组,是javascript中的唯一容器.
a.什么类型都可以存储;(但是建议存储数据时,按照同一类型存储,取出操作时,相对不容易出错.)
b.该数组容器的长度是可变的,集数组与及集合于一身(不存在角标越界,
中间原来不存在元素为undifined);
var arr = [];//定义了一个javascript数组.还可以:
var arr = ["aaa","bbb"];
var arr = new Array(3); arr[4] = "abc";//其他角标均为未定义
还可以:var arr = ["aaa",12,true];
********************************javascript对象********************************************
1.可以使用num.toString(16)方法将10进制的num转换为16进制
2.还可以使用parseInt("123a",16)将123a以16进制为基数进制转换为十进制int型.
********************************javascript自定义对象*********************************************
1.javascript自定义对象:其实就是利用javascript中已有内容,模拟面向对象。
例如:
function Person(){}//javascript中方法就是对象
var p = new Person();//这就是对象
//给对象添加属性
p.name="zhangsan";
p.age=23;
//添加行为
function mthod1()
{
alert();
}
p.show = method1;//在p对象中添加了一个属性show,该show的值为method1的地址值,也就是show和method1指向了同一个函数对象。
p.show();//调用该行为
################################################################
一个较为完整的例子如下:
function Person(name,age)
{
this.name = name;
this.age = age;
this.setName=function(n)
{
this.name = n;
}
this.getName = function()
{
return this.name;
}
this.showName=function()
{
alert(this.name);//此处若为name的话,为初始化时候传进来的name
}
}
var p = new Person("lisi",45);
p.setName("KKKK");
p.showName();
—————————————————————————————————————————————
1.为了方便使用某些方法,并且它们都是进行同一类操作的工具方法,会被多次调用,
所以最好将它们封装到一个对象中。这样找到了该对象就就具备了这些工具方法。
2.封装方法到对象中:(为了方便还可以使用匿名方法)
function arrTools(){}
var arrtools = new arrTools();
arrtools.getMax = getMax;//指向该方法
function getMax(arr)//参数为数组
{
.....
}
3.给数组原型对象添加新功能:
Array.prototype.getMax = function()
{
var max = 0;
for(var x=1;x<this.length;x++)
{
if(this[x]>this[max])
max = x;
}
return this[max];
}
*******************************************************************
1.javascript可以通过原型prototype完成继承。
2.prototype代表一个对象的引用,所以原型必须指向一个对象(继承时)。
3.子对象可以复写方法。
**********************javascript中的特殊语句**********************************************
1.for in循环:用于遍历数组和对象的循环语句。相当于java中的增强for循环。
例如:for(变量 in 对象);for(x in Person){};
例子一:遍历对象
function Person()
{
this.name="lisi"
this.age = 33;
this.getName=function()
{
alert(this.name+"==="+this.age);
}
}
var p = new Person();
alert(p["name"]);//也是可以的,但是必须有“”
for(x in p)
{
alert(x);//分别先后打印name,age,getName
alert(x+":"+p[x]);//分别打印name:lisi,age:33,getName:function(){...}
}
例子二:遍历数组
var arr = ["aa","bb","cc"];
for(x in arr)
{
alert(x);//打印的为数组的角标
}
2.with语句(好处就是省略了重复写"date")
with(对象)//确定了该对象的范围,在该范围内可以直接调用该对象的方法、属性
{
....
}
var date = new Date();
alert(date.getMonth()+“月"+date.getDate()+"日");
相当于:
with(date)
{
alert(getMonth()+"月"+getDate()+"日");
}