• 技术文章 >web前端 >前端问答

    ecmascript是解释器吗

    青灯夜游青灯夜游2022-01-05 10:52:29原创247

    ecmascript是解释器。ecmascript是一种由Ecma国际通过ECMA-262标准化的脚本程序设计语言,是解释器,负责翻译,是js语言核心部分,描述了js语言的语法和基本对象。

    本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

    一个完整的 JavaScript 实现由以下 3 个不同部分组成:

    ECMAScript(es):负责翻译,为js的核心,解释器。

    由ECMA-262定义的ECMAScript是一种在国际认可的标准的脚本语言规范,与Web浏览器没有依赖关系。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核实处理。
    上一篇:深入浅析JavaScript内置对象(总结分享) 下一篇:ecmascript有什么特性
    千万级数据并发解决方案

    相关文章推荐

    • 一文谈谈JavaScript和ECMAScript的关系• 全面掌握,ECMAScript的新特性• 一起看看ECMAScript和JavaScript的区别• ecmascript的基本数据类型有几种• ecmascript 5中数组的map()方法有什么用• 浅析ECMAScript模块中nodejs如何加载json文件
    1/1

    PHP中文网