1)ECMAScript是一个标准,然后被广泛应用于浏览器的客户端脚本,它的表现形式有JavaScript、JScript和ActionScript

ECMAScript标准是不断的更新发展,比如在ES6中就有:类、模块、块级作用域(let const)、箭头函数等

2)Javacript 是ECMAScript 实现的一种脚本语言,运行在浏览器端的脚本语言,一般是用来做客户端页面的交互,一个完整的JavaScript由3个不同的部分组成:ECMAScript DOM BOM

javascript的运行环境

javascript的运行环境是运行在浏览器内核中的JS引擎

js只可以运行在浏览器中吗?

不是

js能运行在浏览器中,是因为浏览器为其提供了Js引擎

js能运行在哪,取决于这个环境有没有特定的平台(有没有提供JS引擎)

浏览器的作用:

1)作请求和响应的(打开浏览器,在地址栏输入地址,输入enter):请求一个HTTP地址(封装一个请求报文),浏览器最大的一个作用就是将一个URL地址封装成一个请求报文

2)解析服务器返回来的响应报文(内容有可能不一样)

渲染引擎的作用:html => 渲染HTML css => 渲染css image => 渲染image

js引擎的作用: js => 执行(解析)js

运行在浏览器中的js能做什么?

1)操作DOM(对DOM增删改、注册事件)

2)AJAX操作/跨域

3)BOM( 页面跳转、历史记录、console.log() 、alert() )

4)ECMAScript

运行在浏览器中的js不能做什么?

1)不能对文件操作(文件的增删改查CDUR)

2)没有办法操作系统

3)没有办法操作网络

为什么没有上面的功能

由于js运行环境特殊(js运行在浏览器的js引擎中,写的代码是在不认识的人的浏览器中运行),比如说在服务器上写了一个js文件,由于js并不是在服务器上执行,而是在客户端执行,客户端在一开始的时候发送了一个index.js的请求,请求完之后拿到这个文件,在浏览器的执行引擎里面执行indx.js,相当于他要是有这个功能的话,这个js文件,只要是客户端请求了,就能操作操作系统的信息,读取本地文件这是有问题的。对于用户访问一个网页是无感知的,它不知道网页背后做了什么,万一Js读了一个文件,把文件信息发出去了,对这个文件而言,就是一个隐形的暴露。所以说最早的时候,不是不能做,由于运行环境比较特殊,没法做

在开发人员能力相同的情况下,编程语言的能力取决于什么?

1)语言本身只是提供定义变量,定义函数,定义类型、流程控制、循环结构之类的操作

2)编程语言的能力取决于运行该语言的平台(环境)

3)对于js而言,我们常说的Js实际是ECMAScript,大部分能力都是由浏览器的执行引擎决定的

4)BOM和DOM是浏览器开放出来的API

Cordova平台提供JS调用摄像头,操作本地文件的API

JAVA:1)java既是语言也是平台 2)java运行在java虚拟机上面,java虚拟机可以跨平台,所以不需要运行在多个平台上(跑java代码的)(唯一的运行平台)

C#语言:平台 .net framework,也可以运行在MONO平台上(有人需要将C#运行在Linux平台上,所以出现了MONO)

PHP:既是语言也是平台,只能运行在PHP平台上(PHP可以跨操作系统)