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>
相关文章:
javascript语言入门教程,javascript教程完整版
大家好,小编来为大家解答以下问题,javascript语言入门教程,javascript教程完整版,今天让我们一起来看看吧! 前言 教你学会JavaScript分成四大部分: 教你完全学会JavaScript(基础篇--更新中&…...
七款开源ERP评估比较
前言 一、Compiere ERP 二、Openbravo ERP 三、Nseer ERP (信恩) 四、Open ERP 五、Web ERP 六、Sequoia ERP 七、Opentaps 前言 有一定规模的企业,会思考引入ERP系统用于改善自己的运营模式,但有许多企业在ERP实施与使用过…...
android8 保卫萝卜,保卫萝卜挑战8攻略图解,学会这些,轻松过第八关
要阻止怪物吃到萝卜,还是有一定的难度的。大家对游戏的操作水平不同,会卡在不同的关卡上,下面就让小编来给大家讲解保卫萝卜挑战8攻略图解。 首先第一个关键点就在于找准怪兽的一个入口。我们可以看到金币有五百多个,所以可以购买…...
恶搞中国足球大汇总
郭德纲在他的相声段子里曾经说,他准备练习踢足球,教练看了他之后非常惊讶,告诉他说:“你呀,有比马拉多纳还优秀的素质,但只有两样东西不行,一个是你的左腿,一个是你的右腿” “咋整&…...
。IBM ThinkPad T60P 全面评测
45000元都能买到些什么东西呢? 如果去吃麦当劳,50元吃一顿的话,每天每顿吃的话,差不多够吃1年; 如果拿来买球鞋,1000元1双的耐克鞋可以买45双,每天穿1双的话也足够一个半月不重复;…...
ubuntu实用工具
转至http://www.oschina.net/question/12_515 抛开Windows,其实在任何一款Linux发行版本中,我们都有超级大量的软件来安装,使用。这次的教程,我就以Ubuntu为例,来给大家推荐一些我认为不错的软件 声明: 1.本…...
赛效:在线查询QQ号价格评估的方法是什么
QQ是非常经典的聊天工具,在很多时候我们上班也要登着QQ号,除了可以交流、传递资料、 登录体平台外,有时候还要用QQ邮箱进行接收验证码之类的操作。QQ用久了,难免会有一个想法,就是我们的QQ号究竟值多少钱呢?…...
查看文件的MD5值得方法 (校验完整性)
MAC查看MD5值 1.打开终端 2.输入 md5 filename 3.将需要校验的文件拖入终端窗口(这一步就是相当于输入文件的目录地址) 4.按下回车,等待返回结果(文件越大,校验越慢) WIN查看MD5值 certutil -hashfile filename MD5 certutil -hashfile filename SHA1 certutil -hash…...
盘点:恋爱一族约会英语词汇
美语中有些字眼在中文里面似乎找不到可代换的字, 其中感情方面的字好象就占了不少。也许有一天你会跟老外交往, 也或许你只是有兴趣认识这些字, 这个单元是恋爱一族不可不看的喔! 1. have a crush on 迷恋某人 A: Im having this huge crush on Ted. Im going to try and s…...
职业价值观测评(舒伯修订版)
职业价值观测评,简称为WVI,最早由心理学家舒伯在1970年提出,主要用于测评个体的职业价值观,表明个体对职业的认识、接受、追求和向往的目标。 职业价值观,是从业者的职业期望,职业价值观决定了员工在岗的工…...
JAVA 基于J2ME的手机游戏设计与开发(论文+源码)_Nueve
摘要:随着通信技术的发展和手机的普及,手机游戏的开发技术越来越为人们所关注。以J2ME为开发平台,利用Java提供强大工具,不但可以在手机上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能,而且…...
抢先体验Windows Technical Preview(Windows 10)和Windows Server Technical Preview
抢先体验Windows Server Technical Preview Windows 10 是微软公司新一代操作系统,即传说中的Windows Technical,NT内核为6.4。该系统于2014年9月30日(美国东部时间,北京时间2014年10月1日)发布开技术预览版。北京时间…...
portraiture 4参数设置多少比较好,portraiture怎么批量磨皮
品牌型号:联想GeekPro 2020 系统:Windows 10 64位专业版 软件版本:portraiture v4 portraiture 4是一款智能化水平高的磨皮插件,可安装在photoshop、light room两款主流图像处理软件中使用。刚开始接触portraiture,…...
网线制作,集线器、交换机、路由器的介绍以及路由器的设置
目录 一. 网线制作 1.1 制作材料 1.2 网线标准 1.3 网线做法 二. 集线器、交换机、路由器介绍 前言 简介 简单来说 三. 路由器的设置 设置1 设置2 设置3 设置4 无线设置 一. 网线制作 1.1 制作材料 网线 …...
新华网论坛
新华网论坛 链接:http://forum.xinhuanet.com/index.html 来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/5718/viewspace-167650/,如需转载,请注明出处,否则将追究法律责任。 转载于:http://blog.itpub.net/5718…...
C#下AxShockwaveFlash的成员函数
C#下AxShockwaveFlash的成员函数 1.AlignMode (读写) 语法:AlignMode As Long 说明:对齐方式(与 SAlign 属性联动)。当控件的 长宽比例与影片不一致且 WMode 不为 ExactFit 时,影片࿰…...
C++句柄类
假设有一个父类base,然后从base继承了多个子类base1,base2等等,C句柄类主要是用来管理多个子类,统一个的接口,不同的操作. 句柄类需要智能指针的基础知识和多态的知识,句柄类其实就是智能指针&…...
全国各省电信及网通DNS列表
全国各省电信及网通DNS列表 DNS服务器地址 河南省 (中国电信) 首选DNS 222.88.88.88 备选DNS 222.85.85.85 河南省郑州市(中国电信) 首选DNS:219.150.150.150 备份DNS:219.150. 32.132 河南省郑州市&#x…...
C/C++经典题解析
以下题目都是来自何海涛博客的 C/C/C#面试题精选 系列,感谢博主的整理。这些题不仅帮助我通过一些笔试,更重要的是帮助我很好的理解C/C。以前很讨厌这类题,现在想来做些题还是很有用的,至少可以帮助你巩固知识加深理解。 为支持博…...
Flash Builder4破解步骤
Flash Builder4破解步骤 1、安装Flash Builder4.0试用版 2、找到Flash Builder4的安装路径,查找如下相应的文件 3、修改如下文件下的文件 (1)找到Adobe Flash Builder 4 Installer\Adobe Flash Builder 下的features和plugins (2…...
iOS 7.0 presentViewController 背景变黑的解决办法
问题:在做分享到第三方的时候,要弹出一个分享框,底部的背景会变暗。在iOS8.0以上可以直接设置,但在iOS8.0以下会出现背景变黑的情况。 原因分析:Why Does presentModalViewController:animated: Turn The Background B…...
从CM刷机过程和原理分析Android系统结构
http://blog.csdn.net/luoshengyang/article/details/29688041 前面101篇文章都是分析Android系统源码,似乎不够接地气。如果能让Android系统源码在真实设备上跑跑看效果,那该多好。这不就是传说中的刷ROM吗?刷ROM这个话题是老罗以前一直避免…...
財智V6.0(完美破解序列号特别版)
財智V6.0(完美破解序列号特别版) 財智V6.0(完美破解序列号特别版) 財智6是眼下唯一在中央台报道的、比較成熟的国产理財软件。能全面管理家庭的日常收入、消费、储蓄、贷款、保险、外汇、证券投资等。拥有强大的理財功能…...
开心网外挂开发手记
做一个Web游戏外挂需要的准备知识: 1) 需要有耐心 2) 熟悉HTML, JavaScript,特别是FORM 3) 熟悉HTTP协议,特别是Cookie, URL的编码方式和POST, GET内容格式 4) 熟悉游戏本身,能抽象出最优的赚钱/升级的数学模型 5) 掌握一门语言&a…...
待机时间揭秘:智能手机电池究竟有多久?
对于我们这些离不开手机的现代人来说,手机的待机时间无疑是我们最为关注的问题之一。那么,智能手机的电池寿命究竟有多久呢?我们需要从几个方面来探讨这个问题。 一、电池容量和续航时间的关系 电池容量是决定手机续航时间的重要因素。一般…...
目标检测算法——YOLOv5/YOLOv7改进之结合特征提取网络RFBNet(涨点明显)
>>>深度学习Tricks,第一时间送达<<< 🚀🚀🚀NEW!!!魔改YOLOv5/v7目标检测算法来啦 ~ 计算机视觉——致力于目标检测领域科研Tricks改进与推荐 | 主要包括Backbone、Neck、Head、普通注意力机制、自注意力机制Transformer、Swin Transformer v2,各…...
anaconda使用系列教程--4)环境迁移
概述 跨平台尽量避免,比如windows和linux就不要跨平台,就在linux之间跨还是可以的 直接copy整体环境文件,适合于无法联网或网速不佳的新环境 anaconda最好是同版本的 迁移方法 使用requirement文件 A机器: pip freeze > …...
suse linux enterprise 10下载,在suse linux enterprise 10 中安装 oracle 10g
suse linux enterprise 10 中安装 oracle 10g Oracle10G 最低系统要求: 内存:推荐1G,,在虚拟机中为768M Swap分区:1G,设为内存的2倍 /tmp磁盘空间:400MB以上 磁盘空间:软件3.5G 数据1.2G 所需软件ÿ…...
IIS启动就报错:发生意外错误0x8ffe2740
IIS启动就报错:发生意外错误0x8ffe2740 现象: IIS的WEB服务器(停止),启动不了。启动就报错:发生意外错误0x8ffe2740 。 分析: 如果系统中存在端口冲突就有可能发生本情况. IIS默认使用8…...
Fedora 12 13 14基础环境配置
这里假设Fedora 12/13/14业已安装完成,并能联入网络,那么接下来的基础办公和编程环境的配置过程可以走下面这个路线: 1、配置sudo file; 首先,打开终端,获得root环境: su - ,并输入…...
flash模块开发
模块开发对于大项目而言还是蛮有用的。优点很多啊。使用flex进行模块开发还不错,毕竟人家都已经提供了module。我是没有深入研究它里面的实现。不过可以肯定的一点就是:使用Loader来载入各个模块,被载入模块依附主体模块。我说的依附…...
Rockchip | 使用SD卡启动或升级固件到本地存储
1 简介 Rockchip 现将 SD 卡划分为常规 SD 卡,SD 升级卡,SD 启动卡,SD 修复卡。可以通过瑞芯微创建升级磁盘工具将镜像文件下载到 SD 卡内,制作不同的卡类型。 2 分类 2.1 常规卡 普通 SD 卡与 PC 使用完全一样,可以…...
ASP.NET网站制作
ASP.NET网站制作 1、ASP.NET页面对象 1网页脚本 当客户端通过客户浏览器发送HTTP请求时,web服务器将HTML文档部分和脚本部分返回给客户端浏览器,在客户端浏览器中解释执行并及时更新页面,脚本处理工作全部在客户端浏览器执行完成。 优点: 减轻服务器负荷,同时增加页面…...
Cy3.5修饰麦芽糖,Cy3.5修饰Maltose,Cy3.5-Maltose
产品名称:Cy3.5修饰麦芽糖,Cy3.5修饰Maltose 英文名称:Cy3.5-Maltose 麦芽糖是由葡萄糖和麦芽糖(maltose)组成的二糖。它由两个葡萄糖分子通过α-1,4-糖苷键连接而成。 麦芽糖在食品工业中有广泛应用,特…...
as3.0 初学者完整教程
--记大湿成长历程(又名【大湿是怎样练成的】) 注意:本教程目前仅为辅助教程类型,注意是配合新手看书给出的源码及案例!声明:本系列教程为大湿个人所有转载请注明作者lanzhipeng谢谢合作!本教程所…...
灰鸽子使用教程(图文教程)
转载地址: http://blog.sina.com.cn/s/blog_499e8e5f01000a0n.html 中国远程控制的佼佼者,黑客手中的得意兵刃,也是令杀毒厂商倍加头疼的首要通缉对象…… 这种种造就了众人皆知的灰鸽子 今天,就让我们来研究一下这个厉害的软件 废…...
Windows的EXE文件(1)
当我们安装完Windows后,其中的文件到底是执行何种任务?某特定任务又由哪个文件来执行呢? 还有,从“开始”——“程序”——再点击 “我所要执行的任务”,这种套数还真有点繁琐。若是知道经常要执行的任务是哪个文件、位…...
诺基亚手机怎样初始化恢复出厂设置的方法
1、软格: 在手机上输入*#7370#之后要求你输入锁码,一般诺基亚手机的初始密码是:12345,如果你更改过手机密码,那就应该输入你更改后的密码(注意,这里不是SIM卡密码而是手机密码)。输入…...
Qt 显示透明flash和编写QtWebkit插件
Qt 有两种方法可以显示flash. 1. 通过QAxWidget 调用com形式显示flash, 需要本机安装IE flash插件 2. 直接通过qwebview显示flash, 需要下载webkit 的flash插件 NPSWF32.dll 1. 通过IE显示flash 是通常做法. QAxWidget提供很方便的嵌入, 只是IE对页面的支持可能不是很好 但是QA…...
Jbuilder8开发J2ee学习笔记(7) (转)
Jbuilder8开发J2ee学习笔记(7) (转)[more] Jbuilder8开发J2EE学习笔记(7)XML:namespace prefix o ns "urn:schemas-microsoft-com:Office:office" /> 作者:缪青 开发struts 1.开发Struts 现在我们已经有了一个可以用JMS通过SessionBean&a…...
SocksCapV2+Socks2HTTP
Sockscap32是NEC公司开发的一个使所有winsock应用都可以用socks代理的工具。它给winsock的系统调用库加上了个“帽子”,所有在sockscap环境下应用产生的winsock调用都会被sockcap截获,在你正确设置sockcap32的情况下,这样的调用请求会自动转化…...
电脑死机是什么原因及解决方法
如果你在上班的时候,你的电脑突然死机了,这个时候我们去解决问题恢复我们的工作效率呢?下面让我们一起来看一下电脑死机怎么解决吧。 工具/原料: 系统版本:win10 品牌型号: 软件版本:腾讯管家…...
vista系统重装下载安装教程
平常我们使用的电脑操作系统基本都是windows系统,win7、10、11甚至是xp都是较为常用的操作系统,而其它的心态比如说vista系统也是有用户在使用的,那么该如何安装这个系统呢?下面给大家分享一下vista系统下载安装步骤。 方法/…...
日语学习网站分类汇总
日语资料 http://jp.hjenglish.com/沪江日语 http://www.joyjp.cn/bbs/乐乐日语论坛 http://www.5f5y.com/bbs/download.htm http://bbs.hzmjp.com/ftopic11236.html http://blog.hjenglish.com/xinran/articles/95791.html《逆向式新日语》 http://honyaku.yahoo.co.jp/transt…...
使用QAbstractTableModel来自定义表格模型,并在QTableView中显示数据
下面是一个简单的示例,演示如何使用QAbstractTableModel来自定义表格模型,并在QTableView中显示数据: MainWindow.h: #ifndef MAINWINDOW_H #define MAINWINDOW_H#include <QMainWindow> #include <QTableView> #include "TableModel.h"class MainW…...
卡巴斯基KAV/KIS 6.0/7.0 永久免费激活方法
转自卡巴技术论坛 http://www.kpchina.net/bbs/thread-17524-1-1.html KAV/KIS 6.0/7.0 永久免费激活方法 以前得到过卡巴6.0的永久免费激活的方法,今天试了试KIS7.0.0.123上面,发现竟然也可以用啊!卡巴太好了!我以为新版肯定把注…...
Android中的canvas介绍
3、绘制的东西 4、绘制的画笔Paint(颜色和样式) 1、如何获得一个Canvas对象。 Canvas对象的获取方式有三种: 第一种我们通过重写View.onDraw方法,View中的Canvas对象会被当做参数传递过来,我们操作这个Canvas&…...
cpu性能测试软件 国际象棋,国际象棋测试
◇ 国际象棋测试 Fritz Chess Benchmark是一款国际象棋测试软件,但它并不是独立存在的,而是《Fritz9》这款获得国际认可的国际象棋程序中的一个测试性能部分。它可以让我们的X86计算机也能完成IBM“深蓝”当初所做的事情,那就是计算国际象棋的…...
Mac上好用的视频播放器有哪些?
使用电脑的时候,总少不了要看看电影和视频。这时,一款好用的播放软件必不可少。今天 AppSo就为使用Mac的各位读者,对常见的7款本地视频播放器进行实测对比,希望能帮你找到最适合自己的一款。 结论先行 1. Movist:性能…...
怎么做英文外链代发
答案是:做付费链接(GPB外链)。 在数字化营销的世界里,外链建设在SEO中扮演着至关重要的角色。 特别是对于目标市场为非中文区域的企业,掌握英文外链代发的策略与技巧变得尤为重要。 以下,我们将详细探讨…...