——什么是javascript
简介:
1. 是一种在浏览器端执行的解释类型语言,原名Livescript
2. 后来吸收了java的一些特性,升级为javascript,简称JS
3. 无需编译就可以随时运行,哪怕语法有错误,没有语法错误的部分还是能正常运行
——javascript的开发环境
简介:
1. Vs2010版本以上才有javascript,JQuery的自动完成功能
2. JS是非常灵活的动态语言,不像c#等静态语言那样严谨,开发工具中的JS完成功能至少一个辅助,建议。
3. 出来的成员调用可能不能用,不出来的成员也许能调用,因此不要因为点不出来而担心代码有问题
4. 出发html中的javascript自动完成:ctrl+j
——javascript入门
简介:
1. Javascript代码放到<script>标签中,script可以放到<head>,<body>等任意位置,而且可以有不止一个<script>标签
2. Alert函数是弹出消息窗口,new Date()是创建一个Date类的对象,默认值就是当前时间
3. 放到<head>中的<script>在body加载之前就已经运行。
4. 除了可以在页面中声明javascript以外,还可以将javascript写到单独的js文件中,然后在页面中引入:<script src="test.js" type="text/javascript"></script>
5. 声明到单独的js的文件的好处是多页面也可以共享,减小网络流量
例码:
<!==javascript代码一般不写在body中==>
<html>
<head>
<script type="text/javascript">
alert(newDate().toLocaleDateString());
</script>
</head>
</html>
<!==htmlt代码从上之下运行,如果把javascript同时写在head和body中==>
<!==先执行head中的javascript代码==>
<!==然后显示信息==>
<!==最后执行body中的javascript代码==>
<html>
<head>
<script type=”text/javascript”>
alert(new Date().toLocaleDateString());//类似winform中的MessageBox
</script>
</head>
<body>
Javascript!!
<script type=”text/javascript”>
alert(new Date().toLocaleDateString());
</body>
</html>
——引用外部js文件
简介:
为了减少浏览器因为不断加载javascript代码引起的网速减慢的情况,需要引用外部js文件
如何引用:
1. 首先在项目中新建一个js文件,写入js代码
2. 使用<script src=”文件名.js” type=”text/javascript”></script>来引用
例码:
<!==新建一个叫做common的js文件,写入以下代码==>
alert(new Date().toLocaleDateString());
<!==引用common.js文件==>
<html>
<head>
<script src="common.js"type=”text/javascript”></script>//引用公共的js文件
</head>
</html>
——事件
简介:
Javascript中也有事件的概念:
例码:
<!==在超链接里点击执行javascript==>
<a herf="javascript:alert('88')">发发</a>
注意:只有超链接中的href最近拍卖会的javascript中才需要加:”javascript:”,因为它不是事件而是把”javascript:”看成”http://”,”ftp://”,”thunder://”,”ed2k://’一样的网络协议)
<!== 当按钮被点击的时候执行javascript==>
<input type="button"οnclick="alert('99')"value=”久久”/>
——变量
简介:
Javascript中声明字符串:
双引号声明字符串,也可以使用单引号声明字符串,主要是为了方便和html集成,避免转义符的麻烦
两个变量:
Null:表示变量的值为空。
Undefined:表示变量还没有指向任何对象,未初始化
Javascript是弱类型,声明变量的时候无法:int i=0;只能通过:var i=0;来声明变量,因此除非确实想用全局变量,否则使用的时候最好加上var,这里的var不同与c#中的类型推断
Javascript是动态类型,因此 var i=100; var=”aaa”;是合法的
例码:
<!==在javascript中声明一个int类型的变量==>
<html>
<head>
<script type="text/javascript">
var i =100;//声明一个变量i,并指向100这个整数,则此时的i为int类型
i = "AAA";//覆盖i的值,此时的i为string类型
alert(i);
</script>
</head>
</html>
——除错与调试
简介:
除错:如果javascript中的代码有语法错误,浏览器会弹出报错信息,查看报错信息就能帮助排查错误
调试:javascript的调试,使用VS可以很方便的进行javascript的调试
注意:
IE的调试选项要打开,internet选项—>高级,去掉“禁用脚本调试”前的勾选。
以调试方式运行网页
设置断点。监视变量等操作和c#一样
例码:
<!==用循环语句的方法计算1到100之间的整数和==>
<html>
<head>
<script type="text/javascript">
var sum = 0;
for (var i = 1; i <= 100; i++) {
sum += i;
}
alert(sum);
</script>
</head>
</html>
——判断变量初始化
Javascript中判断变量,参数是否初始化的三种方法:
例码:
<!==第一种方法==>
var x;
If(x==null){
alert("null");
}
<!==第二种方法==>
if(typeof(x)=="undefined"){
alert("undefined");
}
<!==第三种方法==>
If(x)//判断x是否为undefined:是否被初始化或者变量是否不为空,或者变量是否不为0
{
alert("x")//如果是,则输出x
}
if(!x)//如果x不为undefined
{
alert("不x");//输出“不x”
}
(最好使用最后一种方法)
——函数的声明
声明函数的方式:不需要声明返回值类型,参数类型,函数定义一fuction开头。
例码:
<!==声明函数==>
function add(i1,i2) {//只是声明,不会立即执行
return i1 + i2;
}
<!==调用函数==>
var r=add(1,2)
alert(r);
r=add("你好","tom");
alert(r);
(注意:javascript不像c#中那样要求所有路径都返回值,如果没有返回值,默认返回undefined)
——匿名函数
简介:
1.类似于c#中的匿名函数
2.这种匿名函数的用法在JQuery中的非常多
例码:
<!==匿名函数==>
var f1 = function (i1, i2) { return i1 + i2; };
alert(f1(12, 12));
<!==第二种声明方法==>
alert(function (i1, i2) { return i1 + i2; }(10, 10)); //直接声明一和匿名函数,立即使用
——JS中的面向对象
简介:
Javascript中没有类的语法。是用函数闭包(closure)模拟出来的,理解的时候还是用c#中的类,构造函数的概念
Javascript中的String,Date等“类”都被叫做“对象”,方便初学者理解,但是不严谨
例码:
<!==javascript中声明类==>
function Person (name,age){//声明一个函数,当成类用。
this.Name=name;
this.Age;
this.SayHello=function(){alert("你好,我是"+this.Name+",我今年"+this.Age+"岁了");
}
var p1=new Person("tom",20);//不要去掉new,否则就编程调用函数了
p1.SayHello();
(注意:必须要声明类名,function Person(name,age)可以看作是声明构造函数,Name, Age这些属性也是使用者动态添加了)——Array对象
简介:
Javascript中的array对象就是数组,首先是一个动态数组,而且是一个像c#中数组,ArrayList,Hanshtable等的超强综合体
例码:
<!==Array对象==>
var names = new Array();
names[0]= "tom";
names[1]= "jerry";
names[2]= "lily";
for (var i = 0; i < names.length; i++) {
alert(names[i]);
}
(注意:Array对象是动态的,无需先制定大小)
<!== Array练习1:求一个数组中的最大值==>
function getMax(arr) {
var max = arr[0];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
var arr1 = new Array();
arr1[0]= 20;
arr1[1]= 10;
arr1[2]= 21;
alert(getMax(arr1));
<!== Array练习2:反转一个数组中的元素,不要使用javascript中的反转函数==>
<script type="text/javascript">
function MyReverse(arr) {
for (var i =0; i < arr.length / 2; i++) {
var temp = arr[i];//交换元素最重要的是利用中间变量
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}
alert(arr);
}
var arr= new Array();
arr[0] = 3;
arr[1] = "a";
arr[2] = 8;
arr[3] = "haha";
MyReverse(arr);
</script>
<!== Array练习3:在相邻两个元素之间加“|”,不要使用join==>
<script type="text/javascript">
function Myjion(arr) {
if(arr.length < 0) {
return"";
}
var s =arr[0];
for (var i =1; i < arr.length; i++) {
s = s + "|" +arr[i];
}
return s;
}
var arr = new Array();
arr[0] = "tom";
arr[1] = "jerry";
arr[2] = "lily";
alert(Myjion(arr));
</script>
——Js中的Dictionary
简介:
JS中的Array不仅是一个数组,还是一个Dictionary,还是一个Stack,能够像Hashtable,Dictionary那样用,而且像它们一样效率高。
例码:
<!==Dictionary的用法==>
<script type="text/javascript">
var pinyins = new Array();
pinyins["人"] = "ren";//其中“人”是一个key,“ren”是一个value
pinyins["口"] = "kou";
pinyins["手"] = "shou";
alert(pinyins["人"]);
alert(pinyins.人);//和上面一样的效果,根据key来取value
for (var k inpinyins) {//类似c#中的foreach
alert(k);
}
</script>
——Array的简化声明
Array简化的创建方式:
var arr = [3, 5, 6, 8, 9];普通数组初始化
这种数组可以看做是pinyins[“人”]=”ren”;的特例,也就是key为0,1,2···
字典风格的简化创建方式:
var arr="tom";30,"jim";20;
——数组,for,及其他
简介:
对于数组风格的Array来说,可以使用join方法拼接为字符串:
var arr ="tom";"jim";"lily";;
Alert(join(“.”));//js中join是array的方法,不像是.NET中是string方法
For循环可以像c#中的foreach一样用
For循环还可以获得一个对象所有的成员,因为对象的成员就是以对象的key的形式出现的
for (ein document){
alert(e);
}
有没有文档,都可以进行开发