首页 > 代码库 > 学习之Javascript基础
学习之Javascript基础
1)HTML只是描述网页长相的标记语言,JavaScript是一种在浏览器端执行的语言,简称为JS,JavaScript是解释性语言,无需编译就可以随时运行,没有语法错误的部分还是能正确运行。
2)VS2010中有Javascript、JQuery的自动完成功能
3)JS点儿不出来的成员也许可用,点儿处理的成员也许不可用
4)VS2008的HTML编辑器中触发JavaScript自动完成:Ctrl+J
5)JS标签:
<script type="text/javascript">
alert(new Date().toLocaleDateString());
</script>
//alert类似于messagebox的用法
Javascript代码放到<script>标签中,script标签可以放到<head><body>等任意位置,且可用有不止一个标签,alert函数是弹出消息窗口,new Date()是创建一个Date类的对象,默认值就是当前时间。
放到<head>中的<script>在body加载之前就已经运行。
6)除页面中声明Javascript外,可将Javascript写到单独jscript文件中,然后在页面中引入:
<script src=http://www.mamicode.com/”test.js” >
7)事件:Dom相关
<a href="javascript:alert(‘hello‘)">Click</a>
在body中触发js,可用超链接标签实现,点击超链接,注意alert中使用单引号,主要是为了方便和html集成,避免转义字符的麻烦,避免与外层的双引号冲突
// 通过超链接的开头决定使用哪个网络协议,调用哪个程序,交由哪个引擎处理,同如下几种:thunder:// qq: mailto: ftp:// ed2k://
// 只有超链接的href中的Javascript才需加”javascript:”,因为它不是事件,将之看做一种网络协议,交由js解析引擎处理。
8)JS:有null、undefined两种,null表示变量为空,undefined表示没有指向任何对象
9)Javascript是弱类型,只能通过var i=0声明变量。
指向某个值后,即为该类型的变量,同一变量可指向任意的类型。
不用var声明的变量为全局变量,不建议用。
JS是动态类型的,var i=0;i=”a”;是合法的。
10)JS除错与调试:Internet选项中有禁用脚本调试,启用调试,以调试方式运行网页,设置断点,添加到监视。
11)Javascript中判断变量、参数是否初始化的三种方法:
1> if(x==null){alert(“null”);}
2> if(typeof(x)==”undefined”){alert(‘undefined’);}
3> if(!x){alert(‘no x’);}//推荐使用此方法,变量为空或为0或未初始化
12)函数的声明:function add(i,j){return i+j;}
不需要声明返回值类型、参数类型,以function开头;不像C#中那样要求所有路径都有返回值;没有返回值时会alert一个undefined
13)匿名函数:var f1=function(i,j){return i+j;} alert(f1(1,2)); 类似于C#中的匿名函数,JQuery中常用
14)Javascript中没有类的语法,是用函数闭包closure模拟出来的,JS中String、Date等类叫做对象,本质就是函数,创建过程为:
function Person(name, age) { //声明一个函数,当成类用,叫做对象
this.name = name;
this.age = age;
this.SayHello = function () { //动态声明,指向匿名函数
alert("Hello,this is " + this.name + ".I‘m " + this.age + " .");
}
}
var p = new Person("Xscape", 23);// 此处若为:var p = Person("Xsc", 23);则p为undefined,因函数无返回值
p.SayHello();
15)Javascript中的Array对象就是数组,是一个动态数组,无需预先制定数组大小,如下:
var names = new Array();
names[0] = "a";
names[1] = "b";
for (var i = 0; i < names.length; i++) {
alert(names[i]);
}
16)字符串数组中元素的反转,Javascript中有自带反转函数,另实现原理:将第i个和第length-i-1个进行交换
17)数组加|分割输出:Join函数(C#与JS中都有)
18)alert(Array)可以将数组中每个元素都打印出来,不是alert的功能,而是Array的ToString效果
19)JS的Array不仅是一个数组,还是一个Dictionary,还是一个Stack。
var exam = new Array();
exam["a"] = "A";
exam["b"] = "B";
exam["c"] = "C";
exam["d"] = "D";
alert(exam["a"]);
alert(exam.a);
Array的Key可以是汉字、字母等字符形式,类似Dictionary
遍历Array的方法:for (var k in exam) {alert(k);} //用for实现的foreach语法,打印的是Array的Key,输出a等,而非A等
20)普通数组初始化:var arr={1,2,3,4};//key为0、1、2、3
字典风格的创建:var arr={“li”:15,”wang”:20};
21)用for遍历得到JS中某个对象的所有属性和方法:
for (var e in document) { alert(e); }//对象的所有成员都是以对象的key的形式出现的