整理自撩課學(xué)院www.itlike.com
一众旗、JavaScript是什么
1)編程語言
- 編程語言是人和計算機(jī)交流的工具陵叽,程序員通過編程語言基于電腦去開發(fā)一款款應(yīng)用和軟件
- 編程語言大致可以分為以下幾類 :機(jī)器語言牙咏、匯編語言智玻、高級語言
- JavaScript就是一門編程語言证膨,屬于高級語言萨西。是前端開發(fā)的一門腳本語言<解釋型語言>
2)解釋型語言
程序執(zhí)行之前有鹿,不需要編譯就可以直接運(yùn)行,在運(yùn)行時邊解析邊執(zhí)行的語言
代表:Python谎脯、JavaScript葱跋、PHP、Ruby
- 圖示.png
3)編譯型語言
- 程序執(zhí)行之前源梭,需要一個專門的編譯過程娱俺,把程序編譯成為機(jī)器語言的文件,比如ipa废麻、exe荠卷、jar文件
- 代表:C/C++、Pascal烛愧、Object-C油宜、Swift
圖示.png
4)總結(jié)
- 編譯型語言由于程序執(zhí)行速度快,同等條件下對系統(tǒng)要求較低怜姿,因此像開發(fā)操作系統(tǒng)慎冤、大型應(yīng)用程序、數(shù)據(jù)庫系統(tǒng)等時都采用它
- 解釋性語言跨平臺性好沧卢,一些網(wǎng)頁腳本粪薛、服務(wù)器腳本及輔助開發(fā)接口這樣的對速度要求不高、對不同系統(tǒng)平臺間的兼容性有一定要求的程序則通常使用
- JavaScript是一門高級解釋型腳本語言
二搏恤、JavaScript的前世今生
1)JavaScript起源于Netscape公司的LiveScript語言
1994 年违寿,網(wǎng)景公司(NetScape)發(fā)布了Navigator瀏覽器0.9版, 這是歷史上第一個比較成熟的瀏覽器熟空,引起了廣泛關(guān)注藤巢。但是,這個版本的瀏覽器只能用來瀏覽息罗,不具備與訪問者互動的能力掂咒。網(wǎng)景公司急需要一門網(wǎng)頁腳本語言,使得瀏覽器可以與網(wǎng)頁進(jìn)行互動
2)后來Netscape在與Sun合作之后將其改名為JavaScript
- JavaScript最初是受Java的啟發(fā)而開始設(shè)計的迈喉,目的之一就是“看上去像Java”绍刮,因此語法上有類似之處,一些名稱和命名規(guī)范也借自Java
- JavaScript與Java名稱上的近似挨摸,是當(dāng)時Netscape為了營銷考慮與Sun微系統(tǒng)達(dá)成協(xié)議的結(jié)果
3)發(fā)展史
- 1995 誕生 ----> LiveScript
- 1997 發(fā)布ECMAScript 1.0
- 1998 發(fā)布ECMAScript 2.0
- 1999 發(fā)布ECMAScript 3.0
- 2007 發(fā)布ECMAScript 4.0
- 2009 發(fā)布ECMAScript 5.0
- 2015 發(fā)布ECMAScript 6.0
三孩革、JavaScript的組成
圖示.png
2)ECMAScript
- ECMA 歐洲計算機(jī)制造聯(lián)合會
- ECMAScript是ECMA制定的腳本語言的標(biāo)準(zhǔn), 規(guī)定了一種腳本語言實現(xiàn)應(yīng)該包含的基本內(nèi)容
- JavaScript是腳本語言,所以必須遵守ECMAScript標(biāo)準(zhǔn)得运,包含ECMAScript標(biāo)準(zhǔn)中規(guī)定的基本內(nèi)容
3)BOM
- 瀏覽器對象模型
- 通過BOM可以操作瀏覽器窗口膝蜈,比如:彈出框、控制瀏覽器跳轉(zhuǎn)熔掺、獲取分辨率等
4)DOM
- 文檔對象模型
- DOM可以把HTML看做是文檔樹饱搏,通過DOM提供的API可以對樹上的節(jié)點(diǎn)進(jìn)行操作
四、JS置逻、HTML推沸、CSS三者關(guān)系
1)HTML:提供網(wǎng)頁的結(jié)構(gòu),以及網(wǎng)頁中的內(nèi)容
2)CSS:美化網(wǎng)頁券坞,2D/3D過渡鬓催,動畫等
3)JavaScript: 控制網(wǎng)頁內(nèi)容,給網(wǎng)頁增加動態(tài)的效果
五报慕、JS基礎(chǔ)語法
1)字面量深浮、變量、常量
1)概念
- 字面量:字面量就是一個值眠冈,比如變量的值或者常量的值
- 變 量:定義完成后飞苇,可以修改的數(shù)據(jù)
- 常 量:定義完成后,固定且不能改變的數(shù)據(jù)
2)區(qū)別 - 常量與變量的區(qū)別:
常量與變量的存儲方式是一樣的蜗顽,只不過常量必須要有初始值布卡,而且值不允許被修改,而變量可以無初始值雇盖,且可以多次賦值忿等。 - 常量與字面量的區(qū)別:
常量與字面量均不會被改變,常量為存儲數(shù)據(jù)的容器崔挖,而字面量為等號右側(cè)的值贸街,字面量是由字符串庵寞,數(shù)字等構(gòu)成的字符串或數(shù)值。
2)數(shù)據(jù)類型
1)概念
- 程序在運(yùn)行過程中會產(chǎn)生各種各樣的臨時數(shù)據(jù), 為了方便數(shù)據(jù)的運(yùn)算和操作, JavaScript對這些數(shù)據(jù)進(jìn)行了分類, 提供了豐富的數(shù)據(jù)類型薛匪;
- 數(shù)據(jù)類型劃分
- 簡單數(shù)據(jù)類型:Number捐川、String、Boolean逸尖、Undefined古沥、Null
- 引用(復(fù)雜)數(shù)據(jù)類型:Object
2)簡單數(shù)據(jù)類型
2.1 Number
- 在JS中所有的數(shù)值都是Number類型(整數(shù)和小數(shù))
- 由于內(nèi)存的限制,ECMAScript 并不能保存世界上所有的數(shù)值
- NaN (Not A Number)娇跟。JS中當(dāng)對數(shù)值進(jìn)行計算時沒有結(jié)果返回岩齿,則返回NaN
- JS中整數(shù)的運(yùn)算可以保證精確的結(jié)果。而浮點(diǎn)數(shù)的運(yùn)算可能得到一個不精確的結(jié)果
2.2 String
- 字符串由單引號或雙引號括起
- 不能一單一雙苞俘,必須成對出現(xiàn) 盹沈。相同引號不能嵌套,不同引號可以嵌套苗胀。給變量加上引號, 那么變量將變?yōu)橐粋€常量
2.3 Boolean
- 布爾型也被稱為邏輯值類型或者真假值類型襟诸, 只能夠取真(true)和假(false)兩種數(shù)值
- 任何非零數(shù)值都是true, 包括正負(fù)無窮大, 只有0和NaN是false
- 任何非空字符串都是true, 只有空字符串是false
- 任何對象都是true, 只有null和undefined是false
2.4 Null和Undefined
- Undefined是一種比較特殊的類型,表示變量未賦值基协,這種類型只有一種值就是undefined歌亲。undefined是Undefined類型的字面量
- Null 類型也是只有一個值的數(shù)據(jù)類型,這個特殊的值是 null澜驮。從語義上看null表示的是一個空的對象陷揪,所以使用typeof檢查null會返回一個Object
- undefined值實際上是由null值衍生出來的,所以如果比較undefined和null是否相等杂穷,會返回true
3)數(shù)據(jù)類型轉(zhuǎn)化
3.1 轉(zhuǎn)換成字符串類型
1)toString()
- 該方法不會影響到原變量悍缠,它會將轉(zhuǎn)換的結(jié)果返回
- 數(shù)值類型調(diào)用toString()方法,可以攜帶一個參數(shù)耐量,輸出對應(yīng)進(jìn)制的值
- null和undefined沒有toString()方法飞蚓,調(diào)用則報錯
2)String()
- 有些值沒有toString()方法,此時可以使用String()廊蜒。比如:null和undefined
- 對于Number和Boolean類型的數(shù)據(jù)趴拧,String()相當(dāng)于調(diào)用toString()方法
3)拼接字符串方式
- 任何數(shù)據(jù)和 + " " 連接到一起都會轉(zhuǎn)換為字符串
3.2 將其它類型轉(zhuǎn)換為Number類型
1)字符串轉(zhuǎn)數(shù)字
- 如果是純數(shù)字的字符串,則直接將其轉(zhuǎn)換為數(shù)字
- 如果字符串為空或者是一個全是空格的字符串山叮,則轉(zhuǎn)換為0
- 如果字符串中有非數(shù)字的內(nèi)容著榴,則轉(zhuǎn)換為NaN
2)布爾轉(zhuǎn)數(shù)字
true 轉(zhuǎn)成 1,false 轉(zhuǎn)成 0
3)null和undefined轉(zhuǎn)數(shù)字
null轉(zhuǎn)數(shù)字為0屁倔。undefined轉(zhuǎn)數(shù)字為NaN