20200826-叶梦宇
学习总结
JS
1,位运算符(按照二进制来)
我们所进行的数值计算都是二进制计算
二进制:原码 补码 反码
正数的原码,补码,反码都是一样的
按位与(&)
对应的两个二进位均为1时,结果位才为1 ,否则为0
按位或(|)
对应的两个二进位有一个为1时,结果位就为1
按位异或()
对应的两位不同时结果为1,相同时为0
总结:相同为0,相异为1
12的原码 0000 1100
21的原码 0001 0101
12:0 1100
21:1 0101
& 0 0100 ==> 4
| 0 1101 ==> 29
^ 1 1001 ==> 25
按位左/右移(<<,>>)
正数
》》20:0001 0100 按位右移是在二进制末尾删除n位在前面补0
00001010
《《 20: 0001 0100 按位左移是在开头删除n位,在末尾补0
0010 1000
负数
》》 console.log(-10>>2)
原码: 1 0000 1010
反码 1 1111 0101
补码 1 1111 0110 在补码上进行移动
移位 1 1111 1101
去反 1 0000 0010
原码 1 0000 0011 》》 -3
负数在按位右移的过程中 高位补1
《《 console.log(-10<<2)
原码 10000 1010
反码 1 1111 0101
补码 1 1111 0110
左移 1 1101 1000
取反 10010 0111
原码(补码)1 0010 1000
实际应用
下取整
m>>>>0:无符号右移 运算符
m|0 m0
不声明第三个变量,交换两变量的值
1.a=b; b=a; a=b;
2.a+=b; b=a-b; a-=b;
问题:以上两种方法只能交换数字类型的数据
3.a=[b,b=a][0];
2,赋值运算符
a+=b ==> a=a+b // 累加
a=b ==> a=ab // 累乘
a-=b ==> a=a-b // 累减
a/=b ==> a=a/b // 累除
a%=b ==> a=a%b // 累取余
3,三目运算符
单目运算符 由一个数据和运算符组成:a++ 、a-- 、!a(除此之外,其他的均为双目运算符)
双目运算符 由两个数据和运算符组成:1 && 2、1+1、3>2、1||2...
三目运算符 条件表达式?表达式1:表达式2 判定结果:
如果条件为true,执行表达式1
如果条件为false,执行表达式2
l例如
var a=1 b-2
a>=b? console.log('ok') a>=b? console.log('no')
二,逻辑结构
1 流程控制
if语句
if(条件表达式){
语句1
}
语句2
1.如果if后的语句只有一行,则可以省略大括号;
2.在条件表达式中,有一些值默认转成false,例如:undefined、null、0、NaN、"";
if-else语句
if(条件表达式){
语句1
}else{
语句2
}
if-else语句嵌套
if(条件表达式1){
语句1
}else if(条件表达式2){
语句2
}else{
语句3
}
switch-case语句
switch(表达式){
case 值1:
语句1; break;
case 值2:
语句2; break;
...
default: 语句n;
}
- if-else可以判断相等或者不相等的情况,使用范围广泛
- switch-case只能用于全等于的比较,结构上更为清晰、合理,执行效率高
模板字符串
英文状态下``
``
2,循环执行
循环的条件:限制循环千万不要执行死循环
随机数:Math.random() 范围是[0,1)
while
while (循环条件) {
循环体;
}
如果条件正确,他会一直 循环
while (true) {
循环体;
}
while(循环条件);
do-while循环
do{
循环体;
}while(循环条件);
不管有没有条件,do都执行一次
for循环
for循环
for(表达式1 ; 表达式2 ; 表达式3) {
循环体;
}
表达式1:初始值
表达式2:循环条件
表达式3:增量
实例:打印本世纪前10个闰年(2000~2100)
for(var i=2000,n=1;i<=2100,n<=10;i++){
if( ( i%4=0 && i%100!1 ) || i%400===0 ){
console.log(i);
n++;
}
}
for循环中,可以存在多个条件,以后一个为准
break和continue
1. continue:跳过本次循环,继续下一次的循环
2. break:结束循环,后续不会再执行其他的循环
学习心得
今天学习了JavaScript的简单算法,和进行了一些练习,感觉自己的逻辑思维还不是太灵活,还是要多敲代码
近期评论