變數、資料型別、運算
1.JavaScript介紹
- 、JavaScript是什麼
1、JavaScript的歷史
Netscape(網景)在最初將其指令碼語言命名為LiveScript,是布蘭登.艾克發明的。後來Netscape在與Sun合作之後將其改名為JavaScript。JavaScript最初受Java啟發而開始設計的,目的之一就是“看上去像Java”,因此語法上有類似之處,一些名稱和命名規範也借自Java。JavaScript與Java名稱上的近似,是當時Netscape為了營銷考慮與Sun微系統達成協議的結果。Java和JavaScript的關係就像張雨和張雨生的關係,只是名字很像。
2、JavaScript是什麼語言
可以說:Java伺服器端的程式語言,JavaScript執行在客戶端(瀏覽器)的程式語言
JavaScript(簡稱JS)是一種執行在客戶端的指令碼語言,JavaScript的直譯器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的指令碼語言
也可以說,是一門指令碼語言、是一門解釋性語言、是一門動態型別的語言、是一門基於
物件的語言。(不是面向物件)、是一門弱性語言
3、JavaScript的發展和意義
最初的目的是為了處理表單的驗證操作。JavaScript發展到現在幾乎無所不能,例如:做網頁特效、與互動(表單的提交),比如:輪播圖、tab切換、返回頂部。。。
網頁特效、服務端開發(Node.js)、命令列工具(Node.js)、桌面程式
4、JavaScript和HTML、CSS的區別
HTML-提供網頁的結構,提供網頁中的內容
CSS-用來美化網頁
JavaScript-可以用來控制網頁內容,給網頁增加動態的效果
5、JavaScript的組成
(1)ECMAScript-JavaScript的核心
ECMA歐洲計算機制造聯合會。JavaScript的核心,描述了語言的基本語法和資料型別,ECMAScript是一套標準,定義了一種語言的標準與具體實現無關
(2)BOM-瀏覽器物件模型
一套操作瀏覽器功能的API。通過BOM可以操作瀏覽器視窗,比如:彈出框、控制瀏覽器跳轉、獲取解析度等。Borswerobjectmodel
(3)DOM-文件物件模型
一套操作頁面元素的API。DOM可以把HTML看做是文件樹,通過DOM提供的API可以對樹上的節點進行操作。Documentobjectmodel
JavaScript程式碼寫法
CSS程式碼寫法分為行內樣式、嵌入樣式(內部)、外部樣式、控制檯書寫。那麼,js的程式碼可以分四個地方寫:
1.在html的檔案中,script的標籤中寫js程式碼
2.js程式碼可以在html的標籤中寫
3.在js檔案中可以寫js程式碼,但是需要在html頁面中引入script的標籤中的src="js的路徑"
4.還可以在控制檯直接書寫js程式碼
JavaScript問題總結
1、在一對script的標籤中有錯誤的js程式碼,那麼該錯誤的程式碼後面的js程式碼不會執行
2、如果第一對的script標籤中有錯誤,不會影響後面的script標籤中的js程式碼執行
3、script的標籤中可以寫type="text/javascript"標準寫法或者寫language="JavaScript"都可以。但是,目前在我們的html頁面中,type和language都可以省略,原因:html是遵循h5的標準。
4、有可能會出現這種情況:script標籤中可能同時出現type和language的寫法。
5、script標籤在頁面中可以出現多對。
6、script標籤一般是放在body的標籤的最後的,有的時候會在head標籤中,目前講課的時候都在body標籤的後面(body中的最後)。
7、如果script標籤是引入外部js檔案的作用,那麼這對標籤中不要寫任何的js程式碼,如果要寫,重新寫一對script標籤,裡面寫程式碼。
2.JavaScript變數
(1)、變數引入
什麼是變數
變數是計算機記憶體中儲存資料的識別符號,根據變數名稱可以獲取到記憶體中儲存的資料
為什麼要使用變數
使用變數可以方便的獲取或者修改記憶體中的資料
(2)、變數宣告和初始化
var宣告變數
varage;
變數的賦值
varage;
age=18;
同時宣告多個變數
varage,name,sex;
age=10;
name='zs';
同時宣告多個變數並賦值
varage=10,name='zs';
變數在記憶體中的儲存
varage=18;
(3)、變數的命名規則和規範
規則-必須遵守的,不遵守會報錯
1、由字母、數字、下劃線、$符號組成,不能以數字開頭
2、不能是關鍵字和保留字,例如:for、while。
3、區分大小寫
規範-建議遵守的,不遵守不會報錯
1、變數名必須有意義
2、遵守駝峰命名法。首字母小寫,後面單詞的首字母需要大寫。
js中的關鍵字:可用於表示控制語句的開始或結束,或者用於執行特定操作等
break、else、new、var、case、finally、return、void、catch、for
、switch、while、continue、function、this、
with、default、if、throw、delete、in、try、do、instranceof、typeof
js中保留字。儘管保留字在這門語言中還沒有任何特定的用途,
但它們有可能將來被用作關鍵字。下面是ECMA第3版定義的全部保留字:
abstract、enum、int、short、boolean、export、interface、
static、byte、extends、long、super、char、final、native、synchronized、class、float、package、throws、const、goto、private、
transient、debugger、implements、protected、volatile、double、import、public
(4)、字面量
在原始碼中一個固定值的表示法,也叫字面量。
數值字面量:8,9,10
字串字面量:'程式設計師',"大前端"
布林字面量:true,false
3.JavaScript資料型別
(1)、基本資料型別
Number、String、Boolean、Undefined、Null
1、Number型別
數值字面量:數值的固定值的表示法,例如110,1024,60.5
十進位制
varnum=9;//進行算數計算時,八進位制和十六進位制表示的數值最終都被轉換成十進位制數值。
十六進位制
varnum=0xA;//數字序列範圍:0~9以及A~F
八進位制
varnum1=07;//對應十進位制的7
varnum2=011;//對應十進位制的9
varnum3=021;//對應十進位制的17//數字序列範圍:0~7
如果字面值中的數值超出了範圍,那麼前導零將被忽略,後面的數值將被當作十進位制數值解析
浮點數
varn=5e-5;//科學計數法5乘以10的-5次方
浮點數值的最高精度是17位小數,但在進行算術計算時其精確度遠遠不如整數
varresult=0.1+0.2;//結果不是0.3,而是:0.30000000000000004
console.log(0.07*100);
注意:不要判斷兩個浮點數是否相等
就是說由於0.1轉換成二進位制時是無限迴圈的,所以在計算機中0.1只能儲存成一個近似值
最小值:Number.MIN_VALUE,這個值為:5e-324
最大值:Number.MAX_VALUE,這個值為:1.7976931348623157e+308
無窮大:Infinity
無窮小:-Infinity
數值判斷
NaN:notanumber(可以通過Number()方法判斷)
NaN與任何值都不相等,包括他本身
isNaN():isnotanumber(如果x是特殊的非數字值NaN(或者能被轉換為這樣的值),返回的值就是true。如果x是其他值,則返回false)
2、String型別
字串可以使用單引號,也可以使用雙引號,例如:'abc'、"abc"。
字串字面量:‘IamHappy’、”HelloWorld”
字串長度
length屬性用來獲取字串的長度
字串拼接
字串拼接使用+連線
兩邊只要有一個是字串,那麼+就是字串拼接功能
兩邊如果都是數字,那麼就是算術功能。
3、Boolean型別
Boolean字面量:true和false,區分大小寫
計算機內部儲存:true為1,false為0
4、Undefined和Null
undefined表示一個聲明瞭沒有賦值的變數,變數只宣告的時候值預設是undefined
null表示一個空,變數的值如果想為null,必須手動設定
(2)、複雜資料型別
Object
(3)、資料型別轉換
獲取變數的型別
typeof關鍵字
toString()
轉換成字串型別
String()
String()函式存在的意義:有些值沒有toString(),這個時候可以使用String()。比如:undefined和null
拼接字串方式
num+"",當+兩邊一個操作符是字串型別,一個操作符是其它型別的時候,會先把其它型別轉換成字串再進行字串拼接,返回字串
轉換成數值型別
parseInt()
parseFloat()
parseFloat()把字串轉換成浮點數,parseFloat()和parseInt非常相似,不同之處在與
parseFloat會解析第一個.遇到第二個.或者非數字結束
如果解析的內容裡只有整數,解析成整數
轉換成布林型別
Boolean()
0''nullundefinedNaN會轉換成false,其它都會轉換成true。
4.JavaScript運算
(1)、算術運算子
+-*/%
(2)、一元運算子
一元運算子:只有一個運算元的運算子
++自身加1,--自身減1
前置++先將自身的值自增1,再將自增後的值賦值給變數
(3)、邏輯運算子(布林運算子)
&&與兩個運算元同時為true,結果為true,否則都是false
||或兩個運算元有一個為true,結果為true,否則為false
!非取反
(4)、關係運算符(比較運算子)
<>>=<===!====!==
==與===的區別:==只進行值得比較,===型別和值同時相等,則相等
注意:null代表的是空指標物件,undefined代表的是未定義,所以null與undefined與任何值都不相等(==),但是我們在ECMA-262規定:null與undefined相等,即null==undefined返回結果為true,實際上,undefined值是派生自null值的。
字串大小的比較:
如果兩個字串中都是全數字,只需比較兩個首字串數字的大小即可。即:“50”>”8”返回結果為false
如果等號兩側有一個是數字型別,則將字串轉化為數字再進行比較。即:”50”>8返回結果為true
(5)、賦值運算子
=+=-=*=/=%=
num+=5;//相當於num=num+5;
(6)、運算子的優先順序
優先順序從高到底如下:
括號>點運算子>一元運算子>算數運算子>關係運算符>邏輯運算子>賦值運算子