JavaScript
什么是JavaScript
JavaScript是一个轻量级的脚本语言。不具备开发操作系统的能力,只是用来编写或控制其他大型应用程序的脚本(在其他大型程序内部运行的语言)。
JavaScript简称JS,也是一种嵌入式语言,本身提供的核心语法不算很多,只能做一些数学和逻辑运算。js本身不提供任何I/O(输入,输出)相关的操作。主要靠宿主环境,提供相应的API(应用程序功能的接口)。
对于前端,JS的主要宿主(运行)环境是浏览器
JS能做什么
- 操作浏览器的能力:js的宿主环境是浏览器,浏览器给js提供了很多的API可以操作浏览器实现各类交互效果。
- HTML5 出现以后,浏览器的本身功能越来越强,浏览器不仅是浏览器网页,可以调用操作系统相关的功能,如果本地文件,图片,摄像头,麦克风,调用手机的很多功能...
- 利用Node.js 平台,可以做web服务器开发(后端开发)
- 数据库操作,如NoSql(非关系型数据库),本身基于js的JSON格式,支持JS作为操作语言。
- 移动平台开发,如果开发webapp(把JS和h5打包到一个容器中)
- 内嵌脚本,其他很多应用嵌入js,使js可以操作对应的应用。
- h5游戏,基于js的游戏的引擎,可以做各类游戏开发。
- 3D特效,利用3D的js库(D3.js,three.js)可以做各类3D项目
JS 与 ECMAScript 的关系
Netspace 网景公司为了与微软竞争,把js提交给了ECMA组织(欧洲计算机制造协会)使其进行了国际化标准。ECMA主要指定了JS的语法\结构\部署环境等相关标准。JS与ECMAScript指的都是一种语言。
JavaScript与Java没有任何关系,Netspace公司为了让语言更有名气,蹭Java的热度,取名叫JavaScript
ECMA在2015年发布了ECMAScript 6的版本,正式更名为ECMAScript 2015
由于ES6版本相对于之前版本,改动非常大,所以ES6是最出名,现在大家所说的ES6指的ES6及后面的版本。
ECMA以后每年都会发布一个版本
JS的基本语法
写入js代码的方法
JS的宿主环境是浏览器,所以需要把js放入html标签,通过浏览器运行html,解析运行js
1.通过<script>标签包裹js代码:
-
script 脚本标签,告诉浏览器这是一个脚本语言,js代码就放入script标签之间
-
type="text/javascript" 生命脚本的类型,h5 可以省略该属性(h5默认的脚本就是js)
-
script 标签可以放在任意位置,可以有多个script标签
<script type="text/javascript">
//document 表示当前的网页,write()可以在当前网页打印内容。
document.write("hello js")
</Script>
document.write("外部文件")
<!-- 引入外部的js代码 -->
<script src="./js/main.js"></script>
....
<script src="./js/main.js" defer ></script>
</body>
语句
JS程序执行的单位是行,也就是一行一行的执行代码。一般情况下,每一行都是一个语句。
<script>
document.write("a")
document.write("b")
</script>
<script>
document.write("a");document.write("b");
</script>
变量
var name; // var 创建 一个name的变量(声明变量)
name="苹果" // 变量赋值(把苹果赋值给name变量)
document.write(name); // write可以处一个变量,由于name的值是苹果,程序执行的时候会查询name变量对应的值并使用。
2. 变量创建后需要赋值才能使用,如果不给变量赋值,变量默认值是undefifined(未定义)
var age;
document.write(age)
var sex="man"; // 等于 var sex; sex = "man"
name1="zhangsan"
5. 变量没有声明同时也没有赋值,直接使用会报错。js代码运行出错,则会停止后面代码的运行。
f12 在console控制台能看到js报错信息
document.write(x)
var a,b,c;
a=10;b=14;c=21;
var y=1;
var y=2; //等于 var y; y=2; var y失效,y=2是有效的。
-
第一个字符,可以是任意 Unicode 字母(包括英文字母和其他语言的字母),以及美元符号( $ )和下划线( _ )
-
第二个字符及后面的字符,除了 Unicode 字母、美元符号和下划线,还可以用数字 0 - 9 。
-
变量命名一般要有一定的语义,多个单词的变量用小驼峰命名法( 小驼峰 : 第二个单词开始,首字母大写。大驼峰: 所有单词的首字母大写 )
var classRoom; // 小驼峰 var ClassRoom; // 大驼峰
- js的变量名区分大小写,大写和小写是不一样的变量
- 变量命名不能用js内置的关键词
JavaScript 有一些保留字,不能用作标识符(变量名):arguments、break、case、catch、class、const、continue、debugger、default、delete、do、else、enum、eval、export、extends、false、fifinally、for、function、if、implements、import、in、instanceof、interface、let、new、null、package、private、protected、public、return、static、super、switch、this、throw、true、try、typeof、var、void、while、with、yield。