摘要:語法常量名值常量名在程序中,通常采用大寫形式。結果為類型作用表示使用的數據不存在類型只有一個值即當聲明的變量未賦值未初始化時,該變量的默認值就是類型用于表示不存在的對象。結果為按位或,對小數取整將任意小數與做按位或,結果則取整數部分。
前端知識點總結——JS基礎 1.javascript概述(了解)
1.什么是javascript
javascript簡稱為js,是一種運行于js解釋器/引擎中的腳本語言 js的運行環境: 1.獨立安裝的js解釋器(node) 2.嵌入在瀏覽器內核中的js解釋器
2.js的發展史
1.1992年Nombas公司為自己開發了一款腳本語言SciptEase 2.1995年Netscape(網景)開發了一款腳本語言LiveScrpt,后來更名javascript 3.1996年Microsoft在IE3.0版本中克隆javascript,JScript 4.1997年,javascript提交給ECMA(歐洲計算機制造商聯合會)。定義ECMAScript,簡稱ES5,ES6
3.js組成部分
1.核心(ECMAScript) 2.DOM (Document object model)文檔對象模型 3.BOM (Browser object model)瀏覽器對象模型
4.js的特點
1.語法類似于c,java 2.無需編譯,由js解釋器直接運行 3.弱類型語言 4.面向對象的2.JavaScript的基礎語法
1.使用javascript
1.搭建運行環境 1.獨立安裝的JS解釋器-NodeJS 1.在命令行界面:輸入node console.log("你好,世界"); 在控制臺打印輸出 說明:js是可以獨立在js解釋器中運行 2.使用瀏覽器內核中嵌的js解釋器 瀏覽器內核負責頁面內容的渲染,由兩部分組成: 內容排版引擎-解析:HTML/CSS 腳本解釋引擎-解析:javascript 1.直接在Console(控制臺)中輸入腳本并運行 2.將js腳本嵌入在HTML頁面中執行 1.html元素的事件中執行js腳本 事件-onclick-鼠標單擊時要執行的操作 2.在 3.js調試,F12查看錯誤,出錯時不影響其它代碼塊,后續代碼繼續執行。 3.通過語法規范 1.語句:可執行的最小單元 必須以;結束 嚴格區分大小 所有的符號必須是英文 2.注釋: // :單行注釋 /**/:多行注釋3.變量和常量
1.變量聲明
1.聲明變量 var 變量名; 2.為變量賦值 變量名=值; 3.聲明變量是直接賦值 var 變量名=值; ex: var uname="張無忌"; var age=20; 注意: 1.允許在一條語句中聲明多個變量,用逗號隔開變量名。 var uname="韓梅梅",uage=20; 2.如果聲明變量,但未賦值,則值默認為undefined 3.聲明變量時可以不適用var,但不推薦 uname="tom";
2.變量名的規范
1.不允許以數字開頭 2.不允許使用關鍵詞和保留關鍵字 3.最好見名知意 var uname; var uage; 4.允許包含字母,數字,下劃線(_),$ var $name="Tom"; 5.盡量使用小駝峰命名法 var userName; var uname; var _uname;//下劃線 var user_name;//下劃線 var UserName;//大駝峰命名法4.變量的使用
1.聲明變量未賦值,值默認為undefined 2.使用未聲明過的變量 報錯 3.賦值操作 變量名出現在=的左邊,一律是賦值操作 var uname="林妹妹"; 4.取值操作 變量只要沒出現在=的左邊,一律是取值操作 var uage=30; console.log(uage); var num1=uage;5.常量
1.什么是常量 在程序中,一經聲明就不允許被修改的數據就是常量。 2.語法 const 常量名=值; 常量名在程序中,通常采用大寫形式。 const PI=3.1415926;5.1數據類型
1.數據類型的作用
規定了數據在內存中所占的空間 10.1 64位 8個字節 bit:位 8bit=1byte字節 1024byte=1KB 1024KB=1MB 1024MB=1G 1024G=1T
2.數據類型詳解
1.數據類型分兩大類 原始類型(基本類型) 引用類型 1.原始類型 1.Number 類型 數字類型 作用:可以表示32位的整數,也可以表示64位的浮點數(小數) 整數: 1.十進制 10 2.八進制 由0-7八個數字組成,逢八進一 八進制中以0開始 var num=010; 3.十六進制 由0-9和A-f組成,逢十六進一 A:10 B:11 C:12 D:13 E:14 F:15 十六進制中以0X開始 浮點數:又稱小數 小數點計數法:12.58 指數計數法:3.4e3(3.4*10的3次方) 2.String類型 字符串類型 作用:表示一系列的文本字符數據,如:姓名,性別,住址... 字符串中的每個字符,都是由Unicode碼的字符,標點和數字組成。 Unicode碼:每個字符在計算機中都有一個唯一的編碼表示該字符, 該碼就是unicode碼(他是十六進制) 1.查找一個字符的unicode碼: "李".charCodeAt(); //10進制輸出 "李".charCodeAt().toString(2); //二進制輸出 "李".charCodeAt().toString(16); //十六進制 李的unicode碼是:674e 2.如何將674e轉換為漢字? 用u ex: var str="u674e"; console.log(str);//結果是“李” 漢字的Unicode碼的范圍: u4e00~u9fa5 3.特殊字符需要轉義字符 : 換行 : 制表符(縮進) ": " ": " : 3.Boolean類型 布爾類型 作用:在程序中表示真或假的結果 取值: true或false var isBig=true; var isRun=false; 在參與到數學運算時,true可以當成1做運算,false可以當做0做運算。 var res=25+true; //結果為26 4.Undefined類型 作用:表示使用的數據不存在 Undefined類型只有一個值,即undefined當聲明的變量未賦值(未初始化)時, 該變量的默認值就是undefined. 5.Null類型 null用于表示不存在的對象。 Null類型只有一個值,即null,如果函數或方法要返回的是對象, 找不到該對象,返回的就是null。5.2數據類型的轉換
1.隱式(自動)轉換 不同類型的數據在計算過程中自動進行轉換 1.數字+字符串:數字轉換為字符串 var num=15; var str="Hello"; var res=num+str; //結果:15Hello 2.數字+布爾:將布爾轉換為數字true=1,false=0 var num1=10; var isSun=true; var res1=num1+isSun;//結果:11 3.字符串+布爾:將布爾轉換為字符串 var str1="Hello"; var isSun1=true; var res2=str1+isSun1;//結果:Hellotrue 4.布爾+布爾:將布爾轉換為數字 true=1,false=0; var isSun2=true; var isSun3=flase; var res=isSun2+isSun3;//結果1 2.強制轉換 -轉換函數 1.toString() 將任意類型的數據轉換為字符串 語法: var num=變量.toString(); ex: var num=15; var str=num.toString(); console.log(typeof(str)); 2.parseInt() 將任意類型的數據轉換為整數 如果轉換不成功,結果為NaN(Not a Number) 語法:var result=parseInt(數據); 3.parseFloat() 將任意類型的數據轉換為小數 如果轉換不成功,結果為NaN 語法:var result=parseFloat(數據); 4.Number() 將任意類型數據轉為Number類型 注意:如果包含非法字符,則返回NaN 語法:var result=Number(數據);6.運行符和表達式
1.什么是表達式
由運算符連接操作數所組成的式子就是表達式。 ex: 15+20 var x=y=40 任何一個表達式都會有結果。
2.運算符
1.算術運算符 +,-,*,/,%,++,-- 5%2=1; ++:自增運算,只做+1操作 ++在前:先自增,再運算; ++在后:先運算,再自增; ex: var num=5; console.log(num++);//打印5,變為6 console.log(++num);//變為7,打印7 ex: var num=5; 5 (6)6 6(7) (8)8 var res=num+ ++num +num++ + ++num +num++ +num; 8(9) 9 結果:42 2.關系運算符(比較) >,<,>=,<=,==,===(全等),!=,!==(不全等) 關系運算的結果:boolean類型(true,false) 問題: 1. 5 > "10" 結果:false 關系運算符兩端,只要有一個是number的話,另外一個會隱式轉換為number類型,再進行比較。 2."5">"1 0" 結果:true "5".charCodeAt(); //53 "1".charCodeAt(); //49 "張三豐" > "張無忌" 結果:false 19977 > 26080 3."3a" > 10 結果:false Number("3a")--->NaN 注意: NaN與任何一個數據做比較運算時,結果都是false. console.log("3a">10); false console.log("3a"==10); false console.log("3a"<10); false isNaN()函數: 語法:isNaN(數據); 作用:判斷指定數據是否為非數字,如果不是數字,返回值為true,是數字的話返回的值為false console.log(isNaN("3")); //false console.log(isNaN("3a")); //ture console.log("3a"!=10);//true 3.邏輯運算符 !,&&,|| !:取反 &&:并且,關聯的兩個條件都為true,整個表達式的結果為true ||:或者,關聯的兩個條件,只要有一個條件為true,整個表達式的結果就為true 短路邏輯: 短路邏輯&&: 當第一個條件為false時,整體表達式的結果就為false,不需要判斷第二個條件 如果第一個條件為true,會繼續判斷或執行第二個條件 短路邏輯||: 當第一個條件為true時,就不再執行后續表達式,整體結果為true。 當第一個條件為false時,繼續執行第二個條件或操作。 4.位運算符 <<,>>,&,|,^ 右移是把數變小,左移是把數變大 &:按位與,判斷奇偶性 任意數字與1做按位與,結果為1,則為奇數,結果為0,則為偶數。 var num=323; var result=num & 1 console.log(result); //結果為1 |:按位或,對小數取整 將任意小數與0做按位或,結果則取整數部分。 ^:按位異或,用于交換兩個數字 二進制位數,逐位比較,不同則為1,相同則為0 a=a^b; b=b^a; a=a^b; 5.賦值運算符和擴展賦值運算符 1.賦值運算 = var uname="TOM"; 2.擴展賦值運算符 +=,-=,*=,/=,%=,^=... a=a+1 a+=1;a++;++a a=a^b a^=b 6.條件(三目)運算符 單目(一目)運算符,只需要一個操作數或表達式 ex: a++,b--,!isRun 雙目(二元)運算符,需要兩個操作數或表達式 +,-,*,/,%,>,<,>=,<=,==,!=,===,!==,&&,||,&,|,^ 三目(三元)運算符,需要三個操作數或表達式 條件表達式?表達式1:表達式2; 先判斷條件表達式的值, 如果條件為true,則執行表達式1的操作 如果條件為false,則執行表達式2的操作 ex:成績大于60及格,否則,輸出不及格7.函數-function
1.什么是函數
函數,function,也稱為方法(method) 函數是一段預定義好,并可以被反復執行的代碼塊。 預定義:提前定義好,并非馬上執行。 代碼塊:可以包含多條可執行的語句 反復執行:允許被多次調用 函數-功能 parseInt(); parseFloat(); Number(); console.log(); alert(); document.write();
2.定義和使用函數
1.普通函數的聲明和調用(無參數無返回值) 1.聲明 function 函數名(){ //函數體 若干可執行的語句 } 2.調用函數 在任意javascript合法的位置處通過 函數名(); 對函數進行調用。 2.帶參函數的聲明和調用 1.聲明 function 函數名(參數列表){ //函數體 } 參數列表:可以聲明0或多個參數,多個參數間用逗號隔開 聲明函數時,聲明的參數,稱之為“形參” 2.調用 函數名(參數值列表); 注意:調用函數時,傳遞的參數數值,稱之為“實參”。 盡量按照聲明函數的格式進行調用 3.帶返回值函數聲明和調用 1.聲明 function 函數名(參數){ //函數體 return 值; //return關鍵字,程序碰到return關鍵詞,就立馬跳出并且把值帶出去 } 注意:最多只能返回一個值 2.調用 允許使用一個變量接收函數的返回值 var result=函數名(實參);8.作用域
1.什么是作用域 作用域表示的是變量或函數的可訪問范圍。 JS中的作用域分兩種: 1.函數作用域 只在函數范圍內有效 2.全局作用域 代碼的任何位置都有效
2.函數作用域中變量
又稱為局部變量,只在聲明的函數中有效 ex: function test(){ var num=10; }
3.全局作用域中的變量
又稱為全局變量,一經聲明,任何位置都能用 1.不在function中聲明的變量,為全局變量 2.聲明變量不使用var,無論任何位置聲明,都是全局變量(不推薦) 注意: 全局變量和局部變量沖突時,優先使用局部變量。 3.變量的聲明提前 1.什么是聲明提前 在JS程序正式執行之前,function聲明的函數, 會將所有var聲明的變量,都預讀(聲明)到所在作用域的頂部,但賦值還是保留在原位。9.按值傳遞
1.什么是按值傳遞
原始(基本)類型的數據(number,string,bool),在做參數傳遞時, 都是按照“值傳遞”的方式進行傳參的。 值傳遞:真正傳遞參數時,實際上傳遞的是值的副本(復制出來一個值), 而不是原始值。
2.函數的作用域
1.分為兩種 1.局部函數 在某個function中聲明的函數。 2.全局函數 在最外層(