Javascript基础笔记

Javascript基础笔记

1、Javascript是一种在浏览器端执行的语言,他和java直接关系,唯一的关系就是javascript原名是LiveScript,后来吸取了java的一些特性,就只是借鉴而已,升级为javascript,简称是js,不是奸商!哈

2、Js是解释性语言,是动态语言。无需编译就可以运行,在一段js代码中,哪怕其中有语言错误,没有语法错误的部分还是可以运行的。

3、js的调试,直接在vs里面编写和调试,也可以用记事本来写,但是需要在网页上安装一个插件,这样才能运行,js代码。在vs2010里直接有,而在vs2008中需要安装visual studio 2008 sp1 补丁。 Vs2008 的THML编辑器重触发javascript自动完成Ctrl+J

4、HTML的的代码是从上往下执行的。放到<head>中的<script>在body加载之前就已经运行了。

5、事件

在超链接的点击里执行javascript

   <a href = “javascript:alert(‘hello’)”>点我</a>

Javascript中也有事件的概念,当按钮点击的时候也可以执行javascript

<input type =“button”  onclick = “alert(‘world’)”value = “点我哦”>

总结:只有超链接中的javascript才需要加”javascript:” ,因为它不是事件,而是把”javascript:”看成像”http:”  “ftp:”  “thunder://” “ed2k://” “mailto:”一样的网络协议,交由js来处理。

6、变量

   Js中可以用双引号来声明字符串也可以用单引号来声明字符串,这主要是为了方便。

   Javascript中有null ,undefined两种类型,null表示变量的值为空,undefined则表示变量还没有指向任何的对象,未初始化。

   Javascript是弱类型,声明变量的时候无法用 int  i= 10 ;只能通过 var i = 10;这里的var和C#里的var不一样!

   Javascript中也可以不用var声明变量,直接用,这样的变量是“全局变量“ 这里的全局变量是加了双引号的,即不是真正的全局变量,这样声明变量不好,因为在以后其它地方也有可能会用这个变量,这样就会导致冲突。所以,在用变量的时候,都要用var来声明定义。

7、判断变量的初值

   可以用一下三种方法来判断

  var x

   If(x== null){
              alert(“null”);

If(typeof(x)==”undefined”){

   alert(“undefined”);

}

If(!x){    // 推荐使用这种方法来写。

 alert(“非X”);

}

8、函数

   第一:函数没有返回值

   第二:参数没有类型

   第三:函数要以function开头

如下:functionadd(i1 ,i2){

    return i1+i2 ;

}

Javascript不想C#那样,要求所有路径都有返回值。

如下:functionmax(i3 ,i4){

        if(i3 > i4){

              return i3 ;

}

}

当调用函数的时候,实参是max(2.6) ; 那么它返回来的值是undefined的。也就是没有返回。  当时max(5,3) 时,就不会出错。返回5.

如下面,也可以做字符串的相加 

function fun(i5 ,i6){

    return i5+i6;

}

调用的时候,fun(“你好”,”tom”) ;

9、js中的匿名函数。有点像C#里面的委托,在JQuery中用的比较多。

var f1 =function(i1 ,i2){return i1+i2;} ; // 注意,外面还有一个分号,这是必须要加上的。

alert(f1(4,2));

///////////////没有函数名。

也可以这样来用

    alert(function(i1,i2){return i1+i2;}(1,4));

想这样用的话,就是这个函数用了之后就消失了。在这个例子中,这个函数只是个例子,其实际意义不大。但是匿名函数在以后的编程中会常用到。

10、面向对象

   类的概念:

   Javascript中没有类的概念,用一个函数来“冒充“类,并且可以用new来取得对象。

看代码:

<sctipt type = “text/javascript”>

function Person(name , age){

     this.name= name ;

     this.age= age ;

    this.SayHello= function(alert(this.name)) ; // 匿名函数

}

var p1 = new Person(“tom”,20) ; // 这里必须要用new关键字,如果不用就成了函数调用了。

p1.SayHello() ;

</script>

 

 

11、Array动态数组的概念

   看代码:

   var names = new Array() ;// 在声明数组的时候不需要指定大小。直接用就行了。

names[0] = “tom”;

names[1] = “jerry”;

names[2] = “lily”;

…..//可以添加很多,因为这里是动态数组。就想ArrayList一样。Arr.add(***) ;

// 遍历这个names数组

for(var i=0 ;i<names.length; i++){

      alert(names[i]);

}

 综合运用一下:求数组中的最大值

<script type = “text/javascript”>

  functionmax(arr){   // 定义一个函数,去获得传入的数组中的最大值。

      var max=arr[0] ;

      for(var i=1; i<arr.length ; i++){

                     if(max>arr[i])

                max= arr[i];

}

return max;

}

var arr1 = new Array() ;

arr1[0]= 10 ;

arr1[1] = 20 ;

arr1[2] = 15 ;

alert(max(arr1)) ;

</script>

数组元素的反转:就是把第i个元素跟第length-i-1个元素交换。

另外,arr1.join(‘|’) 是将字符串数组arr1用分隔符‘|’分开,以字符串的形式输出。

12、array还可以当dictionary来用。

Js中的array是一个很好的东西,可以当动态数组,可以当dictionay ,也可以当stack,

下面演示:

<script type = ‘’text/javascript’’>

       var dict = new Array() ;

       dict[“小”] = “xiao” ;

dict[“中”] = “zhong” ;

dict[“大”] = “ da” ;

alert(dict[“大”]) ;

</script>

// 这段代码,运行出来的结果是da , 可以当dictionary来用。

 

<script type = ‘’ text/javascript’’>

       vardict = new Array() ;

       dict[“小”] = “xiao” ;

       dict[“中”] = “zhong” ;

       dict[“大”] = “ da” ;

       alert(dict[“大”]) ;

for(var x indict){

alert(x) ;

}

</script>

// 这段代码输出的结果是,小,中,大。

请问,在如下代码中,输出的是啥呢?

<script type = ‘’ text/javascript’’>

       vardict = new Array() ;

       dict[0]= “xiao” ;

       dict[1] = “zhong”;

       dict[2] = “ da”;

       //alert(dict[“大”]) ;

for(var x indict){ // 这就是C# 和java中的foreach 循环。

alert(x) ;

}

</script>

// 答案是:0,1,2 就是脚标!

总结,当用foreach循环时,输出的是,key值,当用查询(dict[“小”])时就是value值。

13、Array数组的简化声明

   Vararr1 = [12,13,14,15] ; // 用[]  并且用逗号隔开。

// dictionary 中的初始化

   Vararr2 = {“小明”:10 , “小芳”,9} ; // 用{} ,key与value用  :  隔开。

 

这些都是些最基础的东西,看了视频就要做点笔记,另外还要了解jq,继续探究。

你可能感兴趣的:(JavaScript)