持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第18天
初识JavaScript
JavaScript的历史
- 创始人:布兰登艾奇
- 1995年花费了10天完成了JavaScript的设计
- 最初命名为LiveScript,后来更名为JavaScript
JavaScript是什么
- JavaScript是世界上最流行的语言之一,是一种运行在客户端的脚本语言(Script是脚本的意思)
- 脚本语言:不需要编译,运行过程中由js解释器(js引擎)逐行来进行解释并执行
- 现在也可以基于Node.js技术进行服务器端编程
JavaScript的作用
- 表单动态校验(密码强度检验)(JS最初的生产目的)
- 网页特效
- 服务端开发(Node.js)
- 桌面程序(Electron)
- App(Cordova)
- 控制硬件-物联网(Ruff)
- 游戏开发(cocos2d-js)
HTML/CSS/JS的关系
- HTML决定网页的结构和内容
- CSS决定网页呈现给用户的模样
- JS实现业务逻辑和页面的控制
浏览器执行JS简介
- 渲染引擎(内核):用来解析HTML和CSS的,俗称内核,比如chrome浏览器的blink,老版的webkit
- JS引擎:也称为JS解释器,用来读取网页中的Javascript代码,对其处理后运行,比如chrome浏览器的V8
浏览器本身并不会执行JS代码,而是通过内置的Javascript引擎(解释器)来执行JS代码,js引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行,所以Javascript语言归为脚本语言,会逐行解释执行
JS的组成
-
JS基础:ECMAScript
-
ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,European Computer Manufacturers Association)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,所以它可以理解为是JavaScript的一个标准,但实际上后两者是ECMA-262标准的实现和扩展。
ECMAScript规定了JS的编程语法和基础核心知识点,是所有浏览器厂商共同遵守的一套JS语法工业标准
-
API:DOM和BOM
-
DOM:文档对象模型,是W3C组织推荐的处理可拓展标记语言的标准编程接口。通过DOM提供的接口可以对页面上的各种元素进行操作(大小,位置,颜色等)
-
BOM:浏览器对象模型,提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出框、控制浏览器跳转、获取分辨率等
JS的初应用
JS的三种书写位置,分别是行内、内嵌、外部
- 行内js
<body>
<!--行内式的JS 直接写到元素的内部-->
<input type="button" value="甘雨" onclick="alert('王小美')"/>
</body>
</html>
- 可以将单行或少量的js代码写在HTML标签的事件属性中(以on开头的属性),如:onclick
- 注意单双引号的使用:在HTML中我们推荐使用双引号,js中我们推荐使用单引号
- 可读性差,在heml中编写大量js代码时,不方便阅读
- 引号易错,引号多层嵌套匹配时,非常容易弄混
- 特殊情况下使用
- 内嵌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, initial-scale=1.0">
<title>Document</title>
<!--内嵌式的JS-->
<script>
alert('椰羊');
</script>
</head>
- 可以将多行JS代码写到
<script>标签中 - 内嵌JS是学习时常用的方式
- 外部js
- 在根目录下建一个js文件
- 在html文件中引入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, initial-scale=1.0">
<title>Document</title>
<!--外部js, script 双标签-->
<script src="xx.js"></script>
</head>
- 利于HTML页面代码结构化,把大段JS代码独立到HTML页面外,既美观,也方便文件级别的复用
- 引用外部JS文件的script标签中间不可以写代码
- 适用于JS代码量较大的情况