1. 程式人生 > 其它 >js基礎知識

js基礎知識

js基礎概念
js的區域性變數和全域性變數

js的資料型別

var是弱資料型別, 但js是能識別他的資料型別的

<head>
 <meta charset="utf-8">
 <script type="text/javascript">
 function abc(){
    var a=1;
    var b="張三";
    var c=true;
    var d=new Date();
    
    alert("a的資料型別:"+typeof(a));
    alert("b的資料型別:"+typeof(b));
    alert("c的資料型別:"+typeof(c));
    alert("d的資料型別:"+typeof(d));
   }
 </script>
</head>
 <body>
  <input type="button" name="" id="" value="js的資料型別" onclick="abc()"/>
 </body>

 關於js的方法

方法的書寫

<script type="text/javascript">
 function abc(){
    var a=1;
    var b="張三";
    var c=true;
    var d=new Date();
    
    alert("a的資料型別:"+typeof(a));
    alert("b的資料型別:"+typeof(b));
    alert("c的資料型別:"+typeof(c));
    alert("d的資料型別:"+typeof(d));
   }
</script>
<body>
 <input type="button" name="" id="" value="不傳引數的按鈕" onclick="test()" /><br/>
 <input type="button" name="" id="" value="傳1個引數" onclick="test1(12)" /><br/>
 <input type="button" name="" id="" value="傳2個引數" onclick="test2(1,'張三')" /></br/>
 <input type="button" name="" id="" value="呼叫了一個有返回值的按鈕" onclick="test3('張三')" /><br/>
</body>

方法覆蓋

和Java不同,js中沒有方法的過載,只有方法覆蓋

只要方法名相同。無論是有多少個引數,js統一隻會識別到最後一個方法(方法覆蓋)

<head>
 <meta charset="utf-8">
 <title></title>
 <script type="text/javascript">
  function abc(a){
    //var name='張三';//在方法體內部的區域性變數,只能自己用
    alert('這是第一個方法'+a);
   }
   
   function abc(){
    alert('這是第二個方法');
   }
   
   function abc(){
    alert('這是真的');
   }
 </script>
</head>
<body>
 <!-- js中不會過載,只有方法覆蓋啊 -->
 <input type="button"  value="方法過載和多型" onclick="abc(44)"/>
 <!-- 輸出:這是真的 -->
</body>

js資料型別的轉換

雖然js只有一個var來描述變數(弱資料型別),但系統可以識別他的資料型別,還可以進行資料型別的轉換

<script type="text/javascript">
 function test(){
   var x='12.3';
   console.log("x的資料型別是:"+typeof(x));
   var m=parseInt(x);
   console.log("x轉換後的資料型別是:"+typeof(m)+"值是:"+m);
   
   var y='12.111';
   console.log("y的資料型別是:"+typeof(x));
   var m1=parseFloat(y);
   console.log("y轉換後的資料型別是:"+typeof(m1)+"值是:"+m1);
   
   var z='3*4';
   console.log("z的資料型別是:"+typeof(z)+"z的值是:"+z);
   var m2=eval(z);
   console.log("z計算後的資料型別是:"+typeof(m2)+"值是:"+m2);
   
   var l=true;
   console.log("l的資料型別是:"+typeof(l)+"l的值是:"+l);
   var m3=l.toString();
   console.log("l轉換後的資料型別是:"+typeof(m3)+"值是:"+m3);
  }
</script>
<body>
 <input type="button" name="" id="" value="資料型別的轉換"  onclick="test()"/>
</body>

js中的運算計算

js的運算規則和Java一樣(但特別注意:x=+y)

function abc(){

    var a='10';

    var b='8';

    console.log("b的值 "+b+"  b的資料型別轉換成 "+typeof(b)+"  "+a)

    /* =+ a先轉換成number 再給a的值複製給b */

    /* += 等價與 b+=a == b=b+a */

   }

選擇語句和迴圈語句

略:和java一樣

js主要物件

window物件

時間間隔器

<script type="text/javascript">
 function test(){  
    console.log('test方法開始執行了');
    /* 引數: 執行的方法, 等待的時間(毫秒單位) */
    window.setTimeout("hello()",1000);
   }
   function hello(){
    console.log('hello');
   }
   function test1(){
    console.log('test1方法開始執行了');
    window.setInterval("hello()",1000);
   }
</script>
<body>
 <input type="button" value="等待一定時間,再執行" onclick="test()" /><br/>
 <input type="button" name="" id="" value="每間隔一定時間,反覆執行" onclick="test1()"/>
</body>

陣列的使用

<script type="text/javascript">
 function test(){
   /* 第一種宣告方式 */
   var a=[1,2,3,4,5,6,7,8,9];
   for (var i = 0; i < a.length; i++) {
    console.log("當前陣列的角標:"+i+"當前的值:"+a[i]);
   }
  }
  function test1(){
   /* 第二種宣告方式 */
   var a=new Array();
   a[0]=[1,2,3];
   a[1]=['張三','李四','王五'];
   a[2]=[2,5,1,3,6];
   for (var i = 0; i < a.length; i++) {
    for (var j = 0; j < a[i].length; j++) {
     console.log("當前陣列的角標:"+i+", "+j+"當前位置的值:"+a[i][j]);
    }
   }
  }
  function test2(){
   /* join(分隔符) 將陣列元素中加分割符號後串接並返回一個字串 */
   var a=[1,3,2,9,7,8,5];
   console.log(a.join("*"));
   /* reverse() 將陣列元素按照原先相反位置存放 */
   console.log("陣列的取反:"+a.reverse());
   /* slice(始[,終) 返回一個子陣列  (前包後不包)*/
   console.log(a.slice(1,4));
   /* sort() 按照字母排序 */
   console.log(a.sort());
  }
</script>
<body>
 <input type="button" value="一維陣列的遍歷" onclick="test()"/>
 <input type="button" value="二維陣列的遍歷" onclick="test1()"/>
 <input type="button"  value="陣列的操作" onclick="test2()"/>
</body>

字串的基礎操作

<script type="text/javascript">
 function test(){
   var a="hello world";
   var index_a=a.indexOf("o");//第一個字母的位置
   var index_b=a.indexOf("p");//沒有就返回-1
   console.log("o的角標位置:"+index_a);
   /* 字元擷取(前包後不包) */
   var new_a=a.substring(1,3);
   console.log(new_a);
   /* 根據特定字元,格式化字串 */
   var ip='192.168.0.1';
   var ip_array=ip.split(".");
   for (var i = 0; i < ip_array.length; i++) {
    console.log(ip_array[i]);
   }
   /* 大小寫轉換 */
   var b='abc';
   console.log(b.toUpperCase());
   var c='ABC';
   console.log(c.toLowerCase());
  }
</script>
<body>
 <input type="button" value="字串處理" onclick="test()"/>
</body>

js時間的格式化

<script src="../js/dateFormat.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
 function test(){
   var date=new Date();
   console.log(date);
   //方法1:引入控制元件
   var sdate=date.format('yyyy-MM-dd');
   var stime=date.format('yyyy-MM-dd HH:mm:ss')
   console.log(sdate);
   console.log(stime);
   
   //方法2:
   var y=date.getFullYear();//年
   var mon=date.getMonth()+1;//月
   var d=date.getDate();//日
   var h=date.getHours();//時
   var m=date.getMinutes();//分
   var s=date.getSeconds();//秒
   var weeks=date.getDay();
   var weekday=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
   console.log(y+"年 "+mon+"月 "+d+"日  "+h+":"+m+":"+s+"  "+weekday[weeks])
  }
</script>
<body>
 <input type="button" value="日期處理" onclick="test()" />
</body>

以上就是js基礎知識的詳細內容。(拼多多培訓