html是超文本标记语言。
1.什么是JavaScript?
javascript是一个轻量级的脚本语言,不具备开发操作系统的能力。只是用来编写或控制其他大型应用程序的脚本(在其他大型程序内部运行的语言)。
JavaScript简称为JS。也是一种嵌入式语言,本身提供的核心语法不算很多,只能做一些数学和逻辑运算。JS本身不提供任何I/O。主要靠宿主环境,提供响应的API(该程序的接口)。对于前端,JS的主要宿主环境是浏览器。
2.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项目
3.JS与ECMAScript的关系
Netspace网景公司为了与微软竞争,把js提交给了ECMA组织,使其进行了国际化标准。ECMA主要指定了JS的语法\结构\部署环境等相关标准。
JS和ECMAScript指的都是一种语言。JAVA和JS是没有关系的,是Netspace为了让语言更有名气,蹭java的热度,取名叫javaScript。
ECMA在2015年发布了6.0的版本,正式更名为ESMAScript2015
由于ES6版本相对于之前的版本,做了很大改动,所以ES6是最出名,现在大家所说的ES6可以理解为6.0以后的版本
以后每年都会发布一个版本。
JS基本语法
写入js代码的方法,JS宿主环境是浏览器,所以需要把js放入html标签,通过浏览器解析运行
建议:引入外部js文件,当前页面写script,只能当前页面用。
1. 网页运行的时候首先会把代码加载到浏览器中,
然后解析这段代码。解析的时候有css文件会加载对应的css文件。有script脚本会执行对应的脚本,如果是引入外部js代码,就等待js代码记载完成再继续。
所以,如果js 文件比较大,加载的时间可能就会比较久。
可以给script标签添加defer属性,让js代码异步加载(渲染html标签的时候同时加载js 文件,js不会阻塞html渲染)
2.并且js可能会操作dom(html标签),
在头部引入可能js运行的时候后面的html标签都没有晕染,就会出错。因此,建议大家把js代码插入在html代码body结束标签之前。
还有一个方法是在标签里面嵌入,但是这种方法很少用。
语句
js程序执行的单位是行,也就是一行一行的执行代码。一般情况下,每一行都是一个语句。
如果有;(分号),则是分号前面为一个语句,多个分号分隔的语句写在一行。(如果多个语句在一行,必须加分号分隔)
如果一个语句一行,则不建议加分号。
js代码执行顺序是从上往下执行。
变量
变量可以理解为数学里面的未知数。可以表示一个值,引用变量就相当于引用了值。
(变量相当于一个盒子,装不同的内容,拿到盒子的时候就是拿到对应的内容)
1.变量是对一个具体值的引用
以上是声明变量,给变量赋值,然后打印变量。
name的值是苹果,用到name 的地方,程序执行的时候会查询name变量对应的值并使用。
2.变量创建后要赋值才能使用,如果不给变量赋值,变量默认undfined(没有定义)
3.创建变量可以直接赋值
4.变量不用var关键词也是可以,但是用var关键词有创建变量的语义,可读性更强。
(ES5的缺点,不建议)
5.变量没有声明同时没有赋值,直接使用则会报错
js代码运行出错会终止后面代码的运行
F12打开控制台,Console会显示js相关运行信息
6.可以在同一条var命令中声明多个变量
此时赋值只能单独赋值。
7.如果var声明了一个已经存在的变量,则无效
输出是1而不是第二次定义的undefined
输出是2!var y=2;等价于var y;y=2;只会忽略var y;的运行。相当于变量重新赋值了。
8.var创建变量名的规范和html的ID命名类似。
以字母,$,_开头,后面可以是字母,数字,$,_,-符号的组合
变量命名一般要有一定的语义,多个单词的变量用小 驼峰命名法
(小驼峰:第二个单词开始,首字母大写。大驼峰:所有单词的首字母大写。)
俩个不是一个变量
js的变量名区分大小写,大写和小写是不一样的变量。
变量名不能用系统内置的关键词(如:var,if,else,for,switch等)