记录在听黑马课的时候的笔记以及课堂上练习的代码,文章图源于我在听课的时候所截的屏,所以有些不清晰,请见谅。下面是课程链接,可点击自行跳转。
【黑马程序员JavaWeb开发教程,实现javaweb企业开发全流程(涵盖Spring+MyBatis+SpringMVC+SpringBoot等)】https://www.bilibili.com/video/BV1m84y1w7Tb/?share_source=copy_web&vd_source=d521b664e1113402904fa9336bd1d0ac
目录
介绍
引入方式
基础语法
书写语法
变量
数据类型&运算符
函数
对象
Array数组
字符串
JSON
BOM
DOM
事件监听
Vue
常用指令
案例
生命周期
介绍
引入方式
JS的内部脚本和外部脚本实现:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS引入方式演示</title> <!-- 内部脚本 --> <!-- <script> alert("hello JS!"); </script> --> <!-- 外部脚本 --> <script src="js/demo.js"></script> </head> <body> </body> </html> <!--demo.js--> alert("hello JS!");基础语法
书写语法
JS三种输出:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS基础语法输出语句</title> </head> <body> <script> /* alert("Hello,JS!"); */ //浏览器弹出警告框 window.alert("Hello,JS!"); //写入HTML,在浏览器中展示 document.write("Hello,JS!"); //写入浏览器控制台 console.log("Hello,JS!"); </script> </body> </html>变量
变量的定义方式:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS基础语法变量</title> </head> <body> <script> /* var a = 10; //使用var关键字声明变量a,并赋值为10 a = "张三"; //变量a重新赋值为字符串"张三" alert(a); //弹出警告框,显示变量a的值 */ //作用域比较大,为全局变量,可以重复定义的 /* { var a = 20; var a = "李四"; } alert(a); //弹出警告框,显示变量a的值 */ //let 局部变量不能重复定义 /* { let b = 30; //let b = "王五"; //报错,不能重复定义变量b alert(b); //弹出警告框,显示变量b的值 } */ //const 声明常量,不能修改 const c = 40; c = 50; //报错,不能修改常量c的值 alert(c); //弹出警告框,显示常量c的值 </script> </body> </html>数据类型&运算符
JS数据类型:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS基础语法数据类型</title> </head> <body> <script> //原始数据类型 alert(typeof 3);//number 数字类型 alert(typeof 3.14);//number 数字类型 alert(typeof "A");//string 字符串类型 alert(typeof 'Hello');//string 字符串类型 alert(typeof true);//boolean 布尔类型 alert(typeof false);//boolean 布尔类型 alert(typeof null);//object 对象类型(特殊的原始数据类型,表示空值) var a ; alert(typeof a);//undefined 未定义类型 </script> </body> </html>JS运算符:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS基础语法运算符</title> </head> <body> <script> // var age = 20; // var _age = "20"; // var $age = 20; // alert(age == _age);//true // alert(age === _age);//false // alert(age === $age);//true // 类型转换 - 其他类型转为数字 alert(parseInt("12")); //12 alert(parseInt("12A45")); //12 alert(parseInt("A45")); //NaN // 类型转换 - 其他类型转为boolean // if(0){ // alert("0 转换为false"); // } // if(NaN){ // alert("NaN 转换为false"); // } // if(-1){ // alert("除0和NaN其他数字都转为 true"); // } // if(""){ // alert("空字符串为 false,其他都是true"); // } // if(null){ // alert("null 转化为false"); // } // if(undefined){ // alert("undefined 转化为false"); // } </script> </body> </html>函数
但只取前面所需要的参数个数。
JS函数实现:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS函数</title> </head> <body> <script> //定义函数 -1 /* function add(a,b){ return a + b; } */ //定义函数 -2 var add = function(a,b){ return a + b; } //调用函数 var result = add(3,5); alert(result); //8 </script> </body> </html>对象
Array数组
JS数组创建以及相关操作:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS对象定义Array数组</title> </head> <body> <script> //定义数组 - 方式1 /* var arr1 = new Array(); arr1[0] = "张三"; arr1[1] = 20; arr1[2] = true; alert(arr1[0]); //张三 alert(arr1.length); //3 */ //定义数组 - 方式2 /* var arr2 = ["李四",25,false]; alert(arr2[1]); //25 alert(arr2.length); //3 //数组长度可变,类型可变 arr2[10] = 10; alert(arr2.length); //11 alert(arr2[5]); //undefined alert(arr2[10]); //10 */ //for获取数组元素 var arr3 = ["苹果","香蕉","橘子"]; // arr3[9] = "葡萄"; // for (let i = 0; i < arr3.length; i++) { // const element = arr3[i]; // console.log(element); // } // //forEach遍历有数值的元素 // arr3.forEach(function(element) { // console.log(element); // }); // //箭头函数遍历有数值的元素 (...)=>{...} // arr3.forEach(element => // console.log(element) // ); //push 添加元素至数组末尾 arr3.push("草莓"); console.log(arr3); console.log("========"); //splice 添加/删除元素 //arr3.splice(1,0,"葡萄");//在索引1位置添加元素葡萄,不删除元素 arr3.splice(2,1);//从索引2位置删除1个元素 console.log(arr3); console.log("========"); //pop 删除数组末尾元素 arr3.pop(); console.log(arr3); console.log("========"); //shift 删除数组开头元素 arr3.shift(); console.log(arr3); console.log("========"); //unshift 添加元素至数组开头 arr3.unshift("西瓜"); console.log(arr3); </script> </body> </html>字符串
JS字符串:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS对象String字符串</title> </head> <body> <script> //创建字符串对象 var str = new String("Hello, World!"); console.log(str); //输出字符串对象 var str2 = "Hello, JavaScript!"; console.log(str2); //输出字符串字面量 //字符串长度 length 属性 console.log(str.length); //13 console.log(str2.length); //18 //charAt() 方法 获取指定位置的字符 console.log(str.charAt(7)); //W console.log(str2.charAt(6)); //J //indexOf() 方法 查找子字符串首次出现的位置 console.log(str.indexOf("o")); //4 console.log(str2.indexOf("o")); //4 //trim() 方法 去除字符串两端的空格 var str3 = " Hello, Trim! "; console.log(str3.trim()); //Hello, Trim! //substring() 方法 提取字符串的子字符串 参数:起始位置,结束位置(不包含) console.log(str.substring(0,5)); //Hello console.log(str2.substring(7,17)); //JavaScript </script> </body> </html>JSON
JSON对象的创建以及转换:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS对象JSON</title> </head> <body> <script> // JSON对象 /* var jsonObj = { "name": "张三", "age": 20, "isStudent": false, "greet": function() { console.log("Hello, " + this.name); } }; console.log(jsonObj); // 访问属性 console.log(jsonObj.name); console.log(jsonObj["age"]); // 修改属性 jsonObj.age = 21; console.log(jsonObj); // 添加属性 jsonObj.gender = "男"; console.log(jsonObj); // 删除属性 delete jsonObj.isStudent; console.log(jsonObj); // 调用方法 jsonObj.greet(); */ var jsonstr = '{"name":"Jens","age":27,"isStudent":false}'; // JSON字符串转换为JS对象 var jsonObj = JSON.parse(jsonstr); alert(jsonObj.name); // JS对象转换为JSON字符串 var jsonstr2 = JSON.stringify(jsonObj); alert(jsonstr2); </script> </body> </html>BOM
概念:Browser Object Model(浏览器对象模型),允许 JavaScript 与浏览器对话,JavaScript 将浏览器的各个组成部分封装为对象。
组成:
Window:浏览器窗口对象
Navigator:浏览器对象
Screen:屏幕对象
History:历史记录对象
Location:地址栏对象
Window和LocationBOM对象:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS对象BOM</title> </head> <body> <script> //获取 // window.alert("Hello BOM"); // alert("Hello BOM Window"); //方法 //confirm - 弹出一个确认对话框 -- 确认 true 取消 false // var res = confirm("你确定要删除吗?"); // alert(res); //定时器 -- 在指定的毫秒数后调用函数或计算表达式 setInterval/setTimeout // var i = 0 ; // setInterval(function(){ // i++; // console.log("定时器执行了"+i+"次"); // },2000); //setTimeout -- 只执行一次 // setTimeout(function(){ // alert("定时器只执行我一次"); // },5000); //location -- 获取或设置当前页面的URL alert(location.href); location.href = "https://www.baidu.com"; </script> </body> </html>DOM
DOM对象实现:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS对象DOM获取元素</title> </head> <body> <img id="h1" src="img/off.gif"> <br><br> <div class="cls">Love yourself</div> <br> <div class="cls">and love what you love</div> <br> <input type="checkbox" name="hobby"> 电影 <input type="checkbox" name="hobby"> 旅游 <input type="checkbox" name="hobby"> 游戏 </body> <script> //1. 获取Element元素 //1.1 获取元素-根据ID获取 var img1 = document.getElementById("h1"); alert(img1.src); //1.2 获取元素-根据标签获取 var imgs = document.getElementsByTagName("img"); alert(imgs[0].src); //1.3 获取元素-根据name属性获取 var hobbies = document.getElementsByName("hobby"); alert(hobbies[0].checked); //1.4 获取元素-根据class属性获取 var cls = document.getElementsByClassName("cls"); alert(cls[0].innerHTML); //2. 查询参考手册,属性、方法 //修改Love yourself为Hello World cls[0].innerHTML = "Hello World"; alert("修改后的内容是:"+cls[0].innerHTML); </script> </html>DOM操作:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>JS对象DOM案例</title> </head> <body> <img id="h1" src="img/off.gif"> <br><br> <div class="cls">传智教育</div> <br> <div class="cls">黑马程序员</div> <br> <input type="checkbox" name="hobby"> 电影 <input type="checkbox" name="hobby"> 旅游 <input type="checkbox" name="hobby"> 游戏 </body> <script> //1. 点亮灯泡 : src 属性值 var img = document.getElementById('h1'); img.src = "img/on.gif"; //2. 将所有div标签的内容后面加上: very good (红色字体) -- <font color='red'></font> var divs = document.getElementsByTagName('div'); for (let i = 0; i < divs.length; i++) { const div = divs[i]; div.innerHTML += "<font color='red'>very good</font>"; } //3. 使所有的复选框呈现选中状态 var ins = document.getElementsByName('hobby'); for (let i = 0; i < ins.length; i++) { const check = ins[i]; check.checked = true;//选中 } </script> </html>事件监听
事件绑定
事件绑定:
<!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>JS-事件-事件绑定</title> </head> <body> <input type="button" id="btn1" value="事件绑定1" onclick="on()"> <input type="button" id="btn2" value="事件绑定2"> </body> <script> function on(){ alert("按钮1被点击了..."); } document.getElementById('btn2').onclick = function(){ alert("按钮2被点击了..."); } </script> </html>事件监听:
<!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>JS-事件-常见事件</title> </head> <body onload="load()"> <form action="" style="text-align: center;" onsubmit="subfn()"> <input type="text" name="username" onblur="bfn()" onfocus="ffn()" onkeydown="kfn()"> <input id="b1" type="submit" value="提交"> <input id="b1" type="button" value="单击事件" onclick="fn1()"> </form> <br><br><br> <table width="800px" border="1" cellspacing="0" align="center" onmouseover="over()" onmouseout="out()"> <tr> <th>学号</th> <th>姓名</th> <th>分数</th> <th>评语</th> </tr> <tr align="center"> <td>001</td> <td>张三</td> <td>90</td> <td>很优秀</td> </tr> <tr align="center"> <td>002</td> <td>李四</td> <td>92</td> <td>优秀</td> </tr> </table> </body> <script> //onload : 页面/元素加载完成后触发 function load(){ console.log("页面加载完成...") } //onclick: 鼠标点击事件 function fn1(){ console.log("我被点击了..."); } //onblur: 失去焦点事件 function bfn(){ console.log("失去焦点..."); } //onfocus: 元素获得焦点 function ffn(){ console.log("获得焦点..."); } //onkeydown: 某个键盘的键被按下 function kfn(){ console.log("键盘被按下了..."); } //onmouseover: 鼠标移动到元素之上 function over(){ console.log("鼠标移入了...") } //onmouseout: 鼠标移除某元素 function out(){ console.log("鼠标移出了...") } //onsubmit: 提交表单事件 function subfn(){ console.log("表单被提交了..."); } </script> </html>Vue
Vue快速入门:
<!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>Vue-快速入门</title> <script src="js/vue.js"></script> </head> <body> <div id="app"> <input type="text" v-model="message"> {{message}} </div> </body> <script> //定义Vue对象 new Vue({ el: "#app", //vue接管区域 data:{ message: "Hello Vue" } }) </script> </html>常用指令
Vue指令v-bind和v-model:
<!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>Vue-指令-v-bind</title> <script src="js/vue.js"></script> </head> <body> <div id="app"> <a v-bind:href="url">链接1</a> <a :href="url">链接2</a> <input type="text" v-model="url"> </div> </body> <script> //定义Vue对象 new Vue({ el: "#app", //vue接管区域 data:{ url: "https://www.baidu.com" } }) </script> </html>Vue指令v-on:
<!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>Vue-指令-v-on</title> <script src="js/vue.js"></script> </head> <body> <div id="app"> <input type="button" value="点我一下" v-on:click="handle()"> <input type="button" value="点我一下" @click="handle()"> </div> </body> <script> //定义Vue对象 new Vue({ el: "#app", //vue接管区域 data:{ }, methods: { handle: function(){ alert("你点我了一下..."); } } }) </script> </html>Vue指令v-if与v-show:
<!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>Vue-指令-v-if与v-show</title> <script src="js/vue.js"></script> </head> <body> <div id="app"> 年龄<input type="text" v-model="age">经判定,为: <span v-if="age <= 35">年轻人(35及以下)</span> <span v-else-if="age > 35 && age < 60">中年人(35-60)</span> <span v-else>老年人(60及以上)</span> <br><br> 年龄<input type="text" v-model="age">经判定,为: <span v-show="age <= 35">年轻人(35及以下)</span> <span v-show="age > 35 && age < 60">中年人(35-60)</span> <span v-show="age >= 60">老年人(60及以上)</span> </div> </body> <script> //定义Vue对象 new Vue({ el: "#app", //vue接管区域 data:{ age: 20 }, methods: { } }) </script> </html>Vue指令v-for:
<!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>Vue-指令-v-for</title> <script src="js/vue.js"></script> </head> <body> <div id="app"> <div v-for="addr in addrs">{{addr}}</div> <hr> <div v-for="(addr,index) in addrs">{{index + 1}} : {{addr}}</div> </div> </body> <script> //定义Vue对象 new Vue({ el: "#app", //vue接管区域 data:{ addrs:["北京", "上海", "西安", "成都", "深圳"] }, methods: { } }) </script> </html>案例
通过Vue完成表格数据的渲染展示:
<!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>Vue-指令-案例</title> <script src="js/vue.js"></script> </head> <body> <div id="app"> <table border="1" cellspacing="0" width="60%"> <tr> <th>编号</th> <th>姓名</th> <th>年龄</th> <th>性别</th> <th>成绩</th> <th>等级</th> </tr> <tr align="center" v-for="(user,index) in users"> <td>{{index + 1}}</td> <td>{{user.name}}</td> <td>{{user.age}}</td> <td> <span v-if="user.gender == 1">男</span> <span v-if="user.gender == 2">女</span> </td> <td>{{user.score}}</td> <td> <span v-if="user.score >= 85">优秀</span> <span v-else-if="user.score >= 60">及格</span> <span style="color: red;" v-else>不及格</span> </td> </tr> </table> </div> </body> <script> new Vue({ el: "#app", data: { users: [{ name: "Tom", age: 20, gender: 1, score: 78 },{ name: "Rose", age: 18, gender: 2, score: 86 },{ name: "Jerry", age: 26, gender: 1, score: 90 },{ name: "Tony", age: 30, gender: 1, score: 52 }] }, methods: { }, }) </script> </html>生命周期
vue生命周期:
<!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>Vue-指令-v-for</title> <script src="js/vue.js"></script> </head> <body> <div id="app"> </div> </body> <script> //定义Vue对象 new Vue({ el: "#app", //vue接管区域 data:{ }, methods: { }, mounted () { alert("vue挂载完成,发送请求到服务端") } }) </script> </html>这篇文章就先更到这里,接下来的内容可查看我的下一篇博客,感谢观看,希望对你有帮助。