2021-03-02

1够坐、js是什么

  js是可以嵌入到html中专执,是 基于對象 和 事件驅動 的 腳本語言

  特點:

    (1)交互性

    (2)安全性:js不能訪問本地磁盤

    (3)跨平臺:瀏覽器中都具備js解析器

2、js能做什么

   (1)js能動態(tài)的修改(增刪)html和css的代碼

   (2)能動態(tài)的校驗數(shù)據

3、js歷史及組成

  ECMAScript BOM(瀏覽器對象模型)? DOM(文檔對象模型)

  js代碼放在哪券敌?

    放在哪都行 但是在不影響html功能的前提下 越晚加載越好

二许蓖、js基本語法

1催跪、變量

  (1)

    var x = 5;

    x = 'javascript';

    var y = "hello";

    var b = true;

  (2)

    x = 5;

2若厚、原始數(shù)據類型

  (1)number:數(shù)字類型

  (2)string:字符串類型

  (3)boolean:布爾類型

  (4)null:空類型

  (5)underfind:未定義

  注意:number、boolean、string是偽對象

  類型轉換:

    number\boolean轉成string

    toString();

    string\boolean轉成number

    parseInt()

    parseFloat()

    boolean 不能轉

    string 可以將數(shù)字字符串轉換成number 如果“123a3sd5” 轉成123強制轉換

    Boolean() 強轉成布爾

    數(shù)字強轉成布爾? 非零就是true? 零就是false

    字符串強轉成布爾? 非“”(空字符串)就是true? 空字符串“”就是false

    Number() 強轉成數(shù)字

    布爾轉數(shù)字 true轉成1? false轉成0

    字符串轉數(shù)字 不能強轉

3院峡、引用數(shù)據類型

  java: Object obj = new Object();

  js: var obj = new Object();

  var num = new Number();

4兴使、運算符

  (1)賦值運算符

    var x = 5;

  (2)算數(shù)運算符

    + - * / %

    +: 遇到字符串變成連接

    -:先把字符串轉成數(shù)字然后進行運算

    *: 先把字符串轉成數(shù)字然后進行運算

    /: 先把字符串轉成數(shù)字然后進行運算

  (3)邏輯運算符

    && ||

  (4)比較運算符

    < > >= <= != ==

    ===:全等:類型與值都要相等

  (5)三元運算符

    3<2?"大于":"小于"

  (6)void運算符

    <a href="javascript:void(0);">xxxxxx</a>

  (7)類型運算符

    typeof:判斷數(shù)據類型 返回我的數(shù)據類型

    instanceof:判斷數(shù)據類型 是否是某種類型

    var obj = new Object();

    alert(typeof obj);//object

    alert(obj instanceof Object);//true

5、邏輯語句

  (1)if-else

    //條件:

    //數(shù)字非0 字符串非空====true

    if(9){

      alert("true--");

    }else{

      alert("false--");

    }

  (2)switch

    var x = "java";

    switch(x){

      case "css":

        alert("css");

        break;

      case "js":

        alert("js");

        break;

      case "java":

        alert("java");

        break;

      default:

        alert("def");

      }

  (3)for

     for(var i = 0;i<5;i++){

      alert(i);

     }

  (4)for in

    var arr = [1,3,5,7,"js"];

     for(index in arr){//index代表角標

      //alert(index);

      alert(arr[index]);

     }

三照激、js內建對象

  (1)Number

    創(chuàng)建方式:

      var myNum=new Number(value);

      var myNum=Number(value);

      屬性和方法:

        toString():轉成字符串

        valueOf():返回一個 Number 對象的基本數(shù)字值

  (2)Boolean

    創(chuàng)建方式:

      var bool = new Boolean(value);

      var bool = Boolean(value);

    屬性和方法:

      toString():轉成字符串

      valueOf():返回一個 Boolean 對象的基本值(boolean)

  (3)String

    創(chuàng)建方式:

      var str = new String(s);

      var str = String(s);

    屬性和方法:

      length:字符串的長度

      charAt():返回索引字符

      charCodeAt:返回索引字符unicode

      indexOf():返回字符的索引

      lastIndexOf();逆向返回字符的索引

      split();將字符串按照特殊字符切割成數(shù)組

      substr():從起始索引號提取字符串中指定數(shù)目的字符

      substring():提取字符串中兩個指定的索引號之間的字符

      toUpperCase();轉大寫

  (4)Array

    創(chuàng)建方式:

      var arr = new Array();//空數(shù)組

      var arr = new Array(size);//創(chuàng)建一個指定長度的數(shù)據

      var arr = new Array(element0, element1, ..., elementn);//創(chuàng)建數(shù)組直接實例化元素

      var arr = [];//空數(shù)組

      var arr = [1,2,5,"java"];//創(chuàng)建數(shù)組直接實例化元素

    屬性和方法:

      length:數(shù)組長度

      join():把數(shù)組的所有元素放入一個字符串发魄。元素通過指定的分隔符進行分隔一個

      pop():刪除并返回最后元素

      push():向數(shù)組的末尾添加一個或更多元素,并返回新的長度

      reverse();反轉數(shù)組

      sort();排序

  (5)Date

    創(chuàng)建方式:

      var myDate = new Date();

      var myDate = new Date(毫秒值);//代表從1970-1-1到現(xiàn)在的一個毫秒值

    屬性和方法

      getFullYear():年

      getMonth():月 0-11

      getDate():日 1-31

      getDay():星期 0-6

      getTime():返回1970年1月1日午夜到指定日期(字符串)的毫秒數(shù)

      toLocalString();獲得本地時間格式的字符串

  (6)Math

    創(chuàng)建方式:

      Math 對象并不像 Date 和 String 那樣是對象的類俩垃,因此沒有構造函數(shù) Math()励幼,像 Math.sin() 這樣的函數(shù)只是函數(shù),不是某個對象的方法口柳。您無需創(chuàng)建它苹粟,通過把 Math 作為對象使用就可以調用其所有屬性和方法。

    屬性和方法

      PI:圓周率

      abs():絕對值

      ceil():對數(shù)進行上舍入

      floor():對數(shù)進行下舍入

      pow(x,y):返回 x 的 y 次冪

      random():0-1之間的隨機數(shù)

      round():四舍五入

  (7)RegExp

    創(chuàng)建方式:

      var reg = new RegExp(pattern);

      var reg = /^正則規(guī)則$/;

   

    方法:

      test(str):檢索字符串中指定的值啄清。返回 true 或 false

    

四六水、js的函數(shù)

1俺孙、js函數(shù)定義的方式

  (1)普通方式

    語法:function 函數(shù)名(參數(shù)列表){函數(shù)體}

    示例:

      function method(){

        alert("xxx");

      }

      method();

  (2)匿名函數(shù)

    語法:function(參數(shù)列表){函數(shù)體}

    示例:

      var method = function(){

        alert("yyy");

      };

      method();

  (3)對象函數(shù)

    語法:new Function(參數(shù)1,參數(shù)2,...,函數(shù)體);

    注意:參數(shù)名稱必須使用字符串形式辣卒、最后一個默認是函數(shù)體且函數(shù)體需要字符串形式

    示例:

      var fn = new Function("a","b","alert(a+b)");

      fn(2,5);

2、函數(shù)的參數(shù)

  (1)形參沒有var去修飾

  (2)形參和實參個數(shù)不一定相等

  (3)arguments對象 是個數(shù)組 會將傳遞的實參進行封裝

    function fn(a,b,c){

      //var sum = a+b+c;

      //alert(sum);

      //arguments是個數(shù)組 會將傳遞的實參進行封裝

      for(var i=0;i<arguments.length;i++){

        alert(arguments[i]);

      }

    }

    fn(1,2,4,8);

3睛榄、返回值

  (1)在定義函數(shù)的時候不必表明是否具有返回值

  (2)返回值僅僅通過return關鍵字就可以了 return后的代碼不執(zhí)行

    function fn(a,b){

      return a+b;

      //alert("xxxx");

    }

    alert(fn(2,3));

4荣茫、js的全局函數(shù)

  (1)編碼和解碼

    encodeURI()? decodeURI()

    encodeURIComponet() ? decodeURIComponent()

    escape() unescape()

    三者區(qū)別:

      進行編碼的符號范圍不同吧,實際開發(fā)中常使用第一種

  (2)強制轉換

    Number()

    String()

    Boolean()

  (3)轉成數(shù)字

    parseInt()

    parseFloat()

  (4)eval()方法

    將字符串當作腳本進行解析運行

    //var str = "var a=2;var b=3;alert(a+b)";

    //eval(str);

    function print(str){

      eval(str);

    }

    print("自定義邏輯");

五场靴、js的事件

  事件

  事件源

  響應行為

1啡莉、js的常用事件

  onclick:點擊事件

  onchange:域內容被改變的事件

  需求:實現(xiàn)二級聯(lián)動

    <select id="city">

      <option value="bj">北京</option>

      <option value="tj">天津</option>

      <option value="sh">上海</option>

    </select>

    <select id="area">

      <option>海淀</option>

      <option>朝陽</option>

      <option>東城</option>

    </select>

    <script type="text/javascript">

    var select = document.getElementById("city");

    select.onchange = function(){

      var optionVal = select.value;

      switch(optionVal){

        case 'bj':

          var area = document.getElementById("area");

          area.innerHTML = "<option>海淀</option><option>朝陽</option><option>東城</option>";? ?

? ? ? ? ? ? ? ? ? ? ? ? ? ?   break;

        case 'tj':

          var area = document.getElementById("area");

          area.innerHTML = "<option>南開</option><option>西青</option><option>河西</option>";

          break;

        case 'sh':

          var area = document.getElementById("area");

          area.innerHTML = "<option>浦東</option><option>楊浦</option>";

          break;

        default:

          alert("error");

      }

    };

    </script>

onfoucus:獲得焦點的事件

onblur:失去焦點的事件

需求: 當輸入框獲得焦點的時候,提示輸入的內容格式

當輸入框失去焦點的時候旨剥,提示輸入有誤

<label for="txt">name</label>

<input id="txt" type="text" /><span id="action"></span>

<script type="text/javascript">

var txt = document.getElementById("txt");

txt.onfocus = function(){

//友好提示

var span = document.getElementById("action");

span.innerHTML = "用戶名格式最小8位";

span.style.color = "green";

};

txt.onblur = function(){

//錯誤提示

var span = document.getElementById("action");

span.innerHTML = "對不起 格式不正確";

span.style.color = "red";

};

</script>

onmouseover:鼠標懸浮的事件

onmouseout:鼠標離開的事件

需求:div元素 鼠標移入變?yōu)榫G色 移出恢復原色

#d1{width:200px;height: 200px;}

<div id="d1"></div>

<script type="text/javascript">

var div = document.getElementById("d1");

div.onmouseover = function(){

this.style.backgroundColor = "green";

};

div.onmouseout = function(){

this.style.backgroundColor = "red";

};

</script>

onload:加載完畢的事件

等到頁面加載完畢在執(zhí)行onload事件所指向的函數(shù)

<span id="span"></span>

<script type="text/javascript">

window.onload = function(){

var span = document.getElementById("span");

alert(span);

span.innerHTML = "hello js";

};

</script>

2咧欣、事件的綁定方式

(1)將事件和響應行為都內嵌到html標簽中

<input type="button" value="button"? onclick="alert('xxx')"/>

(2)將事件內嵌到html中而響應行為用函數(shù)進行封裝

<input type="button" value="button" onclick="fn()" />

<script type="text/javascript">

function fn(){

alert("yyy");

}

</script>

(3)將事件和響應行為 與html標簽完全分離

<input id="btn" type="button" value="button"/>

<script type="text/javascript">

var btn = document.getElementById("btn");

btn.onclick = function(){

alert("zzz");

};

</script>

****this關鍵字

this經過事件的函數(shù)進行傳遞的是html標簽對象

<input id="btn" name="mybtn" type="button" value="button123" onclick="fn(this)"/>

<script type="text/javascript">

function fn(obj){

alert(obj.name);

}

</script>

3、阻止事件的默認行為

IE:window.event.returnValue = false;

W3c: 傳遞過來的事件對象.preventDefault();

//ie:window.event.returnValue = false;

//W3c:傳遞過來的事件對象.preventDefault();

//W3c標準

if(e&&e.preventDefault){

alert("w3c");

e.preventDefault();

//IE標簽

}else{

alert("ie");

window.event.returnValue = false;

}

//通過事件返回false也可以阻止事件的默認行為

<a href="demo11.html" onclick="return false">點擊我吧</a>

4轨帜、阻止事件的傳播

IE:window.event.cancelBubble = true;

W3c: 傳遞過來的事件對象.stopPropagation();

if(e&&e.stopPropagation){

alert("w3c");

e.stopPropagation();

//IE標簽

}else{

alert("ie");

window.event.cancelBubble = true;

}

六魄咕、js的bom

(1)window對象

彈框的方法:

提示框:alert("提示信息");

確認框:confirm("確認信息");

有返回值:如果點擊確認返回true? 如果點擊取消 返回false

var res = confirm("您確認要刪除嗎?");

alert(res);

輸入框:prompt("提示信息");

有返回值:如果點擊確認返回輸入框的文本 點擊取消返回null

var res =? prompt("請輸入密碼蚌父?");

alert(res);

open方法:

window.open("url地址");

open("../jsCore/demo10.html");

定時器:

setTimeout(函數(shù),毫秒值);

setTimeout(

function(){

alert("xx");

},

3000

);

clearTimeout(定時器的名稱);

var timer;

var fn = function(){

alert("x");

timer = setTimeout(fn,2000);

};

var closer = function(){

clearTimeout(timer);

};

fn();

setInterval(函數(shù),毫秒值);

clearInterval(定時器的名稱)

var timer = setInterval(

function(){

alert("nihao");

},

2000

);

var closer = function(){

clearInterval(timer);

};

需求:注冊后5秒鐘跳轉首頁

恭喜您注冊成功哮兰,<span id="second" style="color: red;">5</span>秒后跳

轉到首頁,如果不跳轉請<a href="../jsCore/demo10.html">點擊這里</a>

<script type="text/javascript">

var time = 5;

var timer;

timer = setInterval(

function(){

var second = document.getElementById("second");

if(time>=1){

second.innerHTML = time;

time--;

}else{

clearInterval(timer);

location.href="../jsCore/demo10.html";

}

},

1000

);

</script>

(2)location

location.href="url地址";

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末苟弛,一起剝皮案震驚了整個濱河市喝滞,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌膏秫,老刑警劉巖右遭,帶你破解...
    沈念sama閱讀 211,348評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡窘哈,警方通過查閱死者的電腦和手機言蛇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,122評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宵距,“玉大人腊尚,你說我怎么就攤上這事÷模” “怎么了婿斥?”我有些...
    開封第一講書人閱讀 156,936評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哨鸭。 經常有香客問我民宿,道長,這世上最難降的妖魔是什么像鸡? 我笑而不...
    開封第一講書人閱讀 56,427評論 1 283
  • 正文 為了忘掉前任活鹰,我火速辦了婚禮,結果婚禮上只估,老公的妹妹穿的比我還像新娘志群。我一直安慰自己,他們只是感情好蛔钙,可當我...
    茶點故事閱讀 65,467評論 6 385
  • 文/花漫 我一把揭開白布锌云。 她就那樣靜靜地躺著,像睡著了一般吁脱。 火紅的嫁衣襯著肌膚如雪桑涎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,785評論 1 290
  • 那天兼贡,我揣著相機與錄音攻冷,去河邊找鬼。 笑死遍希,一個胖子當著我的面吹牛等曼,可吹牛的內容都是我干的。 我是一名探鬼主播孵班,決...
    沈念sama閱讀 38,931評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼涉兽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了篙程?” 一聲冷哼從身側響起枷畏,我...
    開封第一講書人閱讀 37,696評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎虱饿,沒想到半個月后拥诡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體触趴,經...
    沈念sama閱讀 44,141評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,483評論 2 327
  • 正文 我和宋清朗相戀三年渴肉,在試婚紗的時候發(fā)現(xiàn)自己被綠了冗懦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,625評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡仇祭,死狀恐怖披蕉,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情乌奇,我是刑警寧澤没讲,帶...
    沈念sama閱讀 34,291評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站礁苗,受9級特大地震影響爬凑,放射性物質發(fā)生泄漏。R本人自食惡果不足惜试伙,卻給世界環(huán)境...
    茶點故事閱讀 39,892評論 3 312
  • 文/蒙蒙 一嘁信、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疏叨,春花似錦潘靖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,741評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至昌粤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間啄刹,已是汗流浹背涮坐。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留誓军,地道東北人袱讹。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像昵时,于是被迫代替她去往敵國和親捷雕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,492評論 2 348

推薦閱讀更多精彩內容