01-初识JavaScript

初识JavaScript

    • 1.初识JavaScript
        • 1.1.什么是JavaScript
        • 1.2.JavaScript的组成部分
        • 1.3.JavaScript的历史
          • JavaScript发展历史
          • 系统环境
          • 编辑器
          • 运行环境
          • 调试:
    • 2. js组成
          • 1) ECMAScrpt 【js标准】(兼容性100%) (类似于CoreJava,制定了基础的语法)
          • 2) DOM:Document Object Model文档对象模型
          • 3) BOM:Browser Object Model 浏览器对象模型
          • js解释器:
          • js特点
          • 在网页中使用JavaScript
          • 在网页中使用JavaScript
          • 在body和head中使用JavaScript的区别
          • 在vi/vim中编写JavaScript
          • 注释
    • 3.关键字与保留字
          • 1) 区分大小写
          • 2) 标识符
    • 4.变量
    • 5.数据类型
          • JavaScript 拥有动态类型
          • 字符串 String
          • 数字 Number
          • 整数:
          • 浮点数:
          • 非数值:
          • 非数值检测:
          • 数值范围:
          • 数值范围检测:
          • 布尔 Boolean
          • Null
          • Undefined
          • undefined 与null关系
      • 引用数据类型
          • 对象Object
          • 数组Array
          • 函数Function
        • 基本数据类型和引用数据类型在内存中如何存储
          • 基本数据类型
          • 结论:**基本数据类型的值存在栈,值与值之间独立存在,修改一个值不会影响其他变量**
          • 引用数据类型
          • 结论:**当栈存放引用类型时,值为对象的地址,obj与obj1指向同一个地址,所以当obj的name值变为“lisi”时,obj1也会发生变化**
          • 深拷贝与浅拷贝
          • 实现深拷贝的方法
    • 6. 类型判断

1.初识JavaScript

1.1.什么是JavaScript

JavaScript ( JS ) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web 页面的脚本语言而出名的,但是它也被用到了很多非浏览器环境中,例如 Node.js、 Apache CouchDB 和 Adobe Acrobat。JavaScript 是一种基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如函数式编程)风格。

1.2.JavaScript的组成部分
  • ECMAScript,描述了该语言的语法和基本对象。
  • 文档对象模型(DOM),描述处理网页内容的方法和接口。
  • 浏览器对象模型(BOM),描述与浏览器6+进行交互的方法和接口。
1.3.JavaScript的历史

​ 1994 年,网景公司(Netscape)发布了 Navigator 浏览器0.9版。这是历史上第一个比较成熟的网络浏览器,轰动一时。但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力。网景公司急需一种网页脚本语言,使得浏览器可以与网页互动。

​ 1995年5月,网景公司做出决策,未来的网页脚本语言必须"看上去与 Java 足够相似",但是比 Java 简单,使得非专业的网页作者也能很快上手。这个决策实际上将 Perl、Python、Tcl、Scheme 等非面向对象编程的语言都排除在外了。

​ JavaScript最初由Netscape的Brendan Eich设计,创始人Brendan Eich只用了10天就把JavaScript设计出来了;最初将其脚本语言命名为LiveScript,后来Netscape在与Sun合作之后将其改名为JavaScript。JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”,因此语法上有类似之处,一些名称和命名规范也借自Java,但JavaScript的主要设计原则源自Self和Scheme。

​ JavaScript诞生于1995年,当时的主要目的是处理由以前服务器语言负责的一些没有填写的必填域,是否输入了无效的值。在web日益流行的同时,人们对客户端脚本语言的需求也越来越强烈,那时绝大多数因特网用户使用的速度仅为28.8kbit/s的猫上网,但网页的大小和复杂性却不断增加,未完成简单的表单验证而与服务器交换数据只会加重用户和服务器的负担。

JavaScript发展历史

(1)JavaScript被设计出来后最初命名为Mocha,1995年9月在Netscape Navigator 2.0的Beta版中改名 为LiveScript,同年12月,Netscape Navigator 2.0 Beta 3中部署时被重命名为JavaScript;

(2)1996年8月IE 3 发布,支持 jscript (微软实现的 js)

(3)1996年11月,网景向ECMA提交语言标准,由于版权问题,js 语言标准不叫 JavaScript,叫ECMAScript

(4)1997年6月,第一版ECMAScript发布

(5)1999年12月,第三版ECMAScript发布,这个版本使用最广(第四版没有发行成功)

(6)2006 年,jQuery 发布,它是目前最长寿的 js 库

(7)2009年12月,第五版ECMAScript发布,增加了一些功能

(8)2009 年,Ryan 基于 V8 (Chrome 的 js 引擎叫做 V8)创建了 Node.js

(9)2010年,Isaac基于node.js写出了npm

(10)2015年6月,第六版ECMAScript发布,新浏览器都支持这一版(之后每年发布一版,版本号以年份命 名)

JavaScript的兴起:需要一门语言可以直接运行在浏览器中,完成表单验证,减轻服务器的压力

ECMAScript5:编程(数据结构、逻辑控制、算法、内存分配、高级应用BOM-浏览器对象模型、DOM:应用程序API-文档对象模型)

早期主要运行在浏览器端,用于表单验证以及动画的实现。随着js版本的升级,现在的js可以运行在nodejs上,而nodejs又可以安装在绝大多数的操作系统中,所以js可以运行在绝大多数的系统中,除了完成表单验证以及动画的实现还可以进行服务器端编程,甚至于硬件编程。

JavaScript 的标准是 ECMAScript 。截至 2012 年,所有的现代浏览器都完整的支持 ECMAScript 5.1,2015年6月17日,ECMA国际组织发布了 ECMAScript 的第六版,该版本正式名称为 ECMAScript 2015,但通常被称为 ECMAScript 6 或者 ES6。

需要注意的是,js不同于Java。Java是由sun公司开发并且维护,只能运行在jdk中。而js可以运行在绝大多数的浏览器中,主流浏览器就有IE、firefox、google chrome、safari…。那这样js的版本是不是就会有很多呢?如果这样,岂不是乱套了:程序员编写的js代码可以运行在firefox中,但是运行在IE中就会有问题。实际上,在早期确实有这样的问题,后来大家觉得这样搞下去会出问题,所以就坐在一起商量一套统一的语法,由于制定语法的这个组织叫ECMA,所以JavaScript的标准就是ECMAScript,这个ECMAScript中有哪些东西,实际上就是变量,表达式,关键字…的基础语法。

JavaScript是一个编程语言,允许用户在浏览器页面上完成复杂的事情。浏览器页面并不总是静态的,往往显示一些需要动态更新的内容,交互式地图,动画,以及视频等。一个完整的JavaScript包括核心(ECMAScript),应用程序编程接口即API (比如DOM(Document Object Model),BOM(Browser Object Model)),以及其他第三方API。JavaScript与HTML、CSS一同配合共同完成一个复杂页面的显示。

通常所说的JavaScript是应用在浏览器中,一般包括ECMAScript、DOM、BOM。ECMAScript为标准,DOM为浏览器提供的js操作html/css的js API,BOM为浏览器提供的js操作浏览器的js API。而JavaScript如果应用在nodejs中,则通常用于服务器端编程,可以进行io操作,网络操作等。

特点
客户端代码,在客户机上执行
1.JavaScript特殊的地方在于它也可以作为服务器端代码执行,但是需要搭建Node环境。node hello.js
2.在浏览器上运行
解释性语言
被内置于浏览器或者Nodejs平台中的js解析器解析执行,执行前无需编译
弱类型语言
从上往下顺序解析执行

系统环境

Linux 操作系统的环境*

Windows

MacOS

编辑器

vi、vim*

vscode/sublime

运行环境

旧:JavaScript不能独立运行+网页+console/fireBug

nodejs*

调试:

火狐:firebug

console.log()/弹框alert

2. js组成

1) ECMAScrpt 【js标准】(兼容性100%) (类似于CoreJava,制定了基础的语法)

注释 // 、/**/

变量

操作符

流程控制语句

数组

对象

函数

正则表达式

所有的js解释器都可以兼容ECMAScript

2) DOM:Document Object Model文档对象模型

js操作html的api

是针对XML但经过扩展用于HTML的应用程序编程接口。DOM将整个页面映射成一个多节点结构。

var dom=document.getElementsByTagName(“input”);

var dom=document.getElementById(“input_name”);

dom.οnclick=function(){}

js语言:基础语法、基础库、扩展库(jQuery DOM库)

3) BOM:Browser Object Model 浏览器对象模型

js操作浏览器的api

开发人员可以使用BOM控制浏览器显示的页面以外的部分。弹出新浏览器窗口;移动,缩放,关闭浏览器的功能;提供浏览器详细信息的navigator对象;提供浏览器所加载页面的详细信息的location对象;提供用户显示器分辨率详细信息的screen对象;对cookies的支持;支持XMLHttpRequest,IE中的ActiveXObject自定义对象

alert()/prompt()/confirm()

setInterval(),setTimeout()

XMLHttpRequest

Ajax

这里需要注意的是,只有ECMAScript是标准,也就是在绝大多数浏览器以及js解析器(node)中运行效果相同,但是DOM与BOM是各大浏览器厂商自己提供的API,在使用上大同小异,但是也可能会出现少许不兼容的情况

js解释器:

1)浏览器厂商:Firefox(js标准)、IE(js)、Google(js)

兼容性:

JavaScript的三个组成部分,在当前五个主要浏览器(IE,Firefox,Chrom,Safari,Opera)中得到了不同程度支持,其中,所有浏览器对ECMAScript3支持大体都还不错,对ECMAScript支持程度越来越高,但对DOM的支持彼此相差较多,对已经正式纳入HTML5标准的BOM来说,尽管各浏览器都实现了某些众所周知的共同特性,但其他特性还因浏览器而异。

2)nodejs【网络编程(http模块)/数据库操作(mysql)/IO文件(file)】

http://nodejs.cn可以安装在linux windows macos unix等主流操作系统上

特征:可以运行在客户端、服务器端,解释性语言,弱类型语言,从上到下顺序执行。

在nodejs中,不存在兼容性问题,因为nodejs中压根就没有dom/bom,因此切记不要在nodejs中执行任何dom和bom代码,由于不存在兼容性问题,nodejs是可以大量发挥js高级标准,ES6语法一般在nodejs中可以完全运行。

js特点
  1. 解释型语言

js -> nodejs(js解释器)

  1. 弱类型语言

变量的数据类型取决于值的数据类型

var a ;

a = 2; // a的数据类型为number

a = true; // a的数据类型为boolean

  1. 顺序解释执行
  2. 既可以作为前端脚本语言,也可以作为后端语言,取决于应用平台(浏览器/操作系统)和使用的框架(dom、jquery/http、mysql、file)
在网页中使用JavaScript

内部JavaScript
编写好HTML,在标签体中添加

你可能感兴趣的:(JavaScript,javascript,开发语言,ecmascript,前端)