韩顺平_轻松搞定网页设计(html+css+javascript)_第21讲_js运算符2_js移位运算_学习笔记_源代码图解_PPT文档整理
文西马龙:http://blog.csdn.net/wenximalong/
js基本语法——运算符
关系运算符
①== 等于 ②> 大于 ③< 小于 ④>= 大于等于 ⑤<= 小于等于 ⑥!= 不等于
请大家看个案例,请问输出什么;
var a=90;
var b=90;
if(a==b){
alert("ok1");
}
b--;
if(a>b){
alert("ok2");
}
if(a>=b){
alert("ok3");
}
特别说明:
一个数和一个字符串比较有什么结果,即两个类型不一样的比较
a==b 究竟是在比较什么
例如下面:
并没有转成ASCII,而是先转成整数来用,例如a的ASCII值为97,但是 var a=97; var b='97';依然是no,自己测试
在实际的开发中要避免如此,如果别人问你是转成ASCII还是实际的数,进行比较,你应该清楚了。
========
var a=90;
var b="90";
if(a==b){
window.alert('ok'); //ok
}else{
window.alert('no');
}
demo1.html
<html><head><script language="javascript">var a=90;var b=90;if(a==b){window.alert('ok'); //ok}//不同类型的判断var b="abc";if(a==b){window.alert('ok');}else{window.alert('no');// no}var b="90";if(a==b){window.alert('ok'); //ok}else{window.alert('no');}var a=97;var b="a";if(a==b){window.alert('ok');}else{window.alert('no'); //no}</script></head><body></body>
</html>
介绍两个函数:window.prompt和document.writeln()
demo2.html
<html><head><script language="javascript">var val1=window.prompt("请输入值");var val2=window.prompt("请再输入值");document.writeln("你的输入是"+(parseFloat (val1)+parseFloat (val2)));</script></head><body></body>
</html>
案例:编写一个程序,该程序可以接收两个数(可以是整数,也可是小数),并判读这两个数是大于,小于,还是等于?
demo3.html
<html><head><script language="javascript">/*请编写一个程序,该程序可以接收两个数(可以是整数,也可是小数),并判读两个数是大于?小于?还是等于?*/var num1=window.prompt("请输入第一个数");var num2=window.prompt("请输入第二个数");num1=parseFloat(num1);num2=parseFloat(num2);if(num1>num2){window.alert("num1>num2");}else if(num1<num2){window.alert("num1<num2");}else{window.alert("num1=num2");}</script></head><body></body>
</html>
逻辑运算符
用于判断逻辑关系的运算符
①&& 与 ②|| 或 ③ ! 非
请大家看个案列,请问输出什么?
var a=90;
var b=90;
if(a==b||a>8){
window.alert("ok1");
}
b--;
if(a>b && a>45){
window.alert("ok2");
}
if(!(a<=b)){
window.alert("ok3");
}
在逻辑运算中,0、""、false、null、undefined、NaN均表示false
关于&&短路的问题,看demo4.html的代码
和 ++的问题,是先判断再加加;还是先加加再判断
demo4.html
<html><head><script language="javascript">var a=90;var b=9;if(a>b && a>345){window.alert('ok');}else{window.alert('no');}//如果是下面的情况,最后a为91if(a>b && ++a>345){window.alert('ok');}else{window.alert('no');}window.alert("a="+a);//如果是下面的情况,最后a为90var a=90;var b=9;// a<b不成立,因为是&&,直接就短路了,不再执行&&后面的语句了,直接就window.alert("no");。上面的在a>b成立的情况下,才去执行&&后面的语句。if(a<b && ++a>345){window.alert('ok');}else{window.alert('no');}window.alert("a="+a);//另外的情况var a=90;var b=9;//在 &&左半部分为真的情况下,然后a先 a>90,然后在a++,即是先判断,再加加if(a>b && a++>90){window.alert('ok90');}else{window.alert('no90');}window.alert("a="+a);</script></head><body></body>
</html>
逻辑与&& 注意:if(逻辑表达式1 && 逻辑表达式2){
}
如果 逻辑表达式1 为true 则js引擎会继续执行逻辑表达式2
如果 逻辑表达式1 为false 则不会执行逻辑表达式2
逻辑或||
if(逻辑表达式1||逻辑表达式2||……){
}
只要有一个逻辑表达式为true,整个就为true
如果逻辑表达式1为真,那么逻辑表达式2就不判断了(不再执行)
如果逻辑表达式1为假,则逻辑表达式2执行
特别强调:在js中,||究竟返回什么
★★★结论:|| 将返回第一个不为false那个值(对象亦可),或者是返回最后一个值(如果全部都是false的话)
不要把它理解为布尔值,甚至返回对象
返回的结果,不一定是布尔值
demo5.html
<html><head><script language="javascript">var a=true;var b=false;window.alert(a||b);//究竟返回什么// || 将返回第一个不为false那个值(对象亦可),或者是返回最后一个值(如果全部都是false的话)var a=4;var b=9;window.alert(a||b); //为什么返回4//**********var a=0;var b=9;window.alert(a||b); //返回9//****var a=0;var b="";var d=false;window.alert(a||b||d); //返回false//********//返回对象var a=0;var b="";var obj=new Object();var apple=a||b||obj;window.alert(typeof apple);</script></head><body></body>
</html>
位预算和移位运算 这个相对比较麻烦,是面试中经常最经典的考题。
js也有位运算和移位运算,其规范和java一致。
二进制——原码、反码、补码
基本概念:
网上对原码、反码、补码的解释过于复杂,这里精简几句话。
对于有符号的而言:
(1)二进制的最高位是符号位:0表示正数,1表示负数
(2)正数的原码、反码、补码都一样
(3)负数的反码=它的原码符号位不变,其它位取反(0->1,1->0)
(4)负数的补码=它的反码+1
(5)0的反码,补码都是0
(6)javascript没有无符号数,换言之,javascript中的数都是有符号的
(7)在计算机运算的时候,都是以补码的方式来运算的
-4 的原码 10000000 00000100
反码 11111111 11111011
补码 11111111 11111100
-4>>2 把最后的两个0移走,然后面前用11补上
即是 11111111 11111111
转成 反码 11111111 11111110 //减一
原码 10000000 00000001 //符号位不变,全部取反
既是 -1
var a=4>>2; 结果是1
var b=-4>>2; 结果是-1
<html><head><script language="javascript">var a=4>>2;// 4 二进制 00000100 ----> 00000001window.alert(a); //显示1var a=-4>>2;window.alert(a); //显示-1</script></head><body></body>
</html>
韩顺平_php从入门到精通_视频教程_学习笔记_源代码图解_PPT文档整理_目录
韩顺平_轻松搞定网页设计(html+css+javascript)_第21讲_js运算符2_js移位运算_学习笔记_源代码图解_PPT文档整理相关推荐
- 韩顺平轻松搞定网页设计(html+css+js),韩顺平轻松搞定网页设计方案(html+css+js)之javascript现场授课笔记(完整版).doc...
2011韩顺平轻松搞定网页设计(html+css+js)之 javascript现场授课笔记(完整版) 视频18整和19的前半部分不用看 Javascript的基本介绍 JS是用于WEB开发的脚本语言 ...
- 韩顺平php可爱屋源码_韩顺平_php从入门到精通_视频教程_第20讲_仿sohu主页面布局_可爱屋首页面_学习笔记_源代码图解_PPT文档整理...
韩顺平_php从入门到精通_视频教程_第20讲_仿sohu首页面布局_可爱屋首页面_学习笔记_源代码图解_PPT文档整理 对sohu页面的分析 注释很重要 经验:写一点,测试一点,这是一个很好的方法. ...
- html百度首页制作视频,韩顺平 轻松搞定网页设计 html+css+js
韩顺平老师的教程影响着一代又一代的学子们,他的视频教程确实做的很经典,不论是java.php还是网页设计,都有出彩的地方.这里,小编给大家分享韩顺平老师的轻松搞定网页设计教程,绝对完整,全部存于百度网 ...
- 几行代码轻松搞定网页的简繁转换(转载)
对网页进行简繁字体转换的方法一般有两种:一是使用<简繁通>这样的专业软件,另外一种是制作两套版本的网页.显然,这两种方法都较为麻烦,而且专业软件一般不能用于免费的空间.笔者在这里给大家提供 ...
- html 简繁文件转换器,几行代码轻松搞定网页的简繁转换
几行代码轻松搞定网页的简繁转换以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对网页进行简繁字体转换的方法一般有两种 ...
- 几行代码轻松搞定网页的简繁转换
对网页进行简繁字体转换的方法一般有两种:一是使用<简繁通>这样的专业软件,另外一种是制作两套版本的网页.显然,这两种方法都较为麻烦,而且专业软件一般不能用于免费的空间.笔者在这里给 ...
- 汇道科技传授5个排版技巧,帮你轻松搞定UI设计
文字排版不只是从下拉选单选择字型和点数而已,文字排版是一项流传数世纪的技艺,自木制和金属的活版印刷便开始,而且它不只历史悠久,还很实用,大部分的人只要掌握一些实用的诀窍,就可以将之活用在诸如履历表.电 ...
- HTML5期末大作业——抗击疫情感动人物-逆行者(6页)专题网页设计 HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计
HTML5期末大作业--抗击疫情感动人物-逆行者(6页)专题网页设计 HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计 常见网页设计作业题材有 个人. 美 ...
- 网站后台没有提示声怎么办_收藏 | 没有 PS 怎么办?10个在线作图网站,轻松搞定图片设计...
求职技巧 | 职业技能 | 通关考试,关注公众号:职域go Photoshop 已经成为大多数工作需要用到的工具,很多时候我们都要用到它来满足一些简单的排版.图片处理.尺寸调整或者是做一些简单的效果. ...
- sql 显示百分比_轻松搞定数据分析之SQL——简单查询
每天早起或者睡前听一首温柔而美好的音乐,是一件很幸福的事情,无论你是否懂音乐,它都能带你发现生活中的隐藏的那些美好,今天我们先来一起欣赏Mindy Gledhill的单曲<California& ...
最新文章
- find -mtime时间算法
- 每天九点十分开始每半小时一次执行一个cron_每天通勤4小时!西咸双城生活的上班族,不简单...
- hdu 4049 Tourism Planning [ 状压dp ]
- 使用SpringBoot搭建一个简单的webSocket服务
- 同步,异步,多线程,你怎么看?
- 数据结构--图 Graph
- 静态路由心法口诀:路由表少什么网络加什么网络
- Java之Set接口
- Spring boot : @PostConstruct @PreDestroy
- linux shell 试题,linux-shell 练习题
- python 统计英文词频
- 白帽子讲web安全读后感2
- SpringBoot项目下载resources目录下模板文件
- mysql间隙锁 打开_MySQL数据库间隙锁
- 关于联想硬盘保护卡还原卡同传不能连接无法登录的解决方法
- 模板,宏,atuo关键字的简述
- word论文排版和写作02:插入算法的伪代码
- 一步一步搭建前端监控系统:如何记录用户行为?
- 旁门左道:让移动游戏在APP Store下载量暴涨的邪门功夫
- PS快速制作流血火焰和冰封字体