學習筆記2

一、編寫一個函數,以一個數字做爲參數,把這個數字是不是質數(布爾值)做爲函數的返回值。

`function isPrime(number){
  if(number === 1){
return false;
  }
  var result = true;
  for(var i = 2;i < number - 1;i++){
if(number % i === 0){
  result = false;
  break;
}
  }
  return true;
}
console.log(isPrime(3));`

二、編寫一個函數,把年月日分別做爲這個函數的3個參數,返回這一天是這一年的第幾天

`function getDay(year,month,date){
  var rules = [
31,
isPrime(year) ? 29 : 28,
31,
30,
31,
30,
31,
31,
30,
31,
30,
31
  ];
  var result = 0;
  for(var i = 0;i <month -1;i++){
result = result + rules[i];
  }
  result +=date;
  return result;
}

function isPrime(year){
  if((year % 4===0 && year % 100 !==0) || year % 400 ===0){
return true;
  }
  return false;
}

console.log(getDay(2016,3,10))`

三、編寫一個函數,以一個數字n做爲參數,返回1! + 2! + 3! + ... + n!的結果

`function sumOfjiecheng(n){
  var result = 0;
  for(var i =1;i<=n;i++){
var number = 1;
for(var j =1;j<=i;j++){
  number = number * j;
}
result = result + number;
  }
  return result;
}`

1、做用域

若是函數中沒有return語句,系統會自動補上return undefinedweb

在函數內部定義的變量,只能在函數內部使用數組

`functiong fn(){
console.log('hello');
//return undefined;
}`

這裏的return undefined即是系統自動補上的。函數

在js中,只有函數纔會產生做用域,而if,while,for都不會產生做用域spa

2、做用域鏈

提高函數:對於使用函數申明方式定義的函數,它的定義時機會被提到當前做用域的開頭。code

做用域鏈:當在同級中沒有找所定義的變量,便會一級一級地向上找定義的變量。對象

`var a =10;
function fn(b){
  a=30;
  function fn1(){
var a = 40;
console.log(a);
  }
  function fn2(){
a = 50;
console.log(a);
  }
  fn1();
  fn2();
  console.log(a);
}

fn(a);
console.log(a);`

所得的結果即是:40,50,50,50排序

3、變量提高

在申明變量的時候,會把當前變量的時機放到做用域的開頭,只有變量的申明纔有提高,變量的賦值沒有提高。繼承

`console.log(a);
var a = 10;`

所得的結果即是undifined;其實它的順序即是:ip

`var a;
console.log(a);`
a = 10;

4、對象

用花括號括起來,是無序集合作用域

`var obj={
name:'Bob',
gender:'male'
};

console.log(obj.name);
或者用:
console.log(obj['name']);`

取對象屬性的兩種方式:點和方括號(推薦優先使用點這種方式)

一、點會把點後面的名稱直接做爲屬性名,而方括號會把方括號裏面的返回值做爲屬性名。

二、對於一些特殊的屬性名,好比使用數字開頭,或者屬性名中間出現了一些符號(+等,就是在命名規範中不合法的一些),這些屬性名只能經過方括號來取。

`var arr=[1,2,3]`

這種方式稱爲自變量數組。

對象和數組的區別例:

`var obj = {
    0 : 1,
    1 : 2,
    2 : 3,
}
console.log(obj) 
console.log(obj['length'])`

這個是對象,不會打印出數組的項數,屬性的變化須要定義了纔會有

array對象方法 構建數組如下三種方式: var arr = [1,2,3]這個是數組字面量,若是沒有特殊狀況,就是用這個方式,比如下三種方法更簡便

一:condytuvyot是處理繼承的

`var arr = new Array()       賦值的時候不夠直觀
arr[0] =1;
arr[1] =2;
arr[2] =3;`

二: var arr = new Array(5)
不存儲數據的話,length爲5,若是arr[5]的話,打印出來的長度爲6

三:var arr = new Array(1,2,3)

5、Array 對象方法

一、concat() 鏈接兩個或更多的數組,並返回結果。

二、join() 把數組的全部元素放入一個字符串。元素經過指定的分隔符進行分隔。

數組join的使用方法

`var arr = [1,2,3,'hello'];
var result = arr.join ();數組每一項都拼接在一塊兒
console.log(arr);
console.log(result);`

三、pop() 刪除並返回數組的最後一個元素

數組pop使用方法:把數組的最後一項刪掉,會修改數組自己,將刪除的一項做爲返回值的方法 要是取最後一項的話,用[]取值就能夠

`var arr = [1,2,3,'hello'];
var result = arr.pop ();
console.log(arr);
console.log(result);`

四、push() 向數組的末尾添加一個或更多元素,並返回新的長度。

數組pus使用方法:給數組添加一個或多項新項,第一項後的項數能夠寫也能夠不寫,會修改數組自己 而且返回新長度,添加新項是添加到末尾的;若是是添加數組的話,把數組做爲一項(保留數組),添加到末尾中去,例2

`var arr = [1,2,3,'hello'];
var result = arr.pus ('world');
console.log(arr);
console.log(result);`

例2

var arr = [1,2,3,'hello'];
var arr2 = [nh,nk]
var result = arr.pus ('arr2');
console.log(arr);
console.log(result);

五、reverse() 顛倒數組中元素的順序。

reverse方法:修改元素組,把數組的從左到右的排序,改爲從右到左

六、shift() 刪除並返回數組的第一個元素

shift方法:刪除數組第一項並將刪除的一項做爲返回值的方法

七、slice() 從某個已有的數組返回選定的元素(負數的寫法只能在slice中使用。)

slice方法,須要填寫開始的角標,和結束的角標(結束的角標5不包括在內,不會被選取到)角標能夠爲負數,只有slice這裏可使用負數,表明從右往左數的對象 截取數組的片斷 不會修改數組自己,截取出來的長度比實際的少1 var arr = [1,2,3,'hello',4,5,'js'];

var result = arr.slice ('3,5');    var result = arr.slice ('3,-2');
console.log(arr);
console.log(result);

八、sort() 對數組的元素進行排序(能夠傳入一個參數,規定它的一個排序規則,可這個參數必定是一個函數),若是不定義比較規則,它是按照首字符的大小進行排序的。

`var arr=[23,1,300,7,4]
//定義排序規則的函數
function rules(a,b){
    if(a<b){
//若是要讓a出如今b的前面,返回小於0的數
        return -1;
    }else{
//若是讓b出如今a的前面,返回大於0的數
        return 1;
    }
}


arr.sort(rule);
console.log(arr);`

也能夠將代碼簡化爲:

`function rules(a,b){
return a-b;(從小到大排列)
//return b-a;(從大到小排列)
}

arr.sort(rule);
console.log(arr);`

若是讓它設爲匿名函數的方法:讓它從小到大排序:

`arr.sort(function(a,b){return a-b})`

九、splice() 刪除元素,並向數組添加新元素。

splice方法:做用一。刪除數組中間的某一部分 須要填寫兩個參數,一個數刪除的角標,第二個參數寫須要刪除幾項 var arr = [23,1,300,7,4] var result = arr.splice(2,1) console.log(arr); console.log(result); 這個是刪除的項的返回值 做用二。替換的特性,替換數組中的某一部分 var arr = [23,1,300,7,4] var result = arr.splice(2,1,400,500) console.log(arr); console.log(result) 做用三。在數組中某個位置插入新項 var arr = [23,1,300,7,4] var result = arr.splice(3,0,100,200) 3表示在角標爲3的位置插入,0表示不刪除數組中的項 console.log(arr); console.log(result)

十、toSource() 返回該對象的源代碼。

十一、toString() 把數組轉換爲字符串,並返回結果。

十二、toLocaleString() 把數組轉換爲本地數組,並返回結果。

1三、unshift() 向數組的開頭添加一個或更多元素,並返回新的長度。

1四、valueOf() 返回數組對象的原始值

相關文章
相關標籤/搜索