js基礎複習點

1.變量
  var num=10;
   
  var num1,num2,num3;
  num1=10;
  num2=20;
  num3=30;
   
  var num1=10,num2=20,num3=30;
   
  注意點:
  console.log(a); //報錯
  var b;
  console.log(b); //undefined
  c=10;
  console.log(c); //10 會默認爲全局變量,正常輸出,不推薦這種寫法
   
   
  2.數據類型
  var num=10; //數值類型
  var str='123'; //字符串類型
  var flag=true; //布爾類型
  var obj = {} //對象類型,默認值null
  var undefined = undefined; //未定義類型
   
  數據類型的轉換:
  轉換成字符串類型:
  str.toString() //大部分類型都有toString()方法
  String(str) //undefined,null等特殊值,須要用到String()
  轉換成數值類型:
  parseInt() 123.123abc // 123
  parseFloat() 123.123abc //123.123
  Number() 123.123abc //報錯
  轉換成布爾類型:
  Boolean()
  轉換爲false的五種狀況: 0 '' null undefined NaN
  其餘的值都轉換爲true: 非0和非空都爲true
   
  隱式轉換:
  任意類型+ 字符串 會轉換爲字符串
  任意的類型 - * / 會轉換爲數值
   
  特殊狀況:
  NaN : 不是一個數字
  isNaN(); 不是人
   
  數據類型檢測:
  typeof str
   
  3.條件判斷
  單向判斷
  if(條件知足){
  //執行語句
  }
   
   
  雙向判斷
  if(條件知足){
  //執行語句
  }else{
  //條件不知足執行
  }
   
  多向判斷
  if(條件1知足){
  //執行語句1
  }else if(條件2知足){
  //執行語句2
  }else if(條件3知足){
  //執行語句3
  }else{
  //以上都不知足,執行這裏
  }
   
   
  精準判斷
  switch(條件){
  case 條件1:
  語句1;
  break;
  case 條件2:
  語句2;
  break;
  default:
  最後的語句;
  break;
  }
   
  三元運算符
  條件 ? 條件知足返回 : 條件不知足返回
   
  總結:
  if和switch的區別?
  if適合用於肯定範圍的判斷
  switch適合用於肯定的具體值判斷
  2.switch的注意點
  switch的條件比較是全等(===)
  break能夠省略,可是會穿透執行.
   
  4.循環
  循環都必須有三個條件: 開始條件,條件範圍,條件增量
  for循環
  var sum=0;
  for(var i=1; i<=100; i++){
  sum+=i;
  }
   
  while循環
  var sum = 0;
  var i=1;
  while(i<=100){
  sum+=i;
  i++;
  }
   
   
  do-while循環
  var sum =0;
  var i=1;
  do{
  sum+=i;
  i++;
  }while(i<=100)
   
   
  總結:
  1.三種循環之間的區別?
  for適用於循環次數肯定的狀況,while和do-while適用於循環次數未知的狀況
  while是先判斷,再執行, do-while是先執行一次,再判斷
   
  2.continue 和 break
  continue 跳過當前循環
  break 跳出整個循環
   
  5.數組
  var arr=[]; 數組的基本語法
  var arr[1,2,3,4,5]; 數組能夠存多個值,建議存同類型的值,可是能夠存任意類型的值.
  arr.length 數組的長度
   
  arr[0] 表示數組中的第一個元素
  arr[1] 表示數組中的第二個元素
   
  arr[0]=10; 表示將數組中的第一個元素修改或者賦值爲0
   
  動態增長數組 arr[arr.length]
   
   
  6.函數
  函數的做用: 封裝功能,能夠複用.
  函數的語法: 定義 + 調用
  函數的定義:
  function 函數名(參數){
  //執行語句
   
  return 結果;
  }
  函數的調用:
  函數名(值); //能夠將函數的返回值存到變量中使用
   
  形參: 函數定義的時候的參數,本質上是一個局部變量
  實參: 函數調用的時候的參數,須要傳入一個具體的值.
  注意; 形參和實參建議一一對應
   
  內置實參對象: arguments 使用中括號數組的方式獲取實參
   
  函數的其餘寫法:
  匿名函數: function(){}
  函數表達式: var fn=function(){} fn();
  自調用函數: (function(){})()
   
   
  7.對象
  對象: 就是將現實事物抽象爲功能代碼. 將現實世界的東西,用對象的語法格式來表示.
  對象的語法: 對象中有屬性和方法
  對象的三種寫法:
  1.字面量寫法
  var zs={
  name:'張三',
  age:18,
  sayHi:function(){
  console.log("你好");
  }
   
  }
  zs.name
  zs.age
  zs.sayHi()
   
  2.new Object()寫法
  var zs = new Object();
  zs.name='張三';
  zs.age=18;
  zs.sayHi=function(){}
   
  3.構造函數寫法
  function Person(name,age){
  this.name= name;
  this.age=age;
  this.sayHi=function(){}
  }
  var zs = new Person('張三',18);
   
  對象的遍歷: for-in
  for(var key in Obj){
  console.log(key+'--'+Obj[key]);
  }
   
   
   
  8.內置對象
  Math對象 : 數學對象 Math.random() Math.floor() Math.ceil() Math.max() Math.min()
  任意區間隨機數公式:Math.floor(Math.random() * (max - min + 1) + min);
   
  Date()時間對象:
   
  var date = new Date(); //獲取當前時間
  var date = new Date('2018-8-8 12:12:12'); //獲取當前時間
  var date = new Date('2018/8/8'); //獲取當前時間
  var date = new Date(2018,7,6); //獲取時間,月份會大1 ,7 表示8月份
   
  1.先轉換成毫秒,而後再轉換成年月日,時分秒
  date.getTime()
  date.Valueof()
  date.now()
  2.經過對象的內置方法,直接獲取年月日,時分秒
  date.getFullYear(); //年
  date.getMonth(); //月 0 一月份 1 二月份
  date.getDate(); //日
  date.getDay(); //星期幾, 0 週日 1週一 6週六
   
  date.getHours(); //小時
  date.getMinutes(); //分鐘
  date.getSeconds(); //秒數
   
  3.會計算時間差.
  1.毫秒相減 ,除以1000,變成秒數差
  2.計算天,時,分,秒
  d = parseInt(總秒數/ 60/60 /24); // 計算天數
  h = parseInt(總秒數/ 60/60 %24) // 計算小時
  m = parseInt(總秒數 /60 %60 ); // 計算分數
  s = parseInt(總秒數%60); // 計算當前秒數
  3.判斷是否個位數,而後補0
  h = h<10? '0'+h : h;
   
  字符串對象
  1.indexOf(要查找的字符,開始位置) 開始位置不寫默認從0開始,找不到返回-1 ----查找字符
  2.charAt(字符位置) 給一個位置,返回該位置的字符 ----獲取字符
  3.subStr(開始位置,截取個數) 返回截取的字符串結果 ----截取字符
  4.replace(要替換的字符,替換的新字符) ----替換字符
  5.join(鏈接符) 將數組經過鏈接符鏈接,返回字符串 ----鏈接字符
  6.split(鏈接符) 將字符根據鏈接符分割成多個值的數組,返回數組 ----分割字符
  7.toUpperCase() 將字符串轉換爲大寫 ----轉換成大寫
  8.toLowerCase() 將字符串轉換爲小寫 ----轉換成小寫
   
  數組對象:
  1.push() 後面添加元素
  2.pop() 後面刪除元素
   
  3.unshift() 前面添加元素
  4.shift() 前面刪除元素
   
  5.reverse() 翻轉數組
  6.sort() 排序數組
   
  arr.sort(function(a,b){
  return a-b; //升序
  })
   
  arr.sort(function(a,b){
  return b-a; //降序
  });
   
  7.concat() 合併數組
  var arr3 = arr1.concat(arr2);
   
  8.splice 刪除/修改/添加數組
  arr.splice(開始位置); //從開始位置刪除到最後
  arr.splice(開始位置,刪除個數); //從開始位置刪除幾個
   
  //新增內容
  arr.splice(開始位置,0,新增元素);
  arr.splice(1,0,'a','b'); //在索引1元素以前插入a和b
   
  //替換內容
  arr.splice(開始位置,刪除個數,新增元素);
  arr.splice(1,1,'d'); //在索引爲1開始刪除一個元素,替換爲
   
   
  9.indexOf() 查找數組
   
  查找數組中的元素位置
  arr.indexOf(元素); //返回元素的索引位置,若是沒有返回-1
  arr.indexOf(元素,開始位置); //從開始位置繼續向後找.
  arr.lastIndexOf(元素) //返回元素索引位置,若是沒有返回-1,從後往前找
   
  10.tostring() 轉換爲字符串
   
  數組轉換爲字符串
  arr.toString(); 將數組中的每一個元素用逗號連接成字符串
   
  11.join() 數組拼接分隔符
  arr.join(); //默認以逗號鏈接數組,拼接成字符串
  arr.join(分隔符); //以分隔符鏈接數組元素,拼接成字符串
   
   
  9.其餘
  1.變量的命名規範
  1.字母,數字,下劃線,$等組合,
  2.數字不能開頭
  3.不能是關鍵字
  4.不能是中文
  5.建議使用駝峯命名
  2.輸出打印
  alert()
  console.log()
  prompt();
   
  3.轉義字符
  \n 換行
  \t tab製表符
   
   
  4.預解析
  變量聲明和函數聲明提早
   
  5.做用域和做用域鏈
  做用域:變量的做用範圍
  做用域鏈: 人外有人,天外有天
   
  6.局部變量和全局變量
  全局變量有兩種:
  1.在括號外面直接寫的變量
  2.在函數內部,未使用var聲明但直接賦值的變量
   
  局部變量:
  1.形參就是局部變量
  2.函數內部的變量就是局部變量
   
  注意:js中沒有塊級做用域
  {
  var a=1;
  }
   
   
  7.this和new的理解
  this的指向問題:
  1.函數在定義this的時候是不肯定的,只有在調用的時候才能夠肯定
  2.通常函數直接執行,內部this指向全局window
  3.this的指向,誰調用指向誰
  4.構造函數中的this 對象的實例
  new在執行時會作四件事情
  1.new會在內存中建立一個新的空對象
  2.new會讓this指向這個新的對象
  3.執行構造函數裏面的代碼,目的是給這個新對象加屬性和方法
  4.new會返回這個新對象,因此構造函數裏面不須要return
   
  8.運算符和優先級
  1.()
  2.++ -- !
  3.先* / % 後+ -
  4.< > <= >= == != === !==
  5.先&& 後||
  6.賦值運算符
  注意: 等於和不等於 == === != !==
  ++a 和 a++
  && 而且
  || 或者
  ! 取反
相關文章
相關標籤/搜索