摘要:是的一種實現(xiàn)方式,輕量級的腳本語言,本身不提供輸入輸出相關(guān)的,提供。如果同一個函數(shù)被多次聲明后面的聲明就會覆蓋前面的聲明聲明函數(shù)的方法函數(shù)表達式構(gòu)造函數(shù)數(shù)組是方括號里面按次序排列的一組值。
JavaScript
JavaScript是ECMAScript的一種實現(xiàn)方式,輕量級的腳本語言,本身不提供I/O(輸入/輸出)相關(guān)的API,host提供。
語法
變量: 變量是對"值"的具名引用,變量名區(qū)分大小寫. 聲明變量的六種方法:var function let const import class
變量提升:JavaScript引擎的工作方式,先解析代碼,獲取所有被聲明的變量,然后再一行行地運行.所有的變量聲明語句會被放在代碼的頭部. let聲明變量:不存在變量提升(先聲明后使用),存在塊級作用域.存在"暫時性死區(qū)"(在let/const未聲明前,使用則報錯.),暫時性死區(qū)的本質(zhì)是執(zhí)行當當前作用域,在等到變量聲明那一行出現(xiàn),在獲取和使用該變量.不允許重復(fù)聲明. const聲明常量,聲明之后不可改變,存在塊級作用域,存在"暫時性死區(qū)",保證了內(nèi)存地址存在的數(shù)據(jù)不可改變,指針永遠執(zhí)行它.
標識符: 變量名,函數(shù)名等.命名規(guī)則,首字母可以是字母或$或_,余下字符:除了Unicode字母,美元符號和下劃線,還可以用數(shù)字0-9 使用駝峰命名法.
保留字:不能作為標識符使用
agargument,break,case,catch,class,const,continue,debugger, default,delete,do,else,enum,eval,export,extends,flase,finally,for,function,if,implements, import,in,instanceof,interface,let,new,null,package,private, protected,public,return,static,super,switch,this,throw,true,try,typeof,var,void,while,with,yield.
注釋: 一種單行注釋:用//開頭. 多行注釋: /和/之間.
語句: if結(jié)構(gòu) if..else結(jié)構(gòu) switch結(jié)構(gòu) 三元運算符?: while循環(huán) for循環(huán) do...while循環(huán) break語句和continue語句 lable標簽if語句,if-else語句,switch語句,注意switch語句后面的表達式,與case語句后面的表達式比較運算結(jié)果時,采用的是嚴格相等運算符(===),而不是相等運算符(==),即不會發(fā)生類型轉(zhuǎn)換.
數(shù)據(jù)類型七種: number (數(shù)字),string(字符串),boolean(布爾型),undefined(未定義),null(空),object(對象), Symbol(復(fù)合).
原始類型:Number/String/Boolean ,特殊值:null/undefined. 合成類型:object,存放許多值的容器.對象細分為:狹義的對象,數(shù)組,函數(shù). 判斷一個值的類型: typeof運算符, instanceof運算符 object.prototype.toString運算符 歷史遺留,typeof null 會返回object instanceof可以區(qū)分array和object
null和undefined: null是一個表示"空"的對象,轉(zhuǎn)為數(shù)值時為0,undefined是一個表示"此處無定義"的原始值,轉(zhuǎn)為數(shù)值為NaN.
null:好比待補球員. undefined: 當變量聲明了,但沒有賦值,調(diào)用函數(shù)時,該提供的參數(shù)沒有提供,該參數(shù)等于undefined.對象沒有賦值的屬性,函數(shù)沒有返回值時,默認返回undefined.
Bollean:真true,假false.以下運算符返回布爾值,前置邏輯運算符! ,相等運算符 === !== == != 比較運算符 > >= < <=
以下六個值被轉(zhuǎn)為false(undefined,null,false,0 NaN, ""或"),其他值都視為true,空數(shù)組{}和空對象對應(yīng)的布爾值都是true.
number: 在JavaScript內(nèi)部,所有的數(shù)字都是小數(shù)(64位浮點數(shù)),對于某些運算需要整數(shù),會自動把64位數(shù)浮點數(shù)轉(zhuǎn)換為32位整數(shù),再進行運算. Js中最大數(shù)值為2的1024次方,超出則Infinity. Js中最小值為2的-1075次方,超出則0.
數(shù)值的進制:十進制,十六進制(0x或0X),八進制(0o或0O),二進制(0B或0b).歷史遺留,0888會被看做八進制.
特殊數(shù)值:正零和負零,Js內(nèi)部的2個0,一個是+0,-0,區(qū)別是64位浮點數(shù)表示法的符號位不同,它們?yōu)榈葍r的。 NaN是JavaScript的特殊值,數(shù)據(jù)類型依然屬于Number,表示“非數(shù)字”,主要出現(xiàn)在將字符串解析成數(shù)字出錯的場合。NaN不等于任何值,包括它本身。 Infinity.表示“無窮”。
string:字符串"abc"或"abc", 要在""里面使用單引號加反斜杠,用來轉(zhuǎn)義。 length屬性返回字符串長度。
object:object是JavaScript語言的核心概念,對象是一組"鍵值對(key-value)"的集合,屬性的讀取與賦值(.運算符和[]運算符)
查看一個對象本身的所有屬性,可以使用object.keys方法. 屬性的刪除,只能刪除對象本身的屬性 delete Objectname.value;
屬性是否存在 in運算符 "value" in Objectname; 屬性的遍歷 for..in循環(huán),用來遍歷一個對象的全部屬性,不僅遍歷對象自身的屬性,還遍歷繼承的屬性。
function:函數(shù)是一段可以反復(fù)調(diào)用的代碼塊,是處理數(shù)據(jù)的方法,是JavaScript的第一等公民。函數(shù)還能接受輸入的參數(shù),不同參數(shù)返回不同值。
如果同一個函數(shù)被多次聲明,后面的聲明就會覆蓋前面的聲明.
聲明函數(shù)的方法:function 函數(shù)表達式 Function構(gòu)造函數(shù)
array: 數(shù)組是方括號里面按次序排列的一組值。可以先定義后賦值,可以放入任何數(shù)據(jù)類型。
(1)function命令 function print(s) { //function命令后面就是函數(shù)名,函數(shù)名后面一組圓括號,里面是傳入的參數(shù),函數(shù)體放入大括號里面。 console.log(s); } (2)函數(shù)表達式 let print = function(s) { //表達式的function命令之后,如要加函數(shù)名,則只會在函數(shù)體內(nèi)部有效,在函數(shù)體外部無效. console.log(s); }; (3)Function構(gòu)造函數(shù) let add = new Function ( "x", "y", "return x + y" );運算符
處理數(shù)據(jù)的基本方法,從現(xiàn)有的值得到新的值.
算術(shù)運算符,比較運算符,布爾運算符,二進制運算符,其他運算符,運算順序.
算術(shù)運算符:加法運算符(+),減法運算符(-),乘法運算符(),除法運算符(/),指數(shù)運算符(*)余數(shù)運算符(%),自增運算符(++x/++x),
自減運算符(--x/x--),數(shù)值運算符(+),負數(shù)值運算符(-x) 加法運算符允許非數(shù)值的相加.
比較運算符: >(大于運算符) <(小于運算符) <=(小于或等于運算符) >=(大于或等于運算符) ==(相等運算符) ==(嚴格運算符) !=(不相等運算符)
!==(嚴格不相等運算符)
布爾運算符:!(取反運算符) &&(且運算符) ||(或運算符) ?:(三元運算符) ·以下運算符(undefined,null,false,0,NaN,"")取反為true.
二進制位運算符:
其他運算符,運算順序:
void運算符,執(zhí)行一個表達式,如何不返回任何值.或者返貨undefined.
逗號運算符,用于對兩個表達式求職,并返回后一個表達式的值.
運算符的優(yōu)先級別:
()最高
一元運算符 ++ -- !.
算術(shù)運算符: 先* / % 后 + -
關(guān)系運算符 > >= < <=
相等運算符 == != === !==
邏輯運算符 先$$ 后||
專題一:數(shù)據(jù)類型的轉(zhuǎn)換Number(),解析為數(shù)值,不可解析與undefined則NaN,空字符串與null則為0,true轉(zhuǎn)為1.false轉(zhuǎn)為0.
String(),解析為字符串。
Boolean(),轉(zhuǎn)為布爾值,以下五個值(undefined,null,-0或+0,NaN,""(空字符串))的轉(zhuǎn)換結(jié)果為false,其他的值為true.
在JavaScript中,所有數(shù)據(jù)保存在堆(heap)里面,執(zhí)行上下文的的執(zhí)行順序借用棧數(shù)據(jù)結(jié)構(gòu)的存取方式.棧是先進先出(FIFO),而JavaScript具有垃圾回收機制,通過標記清除算法清除不再使用的對象.
一個頁面開始加載JS就進入全局環(huán)境,每段函數(shù)的加載,進入函數(shù)環(huán)境(又稱為執(zhí)行上下文).執(zhí)行上下文分為兩個階段:創(chuàng)建階段:(創(chuàng)建變量對象,建立作用域鏈,確定this指向)+代碼執(zhí)行階段(變量賦值,函數(shù)引用,執(zhí)行額外代碼)
原型:所有對象都有它.
構(gòu)造函數(shù):可以通過new創(chuàng)建一個對象.
實例:通過構(gòu)造函數(shù)和new創(chuàng)建的對象就是實例,實例通過_proto_指向原型,通過constructor指向構(gòu)造函數(shù).
原型鏈: _proto_將對象連接成原型鏈,實現(xiàn)繼承與共享屬性的對象鏈.
//實例 const instance = new Object() //實例為instance 構(gòu)造函數(shù)是Object參考
(1)網(wǎng)道-互聯(lián)網(wǎng)開發(fā)文檔(https://wangdoc.com/).
(2)ECMAScript 6 入門 (http://es6.ruanyifeng.com/).
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/101763.html
摘要:深入之繼承的多種方式和優(yōu)缺點深入系列第十五篇,講解各種繼承方式和優(yōu)缺點。對于解釋型語言例如來說,通過詞法分析語法分析語法樹,就可以開始解釋執(zhí)行了。 JavaScript深入之繼承的多種方式和優(yōu)缺點 JavaScript深入系列第十五篇,講解JavaScript各種繼承方式和優(yōu)缺點。 寫在前面 本文講解JavaScript各種繼承方式和優(yōu)缺點。 但是注意: 這篇文章更像是筆記,哎,再讓我...
摘要:忍者級別的函數(shù)操作對于什么是匿名函數(shù),這里就不做過多介紹了。我們需要知道的是,對于而言,匿名函數(shù)是一個很重要且具有邏輯性的特性。通常,匿名函數(shù)的使用情況是創(chuàng)建一個供以后使用的函數(shù)。 JS 中的遞歸 遞歸, 遞歸基礎(chǔ), 斐波那契數(shù)列, 使用遞歸方式深拷貝, 自定義事件添加 這一次,徹底弄懂 JavaScript 執(zhí)行機制 本文的目的就是要保證你徹底弄懂javascript的執(zhí)行機制,如果...
摘要:個人前端文章整理從最開始萌生寫文章的想法,到著手開始寫,再到現(xiàn)在已經(jīng)一年的時間了,由于工作比較忙,更新緩慢,后面還是會繼更新,現(xiàn)將已經(jīng)寫好的文章整理一個目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個人前端文章整理 從最開始萌生寫文章的想法,到著手...
摘要:系列種優(yōu)化頁面加載速度的方法隨筆分類中個最重要的技術(shù)點常用整理網(wǎng)頁性能管理詳解離線緩存簡介系列編寫高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪問性能優(yōu)化方案實現(xiàn)的大排序算法一怪對象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁面加載速度的方法 隨筆分類 - HTML5 HTML5中40個最重要的技術(shù)點 常用meta整理 網(wǎng)頁性能管理詳解 HTML5 ...
閱讀 3480·2023-04-26 02:44
閱讀 1622·2021-11-25 09:43
閱讀 1510·2021-11-08 13:27
閱讀 1881·2021-09-09 09:33
閱讀 899·2019-08-30 15:53
閱讀 1762·2019-08-30 15:53
閱讀 2771·2019-08-30 15:53
閱讀 3106·2019-08-30 15:44