JavaScript复习之JS简介,JS使用方式,基础语法

327 阅读2分钟

JavaScript复习之JS简介,JS使用方式,基础语法

 (1)核心内容:
     JS简介
     JS使用方式
     基础语法
     BOM
     DOM
     事件
 (2)学习文档地址:
     https://www.w3school.com.cn/js/index.asp

1 JavaScript简介

 (1)HTML->网页基本结构  CSS->美化网页  JS->交互行为
 (2)JS->世界上最流行的编程语言
 (3)JS运行在客户端的脚本语言->不需要编译,运行过程由JS解释器逐行解释执行
 (4)JS做前端编程也可做后端编程
 (5)JS:
     表单动态校验
     网页特效
     服务端开发
     ...
 (6)浏览器:
     渲染引擎  JS引擎|JS解释器

2 JavaScript组成

 (1)JS基础语法->ECMAScript
 (2)BOM->浏览器对象模型,操作浏览器窗口
 (3)DOM->文档对象模型,可以对页面上的各种元素操作

3 JavaScript使用方式

3.1 基础介绍

 (1)行内式:
     直接写到元素内部
 (2)内嵌式:
     在HTML文件中加入一个script标签
 (3)外部式:
     单独设置js文件
     HTML文件和JS文件关联->script标签

3.2 案例

 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="utf-8">
         <title></title>
         <script type="text/javascript">
             /* 
                 内嵌式:
                     在HTML文件中加入一个script标签
                     调试代码时使用
              */
             console.log('我是内嵌式');
         </script>
         <!-- 
             外部式:
                 单独设置js文件
                 HTML文件和JS文件关联->script标签
                 后期开发时使用
          -->
         <!-- 引入js文件 -->
         <script src="js/myjs.js" type="text/javascript" charset="utf-8"></script>
     </head>
     <body>
         <!-- 
             行内式:
                 直接写到元素内部
                 不建议使用
                 了解
          -->
         <input type="button" value="按钮" onclick="console.log('我是行内式')" />
     </body>
 </html>

4 基础语法

4.1 变量

4.1.1 变量声明

 (1)以字母、下划线、$开始
 (2)严格区分大小写
 (3)不能使用关键字
 (4)见名知意  myXX
 ​
 弱类型
     变量声明时使用var,无需指定类型,赋值时根据值类型决定变量的类型
     var myName='tom'
     letconst

4.1.2 变量类型

 (1)数字类型:number,整数|浮点数
 (2)字符串类型:string,单引号|双引号均可
 (3)布尔类型:booleantrue|false
 (4)未定义或未初始化:undefined
 (5)复合类型:object,即对象、数组、null类型
 (6)function:函数方法

4.1.3 案例

 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="utf-8">
         <title></title>
         <script type="text/javascript">
             // 嵌入式
             /* 
                 变量声明:
                     (1)以字母、下划线、$开始
                     (2)严格区分大小写
                     (3)不能使用关键字
                     (4)见名知意  myXX
                     弱类型
                         变量声明时使用var,无需指定类型,赋值时根据值类型决定变量的类型
                         var myName='tom'
                         let、const
              
              */
             
             /**
              * 变量类型:
              *  数字类型:
              *      number
              *  字符串类型:
              *      string,单双引号均可
              *  布尔类型:
              *      boolean
              *  未定义类型:
              *      undefined
              *  复合类型:
              *      object
              *  函数类型:
              *      function
              * 
              */
             /* 数字类型 */
             var myNum1 = 12;
             var myNum2 = 13.14;
             console.log(myNum1);
             console.log(myNum2);
             console.log(typeof myNum1); //number
 ​
             /* 字符串类型  特殊场景->单双引号嵌套使用  */
             var myStr1 = 'abc';
             var myStr2 = "def";
             console.log(myStr1);
             console.log(typeof myStr2); //string
 ​
             /* 布尔类型 */
             var myBol1 = true;
             console.log(myBol1);
             console.log(typeof myBol1); //boolean
 ​
             /* 未定义类型 */
             var myVal;
             console.log(myVal); //undefined
             console.log(typeof myVal); //undefined
 ​
             // 报错: myVal2 is not defined
             // console.log(myVal2);
             console.log(typeof myVal2); //undefined
             
             /* 复合类型 */
             var myArr1=[1,'2',true,'a'];
             // (4) [1, '2', true, 'a']
             console.log(myArr1);
             console.log(typeof myArr1);//object
             
             /* 函数类型 */
             function myFun(){
                 console.log('我是函数');
             }
             console.log(typeof myFun);//function
             
             // 匿名函数
             /* function (){
                 console.log();
             } */
             
         </script>
     </head>
     <body>
     </body>
 </html>

4.2 运算符

4.2.1 基础介绍

 (1)算数运算符:+  -  *  /  %  ++  --
 (2)赋值运算符:=   +=  -=  *=  /=  %=
 (3)比较运算符:>   <   >=   <=   ==   !=   ===
 (4)逻辑运算符:&&   ||   !

4.2.2 案例

 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="utf-8">
         <title></title>
         <script type="text/javascript">
             /* 
                 运算符:
                     算数运算符:+ - * / % ++ --
                     赋值运算符:= += -= *= /= %=
                     比较运算符:> >= < <= == != ===
                     逻辑运算符:&& || !
              */
             var myNum1 = 0.1;
             var myNum2 = 0.2;
             console.log(myNum1 + myNum2); //0.30000000000000004
             // toFixed():保留指定位数
             console.log((myNum1 + myNum2).toFixed(1)); //0.3
 ​
             var myNum3 = 4;
             var myNum4 = ++myNum3;
             console.log(myNum4); //5
             var myNum5 = myNum4--;
             console.log(myNum5); //5
 ​
             /* a+=b  a=a+b */
             /* 
                 ==:
                     只比较值
                     包含内置转换
                 ===:
                     比较值和类型   恒等
              
              */
             console.log(1 == '1'); //T
             console.log(1 === '1'); //F
 ​
             /* 
                 &&:见false则false
                 || :见true则true
                 !:相反
              */
         </script>
     </head>
     <body>
     </body>
 </html>

4.3 条件语句

 (1)if...else...
 (2)switch...case...

4.4 循环语句

 (1)for循环
 (2)for in循环
 (3)while循环
 (4)do-while循环

4.5 函数

4.5.1 系统函数

4.5.1.1 基础介绍
 (1)parseInt():将字符串转换成整数
 (2)parseFloat():将字符串转换成浮点数
 (3)isNaN():判断能否被转成一个数字,能转成数字返回为false,反之返回为true
 (4)eval():将可运行的字符串转换运行,eval(string)
4.5.1.2 案例
 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="utf-8">
         <title></title>
         <script type="text/javascript">
             /* 
                 函数:
                     系统函数
                     parseInt():将字符串转换为整数  ****
                     parseFloat():将字符串转换为浮点数  ****
                     toString():将数字类型值转换为字符串类型
                     isNaN():判断能否转成数字,boolean类型
                     eval():将可运行的字符串运行
              */
             var myStr1 = '12';
             console.log(myStr1); //string
             // parseInt():将字符串转换为整数
             console.log(parseInt(myStr1)); //number
             var myStr2 = '13.14';
             console.log(myStr2); //string
             // parseFloat():将字符串转换为浮点数
             console.log(parseFloat(myStr2)); //number
             console.log(parseInt(myStr2)); //number 13
             // isNaN:is Not a Number
             // 判断该值是否是数字[转换效果],是数字返回false,反之返回true
             var myNum1=1;
             var myNum2='2';
             var myStr3='abc';
             console.log(isNaN(myNum1));//F
             console.log(isNaN(myNum2));//F
             console.log(isNaN(myStr3));//T
             // eval():字符串内容运行
             console.log(eval('1+3+1+4'));//9
             
             // 将数字转换为字符串类型
             console.log(myNum1.toString());
             
         </script>
     </head>
     <body>
     </body>
 </html>

4.5.2 自定义函数

4.5.2.1 基础介绍
(1)函数定义:
	function 函数名(参数列表){
		// 函数体
		// 需要返回值时,使用return				
	}
(2)函数调用:
	函数名(参数列表);
4.5.2.2 案例
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="js/myjs.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			/* 
				自定义函数:
					函数定义:
						function 函数名(参数列表){
							// 函数体
							// 需要返回值时,使用return
						}
					函数调用:
						函数名(参数列表);
			 */
			/* 无参数函数 */
			function myFun1() {
				// 函数作用
				console.log('这是一个没有参数的函数定义');
			}
			myFun1();
			/* 有参数函数 */
			function myFun2(num1, num2) {
				return num1 * num2;
			}
			console.log(myFun2(3, 4));
			/* 匿名函数 */
			/* function (){
				
			} */

			/* 
				变量的声明:
					var 
						全局作用域  函数作用域
					let
						块作用域
					const	
						常量
			 */
			// 全局变量 ->全局作用域->某个变量需要在多个函数内被使用等
			var myNum = 10;
			if (myNum > 3) {
				console.log('大于3');
			}
			for (var i = 0; i < 4; i++) {
				console.log(myNum);
			}
			// 函数
			function myFun4() {
				// 函数内变量->函数作用域
				var myNum2 = 20;
				console.log(myNum2);
				console.log(myNum);
			}
			myFun4();
			// 报错:myNum2 is not defined
			// console.log(myNum2);

			// 使用var关键字,在块中重新声明变量时也会将重新声明块外的变量
			var myNum3 = 30; {
				var myNum3 = 31;
			}
			console.log(myNum3); //31

			//使用let关键字,在块中重新声明变量时不会重新声明块外的变量
			let myNum4 = 40; {
				let myNum4 = 41;
			}
			console.log(myNum4); //40

			// const:常量
			const myNum5 = 50;
			console.log(myNum5);
			// 报错:Assignment to constant variable.
			// myNum5 = 52;
			
			// 访问myjs.js文件中的变量
			console.log(myNum6);
			
		</script>
	</head>
	<body>
	</body>
</html>