JavaScript课程笔记
课程1 JavaScript简述
.HTML只是描述网页长相的标记语言,没有计算,判断能力,如果所有计算判断都放到服务器端执行的话,网页的页面会特别慢,用起来也很难用,对服务器的压力很大,因此要求能在浏览器中执行一些简单的运算,判断。JavaScript就是一种在浏览器端执行的语言。
JavaScript与Java没有直接的关系,唯一的关系就是JavaScript原名叫做LiveScript,后来吸收了Java的特性,升级为JavaScript。简称js
JavaScript是一种解释型的语言,无需编译就可以随时运行,这样哪怕语法有错误,没有语法错误的部分还是能正确运行。
课程2. 弹出对话框
弹出对话框:alert(new Date().toLocaleDateString());
javascript一般放在<head>标记内,在body还没执行之前,就先执行了JavaScript的代码。顺序往下执行的。
课程3 js文件
除了在页面声明JavaScript以外,还可以将JavaScript代码写到js文件中,然后在页面中引入:<script src=”test.js” type=”text/javascript”> </script>,声明到单独的js文件中的好处是多页面也可以共享,减小网络流量。
课程4 事件
<a href="javascript:alert('Hello!man!')">点点</a> 点击一个超链接时就调用js的分析解释引擎来处理下面的东东。 <a href="http://www.baidu.com">百度</a>
<a href="1.thm" onclick="alert('Hello 1.tml')">点点</a><!--单击时首先执行Dalert后跳-->
只用超链接的href中的JavaScript中才需要加“JavaScript”,因为他不是事件,而是把“JavaScript:”看成像http ,ftp、thunder://,ed2k://、mailto:一样的网络协议 。herf的特例。
课程5.JS中的变量
JavaScript中即可以用双引号,也可以用单引号声明字符串。主要是为了方便和html集成,避免转义符的麻烦。
JavaScript中有null、undefined两种,null表示变量的值为空,undefined则表示变量还没有指向任何的对象,未初始化。两者的区别:参考资料
JavaScript是弱类型的,变量声明的时候不能够:int i=0;只能通过var i=0;声明变量,和C#中的var不一样,不是C#中的那样的类型推断。
<script type="text/javascript">
var i=10; //声明一个变量,名字为,指向10,就是int类型¨了 。
i = "abc"; //在¨JavaScript中一个变量可以指向任何类型,指向谁,就是什么类型¨。
alert(i);
i1 = 20; //前面不加var就相当于一个全局变量。不推荐这样用。
课程6.JavaScript中的调试
在vs2010中调试JavaScript时,首先要在浏览器中将:禁用脚本调试去掉。然后才可以调试,其他的跟调试C#没有什么区别。
课程7.js判断变量初始化
if (x == null) { alert("null");}
if (typeof (x) == "undefined") { alert('undefined'); }
if (x) {alert('不X'); }//变量被初始化了或者不为空或者变量不为0
课程8.JavaScript的函数声明
function add(i1, i2)
{ //函数定义以function开头。
return i1 + i2; //不需要声明返回值类型,参数类型
}
看看下面一个函数
Function add(i1,i2)
{
If(i1>i2){ //在c#下面会报错:不是所有路径都有返回值。但在JavaScript中可以。在JavaScript中,如果没有返回值,默认返回undefined。
return i1+i2;
}
}
课程9.匿名函数
var f1 = function (i1, i2) { //声明一个函数,用f1这个委托来调用他
return i1 + i2;
}
alert(f1(10,20)); //f1就可以当作一个函数来用啦
课程10.js面向对象基础
JavaScript中没有类的语法,是用函数闭包(closure)模拟出来的,下面讲解的时候还是用C#中的类、构造函数的概念,JavaScript中String。Date等类都被叫做“对象”,挺怪,方便初学者理解,不严谨。JavaScript中声明类(类不是类,是对象):
课程11.Array对象。
JavaScript中的Array对象就是数组,首先是一个动态数组,而且是一个像C#中数组、ArrayList、Hashtable等的超强综合体。
var arr = new Array(); //声明一个数组对象。不用预置大小
arr[0] = "tom"; //可随意添加数据类型也不固定 arr[1] = "jerry";
arr[2] = "lily";
arr[3] = 1;
for (var i = 0; i < arr.length; i++) {
alert(arr[i]);
}
Array对象的练习。
arr.reverse(); //数组对象中有一个反转函数的方法。
for (i = 0; i < arr.length; i++) {
alert(arr[i]);
}
课程12.JS中的Dictionary
Js中的Array是一个宝贝,不仅是一个数组,还是一个Dictionary,还是一个Stack。(栈)
课程13.数组的简化声明方式
var arr1 = [3, 5, 6, 8, 9]; //用简化的方法声明一个普通的数组
var arr2 = { "tom": 30, "jerry": 50 }; //用简化的方式声明一个Dictionary
alert(arr2["tom"]);
for (var e in document) {
alert(e); //遍¦历一个对象的所有的成员。为什么可以呢?因为对象的成员就是以对象的key的形式出现的。
}