JS進階

【定義@keyframes】
一、        0% { opacity: 0;}
            100% { opacity: 1;}html

*********************千萬別在後面家逗號或者分號面試

【html,body】
一、html,body {
    width:100%;
    height:100%;
}
爲何這樣寫,是由於有些瀏覽器body高度並非佔滿頁面,這樣設置保證body獲得全屏寬高(作整屏動畫要考慮)json


【document.body.offsetHeight和document.body.clientHeight】
一、前者獲取body標籤高度,後者獲取窗口(視口)高度,二者不同
    若是body不設置高度,前者會等於0,後者等於視口寬度  數組

二、document.body.offsetWidth 獲取到的是包括滾動條的寬度  反而document.body.clientWidth 不包括滾動條瀏覽器

【防止拖動時選中內容】
一、window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();閉包

二、直接在函數體最後return false;app

【js單引號雙引號問題】
一、Json 裏若是要用引號,建議使用雙引號,這樣別的語言也能識別數據函數

二、JS爲何要用單引號,是由於JS都把內容或者樣式插入行內,標籤屬性定義時通常用雙引號,JS賦值的時候用單引號,不容易出錯動畫


【直接改變數組的值】
一、    var arr = [1,3,5,6];
    arr[3] += 1;
    console.log(arr);   // [1,3,5,7]網站

【轉換標準json格式的網站】
一、http://www.bejson.com/

【Math.min.apply(null,arr)】
一、這是一種獲取數組裏面最小數的一種方法,是經過function.apply(this,arguments),反之取大值就改變前面的方法Math.max

****************apply詳情能夠查看 http://www.cnblogs.com/KeenLeung/archive/2012/11/19/2778229.html 

【冒泡事件注意事項】
一、冒泡事件只能禁止同類型事件    
    
    btn.onclick = function(e){
        e.stopPropagation();
        console.log(1);
      }
      wrap.onmousedown = function(){
        console.log(2);
      }                    // 打印 2 1

二、爺父子三個盒子,若是在父盒子中阻止冒泡事件,那麼子盒子也不會冒泡到爺盒子上,只會冒泡到父盒子上

三、父盒子綁定事件,子盒子沒有綁定事件(子盒子有寬高),如onmouseover,在父盒子和子盒子來回移動會不斷觸發事件發生,
    如onclick( 1218本身作的登陸窗口點擊消失案例中,點擊box裏面的有高度的hd盒子也會消失,移動的時候前提要先onmousedown觸發,若是不能觸發
多是點擊事件冒泡有影響)

    這是子盒子的冒泡事件,解決辦法在父盒子設置計數器,當觸發的時候等於1,大於1的時候不在觸發


【document.body.scrollTop能讀值取值】
一、document.body.scrollTop能被賦值

【this】(面試)

0、只要有閉包事件,它的調用者就是window,this就指向window,沒有任何特殊狀況

***********若是this指向undefined
一、this: this所在的函數在哪一個對象中,this就指向對象(大部分狀況)

eg:   function dog(){
    console.log(this);    
      }

      dog();      //this指向window,由於全部的全局變量和全部的函數都是window的屬性和方法
      new dog()   //this指向dog,new 關鍵字可讓 this  指向新的對象,這就是所謂的構造函數

二、少數狀況特殊:
       (1) 若是this在定時器中, this就指向window
       (2) 若是this在事件源中, this就指向產生這個事件源的對象

**********************解決方法用備份指針  var self = this;

【構造函數的prototype】(面試)
一、是爲了共享屬性和方法,不用的話,每個構造函數的實例都會各自建立新的方法,會消耗內存,若是用了原型,就會讓全部的實例共用這個方法,只開闢
    一次內存


【;(function(){})()】
一、;爲了防止前一個封閉做用於沒有小括號致使後面的閉包變成實參


【H5新標籤】

一、seletor.classList.add("class");      二、seletor.classList.toggle();

相關文章
相關標籤/搜索