成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

前端_JavaScript_語(yǔ)法篇

魏憲會(huì) / 506人閱讀

摘要:是的一種實(shí)現(xiàn)方式,輕量級(jí)的腳本語(yǔ)言,本身不提供輸入輸出相關(guān)的,提供。如果同一個(gè)函數(shù)被多次聲明后面的聲明就會(huì)覆蓋前面的聲明聲明函數(shù)的方法函數(shù)表達(dá)式構(gòu)造函數(shù)數(shù)組是方括號(hào)里面按次序排列的一組值。

JavaScript

JavaScript是ECMAScript的一種實(shí)現(xiàn)方式,輕量級(jí)的腳本語(yǔ)言,本身不提供I/O(輸入/輸出)相關(guān)的API,host提供。

語(yǔ)法

變量: 變量是對(duì)"值"的具名引用,變量名區(qū)分大小寫(xiě). 聲明變量的六種方法:var function let const import class

   變量提升:JavaScript引擎的工作方式,先解析代碼,獲取所有被聲明的變量,然后再一行行地運(yùn)行.所有的變量聲明語(yǔ)句會(huì)被放在代碼的頭部.
   let聲明變量:不存在變量提升(先聲明后使用),存在塊級(jí)作用域.存在"暫時(shí)性死區(qū)"(在let/const未聲明前,使用則報(bào)錯(cuò).),暫時(shí)性死區(qū)的本質(zhì)是執(zhí)行當(dāng)當(dāng)前作用域,在等到變量聲明那一行出現(xiàn),在獲取和使用該變量.不允許重復(fù)聲明.
   const聲明常量,聲明之后不可改變,存在塊級(jí)作用域,存在"暫時(shí)性死區(qū)",保證了內(nèi)存地址存在的數(shù)據(jù)不可改變,指針永遠(yuǎn)執(zhí)行它.

標(biāo)識(shí)符: 變量名,函數(shù)名等.命名規(guī)則,首字母可以是字母或$或_,余下字符:除了Unicode字母,美元符號(hào)和下劃線(xiàn),還可以用數(shù)字0-9 使用駝峰命名法.

保留字:不能作為標(biāo)識(shí)符使用

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.

注釋: 一種單行注釋:用//開(kāi)頭. 多行注釋: //之間.

語(yǔ)句: if結(jié)構(gòu) if..else結(jié)構(gòu) switch結(jié)構(gòu) 三元運(yùn)算符?: while循環(huán) for循環(huán) do...while循環(huán) break語(yǔ)句和continue語(yǔ)句 lable標(biāo)簽if語(yǔ)句,if-else語(yǔ)句,switch語(yǔ)句,注意switch語(yǔ)句后面的表達(dá)式,與case語(yǔ)句后面的表達(dá)式比較運(yùn)算結(jié)果時(shí),采用的是嚴(yán)格相等運(yùn)算符(===),而不是相等運(yùn)算符(==),即不會(huì)發(fā)生類(lèi)型轉(zhuǎn)換.

數(shù)據(jù)類(lèi)型

七種: number (數(shù)字),string(字符串),boolean(布爾型),undefined(未定義),null(空),object(對(duì)象), Symbol(復(fù)合).

  原始類(lèi)型:Number/String/Boolean ,特殊值:null/undefined. 
  合成類(lèi)型:object,存放許多值的容器.對(duì)象細(xì)分為:狹義的對(duì)象,數(shù)組,函數(shù).
  判斷一個(gè)值的類(lèi)型: typeof運(yùn)算符, instanceof運(yùn)算符 object.prototype.toString運(yùn)算符
  歷史遺留,typeof null 會(huì)返回object instanceof可以區(qū)分array和object

null和undefined: null是一個(gè)表示"空"的對(duì)象,轉(zhuǎn)為數(shù)值時(shí)為0,undefined是一個(gè)表示"此處無(wú)定義"的原始值,轉(zhuǎn)為數(shù)值為NaN.
null:好比待補(bǔ)球員. undefined: 當(dāng)變量聲明了,但沒(méi)有賦值,調(diào)用函數(shù)時(shí),該提供的參數(shù)沒(méi)有提供,該參數(shù)等于undefined.對(duì)象沒(méi)有賦值的屬性,函數(shù)沒(méi)有返回值時(shí),默認(rèn)返回undefined.

Bollean:真true,假false.以下運(yùn)算符返回布爾值,前置邏輯運(yùn)算符! ,相等運(yùn)算符 === !== == != 比較運(yùn)算符 > >= < <=
以下六個(gè)值被轉(zhuǎn)為false(undefined,null,false,0 NaN, ""或"),其他值都視為true,空數(shù)組{}和空對(duì)象對(duì)應(yīng)的布爾值都是true.

number: 在JavaScript內(nèi)部,所有的數(shù)字都是小數(shù)(64位浮點(diǎn)數(shù)),對(duì)于某些運(yùn)算需要整數(shù),會(huì)自動(dòng)把64位數(shù)浮點(diǎn)數(shù)轉(zhuǎn)換為32位整數(shù),再進(jìn)行運(yùn)算. Js中最大數(shù)值為2的1024次方,超出則Infinity. Js中最小值為2的-1075次方,超出則0.
數(shù)值的進(jìn)制:十進(jìn)制,十六進(jìn)制(0x或0X),八進(jìn)制(0o或0O),二進(jìn)制(0B或0b).歷史遺留,0888會(huì)被看做八進(jìn)制.

   特殊數(shù)值:正零和負(fù)零,Js內(nèi)部的2個(gè)0,一個(gè)是+0,-0,區(qū)別是64位浮點(diǎn)數(shù)表示法的符號(hào)位不同,它們?yōu)榈葍r(jià)的。
   NaN是JavaScript的特殊值,數(shù)據(jù)類(lèi)型依然屬于Number,表示“非數(shù)字”,主要出現(xiàn)在將字符串解析成數(shù)字出錯(cuò)的場(chǎng)合。NaN不等于任何值,包括它本身。
   Infinity.表示“無(wú)窮”。

string:字符串"abc"或"abc", 要在""里面使用單引號(hào)加反斜杠,用來(lái)轉(zhuǎn)義。 length屬性返回字符串長(zhǎng)度。
object:object是JavaScript語(yǔ)言的核心概念,對(duì)象是一組"鍵值對(duì)(key-value)"的集合,屬性的讀取與賦值(.運(yùn)算符和[]運(yùn)算符)
查看一個(gè)對(duì)象本身的所有屬性,可以使用object.keys方法. 屬性的刪除,只能刪除對(duì)象本身的屬性 delete Objectname.value;
屬性是否存在 in運(yùn)算符 "value" in Objectname; 屬性的遍歷 for..in循環(huán),用來(lái)遍歷一個(gè)對(duì)象的全部屬性,不僅遍歷對(duì)象自身的屬性,還遍歷繼承的屬性。

function:函數(shù)是一段可以反復(fù)調(diào)用的代碼塊,是處理數(shù)據(jù)的方法,是JavaScript的第一等公民。函數(shù)還能接受輸入的參數(shù),不同參數(shù)返回不同值。
如果同一個(gè)函數(shù)被多次聲明,后面的聲明就會(huì)覆蓋前面的聲明.
聲明函數(shù)的方法:function 函數(shù)表達(dá)式 Function構(gòu)造函數(shù)
array: 數(shù)組是方括號(hào)里面按次序排列的一組值。可以先定義后賦值,可以放入任何數(shù)據(jù)類(lèi)型。

運(yùn)算符

處理數(shù)據(jù)的基本方法,從現(xiàn)有的值得到新的值.
算術(shù)運(yùn)算符,比較運(yùn)算符,布爾運(yùn)算符,二進(jìn)制運(yùn)算符,其他運(yùn)算符,運(yùn)算順序.
算術(shù)運(yùn)算符:加法運(yùn)算符(+),減法運(yùn)算符(-),乘法運(yùn)算符(),除法運(yùn)算符(/),指數(shù)運(yùn)算符(*)余數(shù)運(yùn)算符(%),自增運(yùn)算符(++x/++x),

自減運(yùn)算符(--x/x--),數(shù)值運(yùn)算符(+),負(fù)數(shù)值運(yùn)算符(-x)
加法運(yùn)算符允許非數(shù)值的相加.

比較運(yùn)算符: >(大于運(yùn)算符) <(小于運(yùn)算符) <=(小于或等于運(yùn)算符) >=(大于或等于運(yùn)算符) ==(相等運(yùn)算符) ==(嚴(yán)格運(yùn)算符) !=(不相等運(yùn)算符)
!==(嚴(yán)格不相等運(yùn)算符)
布爾運(yùn)算符:!(取反運(yùn)算符) &&(且運(yùn)算符) ||(或運(yùn)算符) ?:(三元運(yùn)算符) ·以下運(yùn)算符(undefined,null,false,0,NaN,"")取反為true.
二進(jìn)制位運(yùn)算符:
其他運(yùn)算符,運(yùn)算順序:
void運(yùn)算符,執(zhí)行一個(gè)表達(dá)式,如何不返回任何值.或者返貨undefined.
逗號(hào)運(yùn)算符,用于對(duì)兩個(gè)表達(dá)式求職,并返回后一個(gè)表達(dá)式的值.
運(yùn)算符的優(yōu)先級(jí)別:

()最高

一元運(yùn)算符 ++ -- !.

算術(shù)運(yùn)算符: 先* / % 后 + -

關(guān)系運(yùn)算符 > >= < <=

相等運(yùn)算符 == != === !==

邏輯運(yùn)算符 先$$ 后||

專(zhuān)題一:數(shù)據(jù)類(lèi)型的轉(zhuǎn)換

Number(),解析為數(shù)值,不可解析與undefined則NaN,空字符串與null則為0,true轉(zhuǎn)為1.false轉(zhuǎn)為0.
String(),解析為字符串。
Boolean(),轉(zhuǎn)為布爾值,以下五個(gè)值(undefined,null,-0或+0,NaN,""(空字符串))的轉(zhuǎn)換結(jié)果為false,其他的值為true.

專(zhuān)題二: 執(zhí)行上下文與內(nèi)存空間

在JavaScript中,所有數(shù)據(jù)保存在堆(heap)里面,執(zhí)行上下文的的執(zhí)行順序借用棧數(shù)據(jù)結(jié)構(gòu)的存取方式.棧是先進(jìn)先出(FIFO),而JavaScript具有垃圾回收機(jī)制,通過(guò)標(biāo)記清除算法清除不再使用的對(duì)象.
一個(gè)頁(yè)面開(kāi)始加載JS就進(jìn)入全局環(huán)境,每段函數(shù)的加載,進(jìn)入函數(shù)環(huán)境(又稱(chēng)為執(zhí)行上下文).執(zhí)行上下文分為兩個(gè)階段:創(chuàng)建階段:(創(chuàng)建變量對(duì)象,建立作用域鏈,確定this指向)+代碼執(zhí)行階段(變量賦值,函數(shù)引用,執(zhí)行額外代碼)

專(zhuān)題三: 原型與原型鏈

原型:所有對(duì)象都有它.
構(gòu)造函數(shù):可以通過(guò)new創(chuàng)建一個(gè)對(duì)象.
實(shí)例:通過(guò)構(gòu)造函數(shù)和new創(chuàng)建的對(duì)象就是實(shí)例,實(shí)例通過(guò)_proto_指向原型,通過(guò)constructor指向構(gòu)造函數(shù).
原型鏈: _proto_將對(duì)象連接成原型鏈,實(shí)現(xiàn)繼承與共享屬性的對(duì)象鏈.

//實(shí)例
const instance = new Object()  
//實(shí)例為instance 構(gòu)造函數(shù)是Object

參考

(1)網(wǎng)道-互聯(lián)網(wǎng)開(kāi)發(fā)文檔(https://wangdoc.com/).
(2)ECMAScript 6 入門(mén) (http://es6.ruanyifeng.com/).

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/101763.html

相關(guān)文章

  • 深入理解JavaScript

    摘要:深入之繼承的多種方式和優(yōu)缺點(diǎn)深入系列第十五篇,講解各種繼承方式和優(yōu)缺點(diǎn)。對(duì)于解釋型語(yǔ)言例如來(lái)說(shuō),通過(guò)詞法分析語(yǔ)法分析語(yǔ)法樹(shù),就可以開(kāi)始解釋執(zhí)行了。 JavaScript深入之繼承的多種方式和優(yōu)缺點(diǎn) JavaScript深入系列第十五篇,講解JavaScript各種繼承方式和優(yōu)缺點(diǎn)。 寫(xiě)在前面 本文講解JavaScript各種繼承方式和優(yōu)缺點(diǎn)。 但是注意: 這篇文章更像是筆記,哎,再讓我...

    myeveryheart 評(píng)論0 收藏0
  • JavasScript重難點(diǎn)知識(shí)

    摘要:忍者級(jí)別的函數(shù)操作對(duì)于什么是匿名函數(shù),這里就不做過(guò)多介紹了。我們需要知道的是,對(duì)于而言,匿名函數(shù)是一個(gè)很重要且具有邏輯性的特性。通常,匿名函數(shù)的使用情況是創(chuàng)建一個(gè)供以后使用的函數(shù)。 JS 中的遞歸 遞歸, 遞歸基礎(chǔ), 斐波那契數(shù)列, 使用遞歸方式深拷貝, 自定義事件添加 這一次,徹底弄懂 JavaScript 執(zhí)行機(jī)制 本文的目的就是要保證你徹底弄懂javascript的執(zhí)行機(jī)制,如果...

    forsigner 評(píng)論0 收藏0
  • 【連載】前端個(gè)人文章整理-從基礎(chǔ)到入門(mén)

    摘要:個(gè)人前端文章整理從最開(kāi)始萌生寫(xiě)文章的想法,到著手開(kāi)始寫(xiě),再到現(xiàn)在已經(jīng)一年的時(shí)間了,由于工作比較忙,更新緩慢,后面還是會(huì)繼更新,現(xiàn)將已經(jīng)寫(xiě)好的文章整理一個(gè)目錄,方便更多的小伙伴去學(xué)習(xí)。 showImg(https://segmentfault.com/img/remote/1460000017490740?w=1920&h=1080); 個(gè)人前端文章整理 從最開(kāi)始萌生寫(xiě)文章的想法,到著手...

    madthumb 評(píng)論0 收藏0
  • 前端文檔收集

    摘要:系列種優(yōu)化頁(yè)面加載速度的方法隨筆分類(lèi)中個(gè)最重要的技術(shù)點(diǎn)常用整理網(wǎng)頁(yè)性能管理詳解離線(xiàn)緩存簡(jiǎn)介系列編寫(xiě)高性能有趣的原生數(shù)組函數(shù)數(shù)據(jù)訪(fǎng)問(wèn)性能優(yōu)化方案實(shí)現(xiàn)的大排序算法一怪對(duì)象常用方法函數(shù)收集數(shù)組的操作面向?qū)ο蠛驮屠^承中關(guān)鍵詞的優(yōu)雅解釋淺談系列 H5系列 10種優(yōu)化頁(yè)面加載速度的方法 隨筆分類(lèi) - HTML5 HTML5中40個(gè)最重要的技術(shù)點(diǎn) 常用meta整理 網(wǎng)頁(yè)性能管理詳解 HTML5 ...

    jsbintask 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<