JavaScript 是 Web 开发领域中的一种功能强大的编程语言。主要用于开发交互式的 Web 页面,使网页的互动性更强,用户体验更好。
JavaScript 是世界上最流行的语言之一,是一种运行在客户端的脚本语言 (Script 是脚本的意思)。
脚本语言:不需要编译,运行过程中由 js 解释器( js 引擎)逐行来进行解释并执行
Web页面是由多个网页组成的。网页制作涉及的技术:HTML、CSS 和 JavaScript。
JavaScript 内嵌于 HTML 网页中,通过浏览器内置的 JavaScript 引擎直接编译,把一个原本只用来显示的页面,转变成支持用户交互的页面程序。
1995 年,Netscape(网景)公司,现在的 Mozilla 的 Brendan Eich(布兰登·艾奇)在网景导航者浏览器上首次设计出了 JavaScript。
Netscape 最初将这个脚本语言命名为 LiveScript。由于当时Sun公司(2009年被Oracle公司收购)推出的 Java 语言备受关注,Netscape 公司为了营销借用了 Java 这个名称。JavaScript 与 Java 本质上是两种不同的编程语言,并无任何关系。
JavaScript 在设计之初是一种可以嵌入到网页中的编程语言,用来控制浏览器的行为。比如,直接在浏览器中进行表单验证,用户只有填写格式正确的内容后才能够提交表单,避免了因表单填写错误导致的反复提交,节省了时间和网络资源。
JavaScript 缺点:
JavaScript 特点:
JavaScript 包括 ECMAScript、DOM、BOM
<img src="https://gitee.com/rawait/rwpicgo/raw/master/teaching/2022-01-11/202201111439681.png" alt="img" style="zoom: 80%;" />
浏览器本身并不会执行 JS 代码,而是通过内置 JavaScript 引擎(解释器) 来执行 JS 代码 。
JS 引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行,所以 JavaScript 语言归为脚本语言,会逐行解释执行。
<script>
alert('第一个 JavaScript 程序');
</script>JavaScript 语法规则:
嵌入式就是使用 <script> 标签包裹 JavaScript 代码,直接编写到HTML文件中。
<!-- 语法 -->
<script>
JavaScript语句;
</script>
<script type="text/javascript">
JavaScript语句;
</script>外链式是指将 JavaScript 代码保存到一个单独的文件中,通常使用“js”作为文件的扩展名,然后使用 <script> 标签的src属性引入文件中。
<!-- 语法 -->
<script src="js/test.js"></script>相比嵌入式,外链式优点:
行内式是将 JavaScript 代码作为HTML标签的属性值使用。
<!-- 语法 -->
<a rel="nofollow" href="javascript:alert('Hello');">test</a>
<input type="button" onclick="alert('Hello');" value="test" />在引入 JavaScript 代码时,页面的下载和渲染都会暂停,等待脚本执行完成后才会继续(内嵌式或外链式)。这样会导致页面出现白屏,或者打开页面样式错乱。
解决方案:
对于不需要提前执行的代码,将 <script> 标签放在 <body> 标签的底部,可以减少对整个页面下载的影响。
可用 HTML5 为 <script> 标签新增的两个可选属性:async 和 defer
<!-- 方式一:async 脚本相对于页面的其余部分异步地执行(当页面继续进行解析时,脚本将被执行)-->
<script src="http://js.test/file.js" async></script>
<!-- 方式二:defer 当页面已完成加载后,才会执行脚本 -->
<script src="http://js.test/file.js" defer></script>alert(msg) 会在页面弹出一个提示框,内容是 msg。
<script>
alert(msg);
</script>console.log(msg) 会在开发者工具控制台,输出内容 msg。
<script>
console.log(msg);
</script>document.write(msg) 会在网页当中输出内容 msg。
<script>
document.write(msg);
</script>注释可便于代码的可读性,在程序解析时会被 JavaScript 解释器忽略。
单行注释使用“//”。以“//”开始,到该行结束或 JavaScript 标记结束之前的内容都是注释。
<script>
document.write('Hello, JavaScript'); // 输出一句话
</script>多行注释使用“/* */”。多行注释以“/*”开始,以“*/”结束,它们之间的内容为多行注释。
<script>
/*
alert('Hello, JavaScript');
console.log('1234');
*/
</script>alert(220 + 230); // 输出结果:450
alert(2 * 3 + 25 / 5 - 1); // 输出结果:10
alert(2 * (3 + 25) / 5 - 1); // 输出结果:10.2alert(22 > 33); // 输出结果:false
alert(22 < 33); // 输出结果:true
alert(22 == 33); // 输出结果:false
alert(22 == 22); // 输出结果:truealert('Hello'); // 单引号字符串
alert("Hello"); // 双引号字符串alert('22' == '22'); // 输出结果:true
alert('22' == '33'); // 输出结果:false字符串与数字的拼接
alert('220' + '230'); // 输出结果:220230
alert('220 + 230 = ' + 220 + 230); // 输出结果:220 + 230 = 220230
alert('220 + 230 = ' + (220 + 230)); // 输出结果:220 + 230 = 450if…else 语句用于需要根据比较的结果,来执行不同的代码。
if (22 > 33) {
alert(true); // 判断成立时执行此语句
} else {
alert(false); // 判断不成立时执行此语句
}当一个数据需要多次使用时,可以利用变量将数据保存起来。
概念:变量是保存数据的容器,每一个变量都有唯一的名称。
定义:利用var关键字定义。
var num1 = 22;
var num2 = 33;
alert(num1 + num2);
alert(num1 - num2);
var temp = num1;
num1 = num2;
num2 = temp;
alert('num1 = ' + num1);
alert('num2 = ' + num2);代码量增多,维护困难、条理不清、阅读困难。所以代码应该模块化、组件化,才能更好的维护。
var name = prompt('请输入你的名字:','匿名');
// 定义函数
function sum(a, b) {
var c = a + b;
return c;
}
// 调用函数,输出结果:33
alert(sum(11, 22));
// 调用函数,输出结果:55
alert(sum(22, 33));window 对象
window.console;
window.document;
window.alert('test');
window.prompt('test');
window.console.log('test');
window.document.write('test'); document 对象
document 对象是 window 对象的属性之一,主要用于与网页文档进行交互。
<div id="test">Hello</div>
<script>
var test = document.getElementById('test');
alert(test.innerHTML);
</script>String 对象
var str = 'apple'; // 定义一个字符串
alert(str.length); // 获取字符串长度,输出结果:5
alert(str.toUpperCase()); // 获取转换大写后的结果,输出结果:APPLE
alert('aa'.toUpperCase()); // 直接调用字符串的成员方法,输出结果:AA自定义对象
除了直接使用 JavaScript 中的内置对象,用户也可以自己创建一个自定义对象。
// 创建对象
var stu = {}; // 创建一个名称为stu的空对象
// 添加属性
stu.name = '小明'; // 为stu对象添加name属性
stu.gender = '男'; // 为stu对象添加gender属性
stu.age = 18; // 为stu对象添加age属性
// 访问属性
alert(stu.name); // 访问stu对象的name属性,输出结果:小明
// 添加方法
stu.introduce = function () {
return '我叫' + this.name + ',今年' + this.age + '岁。';
};
// 调用方法
alert(stu.introduce()); // 输出结果:我叫小明,今年18岁。事件是指可以被 JavaScript 侦测到的交互行为。
在网页中滑动、点击鼠标,滚动屏幕,敲击键盘等。
当发生事件以后,可以利用 JavaScript 编程来执行一些特定的代码,从而实现网页的交互效果。
<input id="btn" type="button" value="test">
<script>
document.getElementById('btn').onclick = function() {
alert(this.value); // 获取按钮的value属性,输出结果:test
};
</script>1*2*3*4*……*100 的乘积。