1. 程式人生 > >*javascript簡要概述(一)

*javascript簡要概述(一)

javascript簡要概述(一)

JavaScript一種直譯式指令碼語言,是一種動態型別、弱型別、基於原型的語言,內建支援型別。它的直譯器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的指令碼語言,最早是在HTML網頁上使用,用來給HTML網頁增加動態功能。大家可以在瀏覽器中直接執行,無需下載其他的編譯器。對於懶得下載編譯器的同學來說特別的友好,只要有瀏覽器就可以。ps:javascript和java沒有半毛錢關係。
在前端中,主要包含html,css和javascript三部分,html負責畫出網頁框架,css負責網頁樣式,而Javascrip負責讓網頁動起來。
在html中,一般javascript寫在標籤中。

在<script src="xxxx.js"></script>
//這裡xxxx為js檔名

javascript 變數
javascript和其他語言一樣,都有全域性變數和區域性變數,在javascript中定義區域性變數值前面加上var,以此來表示是區域性變數,否則即認為是全域性變數。

var i=1;
//這裡i 表示區域性變數
a=1
//a 為全域性變數

javascript定義函式
在javascript中,定義函式的語法為function func(){}
具體分為普通函式,匿名函式和自執行函式
普通函式

function fun(){
var i=1;
console.log(i)
}
//其中fun為函式名,函式體寫在{}中

匿名函式

function(){}
var ma=function(){
 console.log("11");     
 }

函式沒有名字,可以通過var xxx=function(){函式體},xxx()呼叫函式。或者可以通過繫結事件來呼叫。

自執行函式

(function (){
console.log("123");})()

函式內部執行自身。通過()包裹住匿名函式,隨後加()執行,可以看做是普通函式和匿名函式的結合。

變數作用域
js變數作用域,可以理解為這四句話。
1、與python相似,js作用域以函式作為作用域。例如:

function foo(){
var i=21;
}

其中i=21只在foo這個函式之間有作用域,在函式內,都是作用域。
2. 函式的作用域在函式未被呼叫之前已經建立。

function foo(){
    var i=21;
    }

函式foo的作用域在,在函式呼叫之前,已經建立,換句話說,就是函式建立完成後即已經建立完作用域。
3 函式的作用域的存在作用域鏈,並且作用域鏈也是在函式建立完成之後及建立完成。

   x=123
      function fun(){
          var x=456;
      function ff(){
          var x=678;
          console.log(x);
      }
      ff();
   }

此時已經形成一個作用域鏈,即但函式fun()執行時,在函式ff()裡,console.log(x)會列印678,如果將var x=678註釋掉,函式會列印456,將var x=456註釋掉,會列印123 。隱隱之中貌似形成一條鏈。
4 函式內部區域性變數提前宣告

function dun(){
    console.log(xxx);
    var xxx=123;
    }

此時函式的輸出結果為undefined,因為js直譯器會自動檢測函式中的區域性變數,隨後生成但不賦值。程式可以執行不會報錯。
但是下列程式碼執行會報錯

  function dun(){
        console.log(xxx);
     
        }