如果這本書吃透再去看其他書就沒有畏懼心理了章鲤,說實(shí)話,這本書傳授的是內(nèi)功怕轿,很多內(nèi)容都知道偷崩,但是書中講的是為什么是這樣,因此也能加深理解撞羽,增強(qiáng)信心了
1. 使用toString()判斷是否為數(shù)組
toString方法給出了對(duì)象的字符串表示
字符串 "[object Object]"對(duì)于任何對(duì)象都是一樣的
console.log(Object.prototype.toString({}) === Object.prototype.toString({dev:"c++"})); //true
function is_Array(sth){
return Object.prototype.toString.call(sth) == "[object Array]";
}
var arr = [];
console.log(is_Array(arr));
也可以使用instanceof
someArr instanceof Array //true
結(jié)合call判斷類型
function which_size(){
return Object.prototype.toString.call(this);
}
console.log(which_size.call(8)); //[object Number]
無法判斷undefined,null
數(shù)組中的toString()
var arr1 = [1,2,3,4]
undefined
Array.prototype.toString.call(arr1)
"1,2,3,4"
> 表示注釋(markdown)
2.默認(rèn)參數(shù)
function add(one,two){
two = typeof two === "undefined" ? 2: two;
return one + two;
}
//typeof 總是返回字符串阐斜,排除默認(rèn)參數(shù)為0
console.log(add(4,0));
3.任意多個(gè)參數(shù)
函數(shù)參數(shù)轉(zhuǎn)換為數(shù)組
function toArray(){
var args = Array.prototype.slice.call(arguments);
return args;
}
console.log(toArray(1,2,6,8,0,5));
4.函數(shù)表達(dá)式
注意:在函數(shù)表達(dá)式中,function關(guān)鍵字是一個(gè)操作符诀紊,在函數(shù)聲明中谒出,它是一條語句,函數(shù)表達(dá)式必須有一個(gè)分號(hào)
5.函數(shù)中使用自由變量到定義函數(shù)的作用域去找邻奠,而不是調(diào)用函數(shù)的環(huán)境
function weiwei(){
var eat = "dumpling";
eatFood(); //因?yàn)閠his指向window
}
var eat = "bread";
function eatFood(){
console.log(eat);
//如果沒傳參笤喳,不管在哪里定,
//都要先到定義函數(shù)的作用域去尋找使用的變量
}
weiwei(); //bread
(6)使用new Function()的方式定義函數(shù)
函數(shù)末尾加分號(hào)
不可以在函數(shù)聲明前面調(diào)用碌宴,也就是沒有函數(shù)提升