js基礎

1. 基礎

1. 基本數(shù)據類型
var b;
typeof b;   //undefined
var a = true;
typeof a;   //boolen
var ele = document.getElementById("div1");
typeof ele;  //object
//typeof的返回類型number,string,bool,object,function,undefined,都是字符串
2. 字符串
//js中字符串是不能改變的
s = "Hello";
s[0] = "t";    //s還是="Hello"
s = s.toLowerCase();
s = s.toUpperCase();
s.indexOf('el');  //1
s.substring(0, 5);  // [0,5)
s.substring(5);      //[5,+oo);
3. 數(shù)組
var arr = [1, 2, 3];
arr[5] = 'x';
//arr => [1, 2, 3, undefined, undefined, 'x']
var arr = [1, 2, 3];
arr.length = 6;
//arr => [1, 2, 3, undefined, undefined]
arr.length = 2;
//arr =>[1, 2]
var arr = [10, 20, '30', 'xyz'];
arr.indexOf(30);   // -1
arr.indexOf('30'); //2
var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
arr.slice(0, 3);  //[0, 3)
arr.slice(3);    // [3, +oo)
aCopy = arr.slice();    //[0, +oo) 相當于復制整個數(shù)組
aCopy === arr;      //false

push和pop

var arr = [1,  2];
arr.push('A', 'B');  //arr= [1, 2, 'A', 'B']
arr.pop();    //返回'B'
arr = [];
arr.pop();  // undefined

unshift和shift

var arr = [1, 2];
arr.unshift('A', 'B'); // arr =['A', 'B', 1, 2]
arr.shift();              // 'A'

sort

var arr = ['B', 'C', 'A'];
arr.sort();  //arr =['A', 'B', 'C']

reverse

var arr = ['one', 'two', 'three'];
arr.reverse(); //arr = ['three', 'two', 'one']

splice

var arr = ['Microsoft', 'Apple', 'Yahoo', 'AOL', 'Excite', 'Oracle'];
arr.splice(2, 3, 'Google', 'Facebook'); // 返回刪除的元素 ['Yahoo', 'AOL', 'Excite'];
//arr = ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle'];
//只刪除氯迂,不添加
arr.splice(2, 2);   //從索引2 開始茅逮,刪除兩個
//只增加,不刪除
arr.splice(2, 0 , 'Google', 'Facebook');

數(shù)組遍歷

var myArr = ['xu', 'zhang', 'ji', 'shou'];
for (x in myArr) {
  console.log(myArr[x]);
}
//////////////////////
myArr.forEach(function(e){});
老版ie沒有forEach方法薯蝎,手動增加
if(!Array.prototype.forEach) {
  Array.prototype.forEach = function(callback, thisArg) {
    var T, k;
    if(this == null) {
      throw new TypeError("this is null or not defined");
    }
    var o = Object(this);
    var len = o.length >>> 0; //Hack to convert o.length to a UInt32

    if ({}.toString.call(callback) != "[object Function]") {
      throw new TypeError(callback + "is not a function");
    }

    if (thisArg) {
      T = thisArg;
    }
    k = 0;
    while(k < len) {
      var kValue;
      if (k in o) {
        kValue = o[k];
        callback.call(T, kValue, k, o);
      }
      k++;
    }
  }
}
/////////奇技淫巧
for(var i = myArr.length; i--;) {}

重要應用

//在瀏覽器通過document.getElementByTagName選擇的DOM節(jié)點是一種類似array的array遥倦,不能使用pop和push
var domNodes = Array.prototype.slice.call(document.getElementsByTagName("*"));

2. 判斷Nan不能直接比較

a == NaN; //總是false
isNaN(a);  //如果a是NaN,返回true

js Date屬性

var oDate = new Date();
oDate.getDate();          //返回 1-31中的一個數(shù)
oDate.getDay();          //返回0-6
oDate.getFullYear();   //返回四位數(shù)的年份
oDate.getHours();      //返回0-23
oDate.getMinutes();  //返回0-59
oDate.getSeconds();  //返回0-59
oDate.getMonth();     //返回月份0-11
oDate.getTime();      //返回1970年1月1日至今的毫秒數(shù)
oDate.toString();      //轉化為字符串

3. AJAX筆記

var oAjax;
if(window.XMLHttpRequest) {
  oAjax = new XMLHttpRequest();
} else {
  oAjax = new ActiveXObject("Microsoft.XMLHTTP");
}

oAjax.open("GET", "test.txt", true); //true代表異步
oAjax.send(); //可以穿一個string占锯,但是只能在POST中用

ajax在瀏覽器未關閉的時候袒哥,同一個地址只讀一次(緩存)
//如果想要像表單一樣提交數(shù)據,必須設置http頭
xmlhttp.open("POST","ajax_test.html",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");

//獲取返回值
oAjax.responstText //以字符串形式返回數(shù)據
oAjax.responseXML //已XML形式返回數(shù)據
onreadystatechange  ->存儲函數(shù)消略,當readyState發(fā)生變化時調用
readState => 0-4
status => 200,404

oAjax.onReadyStatechange = function() {
  if(oAjax.readyState == 4 && oAjax.status == 200) {
    
  }
}
var com = "1+2+3-4+10*15-6";
eval(com);//計算這個表達式

var strS = '[1, 2, 3]';
var arr = eval(strS);

輸入控件狀態(tài)變化

HTML表單事件

onblur           =>元素失去焦點執(zhí)行腳本
onchange         =>當元素改變執(zhí)行腳本
onfocus          =>當元素獲得焦點執(zhí)行腳本
onformchange     =>當表單改變執(zhí)行腳本
onforminput      =>當表單獲取用戶輸入執(zhí)行腳本
oninput          =>當元素獲取用戶輸入執(zhí)行腳本
oninvalid        =>當元素無效時執(zhí)行腳本
onselect         =>當選取元素時執(zhí)行腳本
onsubmit         =>當表單提交時執(zhí)行腳本

HTML鍵盤事件

onkeydown            =>鍵盤按下時
onkeypress           =>當按下并松開鍵盤時
onkeyup              =>當鍵盤松開時
#this.value就是輸入控件的值
<form action=""> 
First name: <input type="text" id="txt1" onkeyup="showHint(this.value)" />
</form>
<select name="customers" onchange="showCustomer(this.value)" >
  <option value="APPLE">Apple Computer, Inc.</option>
  <option value="BAIDU ">BAIDU, Inc</option>
  <option value="Canon">Canon USA, Inc.</option>
  <option value="Google">Google, Inc.</option>
  <option value="Nokia">Nokia Corporation</option>
  <option value="SONY">Sony Corporation of America</option>
</select>
可以為一個form設置一個onchange函數(shù)堡称,如果checkbox和radiobutton 改變則會調用,
文本框中文字改變不會調用
#小筆記
<div name="abc"><b>測試</b></div>
.innerHTML == <b>測試</b>
.innerTEXT == 測試
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末艺演,一起剝皮案震驚了整個濱河市却紧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌胎撤,老刑警劉巖晓殊,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異哩照,居然都是意外死亡挺物,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門飘弧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來识藤,“玉大人砚著,你說我怎么就攤上這事〕彰粒” “怎么了稽穆?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長赶撰。 經常有香客問我舌镶,道長,這世上最難降的妖魔是什么豪娜? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任餐胀,我火速辦了婚禮,結果婚禮上瘤载,老公的妹妹穿的比我還像新娘否灾。我一直安慰自己,他們只是感情好鸣奔,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布墨技。 她就那樣靜靜地躺著,像睡著了一般挎狸。 火紅的嫁衣襯著肌膚如雪扣汪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天锨匆,我揣著相機與錄音崭别,去河邊找鬼。 笑死统刮,一個胖子當著我的面吹牛紊遵,可吹牛的內容都是我干的。 我是一名探鬼主播侥蒙,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼暗膜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鞭衩?” 一聲冷哼從身側響起学搜,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎论衍,沒想到半個月后瑞佩,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡坯台,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年炬丸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡稠炬,死狀恐怖焕阿,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情首启,我是刑警寧澤暮屡,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站毅桃,受9級特大地震影響褒纲,放射性物質發(fā)生泄漏。R本人自食惡果不足惜钥飞,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一莺掠、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧读宙,春花似錦汁蝶、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽墓律。三九已至膀估,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間耻讽,已是汗流浹背察纯。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留针肥,地道東北人饼记。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像慰枕,于是被迫代替她去往敵國和親具则。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內容

  • 1.獲取非行間樣式 //獲取非行間css樣式 function getStyle(obj,attr){//獲取...
    二狗的小仙女閱讀 1,148評論 0 0
  • 一般事件 事件 瀏覽器支持 描述 onClick 鼠標點擊事件具帮,多用在某個對象控制的范圍內的鼠標點擊 onDbl...
    逍遙g閱讀 284評論 0 2
  • 身在谷底心在天博肋,枉若紅塵若許年。 若時他遂凌云愿蜂厅,想上云層看九天匪凡。
    龍幽天下閱讀 2,609評論 0 3
  • 最近在用vue.js在寫東西時候遇到了UC瀏覽器兼容性的問題病游。 查看了Android UC瀏覽器的內核后覺得應該不...
    知止至得閱讀 2,848評論 1 0
  • 提升決斷力來掌控時間的方法,以午餐為例:想節(jié)食減肥稠通,可又要做寶寶的飯衬衬,為這买猖,每天都耗費了大量的時間來決定做什...
    撿到蜜罐的熊閱讀 168評論 0 0