Javascript笔记大全01,会持续更新~

JS的组成

  1. ECMAScript:JavaScript语法
  2. DOM:页面文档对象模型
  3. BOM:浏览器对象模型

注释

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			//  1.单行注释   Ctrl + /
			/* 
				2.多行注释
				  多行注释
				  多行注释
			 */
		</script>
	</head>
	<body>
	</body>
</html>

输入输出语句

方法 说明 归属
alert(msg) 浏览器弹出警示框 浏览器
console.log(msg) 浏览器控制台打印输出信息 浏览器
document.write 向body中输出内容
prompt(info) 浏览器弹出输入框,用户可以输入 浏览器
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>输入输出</title>
	</head>
	<body>
		<script type="text/javascript">
			//这是一个输入框
			prompt('请输入您的年龄');
			
			// 浏览器弹出一个警告框 展示给用户的
			alert('最爱琴女E!');
			
			// 让计算机在页面中输出一个内容
			// 可以向body中输出一个内容
			document.write('哈哈哈哈哈');
			
			// 向控制台输出 给程序员测试用的
			console.log('求抽到琴女DJ皮肤!!!');
		</script>
	</body>
</html>
<!-- 可以将js代码写在超链接的href属性中,这样当点击超链接时,会执行js代码 -->
a <a href="javascript:alert('');">点一下</a>
<!-- 不会有任何反应 -->
 a <a href="javascript:;">也点一下</a>

标识符

命名一个标识符需要遵守如下的规则:

  1. 标识符中可以含有字母、数字、_、$
  2. 标识符不能以数字开头
  3. 标识符不能是关键字或保留字
  4. 标识符一般采用驼峰命名法
    • 首字母小写,每个单词的开头字母大写,其余字母小写:helloWorld xxxYyyZzz

变量

白话:变量就是一个装东西的盒子

通俗:变量是用于存放数据的容器,我们通过变量名获取数据,甚至数据可以修改

声明

//声明变量
var age;//声明一个名称为age的变量

var是一个js关键字,用来声明变量,使用该关键字声明变量后,计算机会自动为变量分配内存空间

age是程序员定义的变量名

赋值

age = 10;//给age这个变量赋值为10

= 用来把右边的值赋给左边的变量空间中,此处代表赋值的意思

变量值是程序员保存到变量空间里的值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			// 1.声明一个age变量
			var age;
			// 2.赋值
			age = 18;
			// 3.输出
			console.log(age);
		</script>
	</head>
	<body>
	</body>
</html>

变量初始化

var age = 18;//声明变量同时赋值为18

案例

  1. 弹出一个输入框,提示用户输入姓名
  2. 弹出一个对话框,输出用户刚输入的姓名
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			//1.用户输入姓名
			var myname = prompt('请输入您的名字');
			//2.输出这个用户名
			alert(myname);
		</script>
	</head>
	<body>
	</body>
</html>

在这里插入图片描述

变量语法扩展

更新变量

一个变量被重新赋值后,它原有的值就会被覆盖,变量值将以最后一次赋的值为准

var age = 18;
age = 81;//最后的结果就是81,因为18被覆盖掉了
同时声明多个变量

同时声明多个变量时,只需要写一个var,多个变量名之间使用英文逗号隔开

var age = 10, name = '阿波', sex = 1;

特殊情况

情况 说明 结果
var age; console.log(age) 只声明,不赋值 undefined
console.log(age) 不声明,不赋值,直接使用 报错
age = 10; console.log(age) 不声明,只赋值 10

案例:交换两个变量的值

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			// js是编程语言有很强的逻辑性在里面,实现这个要求的思路:先怎么做后怎么做,
			// 1. 我们需要一个临时变量帮我们
			// 2. 把apple1 给我们的临时变量 temp
			// 3. 把apple2 里面的苹果给 apple1
			// 4. 把临时变量里面的值给 apple2
			var temp;
			var apple1 = '青苹果';
			var apple2 = '红苹果';
			temp = apple1; //把右边给左边
			apple1 = apple2;
			apple2 = temp;
			console.log(apple1);
			console.log(apple2);
		</script>
	</head>
	<body>
	</body>
</html>

数据类型

在js中一共有六种数据类型

  1. String 字符串
  2. Number 数值
  3. Boolean 布尔值
  4. Null 空值
  5. Undefined 未定义
  6. Object 对象

其中String、Number、Boolean、Null、Undefined属于基本数据类型,而Object属于引用数据类型

Number

在js中,所有的数值都是Number类型,包括整数和浮点数

数值型进制:常见的有:二进制、八进制、十进制、十六进制

//1.八进制数字序列范围:0~7
var num1 = 07;	//对应十进制的7
var num2 = 019;	//对应十进制的19
var num3 = 08;	//对应十进制的8
//2.十六进制数字序列范围:0~9以及A~F
var num = 0xA;

记住在js中八进制前面加0,十六进制前面加0x

JavaScript中数值的最大和最小值

alert(Number.MAX_VALUE);//1.7976931348623157e+308
alert(Number.MIN_VALUE);//5e-324

三个特殊值

alert(Infinity);//Infinity,代表无穷大,大于任何数值
alert(-Infinity);//-Infinity,代表无穷小,小于任何数值
alert(NaN);//NaN,代表一个非数值
isNaN()

用来判断一个变量是否为非数字的类型,返回true或者false

var usrAge = 21;
var isOk = isNaN(usrAge);
console.log(isNum);			  //false,21不是一个非数字
var userName = '阿波';
console.log(isNaN(userName)); //true,'阿波'是一个非数字
typeof

用来检测变量的数据类型

typeof "John"                // 返回 string
typeof 3.14                  // 返回 number
typeof false                 // 返回 boolean
typeof [1,2,3,4]             // 返回 object
typeof {
   name:'John', age:34} // 返回 object

Boolean

布尔类型有两个值:true和false,其中true表示真(对),而false表示假(错)

布尔型和数字型相加的时候,true的值为1,false的值为0

console.log(true + 1);//2
console.log(false + 1);//1

Null 和 Undefined

Null类型的值只有一个,就是null,null这个值专门用来表示一个为空的对象,使用typeof检查null值时,会返回object

Undefined类型的值只有一个,就是undefined,一个声明后没有被赋值的变量会有一个默认值undefined,使用typeof检查undefined值时,会返回undefined

数据类型转换

通俗来讲就是把一种数据类型的变量转换成另外一种数据类型

转换为字符串
方式 说明 案例
toString() 转成字符串 var num = 1;alert(num.toString());
String()强制转换 转成字符串 var num = 1;alert(Strinig(num));
加号拼接字符串 和字符串拼接的结果都是字符串 var num = 1;alert(num + “我是字符串”);
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			//1.把数字型转换为字符串型 变量.toString()
			var num = 10;
			var str = num.toString();
			console.log(str);
			console.log(typeof str);
			//2.我们利用String(变量)
			console.log(String(num));
			//3.利用 + 拼接字符串的方法实现转换效果
			console.log(num + '');
		</script>
	</head>
	<body>
	</body>
</html>
转换为数字型(重点)
方式 说明 案例
parseInt(string)函数 将String类型转换成整数数值型 parseInt(‘78’)
parsFloat(string)函数 将String类型转换成浮点数数值型 parseFloat(‘78.26’)
Number()强制转换函数 将String类型转换为数值型 Number(‘12’)
js隐式转换(- * /) 利用算术运算隐式转换为数值型 ‘12’ - 0
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			//1.parseInt(变量) 可以把 字符型转换为数字型 得到的是整数
			console.log(parseInt('3.14'));//3 取整
			console.log(parseInt('3.94'));//3 取整
			console.log(parseInt('120px'));//120 会去掉这个px单位
			console.log(parseInt('rem120px'));//NaN
			//2.parseFloat(变量) 可以把字符型转换为数字型 得到的是小数 浮点数
			console.log(parseFloat(3.14));
			console.log(parseFloat('120px'));//120 会去掉这个px单位
			console.log(parseFloat('rem120px'));//NaN
			//3.利用Number(变量)
			var str = '123';
			console.log(Number(str));
			console.log(Number('12'));
			//4.利用了算术运算 - * / 隐式转换
			console.log('12' - 0);//12
			console.log('123' - '120');
		</script>
	</head>
	<body>
	</body>
</html>
简单加法器案例
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			//先弹出一个输入框,提示用户输入第一个值,保存起来
			//再弹出一个输入框,提示用户输入第二个值,保存起来
			//把这两个值相加,并将结果赋给新的变量(注意数据类型转换)
			//弹出警示框(alert),把计算的结果输出
			var num1 = prompt('请您输入第一个值:');
			var num2 = prompt('请您输入第二个值:');
			var result = parseFloat(num1) + parseFloat(num2);
			alert('您的结果是:' + result);
		</script>
	</head>
	<body>
	</body>
</html>

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

转换为布尔型
方式 说明 案例
Boolean()函数 其他类型转成布尔值 Boolean(‘true’);
  1. 代表空、否定的值会被转换为false,如“、0、NaN、null、undefined
  2. 其余值都会被转换为true
console.log(Boolean(''));//false
console.log(Boolean(0));//false
console.log(Boolean(NaN));//false
console.log(Boolean(null));//false
console.log(Boolean(undefined));//false
console.log(Boolean('小白'));//true
console.log(Boolean(12));//true

String

字符串型可以是引号中的任意文本,其语法为双引号和单引号

var strMsg = "我爱北京天安门~";//使用双引号表示字符串
var strMsg2 = 'WDNMD';		 //使用单引号表示字符串
//常见错误
var strMsg3 = 哈哈哈;		  //报错,没使用引号,会被认为是js代码,但是js没有这些语法
转义符
转义符 解释说明
\n 换行符,n是newline的意思
\ 斜杠\
单引号‘
" 双引号"
\t tab 缩进
\b 空格,b是blank的意思
字符串长度

通过字符串的length属性可以获取整个字符串的长度

var strMsg = '我是阿波!';
alert(strMsg.length);//显示5
字符串拼接
//1.1字符串“相加”
alert('hello' + ' ' + 'world');//hello world
//1.2数值字符串”相加“
alert('100' + '100');//100100
//1.3数值字符串 + 数值
alert('11' + 12);//1112

+号总结口诀:数值相加,字符相连

字符串拼接加强
console.log('阿波' + 18);		  	  //只要有字符就会相连
var age = 18;
//console.log('阿波age岁啦');		//这样不行哦
console.log('阿波' + age);		 //阿波18
console.log('阿波' + age + '岁啦'); //阿波18岁啦

运算符

运算符 描述 实例
+ 10 + 20 = 30
- 10 - 20 = -10
* 10 * 20 = 200
/ 10 / 20 = 0.5
% 取余数(取模) 返回除去的余数9 % 2 = 1

浮点数精度问题

浮点数值的最高精度是17位小数,但在进行算术计算时其精确度远远不如整数

var result = 0.1 + 0.2;			//结果不是0.3,而是:0.30000000000000004
console.log(0.7 * 100);			//结果不是7,而是:7.000000000000001

所以不要直接判断两个浮点数是否相等

<script type="text/javascript">
	//浮点数 算术运算里面会有问题
	//我们不能直接拿着浮点数来进行相比较 是否相等
	var num = 0.1 + 0.2;
	console.log(num == 0.3);//false
</script>

递增和递减运算符

前置递增运算符

++num 前置递增,就是自加1,类似于num = num + 1,但是 ++num 写起来更简单

<script type="text/javascript">
	//1.想要一个变量自己加1 num = num + 1 比较麻烦
	var num = 1;
	num = num + 1;//++num
	console.log(num);//2
	//2.前置递增运算符 ++ 写在变量的前面
	var age = 10;
	++age;
	console.log(age);//11
	//3.先加1 后返回值
	var p = 10;
	console.log(++p + 10);//21
</script>
后置递增运算符

num++ 后置递增,就是自加1,类似于num = num + 1,但是 num++ 写起来更简单

使用口诀:先返回原值,后自加

<script type="text/javascript">
	var num = 10;
	num++;// num = num + 1 ++num;
	//前置自增和2后置自增如果单独使用 效果是一样的
	var age = 10;
	console.log(age++ + 10);//20
	//这里age = 11
</script>
总结
  1. 后置:先原值运算,后自加(先人后己)
  2. 前置:先自加,后运算(先己后人)
  3. 开发时,大多使用后置递增/减,并且代码独占一行,例如:num++ 或者 num–;

比较运算符

比较运算符(关系运算符)是两个数据进行比较时所使用的运算符,比较运算后,会返回一个布尔值(true/false)作为比较运算的结果

运算符名称 说明 案例 结果
< 小于号 1 < 2 true
> 大于号 1 > 2 false
>= 大于等于号(大于或者等于) 2 >= 2 true
<= 小于等于号(小于或者等于) 3 <= 2 false
== 判等号 37 == 37 true
!= 不等号 37 != 37 false
=== !== 全等 要求值和数据类型都一致 37 === ‘37’ false
<script type="text/javascript">
	//1.程序里面的等于符号是 == 默认转换数据类型 会把字符串型的数据转换为数字型 只要求值相等就可以
	console.log(3 == 5)//false
	console.log('阿波' == '波波');//false
	console.log(78 == 78);//true
	console.log(78 == '78');//true
	console.log(78 != 78);//false
	//2.程序里面有全等 一模一样 要求 两侧的值 还有 数据类型完全一致才可以true
	console.log(18 === 18);//true
</script>
符号 作用 用法
= 赋值 把右边给左边
== 判断 判断两边值是否相等(注意此时有隐式转换)
=== 全等 判断两边的值和数据类型是否完全相同

逻辑运算符

逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。

逻辑运算符 说明 案例
&& “逻辑与”,简称 “与” and true && false
|| “逻辑或”,简称 “或” or true || false
! “逻辑非”,简称 “非” not ! true

逻辑与&&:两边都是true才返回true,否则返回false

逻辑或||:两边都为false才返回false,否则都为true

逻辑非!:也叫取反符,用来取一个布尔值相反的值,如true的相反值是false

var isOk = !true;
console.log(isOk);//false
短路运算(逻辑中断)

当有多个表达式时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值

逻辑与

如果第一个表达式的值为真,则返回表达式2

如果第一个表达式的值为假,则返回表达式1

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			//1.用我们的布尔值参与的逻辑运算 true && false == false
			//2.123 && 456是值 或者是 表达式 参与逻辑运算?
			//3.逻辑与短路运算 如果表达式1为真 则返回表达式2 如果表达式1为假的 返回表达式1
			console.log(123 && 456);//456
			console.log(0 && 456);//0
			console.log(0 && 1 + 2 && 456 * 56789);//0
			console.log('' && 1 + 2 && 456 * 56789)//''
			//如果有空的或者否定的为假 其余是真的 0、''、null、undefined、NaN
		</script>
	</head>
	<body>
	</body>
</html>
逻辑或

如果表达式1为真,则返回表达式1

如果表达式1为假,则返回表达式2

console.log(123 || 456);//123
console.log(0 || 456);//456
console.log(123 || 456 || 789);//123

赋值运算符

赋值运算符 说明 案例
= 直接赋值 var usrName = ‘我是值’
+=、-= 加、减一个数 后再赋值 var age = 10;age += 5; //15
*=、/=、%= 乘、除、取模 后再赋值 var age = 2; age *= 5; //10
var age = 10;
age += 5;//相当于 age = age + 5
age -= 5;//相当于 age = age - 5
age *= 10;//相当于 age = age * 10

运算符优先级

优先级 运算符 顺序
1 小括号 ()
2 一元运算符 ++ – !
3 算术运算符 先 * / % 后 + -
4 关系运算符 > >= < <=
5 相等运算符 == != === !==
6 逻辑运算符 先 && 后 ||
7 赋值运算符 =
8 逗号运算符 ,

流程控制

流程控制主要有三种结构,分别是顺序结构、分支结构和循环结构

顺序流程控制

顺序结构是程序中最简单、最基本的流程控制,它没有特定的语法结构,程序会按照代码的先后顺序,依次执行

分支结构

由上到下执行代码的过程中,根据不同条件,执行不同的路径代码(执行代码多选一的过程),从而得到不同的结果

JS提供了两种分支结构语句:if语句 和 switch语句

if分支语句
// 语法结构:
// 条件成立执行代码,否则什么也不做
if(条件表达式) {
   
	执行语句
}
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			var year = prompt('请输入年龄');
			if(year >= 18) {
     
				alert('允许进入网吧');
			}
		</script>
	</head>
	<body>
	</body>
</html>
if else语句(双分支语句)
// 语法结构:
// 条件成立执行if里面的代码,否则执行else里面的代码
if(条件表达式) {
   
    //if条件成立执行的代码
} else {
   
    //否则 执行的代码
}
<script type="text/javascript">
	var age = prompt('请输入年龄');
	if(age >= 18) {
   
		alert('我带你去网吧偷键盘');
	} else {
   
		alert('滚!回家做作业去!');
	}
</script>
判断闰年
<script type="text/javascript">
	var year = prompt('请输入一个年份');
	if(year % 4 == 0 & year % 100 != 0) {
   
		alert('闰年');
	} else {
   
		alert('平年');
	}
</script>
if else if 语句(多分支语句)
// 语法结构:
// 适合检查多重条件
if(条件表达式1) {
   
    语句1;
} else if (条件表达式2
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值