JavaScript入门1

<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" onclick="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 DebuggerComanionJS,能准确定位到出错的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);

}

 

posted @ 2013-06-12 20:41  秋水惜朝  阅读(197)  评论(0编辑  收藏  举报