day46homework常量字符串拼接结构赋值扩展运算符for-of循环map函数默认值

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>01定义常量.html</title>
	<!--常量-->
	<script>
		//常量:1.一旦定义 不能更改
		const PI = 3.14; 
		// console.log(PI);
		// PI = 3.1415; error 

		// error: 2.必须赋初始值
		// const PI1;
		// PI1 = 3.1415926;
		// console.log(PI1);
	</script>

	<!--字符串拼接-->
	<script>

		// 用 +  拼接
		var name = "zhang";
		var msg = "hello " + name;
		console.log(msg);

		var name1 = "zhang";
		var msg1 = `hello ${name1}`; //${name} 
		console.log(msg1);
	</script>

	<!--结构赋值-->
	<script>
        	/*
        		var a = 1;
        		var b = 2;
        		var c = 3;
        		console.log(a,b,c);
        	*/
        
        	//数组赋值
        	var [a,b,c] = [11,22,33];
        	console.log(a,b,c);
        
        	var [a,[b,c],d] = [1,[2,3],4];
        	console.log(a,b,c,d);
        
        	//json 赋值
        	var {a,b,c} = {a:1,c:2,b:3};
        	console.log(a,b,c);
        
        	//结构赋值 等号两边的结构要相同
        	var [a,{b,c},d] = [1,{c:3,b:2},4];
        	console.log(a,b,c,d);
        	/*
        	var {a = 10, b = 20};
        	console.log(a,b); //error 
        	*/
        	var {a = 100,b = 200} = {};
        	console.log(a,b); // 输出结果 100 200
        	var {a = 100,b = 200} = {a:111,b:222};
        	console.log(a,b); // 输出结果 111 222
	</script>

	<!--扩展运算符-->
	<script>
		var arr1 = [1,2,3,4,5];

		1 数组赋值(error)
		var arr2 = arr1; //将arr1的地址赋给了arr2 操作arr2影响arr1
		arr2.pop();

		1
		var arr2 = [];
		for(var i = 0; i < arr1.length; i++){
			arr2.push(arr1[i]);
		}

		// 2.

		var arr2 = [...arr1];
		arr2.pop();

		console.log(arr1);
		console.log(arr2);

		function show(x,y){
			console.log(arguments); //arguments不是数组 不能用数组的方法
			// arguments.pop();
		}
		// show(1,2);

		//2. 函数定义时使用扩展运算符,把参数保存在一个数组里面
		function show1(...mgs){
			// console.log(mgs);  
			mgs.push(33); //mgs是数组
			console.log(mgs);
			console.log(mgs[0],mgs[1],mgs[2]);
		}
		// show1(11,22);

		//3. 调用时,通过扩展运算符将数组里的值变成参数列表
		var argu = [11,22];
		show(...argu);
	</script>

	<!--for of 循环-->
	<script>
		var arr1 = [11,22,33,44,55];
		for(i in arr1){
			// console.log(i); // 0 1 2 3 4 i是数组的下标
			// console.log(arr1[i]); // 11 22 33 44 55  数组的值
		}

		for(i of arr1){ 
			// console.log(i);  //i是数组的值
		}

		for(i of arr1.keys()){
			// console.log(i)  //i是数组的下标
		}

		var json = {a:44,b:55,c:66};
		for(i in json){
			// console.log(i); //a b c
			// console.log(json[i]); //输出json的值
		}

		//for of 不能遍历json的值
		for(i of json){
			// console.log(i);  error
		}
	</script>

	<!--map-->
	<script>
		//map 是一种数据集合,以key/value的形式存储和访问
		var map = new Map();

		//添加
		map.set(‘a‘,11);
		map.set(‘b‘,22);
		map.set(‘c‘,"33");
		map.set(‘d‘,"dddd");
		map.set(‘e‘,‘\\‘);
		console.log(map);

		// 查看
		// console.log(map.get(‘a‘));
		// console.log(map.get(‘b‘));
		// console.log(map.get(‘c‘)); 

		//删除
		// map.delete(‘b‘);
		// console.log(map);

		for(i of map){ //默认 map实体
			// console.log(i);
		}
		for(i of map.entries()){
			// console.log(i); //map 实体
		}

		for(i of map.values()){
			// console.log(i); //map 的值
		}
		for(i of map.keys()){
			// console.log(i); //map 的键 a b c d e 
		}

		for([a,b] of map){ //第一个参数是键 第二个参数是值
			console.log(a+":"+b);
		}

		for([key,value] of map){ //获取map的键和值
			console.log(key + ":" + value);
		}
	</script>

	<!--函数默认值-->
   	<script>
   		function show(x,y){
   			if(!x){
   				x = "hello";
   			}
   			if(!y){
   				y = "world";
   			}
   			console.log(x,y);
   		}
   		// show();
   		//1.在定义函数时,将默认参数写在参数列表中
   		function show1(x,y="bbb"){
   			console.log(x,y);
   		}
   		// show1(‘a‘); //把参数赋给x
   		// show1(‘a‘,‘c‘);  // 把a赋给x 把c赋给y

   		//2.如果默认参数的赋值有变量的话,值是可以动态改变的
   		var z = 100;
   		function show2(a = z + 1){
   			console.log(a); 
   		}
   		// show2(); //101

   		//3.结构赋值
   
   		function show3({a = 1,b = 2}={}){
   			console.log(a,b);
   		}   
   		// show3();
   		// show3({a:11,b:22});
   		

   		function show4({a,b} = {}){
   			console.log(a,b);
   		}
   		// show4({a:111,b:222}); 111 222
   		// show4({a:111,b:222});

   		function show5({a,b}){
   			console.log(a,b);
   		}
   		// show5({a:100,b:100});

   		function show6(url,{body = "",method = "get"}){
   			console.log(method);
   		}
   		// show6("http://www.liyuit.com"); //error
   		// show6("http://www.liyuit.com",{}); //get

   		function show7(url,{body = "",method = "get"}={}){
   			console.log(method);
   		}
   		show7("http://www.liyuit.com");
   	</script>
   
   	<!--函数-rest参数-->
   	<script>
		//用扩展运算符后的参数来接受多余的参数

		function show(x,...args){
			console.log(x,args);
		}
		show(1,2,3,4,5,6); //把1给了参数 x   把 2,3,4,5,6给了args数组
	</script>
</head>
<body>

</body>
</html>

<!--封闭空间-->
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>09封闭空间.html</title>
	<script>
		//封闭空间,就是把匿名函数用括号扩气来,形成自己的作用域

		/*
		(function(){
			console.log("aaa");
		})();
		//相当于自己调用自己

		//匿名函数立即执行并传参
		(function(msg){
			console.log(msg);
		}("bbbb"));

		*/
		window.onload = function(){
			var aBtn = document.getElementsByTagName(‘input‘);
			console.log(aBtn);
			/*
			点击按钮是 输出当前元素的下标

			第一种 用this
			for(var i = 0; i < aBtn.length; i++){
				aBtn[i].index = i;
				aBtn[i].onclick = function(){
					console.log(this.index);
				}
			}
			*/

			/*
			第二种 
			for(let i = 0; i < aBtn.length; i++){
				aBtn[i].onclick = function(){
					console.log(i);
				}
			}
			*/

			//第三种
			for(var i = 0; i < aBtn.length; i++){
				(function(index){
					aBtn[index].onclick = function(){
						console.log(index);
					}
				}(i))
			}
		}
	</script>
</head>
<body>
	<input type="button" value="按钮1">
	<input type="button" value="按钮2">
	<input type="button" value="按钮3">
</body>
</html>
时间: 2024-12-28 17:44:54

day46homework常量字符串拼接结构赋值扩展运算符for-of循环map函数默认值的相关文章

妙用ES6解构和扩展运算符让你的代码更优雅

Javascript ES6/ES2015尘埃落定,其中许多特性其实是为了简化代码.解构运算符,扩展运算符,和rest运算符就是其中很好的特性,它们可以通过减少赋值语句的使用,或者减少通过下标访问数组或对象的方式,使代码更加简洁优雅,可读性更佳.现在各浏览器及node.js都加快了部署ES6的步伐.ES6的学习正当其时. 解构 解构的作用是可以快速取得数组或对象当中的元素或属性,而无需使用arr[x]或者obj[key]等传统方式进行赋值 数组解构赋值: var arr = ['this is

C# 字符串拼接性能探索 c#中+、string.Concat、string.Format、StringBuilder.Append四种方式进行字符串拼接时的性能

本文通过ANTS Memory Profiler工具探索c#中+.string.Concat.string.Format.StringBuilder.Append四种方式进行字符串拼接时的性能. 本文涉及程序为.NET Core 2.0控制台应用程序. 一.常量字符串拼接 private static void TestPerformance(Action action, int times) { Stopwatch sw = new Stopwatch(); sw.Start(); for(i

ES6系列_4之扩展运算符和rest运算符

运算符可以很好的为我们解决参数和对象数组未知情况下的编程,让我们的代码更健壮和简洁. 运算符有两种:对象扩展运算符与rest运算符. 1.对象扩展( spread)运算符(...) (1)解决参数个数问题 以前我们编程是传递的参数一般是确定,否则将会报错或者异常,如下: function test(a,b,c,d) { console.log(a) console.log(b) console.log(c) console.log(d) console.log(e)//e is not defi

ES6躬行记(2)——扩展运算符和剩余参数

扩展运算符(Spread Operator)和剩余参数(Rest Parameter)的写法相同,都是在变量或字面量之前加三个点(...),并且只能用于包含Symbol.iterator属性的可迭代对象(iterable).虽然两者之间有诸多类似,但它们的功能和应用场景却完全不同.扩展运算符能把整体展开成个体,常用于函数调用.数组或字符串处理等:而剩余参数正好相反,把个体合并成整体,常用于函数声明.解构参数等.此处的整体可能是数组.字符串或类数组对象等,个体可能是字符.数组的元素或函数的参数等.

C++基础2 引用 函数扩展: 默认值 占位符 指针 重载 类:引用类指针 声明实现分开写

[难点]指针引用 [email protected]:~/c++$ cat main.cpp  #include <stdlib.h> #include "iostream" using namespace std; int a = 20; struct Teacher { int age; char name[64]; }; int fun1(struct Teacher ** p) { int ret = 0; if(p == NULL) { ret = -1; ret

定义结构体时的初始化默认值

结构体变量定义时的初始化问题: 默认值同变量一样,int型的为0,指针型的为"NULL"------------并不是整个结构体为NULL,其中的int型还是有值0的,只是指针型的为NULL 验证一下: #include "stdafx.h" struct stu { int data; char *name; }boy1,girl={102,"xiaom"}; int _tmain(int argc, _TCHAR* argv[]) { pri

ES6---函数的扩展之函数的默认值

1.函数默认值 function add(a,b=3){ return a+b; } add(1,2);//3 add(1);//4 理解起来也很简单,就是在函数定义的时候设置一个默认值,当调用函数没有传参时,可以根据默认值为其匹配一个参数值 这样子的好处嘛,可以避免在调用时没有传参导致函数报错,同时对于阅读代码也更加直观了,代码量也更少了,嘻嘻 直观是因为我们只需要看函数就知道该参数是否可选 代码更少是因为在ES6以前,函数不能设置默认值,如果在调用的时候没有传参进去, 那么需要进行是否传递该

js最基础知识回顾3(字符串拼接,数据类型,变量类型,变量作用域和闭包,运算符,流程控制,)

一.javaScript组成     1.ECMAScript:解释器.翻译 ---------------------------------------------------------几乎没有兼容性问题     2.DOM:Document Object Model --------操作HTML的能力----document--------有一些兼容性问题     3.BOM:Browser Object Model -------------浏览器---------------wind

python学习:注释、获取用户输入、字符串拼接、运算符、表达式

注释 #为单行注释'''三个单引号(或者"""三个双引号)为多行注释,例如'''被注释的内容''' 获取用户输入 input() input 接受的所有数据都是字符串,即便你输入的是数字,但依然会被当成字符串来处理.把数据转成字符串用STR(被转的数据):把字符串转成数据用int(被转的字符串). 字符串拼接 "abc"+"def"="abcdef"            "abc","