我的JavaScript回顾之路_01—0206—++在前在后区别/&&和||/条件判断语句/循环语句的区别/字符串类型数字和数字类型之间的转换

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
</head>
<body>
	<script>
		var a = 10, b = 10;
		console.log(a++ + a, ++b + b)
		var sumi = 0;
		var sumj = 0;
		for(let i = 0; i <= 100; i++)
		{
			sumi += i;
		}
		console.log(sumi)
		for(let j = 0; j <= 100; ++j)
		{
			sumj += j;
		}
		console.log(sumj)
		document.write("<h1>123</h1><br><span>456</span><br>")
		var c = 100, d = "1234", e = 200;
		document.write(e + "" + "<br>");
		ee = e + '';
		f = ee + a;
		console.log(f)
		cc = c.toString();
		document.write(cc + d*1)
		var array = [1, 2, 3, 4, 5]
		array.desc = "six";
		for(let i = 0; i < array.length; i++)
		{
			console.log(array[i], i, array, array.length)
		}
		//forEach es5遍历数组,而不是遍历对象 index数组下标 value对应下表的值 不能中断循环(使用语句)
		//$.each([], function(index, value, array) { // ... });
		array.forEach((value, index, array) => {
			console.log(value, index, array, array.length)
		})
		//for in循环遍历对象的key,键值对中key值
		for(var index in array){
			console.log(index, array[index], array, array.length)
		}
		//for of es6循环遍历对象的value值,键值对中value值 可以正确响应break、continue和return语句
		for(let value of array){
			console.log(value, array, array.length)
		}
		document.write("<br>");
		//for of 用法
		let iterable = "boo";
		for (let value of iterable) {
			document.write(value);
		}//boo
		document.write("<br>");
		let iterableb = new Uint8Array([0x00, 0xff]);
		for (let value of iterableb) {
			document.write(value+',')
		}//0 255
		document.write("<br>");
		let iterablec = new Map([["a", 1], ["b", 2], ["c", 3]]);
		for (let [key, value] of iterablec) {
			document.write(key + '-->' + value + "<br>");
		}
		document.write("<br>");
		for (let entry of iterablec) {
			document.write(entry + "<br>");
		}
		let iterabled = new Set([1, 1, 2, 2, 3, 3]);
		for (let value of iterabled) {
			document.write(value + ',');
		}
		//总结
		var a = ['A', 'B', 'C'];
		var s = new Set(['A', 'B', 'C']);
		var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
		for (var x of a) { // 遍历Array
    		console.log(x);//'A', 'B', 'C'
		}
		for (var x of s) { // 遍历Set
		    console.log(x);//'A', 'B', 'C'
		}
		console.log(s.add('D'));
		for (var x of m) { // 遍历Map
		    console.log(x[0] + '=' + x[1]);//1='x',2='y',3='z'
		}
		var dd = new Map([['userId', 1],['title', "电脑"], ['dec', "很好用"], ['price', 33], ["price", 30]])
		console.log(dd)
		dd.set('aa', 5);//添加新的key-value 
		console.log(dd)
		console.log(dd.has('adm'));//是否存在key"adm"
		console.log(dd.get('aa'));//获取key为aa的value值
		console.log(dd.delete('aa'));//删除key值为aa的健值对
		console.log(dd)
		for(let i of dd)
		{
			console.log(i[0]+i[1])//key值相同取后一个的value值
		}
		dd.clear();
		console.log(dd)

		//Set与Array类似,但Set没有索引,因此回调函数的前两个参数都是元素本身:
		var s = new Set(['A', 'B', 'C', 'C']);
		s.forEach(function (element, sameElement, set) {
		    console.log(element, sameElement, set);
		});
		//Map的回调函数参数依次为value、key和map本身:
		var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
		m.forEach(function (value, key, map) {
		    console.log(value, key, map);
		});
	</script>
</body>
</html>

1、++在前在后区别

var a = 10, b = 10;

console.log(a++ + a, ++b + b)

//a输出21,b输出22

2、条件判断&&和||

&&:两边同时为true则为true,否则为false。

||:   一边为true则为true,否则为false。

3、条件判断语句if else、三目运算符和switch开关

if(){}else if(){}else{}

var a = 1, b = 2; a > b ? alert(a) : alert(b);

var a = 0; switch(a){case 0: alert(1); break; ... default:break;}

4、循环while、do while和for

for用的比较多,知道循环次数(i/j/k/l/o/p)

for(var i = 0; i <= 100; i++){}//每次循环最后执行的是i++

while不知道循环次数

 while(条件判断){}

do while比较少用,先执行一次循环再判断条件是否成立

 var i = 0, sum = 0; do{sum += i; i++}while( i < 0); console.log(i, sum) //i输出1,sum输出0

扩展知识:

 1.window.history事件

history.back()和history.forward()分别表示向后一页和向前一页。

history.go(num)表示向前或向后翻多少页,num为正数表示向前翻,为负数则向后翻。

History.back()等价于history.go(-1),history.forward()等价于history.go(1)。

执行这三个中的任一方法,触发浏览器的popstate事件,如果只是hash部分发生变化,还可能同时触发hashchange事件。

history.replaceState(stateData, title, url)

使用pushState()的好处:只改URL的hash部分,window.location使用的是同一个document。

单纯调用pushState()或replaceState()不触发popstate事件。

参数URL必须和当前URL同源否则会报错。

2.输出标签:document.write("<h1>123</h1><br><span>456</span>")

3.数字类型和字符串类型的相互转换:

数字类型两个数字类型的变量拼接var a = 100, b = 200; document.write(a + '' + b)//输出100200

字符串类型数字转换成数字类型var a = 100, c = "1234"; document.write(a + c*1)//输出1334

数字类型 --> 字符串类型

法1:toString方法 变量名.toString() //toString()还能执行进制转换

法2数字类型 + ""

字符串类型 --> 数字类型

法1:parseInt() 函数可解析一个字符串,并返回一个整数 //(parseFloat()只会返回小数

法2:字符串前加" + "

法3:字符串后*1

其他:String.split(分隔符, 数量)把一个字符串分割成字符串数组(数量可不写)string-->array

Array.join(分隔符)把数组中的所有元素放入一个字符串 array-->string

4.forEach、for in和for of的区别 

var array = [1, 2, 3, 4, 5]

 array.desc = "six";
//for 循环遍历数组
for(let i = 0; i < array.length; i++)
{
console.log(array[i], i, array, array.length)
}
 //forEach es5遍历数组,而不是遍历对象。index数组下标 value对应下表的值 不能中断循环(使用语句)
 //$.each([], function(index, value, array) { // ... });与forEach相似
array.forEach((value, index, array) => {
console.log(value, index, array, array.length)
})
//for in循环遍历对象的key,键值对中key值
for(var index in array){
console.log(index, array[index], array, array.length)
}
//for of es6循环遍历对象的value值,键值对中value值,弥补forEach和for-in循环的短板
for(let invalue of array){
console.log(value, array, array.length)
}

for of具体用法详见html

5.new Set([1, 2, ...])和new Map([[], [], ...])

new Set([1, 2, ...])

es6提供了新的数据结构Set,类似于数组,但成员的值都是唯一的,没有重复的值。

可以接受一个数组(或类似数组的对象)作为参数,用来初始化。

let iterable = new Set([1, 1, 2, 2, 3, 3]);
 for (let value of iterable) {
document.write(value + ',');//1,2,3,
 }

四个操作方法:

  • add(value):添加某个值,返回Set结构本身。
  • delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
  • has(value):返回一个布尔值,表示该值是否为Set的成员。
  • clear():清除所有成员,没有返回值

new Map([[], [], ...])

四个操作方法:

  • set(value)添加新的key-value
  • delete(value)删除健值对,返回一个布尔值,表示删除是否成功
  • has(value):返回一个布尔值,表示该值是否为map的成员。
  • clear():清除所有成员,没有返回值
  • get():获取对应key的value值

var dd = new Map([['userId', 1],['title', "电脑"], ['dec', "很好用"], ['price', 33], ["price", 30]])
console.log(dd)
dd.set('aa', 5);//添加新的key-value 
console.log(dd)
console.log(dd.has('adm'));//是否存在key"adm",存在为true
console.log(dd.get('aa'));//获取key为aa的value值
console.log(dd.delete('aa'));//删除key值为aa的健值对
console.log(dd)
for(let i of dd)
{
console.log(i[0]+i[1])//key值相同取后一个的value值

dd.clear(); console.log(dd)

注意:

//Set与Array类似,但Set没有索引,因此回调函数的前两个参数都是元素本身:
var s = new Set(['A', 'B', 'C', 'C']);
s.forEach(function (element, sameElement, set) {
 console.log(element, sameElement, set);
});
//Map的回调函数参数依次为value、key和map本身:
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
m.forEach(function (value, key, map) {
 console.log(value, key, map);
});

6.map定义和方法
 map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理的后值。 
 map()方法按照原始数组元素顺序依次处理元素。

 map不会对空数组进行检测, 不会改变原始数组 
 arr.map(function(currentValue,index,arr),thisValue) 

本博客所整理的文章只为便于本人记忆,随时欢迎指出错误,望勿喷。谢谢!






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值