2016.1.28數組
3.1.3JavaScript中的算術運算函數
NaN(Not a Number)沒法經過x==NaN來判斷變量x是不是NaN,相反,應當使用x!=x來判斷,當且僅當x爲NaN的時候,表達式的結果纔是true。this
isFinite(),在參數不是NaN、Infinity或-Infinity的時候返回true。spa
負零值與正零值相等,除了做爲除數外。code
3.3布爾值對象
下面這些值會被轉換成false:underfined、null、0、-0、NaN、""//空字符串索引
3.6包裝對象ip
var s ="test"; x.len=4; var t= x.len; console.log(t);//返回undefined
第二行代碼建立一個臨時字符串對象,並給其len屬性賦值爲4,隨即銷燬這個對象。最後嘗試讀取len值,這個屬性值天然不存在。存取字符串、數字或布爾值的屬性時建立的臨時對象稱作包裝對象。作用域
var s ="test";
var x =new String(s);
x.len=4;
var t= x.len;
console.log(t);//返回undefined 字符串
console.log(x==s);//返回true,若是===則返回false
3.7不可變得原始值和可變的對象引用
對象的比較與值的比較是不相同的:即便兩個對象包含一樣的屬性及相同的值,它們也是不相等的。各個索引元素完成相等的兩個數組也不相等。
3.8對象轉換爲原始值
對象到布爾值:全部的對象(包括數值和函數)都轉換爲true。
3.10.1函數做用域和聲明提早
JavaScript中使用函數做用域,變量在聲明它們的函數體以及這個函數體嵌套的任意函數體內都是有定義的。
JavaScript函數裏聲明的全部變量都被"提早"至函數體的頂部。
var scope ="global"; function f(){ console.log(scope);//輸出"undefined" var scope="local";//變量在這個賦初始值,但變量自己在函數體內任何地方均是有定義的 console.log(scope);//輸出"local" }
全局變量和局部變量
var i =0;//全局變量
n=0;//全局變量
function demo(){
var a =0;//局部變量
b=0;//全局變量
}
2016/2/4
8.7函數屬性、方法和構造函數
8.7.1length屬性
在函數的體內,能夠用arguments.length來表示傳入函數的實參的個數,即實參的真實個數
而使用arguments.callee.lengh則表示指望的實參個數。
function ra(a,b){ this.a=a; this.b=b; var h=arguments.callee.length; var i=arguments.length; console.log(h);//h的值爲2 console.log(i);//i的值爲1 } ra(1);