js核心技術(shù)—語法篇

整理自撩課學(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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末脑又,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌问麸,老刑警劉巖往衷,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異口叙,居然都是意外死亡炼绘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進(jìn)店門妄田,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人驮捍,你說我怎么就攤上這事疟呐。” “怎么了东且?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵启具,是天一觀的道長。 經(jīng)常有香客問我珊泳,道長鲁冯,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任色查,我火速辦了婚禮薯演,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘秧了。我一直安慰自己跨扮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布验毡。 她就那樣靜靜地躺著衡创,像睡著了一般。 火紅的嫁衣襯著肌膚如雪晶通。 梳的紋絲不亂的頭發(fā)上璃氢,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天,我揣著相機(jī)與錄音狮辽,去河邊找鬼一也。 笑死,一個胖子當(dāng)著我的面吹牛隘竭,可吹牛的內(nèi)容都是我干的塘秦。 我是一名探鬼主播,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼动看,長吁一口氣:“原來是場噩夢啊……” “哼尊剔!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起菱皆,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤须误,失蹤者是張志新(化名)和其女友劉穎挨稿,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體京痢,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡奶甘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了祭椰。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片臭家。...
    茶點(diǎn)故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖方淤,靈堂內(nèi)的尸體忽然破棺而出钉赁,到底是詐尸還是另有隱情,我是刑警寧澤携茂,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布你踩,位于F島的核電站,受9級特大地震影響讳苦,放射性物質(zhì)發(fā)生泄漏带膜。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一鸳谜、第九天 我趴在偏房一處隱蔽的房頂上張望膝藕。 院中可真熱鬧,春花似錦卿堂、人聲如沸束莫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽览绿。三九已至,卻和暖如春穗慕,著一層夾襖步出監(jiān)牢的瞬間饿敲,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工逛绵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留怀各,地道東北人。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓术浪,卻偏偏與公主長得像瓢对,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子胰苏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容