JavaScript基礎(chǔ)第一天

js的歷史

Nombas與ScriptEase

大概在 1992 年,一家稱作 Nombas 的公司開發(fā)了一種叫做 C 減減(C-minus-minus,簡稱 Cmm)的嵌入式腳本語言,并將這個腳本語言捆綁在一個可以嵌入到瀏覽的2的共享軟件中,代表了第一個在萬維網(wǎng)上使用的客戶端語言。后來由于mm聽起來比較消極,Nombas又將Cmm的名字修改為ScriptEase.雖然Nombas如今在互聯(lián)網(wǎng)行業(yè)已經(jīng)銷聲匿跡,但是它的理念卻成為因特網(wǎng)的一塊重要基石。

Netscape與JavaScript

當(dāng)網(wǎng)上沖浪越來越流行時,對于開發(fā)客戶端腳本的需求也逐漸增大。那時,大部分因特網(wǎng)用戶還僅僅通過 28.8 kbit/s 的調(diào)制解調(diào)器連接到網(wǎng)絡(luò),即便這時網(wǎng)頁已經(jīng)不斷地變得更大和更復(fù)雜。而更加加劇用戶痛苦的是,僅僅為了簡單的表單有效性驗證,就要與服務(wù)器進(jìn)行多次地往返交互。設(shè)想一下,用戶填完一個表單,點擊提交按鈕,等待了 30 秒的處理后,看到的卻是一條告訴你忘記填寫一個必要的字段。

為了解決這一問題,NetScape公司的 Brendan Eich 開始為即將在1995年發(fā)行的 Netscape Navigator 2.0瀏覽器開發(fā)一款名為LiveScript的腳本語言,最終NetScript與Sun公司合作完成了LiveScript,并且將這種語言命名為JavaScript.

微軟與JScript

在JavaScript 1.1 版本發(fā)布時,微軟公司也決定進(jìn)軍瀏覽器行業(yè)。微軟公司在推出的IE 3.0上搭載了一個JavaScript的克隆版,并且命名為JScript.

ECMAScript

在微軟進(jìn)入后,有 3 種不同的 JavaScript 版本同時存在:Netscape Navigator 3.0 中的 JavaScript、IE 中的 JScript 以及 CEnvi 中的 ScriptEase.和其他編譯語言不同的是,JavaScript 并沒有一個標(biāo)準(zhǔn)來統(tǒng)一其語法或特性,而這 3 種不同的版本恰恰突出了這個問題。

1997 年,JavaScript 1.1 作為一個草案提交給歐洲計算機(jī)制造商協(xié)會(ECMA).ECMA指派由來自 Netscape、Sun、微軟、Borland 和其他一些對腳本編程感興趣的公司的程序員組成的第 39 技術(shù)委員會(TC39) 錘煉出了 ECMA-262,該標(biāo)準(zhǔn)定義了名為 ECMAScript 的全新腳本語言。

總結(jié):Javascript是ECMAscript的一個實現(xiàn) 并且在此基礎(chǔ)上擴(kuò)展了DOM和BOM

js的組成

ECMAscript: JavaScript的核心,描述了語言的基本語法和數(shù)據(jù)類型,ECMAScript是一套標(biāo)準(zhǔn),定義了一種語言的標(biāo)準(zhǔn)與具體實現(xiàn)無關(guān)

DOM:(document object model 文檔對象模型)一套操作頁面元素的API

BOM:(browser object model 瀏覽器對象模型)一套操作瀏覽器功能的API

javascript是什么?

javascript是在運行在客戶端的腳本語言

客戶端:客戶端是相對于服務(wù)器而言的,在這里先簡單理解為瀏覽器 瀏覽器就是一個客戶端軟件,瀏覽器從服務(wù)器上將資源(html,css,js,圖片等)請求下來 并且在本地利用瀏覽器去解析這些資源 服務(wù)器本質(zhì)上也是一臺電腦。用來接收客戶端發(fā)過來的請求,并處理請求。同時存儲數(shù)據(jù) 讀取數(shù)據(jù)等操作

腳本語言:不需要編譯 讀取一句 解析一句 一句報錯 下一句不會繼續(xù)執(zhí)行 執(zhí)行過程:源代碼 - 預(yù)解析 - 運行 編譯語言:需要編譯 編譯一旦出錯 整個程序都不會運行 執(zhí)行過程:源代碼 - 編譯后的字節(jié)碼文件 - 運行

javascript的作用

1、網(wǎng)頁特效 2、表單驗證 3、服務(wù)端的JS (node.js) 4、命令行工具 (node.js) 5、app 6、游戲開發(fā)

總結(jié):JS無所不能,我們學(xué)習(xí)的方向主要針對的是web頁面

變量

概念:一塊被命名的運行存儲空間

運行存儲空間:電腦應(yīng)用程序在運行的時候開辟的內(nèi)存空間

為什么要命名:方便程序員使用

使用

1.先聲明后賦值????????var a; ????a=1;

2.聲明并賦值????????????var a=1;

3.一次聲明多個,單獨賦值????var a,b,c; ???? a=1;???? b=2;???? c=3;

4.不聲明直接賦值,屬于不遵守使用規(guī)范,但不會報錯,堅決不推薦;

5.不聲明直接使用,會報語法錯誤。

規(guī)則:? ? 只能為字母、數(shù)字、下劃線和$符號組成,且不能以數(shù)字開頭;

規(guī)范

1.變量名必須有意義

2.遵守駝峰式命名法 首字母小寫,后面單詞首字母大寫 例如:userName userPassword

注意

1.不能使用關(guān)鍵字和保留字命名

?關(guān)鍵字:對于JS來說有特殊意義的字符 [查詢保留字和關(guān)鍵字]https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#Keywords

? 保留字:現(xiàn)在沒有意義 但是保留在那邊 以后可能會有意義的字符

交換變量值

1.借助第三個容器臨時保存

2.運算(了解即可 基本不用)????

????var a = 10;????

????var b = 20;????

????a = a + b;

????b = a - b;

????a = a - b;

注釋

1、單行注釋?

? ? ? // 用在代碼上?

2、多行注釋?

????/*?多行注釋

*內(nèi)容

*內(nèi)容

?*/ 用在說明文檔上

輸出語法

1.調(diào)用彈出框功能alert('Hello world');

2.調(diào)用對話框功能prompt('請輸入你的名字');

3. 確認(rèn)框confirm('Are you sure?');

4. 向頁面輸入對應(yīng)的值document.write('歡迎光臨');

5. 向控制臺輸出日志console.log('我是出現(xiàn)在控制臺 ,一般用于后期調(diào)試代碼');

數(shù)據(jù)類型

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

Number:數(shù)字類型

轉(zhuǎn)換為數(shù)字類型:

1.parseInt();將可以轉(zhuǎn)化的其他類型的數(shù)據(jù)的小數(shù)點前的轉(zhuǎn)化為數(shù)字(整數(shù)),如果內(nèi)部包含其他字符,則轉(zhuǎn)化第一個非數(shù)字類型字符前的數(shù)字。

2.parseFloat();將可以轉(zhuǎn)化的其他類型的數(shù)據(jù)轉(zhuǎn)化為數(shù)字(小數(shù)),如果內(nèi)部包含其他字符,則轉(zhuǎn)化第一個非數(shù)字類型字符前的數(shù)字。

3.Number();轉(zhuǎn)化之前要先掃描一下當(dāng)前的數(shù)據(jù),如果包含不是數(shù)字類型的字符,則轉(zhuǎn)化結(jié)果為NaN。如果全是數(shù)字類型的字符,則轉(zhuǎn)化為整數(shù)

4.黑科技(隱式轉(zhuǎn)換):在數(shù)據(jù)前添加一個“+”


String:字符串類型

轉(zhuǎn)化為字符串

1.數(shù)據(jù).toString();nunll和undefined不能轉(zhuǎn)化

2.String(數(shù)據(jù));

????null轉(zhuǎn)化結(jié)果為null

????undefined轉(zhuǎn)化結(jié)果為undefined

3.數(shù)據(jù)+“ ”;

一個字符串和任何一個數(shù)據(jù)相加,其結(jié)果都是字符串

null:空值,賦值給變量可用于清空該變量

undefined:只聲明而未賦值的變量,默認(rèn)值為undefined

boolean:布爾類型

轉(zhuǎn)化為布爾類型

轉(zhuǎn)化為false的值有:0 null undefined “ ” false 不等價的表達(dá)式 NaN

為什么要進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換

不同的數(shù)據(jù)類型的數(shù)據(jù)在進(jìn)行運算時,產(chǎn)生的結(jié)果也不一樣,為了方便數(shù)據(jù)的運算,必要的時候要進(jìn)行數(shù)據(jù)轉(zhuǎn)換。

復(fù)雜數(shù)據(jù)類型

object

array:數(shù)組

function:函數(shù)

算術(shù)運算符

1.加、減、乘、除、取模

2.加號口訣:數(shù)值相加 字符相連

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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