ECMAScript-1【发展史-ECMA-编程语言-变量-JS值】

一.发展史及浏览器内核

  1. 浏览器内核

        火狐:gecko

        chrome:webkit blink

        IE:trident

        欧鹏:presto blink

        safari:webkit
     2.发展史

  1. 1990年览器诞生,蒂姆伯纳斯李 超文本分享资讯的人world wide web  移植到C libwww/nexus允许别人浏览他人编写的网站MOSAIC
  2. 1993 美国伊利诺大学NCSAZ组织(马克 安德森)开发了MOSAIC浏览器显示图片,图形化浏览器
  3. 1994 马克安德森和吉姆克拉克(硅图SGI),成立了一个公司MOSIAC communication corporation corporation标权属于伊利诺大学,伊利诺大学把MOSIAC转卖给了spy glcass 网景公司->netscape navigator
  4. 1996 微软的公司收购了spy glass,然后MOSAIC内核开发出来了 IE internet explorer1.0,同年IE3发布了 Jscript脚本语言网景公司Brendan eich在netscape navigator 开发出了livescript(JS)的前身,JAVA火起来,网景livesript不温不火,后面就和SUN公司,合作推广和宣传产品,livesript 更名为javascript
  5. 2001年 IE6和XP诞生,出现了JS引擎
  6. 2003 Mozilla公司 firefox  是根据netscape  avigator复制出来的
  7. 2008 google基于webkit blink GEARS离线上网,开发出来chrome浏览器 ->V8引擎JS引擎非常牛逼:a直接翻译机器码、b独立于浏览器运行
  8. 2009年  甲骨文oracle收购了SUN公司,JS的所有权给甲骨文

二.ECMA

ECMA 全称 European Computer Manufactures Association

欧洲计算机制造联合会

作用: 评估、开发、认可电信、计算机标准

三.编程语言

ECMA-262 脚本语言的规范

(1).脚本语言:

->脚本引擎->解释器

(2).编程四要素:

  1. 变量
  2. 数据结构
  3. 函数
  4. 运算能力

(3).强类型弱类型

动态语言->脚本语言->解释性语言->弱类型语言

静态语言->编译型语言->强类型语言

(4).前后端脚本

前端:javascript 客户端脚本

后端: php 服务端脚本

(5).IE的jscript

jscript只支持微软IE

vbscript

(6).JS内容

ECMAscript:语法、变量、关键字、保留字..

DOM:document object model W3C

BOM:browser object model 没有规范

(7).轮转时间片

JS引擎是单线程的但是可以模拟多线程

实现原理:短时间之内执行多个任务的片段

  1. 任务1 任务2
  2. 切分任务1 任务2
  3. 随机排列这些任务片段,组成队列
  4. 按照这个队列顺序将任务片送进JS进程
  5. JS线程执行一个又一个的任务片段

(8).模板
ECMAScript-1【发展史-ECMA-编程语言-变量-JS值】_第1张图片

四.变量

(1).命名规范:

  1. 不能以数字开头
  2. 能以字母_$开头
  3. 不能命名保留字和关键字
    ECMAScript-1【发展史-ECMA-编程语言-变量-JS值】_第2张图片

 五.JS的值

(1).原始值(基本类型)

  1. Number(NaN为数字类型)
  2. String
  3. Boolean
  4. undefind
  5. null
  1. 存于栈内存,先进后出
  2. 赋值时到其他变量时其他变量copy数据另行开辟栈空间
  3. 当原始数据变化,被赋值的变量值不变
  4. 当原始数据被重新赋值将会另行开辟空间

(2).引用值

  1. object
  2. arry
  3. function
  4. date
  5. RegExp
  1. 名称存于栈,数据存于heap,但其中名称指向栈
  2. 赋值时到其他变量时其他变量在栈中开辟空间指向原始堆处不会另行开辟堆空间
  3. 当原始数据发生变化,被赋值的变量值会改变
  4. 当原始数据被重新赋值将会在栈和堆中开辟空间

var arr1 = [1, 2, 3, 4]; var arr2 = arr1; arr1.push(5); //此时arr2也是[1 2 3 4 5 ]

var arr1 = [1, 2, 3, 4]; var arr2 = arr1; arr1 = [1, 2]   //此时arr2是[1 2 3 4 ] 与后面赋值的无关了

ECMAScript-1【发展史-ECMA-编程语言-变量-JS值】_第3张图片

你可能感兴趣的:(ECMAScript,ecmascript)