您的位置:首页 > Web前端 > JavaScript

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

2018-02-06 20:53 1066 查看
<!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) 

本博客所整理的文章只为便于本人记忆,随时欢迎指出错误,望勿喷。谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐