1.計算機常識
-
計算機只能識別【0和1】
- 比如:開關機指令
- 顯示一段文本
- 顯示一張圖片
計算機所有能識別的指令都是由0和1組成的
計算機中存儲和操作的數據都是由0和1組成的
-
2.計算機語言
- 機器語言
- 所有的代碼里面只有0和1,0表示不加電,1表示加電
- 優點:直接對硬件產生作用,程序執行效率非常高
- 缺點:指令有多又難記、可讀性差、無可移植性
- 匯編語言
- 符號化的機器語言,用一個符號(英文單詞、數字)來代表一條機器指令
- 優點:直接對硬件產生作用,程序的執行效率非常高、可讀性“稍好”
- 高級語言
- 非常接近自然語言,語法和結構類似于普通英語
- 優點:簡單、易懂、易于理解、遠離對硬件的直接操作、有可移植性
- 缺點:有些高級語言寫出的程序執行效率并不高
- 對比(利用3種類型語言編寫1+1)
- 機器語言
- 10111000 00000001 00000000 00000101 00000001 00000000
- 匯編語言
- MOV AX,1ADD AX,1
- 高級語言
- 1 + 1
- 機器語言
- 高級語言最終都會翻譯成機器語言【0和1】,以便于計算器執行
3.JavaScript簡單了解
- JavaScript是高級語言
- JavaScript是編程語言、是一門弱語言
- 作用:主要作用就是用來實現網頁中的各種功能,以及制作酷炫的網頁特效
- 本質都是控制網頁中的html和CSS來完成的
- 比如:輪播圖、鼠標移動到某個位置出現動畫等效果
- Tab選項卡
- 表單驗證
4.發展史
- 布蘭登·艾奇(Brendan Eich,1961年~),1995年在網景公司,發明的JavaScript。
- 一開始叫做LiveScript,后來改名為JavaScript。
- 很多人問它和java是什么關系?
- 如同“雷鋒”和“雷峰塔”的關系。
- “北大”和“北大青鳥”的關系。
- “周杰”和“周杰倫”的關系
- 同時期還有其他的網頁語言,比如VBScript、JScript等等,但是后來都被JavaScript打敗,所以現在的瀏覽器中,只運行一種腳本語言就是JavaScript。
5.JavaScript的標準
- 首先一門語言問什么有標準?不指定標準會怎么樣?
- 拿B語言為例:
- long long ago,有一門語言叫【B語言】,在當時很火、很牛逼,然而因為沒有制定標準:不同的公司為了滿足自己的應用,對B語言進行改造、重寫;導致B語言后來無法統一,最后走向了落寞,直至死亡。
- 后來又出現了【C語言】,為了重蹈【B語言】覆轍,美國國家標準局(ANSI)成立了一個委員會,專門制定了【C語言】的標準:比如“C89、C99”等等……
- 【C語言才有我們今天的發展和用處】
- 那么javaScript的標準是由誰來指定的呢?
- European Computer Manufacturers Association。簡稱【ECMA】,翻譯為【歐洲計算機制造商協會】。
- 總結:JavaScript是由公司開發而成的,歐洲的這個ECMA的組織,制定了JavaScript的標準,取名為ECMAScript。
- 補充:簡單來說ECMAScript不是一門語言,而是一個標準。
6.JavaScript的【發展歷程】
- 前些年之前,JavaScript被認為“牛皮鮮”,用來制作頁面上的廣告,彈窗、漂浮的廣告。就是JavaScript開發的。以至于瀏覽器就推出了屏蔽廣告功能。
- 2004年JavaScript命運開始改變了,那一年谷歌公司,開始帶頭使用Ajax技術了,Ajax技術就是JavaScript的一個應用。并且,那時候人們逐漸開始提升用戶體驗了。
- 2007年喬布斯發布了iPhone,這一年開始,用戶就多了上網的途徑,就是用移動設備上網。JavaScript在移動頁面中,也是不可或缺的。并且這一年,互聯網開始標準化,按照W3C規則三層分離,人們越來越重視JavaScript了。
- 2010年的時候,HTML5推出Canvas(畫布),工程師可以在Canvas上進行游戲制作,利用的就是JavaScript。
- 2011年,Node.js誕生,使JavaScript能夠開發服務器程序了。
- 總而言之:應用越來越廣泛,前景越來越牛逼。【被評為對初學者最友好的語言】;
如何來學習一門編程語言?
一:先學習基礎語法
- 死記硬背,沒有為什么!都是ECMA規定的。
- 比如定義一個變量【var a = 99】
- 聲明一個函數【function 函數名稱(){}】
- 標識符的命名規范:【必須由字母、數字、下環線和$組成】
一句話【烏龜的屁股“規定”】就是【背】
二:在學習基本思想
- 比如:
- 【計數器思想】
- 【累加思想】
- 【排他思想】
- 【選擇排序】
- 【冒泡排序】
- 【折半查找】
- 【節流思想】
- 這些思想多數都是長期開發中,程序員找出的規律,利用這種規律能更快速的解決一系列【相似】的問題
- 通過不斷的敲代碼,在平時學習和以后的工作中不斷積累,遇到的問題多,解決問題的能力就越強【只有時間才能成就大神】。。。
學習一門編程語言的基本順序
<a href="#one">第一:標識符 </a>##
<a href="#two">第二:常量</a>
<a href="#three">第三:變量</a>
<a href="#four">第四:運算符</a>
<a href="#five">第五:數據類型</a>
流程控制結構
<a href="#seven">第六:流程控制結構之【選擇結構】</a>
<a href="#eight">第七:流程控制結構之【循環結構】</a>
<a href="#nine">第八:函數</a>##
<a href="#ten">第九:變量的作用域</a>##
<h2 id="one">標識符</h2>
1.什么是標識符?
-
現實生活中的標識符
-
2.什么是程序中的標識符?
- 就是程序員為了標識某個【變量、函數、標簽】而給他們做標記時候起的“名字”:就是標識符
-
3.標識符的作用?
- 跟人類的名字差不多,為了區分每個人,就在每個出生的時候起了個名字
- 我們在學習選擇器中的class選擇器或者id選擇器的時候,給標簽的class或者id起名子一樣.
- 比如
<p class="one" id="param"></p>
-
4.標識符命名規則【死記硬背】
- 1.只能由26個英文字母的大小寫、10個阿拉伯數字(0~9)、下滑線和$符號組成
- 2.嚴格區分大小寫:比如: a和 A是兩個不同的標識符
- 3.不能以數字開頭
- 4.不能和關鍵字相同
- 5.不能是ECMAScript保留字(abstract boolean、byte、char、class、const、debugger、double、enum、export、extends、final、float、goto、implements、i、port、intnterface、long、native、package、private、protected、public、short、static、super、synchronized、throws、t、ansient、volatile)
練習:一下那些不符合標識符的命名規則
<font size="6px">abc123</font>
<font size="6px">c123</font>
<font size="6px">123name</font>
<font size="6px">c.123</font>
<font size="6px">no</font>
<font size="6px">_</font>
<font size="6px">_123</font>
<font size="6px">c_1888</font>
<font size="6px">a*123</font>
<font size="6px">c#123</font>
<font size="6px">$</font>
<font size="6px">class</font>
<font size="6px">goto</font>
<font size="6px">long</font>
- 5.標識符的命名規范
- 比如:人出生的時候【狗蛋、狗剩、二狗】
- 起一個有意義的名字,能夠提高代碼的可讀性.
- 表示年齡:age;表示姓名:name;表示數字number;
- 多個單詞遵循【駝峰命名法】
-
什么是駝峰?就是一種比喻:
- userName;passWorld;sendMessege......
- 規則:除第一個單詞外,其他的單詞首字母都大寫
<h2 id="two">常量</h2>
- 什么是常量?
- 表示一些固定的數據,也就是不能改變的數據
- 比如:1、2、3、4、56、77、88......
- 開發中的常量:
- 手機的型號
- 手機屏幕的寬高
- 同一臺電腦的分辨率
- 用戶實名認證的身份證號......
- 就是一些固定不變的量
<h2 id="three">變量</h2>
- 什么是變量?
- 表示的數據是可以經常修改的,當一個數據的值需要經常改變或者不確定時,就應該用變量來表示.
- 比如:【游戲的積分】【人的年齡】
- 作用:就是用來【存儲數據的】
- 如何在js中聲明一個變量?【掌握】
- 使用 var 關鍵詞來聲明變量(該變量是空的【它沒有值】)如需向變量賦值,請使用等號)【稱之為:先定義后初始化】
- 也可以在聲明變量時對其賦值【稱之為:定義的同時進行初始化】
- 一條語句聲明多個變量 【var name="longGe", age=27, job="CEO";】
- 注意點:
- 1.只聲明未定義的變量值為:undefined【只需要知道它是一個數據類型即可】
- 2.變量里面永遠只能保存一個值【后一個會把前一個覆蓋掉】;
<h2 id="four">運算符</h2>
1.算數運算符
- 概念:算術運算符用于執行變量或值之間的算術運算
- 算數運算符有:【+】【-】【*】【/】【%(求余數:保留整數)】【++】【--】
2.賦值運算符
- 概念:賦值運算符用于給js變量賦值
- 賦值運算符有:【=】【+=】【-=】【*=】【/=】【%=】
3.關系運算符(比較運算符)
- 概念:測定變量或值是否相等,或者誰大誰小。
- <h2>其結果只有兩個false和true</h2>
- 關系運算符有:【==】【===】【!=】【>】【<】【>=】【<=】
4.邏輯運算符
- 概念:邏輯運算符用于測定變量或值之間的邏輯。
- 邏輯運算符有:【&&】【||】【!】
- 邏輯運算符號短路現象
5.三目運算符(三元運算符)
- 作用:一般用于給變量賦值
- 舉例: c = a > b ? 88 : 99
- 口訣(口訣a大于b嗎?如果大于等于88、否則等于99)
<h2 id="five">五大數據類型</h2>
- 1.數值型
- 比如:2,8,99,34.8,66.662......都是數值型
- 2.字符串類型
- 可以理解為【單引號或者雙引號引起來的就是字符串】
- 其他語言中【單引號的代表字符,而在js中沒有字符這一概念,所有單引號和雙引號都是代表字符串】
- 比如"jack" 'rose' "name" '張三' "李四"
- 3.布爾類型
- 取值只有兩個:false 和 true
- 4.null【先了解】
- 一般由于清空對象
- 5.udefined
- 只定義未賦值的變量其值為【undefined】
- 6.如何判斷一個數據是什么類型?
- typeof函數
示例
示例
數據類型轉換
- 1.prompt()函數的使用(接收用戶的輸入)
- 注意點:無論用戶輸入的是什么,返回的都是字符串類型。
- 2.字符串轉換成數值型:
- parseInt()函數
- parseFloat()函數
- 3.彈出警告框
- alert()函數
- 練習:利用三目運算符,求出用戶輸入的三個整數,利用alert函數,彈出最大值
練習