1.什么是JavaScript
JavaScript ( JS ) 是⼀种具有函数优先的轻量级,解释型或即时编译型的编程语⾔。虽然它是作为开发Web ⻚⾯的脚本语⾔⽽出名的,但是它也被⽤到了很多⾮浏览器环境中,例如 Node.js、 Apache CouchDB 和 Adobe Acrobat。JavaScript 是⼀种基于原型编程、多范式的动态脚本语 ⾔,并且⽀持⾯向对象、命令式和声明式(如函数式编程)⻛格。
foo()
function foo(){}
1.1.JavaScript的组成部分
ECMScript(核心js)
变量 注释(/**多行注释*/、 // 单行注释) 对象 数组 函数 原型链 设计模式....
DOM(Document Object Model)文档对象模型 操作html的api和接口
绑定事件
各个浏览器厂商对dom支持程度不同 jQuery(浅封装dom)
BOM(Browser Object Model)浏览器对象模型 操作浏览器的api和接口
ajax 超时调用 间歇调用 location history
1.2.JavaScript的特点
1.解释性语⾔ 被内置于浏览器或者Nodejs平台中的js解析器解析执⾏,执⾏前⽆需编译
2.弱类型语⾔,变量的数据类型取决于值的数据类型
弱类型语言具有如下特点:1>变量的数据类型在初始化的时候确定 2>变量的数据类型可以随时发⽣改变 3>类型细分不明显
3.从上往下顺序解析执⾏
4.区分大小写 大小写敏感
1.3.JavaScript的运行环境
Nodejs
浏览器 内置js解析器
1.4.在网页中使用JavaScript
内部JavaScript
编写好HTML,在<head>标签体中添加<script>元素,然后将js代码填写进来即可
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initialscale=1.0">
<title>Document</title>
<script type="text/javascript">
alert('hello javascript')
</script>
</head>
<body>
</body>
</html>
外部JavaScript
单独新建⼀个后缀名为.js的js⽂件,编写好HTML⽂件,在<head>标签体中添加<script>元素,使⽤script标签的src属性将将js⽂件导⼊进来。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initialscale=1.0">
<title>Document</title>
<script type="text/javascript" src="hello.js"></script>
</head>
<body>
</body>
</html>
在body和head中使⽤JavaScript的区别 :在body部分中的JavaScript会在⻚⾯加载的时候被执⾏,在head部分中 的JavaScript会在被调⽤的时候才执⾏。
因为浏览器解析html是从上到下的。如果把JavaScript放在head⾥的 话,则先被解析,但这时候body还没有解析,所以会返回空值。⼀般都会 绑定⼀个监听,当全部的html⽂档解析完之后再执⾏代码。
这就说明了,如果我们想定义⼀个全局对象,⽽这个对象是⻚⾯中的某个 按钮时,我们必须将其放⼊body中,道理很明显:如果放⼊head,那当你 定义的时候,那个按钮都没有被加载,可能获得的是⼀个undefind。⼀般习惯将JavaScript放在body的最后⾯,类似last-child。
2.声明标识符规则
1.不能由下划线或者数字开头
2.由字母、数字、下划线、$组成
3.不能使用关键字和保留字
4.建议使用驼峰式命名
firstName 小驼峰
FirstName 大驼峰
3.变量
3.1.变量的使用
声明 var message;
初始化 message = "hello"
声明并初始化 var message = "hello";
定义多个变量 var message= "hello",found=false, age = 29;
3.2.var
var (es5) let const(es6)
1. 变量可以重复声明
2.变量声明会被提升 (函数的声明也会)
3.var声明的变量的作⽤域
函数内部作用域和函数外部作用域
function foo(){
var a = 10;
b = 20;
}
函数内部作用域:使用var声明变量,仅函数内部可见。直接声明变量 也是全局变量
函数外部作用:将变量声明在函数外部,全局可见