JavaScript学习
一、 Web端哪些时候需要用到?
行为交互:例如:返回顶部
数据交互:例如:筛选关键词
逻辑交互:例如:单选选男选女
二、JavaScript组成
ECMAScript:JavaScript语法和基本对象
DOM:文档对象模型,js代码去操作HTML标签
document.getElementById("content")
BOM:浏览器对象模型,浏览器内置功能
alert("点击了");
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="text" placeholder="请输入内容" id="content" /> <input type="button" value="点击" onclick="clickMe();"/> <h1>显示内容</h1> <div id="txt"></div> <script> function clickMe(){ // alert("点击了"); // 1、获取用户输入的内容 var tag = document.getElementById("content"); var userInputData = tag.value; // 2、找到div,并将内容赋值 var tagTxt = document.getElementById("txt"); tagTxt.innerText = userInputData; } </script> </body> </html>
三、JavaScript建议放到body部分的最下部位:
1)单个文件使用一个script
2)多个文件使用一个script,要创建一个js文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input type="text" placeholder="请输入内容" id="content" /> <input type="button" value="点击" onclick="clickMe();"/> <h1>显示内容</h1> <div id="txt"></div> <script src="v1.js"></script> </body> </html>
v1.js文件
function clickMe(){ // alert("点击了"); // 1、获取用户输入的内容 var tag = document.getElementById("content"); var userInputData = tag.value; // 2、找到div,并将内容赋值 var tagTxt = document.getElementById("txt"); tagTxt.innerText = userInputData; }
四、注释
1)HTML注释
单行&多行注释: <!–HTML注释标记–>
2)CSS注释,必须在style的代码块中。
<style> /* 这是CSS注释*/ </style>
3)JavaScript注释,必须在script的代码块中。
<script> //JavaScript单行注释 /*JavaScript多行注释*/ </script>
五、JavaScript变量
变量名标准的规范:
var userName = “liusijiang”;
1)局部变量:函数中变量。
2)全局变量:代码块顶格。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> //全局变量 NAME = "liusijaing"; function userName() { //局部变量 var age = 19; } alert(NAME); </script> </body> </html>
六、JavaScript的数据类型
<body>
<script>
var age = 19; //数字类型
var name = "liusijiang"; // 字符串
var data = true; //bool类型:true&false
var dataList = [11,22,33]; //数组 python列表
var info = {name:"liusijiang",age:19} //对象 python字典
var info = {"name":"liusijiang","age":19} //对象 python字典
</script>
</body>
七、JavaScript语句
1)、判断语句
var age = 19; if(age < 19){ ... }else{ ... }
var age = 19; if(age < 18){ ... }else if(age == 19){ ... }else{ ... }
2)循环语句
var dataList = [11,22,33]; for (var i = 0;i < dataList.length;i++){ console.log(i); //print } // 上面for语句可以换成如下 for (var idx in dataList){ var data = dataList[idx]; console.log(idx,data); }
八、函数
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> function du(a1,a2) { var a3 = a1 + a2; return a3; } var res = du(11,22); console.log(res); //33 </script> </body> </html>
运行结果使用F12》console(控制台)》查看
匿名函数(函数没有名字),作用:因在开发过程中名字过多导致重名
function (arg) {
console.log(12345678);
}
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> function func(){ console.log(12345678); } setInterval(func, 1000); //定时调用函数 </script> </body> </html>
匿名函数的使用
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> function func(){ console.log(12345678); } setInterval(func, 1000); //定时调用函数 // 匿名函数的使用如下: setInterval(function (){ console.log(123); }, 1000); //定时调用函数 </script> </body> </html>
自执行函数,自动执行(闭包)
function f(a1,a2) { console.log(a1,a2); } f("xxxxx","123"); // 上面代码转换成如下 (function f(a1,a2) { console.log(a1,a2); })("yyyy","4321")
运行结果如下:
九、JSON序列化
JSON.stringify(对象),js中的对象转换成JSON字符串
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <script> var info = {name:"liusijiang",age:19} var infoStr = JSON.stringify(info); console.log(infoStr); //执行结果:{"name":"liusijiang","age":19} </script> </body> </html>
运行结果如下:
JSON.parse(字符串),JSON字符串转换成js对象
//JSON.parse(字符串),JSON字符串转换成js对象 var dataString = '{"name":"liusijiang","age":19}'; var info = JSON.parse(dataString); console.log(info); // 执行结果:{name:"liusijiang",age:19}
运行结果如下:
十、ES5
现阶段ES6(很多前后端分离的项目),ES6编译转换成ES5
JavaScript基础语法
JavaScript应该放在什么位置?
1、行间JS
优势
劣势
2、内部JS
优势
劣势
3、外部JS
优势
劣势