哪有什么岁月静好,不过是有人替你负重前行!

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>

  

posted @ 2021-12-31 14:41  longfei825  阅读(36)  评论(0编辑  收藏  举报