1.下列**輸出的值
console.log(100['tostring']['length']); // 1
console.log(100['tostring']) // 輸出為函式,因為tostring是方法,沒有小括號就是沒有呼叫,所以返回的是函式本身
解釋:函式本身上的length屬性是函式的形參個數,tostring方法有預設引數,表示的進製,所以length為1,所以結果是1
2.**輸出為
var x=1;
function fn(n)
y=fn(x);
console.log(y); // 輸出為undefined
解釋:函式沒有返回值所以輸出為undefined
3.**輸出為
function fn1()
return fn2;
}fn1()(); // 彈出1
var newfn=new fn1();
newfn(); // 彈出1
newfn(); // 彈出2
解釋:第一次屬於呼叫函式,++a先執行++操作在賦值給a,所以彈出1,而後新創造了乙個函式newfn第一次彈出和正常引用一樣,所以彈出1,2而第二次呼叫的時候,由於閉包的作用,裡面a沒被釋放,在1的基礎上又加上了1,所以彈出2
參考++a和++a的區別
4.**輸出為
var arr=[1,2];
var arr2=arr.concat();
arr2.push(arr.splice(1,0));
console.log(arr); // [1,2]
console.log(arr2); // [1,2,]
知識點1:contact方法不傳引數var arr = [1, 2];
var arr2 = arr.concat();
console.log(arr); // 輸出為[1,2]
console.log(arr2); // 輸出為[1,2]
小結:不傳引數,會重新建立乙個一樣的陣列,不改變原陣列
知識點2:contact方法,傳乙個一緯陣列
var arr = [1, 2];
var arr2 = arr.concat([3,4]);
console.log(arr); // 輸出為[1,2]
console.log(arr2); // 輸出為[1,2,3,4]
小結:傳乙個一緯陣列,會重新建立新陣列,傳入陣列會被拉平,不改變原陣列
知識點2:contact方法,傳乙個二緯陣列
var arr = [1, 2];
var arr2 = arr.concat([3,4,[5,6]]);
console.log(arr); // 輸出為[1,2]
console.log(arr2); // 輸出為[1,2,3,4,[5,6]]
小結:傳二緯陣列,會重新建立新陣列,傳入陣列的最外層元素會被拉平,裡面的不變,不改變原陣列
知識點3:contact方法,傳乙個物件
var arr = [1, 2];
var arr2 = arr.concat();
console.log(arr); // 輸出為[1,2]
console.log(arr2); // 輸出為[1,2,]
小結:傳物件,會重新建立新陣列,傳入物件直接和陣列拼接成新陣列,不改變原陣列
知識點4:splice方法
var arr = [1, 2];
console.log(arr); // 輸出[1,2]
console.log(arr.splice()); // 輸出為
arr.splice();
console.log(arr); // 輸出[1,2]
小結:不傳引數表示不對陣列做任何操作,但是又返回值,返回被切割的空陣列
知識點5:splice方法,用於刪除陣列的元素
var arr = [1, 2];
console.log(arr); // 輸出[1,2]
console.log(arr.splice(1)); // 輸出為[2]
arr.splice(1);
console.log(arr); // 輸出[1]
小結:傳乙個引數表示從這個位置開始切割(包括這個 位置),返回被切割的陣列,原陣列改變
知識點5:splice方法,用於刪除陣列的元素
var arr = [1, 2];
console.log(arr); // 輸出[1,2]
console.log(arr.splice(1)); // 輸出為[2]
arr.splice(1);
console.log(arr); // 輸出[1]
小結:傳乙個引數表示從這個位置開始切割(包括這個 位置),返回被切割的陣列,原陣列改變
知識點6:splice方法,用於刪除陣列的元素
var arr = [1, 2,3];
console.log(arr.splice(1,1)); // 輸出[2]
console.log(arr); // 輸出[1,3]
小結:傳兩個引數表示從第乙個位置開始切割(包括這個 位置),第二個引數表示切割的個數,返回被切割的陣列,原陣列改變
知識點7:splice方法,用於替換陣列的元素
var arr = [1, 2,3];
console.log(arr.splice(1,1,4,5)); // 輸出[2]
console.log(arr); // 輸出[1,4,5,3]
小結:傳兩個引數表示從第乙個位置開始切割(包括這個 位置),第二個引數表示切割的個數,之後的引數表示在切割位置上放上開始新的元素,返回被切割的陣列,原陣列改變
知識點8:splice方法,用於增加陣列的元素
var arr = [1, 2,3];
console.log(arr.splice(1,0,4,5)); // 輸出
console.log(arr); // 輸出[1,4,5,2,3]
小結:傳兩個引數表示從第乙個位置開始切割(包括這個 位置),第二個引數表示切割的個數,之後引數表示在切割位置之後新增的元素,返回被切割的陣列,原陣列改變
參考菜鳥:
5.**輸出為
console.log((!+++!+).length); // 輸出8
console.log((!+++!+)); // 輸出為truetrue
console.log((!++)); // 輸出為true
console.log((!+)); // true
console.log((+)); // 0
解釋:+號除了加法運算,字串連線功能,還有正號的功能,會有兩步操作,第一步先嘗試轉string,第二步嘗試轉number,所以+會先轉成''=>0,然後再去反為真即true
6.下列**輸出
console.log((3<5,4>6)); // false
console.log((4>6,3<5)); // true
解釋:,號表示式,返回的是最後乙個表示式的值,第乙個最後的表示式是4>6,所以fasle,第二個逗號運算子最後乙個表示式是3<5,所以為true 公開課 redis秒殺和公開鎖 1
本節課我看了2遍,為什麼看兩遍呢?將思想層面的比較多.而不僅僅是技術.其實,技術是死的.技術點就那麼多.思想是活的,怎麼想問題,才是關鍵.現在不缺少會寫 的人,也就是執行層面的人.缺少的是回想的人,能解決辦法的人.只有突破了思想層面,才有可能上公升.以前,一門技術,拿來就學,學完就用,可是,很少思考...
谷歌深度學習公開課學習筆記 1
模型改進後,在你的驗證集上影響了30個例項的改變,通常是有統計學意義的,通常是可以信任的。想象你的驗證集裡有3000個例項,假定你信任30的規則,你可以相信哪個水平的準確性的提公升?當你得到從80 到81 這1 的提公升更有說服力,因為有30個例項從不正確到正確。這就是為什麼對大多數分類器任務,人們...
程式設計正規化 斯坦福公開課 學習筆記1
簡單的正數二進位制加法1 5 6 如果表示負數時,只是單獨的拿最高位做符號位 則short型的 7 7表示為 看上式,7 7結果卻得到了 14,而不是0 但是如果 7用反碼來表示,就不會有問題 最高位的1出界了,所以得到的就是0了。用補碼表示時,正數的補碼是自己,負數的補碼是絕對值取反加一。如果只用...