function Fn(){
getFn = function(){
console.log('1');
}
return this;
}
Fn.getFn = function(){
console.log('2');
}
Fn.prototype.getFn = function(){
console.log('3');
}
var getFn = function(){
console.log('4');
}
function getFn(){
console.log('5');
}
// 調用函數的方法
Fn.getFn(); //b 2
// 函數預解析, var getFn 和 function getFn(){} 整個被提升了 隻留下 getFn=function(){}
getFn(); //d 4
// 首先調用了Fn()被執行,執行之後建立了getFn = funciton(){}重新整理了55和58行的getFn函數執行内容
Fn().getFn(); //a 1
//因為之前Fn()已經被執行了 getFn已經發生變化了
getFn(); //a 1
// Fn.getFn()是一個整體, new 開頭執行整個函數
new Fn.getFn(); //b 2
//同一個()運算符 優先級相同, 從左往右執行
// 首先執行Fn(),得到Foo構造函數的執行個體對象getFn,由52的prototype.getFn得到結果
new Fn().getFn(); //c 3
// 首先執行new Fn() 得到了 new xxx.getFn() ,接着同上
new new Fn().getFn(); //c 3
//數組去重
var arr = [,,,,,,,,,,,,,,];
function deleteRepetition (arr) {
var tmp = {};
var newArr = [];
for(var i =; i < arr.length; i++){
if (!tmp[arr[i]]) {
tmp[arr[i]] = true;
newArr.push(arr[i]);
}
}
sortArr(newArr);
console.log(newArr);
}
//冒泡排序
function sortArr(arr){
for (var i =; i < arr.length-; i++){
for(var j = ; j < arr.length--i; j++){
if (arr[j]>arr[j+]) {
var count = arr[j];
arr[j] = arr[j+];
arr[j+] = count;
}
}
}
}
deleteRepetition(arr);
var cache = new Object();
var mult = function () {
// 調用Array内置方法,把傳入的參數轉化為類數組
var args = Array.prototype.join.call(arguments,',');
// console.log(typeof args); //string
// 判斷cache對象是否有該屬性
if (cache[args]) {
return cache[args];
}
var a = ;
for(var i = , l = arguments.length; i < l; i++) {
a = a * arguments[i];
}
// console.log(typeof cache);
return cache[args] = a;
}
// console.log(mult(1,2,3)); //6
// console.log(mult(4,5,6)); //120
console.log(cache);
var url = 'http://www.baidu.com?a=b&c=d&e=123456';
var resulet = new Object();
function toObj() {
// var tmp = [];
for(let i = ; i<url.length; i++) {
if (url[i] === '?') {
// console.log(i);
var tmp = url.slice(i+);
// console.log(tmp);
}
}
var newTmp = tmp.split('&');
// var newArr = newTmp.split('=');
for(let n in newTmp) {
let arr = newTmp[n].split("=");
resulet[arr[]] = arr[];
}
console.log(resulet);
}
toObj();
//兩個數組一一配對成為對象的屬性和值
var arr1 = ['wang', 'zhang', 'li'];
var arr2 = ['11', '12', '13'];
//第一種複雜解法
var result = {};
var arr = [];
function toObject() {
//第一步 先根據數組的索引值,配對成對象的類型
for(var i = ; i < arr1.length; i++) {
let tmp = arr1[i] + ':' + arr2[i];
arr.push(tmp)
}
console.log(arr);
//第二步 通過split分割字元串組成新的數組
for(let i in arr) {
let tmp = arr[i].split(':');
//object["key"] = value 文法
result[tmp[]] = tmp[];
}
}
toObject();
console.log(result);
//第二種 簡單版
var o = {};
for(let i = ; i< arr1.length; i++) {
o[arr1[i]] = arr2[i];
}
console.log(o);
// 找出數組的中重複最多的值, 重複了多少次
var arr = [, , , , , , , , , , , null, 'a', 'a', 'b','a'];
function moreRepetition(arr) {
var newArr = [];
for(var i=;i<arr.length;i++){
var temp=arr[i];
var count=;
for(var j=;j<arr.length;j++){
if(arr[j]==temp){
count++;
arr[j]=-;
}
}
if(temp != -){
newArr.push(temp+":"+count)
}
}
console.log(newArr);
return newArr;
}
moreRepetition(arr);
//擷取url中 request中的params
function GetRequest(url) {
var url = url;
var theRequest = {};
//擷取url中"?"符後的字串
var arr = url.split('?')[];
// console.log(arr);
//通過"&",組成新的數組
var newArr = arr.split('&');
for(var i = ; i < newArr.length; i++) {
var tmp = newArr[i].split('=');
theRequest[tmp[]] = tmp[];
}
console.log(theRequest);
return theRequest;
}
var url = 'https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=1&rsv_idx=1&tn=93380420_hao_pg&wd=js%E4%BB%8Eurl%E4%B8%AD%E8%8E%B7%E5%8F%96%E5%8F%82%E6%95%B0&oq=amd%2520cmd%2520%25E5%258C%25BA%25E5%2588%25AB&rsv_pq=eb0fff93000563c9&rsv_t=f6444Mx%2FIx%2BNj1MwceBPJuBtcEd1%2FTPHXwOTKu7WjphBcY1PKBNCmAqzRmCl53Ko369jfgak&rq;
GetRequest(url);