<script type="text/javascript"> alert(new Date().toLocaleDateString()); </script>
1.JavaScript代码放到<script>标签中,同时使用 type 属性来定义脚本语言。这样就可以告诉浏览器,js程序从何处开始<script>,从何处结 束</script>。Script可以放到<head>,<body>等任意位置,而且可以不止一个<Script>标签,alert函数是弹出消息窗口,new Date()是创建一个Date类的对象,默认值是当前时间。
2.放到<head>中得<script>在body家在之前就已经运行。
3.除了可以再页面上声明JavaScript以外,还可以将JavaScript写到单独的js文件中,然后在页面中引入:<script src="test.js" type="text/javascript"></script>.声明到单独的js文件的好处是多页面也可以共享,减少网络流量。
4.事件。代码如下:
<input type="button"value="点"/> <a href="javascript:alert('hello!');">点点</a> <a href="http://www.baidu.com" οnclick="alert('helloword!')";>点点</a>
<a href="javascript:alert('hello!');">点点</a>中的javascript表示的是和http和ftp,thunder://,ed2k://,mailto://一样的网络协议。
5.JavaScript的变量
JavaScript中既可以使用双引号声明字符串,也可以使用单引号声明字符串。主要是为了方便和HTML集成,避免转义符的麻烦。
JavaScript中有两种NULL和undefined两种,NULL表示变量的值为空,undefined表示变量没有指向任何的对象,未初始化。
JavaScript是弱类型,在声明变量的时候无法:int i=0;只能通过var i=0;也可以不用var来声明变量,直接用,这样的变量是“全局变量”。
JavaScript是动态类型的,var i=0;i="abc";是合法的。
<script type="text/javascript"> var i = 10; alert(i); </script>
javaScript中的var与C#中得var是不一样的,C#中表示类型推断。
6.JavaScript除错和调试
若JavaScript中有代码错误,浏览器会提示,根据提示修改即可。
JavaScript的调试:
在vs中调试的时候需要将要调试的页面设为起始页,设置断点,然后工具-->Internet选项-->高级:“禁用脚步调试(Internet Explore)”“禁用脚步调试(其它)”两个选项的勾去掉。运行即可。
【分享IE下调试js错误】
问题:ie6会出现**行错误,结果**行是html
在IE中报js错误时,虽然也给了错误的代码行数,但并没给出具体出错的文件。
通过安装WindowsScript Debugger和ComanionJS,能准确定位到出错的js并查看调用栈。具体步骤如下
1. 安装WindowsScript Debugger, 微软主页上下载需要正版验证,
可从这里【http://download.microsoft.com/download/7/7/d/77d8df05-6fbc-4718-a319-be14317a6811/scd10en.exe】下载.
2. 将 工具 >Internet选项 > 高级 中的 禁用脚本调试 两个选项设置为未选中状态
3. 安装DebugBar【http://www.debugbar.com/download.php 】,需要穿墙,推荐使用无界
4. 安装CompanionJS【http://www.my-debugbar.com/wiki/CompanionJS/HomePage】
5. 重启IE
from:51cto
案例:计算100以内的整数和,代码入下:
<script type="text/javascript"> var sum=0; for (var i = 0; i <= 100; i++) { sum = sum + i; } alert(sum); </script>
6.判断变量初始化的三种方法,代码如下:
<script type="text/javascript"> var x; if (x == null) { alert("null"); } if (typeof (x) == "undefined") { alert("undefined"); } if (!x) { alert('不x'); } if (x) //表示x被初始化了或者x不为空,或是x不为0{ }; </script>
7.函数的声明
JavaScript中声明函数的方式:
function add(i1,i2){
return i1+i2;
}
不需要声明返回值的类型,参数类型。函数定义以function开头。
var r=add(1,2);
alert(r);
r=add("你好","tom");
alert(r);
JavaScript不像C#中那样要求所有路径都有返回值。
8.匿名函数
var f1=function (i1,i2){return i1+i2;};
alert(f1(5,6));
同理:alert(function(i1,i2){return i1+i2;}(5,6)); //直接声明一个匿名函数直接使用。
9.JS面向对象
JavaScript没有类的语法,是用函数闭包(clisure)模拟出来的,JavaScript中的String。Date等类似类的都被称为对象。
JavaScript中声明对象:
function Person(name,age){
this.name=name;
this.age=age;
this.SayHello=function(){
alert("您好,我是"+this.name+",我"+this.age+"岁了");
}
var p1=new Person("tom",20);
p1.SayHello();
}
必须要声明对象名,function Person(name,age)可以看作构造函数,Name,Age这些属性也是使用者动态添加。
var p1=Person("tom",20);
alert(p1);
输出结果是undefined
10.Array对象
JavaScript中的Array对象就是数组,是一个动态数组,而且是一个像C#中数组、ArrayList、Hashtable等的超强综合体。无需预先制定大小
var names=new Array();
names[0]="tom";
names[1]="jerry";
names[2]="lily";
for(var i=0;i<names.length;i++){
alert(names[i]);
}
11.练习
1.得到数组中的最大值.
function getMax(arr){
var max=arr[0];
for(var i=0;i<arr.length;i++){
if(arry[i]>max) {
max=arr[i];
}
}
return max;
}
var arr1=new Array();
arr1[0]=12;
arr1[1]=24;
arr1[2]=2;
alert(geMax(arr1));
2.数组反转
JavaScript有自带的一个反转函数reverse();但是现在不使用此函数,而是让第i个元素与第length-i-1个元素交换。
var names=new Array();
arr[0]="tom";
arr[1]="jerry";
arr[2]="lily";
for(var i=0;i<arr.length;i++){
alert(arr[i]);
}
function myReverse(arr){
for(var i=0;i<arr.length/2;i++){
var temp=arr[i];//交换变量
arr[i]=arr[length-i-1] ;
arr[length-i-1]=temp;
}
}
alert(arr);
myReverse(arr);//传递的不是拷贝
alert(arr);
将一个字符串输出为"|"分割的形式,不使用JavaScript自带的Join函数即jarr1.oin("|")。
function myJoin(arr){
if(arr.length<=0){
return ""
}
var s="";
for(var i=1;i<arr.length;i++){
s=s+"|"+arr[i]
}
return s;
}
var names=new Array();
names[0]="tom";
names[1]="jerry";
names[2]="lily";
alert(myJoin(names));
12.Array的字典的用法
JavaScript中的Array不仅是个数组还是一个Dictionary,还是一个Stack。
var dict= new Array();
dict["人"]="ren";
dict["口"]="kou";
dict["手"]="shou";
alert(dict["人"]);
alert(dict.人);
for(var k in dict){//遍历
alert(k);
}
13.Array的简化声明
var arr=[3,5,6,8,9].普通数组初始化。这种数组可以看作是pinyins["人"]="ren"的特例,也就是key=0,1,2,3,4......
字典风格的简化创建方式:
var arr={"tom":30,"jim":20};
对于数组风格的Array来说,可以使用join方法拼接为字符串。
var arr=["tom","jim","lily"];
alert(arr.join("|"));//js中join是array的方法,不像.NET是string的方法。for循环可以像C#中的foreach一样。
for(var e in document){//可以获得一个对象的所有成员。因为对象的成员就是以对象的key的形式出现的。
alert(e);
}
var p1=new object();
p1.Name="tom";
p1.Age=30;
p1.SayHello=function(){alert("hello");};
p1.SayHello();
for(var e in p1){
alert(e);
}