幫助你對(duì)JavaScript初級(jí)了解

Javascript和ECMAScript通常被人們用來表達(dá)相同的含義,但是嚴(yán)格意義上Javascript比ECMA-262中規(guī)定的含義要多,一個(gè)完整的Javascript應(yīng)該包含三個(gè)部分

**核心**:ECMAScript

- 由ECMA-262定義,提供核心語言功能

**文檔對(duì)象模型**:DOM(Document Object Model)

- 用于HTML的應(yīng)用程序編程接口,DOM把整個(gè)頁面映射為一個(gè)多層節(jié)點(diǎn)的結(jié)構(gòu),提供訪問和操作網(wǎng)頁內(nèi)容的方法和接口

**瀏覽器對(duì)象模型**:BOM(Browser Object Model)

- 支持可以訪問操作瀏覽器窗口的對(duì)象模型,提供與瀏覽器交互的方法和接口

**ECMA-262**:

- 語法、類型、語句、關(guān)鍵字、保留字、操作符、對(duì)象等

**區(qū)分大小寫**

- ECMAScript中一切(變量、函數(shù)名、操作符)都區(qū)分大小寫


**標(biāo)識(shí)符**

- 指變量、函數(shù)、屬性的名字或函數(shù)的參數(shù)

**命名規(guī)范**

- 必須是數(shù)字、字母、下劃線(_)或$,不能以數(shù)字開頭、不能以關(guān)鍵字、保留字命名。

- 可以使用駝峰命名法,例如:firstSecond

**關(guān)鍵字、保留字**

- ??關(guān)鍵字用于控制語句的開始或結(jié)束,或用于執(zhí)行特定操作等

- ??保留字將定義一些將來可能被用于關(guān)鍵字的單詞

**注釋**

- // 單行注釋

- /*

??* 這是一個(gè)多行

??* (塊級(jí))注釋

??*/

- 第二行及第三行的*號(hào)不是必須,僅為提高代碼的可讀性,企業(yè)級(jí)應(yīng)用這種方式比較多

**嚴(yán)格模式**

- 定義一種不同的解析與執(zhí)行模式,在嚴(yán)格模式下,將對(duì)一些不確定、不安全或不當(dāng)操作的行為拋出錯(cuò)誤

- 使用:在script標(biāo)簽內(nèi)部最頂端添加 'use strict';也可以在指定的函數(shù)體內(nèi)部添加

**分號(hào)**

- 結(jié)尾的分號(hào)不是必須,但是可讀性降低,并且壓縮代碼時(shí)容易導(dǎo)致壓縮錯(cuò)誤,還需要解析器去確定語句的結(jié)尾,加上分號(hào)也會(huì)在某些情況下提高性能,因?yàn)檫@樣,解析器就不用花時(shí)間去推測應(yīng)該在哪里插入分號(hào)

**變量**

- ECMA的變量(存儲(chǔ)在內(nèi)存中的一塊區(qū)域)是松散類型(可以用來保存任何類型的數(shù)據(jù)),換句話說每個(gè)變量僅僅是用來保存值的一個(gè)占位符

- 定義變量需要使用var操作符 例如: var num = 10;

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

- ECMAScript中有5種簡單數(shù)據(jù)類型(基本數(shù)據(jù)類型):Undefined、Null、Boolean、Number、String

- 一種復(fù)雜數(shù)據(jù)類型:Object

? - undefined:只有一個(gè)值的數(shù)據(jù)類型,聲明的變量未定義或未對(duì)其初始化

? - null:只有一個(gè)值的數(shù)據(jù)類型,表示一個(gè)空的對(duì)象指針,一般用于將來保存對(duì)象而使用,由于undefined派生自null,ECMA-262規(guī)定undefined與null值相等


? - boolean:只有兩個(gè)值true或false, Boolean()轉(zhuǎn)換規(guī)則,除false、''、0、NaN、null、undefined皆為true

? - number:數(shù)字類型,基本字面量格式是十進(jìn)制整數(shù),例如:var num = 10;

? ? - 也可以以八進(jìn)制(8為基數(shù))或十六進(jìn)制(16為基數(shù))的字面數(shù)來表示,例如:var num = 070; // 八進(jìn)制的56

? ? - 八進(jìn)制第一位必須是0開頭,字?jǐn)?shù)序列為0~7,無效數(shù)值將會(huì)以十進(jìn)制解析,忽略前面的0

? ? - 十六進(jìn)制例如:var num = 0xA; //十六進(jìn)制的10,十六進(jìn)制由(0~9及A~F)組成,不區(qū)分大小寫,字面值前兩位必須是0x;

? ? - 八進(jìn)制嚴(yán)格模式下會(huì)拋出錯(cuò)誤

? ? - 浮點(diǎn)數(shù)值:數(shù)值必須包含一個(gè)小數(shù)點(diǎn),小數(shù)點(diǎn)后面必須有一位數(shù)字,由于浮點(diǎn)數(shù)需要的內(nèi)存空間是整數(shù)的兩倍,一般對(duì)于小數(shù)點(diǎn)沒有跟任何值或本身表示一個(gè)整數(shù)如1.0,那么該

? ? 值會(huì)被轉(zhuǎn)為整數(shù)

? ? - 數(shù)值范圍:由于內(nèi)存限制,ECMAScript并不能保存所有值,因此把表示最小的值保存在Number.MIN_VALUE中一般在瀏覽器中這個(gè)值是5e-324,把最大的值保存在

? ? Number.MAX_VALUE中,一般為1.7976931348623157e+308,計(jì)算中如果是負(fù)數(shù)則會(huì)轉(zhuǎn)為-Infinity(負(fù)無窮),正數(shù)則為Infinity(正無窮),要想確定一個(gè)數(shù)值是不是有窮的使

? ? 用isFinite()

? ? - 數(shù)字中的e(科學(xué)計(jì)數(shù)法)表示10的幾次方,例如:3.125e7等于31250000 相當(dāng)于3.125 * 10^7

? ? - NaN:非數(shù)值(Not a Number)是一個(gè)特殊的數(shù)值,表示一個(gè)要返回?cái)?shù)值的操作數(shù)未返回?cái)?shù)值

? ? - 檢測一個(gè)值是否為非數(shù)值可以用isNaN()方法來檢測,該方法接受一個(gè)任何類型的參數(shù)

? ? - 轉(zhuǎn)換為數(shù)值的方法:Number(傳任何值)、parseInt(字符串或數(shù)字)[接受兩個(gè)參數(shù),第一個(gè)為傳入的要處理的參數(shù),第二個(gè)為基于解析的基數(shù),取2-36之間的數(shù)值]、parseFloat(字符串或數(shù)字)

- string:由英文狀態(tài)下的雙引號(hào)或單引號(hào)表示,例如:var str = 'abc' 或 var str1 = "abc";

? - 字符字面量:\n 換行 \t制表 \b退格 \r回車 \\斜杠? \' 單引號(hào) \"雙引號(hào)

? - 轉(zhuǎn)換字符串的方法:

? ? - toString方法:toString()返回一個(gè)字符串的副本,除了null和undefined以外,數(shù)值、布爾值、對(duì)象、字符串都有這個(gè)方法,可以接受一個(gè)參數(shù),作為輸出數(shù)值的基數(shù),默認(rèn)為十進(jìn)制

? ? - 使用:var num = 10;? num.toString();

? ? - String方法:轉(zhuǎn)型函數(shù),能夠?qū)⑷魏晤愋偷闹缔D(zhuǎn)為字符串,包括undefined和null,一般如果轉(zhuǎn)變的值有toString方法則會(huì)調(diào)用該方法

- object:數(shù)據(jù)和功能的集合,一般通過new操作符后面跟要?jiǎng)?chuàng)建的對(duì)象類型來創(chuàng)建,例如:var obj = new Object();也可以使用字面量方式創(chuàng)建,例如:var obj = {};

? -? 任何涉及到類型轉(zhuǎn)換如果針對(duì)的是對(duì)象類型,則會(huì)調(diào)用對(duì)象的toString()和valueOf()方法通過轉(zhuǎn)換得到值[概念,暫時(shí)不講]

**typeof操作符**

- 用來檢測給定變量的數(shù)據(jù)類型,返回一個(gè)字符串

- 檢測得到的結(jié)果:undefined、boolean、string、number、object、function

- 操作數(shù)可以是一個(gè)變量也可以是一個(gè)字面量,typeof可以加圓括號(hào)(typeof(10))但不是必須,例如:typeof 10;

- typeof 對(duì)于未定意的變量也會(huì)返回undefined 例如:var str; typeof str 和 typeof num都是undefined;但是如果去通過控制臺(tái)或其他方式輸出,未定義的num則會(huì)產(chǎn)生報(bào)錯(cuò);

??

??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、標(biāo)識(shí)符 標(biāo)識(shí)符是指變量、函數(shù)、屬性的名字,或函數(shù)的參數(shù)。 格式規(guī)則: 第一個(gè)字符必須是一個(gè)字母、下劃線(_)或...
    風(fēng)中丶凌亂閱讀 1,754評(píng)論 0 0
  • 第一章 前端三大語言:HTML(專門編寫網(wǎng)頁內(nèi)容)、CSS(編寫網(wǎng)頁樣式)、JS(專門編寫網(wǎng)頁交互行為) 能簡寫盡...
    fastwe閱讀 1,208評(píng)論 0 0
  • 第1章 JavaScript 簡介 JavaScript 具備與瀏覽器窗口及其內(nèi)容等幾乎所有方面交互的能力。 歐洲...
    力氣強(qiáng)閱讀 1,293評(píng)論 0 0
  • 1、標(biāo)識(shí)符 標(biāo)識(shí)符是指變量、函數(shù)、屬性的名字,或函數(shù)的參數(shù)。 格式規(guī)則: 第一個(gè)字符必須是一個(gè)字母、下劃線(_)或...
    霜天曉閱讀 777評(píng)論 0 0
  • 第3章 基本概念 3.1 語法 3.2 關(guān)鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,543評(píng)論 0 21

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