JavaScript基础知识学习
1、如何在页面中插入JavaScript
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>js文件的引入</title>
<!-- 内部的js-->
<script type="text/javascript">
// 编写js代码
alert('JavaScript学习');
// alert网页弹窗
</script>
<!-- 外部的js-->
<script type="text/javascript" src="js/index.js"></script>
</head>
<body>
</body>
</html>
// index.js里面的内容。
// 编写外部js代码
alert('JavaScript学习课程');
2、变量
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>变量</title> </head> <body> <script type="text/javascript"> // 单行注释 /* 多行注释 */ // 变量初始化 var x = 30; var X = 30; // 声明变量 var y; // 变量赋值 y = 50; var name = '王聪聪'; /* 1.必须使用字母、下划线(_) $开始 2.多个英文字母 驼峰 myName 3.不能使用js中关键字 和保留字来进行命名 4.严格区别大小写 */ var _A = 40; var $ = 90; // alert(_A); // alert($ ); // alert(x); // alert(X); var z = 40; z = 50; alert(z); </script> </body> </html>
3、基本的变量类型的介绍
<!-- 变量类型 基本的数据类型 Number String Boolean undefined null 引用的数据类型 Object Array Function --> <!DOCTYPE html> <html> <head> <title></title> </head> <body> <script type="text/javascript"> // number数值类型 var a = 3; var b = 1.234; var c = -1; // typeof 来检查当前变量的数据类型 // alert(typeof a); // alert(typeof b); // alert(typeof c); // 字符串 string 'abc234' 或者是 "我是mjj" var name = 'mjj'; var en = "abc"; // alert(typeof name); // alert(typeof en); // boolean 0(假 false) 和1(真 true) var c = 3 <= 4; // alert(c); // alert(typeof c); // 声明变量 var x; // alert(x); // alert(typeof x); // 空对象 var y = null; alert(y); alert(typeof y); </script> </body> </html>
4、运算符-算数运算符
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>运算符-算数运算符</title> </head> <body> <script type="text/javascript"> var x = 10; var y = 4; var sum = x + y; var sum2 = 4 + 5 + x + y; var en = x-y; var or = x * y; var op = x % y * sum; alert(or); alert(op); var c = (x + sum) / 4 -3; alert(c); </script> </body> </html>
5、递增和递减以及赋值运算符
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>递增和递减以及赋值运算符</title> </head> <body> <script type="text/javascript"> // ++ // -- var x = 3; // x++; x = x + 1; // alert(x); var a = 5; var b = 6; a = b; var c = 10; // c = c + 5; c += 5; c -= 2; c *= 4; c /= 3; alert(c); </script> </body> </html>
6、字符串
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>字符串</title>
</head>
<body>
<script type="text/javascript">
// var str = '@#$%^&*';
// alert(str);
// var word = "hello";
// var newWord = word;
// alert(typeof word);
// alert(newWord);
// var name = 'would you eat a "apple"?';
// alert(name);
// var str = "I 'm \"mjj\"";
// 里面的\是转义字符。
// alert(str);
// var one = 'hello';
// var name = 'mjj';
var joined = 'hello' +' ' + 'mjj';
// 字符串拼接
alert(joined);
</script>
</body>
</html>
7、数字和字符串转换
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>数字和字符串转换</title>
</head>
<body>
<script type="text/javascript">
/*
var a = 'mjj' + 521;
alert(a);
alert(typeof a);
*/
/*
var b = '18' + '40';
alert(b);
alert(typeof b);
*/
// 1.隐式转换 数值转字符串
var num = 234;
var myStr = num + "";
// alert(typeof myStr);
// 2.toString() 数值转字符串
var myStr2 = num.toString();
// alert(typeof myStr2);
// 字符串转数值
var myNum = Number(num);
// alert(typeof myNum);
var n = '2424fhfh';
var a = Number(n);
alert(typeof a);
//NaN是数值运算的报错意思是:Not a number。
//这里a的类型还是number,但是给其赋值不是number类型,所以报错。
</script>
</body>
</html>
8、JavaScript中强大的数组Array
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript中强大的数组Array</title>
</head>
<body>
<script type="text/javascript">
// 创建
var shopping = ['香蕉','苹果','牛奶','红牛'];
// alert(shopping);
// alert(typeof shopping);
// console.log(shopping);
var rand = ['tree','345',[1,2,3]];
// console.log(rand);
// 访问
var item1 = rand[0];
console.log(item1);
rand[0] = '榴莲';
console.log(rand);
var a = rand[2][2];
console.log(a);
// 访问数组的长度 for
console.log('数组的长度是:' + rand.length);
</script>
</body>
</html>
9、if...else语句,条件判断
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>条件判断</title>
</head>
<body>
<script type="text/javascript">
/*
var distance = 10;
var nowDistance = 16;
if ( nowDistance <= distance) {
console.log('自动驾驶');
}else{
console.log('人为驾驶');
}
*/
var weather = 'rainyxxxxxx';
if (weather === 'sunny') {
console.log('天气非常棒,可以出去玩耍');
}else if(weather === 'rainy'){
console.log('天气下雨了,在家里呆着');
}else if(weather === 'snowing'){
console.log('天气下雪了,可以出去滑雪');
}else{
alert('输入的天气有错,重新输入');
}
</script>
</body>
</html>
10、比较运算符
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>比较运算符</title> </head> <body> <script type="text/javascript"> // === 等同于 和 !== 不等于 var a = 5; var astr = '5'; var isequal1 = a === astr; console.log(isequal1); // == 等于 和!= 不等于 var isequal2 = a == astr; // ==只比较里面的数值。这里输出true。 console.log(isequal2); console.log(4 <= 4); </script> </body> </html>
11、逻辑运算符:&&并且 ||或者
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>逻辑运算符</title>
</head>
<body>
<script type="text/javascript">
var weather = 'sunny';
var temp = 32;
/*
if (weather === 'sunny') {
if (temp > 30) {
console.log('在家里吹空调,吃西瓜');
}else{
console.log('天气非常好,可以出去玩耍了');
}
*/
// && 逻辑与 并且 || 逻辑或 或者 !true 非真 取反
if (weather === 'sunny' && temp > 30) {
console.log('在家里吹空调,吃西瓜');
}else if(weather === 'sunny' && temp <= 30){
console.log('天气非常棒,可以出去玩耍了')
}
// 数学考过80 或者英语考过85 才可以玩游戏
var mathScore = 77;
var enlishScore = 80;
if (mathScore >= 80 || enlishScore >= 85) {
console.log('可以玩游戏');
}else{
console.log('在家里写作业');
}
var isLogin = false;
alert(!isLogin);
if (!isLogin) {
console.log('用户已登录');
}
</script>
</body>
</html>
12、switch语句,多个条件判断使用。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>switch语句</title>
</head>
<body>
<script type="text/javascript">
var weather = 'rainy';
switch (weather) {
case 'sunny':
alert(1);
break;
case 'rainy':
alert(2);
// 编写switch语句 小心break,cash穿透
// 如果忘记写break,它会直接往下走,直到遇到break,才结束。
break;
case 'snowing':
alert(3);
break;
default:
alert(4);
break;
}
// 多个条件判断,建议用switch语句。其作用和if else相同。
</script>
</body>
</html>
13、三元运算符(运用非常多)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>三元运算符(运用非常多)</title> </head> <body> <script type="text/javascript"> // if...else // (条件) ? run this code : run this code; // 括号内是条件,如果条件是真,运行?后面:前面的代码,如果条件是假,则运行:后面代码。 var isresult = 1 < 2 ? '真的' : '假的'; alert(isresult); // 此处弹出窗口为:真的。 </script> </body> </html>
14、for循环
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>for循环</title>
</head>
<body>
<script type="text/javascript">
// 循环 来做1+2+3....+10000
// 1+2+3+....+10000
/*
for(初始化条件;结束条件;递增条件){
//run this code
}
*/
var i;
var sum = 0;
for(i = 1; i <= 10000;i++){
sum = sum + i;
// sum = 1 ,i = 2
// sum = 3, i = 3
// sum = 6, i = 4
}
console.log(sum);
var shopping = ['香蕉','苹果','牛奶','红牛'];
var j;
for(j = 0; j < shopping.length; j ++){
// shopping.length为列表的长度。
// console.log(shopping[j]);
var htmlStr = '<h1>'+shopping[j]+'</h1>';
console.log(htmlStr);
document.write(htmlStr);
// 将内容显示在网页上面。
}
</script>
</body>
</html>
15、break和continue语句
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>break和continue</title>
</head>
<body>
<script type="text/javascript">
// break 可以跳出当前循环
var x = 0;
for(;;){ //死循环
if(x > 100){
break;
}
x++;
}
console.log(x);
// 1+2+3+4+5+6+7+9+10
var sum = 0;
for(var i = 1; i <= 10; i++){
if(i === 8){
// break;
// 跳出当前循环,下次循环继续进行,此处跳过8,继续加9加10
continue;
}
sum = sum + i;
}
alert(sum);
</script>
</body>
</html>
16、while循环和do while循环
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>while循环</title>
</head>
<body>
<script type="text/javascript">
/*
初始化条件
while(判断循环结束条件){
// run this code
递增条件
}
*/
/*
var sum = 0; //计算的和
var n = 99; //初始的奇数
while (n > 0) {
sum = sum + n;
n = n - 2;
}
alert(sum);
*/
// do while
// 1到100之间的数
/*
先判断 再执行
var sum = 0;
var i = 1;
while (i <= 100) {
sum = sum + i;
i ++;
}
alert(sum);
*/
// do-while 先执行一次 再判断
var sum = 0;
var i = 1;
do{
sum = sum + i;
i++;
console.log(sum);
}while(i <= 1);
</script>
</body>
</html>
17、函数的定义
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>函数</title>
</head>
<body>
<script type="text/javascript">
// 做饭
// 买菜
// 洗菜
// 切菜
// 炒菜
// 吃菜
// 洗碗
// 睡觉.....
// 买菜
// 洗菜
// 切菜
// 炒菜
// 吃菜
// 洗碗
// 睡觉.....
// 买菜
// 洗菜
// 切菜
// 炒菜
// 吃菜
// 洗碗
// 睡觉.....
// 封装重复性代码
function 做饭(isBad,a,b,c) { //isBad 形式参数
alert(isBad);
if(isBad){
alert('点个外卖');
}else{
// 买菜
// 洗菜
// 切菜
// 炒菜
// 吃菜
alert('做饭了');
}
}
var bad = true; //刀坏了
// 做饭(bad);
// 洗碗
// 睡觉.....
做饭(bad);
</script>
</body>
</html>
18、函数传参
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>函数传参数</title>
</head>
<body>
<script type="text/javascript">
// 做饭
// 封装重复性代码
function 做饭(isBad,a,b,c) { //isBad 形式参数 参数建议在1-5个,不能太多。
alert(isBad);
if(isBad){
alert('点个外卖');
}else{
// 买菜
// 洗菜
// 切菜
// 炒菜
// 吃菜
alert('做饭了');
}
}
var bad = true; //刀坏了
// 做饭(bad);
// 洗碗
// 睡觉.....
做饭(bad);
</script>
</body>
</html>
19、函数返回值和函数表达式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>函数返回值和函数表达式</title>
</head>
<body>
<script type="text/javascript">
// addition(加法) subtraction(减法) multiplicatio(乘法) division(除法)
function addition(a,b){
var sum = a + b;
return sum;//函数返回值。
}
function subtraction(a,b){
return a - b;
}
function multiplicatio(a,b){
return a * b;
}
/*
function division(a,b){
return a / b;
}
*/
// 函数表达式 ,这种是匿名函数。
var division = function(a,b){
return a / b;
}
var r = addition(3,2);
var r2 = subtraction(3,2);
var r3= multiplicatio(3,2);
var r4 = division(3,2);
console.log(r);
console.log(r2);
console.log(r3);
console.log(r4);
</script>
</body>
</html>
20、函数作用域
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>函数作用域</title>
</head>
<body>
<!-- <script type="text/javascript">
var a = 1;
console.log(a);
function add(){
var b = 3;
console.log(a);
}
add();
// console.log(b);
</script>
-->
<script type="text/javascript" src="js/first.js"></script>
<script type="text/javascript" src="js/second.js"></script>
<!-- 全局作用域里面的函数,如果函数名相同,则下面的函数会覆盖上面的函数,即上面的函数不会执行。-->
<script type="text/javascript">
console.log(window);
first();
second();
</script>
<!-- var a = 3;相当于window.a = 3。是一个全局变量。-->
</body>
</html>
// first.js里面的内容。
(function(){
var name = 'mjj';
var hello = function (){
alert('hello ' + name);
}
window.first = hello;
})();
(function (){
// 这里面作用域
})();
// 上面这个函数叫作自执行函数。
// second.js里面的内容。
(function(){
var name = 'jack';
var hello = function (){
alert('hello ' + name);
}
window.second = hello;
})();
21、字符串的切片方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>字符串的切片方法</title>
</head>
<body>
<script type="text/javascript">
console.log(str.length);//获取字符串的长度 11
console.log(str.charAt(1)); //e 获取指定的字符
console.log(str.charCodeAt(1)) //101 获取指定的字符对应的编码
console.log(str.concat(' mjj',' jack')); //拼接字符串 通常情况 不适用它来做拼接,使用 +来做多个字符的拼接
console.log(str.slice(2));//从第二个位置到结束。
console.log(str.substring(2));
console.log(str.substr(2));
// 第一个参数是起始的位置,第二个参数是结束的位置 顾头不顾尾
console.log(str.slice(2,4));
console.log(str.substring(2,4));
// 第一个参数是起始的位置,第二个参数是返回的字符数
console.log(str.substr(2,6));
console.log(str.slice(-3,-1)); //rld 等同于:slice(8,10)
console.log(str.slice(8,10));
</script>
</body>
</html>
22、object对象讲解
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>object对象讲解</title>
</head>
<body>
<script type="text/javascript">
/*
var name = '火腿肠';
function 老虎(){
alert(name);
}
function 企鹅(){
alert(name);
}
老虎();
*/
// 对象 (属性和方法)字面量创建 姓名,年龄,性别 ,爱好(动作)
var person = {
name : 'mjj',
age: 18,
sex:'女',
fav: function(a){
alert('爱好姑娘');
return '姑娘' + a + '岁';
}
}
// person是一个对象,里面包含了name,age,sex,fav几个参数。
console.log(person);
console.log(person.name);//调用name的属性。
console.log(person.fav(18));//调用对象里面的函数,这里输出:姑娘18岁
</script>
</body>
</html>
23、Javascript内置对象Array
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Javascript内置对象Array</title>
</head>
<body>
<script type="text/javascript">
// 字面量创建一样
// var arr = [1,2,3];
// 内置对象 native object 对象 : 属性和方法
// document.write('呵呵呵');
// Array
// js提供构造函数
var colors = new Array();等价于:var colors2 = [];
if (Array.isArray(colors)) {
// Array.isArray(colors)是判断colors是否为数组,并且返回true或false。
// 对数组进行操作
colors[0] = 'red';
colors[1] = 'blue';
colors[2] = 'yellow';
var a = colors.toString();
// toString()将列表转换成字符串,如:['red','blue','yellow']转换成red,blue,yellow。
console.log(a);//这里输出red,blue,yellow
console.log(typeof a);
console.log(colors);
// console.log(colors[0]);
// console.log(colors.length);
}else{
// .....
}
</script>
</body>
</html>
24、数组join()的方法
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>数组join()的方法</title>
</head>
<body>
<script type="text/javascript">
/*
var arr = [1,2,3];
var a = arr.toString();//输出:1,2,3
var b = arr.toLocaleString();//输出:1,2,3
console.log(a);
console.log(b);
var person1 = {
toLocaleString : function(){
return 'mjj';
},
toString: function(){
return '么吉吉';
}
}
var person2 = {
toLocaleString : function(){
return '隔壁老王';
},
toString: function(){
return '隔壁老李';
}
}
var people = [person1,person2];
console.log(people);
console.log(people.toString());//输出:'么吉吉','隔壁老李'
console.log(people.toLocaleString());//输出:'mjj','隔壁老王'
*/
// 分割字符串
var colors = ['red','blue','green'];
var a = colors.join('|');
console.log(a);//以|为分割线,输出:red|blue|green
</script>
</body>
</html>
25、数组的栈方法和队列方法
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>数组的栈方法和队列方法</title>
</head>
<body>
<script type="text/javascript">
/*
var arr = [1,2,3];
var a = arr.toString();
var b = arr.toLocaleString();
console.log(a);
console.log(b);
var person1 = {
toLocaleString : function(){
return 'mjj';
},
toString: function(){
return '么吉吉';
}
}
var person2 = {
toLocaleString : function(){
return '隔壁老王';
},
toString: function(){
return '隔壁老李';
}
}
var people = [person1,person2];
console.log(people);
console.log(people.toString());//输出:'么吉吉','隔壁老李'
console.log(people.toLocaleString());//输出:'mjj','隔壁老王'
*/
// 分割字符串
/*
var colors = ['red','blue','green'];
var a = colors.join('|');
console.log(a);//以|为分割线,输出:red|blue|green
*/
// 上面所有是数组join()的方法。
// 栈(lifo last - in- first - out)方法. push()添加 pop()移除 队列方法
// push() 往数组的最后一项添加内容
var newlength = colors.push('purple');
console.log(newlength);//输出:4,即这个新数组的长度。返回的是新数组的长度。
console.log(colors);//输出:['red','blue','green','purple']
// pop() 从数组末尾删除最后一项
var lastItem = colors.pop();
console.log(lastItem);//输出:purple。即删除的元素。返回的是删除的元素。
console.log(colors);//输出新的数组:['red','blue','green']。
// 队列 fifo 先进先出 unshift() shift()
newlength = colors.unshift('yellow');
console.log(newlength);//输出:4。返回新数组长度。
console.log(colors);//输出:['yellow','red','blue','green']
var firstItem = colors.shift();
console.log(firstItem);//输出:yellow。返回的是删除的数组的第一个元素。
console.log(colors);//输出:['red','blue','green']。返回新的数组。
</script>
</body>
</html>
26、数组排序的方法
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>数组排序的方法</title>
</head>
<body>
<script type="text/javascript">
var values = [0,3,2,16,15,10];
// 数组倒序
// values.reverse();//数组倒过来排序。
// console.log(values);//输出:[10,15,16,2,3,0]。
// sort() 排序 升序 或者降序
// values.sort();//默认是按照x码排序的,不是我们想要的排序方法。
// console.log(values); //输出:[0,10,15,16,2,3]
function compare1(a,b){
/*
// a位于b之前
if (a < b ) {
return -1;
}else if(a > b){
return 1;
}else{
return 0;
}
*/
return a - b;
}
function compare2(a,b){
/*
// a位于b之前
if (a < b ) {
return 1;
}else if(a > b){
return -1;
}else{
return 0;
}
*/
return b - a;
}
values.sort(compare1); //升序
console.log(values);//输出:[0,2,3,10,15,16]
values.sort(compare2);//倒序
console.log(values);//输出:[16,15,10,3,2,0]
</script>
</body>
</html>
27、数组的操作方法,数组合并,插入,替换,删除等
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>数组的操作方法</title>
</head>
<body>
<script type="text/javascript">
// 操作方法 concat() slice() splice()
// 1.concat() 数组合并
var colors = ['red','blue'];
// var newColors = colors.concat('green');
newColors = colors.concat({name:'zhangsan'});//输出:['red', 'blue', {name:'zhangsan'}]
console.log(newColors);//输出:['red', 'blue', 'green']
//
// //2.slice() 将当前数组中的一个或者多个项创建一个新数组
var newcolors = colors.concat({name:"lisi"},['black','purple']);
//输出:['red', 'blue', {…}, 'black', 'purple']
// console.log(newcolors); //5
newcolors = newcolors.slice(1);//输出
// // newcolors = newcolors.slice(1,2);
newcolors = newcolors.slice(-2,-1); //相当于:slice(3,4)
console.log(newcolors);//输出:['black']
// // 3.splice() 删除 插入 替换
// // 3.1 删除
var names = ['张三','李四','mjj','alex'];
names.splice(0,2);//从0天始,删除两个元素。删除了,张三和李四。
console.log(names);//输出:['mjj', 'alex']
// // 3.2 插入
names.splice(1,0,'熊大大','jack');//1表示从位置1开始,0表示不删除元素,后面‘熊大大’,'jack'是要添加的元素,这里还可以再加。
console.log(names);//输出:['mjj', '熊大大', 'jack', 'alex']
// // 3.3 替换
names.splice(1,1,'xiongdada');//从1位置,删掉一个元素,把xiongdada添加进去。
console.log(names);//输出:['mjj', 'xiongdada', 'jack', 'alex']
</script>
</body>
</html>
28、数组的位置方法,查找元素的位置
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>数组的位置方法</title>
</head>
<body>
<script type="text/javascript">
// 4.位置方法 indexOf()从前向后查找 lastIndexOf()从后向前查找。
var names = ['张三','mjj','王五','mjj','赵六'];
alert(names.indexOf('mjj')); //输出:1。返回的就是查找元素的序号。
alert(names.lastIndexOf('mjj')); //输出:3。
alert(names.indexOf('mjj',2)); //输出:3。从第二个位置(王五)开始向后查找。
alert(names.lastIndexOf('mjj',2)); //输出1。从第2个位置(王五)开始向前查找。
alert(names.lastIndexOf('mjjxxxx',2)); //输出:-1。如果查不到结果 返回-1
// 5.迭代方法
// 5.1 filter() 将数组的元素进行过滤
var numbers = [1,2,3,6,19,4,20];
var filterResult = numbers.filter(function(item,index,array){
console.log('item:'+ item);
console.log('index:'+ index);
console.log('array:'+ array);
return item > 10
});
console.log(filterResult);
// 5.2 map()方法
var mapresult = numbers.map(function(item,index,array){
return item * 2;
})
console.log(mapresult);
for(var i = 0; i < mapresult.length; i ++){
// console.log(mapresult[i]);
}
// 5.3 forEach()
mapresult.forEach(function(item,index){
console.log(item);
})
</script>
</body>
</html>
29、数组的迭代方法,过滤,遍历
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>数组的迭代方法</title>
</head>
<body>
<script type="text/javascript">
// 5.迭代方法
// 5.1 filter() 将数组的元素进行过滤
var numbers = [1,2,3,6,19,4,20];
var filterResult = numbers.filter(function(item,index,array){
console.log('item:'+ item);
console.log('index:'+ index);
console.log('array:'+ array);
return item > 10
});
console.log(filterResult);//输出:[19,20]。遍历上面的数组,与10进行比较,把大于10的数组取出来,组成新的数组。
// 5.2 map()方法
var mapresult = numbers.map(function(item,index,array){ //array可选项,可写可不写。
return item * 2;
})
console.log(mapresult);//输出:[2, 4, 6, 12, 38, 8, 40]。将上面的数组都乘以2后组成新的数组。
for(var i = 0; i < mapresult.length; i ++){
console.log(mapresult[i]);
}
//输出:竖排的2 4 6 12 38 8 40。
// 5.3 forEach() 遍历的操作
mapresult.forEach(function(item,index){
console.log(item);
})
//输出:竖排的2 4 6 12 38 8 40。
</script>
</body>
</html>
30、map方法的应用,数组的遍历
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>map方法的应用</title>
</head>
<body>
<script type="text/javascript">
var oldArray = [
{
name:'张三',
age: 17
},
{
name:'mjj',
age: 29
},
{
name:'李四',
age: 30
}
];
/*
//方法一:
var newNames = [];
var newAges = [];
for(var i = 0; i < oldArray.length; i ++){
var myname = oldArray[i].name;
var myage = oldArray[i].age;
newNames.push(myname);//将遍历出来的姓名推到newNames列表里面。
newAges.push(myage);//将遍历出来的年龄推到newAges列表里面。
}
console.log(newNames);//输出:['张三', 'mjj', '李四']
console.log(newAges);//输出:[17, 29, 30]
*/
//方法二:
var newNames = oldArray.map(function(item,index){
return item.name
})
var newAges = oldArray.map(function(item,index){
return item.age
})
console.log(newNames);//输出:['张三', 'mjj', '李四']
console.log(newAges);//输出:[17, 29, 30]
</script>
</body>
</html>
31、字符串的常用方法 查找 清除空格 大小写转换
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>字符串的常用方法</title>
</head>
<body>
<script type="text/javascript">
// 属性
// length
// 方法
/*
charAt()
charCodeAt()
concat()
slice()
substring()
substr()
indexOf()
lastIndexOf()
trim()
//常用
toLowerCase()
toUpperCase()
//转成当地的大小写
toLocaleLowerCase()
toLocaleUpperCase()
*/
/*
var str = 'hello world'; //切片
console.log(str.length);//获取字符串的长度 输出:11
console.log(str.charAt(1)); //输出:e 获取指定的字符
console.log(str.charCodeAt(1)) //输出:101 获取指定的字符对应的编码
console.log(str.concat(' mjj',' jack')); //输出:hello world mjj jack
//拼接字符串 通常情况 不使用concat来做拼接,使用 +来做多个字符的拼接
*/
// console.log(str.slice(2));
// console.log(str.substring(2));
// console.log(str.substr(2));
// // 第一个参数是起始的位置,第二个参数是结束的位置 顾头不顾尾
// console.log(str.slice(2,4));
// console.log(str.substring(2,4));
// // 第二个参数是返回的字符数
// console.log(str.substr(2,6));
// console.log(str.slice(-3,-1)); //rld slice(8,10)
// console.log(str.slice(8,10));
//字符串的查找方法
var str = 'hello world';
console.log(str.indexOf('o')); //输出:4。 输出从左向右第一个o的序号
console.log(str.lastIndexOf('o')); //输出:7 输出从右向左查第一个o的序号。
console.log(str.indexOf('o',6)); //输出:7 从左向右,第6个字符w开始查找,o在第7个序号。
console.log(str.lastIndexOf('o',6)); //输出:4 从右向左,第6个字符w开始向左查找,o在第4个序号。
// trim()清除当前 字符串的前后空格
var str = ' hello world ';
console.log(str.trim());//输出:hello world。 清除了hello world前后的空格。
console.log(str);
//字符的大小写转换
var str = 'Hello Mjj';
console.log(str.toUpperCase());//输出:HELLO MJJ
console.log(str.toLowerCase());//输出:hello mjj
</script>
</body>
</html>
32、查找当前字符e在字符串中的所有位置 实例操作
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>查找当前字符e在字符串中的所有位置</title>
</head>
<body>
<script type="text/javascript">
// 查找e 在str中的所有的位置
var str = 'He unfolded the map and set it on the floor.';
var arr = [];
var pos = str.indexOf('e'); //输出:1。 找到一个后停止,不再往下查找。
console.log(pos);
while(pos > -1){ //找到返回序号,找不到返加-1,根据这个设置条件pos>-1。
// 找到当前e字符对应的位置
arr.push(pos); //将找到的序号推到列表arr中。
pos = str.indexOf('e',pos+1); //从pos+1的位置继续往后查找e。
}
console.log(arr); //输出:[1, 9, 14, 25, 36]
</script>
</body>
</html>
33、Date日期对象 输出样式,格式化
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Date日期对象</title>
</head>
<body>
<script type="text/javascript">
// UTC 1970.1.1 到 285616年
// Date日期对象
// 1.四种方式创建
var now = new Date();
console.log(now); //输出:Sun Jan 02 2020 11:32:09 GMT+0800 (中国标准时间)
var xmas = new Date('December 25,1995 13:30:00');
console.log(xmas); //输出:Mon Dec 25 1995 13:30:00 GMT+0800 (中国标准时间)
var xmas = new Date(1995,11,25); //11,这里获取的是12月。
console.log(xmas); //输出:Mon Dec 25 1995 00:00:00 GMT+0800 (中国标准时间)
var xmas = new Date(1995,11,25,14,30,0);
console.log(xmas); //输出:Mon Dec 25 1995 14:30:00 GMT+0800 (中国标准时间)
var now = new Date();
// 常用方法
console.log(now.getDate()); //获取月份的第几天 (1~31)
console.log(now.getMonth()); //获取月份 (0~11)
console.log(now.getFullYear()); //获取年份
console.log(now.getDay()); //获取一星期中的第几天(0 ~ 6),从星期天开始计算
console.log(now.getHours()); //获取小时(0~23);
console.log(now.getMinutes()); //获取分钟(0~59);
console.log(now.getSeconds()); //获取秒(0~59);
// 日期格式化方法
console.log(now.toDateString()); //输出:Sun Jan 02 2022 星期几 月 日 年
console.log(now.toTimeString()); //输出:14:29:32 GMT+0800 (中国标准时间) 时 分 秒 时区
// 常用
console.log(now.toLocaleDateString()); //输出:2020/1/2
console.log(now.toLocaleTimeString()); //输出:下午2:30:44
console.log(now.toLocaleString()); //输出:2020/1/2 下午2:31:06
console.log(now.toUTCString()); //输出:Sun, 02 Jan 2022 06:32:07 GMT
</script>
</body>
</html>
34、返回用数字时钟格式的时间 例如:3:02:51 P.M.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>返回用数字时钟格式的时间</title>
</head>
<body>
<script type="text/javascript">
// 6:27:35 P.M.
// 6:30:01 P.M.
// 6:04:01 A.M.
// :0 4
// : 30
function nowNumTime(){
var now = new Date();
var hour = now.getHours(); //获取小时:0 ~ 23.
var minute = now.getMinutes(); //获取分钟:0 ~ 59.
var second = now.getSeconds(); //获取秒:0 ~ 59.
// 18 > 12 ? 18-12 : 8 //意思是判断时间是否大于12,如果大于,则减去12,否则直接显示时间。
var temp = '' + (hour > 12 ? hour - 12 : hour);//如果hour>12,则显示hour-12,否则直接显示hour。
if(hour === 0){
temp = '12';
}
temp = temp +(minute < 10 ? ':0': ":")+ minute;
//如果minute<10,则显示:0,否则显示:。然后,temp+括号里面的内容+minute。下面两个同理。
temp = temp +(second < 10 ? ':0': ":")+ second;
temp = temp + (hour >= 12 ? ' P.M.': " A.M.");
return temp;
}
var nownum = nowNumTime();
console.log(nownum); // 输出:2:57:59 P.M.
</script>
</body>
</html>
35、字符串和数值相互转换
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>字符串和数值相互转换</title>
</head>
<body>
<script type="text/javascript">
//字符串类型,在浏览器的控制台里面显示字体颜色为黑色。
//数值类型,在浏览器的控制台里面显示字体颜色为蓝色。
var str = '13131.9090013';
// 字符串转数值类型
console.log(parseInt(str)); //输出:13131
console.log(parseFloat(str)); //输出:13131.9090013
console.log(typeof parseFloat(str)); //输出:number
var str = '131lkla31.9090013';
var a = Number(str);
console.log(isNaN(a)); //输出:true 判断是否是数值类型
var num = 1313.179;
// 强制类型转换
console.log(num.toString()); //输出:1313.179
console.log(typeof num.toString()); //输出:string
console.log(String(num)); //输出:1313.179
// 隐式转换
console.log('' + num); //输出:1313.179 类型为:string 。数值加一个空的字符串,能将数值转化为字符串。
console.log(''.concat(num)); //输出:1313.179 同上
console.log(Number(num.toFixed(2))); //输出:1313.18 数值2是保留两位小数,第三位上四舍五入。
console.log(typeof (Number(num.toFixed(2)))); //输出:number
</script>
</body>
</html>
36、Global对象 uri 编码 解码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Global对象</title> </head> <body> <script type="text/javascript"> // URI 统一资源标识符(Uniform Resource Identifier,URI)是一个用于标识某一互联网资源名称的字符串。 var uri = 'http://www.apeland.cn/web index.html?name=zhangsan'; // encodeURIComponent()编码 使用最多的方法 console.log(encodeURI(uri));//输出:http://www.apeland.cn/web%20index.html?name=zhangsan console.log(encodeURIComponent(uri));//输出:http%3A%2F%2Fwww.apeland.cn%2Fweb%20index.html%3Fname%3Dzhangsan // 解码 decodeURIComponent() // decodeURI(); // decodeURIComponent();解码,使用最多的方法。 </script> </body> </html>
37、window对象
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>window对象</title>
</head>
<body>
<script type="text/javascript">
//在JavaScript里面,window对象等同于global对象。
var a = 3;
console.log(window.a);//输出:3
function hello(){
alert(window.a);
}
window.hello();//输出:3
</script>
</body>
</html>
38、Math对象 查找列表最大数,最小数 取整,四舍五入,随机数字
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Math对象</title> </head> <body> <script type="text/javascript"> // Math // var a = 3; // 方法 min() max() var max = Math.max(3,34,56,21); var min = Math.min(3,34,56,21); console.log(max);//输出:56 找出最大值 console.log(min);//输出:3 找出最小值 var arr = [1,2,32,23,45,21]; var max = Math.max.apply(null,arr); var min = Math.min.apply(null,arr); // var max= Math.max(arr[0],arr[1],arr[2],arr[3],arr[4],arr[5]); 相当于遍历了列表arr,找到最大值。 console.log(max);//输出:45 console.log(min);//输出:1 // ceil() floor() round() var num = 24.8; console.log(Math.ceil(num)); //输出:25。 天花板函数 向上取整 console.log(Math.floor(num)); //输出:24。 地板函数 向下取整 console.log(Math.round(num)); //输出:25。 标准的四舍五入 // 随机数 random() 0 <= random < 1 console.log(Math.random()); //输出:0.09707070528033301 // 1.获取min到max之间的整数 // 2.获取随机颜色 rgb(0~255,0~255,0~255); // 3.随机验证码 四位 数字+ 字母 (大写) </script> </body> </html>
39、利用:Math.random() 获取min到max之间的整数 (1~100)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>获取min到max之间的整数 (1~100)</title>
</head>
<body>
<script type="text/javascript">
// 1.获取min到max之间的整数 (1~100)
//方法一:
var max = 100;
var min = 1;
var a = Math.floor(Math.random() * (max-min) + min);
//Math.random()获取0~1的随机数,然后乘以(max:100-min:1=99),则为0~99的随机数,再加上min:1,则为1~100的随机数。
console.log(a);//输出:8 一个随机数。
//方法二:
function random(max,min){
return Math.floor(Math.random() * (max-min) + min);
}
b = random(100,1);
console.log(b);//输出:99 一个随机数。
</script>
</body>
</html>
40、利用:Math.random() 获取随机颜色 rgb(0~255,0~255,0~255); ( 模板字符串 `` var result = `rgb(${r},${g},${b})`) 使用示例
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>获取随机颜色 rgb(0~255,0~255,0~255);</title>
</head>
<body>
<script type="text/javascript">
// 2.获取随机颜色 rgb(0~255,0~255,0~255);
function random(max,min){
return Math.floor(Math.random() * (max-min) + min);
}
function randomColor(){
// var result
var r = random(0,256),g = random(0,256),b = random(0,256);
// 模板字符串 ``
var result = `rgb(${r},${g},${b})`;//目标:rgb(0~255,0~255,0~255)
//上面的一行代码相当于:result ='rgb'+'('+r+','+g+','+b+')'
return result;
}
var rc = randomColor();
console.log(rc);//输出:rgb(60,212,122) 这是一组随机数字。
document.body.style.backgroundColor = rc;//随机改变网页的颜色。
//document.write(),这是之前学的,在网页中写入。
</script>
</body>
</html>
41、利用:Math.random() 生成四位随机验证码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>生成四位随机验证码</title>
</head>
<body>
<script type="text/javascript">
// 3.随机验证码 四位 数字+ 字母 (大写) 65Yz
function random(max,min){
return Math.floor(Math.random() * (max-min) + min);
}
function creatCode(){
// 设置默认的空的字符串
var code = '';
// 设置长度
var codeLength = 4;//设置验证码的位数。
var randomCode = [0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R', 'S','T','U','V','W','X','Y','Z'];
for(var i = 0; i < codeLength; i++){
// 设置随机范围 0~36
var index = random(0,36);//返回0~36的随机数字。
code += randomCode[index];//这里等同于:code = code + randomCode[index]
}
return code;
}
var rndcode = creatCode();//调用函数creatCode()。
console.log(rndcode);//输出:WD51 是一个随机验证码。
document.write(`<h1>${rndcode}</h1`)//以标签h1的格式写到网页。
</script>
</body>
</html>
作者:龙飞
-------------------------------------------
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!
浙公网安备 33010602011771号