JS——简介

  • A+
所属分类:Web前端
摘要

  1、1994年,网景公司(Netscape)发布了Navigator浏览器0.9版     是历史上第一个比较成熟的网络浏览器 , 但这个版本的浏览器只能用来浏览,不具备与访问者互动的能力


一、JavaScript起源

  1、1994年,网景公司(Netscape)发布了Navigator浏览器0.9版

    是历史上第一个比较成熟的网络浏览器 , 但这个版本的浏览器只能用来浏览,不具备与访问者互动的能力

  2、网景公司当时有两个选择:

    允许现有语言直接嵌入网页(推广方便,兼容性差)

    发明一种全新语言(推广难,不用考虑兼容性)

       3、1995年Sun公司将Oak语言改名为Java,正式向市场推出, 许诺这种语言可以"一次编写,到处运行"(Write Once, Run Anywhere)

    4、网景公司与Sun公司联盟 ,雇佣 34岁的系统程序员Brendan Eich

   被指定为这种"简化版Java语言"的设计师 , 为了应付公司安排的任务,他只用10天时间就把Javascript设计出来了。

   他的设计思路是这样的:

(1)借鉴C语言的基本语法;

(2)借鉴Java语言的数据类型和内存管理;

(3)借鉴Scheme语言,将函数提升到"第一等公民"(first class)的地位;

(4)借鉴Self语言,使用基于原型(prototype)的继承机制。

  所以,Javascript语言实际上是两种语言风格的混合产物----(简化的)函数式编程+(简化的)面向对象编程。这是由Brendan Eich(函数式编程)与网景公司(面向对象编程)共同决定的。

二、JavaScript用途

一般用来编写客户端脚本,来为html页面添加交互行为,是前台语言,而不是后台语言(node.js除外)

三、JavaScript的特点

  1、解释执行(浏览器就是解释器):事先不编译、逐行执行、无需进行严格的变量声明。

  2、简单易用:可以使用任何文本编辑工具编写,只需要浏览器就可以执行程序。

  3、基于对象:内置大量现成对象,编写少量程序可以完成目标 

四、JavaScript组成

  1、ECMAScript:JavaScript的语法标准。包括变量、表达式、运算符、函数、if语句、for语句等。

  2、文档对象模型(DOM) Document object model:操作网页上的元素的API。比如让盒子移动、变色、轮播图等。

  3、浏览器对象模型(BOM) Broswer object model:操作浏览器部分功能的API。比如让浏览器自动滚动。 

五、ECMAScript和JavaScript的关系

1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECMA,希望这门语言能够成为国际标准。次年,ECMA发布262号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是1.0版。  该标准一开始就是针对JavaScript语言制定的,但是没有称其为JavaScript,有两个方面的原因。一是商标,JavaScript本身已被Netscape注册为商标。而是想体现这门语言的制定者是ECMA,而不是Netscape,这样有利于保证这门语言的开发性和中立性。  因此ECMAScript和JavaScript的关系是,前者是后者的标准,后者是前者的一种实现。

六、ECMAScript的历史

年份 名称 描述
1997 ECMAScript 1 第一个版本
1998 ECMAScript 2 版本变更
1999 ECMAScript 3

添加正则表达式

添加try/catch

  ECMAScript 4 没有发布
2009 ECMAScript 5

添加"strict mode"严格模式

添加JSON支持

2011 ECMAScript 5.1 版本变更
2015 ECMAScript 6(ES6) 添加类和模块
2016 ECMAScript 7

增加指数运算符(**)

增加Array.prototype.includes

 

 

 

 

 

 

 

 

 

 

七、js是弱类型、动态语言

#1、弱类型、强类型 按照计算机语言的类型系统的设计方式,可以分为强类型和弱类型两种。二者之间的区别,就在于计算时是否可以不同类型之间对使用者透明地隐式转换。从使用者的角度来看,如果一个语言可以隐式转换它的所有类型,那么它的变量、表达式等在参与运算时,即使类型不正确,也能通过隐式转换来得到正确地类型,这对使用者而言,就好像所有类型都能进行所有运算一样,这样的语言被称作弱类型  #2、动态语言,静态语言 动态语言:声明变量时无需指定类型 静态语言:声明变量时必先指定类型   #3、JavaScript是一种弱类型、动态语言,弱类型具体表现如下  #2.1、一般规律是,约束越强越不容易出错,但编写程序时也越麻烦。在JavaScript中,因为约束比较弱,所以容易出现这种错误:最简单的例子:  var a =200;    var b ="1";    var c= a + b;   你可能期望c是201,但实际上它是"2001",这个错误在强类型语言中决不会出现。然而正是因为JavaScript没有这些约束,所以可以很方便地拼接数字和字符串类型。  #2.2、再比如下面这个例子: var a = '11'; a = a - ''; alert(typeof a);// -->number “-”可以是一元运算符(取负),也可以是二元(减法运算)  js是弱类型语言