2022-01-04 day01-初學(xué)JavaScript

一. JavaScript概述

1995年,專門為網(wǎng)頁(yè)交互而設(shè)計(jì)的腳本語(yǔ)言,具有較強(qiáng)邏輯性.

二. JavaScript的組成
  1. ECMAScript -> ES -> 定義語(yǔ)法規(guī)范

  2. DOM 文檔對(duì)象模型, 操作頁(yè)面上的元素

  3. BOM 瀏覽器對(duì)象模型, 利用js操作瀏覽器的前進(jìn),后退,打印,刷新等

三. JavaScript 語(yǔ)言的特點(diǎn)
  1. 簡(jiǎn)單

  2. 腳本語(yǔ)言: 所寫即所得

  3. 基于對(duì)象(支持面向?qū)ο缶幊?更加貼近現(xiàn)實(shí))

  4. 動(dòng)態(tài)性(事件驅(qū)動(dòng))

  5. 跨平臺(tái)性

四. JavaScript語(yǔ)言介紹
  1. 標(biāo)簽: <script type="text/javascript"> js代碼寫在這里 </script>

  2. alert("我是一個(gè)提示框");

  3. console.log("我在控制臺(tái)打印");

  4. document.write("<b>我在頁(yè)面顯示,我可以解析任何HTML代碼</b>");

五. 注釋
  1. 單行注釋 -> ctrl + /

  2. 多行注釋 -> ctrl + shift + /

  3. 在vscode中修改塊注釋的快捷鍵: 文件 -> 首選項(xiàng) -> 鍵盤快捷方式 -> 搜索"塊" -> 切換塊注釋 -> 按 ctrl + shift + / -> 回車(完成)

六.變量
  1. 使用var關(guān)鍵字,在內(nèi)存中開辟一個(gè)空間,給空間命名,并且賦值

  2. 聲明變量

    2.1) 變量默認(rèn)是undefined未定義類型

        var myName; 
        console.log(myName); // undefined
    

    2.2) 聲明變量的同時(shí),賦予初值[推薦]

        var myName = "老羅"; 
    

    2.3) 簡(jiǎn)寫: 多個(gè)變量,可以使用逗號(hào)隔開,減少寫var關(guān)鍵字

        var myName = "老羅", age="18", sex="男"; 
    
  3. 查看js的基本數(shù)據(jù)類型,使用typeof

    var str = 123; console.log(typeof(str));  // number  
  1. js屬于弱類型語(yǔ)言, 在賦值的時(shí)候才能確定數(shù)據(jù)類型

    4.1) 值可以是任意類型的數(shù)據(jù)

    4.2) 數(shù)據(jù)類型可以被修改

七. 變量命名規(guī)則
  1. 只能由數(shù)字,字母,下劃線,$組成

  2. 不能以數(shù)字開頭

  3. 嚴(yán)格區(qū)分大小寫

  4. 不能使用關(guān)鍵字或保留字

  5. 采用大駝峰或小駝峰命名法

    5.1) 大駝峰: 用于類型,構(gòu)造函數(shù)

    5.2) 小駝峰: 用于變量,形參,函數(shù)

  6. 語(yǔ)義化,見名知意

八. js的數(shù)據(jù)類型
  1. 字符串類型 String, 由一組雙引號(hào)或單引號(hào)組成的
    var str = '哈哈';   
    var str2 = "哈哈哈";    
  1. 數(shù)值類型 Number
    var num = 100;    
    var num2  = 11.22;   
  1. 布爾類型 Boolean, 值為true/false
    var isLogin = true;   
  1. 未定義類型 undefined , 為防止出錯(cuò),js會(huì)隱式設(shè)置一個(gè)默認(rèn)的undefined
    var str;    
    console.log(str); // undefined   
  1. 空地址 null
    var n = null;   
  1. 對(duì)象類型 Object, 引用類型
    var Person = new Object();  // 創(chuàng)建方式1
    Person.name = "張三";
    var dog = {name:"大黃"};  // 創(chuàng)建方式2
    dog.age = 2;    
九.類型轉(zhuǎn)換(其他類型轉(zhuǎn)Boolean)
  1. string -> boolean ,非空字符串為true,空字符串為false;
  • [] 空格也算內(nèi)容
   var str = ""; // false    
   var str2 =" "; // true    
  1. number -> boolean ,非0為true, 0和NaN為false
   console.log(Boolean(0)); // false   
   console.log(Boolean(NaN)); // false    
  1. null 和 undefined -> Boolean ,始終為false
   console.log(Boolean(null)); // false            
   console.log(Boolean(undefined)); // false   
  1. object -> boolean ,只要值不是null,就為true
    console.log(Boolean({})); // true    
十. 強(qiáng)制轉(zhuǎn)換
  1. Boolean() 轉(zhuǎn)為布爾類型 [略:見'九']

  2. parseInt() 保留整數(shù)部分?jǐn)?shù)值,不能以字母開頭

   console.log(parseInt("100px")); // 100 
   console.log(parseInt("3.12億")); // 3      
   console.log(parseInt("px123")); // NaN   
  1. parseFloat() 保留至小數(shù)部分?jǐn)?shù)值
    console.log(parseFloat("12.3px")); // 12.3    
  1. Number() 字符串型數(shù)字轉(zhuǎn)數(shù)值型
    var str = "12.34";     
    console.log(Number(str)); // 12.34    
  1. "", null, undefined 轉(zhuǎn) parseInt()/Number()

    5.1) "", null, undefined在parseInt()轉(zhuǎn)換下,始終是NaN

    5.2)"", null, undefined在Number()轉(zhuǎn)換下,除了undefined是NaN,其它都是0

   console.log(parseInt("")); // NaN
   console.log(parseInt(null)); // NaN
   console.log(parseInt(undefined)); // NaN
   console.log(Number("")); // 0
   console.log(Number(null)); // 0
   console.log(Number(undefined)); // NaN
十一. 隱式轉(zhuǎn)換
  • 在運(yùn)算的時(shí)候,除了"+"表示拼接以外, -, *, /, %, ==, ...都會(huì)發(fā)生隱式轉(zhuǎn)換
   console.log("200" - 100); // 100   
十二. isNaN() 判斷是否不是一個(gè)數(shù)值
  • NaN -> not a number

  • NaN -> number類型 [重要]

   console.log(isNaN("abc")); // true   
   console.log(isNaN(10)); // false    
   console.log(isNaN(null)); // false  
   console.log(isNaN(undefined)); // true        
   console.log(isNaN(NaN)); // true        
   console.log(isNaN(Boolean(NaN))); // false
十三.關(guān)鍵字及其作用
  • 關(guān)鍵字: 已經(jīng)被js內(nèi)部使用了的
  1. break 立即退出循環(huán)
  2. continue 退出當(dāng)前循環(huán),根據(jù)條件表達(dá)式進(jìn)入下一次循環(huán)
  3. case 配合switch完成判斷
  4. switch 多重判斷語(yǔ)句
  5. default 配合switch,當(dāng)條件不成立時(shí),執(zhí)行該項(xiàng)
  6. throw 拋出異常
  7. try 配合catch進(jìn)行錯(cuò)誤判斷
  8. catch 配合try進(jìn)行錯(cuò)誤判斷
  9. finally 預(yù)防異常時(shí)使用,無(wú)論異常是否發(fā)生都會(huì)執(zhí)行
  10. delete 刪除屬性
  11. if 用于判斷
  12. else 配合if進(jìn)行條件判斷,用于條件選擇跳轉(zhuǎn)
  13. do 配合while做前置判斷
  14. while 判斷語(yǔ)句,可配合do做前置判斷;或獨(dú)立使用做后置判斷
  15. for 循環(huán)語(yǔ)句
  16. in 配合for遍歷對(duì)象; 判斷某個(gè)屬性是否屬于某個(gè)對(duì)象
  17. return 從當(dāng)前函數(shù)退出,并返回一個(gè)值
  18. function 函數(shù)關(guān)鍵字
  19. with 設(shè)置代碼在特定對(duì)象中的作用域
  20. void 聲明沒有返回值
  21. typeof 檢測(cè)變量的數(shù)據(jù)類型
  22. this 指向該方法的對(duì)象
  23. var 聲明變量
  24. instanceof 用于判斷某個(gè)對(duì)象是否另一個(gè)對(duì)象的實(shí)例
  25. new 創(chuàng)建一個(gè)新實(shí)例對(duì)象
十三.保留字
  • 暫時(shí)還未被使用,將來(lái)可能會(huì)被js內(nèi)部使用
  1. Byte 字節(jié)
  2. Boolean 布爾
  3. char 字符型
  4. const 常量型
  5. Double 雙精度浮點(diǎn)型
  6. Float 單精度浮點(diǎn)型
  7. Int 整型
  8. short 短整型
  9. Long 長(zhǎng)整型
  10. Enum 枚舉類型
  11. Public 公有型
  12. Pravite 私有型
  13. Protected 保護(hù)型
  14. Class 類
  15. Abstract 抽象
  16. Debugger 調(diào)試器
  17. Implements 實(shí)現(xiàn)
  18. Import 導(dǎo)入
  19. Export 導(dǎo)出
  20. Interface 接口
  21. static 靜態(tài)的
  22. extends 繼承
  23. super 調(diào)用父類屬性/方法
  24. Final 對(duì)象不可改變
  25. Native 計(jì)算機(jī)函數(shù)
  26. synchronized 同步
  27. Package 包
  28. throws 拋出
  29. Goto 跳轉(zhuǎn)
  30. transient 實(shí)現(xiàn)Serilizable接口,使對(duì)象序列化
  31. volatile 修飾變量
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過簡(jiǎn)信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容