JavaScript的數據類型
JavaScript的數據類型可以分為原始類型和對象類型
原始類型包括string,number和Boolean三種,其中字符串是使用一對單引號或者一堆雙引號括起來的任意文本;而數值類型都采用64位浮點格式存儲,不區分整數和小數;布爾(邏輯)只能有兩個值:true和false.
復雜類型指其他對象,如array,date,object等
除此之外,JavaScript中海油兩個特殊的原始值:null(空)和undefined(未定義),它們代表了各自特殊類型的唯一成員。
var a=[];
var b=a;
b[0]=1;
console.log(b[0]);
console.log(a[0]);
console.log(a===b);
答案:1 1 true
將對象賦值給變量,僅僅是賦值的引用,對象本身並沒有賦值。因此變量a和b指向同一個數組
var a=2;
var obj={x:1,y:{z:2}};
var n=[obj,3[4,5]];
console.log(a<<2);
console.log(obj["y"].z);
答案:8 2
<<是將a二進制轉換,一個公式n*2的m次方
n=a,m=<<后面的數
簡述arguments對象的作用
答:在函數代碼中,使用特殊對象arguments可以訪問函數的參數,即開發者在定義函數時,無需明確的為方法聲明參數,也可以子方法體中使用arguments來訪問參數
這是因為arguments 是一種特殊對象,在函數代碼中,表示函數的參數數組
正因為arguments表示參數組成的數組,因此,首先可以使用arguments。length檢測函數的參數個數,其次可以通過下標arguments【index】來訪問某個參數這樣
可以用arguments對象判斷傳遞給函數的參數個數並獲取參數,適用於函數參數無法確定個數的情況下
function f(){
console.log("function");
}
function test(){
console.log(f);
f();
f="hello";
console.log(f);
f();
}
test();
上述代碼運行后,輸出結果為?
答案:
function
hello
string is not a function這是因為,定義函數時,函數名稱作為一個全局變量,該變量指向函數對象,因此執行函數test中的第一行代碼時,將輸出變量f所對應的函數對象,即輸出函數體重代碼的字符串形式;然后執行f()表示調用方法f,則輸出字符串function ;執行代碼非“f=hello,意味着將變量f的值改為字符串因此在輸出變量f時,將輸出字符串hello;而如果試圖在執行f()會引發錯誤,這是因為,此時變量f不再是一個函數對象,而是一個普通字符串