初識 JavaScript 第一篇及解釋器和編譯器

?JavaScript 基礎(chǔ)第一篇 —— 變量

回顧

整個上一章節(jié)我們學(xué)習(xí)了布局的三篇,在布局中學(xué)習(xí)了流式布局和 flex 布局以及最后的 rem 布局,這些都是和布局相關(guān)的,因為移動端的流行,所以免不了需要前端中去兼容各種終端。故此方式還是挺多,各顯神通。可以根據(jù)顯示的業(yè)務(wù)場景或者自己團隊比較擅長的布局方式去寫。

布局學(xué)完之后,今天我們就進入了前端中相當重要的一個知識點,也就是:JavaScript,通常稱之為:js。也是前端中非常重要非常好玩的一環(huán),在往后的工作中寫業(yè)務(wù)邏輯都和 js 是密不可分的!所以基礎(chǔ)一定要扎實。

計算機基礎(chǔ)

在學(xué)習(xí) js 之前我們可以大概的了解一下計算機的一些基礎(chǔ)。了解一下編程語言標記語言的區(qū)別和內(nèi)存等。

編程語言和標記語言

編程語言:有很強的邏輯和行為能力,在編程語言里,你會看到很多判斷的邏輯,例如:if else、for、while 等邏輯行為的指令,這些都是屬于主動的。

標記語言:不用向計算機發(fā)出指令,常用于格式化和鏈接,標記語言的存在是被用讀取的它是被動的。

計算機組成及內(nèi)存

計算機是由硬件和軟件組成的,硬件一般是內(nèi)存、鼠標、鍵盤、cpu、硬盤等。

graph TD? ?java學(xué)習(xí)交流737251827

計算機 --> 硬件

硬件 --> 輸入設(shè)備 --> 鼠標

硬件 --> 輸出設(shè)備 --> 顯示器

硬件 --> CPU --> 負責(zé)數(shù)據(jù)處理和運算

硬件 --> 硬盤 --> 負責(zé)存儲永久數(shù)據(jù)

硬件 --> 內(nèi)存--> 負責(zé)存儲臨時數(shù)據(jù)

計算機 --> 軟件

軟件 --> 系統(tǒng)軟件 --> Linux

軟件 --> 應(yīng)用軟件 --> 微信


內(nèi)存:內(nèi)存的出現(xiàn)極大的改善了數(shù)據(jù)讀取的速度。很早之前因為 cpu 計算能力太快而硬盤讀取數(shù)據(jù)太慢,浪費了時間 所以出現(xiàn)了內(nèi)存來保存運行的數(shù)據(jù)。

關(guān)于這些你暫時可以不用理解,先作為了解記住就好。往后的學(xué)習(xí)越多你會發(fā)現(xiàn)基礎(chǔ)能力越欠缺。

瀏覽器組成部分

瀏覽器分為兩部分組成,渲染引擎js 引擎

渲染引擎:用來解析 HTML 與 CSS,俗稱內(nèi)核,比如 Chrome 瀏覽器的 blink,老版的 webkit。

js 引擎:也稱為 JS 解釋器,用來讀取網(wǎng)頁中的 JavaScript 代碼,對其處理后運行,比如 Chrome 瀏覽器的 V8

首先需要注意的是:瀏覽器本身不會執(zhí)行 JS 代碼,而是通過內(nèi)置 JavaScript 引擎(解釋器)來執(zhí)行 JS 代碼,JS 引擎執(zhí)行時逐行解釋每一句源碼(轉(zhuǎn)換為機器語言),然后通過由計算機去執(zhí)行,所以 JavaScript 語言歸為腳本語言,會逐行解釋執(zhí)行

js 組成部分

ECMAScript(js 語法)

ECMAScript:它規(guī)定了 JS 的編程語法和基礎(chǔ)核心知識,相當于是一個制定 js 的標準,也是所有瀏覽器廠商共同遵守的一套 JS 語法工業(yè)標準。你所熟悉的 ES6、ES5 都是出自 ECMAScript 的。

DOM

DOM:頁面文檔對象模型。它是一種與平臺和語言無關(guān)的應(yīng)用程序接口。這里就暫且先記住就好,在未來會學(xué)習(xí)很多 DOM 的 API。

BOM

BOM:瀏覽器對象模型。瀏覽器窗口的 window 對象是 BOM 的頂層對象,其他對象都是該對象的子對象。

注意:剛開始學(xué)你會感覺到這三個組成部分比較抽象。比較難懂,沒關(guān)系慢慢來,基礎(chǔ) js 部分學(xué)習(xí)完之后,我們會逐步的學(xué)習(xí) DOM 和 BOM 的 API 方法

初識 js

js 初體驗

和 css 引入的方式一樣,js 也會有三種的引入方式,分別為:行內(nèi)、內(nèi)嵌、外部。其中我們一般寫代碼用的是內(nèi)嵌。一般用第三方庫也會有用到外聯(lián)這樣的,但是如果是外聯(lián)的話 <script></script> 中間的不允許寫代碼的。

注釋

單行注釋: //

多行注釋:/**/

? <script>? ?

// 兩個斜杠 表示 單行注釋? ?

/*? ? ?

表示多行注釋? ? 我再來一行?

? */?

</script>


輸入和輸出語句

alert(msg) —— 瀏覽器彈出警示框

console.log(msg) —— 瀏覽器控制臺打印輸出信息

prompt(msg) —— 瀏覽器彈出輸入框,用戶可以輸入

// 這是一個輸入框prompt('無言獨上西樓 下一句')

// 瀏覽器控制臺打印console.log('11111')

// 瀏覽器彈出警示框alert('月如鉤')


js 變量

變量概述:變量就是從內(nèi)存中申請一個空間來存放數(shù)據(jù)

變量的使用:用var聲明變量,計算機會自動的分配空間給程序

賦值:var myName = 'stk'

注意:如果一個值被重新賦值之后,它原有的值會被覆蓋,變量值將以最后一次的賦值為準

聲明多個變量:

// 聲明多個變量

var age = 18,? ?

name = 'stk',? ?

music = '晴天'


如果只聲明不賦值的話會出現(xiàn):undefined

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

-數(shù)據(jù)類型簡介:在計算機中不同的數(shù)據(jù)類型,存儲的空間是不同的

-簡單數(shù)據(jù)類型:

Number:數(shù)字類型(整型、浮點型)

MAX_VALUE —— 表示數(shù)據(jù)的最大值 num.MAX_VALUE

MIN_VALUE —— 表示數(shù)據(jù)的最小值 num.MIN_VALUE

isNaN() —— 判斷非數(shù)字。如果返回的是 false 表示是數(shù)字,如果返回的是 true 表示不是數(shù)字 用法:console.log(isNaN(12)) —— 返回 false

Boolean:布爾類型(true、false)

String:字符串類型('張三')

注意:任何類型和字符串相加都會變成字符串類型

字符串轉(zhuǎn)義字符

\n : 換行符

\ : 斜杠

' : 單引號

" : 雙引號

\t : tab 縮進

\b : 空格

獲取字符串長度:name.length

undefined:沒有給值,就是為 undefined,例如:var a; 此時輸出 a 會打印 undefined

Null:聲明為空 如果數(shù)字和 undefined 相加會出現(xiàn) NaN,(not a number)

獲取變量數(shù)據(jù)類型

檢測變量是什么類型:typeof

// 聲明一個變量

var num = 10

// 檢測 num 是什么類型

console.log(typeof num)


數(shù)據(jù)類型轉(zhuǎn)換

把一種數(shù)據(jù)類型的變量轉(zhuǎn)換成另一種數(shù)據(jù)類型

-轉(zhuǎn)換字符串類型

toString()—— 轉(zhuǎn)換字符串:var num = 1; alert(num.toString())

String()—— var num = 1; alert(String(num))

加號拼接字符串(重點)—— var num = 1; alert(num + '我是字符串')

-轉(zhuǎn)換數(shù)字類型(重點)

parseInt() 函數(shù)—— parseInt('79') 轉(zhuǎn)換整數(shù)

parseFloat() 函數(shù)—— parseFloat('78.21') 轉(zhuǎn)換小數(shù)

Number() 函數(shù)—— parseFloat('12')

-其他類型轉(zhuǎn)換布爾類型

Boolean() 函數(shù)—— Boolean('True')

注意:代表空、否定的值會被轉(zhuǎn)換為 false,如“”、0、NaN、null、undefined,其余的都是 true

編譯器和解釋器

計算機不能直接理解任何除機器語言之外的語言,所以必須把程序員縮寫的程序語言編譯成機器語言,才能執(zhí)行。程序語言編譯機器語言的工具稱之為:編譯器。

但是編譯器編譯的方式有兩種,一個是編譯、一個是解釋,兩種方式之間的區(qū)別在于編譯的時間不同

編譯型語言:編譯器是在代碼執(zhí)行之前進行編譯,然后生成中間代碼文件

解釋型語言:解釋器是在運行時進行及時解釋,并且立即執(zhí)行(當編譯器以解釋方式運行的時候,也稱之為解釋器)

一般 例如 java 這類語言稱之為:編譯型語言,而我們所學(xué)習(xí)的 js 稱之為:解釋型語言。

這一篇內(nèi)容還是相當多的,也算是一個 js 的入門基礎(chǔ),基礎(chǔ)學(xué)來總是比較枯燥無味的,所以需要堅持和練習(xí)?!皶x百遍,其意自見”。這篇基礎(chǔ)就完了,有什么問題歡迎隨時留言~

?著作權(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)容