javascript语言入门教程,javascript教程完整版
大家好,小编来为大家解答以下问题,javascript语言入门教程,javascript教程完整版,今天让我们一起来看看吧!
前言
教你学会JavaScript分成四大部分:
教你完全学会JavaScript(基础篇--更新中)
教你完全学会JavaScript(DOM篇--完结)
教你完全学会JavaScript(BOM篇--更新中)
教你完全学会JavaScript(jQuery篇--等待)
目录
一、JS的三种书写方式
1.行内式的js(直接写到元素的内部)
2.内嵌式的js
3.外部式js
二、JS注释
三、JS的输入输出
四、JS的变量
1.变量:用于存放数据的容器,通过变量名获取数据。
2.变量使用:声明变量——赋值
编辑3.变量的初始化
4.变量案例:
5.变量语法扩展
6.变量案例:交换两个变量
五、数据类型
1.简单数据类型
2.案例练习:字符串拼接
3. 布尔型,undefinded和null
4.获取变量的数据类型
5.数据类型转换
(1)转换成字符串
编辑 (2)转换成数字型
(3)转换成布尔型
(4)案例1:计算年龄
(5)案例2:加法
六、JavaScript运算符
(1)算数运算符和递增递减运算符
(2)前置运算符和后置运算符的练习
(3)比较运算符
(4)逻辑运算符
(5)运算符优先级
七、流程控制
1、分支流程控制if
2.进入网吧案例
3.if else分支语句
4.判断闰年
5.if else if分支语句
6三元表达式
7.switch分支语句
8.switch的注意事项
9.查询水果案例
八、循环
九、Math函数
1.猜数字游戏
然后就得到了 Math.floor(Math.random() * (max - min + 1)) + min
2.随机点名
3.Math的绝对值和三个取整方法
4.封装自己的数字对象
5.Math最大值
十、数组
1.创建数组
2.翻转数组(♥)+检测是否为数组
3.添加或者是删除数组
4.筛选数组
一、JS的三种书写方式
1.行内式的js(直接写到元素的内部)
<!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>Document</title>
</head>
<body><!-- 行内式:点击xiaoming弹出xiaohong --><input type="button" value="xiaoming" onclick="alert('xiaohong')">
</body>
</html>
2.内嵌式的js
<!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>Document</title><!-- 内嵌式js --><>alert('hello')</>
</head>
<body><!-- 点击xiaoming弹出xiaohong --><!-- <input type="button" value="xiaoming" onclick="alert('xiaohong')"> -->
</body>
</html>
3.外部式js
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>Document</title><!-- 内嵌式js --><>// alert('hello')</><!-- 外部js -->< src="js/xuexi.js"></>
</head>
<body><!-- 点击xiaoming弹出xiaohong --><!-- <input type="button" value="xiaoming" onclick="alert('xiaohong')"> -->
</body>
</html>
js文件
alert('你是风儿,我是沙子')
二、JS注释
<!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>Document</title><>//1.单行注释 ctrl+//*2.多行注释 shift+alt+a*/</>
</head>
<body></body>
</html>
三、JS的输入输出
<!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>Document</title><>//这是一个输入框prompt('请输入你的爱好')// 弹出警示框alert('你的爱好是')// console 控制台输出 测试用的 按F12console.log('我是能在F12的console中看到的')</>
</head>
<body></body>
</html>
四、JS的变量
1.变量:用于存放数据的容器,通过变量名获取数据快码论文。
2.变量使用:声明变量——赋值
<!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>Document</title><>var age;//声明一个age的变量var name;//声明一个name的变量var hobby;//声明一个hobby的变量var gander;//声明一个gander的变量age=18;name='小伦';hobby='写代码';gander='女';console.log(age);console.log(name);console.log(hobby);console.log(gander);</>
</head>
<body></body>
</html>
3.变量的初始化
<!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>Document</title><>var age;//声明一个age的变量var name;//声明一个name的变量var hobby;//声明一个hobby的变量var gander;//声明一个gander的变量age=18;name='小伦';hobby='写代码';gander='女';console.log(age);console.log(name);console.log(hobby);console.log(gander);// 变量的初始化var number='12345678'console.log(number)</>
</head>
<body></body>
</html>
4.变量案例:
弹出一个输入框,提示用户输入姓名。弹出一个对话框,输出用户刚才输入的姓名。
<!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>Document</title><>//用户输入姓名存储到myname的变量var myname=prompt('请输入你的名字:');// 输出用户名alert('你的名字是:'+myname);</>
</head>
<body></body>
</html>
5.变量语法扩展
<!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>Document</title><>// 更新变量(小伦变小罗)var myname='小伦';console.log(myname);var myname='小罗';console.log(myname)// 声明多个变量var age=18,name='小伦',hobby='写代码',gander='女';// 声明变量的特殊情况// 1.声明变量不赋值 undefindedvar number;console.log(number);// 2.不声明直接赋值 可以用qq=111;console.log(qq);// 3.不声明不赋值会报错console.log(address);</>
</head>
<body></body>
</html>
6.变量案例:交换两个变量
<!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>Document</title><>var temp;var apple1='苹果1';var apple2='苹果2';temp=apple1;apple1=apple2;apple2=temp;console.log(apple1);console.log(apple2);</>
</head>
<body></body>
</html>
五、数据类型
数据类型的简介:不同的数据所需占用的存储空间是不同的。
1.简单数据类型
<!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>Document</title><>var num=10;var PI=3.14;// 八进制 0-7在程序数字前面加0表示八进制var num1=010;// 010 转换成十进制 等于 8console.log(num1);var num2=012;console.log(num2);// 十六进制 0-9 a-fvar num3=0x9;//结果是9console.log(num3);var num4=0xa;//结果是10console.log(num4);//数字型的最大值console.log(Number.MAX_VALUE);//1.7976931348623157e+308//数字型的最小值console.log(Number.MIN_VALUE);//5e-324//无穷大console.log(Number.MAX_VALUE*2);//Infinity//无穷小console.log(-Number.MAX_VALUE*2);//-Infinity//非数字console.log('小伦'-100);//NaN//isNaN 用来判断一个变量是否为非数字的类型,返回true或者falseconsole.log(isNaN('小伦'));//trueconsole.log(isNaN(12));//false//字符串型String 单引号和双引号里面的都是字符串型var str1='12';var str2='我是爱吃"臭豆腐"的小伦';console.log(str1);console.log(str2);//转义符的作用var str3='我\'是\"爱\\吃"臭豆腐"\n的小\t伦';console.log(str3);// 检测获取字符串长度 lengthvar str='my name is andy';console.log(str.length);//字符串的拼接console.log('我是'+'小伦');console.log('小伦'+18);console.log('小伦'+true);console.log(12+12);console.log('12'+12);</>
</head>
<body></body>
</html>
2.案例练习:字符串拼接
<!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>Document</title><>var age=prompt('请输入你的年龄:');var str='你今年已经'+age+'岁';alert(str);</></head>
<body></body>
</html>
3. 布尔型,undefinded和null
<!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>Document</title><>var flag=true;var flag1=false;console.log(flag+1);//true参加加法运算当成1来看 2console.log(flag1+1);//false参加加法运算当成0来看 1// 如果一个变量声明没赋值 就是undefinded未定义数据类型var str;console.log(str);//undefindedvar variable=undefined;console.log(variable+'hello');//undefindedhelloconsole.log(variable+1)//NaN undefinded和数字相加最后的结果是NaN//null空值var space=null;console.log(space+'hello');//nullhelloconsole.log(space+1);//1</>
</head>
<body></body>
</html>
4.获取变量的数据类型
<!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>Document</title><>var num=10;console.log(typeof num);//numbervar str='hello';console.log(typeof str);//stringvar flag=true;console.log(typeof flag);//booleanvar vari=undefined;console.log(typeof vari);//undefindedvar timer=null;console.log(typeof timer);//object // 举个例子var age=prompt('请输入你的年龄');console.log(age);console.log(typeof age);//string</></head>
<body></body>
</html>
5.数据类型转换
(1)转换成字符串
(2)转换成数字型
(3)转换成布尔型
<!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>Document</title><>// (1)转换成字符串//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+'');//(2)转换成数字型// 1.parseIntvar age=prompt('请输入你的年龄:');console.log(parseInt(age));console.log(parseInt('3.14'));//取整 3console.log(parseInt('3.94'));//取整 3console.log(parseInt('100px'));//去掉单位 100// 2.parseFloat把字符型转换为数字型 得到小数 浮点数console.log(parseFloat('3.14'));//3.14console.log(parseFloat('3.94'));//3.94console.log(parseFloat('100px'));//去掉单位 100//3.利用Numbervar str='12';console.log(Number(str));// 4.利用算数运算符-*/console.log('123'-'120');//两个字符型的转换成数字型的</>
</head>
<body></body>
</html>
(4)案例1:计算年龄
<!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>Document</title><>var year=prompt('请输入你的出生年份:');var age=2023-year;alert('你今年已经'+age+'岁了');</>
</head>
<body></body>
</html>
(5)案例2:加法
<!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>Document</title><>var num1=prompt('请你输入第一个值:');var num2=prompt('请你输入第二个值:');// 因为上面取到的值是字符串型的,我们要把它们转换成数字型的才可以相加var result=parseFloat(num1)+parseFloat(num2);alert('相加的结果是:'+result);</>
</head>
<body></body>
</html>
六、JavaScript运算符
(1)算数运算符和递增递减运算符
<!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>Document</title><>// 1.算数运算符console.log(1+1);console.log(1-1);console.log(1/1);console.log(1*1);console.log(4%2);//0console.log(3%5);//3console.log(0.07+0.3);//浮点数精度有问题// 2.表达式:是由数字、运算符、变量等组成的式子console.log(1+1);//2就是返回值// 3.递增和递减的运算符,(++)(--)放前面是前置运算符,放后面是后置运算符console.log('3.前置后置运算符对比:')//前置运算符:先自加一 然后返回值var num1=10;console.log(++num1 + 10);//后置运算符:先放回原值 后自加一var age=10;console.log(age++ + 10);//先把原值返回10 +10,然后自加1console.log(age);</>
</head>
<body></body>
</html>
(2)前置运算符和后置运算符的练习
<!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>Document</title><>// 前置运算符var a=10;++a;//a=11var b=++a + 2;//a=12 console.log(b);//后置运算符var c=10;c++;//11var d=c++ + 1;//c++=11 c=12console.log(d); //13var e=10;var f=e++ + ++e;//e++=10 ++e=11 ==> 21 ==> 22console.log(f);</>
</head>
<body></body>
</html>
(3)比较运算符
<!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>Document</title><>// 双等符号与三等运算符console.log(18=='18');//trueconsole.log(18==='18');//false</>
</head>
<body></body>
</html>
(4)逻辑运算符
短路运算(逻辑中断):当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值了。
<!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>Document</title><>// 逻辑与短路运算:表达式1结果为真则返回表达式2console.log(123 && 456);//除了0其他数字都是真的 456console.log(0 && 456);//0//逻辑或短路运算: 如果表达式1结果为真则返回表达式1;如果表达式1结果为假则返回表达式2;console.log(123 || 456);//123console.log(0 || 456);//456</>
</head>
<body></body>
</html>
(5)运算符优先级
七、流程控制
1、分支流程控制if
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 1. if 的语法结构 如果if// if (条件表达式) {// // 执行语句// }// 2. 执行思路 如果 if 里面的条件表达式结果为真 true 则执行大括号里面的 执行语句 // 如果if 条件表达式结果为假 则不执行大括号里面的语句 则执行if 语句后面的代码// 3. 代码体验if (3 < 5) {alert('沙漠骆驼');}</>
</head><body></body></html>
2.进入网吧案例
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 弹出 prompt 输入框,用户输入年龄, 程序把这个值取过来保存到变量中// 使用 if 语句来判断年龄,如果年龄大于18 就执行 if 大括号里面的输出语句var age = prompt('请输入您的年龄:');if (age >= 18) {alert('go!');}</>
</head><body></body></html>
3.if else分支语句
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 1. 语法结构 if 如果 else 否则// if (条件表达式) {// // 执行语句1// } else {// // 执行语句2 // }// 2. 执行思路 如果表达式结果为真 那么执行语句1 否则 执行语句2// 3. 代码验证var age = prompt('请输入您的年龄:');if (age >= 18) {alert('开开心心上网');} else {alert('滚不要来');}// 5. if里面的语句1 和 else 里面的语句2 最终只能有一个语句执行 2选1// 6. else 后面直接跟大括号</>
</head><body></body></html>
4.判断闰年
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 算法:能被4整除且不能整除100的为闰年(如2004年就是闰年,1901年不是闰年)或者能够被 400 整除的就是闰年// 弹出prompt 输入框,让用户输入年份,把这个值取过来保存到变量中// 使用 if 语句来判断是否是闰年,如果是闰年,就执行 if 大括号里面的输出语句,否则就执行 else里面的输出语句// 一定要注意里面的且 && 还有或者 || 的写法,同时注意判断整除的方法是取余为 0var year = prompt('请您输入年份:');if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {alert('您输入的年份是闰年');} else {alert('您输入的年份是平年');}</>
</head><body></body></html>
5.if else if分支语句
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 伪代码 按照从大到小判断的思路// 弹出prompt输入框,让用户输入分数(score),把这个值取过来保存到变量中// 使用多分支 if else if 语句来分别判断输出不同的值var score = prompt('请您输入分数:');if (score >= 90) {alert('宝贝,你是我的骄傲');} else if (score >= 80) {alert('宝贝,你已经很出色了');} else if (score >= 70) {alert('你要继续加油喽');} else if (score >= 60) {alert('孩子,你很危险');} else {alert('熊孩子,我不想和你说话,我只想用鞭子和你说话');}</>
</head><body></body></html>
6三元表达式
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 用户输入0~59之间的一个数字// 如果数字小于10,则在这个数字前面补0,(加0 拼接) 否则 不做操作// 用一个变量接受这个返回值,输出var time = prompt('请您输入一个 0 ~ 59 之间的一个数字');// 三元表达式 表达式 ? 表达式1 :表达式2 var result = time < 10 ? '0' + time : time; // 把返回值赋值给一个变量alert(result);</>
</head><body></body></html>
7.switch分支语句
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 1. switch 语句也是多分支语句 也可以实现多选1// 2. 语法结构 switch 转换、开关 case 小例子或者选项的意思// switch (表达式) {// case value1:// 执行语句1;// break;// case value2:// 执行语句2;// break;// ...// default:// 执行最后的语句;// }// 3. 执行思路 利用我们的表达式的值 和 case 后面的选项值相匹配 如果匹配上,就执行该case 里面的语句 如果都没有匹配上,那么执行 default里面的语句// 4. 代码验证switch (8) {case 1:console.log('这是1');break;case 2:console.log('这是2');break;case 3:console.log('这是3');break;default:console.log('没有匹配结果');}</>
</head><body></body></html>
8.switch的注意事项
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// switch注意事项var num = 1;switch (num) {case 1:console.log(1);case 2:console.log(2);case 3:console.log(3);break;}// 1. 我们开发里面 表达式我们经常写成变量// 2. 我们num 的值 和 case 里面的值相匹配的时候是 全等 必须是值和数据类型一致才可以 num === 1// 3. break 如果当前的case里面没有break 则不会退出switch 是继续执行下一个case</>
</head><body></body></html>
9.查询水果案例
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 弹出 prompt 输入框,让用户输入水果名称,把这个值取过来保存到变量中。// 将这个变量作为 switch 括号里面的表达式。// case 后面的值写几个不同的水果名称,注意一定要加引号 ,因为必须是全等匹配。// 弹出不同价格即可。同样注意每个 case 之后加上 break ,以便退出 switch 语句。// 将 default 设置为没有此水果。var fruit = prompt('请您输入查询的水果:');switch (fruit) {case '苹果':alert('苹果的价格是 3.5/斤');break;case '榴莲':alert('榴莲的价格是 35/斤');break;default:alert('没有此水果');}</>
</head><body></body></html>
八、循环
(更新中)
九、Math函数
1.猜数字游戏
Math.random()给我们返回一个在0-1范围内的随机数。
但我们不想要一个随机的小数;我们想要一个任意随机数。我们可以通过我们的Math.random()的结果乘以任意数值区间得到它。举个例子,如果我们想要一个在0-10之间的随机数,我们需要乘以10,然后结果中的0.4会变成4。如果我们想要一个7-11的随机数,即(7,8,9,10,11)。
这个结果我们可以通过Math.random() * (max - min + 1)来得到它。
我们不仅仅想要一个小数,我们想要一个整数。Math.floor()用来砍掉小数后的数值,让3.14159变成了3。
这就是我们通过 Math.floor(Math.random() * (max - min + 1)).得到的。
现在我们得到了一个从0开始到我们定义的任意范围的数据。我们想要一个介于7-11的数值,但是现在只得到了0-5。为了把它变成7-10,我们只需要把任意我们得到的值加上7。7是我们的最小值。
然后就得到了 Math.floor(Math.random() * (max - min + 1)) + min
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 猜数字游戏// 1.随机生成一个1~10 的整数 我们需要用到 Math.random() 方法。// 2.需要一直猜到正确为止,所以需要一直循环。// 3.while 循环更简单// 4.核心算法:使用 if else if 多分支语句来判断大于、小于、等于。function getRandom(min, max) {return Math.floor(Math.random() * (max - min + 1)) + min;}var random = getRandom(1, 10);while (true) { // 死循环var num = prompt('你来猜? 输入1~10之间的一个数字');if (num > random) {alert('你猜大了');} else if (num < random) {alert('你猜小了');} else {alert('你好帅哦,猜对了');break; // 退出整个循环结束程序}}// 要求用户猜 1~50之间的一个数字 但是只有 10次猜的机会</>
</head><body></body></html>
2.随机点名
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 1.Math对象随机数方法 random() 返回一个随机的小数 0 =< x < 1// 2. 这个方法里面不跟参数// 3. 代码验证 console.log(Math.random());// 4. 我们想要得到两个数之间的随机整数 并且 包含这2个整数// Math.floor(Math.random() * (max - min + 1)) + min;function getRandom(min, max) {return Math.floor(Math.random() * (max - min + 1)) + min;}console.log(getRandom(1, 10));// 5. 随机点名 var arr = ['张三', '三丰', '疯子', '小路', '小礼帽', '小猪'];// console.log(arr[0]);console.log(arr[getRandom(0, arr.length - 1)]);</>
</head><body></body></html>
3.Math的绝对值和三个取整方法
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 1.绝对值方法console.log(Math.abs(1)); // 1console.log(Math.abs(-1)); // 1console.log(Math.abs('-1')); // 隐式转换 会把字符串型 -1 转换为数字型console.log(Math.abs('hello')); // NaN // 2.三个取整方法// (1) Math.floor() 地板 向下取整 往最小了取值console.log(Math.floor(1.1)); // 1console.log(Math.floor(1.9)); // 1// (2) Math.ceil() ceil 天花板 向上取整 往最大了取值console.log(Math.ceil(1.1)); // 2console.log(Math.ceil(1.9)); // 2// (3) Math.round() 四舍五入 其他数字都是四舍五入,但是 .5 特殊 它往大了取 console.log(Math.round(1.1)); // 1console.log(Math.round(1.5)); // 2console.log(Math.round(1.9)); // 2console.log(Math.round(-1.1)); // -1console.log(Math.round(-1.5)); // 这个结果是 -1</>
</head><body></body></html>
4.封装自己的数字对象
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 利用对象封装自己的数学对象 里面有 PI 最大值和最小值var myMath = {PI: 3.141592653,max: function() {var max = arguments[0];for (var i = 1; i < arguments.length; i++) {if (arguments[i] > max) {max = arguments[i];}}return max;},min: function() {var min = arguments[0];for (var i = 1; i < arguments.length; i++) {if (arguments[i] < min) {min = arguments[i];}}return min;}}console.log(myMath.PI);console.log(myMath.max(1, 5, 9));console.log(myMath.min(1, 5, 9));</>
</head><body></body>
5.Math最大值
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// Math数学对象 不是一个构造函数 ,所以我们不需要new 来调用 而是直接使用里面的属性和方法即可console.log(Math.PI); // 一个属性 圆周率console.log(Math.max(1, 99, 3)); // 99console.log(Math.max(-1, -10)); // -1console.log(Math.max(1, 99, '小伦')); // NaNconsole.log(Math.max()); // -Infinity</>
</head><body></body></html>
十、数组
1.创建数组
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 创建数组的两种方式// 1. 利用数组字面量var arr = [1, 2, 3];console.log(arr[0]);// 2. 利用new Array()// var arr1 = new Array(); // 创建了一个空的数组// var arr1 = new Array(2); // 这个2 表示 数组的长度为 2 里面有2个空的数组元素 var arr1 = new Array(2, 3); // 等价于 [2,3] 这样写表示 里面有2个数组元素 是 2和3console.log(arr1);</>
</head><body></body></html>
2.翻转数组(♥)+检测是否为数组
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 翻转数组function reverse(arr) {// if (arr instanceof Array) {if (Array.isArray(arr)) {var newArr = [];for (var i = arr.length - 1; i >= 0; i--) {newArr[newArr.length] = arr[i];}return newArr;} else {return 'error 这个参数要求必须是数组格式 [1,2,3]'}}console.log(reverse([1, 2, 3]));console.log(reverse(1, 2, 3));// 检测是否为数组// (1) instanceof 运算符 它可以用来检测是否为数组var arr = [];var obj = {};console.log(arr instanceof Array);console.log(obj instanceof Array);// (2) Array.isArray(参数); H5新增的方法 ie9以上版本支持console.log(Array.isArray(arr));console.log(Array.isArray(obj));</>
</head><body></body></html>
3.添加或者是删除数组
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 添加删除数组元素方法// 1. push() 在我们数组的末尾 添加一个或者多个数组元素 push 推var arr = [1, 2, 3];// arr.push(4, 'pink');console.log(arr.push(4, 'pink'));console.log(arr);// (1) push 是可以给数组追加新的元素// (2) push() 参数直接写 数组元素就可以了// (3) push完毕之后,返回的结果是 新数组的长度 // (4) 原数组也会发生变化// 2. unshift 在我们数组的开头 添加一个或者多个数组元素console.log(arr.unshift('red', 'purple'));console.log(arr);// (1) unshift是可以给数组前面追加新的元素// (2) unshift() 参数直接写 数组元素就可以了// (3) unshift完毕之后,返回的结果是 新数组的长度 // (4) 原数组也会发生变化// 3. pop() 它可以删除数组的最后一个元素 console.log(arr.pop());console.log(arr);// (1) pop是可以删除数组的最后一个元素 记住一次只能删除一个元素// (2) pop() 没有参数// (3) pop完毕之后,返回的结果是 删除的那个元素 // (4) 原数组也会发生变化// 4. shift() 它可以删除数组的第一个元素 console.log(arr.shift());console.log(arr);// (1) shift是可以删除数组的第一个元素 记住一次只能删除一个元素// (2) shift() 没有参数// (3) shift完毕之后,返回的结果是 删除的那个元素 // (4) 原数组也会发生变化</>
</head><body></body></html>
4.筛选数组
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 有一个包含工资的数组[1500, 1200, 2000, 2100, 1800],要求把数组中工资超过2000的删除,剩余的放到新数组里面var arr = [1500, 1200, 2000, 2100, 1800];var newArr = [];for (var i = 0; i < arr.length; i++) {if (arr[i] < 2000) {// newArr[newArr.length] = arr[i];newArr.push(arr[i]);}}console.log(newArr);</>
</head><body></body></html>
5.数组排序
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 数组排序// 1. 翻转数组var arr = ['pink', 'red', 'blue'];arr.reverse();console.log(arr);// 2. 数组排序(冒泡排序)var arr1 = [13, 4, 77, 1, 7];arr1.sort(function(a, b) {// return a - b; 升序的顺序排列return b - a; // 降序的顺序排列});console.log(arr1);</>
</head><body></body></html>
6.获取数组元素索引
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><>// 返回数组元素索引号方法 indexOf(数组元素) 作用就是返回该数组元素的索引号 从前面开始查找// 它只返回第一个满足条件的索引号 // 它如果在该数组里面找不到元素,则返回的是 -1 // var arr = ['red', 'green', 'blue', 'pink', 'blue'];var arr = ['red', 'green', 'pink'];console.log(arr.indexOf('blue'));//-1// 返回数组元素索引号方法 lastIndexOf(数组元素) 作用就是返回该数组元素的索引号 从后面开始查找var arr = ['red', 'green', 'blue', 'pink', 'blue'];console.log(arr.lastIndexOf('blue')); // 4</>
</head><body></body></html>