關於JavaScript的學習(三)——基本概念

第三章

  • ECMAScript中的一切(變量、函數名、操作符)都區分大小寫。
  • 未經初始化的變量,會保存一個特殊的值——undefined。
  • 在函數中使用var定義一個變量,那麼這個變量在函數退出後就會被銷燬,但可以通過省略var操作符,從而創建一個全局變量:
funtion test(){
    message="hi";//全局變量
}
test();
alert(message);//"hi"

//不建議。給未經聲明的變量賦值在嚴格模式下會導致拋出ReferenceError錯誤
  • ECMAScript中有5種簡單數據類型:Undefined、Null、Boolean、Number和String。還有一種複雜數據類型——Object(本質上是由一組無序的名值對組成的)。由於ECMAScript數據類型具有動態性,沒有必要再定義其他數據類型。
  • 嚴格模式爲這門語言容易出錯的地方施加了限制。
  • 當typeof操作符返回”undefined“值時,我們知道被檢測的變量還沒有被聲明,而不是尚未初始化:
var message;//這個變量聲明之後默認取得了undefined值
//下面這個變量並沒有聲明
//var age

alert(typeof message);  //"undefined"
alert(typeof age);      //"undefined"
  • undefined值是派生自null值的,因此ECMA-規定它們的相等性測試返回true:alert(null==undefined); //true
  • 相等操作符(==)會出於比較的目的轉換其操作數。
  • 對任何數據類型的值的調用Boolean()函數,總會返回一個Boolean值,返回值取決於其實際類型:
數據類型 轉換爲true的值 轉換爲false的值
Boolean true false
String 任何非空字符串 “”(空字符串)
Number 任何非零數字值(包括無窮大) 0和NaN
Object 任何對象 null
Undefined n/a(not applicable縮寫,意思是不適用) undefined
  • Number轉換:
var num1=Number("Hello world!");   //NaN
var num2=Number("");               //0
var num3=Number("000011");         //11
var num4=Number(true);             //1
  • parseInt轉換:
var num1=parseInt("1234blue");  //1234
var num2=parseInt("");          //NaN
var num3=parseInt("0xA");       //10
var num4=parseInt(22.5);        //22
var num5=parseInt("070");       //56
var num6=parseInt("70");        //70
var num7=parseInt("0xf");       //15

var num8=parseInt("0xAF",16);   //175
var num9=parseInt("AF",16);     //175
var num10=parseInt("AF");       //NaN

var num11=parseInt("10",2);     //2(按二進制解析)
var num12=parseInt("10",8);     //8(按八進制解析)
var num13=parseInt("10",10);    //10(按十進制解析)
var num14=parseInt("10",16);    //16(按十六進制解析)
  • parseFloat轉換:
var num1=parseFloat("1234blue"); //1234
var num2=parseFloat("0xA");      //0
var num3=parseFloat("22.5");     //22.5
var num4=parseFloat("22.34.5");  //22.34
var num5=parseFloat("0908.5");   //908.5
var num6=parseFloat("3.125e7");  //31250000
  • ECMAScript中沒有函數簽名的概念,因爲其函數參數是以一個包含零或多個值的數組的形式傳遞的。
  • 可以向ECMAScript函數傳遞任意數量的參數,並且可以通過arguments對象來訪問這些參數。
  • 由於不存在函數簽名的特性,ECMAScript函數不能重載。通過檢查傳入函數中的類型和數量並作出不同的反應,可以模仿方法的重載。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章