JS基础语法
一个不错的网站:javascript.info
1.JS(JavaScript)简介
1.1 是什么?
JavaScript(简称“JS”) 是一种具有函数优先的轻量级、弱类型,解释型或即时编译型的编程语言。JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
脚本语言
不用编译直接执行。
无法独立执行。
必须依赖其他的程序(浏览器)才能执行。
1.2 能干嘛?
web标准----网页的组成部分
结构 HTML 从语义的角度,描述页面的结构
表现 CSS 从审美的角度,美化页面
行为 JavaScript 从交互的角度,提升用户体验HTML+CSS: 用来实现网页的结构搭建和样式修饰
JS实战应用:用于实现网页特效&交互
1.3 组成
JavaScript 由三个部分组成:ECMA、BOM、DOM
ECMAScript(标准/规则):描述了JS语言的语法和基本对象,规定JS基础语法和规则
BOM(浏览器对象模型):描述处理浏览器的方法和接口,让js有能力操作浏览器
DOM(文档对象模型):描述与网页元素内容交互的方法和接口,让js有能力操作网页
2.引用JavaScript
对于JS程序的引入我们分为三种方式:
1、内部 (学习中使用比较多)
2、外部 (工作中推荐使用)
3、内联 (一般不推荐使用)
2.1 内部引入
在页面中使用一对script标签,将JS代码写在script标签内部。
<script> alert("hello world!!");</script>- 注:script标签 可以放在 head中 也可以放在 body中
2.2 外部引入
使用script标签的src属性引入一个外部的以.js为扩展名的文件,在.js文件中直接编写JS代码即可。
HTML文件中书写:
<script src="路径及文件名.js"></script>注意:使用script标签引入外部js文件时,当前script标签内部不能再书写js代码
- 注:script标签 可以放在 head中 也可以放在 body中,并且一个页面可以引入多个 js文件。
2.1.1 defer和async
当我们使用<script></script> 标签引入js文件时,可以通过defer和async改变js文件的加载时机
- defer:整个页面正常渲染结束,才会执行此js文件的代码,渲染完再执行
- async:一旦此js文件下载完,就会执行,下载完就执行
<script src="./js" defer></script>
<script src="./js" async></script>如果有多个defer脚本,会按照他们在页面出现的顺序加载
而多个async脚本则不能保证加载顺序,因为一旦有下载完毕的async脚本就会立即执行
defer 和 async 在网络读取(下载)这块儿是一样的,都是异步的(相较于 HTML 解析)
2.3 内联使用
将JS代码直接写在标签内部,作为标签的属性值出现。
<!-- 正常元素书写 -->
<div onclick='alert("hello world!!")'>点击试试</div>
<!-- a标签书写 -->
<a href='javascript:alert("hello world!!")'>点击试试</a>
<!-- 注意:需要点击标签才能出发代码执行 -->3. 常用的输出语法
3.1 alert
作用:alert会弹出一个警告框
语法:alert("内容")
alert("hello world");3.2 document.write
作用:网页中写入内容(可以识别标签)
语法:document.write("内容")
document.write("hello world");
document.write("<h1>hello world</h1>");3.3 console对象
console对象上有众多输出函数可以使用,常用的为console.log()
| 方法 | 描述 |
|---|---|
| assert() | 如果断言为 false,则在信息到控制台输出错误信息。 |
| clear() | 清除控制台上的信息。 |
| count() | 记录 count() 调用次数,一般用于计数。 |
| error() | 输出错误信息到控制台 |
| group() | 在控制台创建一个信息分组。 一个完整的信息分组以 console.group() 开始,console.groupEnd() 结束 |
| groupCollapsed() | 在控制台创建一个信息分组。 类似 console.group() ,但它默认是折叠的。 |
| groupEnd() | 设置当前信息分组结束 |
| info() | 控制台输出一条信息 |
| log() | 控制台输出一条信息 |
| table() | 以表格形式显示数据 |
| time() | 计时器,开始计时间,与 timeEnd() 联合使用,用于算出一个操作所花费的准确时间。 |
| timeEnd() | 计时结束 |
| trace() | 显示当前执行的代码在堆栈中的调用路径。 |
| warn() | 输出警告信息,信息最前面加一个黄色三角,表示警告 |
3.4 prompt
作用:prompt:弹出一个输入框,可以输入值
语法:
var data = prompt("内容")返回:返回用户输入的内容,通过变量接受 var data = prompt("请输入你的真实年龄");
4.JS的注释
需求为了便于多人协作开发,加快开发速度,增加代码可读性,要养成写注释的习惯。
语法
// 单行注释
/* 这是多行注释
中间的所有内容都会被注释
*/