1. 程式人生 > >JavaScript學習筆記(基礎部分)

JavaScript學習筆記(基礎部分)

lower 對數 mys row 字符串分割 push 循環 jee document

  

一、JavaScript簡介:

  概念:JavaScript是一種解釋性的、跨平臺的、基於對象的腳本語言,一般用於客戶端來給HTML頁面增加動態的功能。
  組成
    1.ECMAScript,描述了該語言的語法和基本對象
    2.DOM 文檔對象模型,描述處理網頁內容的方法和接口
    3.BOM 瀏覽器對象模型,描述與瀏覽器進行交互的方法和接口。

二、JavaScript

  1.js的引入方式

    1.1 放在HTML的<head>部分
    1.2 放在HTML的<body>部分
    1.3 從外部文件引入:
      <script src="myScript.js"></script>

  2.變量

    2.1變量的聲明:
      使用“var”關鍵字來聲明變量
      聲明時賦值var x=1
      或先聲明後賦值:var x; x=1
      對於沒有賦值的變量,其值為:undefined
    2.2變量的命名規則:
      英文字母、數字、下劃線
    2.3變量名格式:
      匈牙利命名法:變量名=類型+對象描述 例:var sname="hello"; var nage=18
      駝峰命名法:
        全部小寫,單詞用下劃線分割
        每個單詞首字母大寫
        首字母小寫,其他單詞首字母大寫
    2.4作用域:
      局部作用域:函數內部定義
      全局作用域: 函數外定義
      優先級:局部變量>全局變量

  3.運算符     

      3.1算數運算符 + - * 、 % ++ --

                        /*
                var a=1
                b = a++    //先賦值後加減
                alert(b)  //b=1
                alert(a)  //a=2
            */
            /*
                var a=1
                b=++a    //先加減後賦值
                alert(b) //b=2
                alert(a) //a=2
            
*/ /* var x=1 alert(x++) x=x+1 先賦值,x=1 alert結果為1 ,執行完成後x=2 alert(++x) 此時x=2,先加減後賦值,alert結果為3 x=3 alert(--x) 先加減,後賦值,此時alert結果為2 alert(x--) */

        3.2賦值運算符 += -= *= /= %=

        3.3關系運算符 == != ===

              alert(2=="2")  --> true
              alert(2==="2")  -->flase
              ===不進行數據轉換,直接進行比較               

   

                var s="hello"
              alert(typeof(s))
              // typeof:只能判斷基礎數據類型,對於對象無法準確判斷具體是什麽對象
              var s2=new String("hello")
              alert(typeof(s2))
              alert(s2 instanceof String);

        3.4邏輯運算符 ! && ||

        3.5位運算符 ~ & | ^ << >>

        3.5一元加減法:

            <!--一元加減法-->
                var a=3
                b=+a
                alert(b)
                alert(typeof(b))
            <!--可以對數據類型進行轉換-->
                var a="3"
                b=+a
                alert(b)
                alert(typeof(b))
            <!--有非數字類型,轉換失敗-->
                var a="3a"
                b=+a
                alert(b)
                alert(typeof(b))

 4.基本數據類型

      number
      string
      Boolean
      null
      undefined

  5.流程語句

    5.1 while

            <script type="text/javascript">
                i=0
                while (i<5) {
                    // statement
                    console.log(i)
                    i++
                }
            </script>

    5.2 do while

            <script type="text/javascript">
                i=0
                do{  //至少執行一次循環
                    console.log(i)
                    i++
                } while (i<5);
            </script>        

    5.3 for

            <script type="text/javascript">
                for (var i=0; i<5; i++) {
                    console.log(i)
                }
            </script>

    5.4 for in

            <script type="text/javascript">
                for (i in [1,2,3,4]) {
                    console.log(i)
                }
            </script>

    5.5 if else

 1 <head>
 2 <meta charset="utf-8">
 3 <title>JavaScript</title>
 4 </head>
 5 <body>
 6 
 7 <script type="text/javascript">
 8     var d = new Date();
 9     var time = d.getHours();
10     if (time<10)
11     {
12         document.write("<b>早上好</b>");
13     }
14     else if (time>=10 && time<14)
15     {
16         document.write("<b>中午好</b>");
17     }
18     else
19     {
20         document.write("<b>下午好!</b>");
21     }
22 </script>
23 </body>
24 </html>

    5.6 switch

 <!DOCTYPE html>
 <html>
 <head>
 <meta charset="utf-8">
 <title>JavaScript</title>
 </head>
 <body>
 
 <button onclick="myFunction()">今天是周幾?</button>
 <p id="demo"></p>
 <script>
 function myFunction(){
     var x;
     var d=new Date().getDay();
     switch (d){
           case 0:x="今天是星期日";
         break;
          case 1:x="今天是星期一";
         break;
           case 2:x="今天是星期二";
         break;
         case 3:x="今天是星期三";
             break;
           case 4:x="今天是星期四";
         break;
           case 5:x="今天是星期五";
         break;
           case 6:x="今天是星期六";
         break;
      }
     document.getElementById("demo").innerHTML=x;
 }
 </script>
 
 </body>
 </html>

    5.7 異常處理

            function func (argument) {
                 try {
                     console.log(‘hello‘)
                     if(true){
                         throw "主動拋出錯誤"
                     }
                 } catch(e) {
                     alert(e);
                 } finally {
                     console.log("執行完畢")
                 }
            }
            func()        

    5.8 continue break default

  6.對象

    6.1 Number

            var num=new Number(15)
            console.log(num)
            console.log(num.toString())   //數字轉字符串
            console.log(num.toString(2))  //數字轉2進制
            console.log(num.toString(8))    //數字轉8進制
            console.log(num.toString(16))    //數字轉16進制

    6.2 String

            var str1=new String("hello");
            var str2=" world";

            //屬性
            console.log(str1.length); //字符串的長度
            // 方法
            //獲取指定字符串
            console.log(str1.charAt(‘1‘)); //返回在指定位置的字符。
            //查找
            console.log(str1.indexOf(‘l‘)); //返回某個指定的字符串值在字符串中首次出現的位置。
            console.log(str1.lastIndexOf(‘l‘));  //從後向前搜索字符串,並從起始位置(0)開始計算返回字符串最後出現的位置。
            console.log(str1.replace(‘e‘,‘a‘)); //替換
            console.log(str1.slice(1,3));  //切片[start,end)
            console.log(str1.substring(1,3))  //和slice相同
            console.log(str.split(" ")); //把字符串分割為字符串數組。
            console.log(str1.substr(1,3))  //從起始索引號提取字符串中指定數目的字符 (index,num)
            //大小寫轉換
            console.log("HELLO".toLowerCase(str1))  //轉小寫
            console.log("hello".toUpperCase(str1))  //轉大寫
            //編排方法
            document.write(s.italics());
            document.write(s.bold());
            document.write(s.anchor());    
            console.log(" hello ".trim())  //去除字符串兩邊的空白    
            var str=str1.concat(str2);//字符串拼接
            console.log(str);     

    6.3 Array

            //聲明
            var cars = ["Volvo","Saab","BMW"]; //方法一
            var arr1=[1,2,3,4]; //方法二
            var arr3=new Array();  //方法三
                var arr4=new Array(3,);  //初始化一個長度為3的數組,該數組可變長
            //屬性
            console.log(cars.length)
            //方法:
            //插入和刪除
            console.log([1,2,3].concat([4,5,6])) //數字合並
            console.log(cars.join("#"))
            console.log(cars.pop()) //刪除最後一個元素
            console.log(cars.push(‘jeep‘)) //數組的末尾添加一個或更多元素,並返回新的長度
            console.log(cars.shift()) //刪除並返回數組的第一個元素
            console.log(cars.unshift(‘abc‘)) //向數組的開頭添加一個或更多元素,並返回新的長度。
            console.log(cars)
            //排序
            console.log(cars.reverse()) //反轉數組順序
            console.log(cars.sort())  //數組排序
            console.log(cars.toString()) //數組轉字符串

    6.4 Boolean

            //方法
            var bool = new Boolean(1);
            console.log(bool.toString())
            console.log(bool.valueOf())

    6.5 Date

            //時間創建
            var today = new Date()
            var d1 = new Date("October 13, 1975 11:13:00")
            var d2 = new Date(79,5,24)
            var d3 = new Date(79,5,24,11,33,0)

            console.log(today)
            console.log(d1)
            console.log(d2)
            console.log(d3)
            //方法
            y=today.getFullYear()
            m=today.getMonth()
            d=today.getDate()
            H=today.getHours()
            M=today.getMinutes()
            S=today.getSeconds()

            console.log(y+‘年‘+m+‘月‘ +d+‘日‘+" "+H+":"+M+":"+S)
            console.log(today.getTime())        

    6.6 Mtch

            console.log(Math.abs(-2))
            console.log(Math.max(1,3,5))
            console.log(Math.min(1,3,5))
            console.log(Math.random()) //[0.0,1.0)隨機數
            console.log(Math.round(2.5)); //四舍五入    

    6.7 RedExp

            //語法
            // var patt=new RegExp(pattern,modifiers);
                // 或者更簡單的方式:
            // var patt=/pattern/modifiers;
            /*    
            修飾符
            i    執行對大小寫不敏感的匹配。
            g    執行全局匹配(查找所有匹配而非在找到第一個匹配後停止)。
            m    執行多行匹配。
            */
            var str="hello world"
            console.log(str.search("o")) //返回第一個匹配的索引值
            console.log(str.search("a")) //沒找到返回-1
            console.log(str.match(/o/g));
            console.log(/hello/g.test(str))        

 7.函數

    7.1函數創建的三種方法

            // 方法一
            function func (argument) {
                return "hello"
            }
            console.log(func())
            // 方法二:構造函數 var func = new Function("參數1", "參數2", "函數體")
            var func = new Function("a","b","return a+b")
            console.log(func(1,2))
            // 方法三 匿名函數(函數表達式)
            console.log(function(x,y){return x+y}(3,5))

    7.2函數調用

            this 關鍵字:一般而言,在Javascript中,this指向函數執行時的當前對象。
            void()
            // void的作用:阻攔方法的返回值
               function f() {
                   return 8
               }
               alert(void(f()))

    7.3參數

            arguments對象
            //遍歷傳入的參數
            function func() {
                for (var i = 0; i<arguments.length; i++) {
                    console.log(arguments[i])
                }
        
            }
            func(1,2,3,4,5)

JavaScript學習筆記(基礎部分)