變量重名優先級

變量重名優先級

console.log(a)  //ƒ a (){}
var a
function a (){}
var a = 10
console.log(a)  //10
複製代碼

同一個標識符的狀況下,變量聲明與函數聲明都會提高;函數聲明會覆蓋變量聲明,但不會覆蓋變量賦值,即:若是聲明變量的同時初始化或賦值那麼變量優先級高於函數。bash

有幾條原則:

  • 函數聲明會置頂
  • 變量聲明也會置頂
  • 函數聲明比變量聲明更置頂(函數聲明優先級更高,會覆蓋變量聲明)
  • 變量和賦值語句一塊兒書寫,在js引擎解析時,會將其拆成聲明和賦值2部分,聲明置頂,賦值保留在原來位置
  • 聲明過的變量不會重複聲明

強類型語言和弱類型語言

強類型語言

強類型語言的變量的類型一旦肯定,若是不通過顯示類型轉換,就不會變成其餘數據類型,即徹底不允類型許隱式轉換的語言。好比Java、Python就是強類型語言。函數

弱類型語言

弱類型語言是容忍類型隱式轉換的語言,即在知足必定條件時能夠進行類型隱式轉換。好比JaveScript、C、C++就是弱類型語言。spa

無類型語言

徹底容許類型進行隱式轉換的語言,即任何狀況下均可進行隱式轉換的語言。好比彙編語言。code

各種語言的優缺點

1.強類型語言因爲類型之間不可隱式轉換而更加可靠。同時,強類型語言要求徹底顯示轉換,開發效率低。 2.弱類型語言的開發效率相比強類型語言高一些,但可靠性弱一些,容易出錯。ip

相關文章
相關標籤/搜索