javascript高級程序設計第三版 第三章 基本概念

3基本概念

3.3變量

var message; //未經初始化,默認爲一個特殊值undefined
var message = "hi";  //初始化
var a=1,b="2",c=true;//定義多個變量,逗號分隔

var定義的變量是該變量的作用域中的局部變量

function test(){
    var message="hi";//局部變量
}
test();
alert(message);//錯誤!

省略var,message爲全局變量,調用test()後就有定義,不推薦

function test(){
    message="hi";//全部變量
}
test();
alert(message);//錯誤!

3.4數據類型

5種簡單數據類型:Undefined,Null,Boolean,Number,String
1種複雜數據類型:Object

3.4.1 typeof

typeof檢測數據類型,對一個值使用typeof有可能返回的字符串:

  • “undefined” 未定義
  • “boolean” 布爾值
  • “string” 字符串
  • “number” 數值
  • “object” 對象或null
  • “function” 函數

3.4.2 Undefined類型

只有一個值,undefined。聲明變量但未初始化時,就是此值。

3.4.3 Null類型

只有一個值,null。表示空對象指針,因此typeof返回”object”。

3.4.4 Boolean類型

兩個值,true和false。

其他數據類型可轉換爲Boolean類型值,規則如下

數據類型 轉爲true 轉爲false
Boolean true false
String 非空字符串 “”(空字符串)
Number 非零數值 0和NaN
Object 任何對象 null
Undefined 不適用 undefined

例子,根據轉換規則

var message="hello";
if(message){
    alert(message);
}

3.4.5 Number類型

浮點數值計算會有誤差

if(a+b==0.3){ //不要做這樣的測試
    alert("you got 0.3");
}

數值範圍:Number.MIN_VALUE 至 Number.MAX_VALUE
超過返回:正或負Infinity Number.NEGATIVE_INFINITY Number.POSITIVE_INFINITY
isFinite()函數可檢測是否在數值範圍中

NaN 是特殊數值 任何數除以0返回NaN isNaN()函數檢測 與任何值不相等,包括自身

數值轉換:Number() parseInte() parseFloat()

3.4.5 String類型

3.4.5 Object類型

3.6.8 with語句

大量使用會導致性能下降,不建議使用

3.6.9 switch語句

switch語句可以使用任何類型
case不一定是常量,可以是變量,甚至是表達式
比較值時,使用全等操作符

3.7 函數

3.7.1 理解參數

命名的參數只是提供便利,但不是必需的。在函數中,arguments.length可知道參數長度,arguments[i]可訪問參數,從0開始。

3.7.2 沒有重載

通過檢查傳入函數中參數的類型和數量並作出不同的反應,可以模仿方法的重載。

發佈了33 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章