1. 程式人生 > 其它 >變數、資料型別、運算

變數、資料型別、運算

1.JavaScript介紹

  1. 、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)、運算子的優先順序

優先順序從高到底如下:

括號>點運算子>一元運算子>算數運算子>關係運算符>邏輯運算子>賦值運算子