日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

原生JavaScript第一篇

發(fā)布時間:2023/11/29 javascript 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 原生JavaScript第一篇 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?

js的歷史

  在上個世紀的1995年,當時的網景公司正憑借其Navigator瀏覽器成為Web時代開啟時最著名的第一代互聯(lián)網公司。

  由于網景公司希望能在靜態(tài)HTML頁面上添加一些動態(tài)效果,于是叫Brendan Eich這哥們在兩周之內設計出了JavaScript語言。你沒看錯,這哥們只用了10天時間。

  為什么起名叫JavaScript?原因是當時Java語言非常紅火,所以網景公司希望借Java的名氣來推廣,但事實上JavaScript除了語法上有點像Java,其他部分基本上沒啥關系。

  JavaScript版本兼容性

  JavaScript語言是在10天時間內設計出來的,雖然語言的設計者水平非常NB,但誰也架不住“時間緊,任務重”,所以,JavaScript有很多設計缺陷,我們后面會慢慢講到。

  此外,由于JavaScript的標準——ECMAScript在不斷發(fā)展,最新版ECMAScript 6標準(簡稱ES6)已經在2015年6月正式發(fā)布了,所以,講到JavaScript的版本,實際上就是說它實現(xiàn)了ECMAScript標準的哪個版本。

  由于瀏覽器在發(fā)布時就確定了JavaScript的版本,加上很多用戶還在使用IE6這種古老的瀏覽器,這就導致你在寫JavaScript的時候,要照顧一下老用戶,不能一上來就用最新的ES6標準寫,否則,老用戶的瀏覽器是無法運行新版本的JavaScript代碼的。

  js的組成

  ECMAScript

  ECMAScript是一個標準。

  因為網景開發(fā)了JavaScript,一年后微軟又模仿JavaScript開發(fā)了JScript,為了讓JavaScript成為全球標準,幾個公司聯(lián)合ECMA(European Computer Manufacturers Association)組織定制了JavaScript語言的標準,被稱為ECMAScript標準。

  所以簡單說來就是,ECMAScript是一種語言標準,而JavaScript是網景公司對ECMAScript標準的一種實現(xiàn)。

  那為什么不直接把JavaScript定為標準呢?因為JavaScript是網景的注冊商標。

  不過大多數(shù)時候,我們還是用JavaScript這個詞。如果你遇到ECMAScript這個詞,簡單把它替換為JavaScript就行了。

  DOM

  DOM:Document Object Model。文檔對象模型,后邊我們會有專門的課程來講解DOM操作

  BOM

  BOM:Browser Object Model。瀏覽器對象模型,后邊我們也會專門來講bom操作

  JavaScript的特點

  (1)、一種解釋性執(zhí)行的腳本語言。

  同其他腳本語言一樣,JavaScript也是一種解釋性語言,其提供了一個非常方便的開發(fā)過程。JavaScript的語法基本結構形式與C、C++、Java十分類似。但在使用前,不像這些語言需要先編譯,而是在程序運行過程中被逐行地解釋。JavaScript與HTML標識結合在一起,從而方便用戶的使用操作。

  (2)、一種基于對象的腳本語言。

  其也可以被看作是一種面向對象的語言,這意味著JavaScript能運用其已經創(chuàng)建的對象。因此,許多功能可以來自于腳本環(huán)境中對象的方法與腳本的相互作用。

  (3)、一種簡單弱類型腳本語言。

  其簡單性主要體現(xiàn)在:首先,JavaScript是一種基于Java基本語句和控制流之上的簡單而緊湊的設計,從而對于使用者學習Java或其他C語系的編程語言是一種非常好的過渡,而對于具有C語系編程功底的程序員來說,JavaScript上手也非常容易;其次,其變量類型是采用弱類型,并未使用嚴格的數(shù)據(jù)類型。

  (4)、一種相對安全腳本語言。

  JavaScript作為一種安全性語言,不被允許訪問本地的硬盤,且不能將數(shù)據(jù)存入服務器,不允許對網絡文檔進行修改和刪除,只能通過瀏覽器實現(xiàn)信息瀏覽或動態(tài)交互。從而有效地防止數(shù)據(jù)的丟失或對系統(tǒng)的非法訪問。

  (5)、一種事件驅動腳本語言。

  JavaScript對用戶的響應,是以事件驅動的方式進行的。在網頁(Web Page)中執(zhí)行了某種操作所產生的動作,被稱為“事件”(Event)。例如按下鼠標、移動窗口、選擇菜單等都可以被視為事件。當事件發(fā)生后,可能會引起相應的事件響應,執(zhí)行某些對應的腳本,這種機制被稱為“事件驅動”。

  (6)、一種跨平臺性腳本語言。

  JavaScript依賴于瀏覽器本身,與操作環(huán)境無關,只要計算機能運行瀏覽器,并支持JavaScript的瀏覽器,就可正確執(zhí)行,從而實現(xiàn)了“編寫一次,走遍天下”的夢想。

  因此,JavaScript是一種新的描述語言,其可以被嵌入到HTML文件中。JavaScript語言可以做到響應使用者的需求事件(例如表單的輸入),而不需要任何的網絡來回傳輸資料。所以當一位使用者輸入一項資料時,此資料數(shù)據(jù)不用經過傳給服務器(server)處理再傳回來的過程,而直接可以被客戶端(client)的應用程序所處理。

  3、JavaScript的優(yōu)缺點

  (1)、JavaScript的優(yōu)點:

  <1>.JavaScript減少網絡傳輸。

  在JavaScript這樣的用戶端腳本語言出現(xiàn)之前,傳統(tǒng)的數(shù)據(jù)提交和驗證工作均由用戶端瀏覽器通過網絡傳輸?shù)椒掌魃线M行。如果數(shù)據(jù)量很大,這對于網絡和服務器的資源來說實在是一種無形的浪費。而使用JavaScript就可以在客戶端進行數(shù)據(jù)驗證。

  <2>.JavaScript方便操縱HTML對象。

  JavaScript可以方便地操縱各種頁面中的對象,用戶可以使用JavaScript來控制頁面中各個元素的外觀、狀態(tài)甚至運行方式,JavaScript可以根據(jù)用戶的需要“定制”瀏覽器,從而使網頁更加友好。

  <3>.JavaScript支持分布式運算。

  JavaScript可以使多種任務僅在用戶端就可以完成,而不需要網絡和服務器的參與,從而支持分布式的運算和處理。

  (2)、JavaScript的局限性:

  <1>.各瀏覽器廠商對JavaScript支持程度不同。

  目前在互聯(lián)網上有很多瀏覽器,如Firefox、Internet Explorer、Opera等,但每種瀏覽器支持JavaScript的程度是不一樣的,不同的瀏覽器在瀏覽一個帶有JavaScript腳本的主頁時,由于對JavaScript的支持稍有不同,其效果會有一定的差距,有時甚至會顯示不出來。

  <2>.“Web安全性”對JavaScript一些功能犧牲。

  當把JavaScript的一個設計目標設定為“Web安全性”時,就需要犧牲JavaScript的一些功能。因此,純粹的JavaScript將不能打開、讀寫和保存用戶計算機上的文件。其有權訪問的唯一信息就是該JavaScript所嵌入的那個Web主頁中的信息,簡言之,JavaScript將只存在于它自己的小小世界—Web主頁里。

  js的引入方式

  在一對?script?標簽中引入js代碼

  通過這種方式引入,可以把js代碼和html代碼寫在同一個文件中,但是注意:最好把js代碼寫在body之后,文檔的加載順序是從上到下加載的,先把頁面內容渲染出來,再加入用戶交互,這樣用戶體驗會大大加強。

  示例代碼:

? ? <html?lang="en">

? ? <head>

? ? ? ? <meta?charset="UTF-8" />

? ? ? ? <title>js基礎一</title>

? ? </head>

? ? <body>

? ? </body>

? ? <!--script 最好放在body之后,處理交互事件,等到內容顯示之后-->

? ? <script?type="text/javascript">

? ? ? ? ? ? //警告框

? ? ? ? ? ? alert('網絡錯誤!');

? ? ? ? </script>

? ? </html>

  用瀏覽器打開效果如下:

  引入外部js代碼

  我們可以把js代碼寫在一個后綴為.js的文件中,然后把這個js文件引入html文檔里

  操作步驟:

  創(chuàng)建一個目錄文件夾例如為js,然后再這個文件夾中創(chuàng)建一個一個后綴為.js的一個js文件,例如叫做index.js;

  在script標簽中的src中寫入js文件的路徑。

  示例代碼:

? ? <!doctype html>

? ? <html?lang="en">

? ? <head>

? ? ? ? <meta?charset="UTF-8" />

? ? ? ? <title>js基礎一</title>

? ? </head>

? ? <body>

? ? </body>

? ? <!--script 最好放在body之后,處理交互事件,等到內容顯示之后-->

? ? <!--第二種方式:引入js文件-->

?? ? ? <script?src="js/index.js" type="text/javascript">

?? ? ? </script>

? ? </html>

  alert語句

  我們注意到上邊我們使用到了一個語句:alert('網絡錯誤!');。這是一個alert語句,用來在瀏覽器中彈出一個提示框的。

  js中的變量

  什么是變量?

  變量首先是一個容器,可以用來存放數(shù)據(jù),而且存放在這個容器中的數(shù)據(jù)可以發(fā)生變化。舉個例子:我有一個盆子,這個盆子中既可以裝沙子、也可以裝水,還可以裝糧食。這個盆子就可以看做一個變量,里邊裝的水、沙子、糧食就是存放在變量中的值。

  在生活中,我們使用紙張來記錄和保存信息,而在計算機中,我們使用變量來保存信息。變量的概念基本上和初中代數(shù)的方程變量是一致的,只是在計算機程序中,變量不僅可以是數(shù)字,還可以是任意數(shù)據(jù)類型。

  如何定義變量?

  使用關鍵字?var?+變量名 +?=(賦值號)?+ 值 +?;?就可以定義一個變量。

  示例代碼:定義一個變量:

  var a = 12;

  以上代碼定義了一個變量?a?,變量里保存的值是數(shù)值12?。

  變量的命名規(guī)則

  變量在JavaScript中就是用一個變量名表示,變量名是大小寫英文、數(shù)字、$和_的組合,且不能用數(shù)字開頭。變量名也不能是JavaScript的關鍵字,如if、while等。聲明一個變量用var語句,比如:

var?a; // 申明了變量a,此時a的值為undefinedvar?$b = 1; // 申明了變量$b,同時給$b賦值,此時$b的值為1var?s_007 = '007'; // s_007是一個字符串var?Answer =true; // Answer是一個布爾值truevar?t =?null; // t的值是null

  變量名也可以是中文,但是由于中文的兼容性不好,所以不要使用中文作為變量名。

  變量命名規(guī)范:

  類型前綴

  首字母大寫

?

  js的基本數(shù)據(jù)類型

  Number

  number是數(shù)值類型,在生活中,我們把沒有小數(shù)位的數(shù)稱作整數(shù),帶有小數(shù)位的數(shù)稱作小數(shù)(計算機中叫浮點數(shù)),JavaScript不區(qū)分整數(shù)和浮點數(shù),統(tǒng)一用Number表示,以下都是合法的Number類型:

var?a = 123; // 整數(shù)123var?a = 0.456; // 浮點數(shù)0.456var?a = 1.2345e3; // 科學計數(shù)法表示1.2345x1000,等同于1234.5var?a = -99; // 負數(shù)NaN; // NaN表示Not a Number,當無法計算結果時用NaN表示Infinity; // Infinity表示無限大,當數(shù)值超過了JavaScript的Number所能表示的最大值時,就表示為Infinity

  Number類型的數(shù)可以進行加、減、乘、除、求余、自增、自減運算

  字符串

  字符串是以單引號'或雙引號"括起來的任意文本,比如'abc',"xyz"等等。請注意,''或""本身只是一種表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c這3個字符。

  如果'本身也是一個字符,那就可以用""括起來,比如"I'm OK"包含的字符是I,',m,空格,O,K這6個字符。

  如果字符串內部既包含'又包含"怎么辦?可以用轉義字符\來標識,比如:

'I\'m \"OK\"!';

  表示的字符串內容是:I'm "OK"!

  轉義字符

  `表示轉義字符,在計算機中,有些特殊的字符被系統(tǒng)賦予了特殊含義,如'表示括住字符串。但是想輸出一個'怎么辦?我們就可以像上邊一樣使用轉移字符`,在特殊字符前添加一個轉義字符,計算機就會把這個特殊字符當做普通的字符串來處理。

  布爾值

  在計算機中,我們用真表示條件成立,用假表示條件不成立。真和假就是布爾值(bollean)。

  在js中,我們使用true來表示真,用false來表示假。布爾值只有真和假,沒有第三個值。布爾值經常用在條件判斷中。

var?bo1 =?true;//布爾類型 結果true和false

?//typeof()獲取變量的數(shù)據(jù)類型,(在不知道變量類型的情況下,也可以通過ypeof()獲取)

?alert(typeof(bo1));

  null和undefined

  null表示一個“空”的值,它和0以及空字符串''不同,0是一個數(shù)值,''表示長度為0的字符串,而null表示“空”。

  在其他語言中,也有類似JavaScript的null的表示,例如Java也用null,Swift用nil,Python用None表示。但是,在JavaScript中,還有一個和null類似的undefined,它表示“未定義”。

  JavaScript的設計者希望用null表示一個空的值,而undefined表示值未定義。事實證明,這并沒有什么卵用,區(qū)分兩者的意義不大。大多數(shù)情況下,我們都應該用null。undefined僅僅在判斷函數(shù)參數(shù)是否傳遞的情況下有用。

  拓展 undefined類型

?

?//如果我們不給某個變量設置值,則為undefined類型;var?color;

alert(typeof?color);

  js中的運算符

  算數(shù)運算符

  +加

  -減

  *乘

  /除

  %求余(取模)

  賦值運算符

  =賦值

  +=加后賦值

  -= 減后賦值

  *= 乘后賦值

  /=除后賦值

  %=模后賦值

  關系運算符

  >大于

  <小于

  <=小于等于

  >=大于等于

  ==等于(如果左右兩邊類型不一致,則隱式轉換為一致的類型后再比較)

  ===等于(如果左右兩邊類型不一致,則返回false)

  !=不等于(如果左右兩邊類型不一致,則隱式轉換為一致的類型后再比較)

  !==不等于(不轉換類型,直接比較)

  邏輯運算符

  &&與

  ||或

  !非

  js的邏輯運算符

  邏輯運算產生的結果是一個布爾值,js中有三種邏輯運算符:

  &&與

  ||或

  !非

  邏輯與&&

  書寫方式:表達式一 && 表達式二。邏輯與表達式為真的條件是:左右兩邊的表達式同時成立時,整個邏輯與表達式才成立,只要有一個表達式不成立,整個邏輯表達式為假。

  邏輯或||

  書寫方式:表達式一 || 表達式二。邏輯或表達式為真的條件是:左右兩邊的表達式,這要其中一個為真,則整個表達式為真。只有在兩邊表達式同時為假時,整個表達式才為假。

  邏輯非!

  書寫方式為:!表達式。邏輯非是對原有的表達式結果進行取反操作。如原表達式為真,則進行邏輯非操作后,返回的值是假;元表達式為假,進行邏輯非運算后表達式為真。

轉載于:https://www.cnblogs.com/zhupeng-1024/p/5976717.html

總結

以上是生活随笔為你收集整理的原生JavaScript第一篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。