初識javascript小結(jié)

引導(dǎo)

學(xué)習(xí)目標(biāo):

節(jié)數(shù) 知識點 要求
第一節(jié)(js的前世今生) js簡介 了解
第二節(jié)(js的語法結(jié)構(gòu)) 頁面引入js的幾種方式 了解
js輸出的幾種方式 了解
js的語法規(guī)則 了解
第三節(jié)(Javascript名詞解釋) 數(shù)字字面量 掌握
字符串字面量 掌握
常量 理解
第四節(jié)(Javascript變量命名規(guī)則(重點)) 聲明變量 掌握
變量提升 掌握
變量的命名規(guī)則 了解
第五節(jié)(Javascript數(shù)據(jù)類型(重點)) 基本數(shù)據(jù)類型 掌握
第六節(jié)(Javascript運算符(重點)) 邏輯運算符 掌握

什么是語言?

什么是計算機(jī)語言?

機(jī)器語言,匯編語言,高級語言。

少兒編程語言

計算機(jī)存儲單位

計算機(jī)數(shù)據(jù)存儲是以“字節(jié)”(Byte)為單位,數(shù)據(jù)傳輸是以大多是以“位”(bit,又名“比特”)為單位,一個位就代表一個0或1(即二進(jìn)制),每8個位(bit,簡寫為b)組成一個字節(jié)(Byte,簡寫為B),是最小一級的信息單位。

1B(Byte字節(jié))=8bit,

1KB (Kilobyte 千字節(jié))=1024B,

1MB (Mega byte 兆字節(jié) 簡稱“兆”)=1024KB,

1GB (Giga byte 吉字節(jié) 又稱“千兆”)=1024MB,

1TB (Tera byte 萬億字節(jié) 太字節(jié))=1024GB,其中1024=2^10 ( 2 的10次方),

1PB(Peta byte 千萬億字節(jié) 拍字節(jié))=1024TB,

1EB(Exa byte 百億億字節(jié) 艾字節(jié))=1024PB,

1ZB (Zetta byte 十萬億億字節(jié) 澤字節(jié))= 1024 EB,

1YB (Yotta byte 一億億億字節(jié) 堯字節(jié))= 1024 ZB,

1BB (Bronto byte 一千億億億字節(jié))= 1024 YB,

Javascript簡介

js的前世今生

image

在這里插入圖片描述

備注94通過微信
在這里插入圖片描述

JavaScript一種直譯式腳本語言,是一種動態(tài)類型、弱類型、基于原型的語言,最早是在HTML網(wǎng)頁上使用,用來給HTML網(wǎng)頁增加動態(tài)功能。

動態(tài):在運行時確定數(shù)據(jù)類型。變量使用之前不需要類型聲明,通常變量的類型是被賦值的那個值的類型。

弱類:計算時可以不同類型之間對使用者透明地隱式轉(zhuǎn)換,即使類型不正確,也能通過隱式轉(zhuǎn)換來得到正確的類型。

原型:新對象繼承對象(作為模版),將自身的屬性共享給新對象,模版對象稱為原型。這樣新對象實例化后不但可以享有自己創(chuàng)建時和運行時定義的屬性,而且可以享有原型對象的屬性。

腳本語言:不需要編譯器編譯。

在1995年時,由Netscape公司的布蘭登·艾奇(Brendan Eich,1961年~),JavaScript的發(fā)明人,在網(wǎng)景導(dǎo)航者瀏覽器(Navigator)上首次設(shè)計實現(xiàn)而成。

由于網(wǎng)景公司希望能在靜態(tài)HTML頁面上添加一些動態(tài)效果,于是叫Brendan Eich這哥們在兩周之內(nèi)設(shè)計出了JavaScript語言。你沒看錯,這哥們只用了10天時間。

為什么起名叫JavaScript?原因是當(dāng)時Java語言非常紅火,所以網(wǎng)景公司希望借Java的名氣來推廣,但事實上JavaScript除了語法上有點像Java,其他部分基本上沒啥關(guān)系。

Netscape在最初將其腳本語言命名為LiveScript,后來Netscape在與Sun合作之后將其改名為JavaScript。

Javascript的三個主要組成部分是:ECMAScript(核心),DOM(文檔對象模型),BOM(瀏覽器對象模型)。

和Java區(qū)別

js的特點

1、是一種解釋性腳本語言(代碼不進(jìn)行預(yù)編譯)。

2、主要用來向HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用)頁面添加交互行為。

3、可以直接嵌入HTML頁面,但寫成單獨的js文件有利于結(jié)構(gòu)和行為的分離。

4、跨平臺特性,在絕大多數(shù)瀏覽器的支持下,可以在多種平臺下運行(如Windows、Linux、Mac、Android、iOS等

5、它是單線程編程語言

js在網(wǎng)頁中的應(yīng)用

表單的驗證,放大鏡,添加購物車等

ECMAScript 和 JavaScript 的關(guān)系

? 1996 年 11 月,JavaScript 的創(chuàng)造者Netscape公司,決定將 JavaScript 提交給標(biāo)準(zhǔn)化組織 ECMA,希望這種語言能夠成為國際標(biāo)準(zhǔn)。

? 因為網(wǎng)景開發(fā)了JavaScript,一年后微軟模仿JavaScript開發(fā)了JScript,為了讓JavaScript成為全球標(biāo)準(zhǔn),幾個公司聯(lián)合ECMA(European Computer Manufacturers Association)組織定制了JavaScript語言的標(biāo)準(zhǔn),被稱為ECMAScript標(biāo)準(zhǔn)

所以簡單說來就是,ECMAScript是一種語言標(biāo)準(zhǔn),而JavaScript是網(wǎng)景公司對ECMAScript標(biāo)準(zhǔn)的一種實現(xiàn)。那為什么不直接把JavaScript定為標(biāo)準(zhǔn)呢?因為JavaScript是網(wǎng)景的注冊商標(biāo)。不過大多數(shù)時候,我們還是用JavaScript這個詞。如果你遇到ECMAScript這個詞,簡單把它替換為JavaScript就行了。

由于JavaScript的標(biāo)準(zhǔn)——ECMAScript在不斷發(fā)展,最新版ECMAScript 6標(biāo)準(zhǔn)(簡稱ES6,有時也被稱為ES2015)已經(jīng)在2015年6月正式發(fā)布了,所以,講到JavaScript的版本,實際上就是說它實現(xiàn)了ECMAScript標(biāo)準(zhǔn)的哪個版本。

Javascript發(fā)展歷史

1995年12月4日 Netscape公司與Sun公司聯(lián)合發(fā)布了JavaScript語言。

1996年03月 Navigator 2.0瀏覽器正式內(nèi)置了JavaScript腳本語言。

1997年07月 ECMAScript 1.0發(fā)布。

1998年06月 ECMAScript 2.0版發(fā)布。

1999年12月 ECMAScript 3.0版發(fā)布,成為JavaScript的通行標(biāo)準(zhǔn),得到了廣泛支持。

2007年10月 ECMAScript 4.0版草案發(fā)布

2009年12月 ECMAScript 5.0版正式發(fā)布

2015年06月 ECMAScript 6正式發(fā)布

各個主要瀏覽器內(nèi)核和引擎

? 一個完整的瀏覽器包含瀏覽器內(nèi)核和瀏覽器的外殼(shell)。瀏覽器核心——內(nèi)核分成兩部分:渲染引擎和js引擎。

? 瀏覽器內(nèi)核主要指的是瀏覽器的渲染引擎,2013 年以前,代表有 Trident(IE),Gecko(firefox),Webkit(Safari chrome 等)以及 Presto(opera)。2013 年以后,谷歌開始研發(fā) blink 引擎,chrome 28 以后開始使用,而 opera 則放棄了自主研發(fā)的 Presto 引擎,投入谷歌懷抱,和谷歌一起研發(fā) blink 引擎,國內(nèi)各種 chrome系的瀏覽器(360、UC、QQ、2345 等等)也紛紛放棄 webkit,投入 blink 的懷抱。

? 2015年微軟推出自己新的瀏覽器,原名叫斯巴達(dá),后改名edge,使用edge引擎

edge瀏覽器仍然使用Chakra引擎

1、IE瀏覽器內(nèi)核:Trident內(nèi)核,也是俗稱的IE內(nèi)核;

2、Chrome瀏覽器內(nèi)核:統(tǒng)稱為Chromium內(nèi)核或Chrome內(nèi)核,以前是Webkit內(nèi)核,現(xiàn)在是Blink內(nèi)核;

3、Firefox瀏覽器內(nèi)核:Gecko內(nèi)核,俗稱Firefox內(nèi)核;

4、Safari瀏覽器內(nèi)核:Webkit內(nèi)核;

5、Opera瀏覽器內(nèi)核:最初是自己的Presto內(nèi)核,后來是Webkit,現(xiàn)在是Blink內(nèi)核;

6、360瀏覽器、獵豹瀏覽器內(nèi)核:IE+Chrome雙內(nèi)核;

7、搜狗、遨游、QQ瀏覽器內(nèi)核:Trident(兼容模式)+Webkit(高速模式);

8、百度瀏覽器、世界之窗內(nèi)核:IE內(nèi)核;

9、2345瀏覽器內(nèi)核:以前是IE內(nèi)核,現(xiàn)在也是IE+Chrome雙內(nèi)核;

常用的IDE介紹

IDE:集成開發(fā)環(huán)境(Integrated Development Environment )

Webstorm,visual studio code,sublime,atom,hbuilder,editplus,nodepad等

js的語法結(jié)構(gòu)

頁面引入js的幾種方式

第一種方式:內(nèi)部方式

第二種方式:外部結(jié)構(gòu)

第三種方式:行內(nèi)方式

js輸出的幾種方式

1、使用 window.alert() 彈出警告框。

2、使用 document.write() 方法將內(nèi)容寫到 HTML 文檔中。

3、使用 innerHTML 寫入到 HTML 元素。

4、使用 console.log() 寫入到瀏覽器的控制臺。

js的語法規(guī)則

1、分號是語句結(jié)束的標(biāo)志,分號不是必須的,我們不建議這樣做,嚴(yán)格來說,語句要加上分號。

2、 js會忽略多個空格和換行。

3、字符集

utf-8:統(tǒng)一國際編碼,兼容各個國家的語言
gb2312/gbk:簡體中文編碼

big5:繁體中文編碼

4、變量區(qū)分大小寫

5、注釋

回顧一下html注釋:

回顧一下css的注釋:

/*內(nèi)容*/

js的注釋語句

單行注釋://內(nèi)容

多行注釋:/*內(nèi)容*/

問:為什么要加注釋?

答:為了方便別人也是為了方便自己。

Javascript名詞解釋

在編程語言中,一般固定值稱為字面量,如 3.14。給變量賦值時,等號右邊都可以認(rèn)為是字面量。英語叫做literals,有些書上叫做直接量。

數(shù)字字面量

25,98.23
var num = 92;

字符串字面量

‘123’,“Hello”

[12,2,3]

常量

什么是常量?

常量:就是其值不能改變的。

怎樣定義一個常量?

const HOST = “l(fā)ocalhost”;

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-E0D0aDmK-1608010648257)(020101JS初識.assets/image-20200808101326346.png)]

[外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來直接上傳(img-IKQtV2pk-1608010648260)(020101JS初識.assets/image-20200808101352692.png)]

const也是塊級作用域

const聲明的常量必須初識化,而let聲明的變量不用

const實際上保證的,并不是變量的值不得改動,而是變量指向的那個內(nèi)存地址所保存的數(shù)據(jù)不得改動。對于簡單類型的數(shù)據(jù)(數(shù)值、字符串、布爾值),值就保存在變量指向的那個內(nèi)存地址,因此等同于常量。但對于復(fù)合類型的數(shù)據(jù)(主要是對象和數(shù)組),變量指向的內(nèi)存地址,保存的只是一個指向?qū)嶋H數(shù)據(jù)的指針,const只能保證這個指針是固定的(即總是指向另一個固定的地址),至于它指向的數(shù)據(jù)結(jié)構(gòu)是不是可變的,就完全不能控制了

Javascript變量命名規(guī)則(重點)

聲明變量

變量是干什么的,是存儲數(shù)據(jù)的,那存儲什么種類數(shù)據(jù)呢?

聲明變量使用關(guān)鍵字:var(variable)

你給它賦什么類型的值,那么這個變量就是什么數(shù)據(jù)類型。

內(nèi)存中堆區(qū)和棧區(qū)

顯式聲明與隱式聲明區(qū)別

JS中變量聲明分顯式聲明和隱式聲明。

var name = 'muzidigbig';//顯式聲明

name = 'muzidigbig';//隱式聲明(為全局對象(window)的一個屬性)

JavaScript 嚴(yán)格模式(use strict)

變量提升

變量一定要先聲明后使用,如果先使用后聲明,js的內(nèi)部機(jī)制自然使變量提升。

let 和var 的區(qū)別

var: variable,它是可變的。

let: 塊作用域。

變量名的命名規(guī)則

變量的命名:變量是由字母、數(shù)字、下劃線、$ 組成,但第一個字符必須是字母或者是下劃線、$開頭。

$不建議使用,它可能會和其他的框架語法沖突,或者是函數(shù)的名字沖突

1、JavaScript語言的標(biāo)識符對大小寫敏感,所以a和A是兩個不同的標(biāo)識符。

2、首字母可以是任意字母以及美元符號和下劃線。剩余可以是任意字母,美元符號,下劃線和數(shù)字

3、不能使用javascript中的關(guān)鍵字(保留字)來命名變量

4、中文也可以聲明變量,不建議使用它。

變量的命名方式

第一種命名:帕斯卡命名(大駝峰式命名

每個單詞的首字符大寫。

例如:UserName。

第二種命名小駝峰式命名

首個單詞的首字母小寫,其他后面單詞的首字母大寫

例如:

例如:userName

第三種命名匈牙利式命名

數(shù)據(jù)類型+單詞(變量名)

Integer+age

var Iage = 25;

String+address

var Saddress = “西安”;

Javascript數(shù)據(jù)類型(重點)

在此基本的數(shù)據(jù)類型的基礎(chǔ)上又增加了一個基本數(shù)據(jù)類型:Symbol,Symbol 是 ES6 引入了一種新的原始數(shù)據(jù)類型,表示獨一無二的值。

打印變量的數(shù)據(jù)類型:typeof

請注意:

NaN 的數(shù)據(jù)類型是 number

數(shù)組(Array)的數(shù)據(jù)類型是 object

日期(Date)的數(shù)據(jù)類型為 object

null 的數(shù)據(jù)類型是 object

未定義變量的數(shù)據(jù)類型為 undefined

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

數(shù)字類型(number)

c 語言中:

int(整數(shù)),float(單精度浮點型),double(雙精度浮點型),char(字符)

string(字符串)。

二進(jìn)制(binary):0b101010101

八進(jìn)制:0o2535

十六進(jìn)制:0x69852

進(jìn)制轉(zhuǎn)換:

toString():十進(jìn)制轉(zhuǎn)換其他的進(jìn)制

parseInt():其他的進(jìn)制轉(zhuǎn)換十進(jìn)制

最大值:MAX_VALUE

最小值:MIN_VALUE

浮點數(shù)不能比較

NaN:Not a Number:不是一個數(shù)值

一些特殊情況(除數(shù)為0,最大值變化)

布爾類型(boolean)

true(真),false(假),都是小寫的。

TRUE,FALSE,True,False:這些都不正確。

字符串類型(string)

字符串:加單引號或者是雙引號

字符串連接:使用的是+

模板字符串:

undefined

typeof undefined

null

typeof null

null == undefined

null和undefined的區(qū)別

1、類型不相等

2、強制類型轉(zhuǎn)換值不一樣

var re1 = Number(undefined);//NaN
var re2 = Number(null);//0

3、比較

null == undefined;//true
null === undefined;//false

引用類型(object)

Javascript運算符(重點)

算術(shù)運算符

+,-,,/,%(求余數(shù)),++,--,*(求冪數(shù)-es7新增)

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

  • 初識javascript 引導(dǎo) 主要內(nèi)容: 學(xué)習(xí)目標(biāo): 節(jié)數(shù)知識點要求 第一節(jié)(js的前世今生)js簡介了解 第二...
    一紙油傘閱讀 229評論 0 0
  • 學(xué)習(xí)目標(biāo): 節(jié)數(shù)知識點要求第一節(jié)(js的前世今生)js簡介了解第二節(jié)(js的語法結(jié)構(gòu))頁面引入js的幾種方式了解j...
    yy666777閱讀 242評論 0 0
  • 目錄 1、談?wù)勀銓jax的理解?(概念、特點、作用) 2、說說你對延遲對象deferred的理解? 3、什么是跨...
    w_zhuan閱讀 1,044評論 1 28
  • 1 - 編程語言 1.1 編程 編程:就是讓計算機(jī)為解決某個問題而使用某種程序設(shè)計語言編寫程序代碼,并最終得到結(jié)果...
    Scincyc閱讀 337評論 0 0
  • 前言 本文講解 56 道 JavaScript 和 ES6+ 面試題的內(nèi)容。 復(fù)習(xí)前端面試的知識,是為了鞏固前端的...
    YollyTo閱讀 3,234評論 3 77

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