首頁 >web前端 >前端問答 >ecmascript是解譯器嗎

ecmascript是解譯器嗎

青灯夜游
青灯夜游原創
2022-01-05 10:52:291468瀏覽

ecmascript是解釋器。 ecmascript是一種由Ecma國際透過ECMA-262標準化的腳本程式設計語言,是解釋器,負責翻譯,是js語言核心部分,描述了js語言的語法和基本物件。

ecmascript是解譯器嗎

本教學操作環境:windows7系統、ECMAScript 6版、Dell G3電腦。

一個完整的JavaScript 實作由以下3 個不同部分組成:

  • 核心(ECMAScript):語言核心部分,描述了該語言的語法和基本物件。

  • 文件物件模型(Document Object Model,DOM):網頁文件操作標準,描述處理網頁內容的方法和介面。

  • 瀏覽器物件模型(BOM):客戶端和瀏覽器視窗操作基礎,描述與瀏覽器互動的方法和介面。

ECMAScript(es):負責翻譯,為js的核心,解譯器。

由ECMA-262定義的ECMAScript是一種在國際認可的標準的腳本語言規範,與網頁瀏覽器沒有依賴關係。 ECMA-262標準主要規定了這門語言由以下組成部分:

  • 語法

  • ##變數和資料類型

  • 關鍵字與保留字

  • 運算子

  • #控制語句

  • 物件

2009年ECMAScript 5.0版正式發布。在很長一段時間,使用javaScript都是依照5.0的標準。 2015年ECMAScript 6發表正式版本,官方稱為ECMAScript 2015。 ECMAScript定義了腳本語言的所有屬性、方法和物件。因此抵用web客戶端腳本編碼時一定要遵循ECMAScript標準。

JS資料類型

5種基本資料類型:Undefined、Null、Boolean、Number、String,Symbol(es6新增)

1種複雜型別:object

5種參考型別:Array,Object,Function,Date,RegExp

3種基本包裝型別:Boolean,Number,String

#2種單體內建物件:Global,Math

1、四種方式判斷資料型別 

typeof##

const a = ""
console.log(typeof(a)) => String
 
const b = 1
console.log(typeof(b)) => Number
 
const c
console.log(typeof(c)) =>Undefined
 
const d = []
console.log(typeof(d)) => Object
 
const e = {}
console.log(typeof(e)) =>Object
 
const f = null
console.log(typeof(f)) =>Object  //null 作为尚未创建的对象

instanceof

這種方式只適合用來判斷object類型

const arr = [] 
console.log(arr instanceof Array)=> true
 
console.log(null instanceof Object) ---> false
 
console.log([function] instanceof Object | Function)  --> true

Object.prototype.toString.call()

這種方式可以將全部的資料型別偵測出來 建議使用。因為toString是Object的原型方法, 而 Array Function 等都是Object的實例。都重寫了toString 方法。傳回的是類型的字串

Object.prototype.toString.call(null)  =>  [object Null]
 
Object.prototype.toString.call(Math) => [object Math]
 
Object.prototype.toString.call(function(){}) => [object Function]
 
Objdec.prototype.toString.call(new Date)  => [object Date]
 
Object.prototype.toString.call(Symbol())  => [object Symbol]
 
Object.prototupe.toString.call(undefined)  => [object Undefined]
 
Object.prototype.toString.call(123)  => [object Number]
 
Object.prototype.toString.call(true) => [object Boolean]
 
Object.prototype.toString.call('123') => [object String]
 
Object.prototype.toString.call({})    => [object Object]
 
Object.prototype.toString.call([])    => [object Array]

constructor 

#判斷物件的建構子。

1.  null 是js 原型鏈的起點,沒有建構子

2. undefined 沒有建構子

3. [].constructor  === Array  --- > true

【相關推薦:

javascript學習教學

以上是ecmascript是解譯器嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn