日期:2014-05-20  浏览次数:20976 次

javascript
谁能给个学习javascript的经验介绍啊,最好有代码说明的,详细点的,我是新手!!

------解决方案--------------------
http://www.w3school.com.cn/js/index.asp
------解决方案--------------------
通常针对.net这种热门,或许会有一些标榜“经典、宝典、必读、高级”等等的书籍,上面还罗列了一些基本的应用框架和组件。但是对于javascript这种,我估计更多地是摘抄人家大公司的“语言手册”并且补充一点只言片语的小demo就算做“经典”了。所以那类书真的没用。

如果要面向企业应用开发来寻找前端开发入门书籍,在你对基本语法已经有了了解之后,选择专门针对大量组件开发、不同层次插件设计,应用框架设计的书籍去看,不要再纠缠在一些介绍基本语法的书上面。
------解决方案--------------------
JScript code
1、 直接在超链接中调用javascript(只有在href中才需要写javascript:说明交给javascript引擎处理)
<a href="javascript:alert('hello')">hello</a>
<a href="" onclick="alert('hello2')">点击我2</a>

2、在javascript中即可以使用单引号也可以使用双引号声明字符串
   只有是方便和html集成,避免转义字符麻烦
3、javascript 是若类型   如果不声明var i  直接写i=10;声明的是一个全局变量(千万别这么用,避免冲突)
   var i=10; //声明一个变量,名字为i 指向10这个整数,i就是int类型
   i='abc' ; //现在是字符串了

4、调试Javascript
   IE--高级--禁用脚本提示点上√
   VS--工具--选项--打开行号
   DebugBar JS调试工具
   ASP.NET 调试JS 和C#一样的可能得把对勾去掉

5、判断变量是否初始化的三种方式
   var x;
   if (x==null){
 alert('null');
   }
   if (typeof(x)=="undefined"){
 alert('undefined');
   } 
   if (!x){
 alert('不X');
   }
6、函数的声明(这里的大括号推荐这么写,因为以后可能引起歧义)
   function add(i1,i2){ //只是声明,不会立即执行
  return i1+i2;
   }
   注意:
   function compare(i1,i2){
 if (i1>i2)
 return i1;
   }
   这样的写法不会报错假设 compare(6,4)返回6 否则返回undefine

7、匿名函数--避免冲突
   var f1=function (i1,i2){
 return i1+i2;
   }
   alert(f1(5,9));
   alert(function (i1,i2){return i1*i2;}(10,9));


8、JS面向对象基础( *** js分大小写的)
   注意:Javascript没有类的语法,是用函数闭包(closure)模拟出来的,
         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();
   p1.Gender='男';
   alert(p1.Gender);
9、Array对象
   JavaScript中的Array是个动态的数组(类似C#arraylist)
   

   var names=new Array(); //这里必须是大写
   names[0]='liyang';
   names[1]='zhangsan';
   names[2]='lisi';
   for(var i=0;i<names.length;i++){
 alert(names[i]);
   }

 

10、求数组最大数
   var arr1=new Array();
   arr1[0]=30;
   arr1[1]=11;
   arr1[2]=3;
   arr1[3]=55;

   alert(arr1[3]);
   function getMax(arr){
 var max=arr[0];
 for(var i=0;i<arr.length;i++){
  alert(arr[i]);
  if (arr[i]>max){
   max=arr[i];
  }
 
 }
 return max;
   }
  
   alert(getMax(arr1));


10、反转  联合
  function myReverse(arr1) {
            
            for (var i = 0; i < arr1.length/2; i++) {
                var tmp = arr[i];
                arr1[i] = arr1[arr1.length - i-1];
                arr1[arr1.length - i-1] = tmp;
            }            
            return arr1;
        }
        
        function myjoin(arrs) {
            if (arrs.length <= 0) {
                return "";
            }
            var s = arrs[0];
            for (var i = 1; i < arrs.length; i++) {
                s = s + "|" + arrs[i];
            }
            return s;
        }

11、JS当字典使用

    <%--字典 --%>
    <script type="text/javascript">
        var dict = Array();
        dict["人"] = "ren";
        dict["猫"] = "mao";
        alert(dict["人"]);
        alert(dict.猫);

        for (var k in dict) { //js中的foreach语法
            //遍历出来是key 不是值
            
            alert(k);
        
        }

        var arr = new Array();
        arr[0] = "1";
        arr[1] = "2";
        for (var k in arr) {
            alert(arr[k]);
        }
        
    
    </script>

12、Array的简化声明

      <%--Array的简化声明 --%>
      <script type="text/javascript">
          var arr = [1, 3, 4, 5, 6, 8];
          arr = { "tom": 30, "liyang": 25 }
          for (var k in arr) {
              alert(k +"---" +arr[k]);
          
          }
      
      </script>


13、获得对象所有成员  因为对象的成员就是以对象的Key的形式出现的
    <%--知道一个对象的所有方法 --%>
    <script type="text/javascript">
        for (var k in document) {
            alert(k);
        }


        var p1 = new Object();
        p1.Name = "tom";
        p1.Age = "30";
        p1.SayHello=function() {alert("hello")};
        
        p1.SayHello();
        
        for (var k in p1)
        {
        alert(k);
        }
    
    </script>