js複習

js基礎語法
    Netcape   
    js基礎語法規範(ECMAScript1,2,3,3.1,5(IE9),6   ES    ES6=es2015) DOM BOM  
       BOM :是由瀏覽器廠商各自實現的,因此差別比較大
       DOM:相關的規範  是由W3C維護的
    Node的優點  沒有瀏覽器的兼容性問題
    前端項目儘可能不要使用ES6,須要考慮兼容性問題
--------------------------------數據類型---------------------------
1.數據類型分類:
            基本數據類型:number   string   boolean      undefined     null
            複雜數據類型:對象(數組,函數,日期)
 
undefined:數據未定義的一種狀態
2.typeof 返回的數據類型
能夠返回這六種數據類型:number  string  boolean  function  undefined  object
日期,數組,正則都是object類型
可使用typeof來檢測前5中的數據類型 '
注意返回的是字符串   小寫
console.log(typeof  alert());//function  使用typeof檢測函數 返回的是function
 
3.邏輯運算符
&&  :   左邊爲真的話,返回右邊;左邊爲假的話,返回左邊      (若是左邊爲真,須要計算右邊因此會返回右邊的結果)
||  :左邊爲真的話,返回左邊;左邊爲假的話  返回右邊   (若是左邊爲真,就不須要再計算右邊了,因此會直接返回左邊的值)
console.log(undefined  &&  10);//undefined
console.log(0 || 3);//3  
 
真假值:
假值:  空字符串""   數值0   false     null(聲明的變量賦值了可是賦值的是空值)   undefined(變量聲明瞭可是沒有定義)    NaN(不是一個數字,NaN自己是number類型的)  
 
4.獲取對象未定義的屬性的話返回的是undefined不是  is not defined
var  obj = {name:''xiaoming"};
console.log(obj.age);//undefined
5.值類型  引用類型
值類型:數字 字符串  boolean  null  undefined
引用類型:對象
 
5.  instanceof
var  result = obj  instanceof   XXX;
返回值是一個boolean類型
檢測obj是不是XXX類的一個實例
  1. var obj ={};
  2. console.log(obj instanceof Object);
  3. var arr =[1,2,3,4];
  4. console.log(arr instanceof Array);
    
constructor屬性:保存了對構造特定對象實例的函數的引用
  1. console.log(arr.constructor==Array);//true
  2. console.log(obj.constructor==Object);//true
  3. console.log(num.constructor==Number);//true
 
代碼調試   異常捕獲
面向對象基礎複習
構造函數和原型
 
變量聲明提高(詞法做用域 原理性的介紹)
做用域:全局做用域     局部做用域(寫一個函數就產生了一個局部做用域)
 
 
  1. function bar(){
  2. function foo(){}
  3. foo =10;//2.給變量foo賦值 10 foo變爲了一個number類型
  4. // function foo() {}//1.函數聲明 提高到當前做用域的頂端
  5. return foo;//3.將number類型的的foo返回
  6. }
  7. // console.log(foo);
  8. console.log(typeof bar());
 
  1. function fun(a, b){
  2. for(var i =0; i < arguments.length; i++){
  3. console.log(arguments[i]);//分別打印的函數的參數
  4. }
  5. return a + b;
  6. }
  7. console.log(fun(3));//NaN 3+undefined 獲得是一個NaN
  1. var foo =function bar(name){
  2. console.log("hello"+ name);
  3. };
  4. foo("world");
  5. //bar();//沒法打印 bar is not defined
  6. /*在函數內部,bar能夠被訪問,此時的bar就至關於foo,至關於函數自己*/
  7. //只能經過打印foo.toString()從而找到bar
  8. console.log(foo()== bar());
  9. console.log(foo.toString());//打印的是function bar(name) 函數體
  10. function t1() {前端

    console.log(str2);  //is not defined數組

    str2 = 'mike';瀏覽器

    }函數

    t1();spa

    第一種狀況涉及到JavaScript的運行階段,分爲詞法分析階段和運行階段,在詞法分析階段時,先聲明瞭str2變量但沒有賦值,因此在運行階段就出現了undefined。調試

    第二種狀況在詞法分析階段也沒法聲明str2,由於沒有var關鍵字聲明,因此在運行階段直接拋出異常。code

相關文章
相關標籤/搜索