標籤:bool 進階程式設計 變數 object arguments tor cto 導致 全域
第三章 基本概念
1、strict 模式:對ES3中不確定的行為作出處理,對某些不安全的操作拋出錯誤。要在整個指令碼中啟用strict 模式,可以在頂部加上"use strict";要在函數中啟用strict 模式,可以在函數頂部加上"use strict"。
2、定義變數:有var=>局部變數;省略var=>全域變數。在strict 模式下不能定義名為eval或arguments的變數,否則會導致語法錯誤。
3、typeof操作符的傳回值有6個:undefined、boolean、string、number、object、function。
4、檢測數組不能用typeof(返回object),三種方式:
- ary instance of Array
- 原型鏈
- Object.prototype.toString.call(ary)
5、undefined(值:undefined),未初始化的變數值為undefined; null(值:null)。
6、對於未聲明的變數只能執行唯一操作 typeof,且傳回值為 undefined;對未初始化的變數執行 typeof 操作傳回值同樣為 undefined。
7、Number類型:用IEEE754格式表示。
- Infinity: 無窮,超出JS數值範圍。
- NaN (Not a Number):(1) 任何數值除以非數值返回NaN; (2) NaN==NaN => false; (3)isNaN(a) => true: a 不是數值(會先嘗試將a轉換成數值)。
8、Number()
- Boolean => 0(false) 或 1(true)
- 數值=>數值
- null=>null
- undefined=>NaN
- string: (1)只包含數字(包含+ -號),轉為十進位(忽略前置字元為零);(2)有效浮點格式(只有一個小數點),轉為浮點值(忽略前置字元為零);(3)有效十六進位格式,轉為十進位;(4)空串,轉為0;(5)除此以外,轉為NaN
- object: 先調用valueOf()方法,然後依照上式規則轉換,若結果為NaN,則調用對象的toString()方法,再按照上述規則進行轉換。
9、parseInt():string=>整數
- 找到第一個非空白字元串
- 如果第一字元不是數字或者‘-‘=>NaN
- 如果第一個字元是數字字元或者‘-‘, 繼續解析,知道遇到第一個非數字字元。
- parseInt("")=>NaN
- 第二個參數表示轉換的基數
10、parseFloat()與parseInt()類似,第一個小數點有效,其他均無效。
11、 String類型
- 字串一旦被建立,他們的值就不能改變(先銷毀再填充)
- 轉換字串的三種方式:(1) a.toString(); (2) String(a); (3) a+""
- toString(): (1) 參數:傳遞基數;(2)undefined和null沒有toString()方法
- String(): (1) 如果參數有toString()方法,則調用該方法(無參數)並返回相應的結果;(2)如果參數是null=>null; (3) 如果參數是undefined=>undefined
12、Object的每個執行個體都具有下列屬性和方法
- constructor:儲存著用於建立當前對象的函數。
- hasOwnProperty(propertyName): 用於檢測給定的屬性在當前對象執行個體中(不是執行個體的原型中)是否存在,其中propertyName必須是字串。
- isPrototypeOf(object): 用於檢查傳入的對象是否是當前對象的原型。
- properIsEnumerable(propertyName): 用於檢查給定的屬性是否能夠使用for-in語句來枚舉,其中propertyName必須是字串。
- toLocalString(): 返回對象與執行環境有關的字串表示。
- toString(): 返回對象的字串表示。
- valueOf(): 返回對象的字串、數值或布爾值表示(通常與toString()方法的傳回值相同)。
JavaScript進階程式設計(第三版)學習筆記(2)