JavaScript学习笔记

 

一、简介

1、概述:

JavaScript是目前web开发中不可缺少的脚本语言,js不需要编译即可运行,运行在客户端,需要通过浏览器来解析执行JavaScript代码。

诞生于1995年,当时的主要目的是验证表单的数据是否合法

JavaScript本来应该叫Livescript,但是在发布前夕,想搭上当时超热的java顺风车,临时把名字改为了JavaScript。(也就是说js跟java没有关系,当时只是想借助java的名气)。

js组成部分:

(1)核心(ECMAScript):这一部分主要是js的基本语法。

(2)BOM:Brower Object Model(浏览器对象模型),主要是获取浏览器信息或操作浏览器的,例如:浏览器的前进与后退、浏览器弹出提示框、浏览器地址栏输入网址跳转等操作等。

(3)DOM:Document Object Model(文档对象模型),此处的文档暂且理解为html,html加载到浏览器的内存中,可以使用js的DOM技术对内存中的html节点进行修改,用户从浏览器看到的是js动态修改后的页面。(增删改查)

2、特点:

  1. 交互性(它可以做的就是信息的动态交互)
  2. 安全性(不允许直接访问本地硬盘)
  3. 跨平台性(只要是可以解析js的浏览器都可以执行,和平台无关)

3、和Java区别:

4、作用

avaScript 被用来改进设计、验证表单、检测浏览器、创建cookies,等等。JavaScript 是因特网上最流行的脚本语言,并且可在所有主要的浏览器中运行,比如: Internet Explorer、 Maxthon、Mozilla、Firefox、Netscape、Chrome和 Opera等。

在目前学习阶段只要记住最常用的二个:(1)运态修改html及css代码 (2)验证表单

5、书写位置

5.1、内嵌式:

理论上js可以书写在页面的任意位置。

<script>

alert("内嵌式")

</script>

5.2、外链式:

首先新建一个文件类型为.js的文件,然后在该文件中写js语句,通过script标签对引入到html页面中。

<script src="js文件路径地址">这里不能写js语句</script>

5.3、行内式:

直接书写在标签身上,是一个简写的事件,所以又称之为事件属性。     onclick单击事件

 
  1. <input type="button" value="点我呀!" onclick="alert('点我干啥!^6^');">

  2. <button onclick="alert('恭喜你,中 500 万.');">点我呀!</button>

6、注释:

 
  1. 单行注释: // 注释语句 快捷键ctrl+/

  2. 多行注释: /* 注释语句 */ 快捷键ctrl+shift+/

  3. 注意:多行注释相互不能嵌套使用,只能在多行注释里面使用单行注释!

7、数据类型:

Js中的数据类型:
 

 
  1. 数值型:number(凡是数字都是数值型,不区分整数和小数)

  2. 字符串:string(凡是引号包裹起来的内容全部都是字符串)

  3. 布尔:boolean(true、false)

  4. 对象类型:object(特殊取值null)

  5. 未定义型:undefined

对比java中的数据类型:

 
  1. 整数:byte short int long

  2. 小数:float double

  3. 字符:char

  4. 布尔:boolean

  5. 字符串:String

8、变量:

8.1、定义:就是存放数据的、内疗可以存储任意数据

8.2、声明变量:
 

var 变量名称 = 存储的数据;   	(variable 变量)

8.3、变量命名规范:

 
  1. 1. 只能由字母、数字、_(下划线)、$(美元符号)组成。

  2. 2. 不能以数字开头。

  3. 3. 命名中不能出现-(js会理解成减号进行减法的操作),不能和关键字冲突。

js是弱类型语言,不重视类型的定义,但js会根据为变量赋值的情况自定判断该变量是何种类型:

 
  1. 数值型:var i = 1; var d = 2.35;

  2. 字符串:var str = "用心学习";

  3. 布尔型:var b = true;

对比Java:java是强类型的语言,注重类型的定义,Java定义类型如下:

 
  1. 整型:int i = 1;

  2. 浮点型:double d = 2.35;

  3. 字符串:String str = “用心学习”;

  4. 布尔型:boolean b = true;

总结:js中变量的定义。只要加一个var就行。java则使用什么类型的变量就要定义什么类型的。

9、检测数据类型:

 
  1. typeof(value); 或者typeof value; 返回这个变量的类型.

  2. 说明 : 同一个变量, 可以进行不同类型的数据赋值.

 
  1. <script type="text/javascript">

  2.  
  3. var a;

  4. alert(typeof a); // undefined

  5.  
  6. a = 998;

  7. alert(typeof a); // number

  8.  
  9. a = "用心学习";

  10. alert(typeof a); // string

  11.  
  12. a = true;

  13. alert(typeof a); // boolean

  14.  
  15. </script>

10、算术运算符

+	-	*	/	%	++	--

注意:

 
  1. 1. 由于js中的小数和整数都是number类型,不存在类似整数除以整数还是整数的结论。

  2. 2. 字符串和其他的数据使用+号运算,会连接成一个新的字符串。

  3. 3. 字符串使用除了+以外的运算符:如果字符串本身是一个数字,那么会自动转成number进行运算

  4. ,否则就会返回一个NaN的结果,表示这不是一个数字。NaN:not a number

 
  1. <script>

  2.  
  3. alert(1234 / 1000 * 1000); // 1234

  4.  
  5. var s = "12";

  6. s -= 10;

  7. alert(s); // 2

  8.  
  9. var s = "aa";

  10. s -= 10;

  11. alert(s); // NaN Not a Number 不是一个数字

  12.  
  13. var s = "12";

  14. s += 10;

  15. alert(s); // 1210

  16.  
  17. </script>

11、关系(比较)运算符

 
  1. > >= < <= !=

  2. == 等于(只比较内容) === 恒等于(比较内容的同时还要比较数据类型)

  3. 注意:关系运算符返回的结果只有两个:true / false

  4.  
 
  1. <script>

  2.  
  3. // 请问1 : 3 > 5, 结果为 ?

  4. alert(3 > 5); // false

  5.  
  6. // 请问2 : “22” == 22 结果为 ?

  7. alert("22" == 22); // true (仅仅判断数值)

  8.  
  9. // 请问3 : “22” === 22 结果为 ?

  10. alert("22" === 22); // false (恒等于, 数值和类型都要相等)

  11.  
  12. </script>

12、逻辑运算符

 
  1. && 与 true&&false ====>false

  2. || 或 true||false ====>true

  3. ! 非 !true ====>false

  4. false(理解):false, 0, null, undefined

  5. true(理解):true, 非0, 非null, 非undefined

  6.  
  7. 针对 && 顺口溜: 找第一个出现的假值. (一假即假)

  8. 针对 || 顺口溜: 找第一个出现的真值. (一真即真)

演示一:

 
  1. <script>

  2.  
  3. // 短路与 (一假即假)

  4. // 口诀 : 找第一个为假的值.

  5.  
  6. // 请问1 : 8 < 7 && 3 < 4, 结果为 ?

  7. alert(8 < 7 && 3 < 4); // false

  8.  
  9. // 请问2 : -2 && 6 + 6 && null 结果为 ?

  10. alert(-2 && 6 + 6 && null); // null

  11.  
  12. // 请问3 : 1 + 1 && 0 && 5 结果为 ?

  13. alert(1 + 1 && 0 && 5); // 0

  14.  
  15. </script>

演示二:

 
  1. <script>

  2.  
  3. // 短路或 : 一真即真.

  4. // 口诀 : 找第一个为真的值.

  5.  
  6. // 请问1 : 0 || 23 结果为 ?

  7. alert(0 || 23); // 23

  8.  
  9. // 请问2 : 0 || false || true 结果为 ?

  10. alert(0 || false || true); // true

  11.  
  12. // 请问3 : null || 10 < 8 || 10 + 10结果为 ?

  13. alert(null || 10 < 8 || 10 + 10); // 20

  14.  
  15. // 请问4 : null || 10 < 8 || false结果为 ?

  16. alert(null || 10 < 8 || false); // false

  17.  
  18. </script>

13、三元运算符:

 
  1. 条件?表达式1:表达式2

  2. 如果条件为true,返回表达式1的结果

  3. 如果条件为false,返回表达式2的结果

演示:

 
  1. <script>

  2.  
  3. // 请问1 : 3 ? “aaa” : “bbb” 结果为 ?

  4. alert(3 ? "aaa" : "bbb"); // aaa

  5.  
  6. // 请问2 : 0 ? “ccc” : “ddd” 结果为 ?

  7. alert(0 ? "ccc" : "ddd"); // ddd

  8.  
  9. </script>

14、if条件语句

这个和Java中if语句一样。

演示:

 
  1. <script>

  2.  
  3. var score = 59;

  4.  
  5. if (score >= 90) {

  6. alert("优秀");

  7. } else if (score >= 80) {

  8. alert("良好");

  9. } else if (score >= 60) {

  10. alert("及格");

  11. } else {

  12. alert("不及格");

  13. }

  14.  
  15. </script>

15、switch分支结构

这个和java中switch结构一样。只是Java中表达式为:常量 整型(去long)、字符、字符串

演示:

 
  1. <script>

  2.  
  3. var score = 59;

  4.  
  5. // 需求 : 将需要一个整型数值, 不想要小数点.

  6. // window 对象的 parseInt 方法.

  7. score = window.parseInt(score / 10 + "");

  8. // alert(score);

  9.  
  10. switch (score) {

  11. case 10:

  12. case 9:

  13. alert("优秀!");

  14. break;

  15. case 8:

  16. alert("良好!");

  17. break;

  18. case 7:

  19. case 6:

  20. alert("及格!");

  21. break;

  22. default:

  23. alert("不及格!");

  24. break;

  25. }

  26.  
  27. </script>

16、循环结构 while、do-while. for;

 
  1. while(循环条件){循环体;}

  2. do{循环体;}while(循环条件);

  3. for(循环变量赋初值;循环条件;循环变量增值){循环语句;}

  4. console.log(...); 以日志的形式在控制台输出结果!

演示:

 
  1. <script>

  2.  
  3. // 需求 : 统计 1~100 之间能够被3和7整除的数字个数

  4.  
  5. var count = 0;

  6.  
  7. // 1. 遍历 1~100 之间的所有整型数值

  8. for (var i = 1; i <= 100; i++) {

  9.  
  10. // 2. 判断

  11. if (i % 3 == 0 && i % 7 == 0) {

  12. // alert(i);

  13. console.log(i);

  14. // 3. 累加个数

  15. count++;

  16. }

  17. }

  18.  
  19. // 4. 查看结果

  20. // alert(count);

  21. console.log(count);

  22.  

console.log显示如下:

17、循环嵌套

演示案例9*9乘法表

 
  1. <style>

  2. table {

  3. /* 将 table 表格的线变成了细线 */

  4. border-collapse: collapse;

  5. /*color: red;*/

  6. border-color: red;

  7. }

  8. </style>

  9.  
  10. <script>

  11.  
  12. // 需求 : 九九乘法口诀表

  13. document.write("<table border='1px solid red' cellspacing='0' cellpadding='8px'>");

  14. document.write("<caption>九九乘法口诀表</caption>");

  15. for (var i = 1; i <= 9; i++) {

  16. document.write("<tr>");

  17. for (var j = 1; j <= i; j++) {

  18. document.write("<td>");

  19. document.write(j + "*" + i + "=" + (j*i) + "&nbsp;&nbsp;&nbsp;&nbsp;");

  20. document.write("</td>");

  21. }

  22. document.write("</tr>");

  23. }

  24. document.write("</table>");

  25.  
  26. </script>

  27.  

18、自定义函数

函数是命名的独立的语句段,这个语句段可以被当作一个整体来引用和执行:

格式:

 
  1. function 函数名(形式参数){函数体}

  2. 调用函数:函数名(实际参数);

18.1、函数只有被调用后才会执行

18.2、如果函数需要返回值、直接使用return 返回、不会像java一样要考虑返回值的类型

 
  1. <script type="text/javascript">

  2.  
  3. // 定义一个函数 : function

  4. function demo2() {

  5. return 666;

  6. }

  7.  
  8. // 调用函数 :

  9. alert(demo2());

  10.  
  11. </script>

18.3、如果函数需要传递参数、不需要指定参数的类型、直接使用变量即可

 
  1. <script type="text/javascript">

  2.  
  3. // 定义一个函数 : function

  4. function demo3(a, b) {

  5. return a + b;

  6. }

  7.  
  8. // 调用函数 :

  9. alert(demo3(10, 20));//显示30

  10.  
  11. </script>

18.4、js中出现二个重名的函数名、后者会把前面的覆盖掉

对比java、java有重载(同名不同参)、重写(同名同参同返回值类型、方法体不一样)

演示:

 
  1. <script type="text/javascript">

  2.  
  3. // 定义一个函数 : function

  4. function demo4(a, b) {

  5. alert("调用1...");

  6. }

  7.  
  8. function demo4() {

  9. alert("调用2...");

  10. }

  11.  
  12. demo4(10, 20);

  13. demo4();

  14.  
  15. </script>

会显示二次下面的图片:

19、匿名函数

匿名函数是没有名字的函数

 
  1. function(形式参数){函数体}

  2. 调用方式:将匿名函数赋值给一个变量,通过变量名调用函数

  3. 定义函数并赋值给变量:var fn = function(形式参数){函数体}

  4. 调用函数:fn(实际参数);

演示:

 
  1. <script type="text/javascript">

  2.  
  3. // 匿名函数 : 没有名称的函数

  4. var func = function(i, u) {

  5. alert(i + " love " + u);

  6. }

  7.  
  8. // 调用函数 :

  9. func("柳岩", "小白");//显示柳岩love小白

  10.  
  11. </script>

20、案例-轮播图

 
  1. 说明1 : script 标签需要放在 body 标签之后.

  2.  
  3. 说明2 : window.setInterval(“字符串函数名称()”, 时间毫秒数);

  4.  
  5. 说明3 : window.setInterval(函数名称, 时间毫秒数);

  6.  
  7. 说明4 : window.setInterval(匿名函数, 时间毫秒数);            推荐使用

 
  1. <head>

  2. <meta charset="UTF-8">

  3. <title>轮播图</title>

  4.  
  5. <style>

  6.  
  7. div {

  8. width: 80%;

  9. margin: 50px auto;

  10. }

  11.  
  12. img {

  13. width: 100%;

  14. }

  15.  
  16. </style>

  17.  
  18. </head>

  19. <body>

  20. <div class="container">

  21. <img src="../img/01.jpg" alt="图片">

  22. </div>

  23. </body>

实现一:

 
  1. <script>

  2.  
  3. // 需求 : 动态获取页面中的 img 标签, 然后修改 img 标签的 src 属性.

  4. // 1. 获取 img 标签

  5. var img = document.getElementById("img");

  6. // alert(img);

  7.  
  8. // 定义一个变量

  9. var count = 1;

  10.  
  11. // 1.2 定义一个函数

  12. function changeImageSrc() {

  13. count++;

  14. img.src = "../img/0"+count+".jpg";

  15.  
  16. // 判断

  17. if (count == 8) {

  18. count = 0;

  19. }

  20. }

  21.  
  22. // 2. 循环切换图片

  23. // window.setInterval(函数, 时间毫秒); 在指定的时间毫秒间隔, 不断调用第一个参数传入的函数.

  24. // 调用方式一 :

  25. // window.setInterval("changeImageSrc()", 1000);

  26. // 调用方式二 :

  27. window.setInterval(changeImageSrc, 1000);

  28.  
  29. </script>

实现二:

 
  1. <script>

  2.  
  3. // 需求 : 动态获取页面中的 img 标签, 然后修改 img 标签的 src 属性.

  4. // 1. 获取 img 标签

  5. var img = document.getElementById("img");

  6. // alert(img);

  7.  
  8. // 定义一个变量

  9. var count = 1;

  10.  
  11. // 2. 循环切换图片

  12. // window.setInterval(匿名函数, 时间毫秒); 在指定的时间毫秒间隔, 不断调用第一个参数传入的匿名函数.

  13. window.setInterval(function() {

  14. count++;

  15. img.src = "../img/0"+count+".jpg";

  16.  
  17. // 判断

  18. if (count == 8) {

  19. count = 0;

  20. }

  21. }, 1000);

  22.  
  23. </script>

21、js事件

21.1、事件概述:

 
  1. 事件三要素:

  2. 1. 事件源:被监听的html元素(就是这个事件加给谁),就是某个(某些)html标签

  3. 2. 事件类型:某类动作,例如点击事件,移入移除事件,敲击键盘事件等

  4. 3. 执行指令:事件触发后需要执行的代码,一般使用函数进行封装

  5. 语法格式:事件源.事件类型=执行指令

21.2、常用的事件:

案例:

 
  1. <!DOCTYPE html>

  2. <html lang="en">

  3. <head>

  4. <meta charset="UTF-8">

  5. <title>事件</title>

  6.  
  7. <script>

  8. // 窗口 : window 对象提供了一个事件类型 onload 页面加载完成事件.

  9. // 事件源 : window 事件类型 : 页面加载完成事件 (onload) 执行指令: 就是赋值的 function 函数.

  10. window.onload = function () {

  11.  
  12. // 获取页面的 btn 按钮

  13. var btn = document.getElementById("btn");

  14. // alert(btn);

  15.  
  16. // 给 btn 按钮绑定一个事件 (单击事件 onclick)

  17. // 事件源 : btn按钮 事件类型 : 单击事件 (onclick) 执行指令: 就是赋值的 function 函数.

  18. btn.onclick = function () {

  19. alert("恭喜你, 中了 500 万!");

  20. }

  21. }

  22.  
  23. </script>

  24.  
  25. </head>

  26. <body>

  27. <button id="btn">按钮</button>

  28. </body>

  29. </html>

  30.  

到此基础结束。

 

==============《轮播图图片路径问题》================

原文地址:https://blog.csdn.net/sswqzx/article/details/82796026?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160773622619725222468519%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160773622619725222468519&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v29-14-82796026.nonecase&utm_term=js&spm=1018.2118.3001.4449

作者:

sswqzx

 

如有侵权请联系

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值